La prototipazione rapida è una tecnica di progettazione sviluppatasi soprattutto negli ultimi anni grazie alla disponibilità di tecnologie hardware e software che consentono al progettista di avere disponibile in tempi rapidi un sistema prototipale che gli consente di diminuire i tempi di sviluppo, di ridurre i costi legati agli errori di progettazione, di facilitare le modifiche in fase di ingegnerizzazione e di estendere la vita del prodotto. Prototipare è diventato sempre più difficile, soprattutto nel campo dell’elettronica digitale. I componenti sono sempre più piccoli e allo stesso tempo sempre più complessi e soprattutto operano a frequenze molto elevate, rendendo in tal modo difficoltose le operazioni di misura e di accesso esterno, oltre a creare onerose problematiche nella realizzazione del circuito stampato che deve ospitare i componenti. Le attrezzature complementari necessarie a realizzare un prototipo “in casa” sono notevoli e costose, per cui la scelta di prototipare direttamente è una scelta conveniente solo sotto certe condizioni e per specifici motivi. Diversamente conviene optare per una soluzione “off the shelf”, in particolare per quelle soluzioni di prototipazione rapida offerte dagli stessi produttori di componenti, oltre che numerose terze parti specializzate proprio in questa tipologia di offerta. Lo sviluppo di sistemi complessi comporta notevoli problematiche di costi, tempi e ottimizzazione, soprattutto quando è necessario disporre di un sistema prototipale che funzionalmente deve essere molto fedele al sistema in fase di produzione. La prototipazione rapida è un’opzione di cui dispongono da alcuni anni gli sviluppatori grazie al supporto che i produttori di hardware e di software hanno reso disponibile schede di prototipazione rapida e ambienti di modellazione per lo sviluppo diretto su tali schede. Le schede di prototipazione rapida vengono realizzate da parte dei produttori di processori e di logica programmabile, o da terze parti per conto di tali produttori. Queste schede integrano una grande quantità di risolse di sistema che, insieme al processore di riferimento, consentono allo sviluppatore di avere una grande quantità di funzionalità al contorno che lo sviluppatore, diversamente, dovrebbe realizzare appositamente. Il costo di tali schede, tra l’altro, è estremamente inferiore rispetto a quello necessario per lo sviluppo custom. Le schede di prototipazione rapida possono interfacciarsi direttamente al sistema di sviluppo senza richiedere uno specifico emulatore. Questo è normalmente residente sulla scheda di prototipazione stessa, quindi a minimo impatto economico e di sistema. Le schede di prototipazione rapida ospitano anche, oltre al processore o alla logica programmabile di riferimento, anche sottosistemi funzionali all’applicazione, come per esempio quello della comunicazione RF oppure il sottosistema audio, oltre alle risorse di comunicazione e memorizzazione necessarie per interagire con altri sistemi. Queste funzionalità che non necessariamente saranno integrate nell’applicazione finale, in fase di prototipazione sono particolarmente utili per il test e la verifica funzionale. Lo sforzo di progettazione e il costo di queste funzionalità di sistema al contorno sono praticamente nulle se comparate a quelle necessarie per una realizzazione custom del prototipo.
Un sistema modulare riconfigurabile
Il Tower System di Freescale è un sistema hardware modulare riconfigurabile inteso ad assemblare una applicazione in termini prototipali in tempi rapidi e con molta flessibilità. Il concetto su cui si basa è abbastanza semplice. Utilizza una serie di moduli hardware di base, li connette tra loro e configura il progetto. I moduli hardware principali sono due, quelli che implementano la Mcu e quelli che implementano le periferiche. Le elevator boards sono schede ad alta densità e basso costo con connettori Pci Express per quattro schede modulari. Queste schede di espansione modulare rendono disponibili i segnali seriali e di bus e la circuiteria di regolazione dell’alimentazione. Inoltre, la disponibilità di connettori esterni, consente l’assemblaggio di dispositivi esterni come le tastiere e i display Lcd.
I moduli Mcu/Mpu sono in grado di operare in modalità stand alone o in combinazione con i moduli del Tower System, come le interfacce utenti (bottoni, Led, potenziometri, interruttori, ecc.), i sensori, le interfacce di debug.
Dal prototipo al target finale
Le schede Cots (Commercial Off-the-shelf) condividono l’architettura riconfigurabile di I/O (RIO) che combina un processore real-time, un’Fpga e un ampia gamma di I/O, sia analogico che digitale, oltre al controllo dell’azionamento e alla comunicazione. Questa architettura standard consente la prototipazione rapida perché è affiancata dall’ambiente grafico di sviluppo LabView che consente la prototipazione rapida di sistemi embedded di elevata complessità funzionale. Il codice prodotto per questa piattaforma di prototipazione è completamente riutilizzabile, quindi il livello di prototipazione è molto vicino a quello del target finale, con una notevole ottimizzazione dei costi in quanto, il sistema finale può utilizzare lo stesso hardware del prototipo. Il vantaggio di questo sistema di prototipazione rapida è quello di poter fare lo scaling down dell’applicazione senza dover riprogettare il sistema a livello hardware. Le schede single-board RIO consentono di fatto di ospitare l’applicazione opportunamente scalata in termini dimensionali ma senza riprogettazione del codice applicativo e di sistema. Questa scheda è a basso costo e non richiede costi aggiuntivi per l’integrazione nel sistema finale. Utilizzando la piattaforma di prototipazione RIO congiuntamente all’ambiente di modellazione LabView, si ottiene in tempi rapidi il prototipo. Questo, dopo essere stato validato, può essere scalato sulla single-board. Dall’ambiente LabView viene generato il codice per questa single-board, utilizzando direttamente quello modellato per il prototipo. Le caratteristiche della single-board RIO sono particolarmente ottimizzate per le applicazione di acquisizione dati e controllo. La programmazione è di natura grafica e supportata dall’ambiente di modellazione LabView. Il processore integrato sulla scheda è un real-time processor con caratteristiche di elevata affidabilità e capace di eseguire algoritmi di signal processing. La scheda ospita anche tutto il sottosistema di I/O digitale e quello analogico. La Fpga integrata consente allo sviluppatore di ottenere un elevato livello di customizzazione del prototipo. La Fpga è connessa direttamente all’I/O e al real-time processor attraverso Pci bus. Il trasferimento dati tra I/O e Fpga e tra Fpga e real-time processor è supportato da LabView grazie a un meccanismo di trasferimento dati che consente l’analisi real-time dei dati, il post-processing, la raccolta dati e la comunicazione verso host.
Rapid prototyping per signal processing ad alte prestazioni
Il real-time e il signal processing sono aree applicative particolarmente impegnative per gli sviluppatori. In questo ambito, la disponibilità di schede di prototipazione rapida, soprattutto quando implicano il trattamento di segnali video, è quasi una condizione essenziale per affrontare le varie problematiche applicative. Un esempio emblematico di scheda di prototipazione rapida per il video signal processing è la High Definition Digital Video Processing Board (DM6467) di Texas Instruments. Questa è una scheda di prototipazione rapida basata sul Dsp ad elevatissime prestazioni TMS320DM6467. Ha un fattore di forma piccolo ed è ottimizzata per ospitare applicazioni di elaborazione video ad alte prestazioni basate sulla tecnologia DaVinci e Omap di Texas Instruments. La scheda supporta MontaVista Linux 2.6.10 e funzionalità di I/O Video e Audio, la comunicazione 10/100/1000 Mb/s Ethernet, RS232, RS485, USB 2.0, VLYNQ, HDD, RTC, UART/IrDA/CIR, PCI 2.3, SPI e GPIO. L’ambiente di sviluppo, nelle applicazioni Dsp ad elevate prestazioni come l’imaging e il video processing, è determinante nel rendere particolarmente effettiva la disponibilità di schede di prototipazione rapida. In questi casi, oltre ad ambienti di modellazione direttamente connettibili alla schede di prototipazione rapida, sono necessari Ide (Integrated Development Environment) particolarmente ottimizzati. In questo caso Code Composer Studio, l’Ide di Texas Instruments, esalta le peculiarità della scheda di prototipazione rapida, mettendo a disposizione dello sviluppatore componenti di software di sistema come il Dsp/Bios (un kernel real-time) e il set di Dsp Algorithm Standard TMS320. Queste risorse software consentono di ridurre notevolmente i tempi di prototipazione in quanto rendono disponibili subito allo sviluppatore funzionalità di sistema e algoritmi matematici particolarmente complessi. La generazione ottimizzata del codice, soprattutto se si tratta di codice ad alto livello come il C, è fondamentale per questa piattaforma di computing in quanto diversamente, date le elevate prestazioni che le applicazioni video richiedono. Il compilatore basato su profiler, è in questo caso capace di valutare le funzioni embedded del software e di decidere a come ottimizzare da dimensione del codice in funzione delle prestazioni. Grazie a tale supporto, lo sviluppatore riesce a sfruttare al massimo la caratteristica di prototipazione rapida offerta dalla scheda Dsp così predisposta.