Vous êtes sur la page 1sur 62

Bus de communication

Sylvain MONTAGNY
sylvain.montagny@univ-savoie.fr
Btiment chablais, bureau 13
04 79 75 86 86
Retrouver tous les documents de Cours/TD/TP sur le site
www.master-electronique.com
Prsentation des cours : Sommaire

Cours : 12 h en 8 sances
tude de norme des protocoles
tude de documentations constructeur
Application notes
Datasheet

One Wire bus


SPI
I2C
CAN
LIN
Ethernet

Universit de Savoie 2
Prsentation TP
TD : 20 h en 5 sances
Mise en place de diffrents bus de communication sur
base microcontrleurs/FPGA :
One Wire bus >> Capteur de temprature DS1820
SPI >> Connexion Matre esclave C Pic 16F877
I2C >> Codec Audio 24 bits WM8731
>> Connexion Horloge Tps Rel (RTC) / PIC
CAN >> Connexion Multi-Matre C Pic 16F877
LIN
Ethernet

Universit de Savoie 3
Bus de communication
Les protocoles que nous allons tudier sont
des protocoles de couches basses.

Pour faire fonctionner le bus de


communication il faut :
Matriser le protocole de couche basse (SPI, CAN,
One-wire)
Comprendre le protocole de couche haute,
spcifique chaque composant (lordre des
requtes, le contenu de chaque rponse, etc)

Universit de Savoie 4
One-wire

Universit de Savoie 5
One-wire
Caractristiques gnrales (1)
Page 1 3 de AN1199 (Microchip)

De quel constructeur ce bus de communication est


(registered trademark)?

Quelle est le domaine dapplication?

Dbit :

Nombre de fils :

Universit de Savoie 6
One-wire
Caractristiques gnrales (2)
Asynchrone
Type matre-esclave (single master, multi salves)
Half duplex,
Bidirectionnelle
LSB first
Bit oriented
Possibilit dalimenter les esclaves

7
One-wire
Prrequis matriel

Etre capable de gnrer des delays de 1s.


Ligne IO bidirectionnel
I/O Open drain

Universit de Savoie 8
One-wire
Les 4 oprations
Quatre oprations :
Reset
Write 1
Write 0
Read bit

Universit de Savoie 9
Universit de Savoie 10
One-wire
Application
Raliser la lecture de la temprature du capteur DS1820 (One-
Wire digital thermometer)
Affichage sur des leds ou sur le LCD

Universit de Savoie 11
SPI

Universit de Savoie 12
SPI
Caractristiques gnrales (1)
Document : Mid Range MCU Family : DS33023a page 277 292.
Baptis SPI (Serial Peripheral Interface) par
motorola.

Quelle est le domaine dapplication?

Dbit : Jusqu plusieurs Mbps

Nombre de fils :

Universit de Savoie 13
SPI
Caractristiques gnrales (2)
Synchrone
Type matre-esclave (single master, multi salves)
Unidirectionnel (Une ligne par direction)
Full duplex

Universit de Savoie 14
SPI
Connexions (1)

Connecter les esclaves Universit


au matre de Savoie 15
SPI
Connexions (1)

Universit de Savoie 16
SPI
Connexions (2)
Le bus SPI contient 4 signaux logiques :
SCLK : Horloge (Gnr par le matre)
MOSI : Master OUT, Slave IN
MISO : Master IN, Slave OUT
SS : Slave Select, actif ltat bas, gnr par le matre.

Il existe d'autres noms qui sont souvent utiliss :


SCK : Horloge (Gnr par le matre)
SDI, DI, SI : Serial Data IN
SDO,DO,SO : Serial Data OUT
nCS, CS, nSS, STE : SS

Universit de Savoie 17
SPI
Lhorloge (1)

Il ny a pas de spcification prcise dans le protocole SPI


prcisant les fronts dhorloge pour la validation des
donnes. En pratique, nous retrouvons 4 modes de
fonctionnements, qui sont une combinaison de 2 variables :

