è 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.
Con application maestro è possibile utilizzare moduli firmware preconfezionati all’interno di una qualsiasi applicazione basata sui pic16/pic18. Vedremo come utilizzare Application Maestro per generare moduli integrabili con un progetto d’esempio sviluppato tramite MPLAB IDE. Application Maestro è un applicativo stand-alone facente parte dei tool di sviluppo di Microchip per i microcontrollori delle famiglie PIC16/18. Esso permette di usare dei moduli firmware preconfezionati da Microchip e di configurarli tramite un’interfaccia grafica in modo da utilizzarli all’interno di una qualsiasi applicazione. I moduli firmware riguardano per lo più l’utilizzo di molte delle periferiche dei PIC16/PIC18, e sono disponibili nella maggior parte dei casi nel linguaggio Assembly. …
Questo articolo descrive alcune tecniche utilizzabili per stimare correttamente lo spazio di stack in applicazioni embedded. Tali stime possono essere utilizzate per evitare il fenomeno dello stack overflow, frequente causa di malfunzionamenti applicativi. L’articolo presenta inoltre alcune tecniche di ottimizzazione dello stack per sistemi embedded con e senza RTOS, con particolare riferimento alla condivisione dello stack utilizzata nei sistemi operativi ERIKA Enterprise ed in generale nei sistemi operativi di classe OSEK/VDX. COSA È LA MEMORIA DI STACK? La memoria comunemente denominata stack è una zona di memoria utilizzata per memorizzare variabili automatiche, variabili temporanee, ed indirizzi di ritorno salvati al momento della invocazione delle subroutines. La memoria …
Proponiamo, in questo articolo, un simpaticissimo simulatore del verso di un uccellino, realizzato con la scheda ESPertino e il buzzer a corredo con lo STARTER KIT. Variando i parametri di chiamata di una funzione è possibile cambiare il verso del volatile. Introduzione Imitare il verso degli uccelli, digitalmente, è cosa assai facile. E' sufficiente, infatti, effettuare uno "sweep" di frequenza (vedi figura 1) per ottenere un realistico suono. A ogni modo, le condizioni principali per raggiungere lo scopo sono essenzialmente due: Lo sweep deve essere molto veloce; La frequenza d'inizio e di fine deve risultare abbastanza alta, diciamo almeno …
I dispositivi microchip delle famiglie RFPIC e RFHCS sono dotati di un trasmettitore RF integrato in grado di operare su diverse bande di frequenza a seconda della versione. Questi dispositivi possono trasmettere dati con una veloità massima di 40 Kbps, utilizzando una modulazione ASK o FSK della portante RF generata tramite un PLL. Ecco come calcolare i componenti di un filtro PLL, in modo di garantire le proprietà di stabilità dell'oscillatore e la qualità dell'emissione RF. Il PLL degli rfPIC/rfHCS In figura 1 è raffigurato lo schema a blocchi del PLL degli rfPIC. Nel seguito supporremo di usare una frequenza di …
I brushless DC sono una particolare tipologia di motori sincroni che garantiscono un movimento estremamente preciso a differenza di quelli brushed (con spazzole). Si esaminerà la serie di microcontrollori PIC18Fxx31 della Microchip che fornisce tutti gli strumenti (PCPWM, Quadrature Encoder, ADC ad elevata velocità) per sviluppare applicazioni in tal senso con un time-to-market drasticamente ridotto. Introduzione La sigla BLDC (Brushless DC) indica un motore elettrico a magneti permanenti e senza spazzole. A differenza di uno a spazzole, non ha bisogno di contatti elettrici striscianti sull’albero motore per funzionare. La commutazione tra il rotore e lo statore del motore, infatti, non avviene per via meccanica, ma …
L’utilizzo del meccanismo di pipeline permette al microprocessore di incrementare la sua velocità d’elaborazione. Questo incremento prestazionale fornisce quelle chiavi di lettura per convincere il progettista per l’uso di architetture del genere per le proprie realizzazioni. Negli ultimi anni l’evoluzione della tecnologia dei processori ha portato a definire sempre nuove soluzioni architetturali: da soluzioni basate su CISC a quelle RISC per approdare a quelle di tipo VLIW. La tecnologia che avuto il maggior seguito è certamente quella RISC: la chiave vincente è basata su due proposte tecnologiche convincenti: ➤ un formato di istruzione fisso, non eccessivamente esteso, e di tipo load-store; …
I sistemi elettronici sono sempre più presenti nel settore automotive. oggi si tende a sostituire i classici sistemi idro-meccanici con sistemi puramente elettronici che siano più affidabili e faulttolerant. un esempio sono i sistemi x-bywire. per implementare tali tecnologie sono indispensabili protocolli affidabili e flessibili. tra quelli emergenti sicuramente il protocollo flexray riveste un ruolo preminente. Con il termine FlexRay si intende un protocollo di comunicazione per sistemi distribuiti. Esso è stato sviluppato esclusivamente per applicazioni automotive, sebbene possa essere utilizzano anche in altri campi (per ulteriori informazioni si faccia riferimento all’approfondimento “Requisiti nel settore automotive”). È stato sviluppato dal consorzio FlexRay fondato nel 1999. Tra i membri iniziali si …
La sicurezza dei dati trasmessi rende il nostro sistema affidabile, ma come possiamo realizzare un sistema del genere? da un punto di vista software, la risposta a questo quesito si trova in un algoritmo di crc. Gli algoritmi utilizzati per calcolare il checksum sono basati sulla tecnica di CRC. Per usare la terminologia anglosassone, il Cyclic Redundancy Check (CRC) è una tecnica utilizzata per rilevare errori in un flusso di dati trasmessi o in un buffer in memoria. I codici CRC-16 e CRC-CCITT hanno le seguenti caratteristiche: ➤ Rilevano tutti gli errori singoli e doppi ➤ Rilevano tutti gli errori di un numero dispari di bit ➤ Tutti …
Questo articolo introduce la problematica dello studio dei sistemi real-time in situazioni di sovraccarico, ovvero in quelle situazioni in cui la capacità di calcolo richiesta al sistema eccede il tempo a disposizione. L'articolo illustra il comportamento dei sistemi real-time in queste condizioni limite, consigliando una serie di possibili azioni correttive. Gli effetti indesiderati legati ad una condizione di sovraccarico sono legati all’esecuzione di task critici oltre i limiti temporali richiesti dall’applicazione. La figura 1 mostra un sistema composto da 3 task. Nel caso a), il sistema funziona correttamente. Una situazione di sovraccarico sul primo task (caso b) può provocare il mancato rispetto dei …
Gli strumenti di misura non sono tutti uguali tra loro. Uno dei parametri che li differenzia e la loro precisione che ne determina, ovviamente, anche il costo. Facciamo una panoramica dell'argomento evidenziando gli aspetti più importanti. Introduzione Per misurare i parametri elettrici ed elettronici di un circuito o di un componente elettronico si utilizzano gli strumenti di misura (tester, voltmetri, capacimetri, induttanzimetri, amperometri, ohmmetri, ecc). Quando si effettua una misura di un circuito elettrico o elettronico con uno strumento di misura, al momento del suo collegamento si modificano le sue caratteristiche globali in quanto esso costituisce, a tutti gli …
Trascurare gli aspetti di sicurezza e di robustezza del codice sviluppato in linguaggio C non è mai consigliato. É dimostrato che malfunzionamenti dovuti alla scarsa sicurezza possono pregiudicare l'affidabilità del sistema stesso. I difetti del software sono la primaria causa della vulnerabilità del codice. L’organismo CERT/CC ha osservato che, attraverso l’analisi di migliaia di casi sulla vulnerabilità, la maggior incidenza di questo fenomeno è da imputare a comuni errori di programmazione: da un cattivo dimensionamento delle variabili ad un errato uso delle chiamate di sistema. Il CERT Secure Coding, attraverso l’azione integrata, di sviluppatori e organizzazioni, mira a identificare le situazioni critiche, a catalogarle e a inviare le informazioni agli addetti ai lavori attraverso …
Il kit di ESPertino prevede, tra gli altri, il sensore di umidità e di temperatura DHT11. Vediamo come utilizzarlo al meglio con la nostra scheda, ricordando che i dati da esso misurati e restituiti sono di tipo digitali e non è necessario alcun ingresso analogico. Utilizzando delle apposite librerie , la gestione del modulo è ancora più semplice. Il sensore Si tratta di un dispositivo per rilevare la temperatura e l'umidità (vedi figura 1). Può essere adottato in tanti ambiti diversi come, ad esempio, deumidificatori, controlli automatici, stazioni meteo, domotica, ecc. Le sue misure risultano molto ridotte e, non …
Il linguaggio VHDL consente di descrivere ed implementare circuiti complessi utilizzando tecnologie quali FPGA, CPLD, ASIC e structured ASIC. In questo articolo verrà fornita un’introduzione al linguaggio, ne verranno descritti gli elementi fondamentali e saranno presi in considerazione diversi esempi di codice sintetizzabile che potranno servire da base per la descrizione di circuiti più complessi. Introduzione Il linguaggio VHDL (Very high speed integrated circuit Hardware Description Language) è stato creato più di 20 anni fa come linguaggio di descrizione dell’hardware, in particolare di circuiti digitali. Da allora ha assunto un’importanza sempre maggiore in campo industriale tanto da essere standardizzato in diverse riprese dalla IEEE. La sua importanza deriva dal fatto che oltre alle applicazioni iniziali …
Numerosi sono i sistemi di comunicazione impiegati per lo scambio delle informazioni tra le varie ECU (Electronic Control Unit) di un autoveicolo. In particolare il BUS LIN viene utilizzato per connessioni locali di sottosistemi sensori e attuatori. All’interno di un autoveicolo sono presenti diversi sistemi di comunicazione su bus seriali. Il più affermato è probabilmente il CAN bus per le sue caratteristiche di robustezza e semplicità. L’evoluzione tecnologica ha portato alla realizzazione di nuovi bus di comunicazione ad esempio: Flexray e TTT-CAN. Si stanno anche affermando nuovi bus ad alta velocità quali MOST of Firewire per applicazioni multimediali a bordo del veicolo. Il protocollo LIN (Local Interconnect Network) nasce invece per …
Molte applicazioni PoE fanno uso di alimentazioni ausiliarie, tipicamente degli alimentatori brick, connessi al dispositivo alimentato (Powered Device o PD), dotati di un connettore maschio per la presa a muro, denominato "WALL WART" perchè, essendo ingombrante, tende a bloccare anche le prese vicine. L'integrazione dell'alimentazione ausiliaria può essere un compito arduo e il progettista di sistemi PoE deve comprendere i vari metodi e i relativi compromessi che esistono per ciascuno di essi. Le tre configurazioni comunemente usate per aggiungere un’alimentazione ausiliaria ai sistemi PoE, consistono nel multiplexare l’alimentazione ausiliaria con quella PoE nei seguenti modi: ➤ attraverso la sezione sostituibile a caldo (hot …
L'elaborazione digitale dei segnali consente di ottenere risultati di gran lunga superiori a quelli che si avrebbero con un'elaborazione analogica. In quest'ambito hanno riscosso grande successo i DSP, utilizzati ormai nei più svariati campi applicativi, tra cui audio e video. Nell'articolo si analizzerà una particolare famiglia di Digital Signal Processor prodotti della Analog Devices: gli Sharc. Un DSP (Digital Signal Processor) ha il compito di acquisire segnali del “mondo reale” come voce, audio, video ed altri parametri analogici, digitalizzarli, manipolarli tramite opportune operazione e quindi restituirli nel dominio analogico. Un DSP è progettato per eseguire funzioni matematiche come addizione, sottrazione, moltiplicazione e divisione a velocità molto maggiori rispetto …
La preemption è la possibilità da parte di un sistema di interrompere una attività in corso per eseguirne un’altra in quel momento giudicata “più importante”. Esempi di preemption sono l’interruzione dell’esecuzione del codice di un microcontrollore a causa dell’arrivo di un interrupt, il termine di un quanto di tempo in un sistema operativo time-sharing, oppure la preemption dovuta all’attivazione di un task ad alta priorità in un sistema operativo real-time. Questo articolo descrive le principali caratteristiche delle tecniche di scheduling preemptive e non preemptive utilizzabili nei dispositivi a microcontrollore con sistemi operativi di classe OSEK. Introduzione I sistemi di elaborazione embedded possono …
Tra i componenti presenti nel kit di ESPertino è presente anche un piccolo buzzer, con cui si possono realizzare tanti progetti. Come si sa, si tratta di un cicalino che ha lo scopo di emettere una segnalazione audio. Quello utilizzato per l'articolo è un modello dotato di oscillatore interno. Introduzione Per chi ancora non lo sapesse (ma pensiamo proprio di no), ESPertino è una scheda basata su ESP32, progettata e prodotta in Italia da Elettronica Open Source. Permette di realizzare facilmente qualsiasi tipologia di applicazione e di sistema. Per agevolare ancora di più i progettisti è a disposizione il …
NTCM-HP-10K è un termistore di tipo NTC (Negative Temperature Coefficient) che fa parte del Kit di ESPertino. I suoi utilizzi possono essere i più disparati ma fanno sempre capo alla misura della temperatura. Esso si comporta come una resistenza variabile il cui valore diminuisce con l'aumentare della temperatura. Introduzione Per chi ancora non lo sapesse, ESPertino è una scheda basata su ESP32, progettata e prodotta in Italia da Elettronica Open Source. Permette di realizzare facilmente qualsiasi tipologia di applicazione e di sistema. Per agevolare ancora di più i progettisti è a disposizione il Kit ESPertino, una fantastica raccolta di …
Come in tutti i mercati, quando si parla di innovazione bisogna considerare molti aspetti legati alla sicurezza sia in termini di Safety che Security. Tutti e due svolgono un ruolo essenziale nel mercato automotive ed embedded dove la sicurezza dei dati implica una sicurezza funzionale. Nell'insieme dell'innovazione troviamo termini come IoT, Industry 4.0, Automotive e guida autonoma, tecnologie spaziali. Lo sviluppo di prodotti intelligenti e nello stesso tempo collegati ha bisogno di un supporto hardware e software per velocizzare il time-to-market e stare al passo con i tempi, e nello stesso tempo disporre di soluzioni che possono affrontare i …