Embedded:

è la categoria relativa all’elettronica embedded. Troverete articoli relativi ai sistemi embedded sia lato hardware che software con particolare riferimento appunto a tutti quei sistemi rivolti ad una specifica applicazione. Tratteremo anche Linux embedded ed altri sistemi operativi leggeri in grado di “girare” su schede embedded a microcontrollore.

Simulink

Simulink è uno strumento che opera in ambiente Matlab, è un potente strumento interattivo per la modellazione, simulazione ed analisi dei sistemi dinamici. Il suo ambiente di sviluppo grafico consente di creare rapidamente modelli di simulazione mediante il collegamento di blocchi funzione, il suo nome infatti deriva dalle parole Simulation (simulazione) e Link (collegamento). Simulink è lo strumento ideale per la progettazione di sistemi di controllo, DSP (Digital Signal Processor), sistemi di comunicazione e di altre applicazioni in cui la simulazione gioca un ruolo fondamentale. Ecco alcuni pacchetti software opzionali che possono aumentarne le prestazioni in determinati campi di interesse: » Real-Time Workshop: …

CPU Design: Una cache per tutti i gusti

“Cache”, in inglese, significa letteralmente “nascondiglio segreto”, o “scorta segreta”. In generale, fa pensare ad un luogo piccolo in cui mettere al sicuro oggetti di valore. Sostanzialmente, questo significato vale anche per le cache che si trovano in un computer: si tratta di piccole memorie in cui salvare istruzioni e dati (per così dire) “importanti”, dove in questo contesto “importanti” significa che queste istruzioni e dati hanno un certo valore ai fini dell’elaborazione in corso. Vedremo in questo articolo per quale strano motivo mettersi da parte un po’ di istruzioni o dati possa essere un vantaggio, e soprattutto come …

Corso C avanzato su Raspberry PI: La ricorsione

L'oggetto della sesta lezione del corso avanzato sul linguaggio C per Raspberry Pi è la ricorsione. Una strana e misteriosa argomentazione che rischia, spesso, di non essere ben compresa. La ricorsione è un metodo un po' strano, ma forse più naturale, per risolvere alcune classi di problemi. Vediamo come affrontarla senza fatica. La ricorsione Con la ricorsione si possono definire e risolvere problemi tramite sé stessi. Si ha la ricorsione quando una funzione richiama sé stessa, ma non per un numero infinito di volte, come mostrato in figura 1. E' un potentissimo approccio di programmazione che consente la scrittura …

Potenza a bassissimo rumore

Come ottenere il massimo da un convertitore DC/DC in termini di potenza, minimizzando allo stesso tempo le emissioni elettromagnetiche. Gli alimentatori DC/DC, grazie all’elevata efficienza e alle dimensioni ridotte, sono il sistema di conversione della tensione preferito. Anche se una maggiore efficienza crea un ulteriore problema, l’interferenza elettromagnetica (EMI) condotta e irradiata che è una conseguenza della commutazione ad alta frequenza utilizzata nel processo di conversione. L’interferenza elettromagnetica genera sistemi rumorosi e può ostacolare  il rispetto delle normative. Esistono molte applicazioni che per il funzionamento richiedono una alimentazione con rumore molto basso. Per affrontare il rumore del convertitore sono stati utilizzati molti metodi tra cui: uso di una topologia più …

Controllo del ripple con il Kinetis M

Il controllo del ripple (o ondulazione residua) è un metodo utilizzato per controllare l’entità di un carico elettrico, ed è attualmente utilizzato in numerosi paesi per gestire in modo efficiente il consumo di energia elettrica a livello domestico. Con un dispositivo basato sulla tecnica di controllo del ripple, è infatti possibile cambiare la tariffa applicata al consumo di energia elettrica, accendere o spegnere selettivamente i dispositivi collegati alla rete elettrica, e altro ancora. Introduzione Tutti noi sappiamo che il consumo di energia elettrica non si mantiene costante durante l’arco di un’intera giornata: esistono periodi di picco e periodi di …

