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.

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, …

Stack checking in GCC

Lo stack è un’area di memoria di fondamentale importanza, in modo particolare per le applicazioni embedded. Gli ambienti di cross compilazione forniscono strumenti in grado di definire la sua dimensione e di verificarne l’integrità in fase di run-time. La gestione dello stack passa attraverso un particolare puntatore presente all’interno dell’architettura hardware. Con il termine stack vogliamo identificare una particolare struttura di memoria accessibile attraverso uno speciale registro, lo stack pointer. L’accesso diretto a questa zona di memoria è fortemente sconsigliato per evitare di alterarne il contenuto. Tipicamente, in uno stack sono memorizzate, in maniera dinamica, le variabili utilizzate all’interno di una funzione (variabili locali), i parametri della funzione, i dati necessari per ripristinare il precedente …

Stadi di potenza per il controllo motore

Questo articolo presenta le varie tipologie di driver di potenza per il controllo motore, soffermandosi sulle differenze e sulle tecniche di ottimizzazione. In questo articolo prenderemo in considerazione le diverse tecniche di pilotaggio di un motore in corrente continua. La scelta di una tipologia piuttosto che un’altra può essere legata al tipo di azione che il motore deve svolgere: sono fattori determinanti, per esempio, il fatto di poter invertire il verso di rotazione del motore, oppure la necessità di mantenere il motore frenato. I motori DC hanno un elevato rapporto peso/potenza, un’elevata coppia di spunto (sono ideali per la trazione) e sono facilmente regolabili nella velocità e nella …

CPU Design: Aggiungi una cache a tavola

C’era una volta questo tizio, Gordon Moore, che anni che furono predisse che la capacità di calcolo di un processore sarebbe raddoppiata ogni diciotto mesi circa. La previsione si è avverata e tutt’oggi continua ad avverarsi, ad un livello tale da aver trasformato la speranza in legge. Il problema è che la legge di Moore vale per i processori ma non per le memorie, dove inevitabilmente bisogna infilare i programmi da eseguire. E’ da un bel pezzo ormai che le prestazioni dei processori hanno superato quelle delle memorie, al punto che ormai sono queste a zavorrare l’elaborazione, e al …

Sensori di prossimità

Lo scopo di questo articolo è quello di presentare una panoramica relativa a una famiglia di sensori di grande interesse la cui importanza è cresciuta enormemente grazie ai recenti progressi della tecnologia elettronica: i sensori di prossimità. Anzitutto occorre ricordare brevemente in cosa consiste un sensore e quali possono essere i suoi campi di utilizzo nelle apparecchiature di tipo elettronico. Per sensore si intende in generale un dispositivo in grado di misurare  il valore di una grandezza fisica applicata al suo ingresso, fornendo in uscita una grandezza  il cui valore è funzione della grandezza misurata. Nel nostro caso specifico, restringeremo il campo d’interesse intorno a quei sensori la cui uscita è una grandezza di …

Implementazione della blockchain con Ethereum

In questo articolo vedremo come può essere creata una blockchain privata con Ethereum, un’applicazione pratica che può essere destinata alle grandi aziende che potrebbero aver bisogno di una propria rete, sganciata da quella pubblica, da poter utilizzare per garantire l’integrità di transazioni, dati, log. Una blockchain privata è distribuita su server proprietari, con finalità istituzionali o private, per la salvaguardia di dati. Ethereum è una piattaforma basata su blockchain che permette la generazione di criptovalute e la creazione di applicazioni distribuite o dapps, senza l’utilizzo di un server centrale. Le applicazioni decentralizzate vengono eseguite su una blockchain, una grande …

PearPC: l’arte della simulazione

Simulare o emulare: questo è il problema. Quando non abbiamo ancora il nostro target, vale di più simulare o emulare il comportamento del nostro codice che, per via dei tempi di consegna, deve essere sviluppato in maniera parallela all’hardware? I tempi di consegna del nostro lavoro sono sempre più ravvicinati e non consentono deroghe. Prima di arrivare all’integrazione hardware/software è necessario partire da un software già sufficientemente testato per escludere problemi o congetture. Ora, è chiaro che occorre definire un’attività di verifica preliminare. In mancanza delle risorse fisiche (il nostro target) come possiamo svolgere il nostro lavoro? Può essere opportuno utilizzare strumenti alternativi, quali un simulatore o un emulatore. Dal punto di vista software, probabilmente, lo strumento che …

Controllo di due DC/DC boost con Tiny 13 AVR

Questo semplice progetto mostra come sia possibile regolare due uscite di un convertitore boost utilizzando il microcontrollore Tiny13 AVR dell’Atmel/Microchip. In particolare vengono sfruttate la periferica interna di conversione analogico-digitale e i PWM che il piccolo ma efficiente microcontrollore mette a disposizione. La maggior parte dei dispositivi portatili fa uso di batterie e allo stesso tempo integra uno o più microcontrollori. Sul mercato esistono microcontrollori in grado di funzionare fino a 1,8 V e in questo caso due semplici batterie stilo di tipo AA o AAA sono sufficienti per alimentare il dispositivo.  Tuttavia, molto spesso, sono richieste anche tensioni superiori necessarie per esempio per il  funzionamento dei LED di retro illuminazione di uno schermo LCD che solitamente …

Send this to a friend