EUR | USD

Aggiungi un pizzico di tecnologia FPGA al mix di schede di sviluppo Arduino e Raspberry Pi

Le schede di sviluppo Arduino e Raspberry Pi sono le punte di diamante di una rivoluzione nella progettazione dei sistemi embedded. Un tempo, un sistema embedded veniva sviluppato a partire dall'hardware. Ecco qui, grosso modo, le fasi del progetto:

  1. Stendere un elenco dei requisiti di sistema, inclusa una stima approssimativa della velocità di elaborazione e dei requisiti I/O.
  2. Selezionare un microcontroller o microprocessore idoneo, conforme ai requisiti di potenza, prestazioni e prezzo.
  3. Cablare un prototipo hardware.
  4. Eseguire il debug del prototipo hardware. Scrivere un pezzo di codice per il driver, se necessario, per velocizzare il processo.
  5. Con l'hardware funzionante, iniziare a scrivere codice in Sling.
  6. Eseguire il debug del codice.
  7. Fatto!

Oggi le cose non sono così semplici. In primo luogo è possibile scegliere letteralmente tra migliaia di processori e microcontroller, proposti da numerosi fornitori. Nessuno è in grado di tenere a mente tutte queste alternative.

In secondo luogo, la voce numero tre dell'elenco sopra (cablare un prototipo hardware) è davvero problematica, visto che il passaggio alla tecnologia a montaggio superficiale è avvenuto già una trentina di anni fa. Il cablaggio manuale e persino la tecnologia di avvolgimento dei cavi largamente diffusa come tecnica di prototipazione negli anni Settanta possono essere paragonati alla forgiatura nell'elettrotecnica. Decisamente inconsueta ai nostri giorni. Che bisogno c'è di progettare, fabbricare e saldare un prototipo di scheda CS e chi desidera investire tempo in tali attività quando esistono alternative migliori, cioè più veloci ed economiche?

Questa situazione ha aperto la strada a schede di sviluppo che rendono superflui i primi quattro passaggi descritti sopra. Due delle schede di sviluppo più popolari oggi sono Arduino Uno (e le sue numerose varianti) e Raspberry Pi. Il modello più attuale di Raspberry Pi è il modello Pi 3 B+. Sebbene vengano spesso menzionate insieme, le schede di sviluppo Arduino e Raspberry Pi non si assomigliano affatto.

Arduino è il nome di un'azienda di hardware e software open-source, un progetto comunitario open-source, la comunità di utenti che progetta e produce le schede di sviluppo Arduino, un ambiente di sviluppo integrato (IDE) e la stessa scheda Arduino a microcontroller. (Il nome Arduino proviene da un bar di Ivrea, dove si incontravano alcuni dei fondatori del progetto Arduino).

Figura 1: Arduino Uno, una scheda di sviluppo entry-level basata su un microcontroller Atmel a 8 bit dotata di alcune semplici capacità I/O funge da piattaforma di sviluppo per progetti embedded che non richiedono prestazioni elevate. (Immagine per gentile concessione di Arduino)

Le prime schede di sviluppo Arduino erano basate su microcontroller Atmel AVR. Il codice veniva sviluppato nell'IDE Arduino, che poi lo compilava e lo scaricava nella memoria flash del microcontroller su scheda. L'IDE Arduino supporta i linguaggi C e C++ con regole di strutturazione del codice specifiche per tale ambiente di sviluppo. Vista la straordinaria diffusione dell'approccio Arduino, le nuove varianti Arduino sono passate a microcontroller basati su Arm® Cortex®-M0 a 32 bit per migliorare le prestazioni (Figura 1).

Essendo state progettate come schede di sviluppo su microprocessore iniziali per il controllo di sistemi embedded relativamente semplici, le schede Arduino hanno capacità I/O elementari. Oltre ad alcune basette da 2,5 mm con semplici pin di I/O digitale e pin di ingresso analogici, le schede di sviluppo Arduino Uno dispongono di una porta USB e di qualche LED che lampeggia. Niente di più. I pin I/O sono controllati dal software, perciò non vi potete attendere grandi prestazioni.

Raspberry Pi, un salto di qualità