La scheda di sviluppo hardware MediaTek LinkIt 7697 e il kit di partenza Grove

LinkIt 7697 è un prodotto co-ideato da Seeed Studio e MediaTek. Utilizzando il SoC MediaTek MT7697, mira a fornire una soluzione IoT snella e leggera. Se confrontato con Arduino UNO, LinkIt 7697 risulta più potente in quanto in grado di eseguire e memorizzare programmi più complicati ed ampi. Grazie a LinkIt 7697 le applicazioni IoT diventano economiche e facili da implementare, infatti collegandola direttamente ad una breadboard è possibile avviare subito il proprio progetto IoT. In questo articolo verranno presentati ed analizzati la scheda LinkIt 7697 e il kit di partenza Grove, ideale per iniziare ad esplorare le potenzialità …

Le sfide dell’IoT

Mentre l'Internet of Things (IoT) continua a guidare la tecnologia del nuovo anno, numerose sfide stanno venendo alla luce. Sebbene l'IoT abbia ancora il potenziale per trasformare l'attività industriale e commerciale, coloro che già abbracciano questa rete di nuova generazione hanno ancora del lavoro da fare. Negli anni passati, la diffusa disponibilità di accesso a Internet ha cambiato per sempre il modo in cui i consumatori fanno acquisti. Inoltre, ha spostato l'attenzione del cliente da prodotti standardizzati di massa a prodotti e servizi personalizzati. Con l'anno 2020 all'orizzonte, i clienti hanno aspettative molto importanti. Secondo un recente rapporto di …

Da ARM7 a Cortex-M3

Il processore ARM Cortex-M3 a 32 bit è una soluzione basata su ARMv7-M in grado di garantire elevate prestazioni insieme con un basso costo ed un alto rendimento. Il modello M3 è particolarmente utilizzato nel campo automotive dove sono richiesti elevati criteri di affidabilità. La famiglia dei processori ARM sono soluzioni basate su tecnologia System-on-Chip (SoC) in grado di soddisfare le diverse esigenze del mercato: dalle applicazioni di home networking alle tecnologie wireless, dalle applicazioni automotive al segmento consumer. In modo particolare la famiglia Cortex-M3 di ARM è una soluzione in grado di fornire risposte concrete alle diverse esigenze tecnologiche. Come si è detto il Cortex-M3 si basa su ARMv7 ed è una …

Advanced ColdFire TCP/IP Clients

Freescale/NXP ha proposto un’interessante suite TCP/IP che intende coniugare prestazioni e facilità di impiego allo scopo di fornire un client ottimizzato particolarmente indicato per sistemi embedded. Freescale/NXP con il suo Advanced ColdFire TCP/IP clients è riuscita ad ottenere uno stack TCP/IP per sistemi embedded con un uso minimo di memoria, in modo particolare di memoria volatile. Lo stack di Freescale offre un http, un DHCP client e un DNS utilizzato dal protocollo http per la traslazione di nomi di host in indirizzi IP e viceversa. Il modello OSI si basa su sette strati o livelli, ognuno si occupa di una parte dedicata ed è in relazione sola con un modulo funzionale ben …

La trasmissione criptata dei dati per applicazioni industriali

Diversi standard sono emersi per proteggere la segretezza delle chiavi e per facilitare lo scambio di queste chiavi su un canale insicuro in sicurezza. L’algoritmo di scambio Diffie-Hellman  implementa lo scambio delle chiavi senza che sul canale insicuro vengano realmente scambiate le chiavi. Questo algoritmo è molto usato per stabilire una sessione adatta a cifrare i  dati. L’algoritmo Diffie-Hellman  (RFC 2631) offre un modo sicuro per due utenti, Alice e Bob, di stabilire una chiave segreta condivisa che solamente loro conoscono. La chiave segreta condivisa può essere stabilita anche se gli utenti Alice e Bob stanno comunicando su un canale insicuro. Questa …

Profibus

