Sviluppo di soluzioni embedded moderne con.NET Micro Framework Lorenzo Maiorfi – Innovactive Engineering s.r.l.

Slides:



Advertisements
Presentazioni simili
1 Introduzione ai calcolatori Parte II Software di base.
Advertisements

Il Software.
Interazione Uomo - Macchina
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.
Politecnico di Milano Realizzazione di un componente per un sistema dedicato: integrazione del componente RC6 a 128 bit in EDK Relatore: Prof. Fabrizio.
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Massa Laura Mela Enrica
Generalità Linguaggio e Macchina Astratta
Università degli studi di Trieste – Tesi di laurea triennale in Ingegneria elettronica PROTOCOLLO DI COMUNICAZIONE TRA PC E MICROCONTROLLORE PER UN’INTERFACCIA.
Tesi di Laurea Triennale in Ingegneria Elettronica Applicata
Università degli Studi di Trieste
Realizzazione di un robot mobile controllato mediante comandi labiali
DAL MICROPROCESSORE AI SISTEMI EMBEDDED Informatica per lAutomazione II (Informatica B o II) Anno accademico 2008/2009 Prof. Giuseppe Mastronardi Ing.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Tipologie di Controlli in Ambito Industriale
Relatore:. Prof. Fabrizio FERRANDI Correlatore:. Ing. Marco D
Introduzione allambiente BasicX Informatica. Argomenti Le caratteristiche principali del BX-24 Il BOS (BasicX Operating System) on-chip Lambiente di sviluppo.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Introduzione ai PLC.
Struttura dei sistemi operativi (panoramica)
INCORPORARE L'ESSENZA DELLA RIFLESSIONE NEL RUN TIME ENVIRONMENT Maurizio Moro Seminario IL2.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Argomenti della lezione
C# LE BASI 2007 Prima lezione - Introduzione.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Introduzione a C#.
Sviluppo di soluzioni embedded moderne con .NET Micro Framework
Introduzione a Microsoft .NET Gadgeteer Mirco Vanini
1 Introduzione. 2 Le motivazioni In.net Framework iniziato nel 2000 rappresenta una svolta nella tecnologia Microsoft per andare oltre ai linguaggi esistenti.
Le diverse implementazioni degli strumenti Un unico strumento può essere usato per diversi tipi di rilevazioni a secondo delle esigenze dei clienti:
Il MIO COMPUTER.
ELETTRONICA DIGITALE (II Parte)
SISTEMA OPERATIVO..
L' ARCHITETTURA DI VON NEUMANN
Sistema elettronico Controllo Idronico 1-2 Livello R&D Engineer SMT – GROUP.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Architettura del calcolatore
Il Sistema Operativo (1)
1.
Java come linguaggio di programmazione
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
ELETTRONICA DIGITALE (II PARTE) (1)
FESR Trinacria Grid Virtual Laboratory ADAT (Archivi Digitali Antico Testo) Salvatore Scifo TRIGRID Second TriGrid Checkpoint Meeting Catania,
1 Università di Pavia - corso di Calcolatori Elettronici PROGETTO DI UN SISTEMA BASATO SU  P PROBLEMA REALE SVILUPPO HARDWARESVILUPPO SOFTWARE INTEGRAZIONE.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Corso di Architetetture degli Elaboratori, A.A. 2004/ Architettura degli Elaboratori Elisa B.P. Tiezzi Orario ricevimento: Giovedì, ( Il materiale.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Ingegneria del software Modulo 3 - Tecniche di implementazione Unità didattica 1 - Ingegneria dei componenti Ernesto Damiani Università degli Studi di.
Il software Claudia Raibulet
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
Il modello di Von Neumann
Il computer RAM: Unità di misura MByte e GByte MHz Processore: Unità di misura Singolo o multiprocessore 32/64 bit velocità GHz Mouse tastiera video stampante.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
FESR Trinacria Grid Virtual Laboratory Porous Fluid Dynamics Analyzer Supporter : Salvatore Scifo Affiliation : TRIGRID Second TriGrid Checkpoint.
Un sistema operativo è un componente del software di base di un computer la cui funzione è quella di gestire le sue risorse hardware e software,fornendo.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Sviluppo di soluzioni embedded moderne con.NET Micro Framework Lorenzo Maiorfi – Innovactive Engineering s.r.l.

 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)

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

 Utilizziamo Mountaineer USB  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)

 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

Applicazione e Librerie Utente Layer Applicazione Librerie Layer Librerie.NET WPF Comms … … CLR Layer Runtime Exec Engine Exec Engine Type System Type System Garbage Coll. Garbage Coll. Interop PAL Timers RAM I/O HAL Drivers oppure OS Facilities Processore e Periferiche Layer Hardware «PORTING»

 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), I 2 C, SPI, UART, ADC, PWM, Watchdog, power  Componenti di terze parti  CAN, DAC, RTC, Glide (UI+Touch), SQLLite, ecc.

 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

 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

 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)

 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)

 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

 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

 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)

 Visual Studio 2013 (anche in versione Community) .NET Micro Framework SDK (4.3.1 R2)  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, Fez-Raptor€  Moduli  con connettori standard «Gadgeteer»  in formato «shield» Arduino  da collegare con jumper-wires  «proto-boards»