L’USB, Universal Serial Bus Les cartes SD · 2011-03-06 · Ecrit sur les services fournis par...

Preview:

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

Recommended