Usb e progettazione embedded

EMBEDDED –

La Usb communication è diventata una tecnologia abilitante per tutte le applicazioni embedded in relazione al mondo dei computer standard che costituisce la quasi totalità del mondo dell’elettronica, sia consumer che industriale.

La comunicazione basata su Usb per i sistemi embedded rappresenta la modalità, oltre che standard, più robusta e rapida da integrare, grazie alla completa diffusione a livello di sistemi desktop e portatili di natura personale e allo sviluppo di componentistica ad elevato livello di integrazione funzionale. Future Technology Devices International si è specializzata nella conversione a Usb delle funzionalità di comunicazione dei sistemi embedded, in particolare quella standard tipo RS232, mettendo a disposizione dello sviluppatore sia la tecnologia hardware su silicio, sia quella software (driver royalty free). Oltre a realizzare dispositivi ad elevato livello di integrazione che rendono Usb-compatibile vari standard di comunicazione seriale tipicamente presenti nei sistemi embedded, FTDI ha realizzato anche funzionalità di sistema all'interno dei suoi dispositivi SoC che consentono di utilizzare la tecnologia di comunicazione Usb come tecnologia abilitante per le applicazioni embedded. La peculiarità dell'approccio di FTDI alla problematica dell'embedding della tecnologia Usb sta nell'integrare a livello microelettronico (su singolo chip) tutta la necessaria funzionalità che richiede l'applicazione. L'obiettivo è quello di portare a livello Usb una serie di capacità di elaborazione e di controllo della comunicazione che consentano di eseguire localmente, e in maniera indipendente dalla Cpu di sistema, tutte le possibili operazioni strettamente legate alla comunicazione Usb e al relativo standard. Questo approccio porta all'embedding nell'embedded, cioè a integrare in maniera trasparente nel dispositivo embedded la tecnologia Usb, senza modificare in maniera significativa la natura funzionale e strutturale dell'applicazione embedded originale.
Un esempio emblematico di questo approccio è la recente realizzazione da parte di FTDI di una serie di connettori RS232 - DB9 che implementano la comunicazione Usb 2.0 compatibile RS232 sul pinout del connettore DB9. I connettori (sia maschio che femmina) esternamente sono come i connettori RS232 DB9 da Pcb ma internamente hanno tutta l'elettronica integrata per realizzare la conversione RS232-Usb e viceversa. Ovviamente, a fronte di questo embedding hardware è disponibile anche quello software (ovvero i driver Microsoft WHQL certificati per Windows, per Linux e per Mac OS, oltre alla VCP (Virtual COM port e alla D2XX API based).

Dal connettore al microcontrollore
Il livello di integrazione che implica l'embedding Usb è comunque molto elevato, considerando la notevole quantità di funzionalità che tale standard di comunicazione implica. L'integrazione di natura system-on-chip è senza dubbio l'approccio migliore per supportare le esigenze di integrazione a livello embedded. Per gestire il crescente traffico di dati che la Usb è destinata a supportare in conseguenza della crescente complessità delle applicazioni, è necessario utilizzare un microcontrollore per gestire tutta la parte di interazione che richiede la periferica durante il suo funzionamento. Ciò è importante per ridurre il carico di elaborazione per la Cpu del sistema, impegnata normalmente nell'elaborazione dei dati dell'applicazione. La funzionalità di controllo viene implementata da un microcontrollore nella componente master del dispositivo Usb. Questo deve gestire tutta la parte a basso livello della segnalazione richiesta dalle linee Usb. La gestione del trasferimento dei dati è a pacchetto, quindi insieme ai dati vanno gestiti anche i controlli (sincronizzazione, indirizzamento, verifica, ecc.).
L' Embedded Dual Usb Host Controller Vinculum-II di FTDI è l'esempio di trasferimento su singolo chip di tutta la funzionalità necessaria per il trasferimento dati lasciando libera la Cpu per le applicazioni utente. A tale scopo integra un embedded core processor ad architettura Harvard a 16 bit, due interfacce Usb 2.0 (host/slave), 256 kbytes di memoria flash, 16 kbyte di Ram, una Uart programmabile fino a 3 MBaud, due Spi slave e una master, e altre risorse tipiche di un microcontrollore come i timer, i Pwm e l'I/O digitale. La disponibilità di un SoC programmabile in maniera embedded in un ambiente di sviluppo basato sul linguaggio C e supportato da interfaccia di emulazione, rende particolarmente semplice ed efficace lo sviluppo di applicazioni che integrano la funzionalità Usb. L'alto livello funzionale di questo dispositivo è giustificato dalla complessità crescente del processo di trasferimento dati nei dispositivi embedded. A questo scopo viene dato anche il supporto del sistema operativo di natura real-time, in modo da gestire con modalità più efficienti il complesso di processi concorrenti che deve gestire il master, sia durante il trasferimento dei dati, sia durante la gestione degli slave.