CPOL : Prcise la polarit de la clock au repos (haut ou bas)


CPHA : Prcise si on travail sur un front montant ou sur un front
descendant pour lacquisition.

Universit de Savoie 18
SPI
Lhorloge (2)

Universit de Savoie 19
SPI
Les SSP du PIC

BSSP : Basic Synchronous Serial Port


pas de gestion des polarits de la clock

SSP : Synchronous Serial Port

MSSP : Master Synchronous Serial Port


SSP + gestion des modes matre/esclave en I2C

Universit de Savoie 20
SPI
Avantages / Inconvnients
Avantages
Dbit plus important que pour le protocole I2C
Aucun arbitre car aucune collision possible
Trs simple

Inconvnients :
Monopolise plus de Pin dun botier que lI2C
Aucun adressage possible, il faut une ligne de
slection par esclave
Pas dacquittement
Sutilise sur des plus courtes distances que les
liaison srie ou CAN

Universit de Savoie 21
SPI
Application (voir 17.3.3)

Universit de Savoie 22
I2C

Universit de Savoie 23
I2C
Caractristiques gnrales (1)
Document : I2C bus specification (NXP document) page 3 12
IIC : Inter Integrated Circuit

Quelle est le domaine dapplication?

Dbit :
Jusqu 100 kbps en mode standard (version 1)
Jusqu 400 kps en mode fast (version 1)
Jusqu 3,4 Mbps en mode HS (version 2 / 2000)
Nombre de fils :

Universit de Savoie 24
I2C
Caractristiques gnrales (2)

Synchrone
Type matre-esclave (Multi masters, multi salves)
Bidirectionnel
Half duplex
Byte oriented transmission
MSB first

Universit de Savoie 25
I2C
Terminologie

Transmitter : Celui qui envoi les donnes sur le bus


Receiver : Celui qui reoit les donnes sur le bus
Master : Celui qui initie le transfert
Slave : Celui est adress pour un transfert.

Universit de Savoie 26
I2C
Accs au bus
Quel est ltat de la ligne au repos ?
Quel est ltat de la ligne si un device met un 1 et un autre un
0 ?
Comment voit-on une collision?

Universit de Savoie 27
I2C
Validit des bits / Start / Stop
Validit des bits transmis : Condition de START et STOP :

La donne sur la ligne SDA doit Une transition de HAUT BAS sur
tre stable pendant toute la SDA pendant que SCL est au repos
dure de ltat haut de SCL. (HAUT) dfini une condition de
START.
Une transition de BAS HAUT sur
SDA pendant que SCL est au repos
dfini la condition de STOP.
I2C
Transfert et acquittement
Document NXP page 10 / chapitre 3.3

Transfert de donnes :
Combien doctet peut-on transmettre la suite?
Comment un esclave rcepteur peut il bloquer le transfert
lorsquil est occup?
Acquittement :
Qui gnre le coup dhorloge sur SCL pour le bit
dacquittement?
Pendant lacquittement : Que fait le rcepteur, que fait
lmetteur?
Que ce passe t il lorsque quun esclave-rcepteur nacquitte
pas le transfert?

Universit de Savoie 29
I2C
Arbitrage des collisions

Lmetteur transmettant un 1 le premier perd.


Universit de Savoie 30
I2C
Format de la trame

START condition
Slave Address - 7 bits
Read/Write 1 bit
Data : n octets + 1 bit acquittement
STOP condition

Universit de Savoie 31
I2C
Vido commercial de NXP :
http://www.youtube.com/watch?v=BcWixZcZ6JY

Universit de Savoie 32
Bus CAN

Universit de Savoie 33
Bus CAN
Caractristiques gnrales (1)

CAN : Control Area Network, BOSCH 1983

Quelle est le domaine dapplication?


Principalement lautomobile

Dbit (Dpend de la taille du rseau)


