Didattica-Ricerca Azienda Eventi NI Developer Zone Supporto Solutions Prodotti & Servizi Contatta NI MyNI

Tipo di documento: Tutorial
Supportato da NI: Sì
Data di pubblicazione: 27-ago-2008

Costruire vs Acquistare – Capire il Costo Totale della Progettazione Embedded

0 Valutazioni | 0.00 su 5
Seleziona lingua | Stampa

Descrizione

Nello sviluppo di un dispositivo embedded, uno dei principali caposaldi dell’ingegneria è dato dalla scelta di quale tecnologia applicare come controller primario di sistema. Oltre a considerare le architetture del processore, le funzionalità del sistema operativo e altri componenti, è necessario decidere quale porzione di sistema progettare e quale porzione comprare sul mercato. Progettando e costruendo un controller personalizzato è possibile personalizzare totalmente la soluzione e ottimizzare i costi, ma qualsiasi cambiamento o omissione indotta alle specifiche progettuali può causare dei lunghi e costosi ritardi. In alternativa, l’utilizzo di una piattaforma commerciale incrementa i costi del venduto, portando all’eventuale pagamento di funzioni non necessarie ai propri scopi. Tuttavia, i sistemi commerciali solitamente consentono un processo di validazione più veloce riducendo quindi i tempi di immissione sul mercato. Questo articolo mette in evidenza le due opzioni relative allo sviluppo di un nuovo controller- costruzione o acquisto – ed esamina i rischi tecnici e finanziari ad esso associati.

Progettazione Embedded Personalizzata

Prima dello sviluppo è necessario selezionare per il controllere primario di sistema la tecnologia per il processore, ad esempio una tra le cinque elencate di seguito:

  1. Microcontrollore – I microcontrollori sono estremamente convenienti e di solito offrono una soluzione integrata su singolo chip, incluse le periferiche di I/O. Solitamente offrono memorie on-chip di dimensioni ridotte e non consentono di gestire gradi elevati di complessità ed espansione. Inoltre, hanno velocità di clock di decine di megahertz e quindi in genere non è possibile ottenere loop di controllo ad elevate prestazioni.
  2. Microprocessore – Un microprocessore possiede velocità di trasmissione più alte e di solito possiede una memoria esterna, quindi non ci si preoccupa di prestazioni ed espandibilità. È possibile che le applicazioni richiedano fasi complesse di sviluppo dei driver poichè generalmente non sono presenti periferiche analogiche on-chip. Inoltre, le tecniche di packaging ad alta densità, come i BGA, possono richiedere processi produttivi più sofisticati. Tutto ciò complica ulteriormente il debug hardware.
  3. DSP (Digital Signal Processor) – Un DSP è un microprocessore specializzato, munito di istruzioni addizionali in grado di ottimizzare alcune funzioni matematiche come la moltiplicazione e la somma. I DSP sono estremamente utili per applicazioni computazionalmente pesanti, ma sono necessarie competenze specialistiche per sfruttare adeguatamente tali funzionalità.
  4. ASIC (Application-Specific Integrated Circuit) – Un circuito integrato ASIC è progettato per applicazioni specifiche piuttosto che per programmabilità generica. Gli ASIC sono ampiamente considerati come una tecnologia superiore in merito a considerazioni tecniche relative a consumi energetici e costi. Tuttavia, il processo costoso di sviluppo e produzione di ASIC ne limita l’adozione al caso di prodotti interessati da elevati volumi di produzione.
  5. FPGA (Field-Programmable Gate Array) – I chip FPGA rappresentano un interessante compromesso tra la progettazione personalizzata di ASIC e la tecnologia commerciale. Offrono un elevato livello di specializzazione ma sono riconfigurabili, per cui si evitano i costi elevati di realizzazione che limitano lo sviluppo di componenti ASIC. Sebbene i chip FPGA trovino utilizzo in svariate applicazioni di elaborazione, la complessità dello sviluppo in linguaggio VHDL è adatta agli sviluppatori embedded che prediligono la programmazione sequenziale in C.

In molti casi, la tecnologia a singolo processore non risponde adeguatamente alle esigenze di un’applicazione. Per questo le architetture ibride si sono affermate sempre più negli ultimi anni. Una di queste archittetture si vede illustrata in Figura 1. Il processore real-time gestisce la comunicazione di rete e l’interfaccia utente, mentre la parte FPGA gestisce l’interfaccia con i componenti di I/O e i task di controllo ad alta velocità. L’utilizzo di architetture ibride sta diventando uno standard nella progettazione di sistemi embedded.

 
[+] Espandi immagine