Usb e logica programmabile
Nella progettazione dei sistemi embedded la logica programmabile, in particolare la Fpga, svolge un ruolo fondamentale per la realizzazione di funzionalità applicative non realizzabili con i microcontrollori. La Usb è l'interfaccia di comunicazione che meglio realizza l'enabling della Fpga sulla piattaforma applicativa. L'Fpga a sua volta può essere parte della stessa Usb, di cui un canale utilizzato per programmare la Fpga e gli altri per la comunicazione dei dati. La memoria dell'Fpga è una flash ad accesso seriale Spi, quindi viene programmata senza l'utilizzo di un programmer esterno direttamente tramite uno dei canali Usb collegato alla Spi. In applicazioni basate su Fpga più complesse, la Usb può sostituire parti funzionali alquanto complesse, come ad esempio la logica JTtag. L'Fpga viene programmata e verificata direttamente da Pc via Usb. FTDI rende disponibile anche questa tecnologia di Usb enabling della logica programmabile su piattaforme Fpga di vari costruttori, tra cui Xilinx (Spartan 3E), con il modulo DLP-Fpga e Celeritous, e Lattice.

Applicazioni embedded della Usb
Le applicazioni embedded della tecnologia Usb sono innumerevoli in quanto le stesse applicazioni embedded creano le condizioni per nuove applicazioni. Molte delle applicazioni embedded derivano da quelle basate su Pc proprio per la disponibilità su Pc dell'interfaccia Usb. Una tipica applicazione è la riproduzione di brani musicali memorizzati su Usb Flash Drive in vari formati (Mp3, wav, ecc.). Normalmente questa funzionalità richiede un Pc con le sue risorse di sistema operativo (per leggere il file system) e di riproduzione multimedia, o un player audio musicale su cui però è necessario trasferire il contenuto della Usb Flash Drive. Il kit Vmusic di FTDI, basato sul SoC Vinculum, dimostra come questa applicazione possa semplicemente essere ricondotta dal punto di vista hardware a un singolo componente (il SoC Vinculum) e dal punto di vista software all'opportuno utilizzo del firmware eseguibile da tale dispositivo. Questo, non solo è in grado di eseguire il protocollo di comunicazione Usb per gestire come host l'interfaccia e il trasferimento dei dati da e verso la memoria Flash, ma ingloba anche le classi del dispositivo Usb. Quando questo dispositivo si interfaccia verso un dispositivo di massa come una Usb Flash Drive, esso gestisce in maniera trasparente la Fat (che permette di accedere ai file presenti sul Drive) attraverso i vari canali di comunicazione (Uart, Spi, Parallel I/O, ecc.) grazie a un set di comandi appropriati implementati nel firmware eseguibile dalla sua Cpu. Un altro esempio di applicazione embedded derivata da applicazioni consumer è il backup delle immagini memorizzate nelle macchine fotografiche digitali. Queste, per liberare la memoria, quindi per eseguire il backup delle foto, richiedono che si disponga di un sistema desktop in grado di leggere il contenuto della memoria su cui sono memorizzate le foto. Copiarle su un qualsiasi dispositivo Usb Flash Drive senza utilizzare un Pc è ovviamente più pratico. Il reference design VF2F2 (backup digital camera to Usb Flash Drive) è un esempio di come ottenere una così importante funzionalità utilizzando un solo chip. Il dispositivo SoC Vinculum è in grado di eseguire, semplicemente con un comando basato su un pulsante, il trasferimento di tutto il contenuto della memoria di una macchina fotografica nella memoria Usb Flash Drive, creando una cartella riconoscibile da qualsiasi file system di sistema operativo e memorizzando all'interno di questa cartella tutte le immagini nel formato creato dalla macchina fotografica digitale. A un costo limitato si rende disponibile a livello end-user un dispositivo che consente di eseguire al volo il backup di una macchina fotografica, liberando il tal modo la sua memoria, senza essere obbligati a portare con se un Pc.

Pubblica i tuoi commenti