Se il vostro progetto embedded necessita di maggiori prestazioni, la scheda di sviluppo Raspberry Pi 3 B+ rappresenta un notevole salto di qualità rispetto alla scheda Arduino (Figura 2). Ecco le sue caratteristiche più importanti:

  • Broadcom BCM2837B0, Cortex®-A53 (Arm®v8) SoC 64 bit a 1,4 GHz
  • SDRAM LPDDR2 da 1 GB
  • LAN wireless IEEE 802.11.b/g/n/ac da 2,4 GHz e 5 GHz, Bluetooth 4.2, BLE
  • Gigabit Ethernet su USB 2.0 (throughput massimo 300 Mbps)
  • Basetta estesa da 40 pin GPIO
  • HDMI full-size
  • Quattro porte USB 2.0
  • Basetta estesa da 40 pin GPIO
  • Porta CSI per il collegamento alla foto/videocamera Raspberry Pi
  • Porta display DSI per il collegamento di un display touchscreen Raspberry Pi
  • Uscita stereo 4 poli e porta video composita
  • Porta Micro SD per il caricamento di un sistema operativo e l'archiviazione di dati
  • Ingresso alimentazione c.c. 5°V/2,5°A
  • Supporto Power over Ethernet (PoE) (richiede HAT PoE separato)

Figura 2: Il modello Raspberry Pi 3 B+ rappresenta un'ottima piattaforma di sviluppo dell'hardware embedded con un processore per applicazioni quad core Arm a 64 bit, 1°Gbyte di SDRAM e capacità I/O estese. (Immagine per gentile concessione di Raspberry Pi)

Con tutta questa potenza di calcolo, memoria e capacità I/O potrete fare molte cose. La scheda di sviluppo Raspberry Pi 3 B+ esegue Linux e gode del sostegno di una comunità enorme. Considerato il prezzo, il modello B+ della Raspberry Pi 3 è una fantastica piattaforma hardware per molti progetti di sviluppo embedded.

Cosa fare quando vi serve tanta velocità?

Se il modello B+ della scheda Raspberry Pi 3 soddisfa tutti i requisiti del vostro progetto embedded, potete fermarvi qui. Visto il prezzo di questa scheda dalle grandi capacità, perché darsi la pena? Tuttavia, se il vostro sistema embedded richiede capacità speciali di I/O, che vanno oltre le considerevoli risorse I/O del modello B+ di Raspberry Pi 3, quali possibilità avete?

È la tipica situazione in cui avete bisogno delle elevate prestazioni degli FPGA, grazie ai quali potrete definire nuovi tipi di interfacce ad alta velocità con il solo uso del software Senza bisogno di cablaggio aggiuntivo. Inoltre, grazie alla scheda di sviluppo TE0726-03M ZynqBerry (Figura 3) di Trenz Electronic, avrete a disposizione capacità FPGA integrate nel fattore di forma Raspberry Pi Model 2.

Figura 3: La scheda di sviluppo TE0726-03M ZynqBerry di Trenz racchiude un SoC Zynq Z-7010 di Xilinx in un fattore di forma Raspberry Pi Model 2 per progetti embedded che necessitano di prestazioni I/O aggiuntive. (Immagine per gentile concessione di Trenz Electronic)

La scheda ZynqBerry è basata su un SoC Zynq Z-7010 di Xilinx, che riunisce in sé un microprocessore dual core Arm® Cortex®-A9 a 32 bit e un FPGA, dando vita a un dispositivo che può gestire molte più attività ad elevate prestazioni rispetto al solo processore (o persino a quattro processori che girano a 1,4 GHz). Programmerete la scheda ZynqBerry di Trenz con la suite scaricabile Vivado di Xilinx, che fornisce un IDE sia per il lato software (processore) sia per il lato hardware (FPGA) del SoC Zynq.

Preferite il fattore di forma Arduino?

Anche nel caso preferiste il fattore di forma Arduino Uno, Trenz Electronic ha una soluzione per voi, TE0723-03M ArduZynq (Figura 4).

Figura 4: TE0723-03M ArduZynq di Trenz Electronic mette un SoC Zynq di Xilinx nel fattore di forma della scheda di sviluppo Arduino per progetti Arduino che necessitano di prestazioni superiori del processore e di I/O. (Immagine per gentile concessione di Trenz Electronic)

Come per ZynqBerry di Trenz, programmerete ArduZynq di Trenz con la suite scaricabile Vivado di Xilinx.

Schede come Arduino Uno e Raspberry Pi semplificano molte scelte della progettazione embedded ma non riescono a risolverne tutte le problematiche. Se i vostri requisiti sono superiori alle capacità di queste schede, non occorre cambiare il fattore di forma. È sufficiente aggiungere un piccolo FPGA al tutto.

Informazioni su questo autore

Image of Steve Leibson Steve Leibson è stato System Engineer per HP e Cadnetix, Editor in Chief per EDN e Microprocessor Report, blogger tecnologico per Xilinx e Cadence (solo per citarne alcuni), e ha collaborato come esperto di tecnologia in due episodi di "The Next Wave with Leonard Nimoy". Da 33 anni collabora con molti progettisti allo sviluppo di sistemi migliori, più veloci e più affidabili.
More posts by Steve Leibson