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.

Multithreading

Quali sono le considerazioni da tener presenti per sviluppare un kernel per la gestione di un ambiente multithread? in questo articolo vediamo quali sono le caratteristiche di minimal multithread (mmt), il nostro kernel didattico. In questo articolo vedremo come realizzare un kernel per il multithreading, vedremo le considerazioni da tenere presenti e un’applicazione per ambiente windows. E’ possibile, poi, portare questo kernel verso altri ambienti grazie alla presenza di un Board Support Package. Architettura del sistema Le relazioni tra un programma di un generico utente e la nostra libreria MMT non è mediata da nessuna interfaccia: ogni porzione del codice utente è in grado di …

Simulazione dei microcontrollori con Proteus

Utilizziamo il potente simulatore della labcenter electronics per testare e collaudare i propri progetti a microcontrollore. Ne hanno fatto di strada i software di simulazione elettronica. Inizialmente essi riuscivano a simulare solamente i circuiti statici ed analogici. Col tempo furono introdotte le possibilità di simulazione nell’ambito del transitorio e del digitale. Oggi i moderni programmi riescono a fare ben altro. Sono in grado infatti di simulare non solo i normali circuiti digitali ed analogici, ma anche di eseguire il software presente all’interno dei microcontrollori, utilizzati quali componenti virtuali del circuito preso in esame. un’applicazione completa al computer, simulando  il circuito come se lo si avesse realmente tra le mani. Microcontrollori e Microprocessori Il Proteus …

Il regolatore LM26400Y per l’alimentazione di sistemi MULTI-RAIL

Un regolatore buck che accetta in ingresso tensioni da 3v a 20v ed integra sia il powerfet che l’anello di regolazione. L’lm26400y sembra essere la soluzione ottimale per sistemi che richiedono linee di alimentazione multiple. I sistemi elettronici moderni sono normalmente caratterizzati dalla presenza di numerose linee di alimentazione ciascuna delle quali utilizza uno specifico regolatore point-of-load. La linea comune di ingresso di questi regolatori può essere di volta in volta un adattatore da rete AC, un bus intermedio, una batteria, o una linea di alimentazione USB. Di norma è desiderabile trovare una soluzione in grado di accettare una ampia gamma di tensioni di …

Microchip application Maestro

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

Tecniche di stima e riduzione dello stack nei sistemi embedded

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 …

Il Kit di ESPertino: simulatore di uccellino

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 …

Filtri PLL per rfPIC

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 …

Controllo di motori brushless

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 …

Sharc Pipeline

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

Il protocollo Flexray: caratteristiche e funzionamento

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 …

CRC su MSP430

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 …

Il problema dei sovraccarichi nei sistemi real-time

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 …

Le classi di precisione

Gli strumenti di misura non sono tutti uguali tra loro. Uno dei parametri che li differenzia è 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 …

Scrivere un codice C sicuro

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: temperatura e umidità sotto controllo con il DHT11

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

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 …

Il Bus LIN

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 …

L’alimentazione ausiliaria estende le applicazioni PoE

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 …

Sharc Digital Signal Processor

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 …

Gestione della Preemption nei sistemi a microcontrollore

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 …

Send this to a friend