Passa al contenuto principale

Differenze tra CPU OEM SlimLine, Netsyst III, Arduino e Raspberry Pi

In questo articolo vogliamo riassumere le differenze esistenti tra le nostre CPU OEM (SlimLine e Netsyst III) ed i sistemi Arduino e Raspberry Pi. Per iniziare vogliamo precisare che i moduli CPU OEM SlimLine e Netsyst III sono stati progettati per utilizzo prevalente in ambiente industriale/professionale e, pertanto, presentano requisiti in termini di temperatura operativa ed immunità ai disturbi tipici di tali ambienti. Anche dal punto di vista della programmazione i prodotti sono sensibilmente diversi: le CPU SlimLine e Netsyst si programmano nei cinque linguaggi previsti dallo standard internazionale IEC61131-3 (molto usato in ambiente industriale vedi ad esempio Codesys) attraverso il tool gratuito LogicLab, mentre invece Arduino è completamente "open" e programmabile in C/C++ e Raspberry Pi è dotato di S.O. Linux ed è programmabile in Python, C/C++, Java ecc.. Per chi è abituato ad utilizzare il linguaggio C ricordiamo che il linguaggio ST (Structured text) della norma IEC61131-3 presenta molte delle regole sintattiche del C (if, for, switch, ecc) inoltre permette l'utilizzo di strutture dati, array, pointer (Nel forum molti esempi di programmi con codice sorgente). L'unione dei diversi linguaggi previsti dalla norma, permette di creare funzioni e blocchi funzioni in linguaggio ST, per poi utilizzarli come oggetti grafici all'interno di altri programmi scritti in LD (Ladder Diagram) o FBD (Function Block Diagram). Ecco un esempio di programma in linguaggio FBD tratto da questo articolo.

Se volessimo dare una collocazione applicativa a questi sistemi potremmo dire che Arduino è idoneo per la realizzazione di sistemi di automazione a livello hobbistico a basse prestazioni, le CPU SlimLine e Netlog III sono indicate nella realizzazione di sistemi industriali e professionali con prestazioni medio-alte laddove è importante il time-to-market, la portabilità del programma e la facilità di modifica dello stesso; mentre Raspberry Pi è indicato nelle applicazioni multimediali. Nella tabella che segue abbiamo riportato le caratteristiche essenziali dei sistemi in modo che sia più facile il confronto.

Arduino UnoCPU Netlog III OEMCPU SlimLine Cortex M7 OEMRaspberry Pi Mod. A
Alimentazione7-12Vdc5Vdc 250mA max.10-30Vdc 2W5Vdc 700mA max.
Alimentazione fornita al bus espansioneN.A.N.A.5Vdc 2.5A max.N.A.
ProcessoreAtmel ATmega328 16MHzNXP LPC2387 72MHz (ARM7TDMI)Cortex M7 300MHzBroadcom BCM2835 700MHz Low Power ARM1176JZFS
Memoria programmaFlashEPROM 32kBytesFlashEPROM 512kBytes (96kBytes User program)FlashEPROM 2 MBytes (262 kB User program)Boot da SD-Card esterna
Memoria di massaNessunaFlashEPROM 1MBytes (260kBytes User data)FlashEPROM 4MBytes (398kBytes User data)Su SD-Card esterna
Memoria dati tamponeE2PROM 1 kBytesFRAM 16kBytes (3kBytes User data)FRAM 32kBytes (6kBytes User data)Nessuna
Memoria datiSRAM 2 kBytesSRAM 96kBytes (12kBytes User data)SRAM 96kBytes (12kBytes User data)256MBytes SDRAM
Real Time ClockNessunoSì, con funzione ora legale automaticaSì, con funzione ora legale automatica Funzionamento a sistema spento opzionale SNTP (Simple Network Time Protocol) supportatoNessuno
I/F USB1 x USB 2.0 (conn. USB B) (modo device)1 x USB 2.0 (conn. esterno) (modo device)Sì, su conn. micro-USB AB (modo host+device)1 x USB 2.0 (conn. USB A) (modo host)
Video outputNessunoNessunoHDMI (rev 1.3 & 1.4); RCA Composito (PAL e NTSC)
Audio OutputNessunoNessuno3.5mm jack, HDMI
CameraNessunoNessuno15-pin MIPI Camera Serial Interface (CSI-2)
DisplayNessunoNessunoDisplay Serial Interface (DSI) 15 way flat flex cable connector with two data lanes and a clock lane
Ingressi analogici6 x 0-5Vdc 10bitNessuno2 x 0-10Vdc 12bitNessuno
Ingressi digitali14 I/O 5VdcNessuno2 Optoisolati PNP/NPN 5-30Vdc, 7mA@24V (di cui 1 utilizzabile come counter Fmax 10kHz)GPIO 3Vdc
Uscite digitali14 I/O 5VdcNessuna2 photoMOS 0.25A@40Vdc/acGPIO 3Vdc
I/F EthernetNessuna1 x 10/100base-T(x) Auto-MDIX (conn. esterno)1 x 10/100base-T(x) Auto-MDIX (conn. RJ45)1 x 10/100base-T(x) Auto-MDIX (conn. RJ45 non montato)
Bus di campoNessuno1 x RS485 + 1 x CAN bus (conn. e drivers esterni)1 x RS485 o 1 x CAN bus Galvanicamente isolatiNessuno
Bus SPI1 (su strip pin)Nessuno1 (conn. GPIO)
Bus I2C™1 (su strip pin)1 High-Speed (conn. esterno)1 High-Speed (conn. IDC 10pin)2 (conn. GPIO)
Nr. max. moduli espansioneN.A.16N.A.
I/F RS2321 (su strip pin)1 x RS232 level 1 x 5V TTL level (conn. esterno)2 x DTE (conn. RJ45)1 x 3.3V TTL level
Memoria di massaNoSD HC fino a 32GB (conn. esterno)Slot micro-SD HC fino a 32GBSlot micro-SD
Pagine web configurabili dall'utenteNoSìNo
Ambientedati non dichiaratiTemperatura operativa: da -20 a +70°Cdati non dichiarati
Temperatura di stoccaggio: da -40° a +80°C
Umidità: Max. 90%
Dimensioni e pesoDimensioni: 68,6 mm × 53,3 mmDimensioni: 107.95 mm L x 31.8 mm W 10 mm HDimensioni: 105 mm L x 90 mm W x 18 mm HDimensioni: 85.6 x 53.98 x 17mm
Peso: 50gPeso: 100g
Tool di programmazioneArduino IDELogicLabAlfafruit IDE
Linguaggi supportatiCIEC61131-3 (IL, ST, LD, FBD e SFC)Python, C, C++, Java