jusqu 1 Mbps (rseaux < 40 m)
125 kbps (rseau < 500 m).

Nombre de fils :

Universit de Savoie 34
Bus CAN
Caractristiques gnrales (2)

Asynchrone
Bus Multi-Matres
Bidirectionnel
Half duplex
Diffrentielle : moins sensible aux
perturbations
Byte oriented transmission

Universit de Savoie 35
Bus CAN
Origines
Constat dans lautomobile :
2000 m de cble 1800 connexions en 1995 >> La fiabilit et
la scurit sont menaces.
Les normes en matire de pollution et de consommation
dnergie multiplient les capteurs et actionneurs intelligents.
Le besoin de scurit accrue (ABS, ESP, AIR-BAG) et la
demande de confort (mmorisation des rglages de conduite,
climatisation rgule par passager, systme de navigation)
ne font que renforcer cette tendance.

Extension du bus CAN


Les composants CAN se dmocratisent et investissent dautres
secteurs de lindustrie (engins travaux publique, agricole,
mdical, produits numriques, systmes lectrotechnique)
Universit de Savoie 36
Bus CAN
Pourquoi un bus CAN?

Cblage conventionnel Cblage CAN

Tous les nuds reoivent le message CAN. Chaque nud


rcepteur dcide de lintrt du message mit. Il est possible
dinterroger un nud particulier.

37
Les sous couches LLC, MAC et PLS sont traites par les circuits
contrleur de bus CAN (microcontrleur, circuits spcialiss)
Bus CAN
Couche physique (1)
Codage NRZ (Non Return To Zero). Le niveau de tension de la ligne est
maintenu pendant toute la dure durant laquelle un bit est gnr.

0 1 1 0 1 0 0
dominant rcessif rcessif dominant rcessif dominant dominant

La technique du Bit Stuffing impose au transmetteur dajouter


automatiquement un bit de valeur oppose lorsquil dtecte 5 bits
conscutifs dans les valeurs transmettre. Pourquoi ?
Trame l'mission avant la mise en place des bits de stuffing

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Trame avec bits de stuffing (S)

1 2 3 4 5 6 7 S 8 9 10 11 12 13 14 15 16 17 18 19 S 20 21 22 23 24
Bus CAN
Couche physique (2)
La transmission des donnes seffectue
sur une paire par mission
diffrentielle entre les deux lignes
(CAN H et CAN L). La ligne du bus doit
se terminer par des rsistances de 120
Ohms.

Universit de Savoie 40
Bus CAN
Format de la trame de donne
Il existe quatre types de trames spcifiques et dun
intervalle de temps les sparant :
Les trames de donnes
Les trames de requte (demande dinformation un nud)
Trames derreurs (mises par nimporte quel noeud ds la
dtection dune erreur)
Des trames de surcharge (ces trames correspondent une
demande dun laps de temps entre les trames de donnes et
de requte prcdentes et successives).

Note : Il existe un espace intertrame de 3 bits rcessifs entre les trames


de donnes et de requte.

Universit de Savoie 41
Bus CAN
Format de la trame de donne, doc AN713 (p 6 & 7)
Retrouver le nombre de bits de chaque lment de la trame.
Retrouver et isoler les diffrentes parties : dbut de trame, champ
d'arbitrage, champ de commande, champ de donnes, champ de CRC,
champ d'acquittement, fin de trame.

Field name Length (bits) Purpose


Start-of-frame 1 Denotes the start of frame transmission
Unique identifier for the data which
Identifier 11
also represent the message priority
Remote transmission request (RTR) 1 Dominant (0)
Identifier extension bit (IDE) 1 Dominant (0)
Reserved bit (r0) 1 Dominant (0)
Data length code (DLC) 4 Number of bytes of data (0-8 bytes)
Data field 064 Data to be transmitted (length dictated by DLC field)
CRC 15 Cyclic Redundancy Check
CRC delimiter 1 Recessive (1)
Transmitter sends recessive (1) and
ACK slot 1
any receiver can assert a dominant (0)
ACK delimiter 1 Recessive (1)
End-of-frame (EOF) 7 Recessive (1)
Bus CAN
Terminologie (1)
Noeud : Sous-ensemble reli un rseau de communication et capable
de communiquer sur le rseau.

