Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sviluppo di soluzioni embedded moderne con .NET...

Sviluppo di soluzioni embedded moderne con .NET Micro - Lorenzo Maiorfi

Avatar for Better Embedded

Better Embedded

September 25, 2012
Tweet

More Decks by Better Embedded

Other Decks in Technology

Transcript

  1. .NET Micro Framework Sviluppo di soluzioni embedded moderne con .NET

    Micro Framework Lorenzo Maiorfi – Innovactive Engineering s.r.l.
  2.  Virtualizzazione del «core»  Un processore software (CLR) stack-based

    esegue bytecode espresso in linguaggio «CIL»  Integrazione binaria tra moduli software  La CLR si occupa di threading, gestione della memoria, interazione con procedure «native»,ecc.  La CLR «consuma» delle unità eseguibili dette «assembly»  Un assembly è costituito da:  metadati (un db interno che descrive i «prototipi» di tutti i tipi e membri definiti nell’assembly)  bytecode CIL (la sequenza di istruzioni che costituisce il «corpo» di ciascun metodo (funzione)  manifest (esprime le dipendenze da altri assembly) Principali intenti di .NET
  3. 1. Lo sviluppatore scrive codice utilizzando linguaggi di alto livello

    (C#/VB.NET) 2. Il compilatore genera uno o più assembly 3. Il bytecode degli assembly così generati viene scritto sulla memoria Flash del dispositivo mediante l’IDE o con un apposito tool (MFDeploy) 4. Il device al reset esegue il «TinyBooter» che a sua volta carica la «TinyCLR» 5. La TinyCLR carica gli assembly ed esegue il metodo «entry-point» utente Sviluppare firmware per .NET MF
  4. DEMO «getting started»  Utilizziamo Netduino  Eseguiamo la scrittura,

    il test, il debug e il rilascio di un semplice firmware  Diamo uno sguardo al compilato “IL”  Esploriamo più nel dettaglio il modello di threading e l’interazione con il flusso di esecuzione del firmware nativo del microcontrollore (gestione interrupt)
  5.  Produttività  Ambiente di sviluppo, compilatore, debugger ed emulatore

    costituiscono la toolchain più produttiva disponibile nel mercato embedded  Affidabilità  Runtime «managed», controllo completo su ogni «layer» dell’applicazione  Portabilità  Virtualmente portabile su tutti qualsiasi core, attualmente copre tutti i core ARM™ 32 bit  Supporto  Completamente «open», molte librerie di base, molte risorse community Punti di forza del .NET MF
  6. Struttura del .NET MF Applicazione e Librerie Utente Layer Applicazione

    Librerie Layer Librerie .NET WPF Comms … CLR Layer Runtime Exec Engine Type System Garbage Coll. Interop PAL Timers RAM I/O HAL Drivers oppure OS Facilities Processore e Periferiche Layer Hardware «PORTING»
  7.  Funzionalità di base  Tipi di base, XML, webservice,

    globalizzazione, crittografia, manipolazione testo, diagnostica, sicurezza  Funzionalità di sistema  Networking, file-system, user interface, threading  Gestione periferiche  USB (device/host), GPIO (con interrupt), I2C, SPI, UART, ADC, PWM, Watchdog, power  Componenti di terze parti  CAN, DAC, RTC, Glide (UI+Touch), SQLLite, ecc. Base Class Libraries
  8. DEMO «Object Oriented Design»  Sperimentazione con un semplice ADC

    12-bit con interfaccia SPI (Microchip MCP3201)  Sviluppo di un semplice driver “managed”  Aggiunta di nuove funzionalità tramite ereditarietà  Astrazione del modello di interazione con la periferica  Implementazione di un nuovo driver con lo stesso modello  Integrazione dei due componenti in un’applicazione completa
  9.  Controllo Accesso Impianti «Outdoor»  Identificazione mezzi RFID (short/long

    range)  ZigBee (mesh)  Integrazione con sistemi informativi di terze parti (AS/400, Windows, Unix)  Controllo barriere mezzi  Logging remoto attività sistema  Monitoraggio continuo parametri ambientali delle centraline Applicazioni «Real-World» #1
  10.  Banco prove motori ventilanti  Caratterizzazione flusso/potenza a norme

    CEI  Acquisizione continua di  Encoder velocità motori  Pressioni (in diversi punti del tubo Venturi)  Temperatura/umidità ambientali  Potenza DC e AC  Gestione motori induzione 220V/50Hz, 110V/ 60Hz, DC brushless con e senza controller integrato  Interfacciamento con software gestione prove «kiosk» (Windows 7+WPF+touch) Applicazioni «Real-World» #2
  11.  Terminali controllo produzione  Gestione ingressi digitali «conta-pezzi» industriali

    (24V, PLC)  Interfaccia utente con display Touch 4.3" Wide  Lettore RFID  Lettore Barcode  Supporto Ethernet/WiFi  Tastiera capacitiva con microcontrollore dedicato  Buzzer piezoelettrico  Controllo uscite digitali 24V e proporzionali (anche con controllo PID) Applicazioni «Real-World» #3
  12.  Banco cassa autonomo self-checkout  Gestisce tutta l’attività di

    check-out senza operatori, parallelizzando le fasi «lente»  14 moduli (hardware+firmware) indipendenti  8 Celle di carico  2 Motori AC trifase con encoder assoluto SSI  36 Barriere IR (30 singole,4 array da 32, 2 da 10)  8 Motori DC (gestione portelli) con lock magnetico  8 Lettori barcode integrati  14 Nastri trasportatori/mototamburi  20 strisce led «guida» multi-colore  Integrazione con software «front-end» kiosk Applicazioni «Real-World» #4
  13.  Performance  Non adatto ad applicazioni molto intensive sul

    piano computazionale  Controllo del timing  Non adatto ad applicazioni real-time  Non è un OS  Non esiste un supporto «di base» per processi, file-system, comunicazione, sicurezza, ecc.  Pochi porting  GHI Electronics (4), Secret Labs (2), Mountaineer Group (2), Sytech Designs, Love Electronics Punti deboli …
  14.  Performance  Interoperabilità codice «managed» / nativo  Controllo

    del timing  Utilizzo di schede multi-processore (come la Triumvirato: USBizi+MSP430+CPLD !!!)  Non è un OS  Molti servizi sono stati sviluppati nel tempo dai vendor come estensioni del framework  Pochi «porting»  Molti sono open (Netduino, Mountaineer Boards, GHI OSH) e lo stesso Porting Kit è completamente open (netmf.codeplex.com) …ma risolvibili !
  15. DEMO «Internet-of-Things» Digital INPUTs Digital OUTPUTs Analog INPUTs Analog OUTPUTs

    HTTP TCP/IP .NET MF BOARD Browser (PC, SmartPhone, Tablet) Server WEB
  16. Cosa serve per iniziare?  Visual Studio 2010 (anche in

    versione Express)  .NET Micro Framework SDK (4.2 QFE2)  Scheda .NET MF a scelta tra  Fez-Cerberus, Netduino, Fez-Panda II, Fez-Cerbuino Bee €<30  Netduino+, Mountaineer, Fez-Hydra, ArgonR1, Nano €<100  Fez-Spider, ChipworkX €120-250  Moduli  con connettori standard «Gadgeteer»  in formato «shield» Arduino  da collegare con jumper-wires  «proto-boards»