Figura 1. In questa architettura ibrida, che sta diventando uno standard per la progettazione di sistemi embedded, un processore real-time gestisce la comunicazione di rete e l’interfaccia utente, mentre la parte FPGA gestisce l’interfaccia con i componenti di I/O e i task di controllo ad alta velocità.

Una volta selezionata la tecnologia del processore, bisogna sviluppare il circuito di I/O. Se all’interno del sistema embedded è presente qualche segnale analogico, sono necessari convertitori analogico-digitali (ADCs), convertitori digitali-analogici (DACs) e i relativi driver.

Sistemi Embedded Commerciali

Un’alternativa è costituita dall’acquisto di piattaforme commerciali per sviluppare il controller. Se da un lato il costo è nettamente superiore rispetto al valore reale dei componenti della scheda, dall’altro, si guadagna in termini di riduzione dei tempi di immissione dei prodotti finiti sul mercato. Come avviene per le tecnologie dei processori, si possono prendere in considerazione molteplici target di distribuzione per il proprio sistema embedded.

  1. Sistemi embedded non assemblati – Disponibili in diversi fattori forma (Mini-ITX, PC/104, e così via), i sistemi embedded non assemblati rappresentano la soluzione più economica per la distribuzione commerciale. Tali sistemi inoltre offrono un’ampia scelta di architetture del processore e un discreto supporto per sistemi operativi e I/O. Tuttavia, gli strumenti software di sviluppo per questo tipo di sistemi sono raramente integrati e si rende anche necessaria la verifica di certificazioni di conformità tipo EMI e CE.
  2. Sistemi embedded assemblati – Oltre a supportare gli stessi componenti dei sistemi embedded non assemblati, i sistemi embedded assemblati forniscono specifiche relative a urti, vibrazioni, temperatura di funzionamento e certificazioni ambientali. Questi sistemi sono generalmente più costosi ma spesso possiedono strumenti di sviluppo software integrati e una serie più ampia di opzioni di I/O.
  3. PC industriali – Grazie alla grande reperibilità della tecnologia PC, i computer industriali forniscono una serie completa di opzioni di strumenti di sviluppo e funzionalità di I/O. Essi presentano molti degli stessi vantaggi derivanti da specifiche e certificazioni proprie di altri sistemi embedded assemblati, ma come è facile immaginare si tratta di sistemi notevolmente più costosi rispetto agli altri due.

National Instruments NI Single-Board RIO e CompactRIO sono esempi di sistemi embedded, rispettivamente, non assemblato e assemblato. In Figura 2 il sistema non assemblato NI Single-Board RIO ed in Figura 3 un sistema assemblato NI CompactRIO.

Figura 2, NI Single-Board RIO è un esempio di sistema embedded non assemblato


[+] Espandi immagine

Figure 3. NI CompactRIO è un esempio di sistema embedded assemblato.

L’architettura di entrambi i sistemi di National Instruments è molto simile al semplice diagramma a blocchi illustrato in figura 1. Esso utilizza un microprocessore Freescale PowerPC dotato di sistema operativo real-time VxWorks. Il PowerPC si interfaccia a un chip FPGA Xilinx attraverso un bus PCI interno. Inoltre, il chip FPGA è collegato direttamente ai connettori di una vasta gamma di moduli analogici e digitali di I/O da connettere a sensori, attuatori e bus di comunicazione. La Figura 2 mostra il sistema embedded assemblato NI CompactRIO e la Figura 3 mostra un diagramma a blocchi del sistema

Figura 4. Diagramma a blocchi del sistema CompactRIO

L'archetettura della piattaforma PXI di National Instruments è un esempio di PC industriale. PXI è una piattaforma aperta per il test, la misura e i lcontrollo, basata su PC. PXI mette a disposizione molteplici dispositivi e I/O per applicazioni embedded come processori multicore, misure DC ad alta riosoluzione, digitalizzatori, controllo assi, analisi di immagini, misure  RF 6 GHz e molto altro. Sono poi numerosi i costruttori che offrono PC industriali con slot per schede PCI che possono essere usati per aggiungere misure e controlli ai IPC.

La tecnologia FPGA può essere usata anche con un PC industriale. I dispositivi plug-in R Series FPGA di National Instruments sono disponibili nei formati CompactPCI/PXI e PCI per aggiungere schede con FPGA per sistemi con I/O analogici e digitali personalizzabili e integrati. I dispositivi R Series sfruttano la tecnologie  Virtex II FPGA così come la più recente Virtex-5 FPGA di Xilinx. Tutti gli FPGA dei prodotti National Instruments sono programmabili con LabVIEW FPGA Module. inoltre gli ingegneri possono sfruttare i codici VHDL esistenti integrando il codice HDL in LabVIEW FPGA.


[+] Espandi immagine