PROFIBUS, con diversi milioni di dispositivi installati a livello mondiale, si è imposto negli anni come il principale e più diffuso bus di campo per applicazioni nei settori dell’automazione industriale e del controllo di processo. Scopriamo in questo articolo le sue caratteristiche, i suoi pregi, ed i suoi campi di utilizzo. Dal punto di vista storico, il PROFIBUS (acronimo di PROcess FIeld BUS) ha avuto origine in Germania nel 1987, quando un consorzio di 21 aziende e istituzioni tedesche, con l’appoggio delle autorità pubbliche, diede vita ad un progetto comune di bus di campo basato su una trasmissione di tipo seriale e con l’obiettivo di standardizzare l’interfaccia verso i dispositivi di campo. Il …

Come gestire i display LCD a segmenti con l’MSP430

I display LCD a segmenti sono oggi utilizzati in una miriade di applicazioni, con lo scopo di fornire informazioni utili ed essenziali all’utente: strumenti di misura, etichette elettroniche da scaffale (note anche con il termine ESL, acronimo di Electronic Shelf Label), apparecchiature elettromedicali, dispositivi per il fitness o il tempo libero, elettrodomestici, orologi, sono solo alcuni degli esempi di utilizzo pratico. Numerosi modelli di microcontrollori appartenenti alla serie MSP430 includono dei circuiti hardware di bassa potenza integrati nel componente, in grado di pilotare direttamente dei display LCD a segmenti. I moduli LCD dell’MSP430 La famiglia di microcontrollori della serie MSP430 …

La coerenza delle informazioni

Il Direct Memory Access, o DMA, insieme alla cache rappresentano gli elementi fondamentali di un sistema embedded quando si vuole incrementare le sue prestazioni. In un’architettura multi-core come ARM11 o Cortex-A9, quali sono le considerazioni da tenere presente? O meglio, come si relazionano con le risorse di un sistema operativo come Linux? L’uso della cache e di un DMA comportano diverse considerazioni. Il progettista di applicazioni firmware, quali ad esempio un device driver, ha la necessità di garantire la coerenza della memoria shared in un sistema quando, a maggior ragione, sono presenti diversi core nel sistema. Non solo, la presenza di un sistema multi-core ha degli impatti significativi anche nel boot di un …

Coldfire TCP/IP Stack

Il Coldfire TCSP/IP stack è una sorgente pubblica di comunicazione in linea con i microprocessori. Lo stack è molto robusto e facilmente configurabile. Supporta molti comuni protocolli di comunicazione e include molti esempi di applicazioni. Vediamo alcune caratteristiche. Il Freescale/NXP ColdFire è un microprocessore della famiglia 68k concepito per sistemi embedded prodotto da Freescale Semiconductor/NXP. Il set di istruzioni del ColdFire è compatibile al livello di sorgente “assembly” (tramite un software di traduzione disponibile presso il fornitore) ma non è totalmente compatibile a livello di codice oggetto con il 68000. Rispetto al classico hardware 68k, il set di istruzioni differisce principalmente per il fatto che sono state rimosse alcune istruzioni poco usate, come quelle a supporto del …

Progettare un Bike-Computer con il MAXQ2000

L'obiettivo di questo articolo è quello di approfondire un'applicazione della famiglia di microcontrollori MAXQ2000 relativa ad un vero e proprio computer da bicicletta che include le informazioni su: velocità, orario, temperatura, umidità, battito cardiaco e cronometro. Per gli amanti di elettronica e ciclismo che non resistono al fai da te, questo progetto è veramente imperdibile. MAXQ2000 MAXQ2000 è una famiglia di microcontrollori a 16 bit della Maxim Integrated dedicati ad applicazioni embedded low power. Integrato nel microcontrollore troviamo un LCD controller, una porta SPI, un real time clock, due UART e una unità hardware di moltiplicazione e accumulazione (MAC). …

Caricabatteria USB con ATmega