Valeurs du bus : Les deux valeurs logiques dfinies ne sont pas le 0 et


le 1 , mais des formes dites dominante et rcessive.

Message : Chaque information est vhicule sur le bus laide dun


message (trame de bits) de format dfini mais de longueur variable (et
limite).

Routage des informations : Des noeuds peuvent tre ajouts au


rseau sans quil ny ait rien modifier. Chaque message possde un
identificateur (identifier) qui nindique pas la destination du message
mais la signification des donnes du message. Ainsi tous les noeuds
reoivent le message, et chacun est capable de savoir grce au systme
de filtrage si ce dernier lui est destin ou non.
Bus CAN
Terminologie (2)
Trame de donnes : Une trame de donnes (data frame) est une trame
qui transporte, comme son nom lindique, des donnes.

Demande dune trame de donnes : Un noeud peut demander un


autre noeud denvoyer une trame de donnes, et pour cela il envoie lui-
mme une trame de requte. La trame de donnes correspondant la
trame de requte initiale possde alors le mme identificateur.

Dbit bit : Le dbit bit peut varier entre diffrents systmes, mais il doit
tre fixe et uniforme au sein dun mme systme.

Priorits : Les identificateurs de chaque message permettent de dfinir


quel message est prioritaire sur un autre.

Fonctionnement multi-matre : Lorsque le bus est libre, chaque noeud


peut dcider denvoyer un message. Seul le message de plus haute priorit
prend possession du bus.

Universit de Savoie 44
Bus CAN
Terminologie (3)
Arbitrage : Si deux noeuds ou plus tentent dmettre un
message sur un bus libre il faut rgler les conflits daccs. On
effectue alors un arbitrage bit bit (non destructif) tout au long
du contenu de lidentificateur. Ce mcanisme garantit quil ny
aura ni perte de temps, ni perte dinformations. CSMA/CA (Carrier
Sense Multiple Access - Collision Avoidance).

Points de connexion : La liaison de communication srie CAN


est un bus sur lequel un nombre important dunits peuvent tre
raccordes. En pratique le nombre total dunits sera dtermin
par les temps de retard (dus aux phnomnes de propagation)
et/ou les valeurs des charges lectriques que ces units
prsentent sur le bus.

Acquittement : Tous les rcepteurs vrifient la validit dun


message reu, et dans le cas dun message correct ils doivent
acquitter en mettant un flag.

Universit de Savoie 45
Bus CAN
Mise en uvre (1)
Application Note Microchip
AN713, An introduction to the CAN protocol that discusses the basics and key features.
AN228, A CAN Physical Layer Discussion
AN754, Understanding Microchips CAN Module Bit Timing

Dbit en kbits/s

1000

100

10

1
Longueur
10 100 1000
en m
Les timings du bus CAN
Le Nominal Bit Time
Le bus CAN est dfini par le temps dun bit (TBIT ou Nominal Bit
Time) qui nous permettra de connatre le dbit binaire (Nominal Bit
Rate).

Dure d'un bit = Nominal Bit Time

Le problme est que les oscillateurs des diffrents nuds sur le bus
nont pas la mme frquence dhorloge. De plus, ces horloges ont
des dfauts de prcision et de stabilit. Il faut donc trouver une
manire spcifier la dure dun bits (Nominal Bit Time)
commune tous les nuds.
Universit de Savoie 47
Les timings du bus CAN
Le time Quantum
Chaque nud va donc dfinir une base de temps qui lui est
propre : le Time Quantum. Cette base de temps est une
fraction de lhorloge de loscillateur du bus. Elle servira dunit de
temps pour la gestion de tous les timings du bus.