Figura 4. Scheda R Series FPGA I/O PCI programmata con LabVIEW FPGA

Prendere una Decisione – Il Costo “nascosto” della Progettazione Embedded

Sempre più spesso, le funzionalità tecniche non rappresentano il fattore determinante nella scelta tra progettare da zero e acquistare un prodotto esistente. Solitamentente si procede conducendo una semplice analisi finanziaria. Se il ritorno degli investimenti giustifica i costi sostenuti per la realizzazione del prodotto, si può dire di aver fatto una buona scelta.

Per far sì che la decisione sia ponderata, è necessario considerare accuratamente il costo relativo alla realizzazione della propria soluzione personalizzata. Tutto ciò non è così semplice come sembra: se si aggiunge solo il costo dei componenti al tempo di sviluppo hardware e softaware, si corre il rischio di sottostimare l’investimento totale. È necessario prendere in considerazione gli altri costi “nascosti” prima di valutare accuratamente l’effettivo costo del lavoro.

Per fare un esempio, i costi di produzione e di inventario generalmente rappresentano un ulteriore 20/30 per cento del costo dei beni del sistema. Inoltre, in media, circa il 30 per cento del tempo totale di sviluppo del software viene speso per lo sviluppo di sistema operativo, driver e middleware – benché sia possibile ovviare a questo processo di bring-up scegliendo una piattaforma assemblata con hardware e software integrati. Bisogna poi considerare altri costi legati a normative ambientali, validazione, componenti obsoleti e cambiamenti imprevisti delle specifiche che possono richiedere parziali modifiche del progetto o una sua completa ridefinizione. Infine, il costo meno evidente ma potenzialmente più dannoso è il costo legato all’opportunità di impiegare il tempo di sviluppo di questo aspetto del sistema su altri progetti di maggior profitto.

Una volta stabilito l’ammontare dell’investimento ingegneristico, è possibile effettuare una semplice analisi finanziaria del punto di equilibrio (break-even). Supponiamo di assegnare per nove mesi a due ingegneri il compito di realizzare una scheda personalizzata partendo dalle specifiche fino alla spedizione, per un un investimento approssimativo di 400000$. Supponiamo poi che questo processo conduca a un costo per il singolo bene inferiore di 400$ rispetto a una piattaforma commerciale. Attraverso l’Equazione 1 ci si rende conto che il punto di pareggio si ottiene alla 1000a unità e che l’investimento comincia ad essere redditizio dopo la spedizione della 1001a unità. Tutto ciò non tiene in considerazione gli altri costi “impliciti” di cui sopra. Tuttavia, scegliendo un sistema embedded assemblato è possibile accorciare i tempi di immissione sul mercato, facendo sì che i profitti coprano le fasi di ottimizzazione dei costi e di miglioramento delle prestazioni. Questa soluzione permette di ammortizzare il costo dell’investimento lungo il ciclo di vita del prodotto anziché investire tutto il denaro nel processo di sviluppo.

Equazione 1. Usando una semplice equazione è possibile calcolare il punto di pareggio di qualsiasi progetto personalizzato.

Conclusione

Vi consigliamo dunque di non realizzare mai una scheda personalizzata? Certo che no. Piuttosto, quando si ritiene che una tecnologia sia cruciale per il successo del proprio prodotto, concentrate il lavoro sul sistema che raggiungerà volumi molto alti, che richiederà un fattore forma estremamente specializzato o che richiederà requisiti tecnici rigorosi (come consumi bassissimi). Dove sia possibile utilizzare tecnologie commerciali, lasciate ai fornitori le spese di logistica e i costi “nascosti”, in modo da focalizzarvi su come ottimizzare la tecnologia valorizzando il prodotto.

Per conoscere meglio NI Single-Board RIO

Per conoscere meglio NI CompactRIO.

Per conoscere meglio NI R Series Intelligent Data Acquisition

Per conoscere meglio PXI 

0 Valutazioni | 0.00 su 5
Seleziona lingua | Stampa

Informazioni Legali
Questo tutorial di esempio (questo "tutorial") è stato sviluppato dal supporto tecnico National Instruments ("NI"). Sebbene il supporto tecnico di questo tutorial potrebbe essere reso disponibile da National Instruments, il suo contenuto potrebbe non essere stato testato e verificato completamente; NI non ne garantisce in nessun modo la qualità e non continuerà a supportare tale contenuto con ogni nuova revisione di relativi prodotti e driver. QUESTO TUTORIAL È FORNITO SENZA NESSUN TIPO DI GARANZIA ED È SOGGETTO AD ALCUNE LIMITAZIONI PIÙ SPECIFICATAMENTE DESCRITTE NEI TERMINI D'USO DI NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).