Una connessione USB, un microcontrollore ATMega ed un convertitore DC/DC sono tutto quello che serve per realizzare un caricabatterie per celle a ioni di litio. Scopriamo come. Nel 2008 Atmel ha introdotto la nuova famiglia di microcontrollori ATmega16/32U4 che combinano interfaccia USB 2.0 e funzionalità analogiche ad elevate prestazioni. Grazie a queste caratteristiche, tali microcontrollori rappresentano una soluzione ideale per sistemi a basso costo e con alimentazione da porta USB per applicazioni come accessori per console di gioco (ad esempio gamepad) o caricabatterie. E proprio di ciò, un caricabatterie per celle a ioni di litio, parleremo in questo articolo. Il problema della carica delle batterie Prima di presentare i …

Tecniche di protezione dei file binari

Le applicazioni orientate al mondo embedded hanno la necessità di utilizzare sistemi di protezione? L’argomento mi sembra abbastanza interessante. Credo che qualsiasi azienda ha la necessità di proteggere il proprio lavoro, pensiamo ad alcune realtà asiatiche che nella copia hanno fatto un proprio proficuo business. L’esigenza è particolarmente sentita: qualsiasi azienda ha la necessità di tutelare i propri investimenti da persone o società. Un sistema embedded tipicamente veicola  il software per mezzo di un eseguibile, o binario, che si trova residente nella memoria del prodotto. Le azioni rivolte a comprendere il funzionamento di un codice eseguibile è un’attività che può essere definita di reverse engineering. In sostanza, l’obiettivo che ci si pone …

Tecnologia TOUCH-SENSE

Un interruttore meccanico offre solo una o poco più di una funzione. Il discorso è totalmente diverso quando si parla di una soluzione elettronica con microcontrollore: questo tipo di soluzione offre un’ampia gamma di soluzioni e funzionalità. In questo modo si realizzano display LCD, LED, pulsanti o anche interfacce per sistemi di controllo. Non esistono più gli interruttori classici di una volta, anzi, i pulsanti possono essere attivati in maniera assolutamente individuale. Vengono incassati e installati e si adattano al comando corrispondente potendo essere persino application-oriented. Una variante della tecnologia touch è la tecnologia Capacitive Touch Sensing, nella quale attraverso una piastra …

Gcc e i sistemi embedded

Chi realizza sistemi embedded utilizza per forza di cose un compilatore. In questo articolo si vuole affrontare un tema decisamente interessante: quali sono le attività da svolgere per realizzare un proprio cross-compilatore partendo da GCC. La cross-compilazione (cross-compilation) è una tecnica nella quale un generico compilatore, ospitato su un ambiente host, ad esempio un desktop o notebook, produce codice eseguibile per una piattaforma differente (target). In applicazioni di questo tipo, il progettista ha il totale controllo della macchina target, dalle risorse fisiche della scheda al controllo totale del processore; inoltre, a volte può capitare che le risorse dell’intera board siano mediate da un’applicazione intermedia, un sistema operativo. Questo non rappresenta però un limite, ma consente di sfruttare …

AvrX un kernel per AVR

AvrX è un kernel real-time multitasking scritto per la famiglia AVR da Barello. Grazie alla disponibilità del codice sorgente e alle sue caratteristiche di real-time, è in grado di sopperire alle esigenze delle applicazioni embedded. AvrX è utilizzato in diversi contesti, dalle applicazioni di movimentazione a quelle più squisitamente ludiche. AvrX è scritto in assembler e questo al giorno d’oggi potrebbe sembrare un limite perché ne impedisce il porting verso architetture differenti. In realtà, la soluzione adottata in AVR-X da Barello è sicuramente un vantaggio: in questo modo infatti il kernel è in grado di garantire le prestazioni che le applicazioni embedded richiedono sempre con maggiore incisività. Non solo, la dimensione del kernel, grazie all’assembler, risulta abbastanza contenuta, da …

Timer programmabile con PIC

