Connectivité des systèmes embarqués «Présentation des Protocoles et Applications» École Nationale Supérieure de Physique de Strasbourg bruno.serio@ensps.u-strasbg.fr Cours en ligne : http://optothermique.dyndns.org:8008/
Plan du Cours «Connectivité des systèmes embarqués» CM1 : 1 : Enjeux de la connectivité pour les systèmes embarqués 2 : Comparaison des bus disponibles 3 : Connectivité des circuits utilisant une liaison physique (USB, FireWire, GIGE, SPI! ) 4 : Implémentation pratique du bus USB sur MCU Microchip CM2: Protocoles et implémentation des systèmes de communication sans fils (Irda, Bluetooth, Zigbee, Wifi) CM3: Mise en œuvre d!un scanner de périphériques Bluetooth sous Labview (découverte des services disponibles) ou/et Programmation Labview d une cible temps réelle
Partie 1 : Enjeux de la connectivité pour les systèmes embarqués
Définition d!un système embarqué! Il s!agit d!un dispositif électronique autonome aux ressources limitées à l!usage pour lequel il est conçu. Il répond aux caractéristiques/contraintes suivantes : -! Souvent destiné à une production en masse => bas coût -! D!exécution => tâche précise -! Temporelles => parfois «temps réel» -! Autonome => peu énergivore -! Souvent mobile il doit être résistant => fiable robuste et sure -! Discrétion => il doit garantir la sécurité des données (confidentialité des données médicales, privés, liberté)
Définition d!un système embarqué! Système embarqué = matériel électronique & logiciels!! Le développement requière des connaissances en système informatique & électronique.! Firmware : logiciel/programme créé pour le système embarqué. Il est stocké en mémoire souvent en lecture plutôt que dans un DD. Ses périphériques matérielles sont limitées : touches clavier, petit écran LCD et peu de mémoire.! Électronique : basée sur l!emploi d une carte à microprocesseurs/microcontrôleurs à basse consommation d'énergie. Le logiciel est programmé dans le matériel, généralement en mémoire morte (ROM), EPROM, EEPROM, FLASH, etc.! Un système embarqué (cible temps réel) peut intégrer un automate programmable basé sur un réseau de logiques programmables (FPGA).
Enjeux de la connectivité pour les applications embarquées Les applications embarquées (périphériques, instruments) requièrent de la connectivité à des équipements extérieurs pour : -! Échanger et contrôler des signaux -! Télécharger des données depuis une mémoire -! Charger des données/mettre à jour un Firmware -! Diagnostiquer une panne
Enjeux de la connectivité pour les applications embarquées Dans le passé : pour les applications nécessitant des bandes passantes de quelques dizaines de kbauds/s seulement, les solutions utilisaient le port série (Com, RS-232) ou la port parallèle (LPT, RS 488) des ordinateurs. Obsolescence de la liaison série : les portables, PC de bureau et autres smart phone etc. ne disposent plus des ports d!entrée pour la communication de type série ou parallèle.
Enjeux de la connectivité pour les applications embarquées Alternative pour le pilotage des instruments anciens utilisant la liaison RS232 pour communiquer : utiliser un adaptateur USB-To-RS232 ou acheter une carte au format PCI implémentant RS232 et LPT Solution pour les applications nouvelles : implémenter un des protocoles disponibles sur l!ordinateur actuelle en optimisant en fonction de l!application visée : - ports séries à haut débit USB, Firewire - ports Ethernet - ports d!entrée sans fils (Irda, ethernet Wifi, bluetooth et Zigbee)
Partie 2 : Comparaison des bus disponibles
De très nombreux bus informatiques serio@unistra.fr ver. 1.0 nc ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Comparaison des bus disponibles pour une communication avec un système embarqué serio@unistra.fr ver. 1.0 nc USB 3.0 SS-USB 4.8 Gb/s
Partie 3 : Connectivité utilisant une liaison physique (USB, Firewire)
Connectivité utilisant une liaison physique serio@unistra.fr ver. 1.0 nc Certaines applications requièrent une connectivité à haut débit Vidéo, acquisition de données rapides => liaison filaire Bus : Firewire, Giga Ethernet, camera link, USB
Survol des caractéristiques de l!usb Inventeurs Usb est un bus série qui a été co-développé par un consortium de sociétés : Compaq/HP, Intel, Microsoft, NEC USB n!est pas libre de droit But Créer un bus unique qui permet de : -! connecter beaucoup de dispositifs sur le même bus (PCI, PCI express) -! pouvoir connecter/déconnecter facilement des dispositifs sur le bus
Architecture d!un ordinateur Depuis 2002, PCI Express unifie le système d'e/s en utilisant une architecture de bus commune. Il remplace certains des bus internes qui relient les sous-systèmes Direct Memory Access Bande passante jusqu!à 2 Go/s pour PCI Express
Intérêts de l!usb pour les applications en instrumentation - Auto-détection et configuration - Expansion facile en utilisant un Hub (127 périphériques prévus par la norme) - Puissance électrique présente sur le bus - Système de contrôle de l'intégrité des paquets de données (de type CRC, Cyclic Redundancy Check, calcul avant et après de la division modulo 2 du paquet, le reste constitue le CRC) - 4 vitesses (USB1.1 : Low-1.5, Full-12, USB 2: High-480 Mbits/s, USB 3: Super-4.8 Gbits/s)
Composition d!un système USB Le bus USB ne permet pas de relier entre eux deux périphériques ou deux hôtes : le seul schéma de connexion autorisé est un ou plusieurs périphériques sur un même hôte. Ordinateur disposant d!un contrôleur USB hôte et d!un Hub root Périphériques
Interface Physique Interface à 4 fils : -! Alimentation 5V et masse sur le bus (le dispositif peut fournir de la puissance) -! 2 paires de lignes entrelacées pour une communication en mode différentielle offrant une excellente immunité des données au bruit -! connecteurs spéciaux pour l!hôte et pour le dispositif
Mécanisme des transferts de données sous USB L!USB comprend un seul bus Maître + de multiples bus esclaves Périphériques (i) Toutes les transactions sont initiées par l!hôte (ii) Les dispositifs ne peuvent pas discuter entre eux (iii) La bande passante USB est partagée (iv) Chaque dispositif est interrogé par l!hôte puis le dispositif répond à l!hôte
«L!hôte USB» peut être (i)! Un micro-ordinateur (portable, de bureau!) (ii)! Une carte à microprocesseur léger (iii)! Une cible temps réel (iv)! Une carte à microcontrôleur (v)! Une carte à FPGA
Rôles de «l!hôte USB» 1)! Manage et contrôle de Bus 2) Initialise toutes les transactions 3) Détecte automatiquement toutes les insertions et les extractions de dispositifs 4) Énumère tous les dispositifs connectés et assure la correspondance avec leur driver (attribution d un ID)
Exigences typiques pour l!unité microprocesseur/microcontrôleur de «l!hôte USB» Microprocesseur de 32/64 bits fonctionnant sous un système d exploitation classique, linux, mac-os, windows, et pour l!embarqué des systèmes d exploitation temps réel WxWorks, muclinux, WinCE ou des environnements spécifiques (ex. Microchip) Les applications USB utilisent des interfaces graphiques (LCD) Disposer de pilotes capables d!identifier et d!énumérer les dispositifs USB Le contrôleur de l!hôte doit pouvoir tourner à Full Speed (12 Mbps) ou High Speed (480 Mbps) Même si tous les microcontrôleurs ne sont pas adaptés pour implémenter un hôte répondant à toutes les spécifications USB, la plus part d!entre eux peuvent être utilisés dans des applications hôtes embarqués.
Exemple typique de l application d un hôte embarqué Application «hôte embarqué» connecté à un périphérique USB (ex. mémoire flash connectée sur un régulateur PID hôte) Dans ce cas, l!application embarquée ne peut pas être connectée à un autre hôte USB (ex. ordinateur) Avantage : firmware de l!application embarquée moins complexe Ex. Des données mesurées sur une clef USB memory flash sont «up-loadées» sur l!application embarquée. L!application embarquée agit comme «un hôte» lorsque la clef est connectée. Mais, ne peut pas être connecté directement à un PC hôte
Exigences typiques pour un système hôte USB embarqué Dispositif destiné à servir le monde réel, il doit disposer d!entrées et de sortie : - Convertisseur A/D, Comparateurs -! Interfaces séries telles que SPI, I2C, UART pour les discussions entre le microcontrôleur et ses périphériques (ex. mémoire) -! Lignes d!entrée/sortie PWM (pour le contrôle des moteurs) et des timers -! Microcontrôleur à 32/64 bit -! Convertisseur USB full speed OTG (On-the-Go défini plus loin, 12Mbps) avec des buffers d!entrées et de sorties -! drivers logiciels pour identifier et énumérer les drivers USB périphériques Ex. microcontrôleurs 32 bits de la société Microchip pour se faire une idée
Caractéristiques des périphériques USB Il répond à l!hôte : il ne peut pas initier la transaction. Nécessite souvent des drivers spécifiques pour être reconnu par l!hôte Doit disposer d!un Firmware adapté pour répondre à l!hôte Ex. de périphériques : souris, clavier, clef USB toujours associés à des petits microcontrôleurs.
Caractéristiques typiques de l!unité microcontrôleur nécessaire au fonctionnement d!un périphérique USB Caractéristique presque identiques à celles de «l!hôte embarqué». Le dispositif doit disposer d!entrées et de sorties tels que : - convertisseur A/D, Comparateurs - interfaces séries telles que SPI, I2C, UART pour les discussions entre le microcontrôleur et ses périphériques (ex. mémoire) - lignes d!entrée/sortie PWM (pour le contrôle des moteurs) et timers - microcontrôleur à 32/64 bit - convertisseur USB Full speed (12 Mbps) avec des buffers d!entrée et de sortie - interface USB et interface firmware - drivers logiciels pour identifier et énumérer les drivers USB périphériques -! dispositif prêt à recevoir des interrogations full speed d!un hôte Ex. Microcontrôleurs 32 bits (Microchip) conçus pour ce type d!application
Partie 4 : Implémentation du bus USB
Attention USB n!est pas gratuit Exemple d!un client USB : USBDeview
Classes de périphériques des dispositifs USB ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Quelle classe de périphériques USB utiliser pour le développement d!une application embarquée? Human Interface Device Class (HID) => application standard pas de driver à développer Mass Storage Device Class (MSD) => Pour les supports de stockage (DD, Flash) Communication Device Class (CDC) => Modem, routeur, switch Audio Device Class => Casques audio, balladeur Vendor Class Driver => C!est le vendeur de microcontrôleur qui fournit le driver (attention pour la mise à jour du driver)
Une alternative intéressante pour l!embarquée : USB On-The-Go (OTG = double Rôle) serio@unistra.fr ver. 1.0 nc USB On-The-Go (OTG) permet le développement de dispositifs opérant avec le statut d!hôte (maître) ou celui de périphérique (esclave) Exemples : - PDA (périphérique esclave) connecté sur PC (hôte) en cours de synchronisation -! PDA (hôte maître) connecté à une clef USB (périphérique esclave) -! 2 PDA connectés entre eux hôte/slave peuvent être switcher à tour de rôle ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Exigences typiques pour développer un dispositif embarqué de type OTG Toujours identiques (voir T24)
Résumé concernant l!usb Ordinateur = Full USB hôte Dispositif hôte USB embarqué : - pas de drivers à installer - exigence réduite en terme de firmware Ex. de dispositifs de type périphérique USB : - souris, clavier, clef USB!. Rôle double pour l!usb «On-the-Go» : - le dispositif peut switcher de rôle Maître/esclave - peut être OTG ou juste rôle double
Ex. Implémentation USB d!un système de capture d!image Le dispositif de capture utilise une connexion filaire pour le transfert des données Plusieurs canaux sont actifs Control pipe : canal de réglage Data in/out pipe : Canal de transfert d!image ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr Interrupt pipe : canal d!interruption ex. batterie faible Interruption de la communication
Programmation d!applications USB à partir d!une unité microcontrôleur de la famille Microchip Utilisation des outils de configuration rapides
Considérations de conception pour des applications hôtes USB embarquées! Quelle configuration l!hôte USB doit-il prévoir? - hôte intégré - hôte intégré et périphérique - OTG! Quelles classes de périphériques se connecteront à l!hôte?! Qu!est ce qu!il faudra pour développer le firmware de l!application hôte? ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Caractéristiques typiques d!applications hôtes USB intégrées Terminal de caisse ($) Récepteurdécodeur TV (TNT) Supporte une liste de périphériques (mémoire flash, DD etc.) Fournit la puissance électrique Garantit le contrôle d!erreur Permet l!énumération des périphériques insérés Autoradio lecteur MP3 Thermostat Reconnaît le périphérique et identifie sa classe de driver Manage et contrôle du bus Initie toute l!activité des transferts de données Manage le transfert des données ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Développement d!une application hôte USB en utilisant les outils de configuration rapide du constructeur
Implémentation software d!une application hôte USB embarquée Type d!application (OTG,..) Sélection du type de MCU répondant aux exigences de l!application ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Implémentation software d!une application hôte USB embarquée Sélection des dispositifs qui se connecteront ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Implémentation software d!une application hôte USB embarquée ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Implémentation software d!une application hôte USB embarquée Création du projet et prise en compte des librairies nécessaires ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Développement de l!application hôte en programmation C ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
www.microchip.com/usb ENSPS 2A Version nc - bruno.serio@ensps.u-strasbg.fr
Développement d!un périphérique USB en utilisant les outils de configuration rapide du constructeur
Implémentation software d!un périphérique USB embarqué serio@unistra.fr ver. 1.0 nc
Implémentation software d!un périphérique USB embarqué serio@unistra.fr ver. 1.0 nc
Implémentation software d!un périphérique USB embarqué serio@unistra.fr ver. 1.0 nc
Implémentation software d!un périphérique USB embarqué serio@unistra.fr ver. 1.0 nc
www.microchip.com/usb serio@unistra.fr ver. 1.0 nc
Pour conclure serio@unistra.fr ver. 1.0 nc
Carte de développement et de prototypage rapide Microchip serio@unistra.fr ver. 1.0 nc
Questions serio@unistra.fr ver. 1.0 nc