Circa dieci anni fa, l'ambiente embedded era più semplice e i kit di sviluppo costituivano un eccellente punto di partenza per creare progetti embedded. Con la stessa eccitazione di un bambino che, nel giorno del compleanno, apre il suo regalo, probabilmente un tecnico trovava in un kit un bundle di risorse di progettazione decisamente interessante: una scheda di valutazione con un processore o un microcontroller e/o un FPGA, memoria e periferiche, un gruppo di strumenti di sviluppo software, forse anche un IDE (Integrated Development Environment) completo ed, eventualmente, un tipo di sistema operativo. Oggi i kit contengono forse ancora più sorprese, ma rimangono l'ovvio punto di partenza per un nuovo progetto embedded? Non è affatto chiaro.
Inizio di un progetto
Per molti progetti, i kit di sviluppo sono l'ideale per realizzare un primo prototipo. Utilizzati in combinazione con lo sviluppo del software embedded e la configurazione di una piccola costellazione di componenti e di un fascio di cavi, i kit hanno consentito ai progettisti di creare almeno un'anticipazione del prodotto finale desiderato. Naturalmente, i kit di sviluppo vengono spesso difesi con entusiasmo dagli sviluppatori orientati al software che preferiscono non farsi coinvolgere nella progettazione del layout dei circuiti stampati. Risolvere i problemi di progettazione dei circuiti stampati può rivelarsi difficile e costoso. Per questo motivo, utilizzando un kit, lo sviluppatore software può contare su un importante vantaggio: la rimozione dell'hardware dall'equazione della progettazione embedded, che gli offre più tempo per concentrarsi sulla sua competenza chiave - scrivere il codice.
Prototipazione dell'hardware
Tuttavia, per molte aziende che sviluppano hardware elettronico, non di rado la progettazione del layout deve precedere lo sviluppo software. Questa situazione può comportare costi e rischi significativi, in quanto i progettisti hardware devono sviluppare un prototipo altamente funzionale: in caso contrario, il debug non sarebbe possibile. Negli anni, comunque, la prototipazione di schede è divenuta progressivamente meno costosa e più competitiva, con il risultato che oggi sono sempre più numerosi gli sviluppatori che hanno trovato un'alternativa efficace al kit di sviluppo. Infatti è diventato possibile realizzare un progetto hardware iniziale, comprensivo di processore, memoria, periferiche e gestione dell'alimentazione, e richiedere la creazione di prototipi a un centro locale specializzato in circuiti stampati, anche in volumi limitati e a costi ridotti. Quindi il prototipo di scheda può essere utilizzato come prima iterazione del progetto e fungere da kit di sviluppo. Il prototipo sarà più simile al prodotto finale di quanto sarebbe possibile utilizzando un kit predefinito e consentirà di realizzare più agevolmente progetti migliorati che, in sostanza, risulteranno iterazioni corrette della prima versione.
Strumenti open source
Oltre alla notevole riduzione dei costi delle schede personalizzate, si è assistito a una crescita esponenziale della disponibilità di strumenti gratuiti e multifunzione per la progettazione dei circuiti stampati, come DesignSpark PCB, e del relativo software di prova; per non parlare della proliferazione del software open source, in tutte le sue varianti: dai sistemi operativi, ai modelli di progetti e alle librerie di codici. Si moltipli cano anche i progetti di hardware e i diritti di proprietà intellettuale open source, grazie ai quali, ad esempio, un'interfaccia di memoria ad alta velocità potenzialmente problematica che può essere riutilizzata su una scheda, insieme a driver e stack software facilmente scaricabili. Pertanto gli sviluppatori non sono più obbligati a utilizzare una scheda standard "Plain Vanilla" con una gamma di componenti selezionati dal fornitore del kit nel tentativo di soddisfare tutte le esigenze dei clienti oppure a tollerare la scarsità di periferiche idonee nelle configurazioni dei kit comuni, che si dimostrano inadeguate per chi sviluppa applicazioni più specifiche.
Adattamento all'ambiente
Senza dubbio, tutto questo ha condotto a un graduale mutamento della raison d'être del kit di sviluppo. Come qualsiasi altra cosa, anche il kit di sviluppo deve adattarsi per riuscire a sopravvivere in un mercato in evoluzione. Una conseguenza significativa è stata la considerevole diminuzione del prezzo dei kit, passato da migliaia a decine di dollari o euro. Ora molti kit di sviluppo offrono una gamma di risorse decisamente più varia, compresi strumenti software specifici che si integrano in IDE disponibili gratuitamente e librerie di progettazione di base, per contribuire ad accelerare il lavoro. Anche i produttori di MCU, processori e FPGA forniscono, in misura crescente, kit con progetti che fanno riferimento all'hardware e a stack software specifici, concepiti su misura per requisiti più pertinenti alle applicazioni. Un esempio di un kit orientato alle applicazioni viene fornito da Texas Instruments (TI), che ha proposto una piattaforma di sviluppo basata sul proprio DSP DaVinci e mirata alle applicazioni video digitali. TI inoltre produce kit disponibili per altri mercati, specifici per applicazioni, quali i settori wireless, sanitario, automobilistico, della sicurezza e consumer.
Selezione del processore
Ovviamente, un kit rimane uno strumento molto utile nella selezione del processore o del microcontroller di sistema per un nuovo progetto. Di solito, i kit si basano sugli MCU più diffusi e largamente disponibili: la sicurezza della reperibilità sul mercato non è mai un aspetto da sottovalutare e la scelta di un MCU prossimo all'obsolescenza può costituire un rischio serio. Più importante, utilizzando un kit i tecnici possono creare rapidamente un modello di prova: ciò consentirà loro di assicurarsi che il microcontroller eroghi le prestazioni richieste e che i canali di comunicazione siano tutti funzionanti, mentre viene utilizzato il programma di esecuzione, oppure di verificare se un'idea può funzionare su un FPGA economico.
Creazione di una comunità
Inoltre oggi i principali fornitori di dispositivi al silicio stanno dedicando un impegno sempre maggiore alla creazione delle rispettive comunità di progettazione, allo scopo di aumentare la fedeltà al marchio e consolidare le relazioni con i tecnici. Tali comunità contribuiscono a raccogliere le informazioni degli sviluppatori, offrono strumenti software online gratuiti, altro software e risorse di proprietà intellettuale, oltre a rendere disponibili forum di discussione e supporto online che stimolano i tecnici a condividere idee e risolvere problemi, accelerando in ultima analisi lo sviluppo e l'innovazione.
Un ruolo in evoluzione?
Per il momento, nonostante la maggiore differenziazione, l'aumento delle funzionalità e il contributo di un ecosistema di supporto molto più ampio, continuiamo a chiederci: ci stiamo avvicinando al momento in cui il ruolo dei kit non sarà più dominante nel ciclo di sviluppo?