I timer programmabili sono oggetti estremamente utili in un’infinità di applicazioni. Tanto per citarne una, si pensi alla temporizzazione dell’esposizione di un PCB sottoposto a sviluppo attraverso un bromografo. Un timer di questo tipo, semplice e flessibile, grazie soprattutto alla peculiarità di essere programmabile e controllabile tramite un display LCD e qualche pulsante, può essere facilmente progettato e realizzato mediante un controllore PIC. Chi si occupava di elettronica alcuni anni fa, quando ancora i controllori non erano così diffusi e alla portata di chiunque, compresi appassionati e hobbisti, ricorda sicuramente molto bene come fosse complesso realizzare circuiti elettronici dalle funzionalità spesso anche piuttosto semplici. Realizzare, in particolare, delle macchine a stati finiti che implementassero determinati processi richiedeva un’abilità …

Heads-Up Display, quando il videogioco ispira la realtà

Uno dei settori tecnologici leader dell'evoluzione è sicuramente l'ambito automobilistico. Qui si sperimentano sistemi di guida avanzata e sicura, per il pilota e dei passeggeri. Alert ed informazioni real-time sullo stato di salute del veicolo e sulle condizioni stradali sono alcune delle funzionalità oggi disponibili grazie alle tecnologie MEMS, che hanno enormi potenzialità. I MEMS sono, infatti, coinvolti in ogni campo della tecnica, soprattutto nei sistemi embedded. In questo articolo parliamo dei sistemi HUD di supporto alla guida e delle più avanzate tecnologie LASER scanned-MEMS, su cui sono basati. Tutti gli amanti dei videogiochi hanno certamente molta familiarità con il concetto di HUD, acronimo di Head-Up Display (e …

L’Architettura ARM 7

Nel 1983, un gruppo di ingegneri britannici di Acorn, fu sfidato a trovare una soluzione ingegneristicamente valida per la seconda versione di uno degli home computer più diffusi dell’epoca, il BBC Micro. Fu l’inizio di una lunga avventura tecnologica, che avrebbe portato, ai giorni nostri, ARM ad essere il processore  più diffuso al mondo, con quote di mercato superiori al 90% nel settore dei dispositivi mobili phones. In questo articolo descriveremo la sua declinazione  più diffusa: ARM 7. Acorn è stata un’azienda britannica attiva nel campo degli home computer, che qualcuno ricorderà, per avere prodotto l’Acorn Archimedes, home computer che, sulla carta, avrebbe dovuto essere avversario del predominio dei mitologici Commodore Amiga e Atari …

Packages per i circuiti integrati

Sono di varie forme e dimensioni ma tutti hanno il medesimo scopo: proteggere il chip al suo interno, consentirne sia la dissipazione di calore verso l’esterno che la connessione al circuito elettronico di cui farà parte. Adistanza di circa di cinquant’anni dalla realizzazione del primo circuito integrato, oggi il mercato della componentistica elettronica conta una numerosa moltitudine di circuiti integrati, i quali, esternamente, si distinguono per il loro package o contenitore. La pressante spinta evolutiva di questi componenti a semiconduttore, regolata dalle attuali tecnologie di produzione automatizzate, inevitabilmente trascina con sé il problema dell’inscatolamento, ovvero la realizzazione del package più idoneo al funzionamento ed al montaggio dello stesso IC su un circuito. Nota  storica Storicamente l’invenzione del …

Verifica e integrità nella trasmissione dati

La trasmissione di dati, indipendentemente dal canale scelto, è sempre soggetta a problemi che possono provocare errori di ricezione. È quindi necessario predisporre una serie di strumenti che consentano di minimizzare il grado di errore o assicurare l’integrità dell’informazione. Tra i vari sistemi esistenti, analizziamo in questo articolo l’uso di IpSec per un sistema embedded. La verifica e il controllo dell’integrità dei dati è un argomento decisamente interessante e, allo stesso tempo, molto sentito in qualsiasi applicazione, in special modo in quelle che devono condividere strutture dati. Oggi, inoltre, con la diffusione dei nuovi mezzi trasmessivi, vedi Internet e i suoi innumerevoli protocolli, diventa urgente e necessario definire nuovi sistemi di controllo o utilizzare quelli già esistenti. A questo proposito, ad esempio, …