Horloge du bus

Time Quantum
Horloge divise
>>Nouvelle unit de
temps pour les timings
du BUS CAN

Dure d'un bit (entre 8 et 25 fois le time Quantum) = Nominal Bit Time
Les timings du bus CAN
Rglage time Quantum sur PIC18F

Retrouver lexpression de TQ=f(BRP, FOSC) :

2.( BRP 1)
TQ
FOSC
Universit de Savoie 49
Les timings du bus CAN
Le time Quantum (3)

Universit de Savoie 50
Les timings du bus CAN
Dure d'un bit = Nominal Bit Time

Sync_Seg Prop_Seg Phase_Seg1 Phase_Seg2

1 TQ 1 TQ - 8TQ 1 TQ - 8TQ 2TQ - 8TQ

Sampling Point

le segment de synchronisation : Il est utilis pour valider le fait que les nuds sont
synchroniss. En effet, une transition (dbut dun bit) doit seffectuer dans ce segment.

Le segment de propagation : Il est utilis pour compenser les phnomnes de temps


de propagation sur le bus. (voir transparent suivant)

Les segments phase1 et phase2 : Ils sont utiliss pour compenser les erreurs de
phase et de frquence des oscillateurs. Un rallongement ou raccourcissement de ces
segments permet de resynchroniser lhorloge, et doptimiser le point dchantillonnage.
Le point dchantillonnage : Cest le point o la valeur du bit est lue sur le bus. Il est
situ la fin du segment de phase1.
Universit de Savoie 51
Les timings du bus CAN
Propagation Segment

Collision !!!
RTT = Round Trip Time >> Prog_Seg

Pour que la collision soit vue, il faut : Propagation Segment = RTT

Dbit Longueur Longueur d'un bit

1 Mbit/s 30 m 1 s
800 kbit/s 50 m 1,25 s
500 kbit/s 100 m 2 s
250 kbit/s 250 m 4 s
125 kbit/s 500 m 8 s
62,5 kbit/s 1000 m 16 s
20 kbit/s 2500 m 50 s
10 kbit/s 5000 m 100 s
Les timings du bus CAN
Phase segment
Dure d'un bit = Nominal Bit Time

Phase_Seg1 Phase_Seg2

1 3 Sampling points
Environ 80% du Nominal Bit Time

Lagrandissement de phase_Seg1 ou le raccourcissement de Phase_Seg2


permet dajuster le point dchantillonnage. De plus Phase_Seg2 a une
dure minimale reprsentant lIPT (Information Processing Time = Temps
de quantification du bus)
Lchantillonnage peut tre valu plusieurs fois pour plus de robustesse

53
Les timings du bus CAN
Synchronisation segment
Nud 1

Sync_Seg Prop_Seg Phase_Seg1 Phase_Seg2

Nud 2

Sync_Seg Prop_Seg Phase_Seg1 Phase_Seg2

2 Nuds CAN synchroniss

Si les deux nuds CAN ne sont pas synchroniss, la valeur lue sur le bus
au moment de lchantillonnage peut tre fausse. Ces retards sont
gnants pour la phase dacquittement de la trame o il y a peu de temps
pour finir de calculer le CRC. Deux processus peuvent intervenir pour
compenser les dphasage des deux oscillateurs :
La Hard Synchronisation

La Resynchronisation
54
Les timings du bus CAN
Les synchronisations (1)
La Hard Synchronisation :
Elle est ralise une seule fois pendant le dbut dun message (Start Of
Frame). Leffet dune hard-synchronisation est de faire repartir le Nominal Bit
Time depuis le segment de synchronisation (SYNC_SEG). Le Nominal Bit
Time en cours est abandonn et un nouveau Nominal Bit Time repart (ds le
Time Quantum suivant), depuis le segment de synchronisation (SYNC_SEG).
La Resynchronisation
Lorsque le nud CAN rcepteur relve une dsynchronisation lors dun
nouveau bit, il va rallonger Seg_Phase1 (+SJW) ou raccourcir Seg_phase2(-
SJW) pour recaler le position du bit. La valeur de loffset SJW
(Synchronization Jump Width) est paramtrable.

