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 Uno CPU Netlog III OEM CPU SlimLine Cortex M7 OEM Raspberry Pi Mod. A
Alimentazione 7-12Vdc 5Vdc 250mA max. 10-30Vdc 2W 5Vdc 700mA max.
Alimentazione fornita al bus espansione N.A. N.A. 5Vdc 2.5A max. N.A.
Processore Atmel ATmega328 16MHz NXP LPC2387 72MHz (ARM7TDMI) Cortex M7 300MHz Broadcom BCM2835
700MHz Low Power ARM1176JZFS
Memoria programma FlashEPROM 32kBytes FlashEPROM 512kBytes
(96kBytes User program)
FlashEPROM 2 MBytes
(262 kB User program)
Boot da SD-Card esterna
Memoria di massa Nessuna FlashEPROM 1MBytes
(260kBytes User data)
FlashEPROM 4MBytes
(398kBytes User data)
Su SD-Card esterna
Memoria dati tampone E2PROM 1 kBytes FRAM 16kBytes
(3kBytes User data)
FRAM 32kBytes
(6kBytes User data)
Nessuna
Memoria dati SRAM 2 kBytes SRAM 96kBytes
(12kBytes User data)
SRAM 96kBytes
(12kBytes User data)
256MBytes SDRAM
Real Time Clock Nessuno Sì, con funzione ora legale automatica Sì, con funzione ora legale automatica
Funzionamento a sistema spento opzionale
SNTP (Simple Network Time Protocol) supportato
Nessuno
I/F USB 1 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 output Nessuno Nessuno HDMI (rev 1.3 & 1.4); RCA Composito (PAL e NTSC)
Audio Output Nessuno Nessuno 3.5mm jack, HDMI
Camera Nessuno Nessuno 15-pin MIPI Camera Serial Interface (CSI-2)
Display Nessuno Nessuno Display Serial Interface (DSI) 15 way flat flex cable connector with two data lanes and a clock lane
Ingressi analogici 6 x 0-5Vdc 10bit Nessuno 2 x 0-10Vdc 12bit Nessuno
Ingressi digitali 14 I/O 5Vdc Nessuno 2 Optoisolati PNP/NPN 5-30Vdc, 7mA@24V
(di cui 1 utilizzabile come counter Fmax 10kHz)
GPIO 3Vdc
Uscite digitali 14 I/O 5Vdc Nessuna 2 photoMOS 0.25A@40Vdc/ac GPIO 3Vdc
I/F Ethernet Nessuna 1 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 campo Nessuno 1 x RS485 + 1 x CAN bus
(conn. e drivers esterni)
1 x RS485 o 1 x CAN bus
Galvanicamente isolati
Nessuno
Bus SPI 1
(su strip pin)
Nessuno 1 (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 espansione N.A. 16 N.A.
I/F RS232 1 (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 massa No SD HC fino a 32GB
(conn. esterno)
Slot micro-SD HC fino a 32GB Slot micro-SD
Pagine web configurabili dall'utente No No
Ambiente dati non dichiarati Temperatura operativa: da -20 a +70°C dati non dichiarati
Temperatura di stoccaggio: da -40° a +80°C
Umidità: Max. 90%
Dimensioni e peso Dimensioni: 68,6 mm × 53,3 mm Dimensioni: 107.95 mm L x 31.8 mm W 10 mm H Dimensioni: 105 mm L x 90 mm W x 18 mm H Dimensioni: 85.6 x 53.98 x 17mm
Peso: 50g Peso: 100g
Tool di programmazione Arduino IDE LogicLab Alfafruit IDE
Linguaggi supportati C IEC61131-3
(IL, ST, LD, FBD e SFC)
Python, C, C++, Java

 

Was this article helpful?