43
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, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 2: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

L’USB dans les systèmes

embarqués

04/03/2011 Communication dans un système embarqué 2

Page 3: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 4: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 5: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 6: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 7: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 8: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 9: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 10: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 11: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 12: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 13: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 14: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 15: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 16: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 17: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 18: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 19: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

Les cartes SD

Mise en œuvre sur un stm32 via

l’interface hôte.

04/03/2011 Communication dans un système embarqué 19

Page 20: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

Les cartes SD

Échange de données:

04/03/2011 Communication dans un système embarqué 20

Page 21: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 22: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 23: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 24: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 25: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 26: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 27: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 28: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 29: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 30: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

6loWPan: IPv6 au-dessus des

réseaux sans fil à puissance faible

04/03/2011 Communication dans un système embarqué 30

Page 31: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

Contenu

Introduction

802.15.4

6LoWPan couche réseaux

Plates-formes disponibles

Limitations

04/03/2011 Communication dans un système embarqué 31

Page 32: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 33: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 34: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 35: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 36: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 37: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 38: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 39: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 40: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 41: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 42: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

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

Page 43: L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par FreeRtos Nanostack 1.1 est ouvert Drivers pour les modules radio TI CC2420 et CC2430

Q??

04/03/2011 Communication dans un système embarqué 43