Universit de Savoie 55
Les timings du bus CAN
Les synchronisations (2)

Bit mis par un nud sur la ligne

Sync_Seg Prop_Seg Phase_Seg1 Phase_Seg2

Nud 1 synchronis : Le front est dans le Sync_Seg

Sampling point dcal


Sync_Seg Prop_Seg Phase_Seg1 SJW Phase_Seg2

Nud 2 en avance sur le bit mis : Phase_Seg1 = Phase_Seg1 + SJW

Phase_Seg2
Sync_Seg Prop_Seg Phase_Seg1
SJW
Sync_Seg Prop_Seg Phase_Seg1 Phase_Seg2

Nud 3 en retard sur le bit mis : Phase_Seg2 = Phase_Seg2 - SJW

56
Bus CAN
Mise en uvre dans un C (1)
Comment envoyer un message sur le C PIC18F2480?
Configurer le module ECAN :
Timing : Time Quantum, Sync_Seg, Phase_Seg1, Phase_Seg2, SJW
Trame Standard ou Extended, sample point, IPT (Information Processing Time)
Le module ECAN soccupe :
Des start/stop bits
De larbitrage du message sur la ligne
Du calcul du CRC

Remplir les buffers dmission (3 buffers) :


TXBnSIDH TXBnSIDL TXBnEIDH TXBnEIDL TXBnDm
0<n<2 >> Pour lidentificateur et 0<m<8 >> Pour les Donnes

Le Bus Transceiver (MCP2551) soccupe de placer les signaux diffrentiels


sur la ligne (CANH-CANL)

57
Bus CAN
Mise en uvre dans un C (2)
Comment recevoir un message?
Configurer le module ECAN (Idem que pour lmission) :
Timing : Time Quantum, Sync_Seg, Phase_Seg1, Phase_Seg2, SJW
Trame Standard ou Extended, sample point, IPT (Information Processing
Time)
Dterminer les messages que nous souhaitons recevoir :
Quels bits de lidentificateur nous intresse ? (choix du acceptance mask )
Quels sont les valeur de ces bits ? (Choix du filtre)
Le module ECAN soccupe :
De dtecter les Start/stop bits
De remplir les buffers de rceptions (si les messages reus nous concerne)
De faire la vrification du CRC.

Lire les buffers de rception (2 buffers) :


RXBnSIDH RXBnSIDL RXBnEIDH RXBnEIDL RXBnDm
0<n<1 >> Pour lidentificateur et 0<m<8 >> Pour les Donnes

Universit de Savoie 58
Bus CAN
Mise en uvre dans un C (3)

Datasheet PIC18F2480 page 280


Expliquer le droulement de lmission :

Expliquer le droulement de la rception

Universit de Savoie 59
Bus LIN

www.lin-subbus.org

Universit de Savoie 60
Bus LIN
Le LIN permet une communication conomique dans
les applications o la bande passante et la polyvalence
du CAN ne sont pas requises.
Les rseaux automobiles modernes utilisent :
Le LIN pour les applications faible cot
Le CAN pour les communications plus large bande
Le FlexRay pour les communications de donnes
synchronises haute vitesse dans les systmes de scurit
avancs tels que la suspension active.
Bus LIN CAN FlexRay
Speed 40 kbit/s 1 Mbit/s 10 Mbit/s
Cost $ $$ $$$
Wires 1 2 2 or 4
High-Performance
Powertrain
Powertrain, Safety
Typical Body Electronics (Mirrors,Power (Engine,
(Drive-by-wire, active
Applications Seats, Accesories) Transmission,
suspension, adaptive
ABS)
Universit de Savoie cruise control) 61
Universit de Savoie 62