Verso la prototipazione rapida

La complessità dei sistemi embedded negli ultimi anni ha decuplicato la dimensione del codice e la quantità di unità intelligenti integrate in un singolo contesto applicativo. Lo sviluppo e la prototipazione sono diventate attività molto impegnative per gli sviluppatori, i quali trovano conforto alle loro problematiche negli ambienti di modellazione e sviluppo che fanno ricorso in maniera sempre più massiccia alla modellazione e al supporto di hardware Cots (Commercial off-the-shelf). La prototipazione è una fase preliminare dello sviluppo che consente di verificare in campo l’effettiva funzionalità del sistema, soprattutto quando questo interagisce con l’uomo o con l’ambiente fisico. Dato che nella maggior parte dei casi applicativi, il sistema elabora informazioni, la prototipazione si basa su piattaforme di elaborazione analogiche o digitali a seconda della natura stessa dell’informazione (continua o discreta). Le piattaforme digitali offrono la possibilità della programmazione, sia software che hardware, e offrono di conseguenza un elevato livello di flessibilità ed efficienza nel pervenire a un prototipo molto verosimile in tempi ridotti. L’interazione con il mondo fisico implica anche la disponibilità di dispositivi trasduttori (sensori e attuatori) per ottenere la compatibilità elettrica con il sistema di elaborazione (elettronico). La disponibilità di sensori e attuatori adeguati alle esigenze applicative oggetto di prototipazione è uno dei problemi tecnologici che caratterizza la prototipazione. Malgrado la grande abbondanza di sensori e attuatori off-the shelf, non sempre lo sviluppatore trova disponibile il trasduttore giusto al momento giusto, quindi per prototipare deve svilupparne ad hoc. Situazione questa che limita molto la potenzialità della prototipazione. A tal fine si è sviluppata la prototipazione rapida, una tecnologia di prototipazione che rende disponibile su un’unica piattaforma hardware programmabile tutte le risorse utili alla prototipazione (incluso tutto il sottosistema di trasduzione). Insieme alla tecnologia di prototipazione lo sviluppatore dispone di un’evoluta tecnologia di progettazione (ambienti di sviluppo) compatibile con le piattaforme di prototipazione. Per esempio se la prototipazione è basata sulla tecnologia Fpga, la tecnologia di sviluppo consiste negli strumenti che consentono di pervenire rapidamente e in maniera effettiva alla configurazione del prototipo (code generation) e alla sua validazione (simulazione, emulazione, ecc.).

Dal modello al prototipo

La metodologia della progettazione basata sul modello, o Model System Design, ha nella sua filosofia fondante il concetto di prototipazione. Il Model System Design è una metodologia-tecnologia di progettazione che prevede la simulazione basata sull’hardware e quindi di fatto di avere un prototipo funzionante e validato del sistema finale. La prototipazione basata sul Model System Design di fatto offre vantaggi che la semplice prototipazione diretta non offre, in particolare la possibilità di disporre di una versione software del prototipo su cui, con gli strumenti della simulazione e dell’emulazione, è possibile eseguire il debug del prototipo e pervenire rapidamente a una successiva versione prototipale correttamente funzionante del sistema. Il Model System Design è alla base dell’ambiente di sviluppo e modellazione Matlab-Simulink di Mathworks. In ambiente Matlab, un linguaggio di scripting a oggetti che consente di definire la funzionalità di un sistema e di profilarlo relativamente alla sua funzionalità facendo riferimento all’hardware del sistema finale, che, ove necessario può essere programmato direttamente dal codice di modellazione. Il modello codificato con il linguaggio Matlab consente di eseguire cicli di simulazione non real-time, mentre il prototipo hardware esegue in real-time le stesse funzioni del modello. Una possibilità molto simile a quella della prototipazione hardware viene offerta da Simulink, l’ambiente di modellazione e prototipazione companion di Matlab. Matlab e Simulink sono infatti due ambienti di sviluppo sinergici. La modellazione basata sulla codifica sequenziale a scripting di Matlab può essere integrata in un modello Simulink per completare in maniera efficace ed effettiva il modello di sistema finalizzato alla prototipazione. Simulink è un ambiente di modellazione tramite linguaggio grafico e in tal senso è molto più vicino al concetto di prototipazione di quanto lo sia Matlab. Simulink modella il sistema finale tramite un linguaggio di programmazione grafica e si avvale di una libreria di blocchi funzionali interconnettibili in un contesto di editing grafico. LabView di National Instruments è un altro ambiente di modellazione e sviluppo orientato alla prototipazione. La modellazione è di natura grafica e ciò rende il processo di prototipazione particolarmente rapido ed effettivo.

Pubblica i tuoi commenti