Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Communication dans un système
embarqué
L’USB, Universal Serial Bus
Les cartes SD
Protocoles TCP/IP : cas de l’Ethernet
Le 6lowPan
04/03/2011 Communication dans un système embarqué 1
Benjamin Bonny
Guillaume Normand
Loïc Raucy
Theodoros Theodoropoulos
L’USB dans les systèmes
embarqués
04/03/2011 Communication dans un système embarqué 2
Principales caractéristiques:
Architecture Architecture arborescente :
◦ Un hôte unique (le PC)
◦ Des périphériques (souris, disque dur, notre carte avec STM32 !)
◦ Des hubs qui redistribuent le signal et filtrent selon les vitesses
Jusqu’à 127 périphériques connectés en même temps
Branchement à chaud autorisés
Fournit une alimentation de 5V, 500mA maximum
4 broches : Alimentation, masse, et données (D+ et D- :
transmission différentielle)
04/03/2011 Communication dans un système embarqué 3
Principales caractéristiques :
Vitesse USB 1.1 : 2 modes de fonctionnement
◦ Full Speed : 12 Mbit/s
◦ Low Speed : 1,5 Mbit/s
USB 2.0 : 3 modes
◦ Les deux précités
◦ High Speed : 480 Mbit/s
04/03/2011 Communication dans un système embarqué 4
Branchement d’un périphérique
Le périphérique doit indiquer sa vitesse
◦ D+ à 3.3V (pull up) : Full Speed
◦ D- à 3.3V : Low Speed
◦ Un périphérique High Speed se connecte en Full Speed, puis indique à l’hôte qu’il
est High Speed lors du reset
L’hôte identifie le périphérique grâce aux VID & PID, et charge le
pilote correspondant
04/03/2011 Communication dans un système embarqué 5
Protocole de communication
L’hôte dirige tous les échanges
◦ Envoi d’un paquet jeton pour décrire ce qui suit, et à
qui il s’adresse
◦ Envoi/réception de la charge utile
◦ Paquet d’acquittement (positif ou négatif)
◦ Paquet SOF (Start Of Frame) toutes les ms, pour
garder la connexion active
04/03/2011 Communication dans un système embarqué 6
Les Endpoints
Ils sont spécifiques au périphérique, et sont l’interface
entre celui-ci et l’hôte :
◦ L’hôte s’adresse à des endpoints, dans lesquels il écrit
ou lit
◦ Le périphérique communique avec l’hôte à travers ces
endpoints
◦ Ils sont créés par le périphérique, et communiqués à
l’hôte
◦ Tout périphérique doit avoir un endpoint 0, pour la
première communication
04/03/2011 Communication dans un système embarqué 7
4 types de endpoints
Endpoint de contrôle
◦ Pour commander les périphériques, configurer, etc.
Endpoint d’interruption
◦ Permet au périphérique de générer des interruptions malgré le fait que les transmissions sont commandées par l’hôte : latence garanti
Endpoint de transfert isochrone
◦ Pour des transferts périodiques et dépendants du temps (Flux vidéo, audio…) : bande passante et latence garantis
Endpoint de transfert bulk
◦ Pour des données de taille conséquente, qui arrivent en rafale (ex : image provenant d’un scanner). Importance du CRC, détection d’erreur et renvoi.
04/03/2011 Communication dans un système embarqué 8
L’USB dans un STM32
1 à 16 endpoints (8 si bidirectionnels, 16
monodirectionnels)
Réalisation en hardware :
◦ Du CRC & du bit stuffing
◦ Mise en forme des transactions
Gestion des transferts isochrones et bulk,
avec double buffer
Gestion de la suspension/reprise de l’usb
04/03/2011 Communication dans un système embarqué 9
L’USB dans un STM32
Transfert via des buffers
Double buffer :
◦ Pour les endpoint bidirectionnels : un pour la
réception, un pour l’envoi
◦ Pour le bulk & isochrone: double buffering
04/03/2011 Communication dans un système embarqué 10
Comment utiliser l’USB dans un
STM32? ST met à disposition une bibliothèque destinée à
l’utilisation de l’USB sur son STM32 : ◦ http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONEN
T/FIRMWARE/um0424.zip
Ainsi qu’un manuel pour son utilisation : ◦ http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITE
RATURE/USER_MANUAL/CD00158241.pdf
04/03/2011 Communication dans un système embarqué 11
Les cartes SD
C’est la carte la plus utilisé dans les
systèmes embarqués:
◦ appareils photo, lecteurs mp3, GPS,
téléphones portables…
Faible coût (moins de 5€ pour 2Gb)
Grande mémoire NAND (jusqu’à 64Gb)
Simplicité d’utilisation
Marketing
04/03/2011 Communication dans un système embarqué 12
Les cartes SD
Plusieurs types:
◦ SD, SDHC, SDXC
Plusieurs tailles:
◦ microSD, miniSD, SD
Plusieurs vitesses:
- jusqu’à 15MB/s (répartie en classes)
3,3V (possibilité de passer en 1,8V)
DRM: Anecdotique
04/03/2011 Communication dans un système embarqué 13
Les cartes SD
Interface:
◦ Entre 8 et 11 ports
◦ Maitre/esclave
◦ échange de données dans les deux sens
◦ Envoi de commande hôte.
◦ Réponse de la carte.
◦ Utilisation comme une mémoire flash ou en
utilisant un système de fichier fat (16 ou 32)
04/03/2011 Communication dans un système embarqué 14
Les cartes SD
Protocoles:
◦ 2 façons d’accéder/écrire les données:
Via le protocole SPI.
Via le protocole SD (1bit et 4bits)
04/03/2011 Communication dans un système embarqué 15
Les cartes SD
Via le protocole SPI
Une bibliothèque libre pour stm32:
◦ ChaN's FAT-Module
04/03/2011 Communication dans un système embarqué 16
Les cartes SD
Via le protocole SD:
◦ 3 types de signaux:
CLK: 1 bit pour l’horloge
CMD: 1 bit pour les commandes/réponse
DAT: 1 ou 4 bits pour l’échange de données
04/03/2011 Communication dans un système embarqué 17
Les cartes SD
Les commandes:
Les données:
Bit # Value Name
47 1 0 Start bit
46 1 1 for commands, 0 for responses Transmitter bit
45-40 6 Command ID
39-8 32 Argument
7-1 7 CRC
0 1 1 Stop bit
Bit # Value Name
4113 1 0 Start bit
4112-17 512*8 Data bits
16-1 16 CRC
0 1 1 Stop bit
04/03/2011 Communication dans un système embarqué 18
Les cartes SD
Mise en œuvre sur un stm32 via
l’interface hôte.
04/03/2011 Communication dans un système embarqué 19
Les cartes SD
Échange de données:
04/03/2011 Communication dans un système embarqué 20
Pile TCP/IP embarquée
• STMP, POP Application
• TCP/UDP Transport
• IP/ICMP Réseau
• Ethernet Liaison
Ethernet = Une couche MAC et une couche PHY.
Couche PHY = Transmission effective des signaux électriques. (A
besoin d’un RJ45 pour recevoir les données)
Couche MAC = Délimiter Trame + Ajout adresse MAC.
04/03/2011 Communication dans un système embarqué 21
Pourquoi implémenter TCP/IP sur un
micro contrôleur?
◦ Micro serveurs (si peu d’informations)
◦ Entrées/Sorties sur un module embarqué
Volonté de récupérer des infos
04/03/2011 Communication dans un système embarqué 22
STM32
STM32F103
◦ Pas de couche MAC ni PHY : besoin d’un
microchip Ethernet (ex : ENC 28J60)
8ko de RAM (buffer)
Très compact
Si CS est en 1 : travail en cours
Si en 0 : repos.
www.olimex.com/dev/enc28j60-h.html
STM32
Master
ENC28J60
Slave
SPI
04/03/2011 Communication dans un système embarqué 23
STM32
STM32F105/F107
Besoin d’un PHYceiver (ex: ICS1890) et de se
connecter à un RJ45.
www.docstoc.com/docs/46523606/STM32F107-Ethernet-TCP-IP-presentation
04/03/2011 Communication dans un système embarqué 24
Piles TCP/IP gratuites
NicheLite
◦ Petit et rapide
◦ Le driver Ethernet envoie des données
ST Application Note 3000 p19 04/03/2011 Communication dans un système embarqué 25
On a des fichiers de configuration pour les communications avec Ethernet.
ST Application Note 3000 p45
04/03/2011 Communication dans un système embarqué 26
Piles TCP/IP gratuites
uIP / lwIP
◦ Peu de ressources utilisées (40ko en ROM)
◦ Moins complet (TCP, IP, ICMP, UDP, ARP)
◦ 2 API pour programmer.
Protosocket API: proche du BSD Socket.
Besoin d’un OS (tel RTOS)
Raw API : plus bas niveau que Protosocket
meilleures performances, plus complexe.
04/03/2011 Communication dans un système embarqué 27
lwIP utilise un fichier ethernetif.c qui
permet de faire le lien entre la pile et le
controleur Ethernet. (C’est un squelette à
compléter.)
04/03/2011 Communication dans un système embarqué 28
IPv6
Il n’y a plus de place pour les adresses
IPv4.
◦ D’où création de NAT et adresses privées.
Désormais : énormément d’adresses. ◦ Une adresse par périphérique est envisageable.
Simplification des en-têtes de paquets
◦ Routage plus évident.
04/03/2011 Communication dans un système embarqué 29
6loWPan: IPv6 au-dessus des
réseaux sans fil à puissance faible
04/03/2011 Communication dans un système embarqué 30
Contenu
Introduction
802.15.4
6LoWPan couche réseaux
Plates-formes disponibles
Limitations
04/03/2011 Communication dans un système embarqué 31
Introduction
6Lowpan=IPv6 au dessus de réseaux sans fil à faible puissance.
-Intégration Internet des Systèmes Embarqués sans fil
-Des Flux End to End
-Standards ouverts
Applications -Automatisation Bâtiment
-Santé
-Automatisation Industrielle
-Agriculture
-Amusement
04/03/2011 Communication dans un système embarqué 32
802.15.4
Réseau sans fil à faible taux
Structures des réseaux
Reduced Function Device Device Full Function Device
•Réseaux Etoile. •Réseaux Peer to peer.
04/03/2011 Communication dans un système embarqué 33
802.15.4
Types de nœuds -FFD=Full Function Devices responsables de l’arbitration.
-RFD=Reduced Function Devices orientés plus application
Définition de la Couche physique - Possibilité de sélection entre 20kb/s, 40kb/s, 100kb/s, 250kb/s
-Types de modulation simples au niveau du matériel: BPSK, QPSK, ASK.
Définition de la couche Mac. -Mécanisme de CSMACA (Carrier Sense Multiple Access/Collition
Avoidance) pour l’accès au medium de communication.
-Mécanisme de Guaranteed Time Slots permet une limite basse de communication assurée.
-
04/03/2011 Communication dans un système embarqué 34
6LowPan couche réseau
Pourquoi maintenant? -Avec IPv6 il n’y a pas besoin des mécanismes de
NAT ou DCHP pour l’adressage IP.
-Dérivée de l’adresse IP à partir de l’adresse Mac.(Stateless Autoconfiguration)
-Routage et management simple.
Problème principal de l’intégration de l’IP aux Low rate Personal Area networks : la taille du paquet maximum de la couche du dessous.
802.15.4 MTU=127bytes
IP MTU=1280 octets
04/03/2011 Communication dans un système embarqué 35
6LowPan couche réseau
Solution : la compression du IP header. -La compression est basse du fait qu’il y a une association directe
entre l’adresse MAC et l’adresse IP.
-Le préfixe de l’adresse globale est connu par tous les nœuds du sous-réseau.
-Le préfixe de l’adresse du Link est connu par tous les nœuds du réseau 6lowpan.
04/03/2011 Communication dans un système embarqué 36
6LowPan couche réseau
Si la compression n’est pas suffisante la
norme décrit la possibilité de fragmenter
les paquets IP.
04/03/2011 Communication dans un système embarqué 37
Plates-formes Disponibles
Nanostack ◦ Ecrit sur les services fournis par FreeRtos
◦ Nanostack 1.1 est ouvert
◦ Drivers pour les modules radio TI CC2420 et CC2430.
Applications
Socket Api
UDP/ICMP
6LoWPAN
802.15.4
FreeRtos
CC240
04/03/2011 Communication dans un système embarqué 38
Plates-formes disponibles
Nous pourrions utiliser les contrôleurs
MAC-PHY TI CC2420, CC2430, utilisant
le SPI pour la configuration et la
communication STM32-TI CC2420
STM32
Master
TI CC2420,
CC2430
Slave
SPI
04/03/2011 Communication dans un système embarqué 39
Limitations
La couche de Transport utilisée est
principalement UDP. -Taille minimum de TCP Header=20 octets.
-Taille de UDP=8 octets
- Logique : plus simple en UDP.
- Pas besoin de stocker les messages envoyés jusqu’à
la réception d’un ACK.
04/03/2011 Communication dans un système embarqué 40
Bibliographie
USB in a NutShell :
http://www.beyondlogic.org/usbnutshell/u
sb1.shtml
Reference Manual des STM32F103xx
04/03/2011 Communication dans un système embarqué 41
Bibliographie
Sources:
◦ http://wiki.seabright.co.nz/wiki/SdCardProtoc
ol.html
◦ http://www.sdcard.org/
◦ http://fr.wikipedia.org/wiki/Carte_SD
◦ http://gandalf.arubi.uni-
kl.de/avr_projects/arm_projects/arm_memcar
ds/
◦ http://www.st.com/
04/03/2011 Communication dans un système embarqué 42
Q??
04/03/2011 Communication dans un système embarqué 43