Sie sind auf Seite 1von 22

Bus de terrain

Aperu de Can et CanOpen

Thmes abords
Aperu rapide de
Can et CanOpen

Souligner leurs caractristiques originales

Bus de terrain - Can et CanOpen

CanOpen
Prsentation

Nom
CAN : Controller Area Network. CanOpen : Couche 7 (application) au dessus de CAN.

Origine
CAN a t dvelopp pour lautomobile en 1986. Ide dun rseau interne aux vhicules pour simplifier le cblage.

Standardisation
ISO 11898 CanOpen : EN 50325-4

Organisation
Can In Automation : www.can-cia.org
Bus de terrain - Can et CanOpen 2

Can - CanOpen
Utilisation typique

Topologie BUS

Bus de terrain - Can et CanOpen

Can
Couche Physique

Cble
1 paire torsade + 1 masse
GND, CAN_L, CAN_H

Blindage recommand
Pour des longues distances Pour des environnements bruyants

Rsistances de terminaison
Simples rsistances de terminaison de 120 ohms chaque extrmit.
CAN_H 120 ohms CAN_L GND 120 ohms

Bus de terrain - Can et CanOpen

Can Open
Couche Physique Connecteur
Pin # 1 2 3 4 5 6 7 8 9 Signal Names Reserved CAN_L CAN_GND Reserved CAN_SHLD GND CAN_H Reserved CAN_V+ Signal Description Upgrade Path Dominant Low Ground Upgrade Path Shield, Optional Ground, Optional Dominant High Upgrade Path Power, Optional
1 6 2 7 3 8 4 9 5

Bus de terrain - Can et CanOpen

Can
Couche Physique Modulation du signal Traduction lectrique des tats
Etat 0 : Imposition dune diffrence de potentiel entre CAN_H et CAN_L. Etat 1 : Sortie laisse en haute impdance.

Lorsque plusieurs stations mettent simultanment un 0 et un 1


Ltat rsultant de la ligne est 0. On dit que ltat 0 est dominant, ltat 1 est rcessif.

Traduction lectrique des tats


CAN_H CAN_L = 2 V CAN_H CAN_L CAN_H CAN_L = 2 V

RX / TX

Rcessif

Dominant

Rcessif

Dominant

Rcessif
6

Bus de terrain - Can et CanOpen

Can
Couche Physique Modulation du signal Transmission diffrentielle
Vcc

Tx Driver

CAN_H 120 ohms CAN_L GND 120 ohms

Bus de terrain - Can et CanOpen

Can
Liaison Accs au mdium - CSMA/CA CSMA/CA
Carrier Sense Multiple Access with Collision Avoidance . Dtection de porteuse avec vitement de collision.

Principe
Avant dmettre, une station coute et vrifie que le mdium est disponible. Si cest le cas, elle commence mettre. Pendant lmission, la station compare ce quelle envoie avec ce quelle observe sur le cble.
En cas de diffrence, elle arrte immdiatement dmettre.

Si 2 stations commencent mettre simultanment


Tant quelles mettent la mme chose, pas de problme. Ds quil y a une diffrence sur un bit, celle qui envoie le bit dominant peut poursuivre, lautre sarrte.
Bus de terrain - Can et CanOpen 8

Can
Liaison Accs au mdium - CSMA/CA - Illustration
Station 1 voit une diffrence entre le signal mis et observ. Elle arrte dmettre.

Station 1

Rcessif

Dominant

Rcessif

Station 2

Rcessif

Dominant

Rcessif

Dominant

Rcessif

Dominant

CAN_H
CAN_L

Bus de terrain - Can et CanOpen

Can
Consquence 1 Lien entre dbit et distance
Dtection de Collision : 50 % tbit

Station 1

Station 2

< temps propagation


Bus de terrain - Can et CanOpen

temps propagation
10

Can
Consquence 1 Lien entre dbit et distance

2 t propagatio n 0.4 tbit


t propagatio n Lcble v propagatio n
0.4 1 f bit

tbit

1 f bit
vsignal f bit
11

Lcble v propagatio n

Lcble 0.2

Bus de terrain - Can et CanOpen

Can
Consquence 1 Lien entre dbit et distance la dure de chaque bit doit tre assez longue pour que chaque station ait le temps de dtecter la collision le signal doit donc pouvoir faire un aller-retour avant ~40% de la dure du bit
exemple : 500 kbits/s, la distance totale est limite

Lcble 0.2

200'000'000 80 m 500'000

Dbit 1 Mbit/s 500 Kbit/s 100 Kbit/s 20 Kbit/s

Longueur 40 m 80 m 400 m 1000 m

Bus de terrain - Can et CanOpen

12

Can
Consquence 2 Diffrentes possibilits pour les changes de donnes

Mode polling
CAN permet de raliser une interrogation des stations par polling comme Profibus

Mode vnementiel
Une station peut aussi mettre spontanment un message seulement lorsque cest utile. Meilleure exploitation de la bande passante. Temps de rponse sur vnement plus court. Possibilit denvoyer un message de synchronisation tous.

Mode multi matre naturel


Plusieurs matres peuvent accder aux stations Sans moyen de synchronisation supplmentaire
Bus de terrain - Can et CanOpen 13

Can Bit stuffing


Problme avec les longues sries de bits identiques
Le rcepteur na plus de flancs pour synchroniser lhorloge

Can utilise le bit stuffing


Utilis si 5 bits conscutifs de mme valeur doivent tre transmis. Lmetteur introduit automatiquement un bit de valeur oppose. Le rcepteur llimine automatiquement Exemple : transmission de 8 bits 1

Transmission de 8 bits 0

Bit stuffing
Bus de terrain - Can et CanOpen 14

Can
Liaison Format des messages
Format des messages spcification CAN 2.0A
Arbitration field Control field Data field CRC End of Ack frame Int Bus idle

S O F

11 bits identifier

R I r DLC T D 0 4 bits R E

0 8 octets

CRC

A C K

Format des messages spcification CAN 2.0B


Arbitration field Control field Data field CRC End of Ack frame Int Bus idle

S O F

11 bits identifier

S I R D R E

18 bits identifier

R r r DLC T 1 0 4 bits R

0 8 octets

CRC

A C K

Bus de terrain - Can et CanOpen

15

Can
Liaison Format des messages Can 2.0 A
Champ Start-of-frame Identifier Remote transmission request (RTR) Identifier extension bit (IDE) Reserved bit (r0) Data length code (DLC) Data field CRC CRC delimiter Taille (bits) 1 11 1 1 1 4 0-8 bytes 15 1 Rle Denotes the start of frame transmission A (unique) identifier for the data Must be dominant (0) Must be dominant (0) Reserved bit (it must be set to dominant (0) Number of bytes of data (0-8 bytes) Data to be transmitted (length dictated by DLC field) Cyclic redundancy check Must be recessive (1)

ACK slot
ACK delimiter End-of-frame (EOF)

1
1 7

Transmitter sends recessive (1) and any receiver can assert a dominant (0)
Must be recessive (1) Must be recessive (1)

Bus de terrain - Can et CanOpen

16

Can
Liaison Format des messages Can 2.0 B
Champ Start-of-frame Taille 1 Rle Denotes the start of frame transmission

Identifier A
Substitute remote request (SRR) Identifier extension bit (IDE) Identifier B Remote transmission request (RTR) Reserved bits (r0, r1) Data length code (DLC) Data field CRC CRC delimiter ACK slot ACK delimiter End-of-frame (EOF)

11
1 1 18 1 2 4 0-8 bytes 15 1 1 1 7

First part of the (unique) identifier for the data


Must be recessive (1) Must be recessive (1) Second part of the (unique) identifier for the data Must be dominant (0) Reserved bits (it must be set dominant (0), but accepted as either dominant or recessive) Number of bytes of data (0-8 bytes) Data to be transmitted (length dictated by DLC field) Cyclic redundancy check Must be recessive (1) Transmitter sends recessive (1), any receiver can assert a dominant (0) Must be recessive (1) Must be recessive (1)

Bus de terrain - Can et CanOpen

17

Can
Liaison Dtection et gestion des erreurs

Le CRC des messages qui passent est contrl par toutes les stations. Si le message est valide
Les stations gnrent lacquittement. Permet de vrifier que le message a t reu.
Ack : valeur dominante Ack delimiter : valeur rcessive.

Si le message est invalide


La ou les stations dtruisent le message pour toutes les stations.
En mettant Ack delimiter la valeur dominante.

Lmetteur attend lintervalle inter trame, puis rmet.


S O F
Bus de terrain - Can et CanOpen

11 bits identifier

R I r DLC T D 0 4 bits R E

0 8 octets

CRC

A C K
18

Can
Liaison Adressage

Principe
CAN ne comporte pas de notion dadresse On utilise en gnral certains bits du champs darbitrage comme bits dadresse. La plupart des contrleurs CAN savent filtrer les messages reus sur la base du champ darbitration.

Consquences
Les adresse plus basses ont une priorit plus haute.

Bus de terrain - Can et CanOpen

19

10

Can
Intgration dans une lectronique Drivers de ligne
TOP VIEW
TXD 1
GND 2 VCC 3 RXD 4

8
7

RS
CANH CANL SHDN
VCC

MAX3050 MAX3057

6 5

SO
MAX3050
THERMAL SHUTDOWN

VCC ? 120 0.1F CAN CONTROLLER VCC CANH


TXD TRANSMITTER CONTROL CANH CANL

TX0 RX0 30pF

TXD RXD

MAX3050 MAX3057 CANL


(100nF) SHDN

RS

MODE SELECTION GND

RXD

RECEIVER

RS GND ? TO 180k ? 24k GND ? 120

0.75V WAKE 7.5V AutoShutdown SHDN

Bus de terrain - Can et CanOpen

20

Can
Intgration dans une lectronique - Contrleurs CAN

Directement intgr dans de nombreux micro contrleurs


Mme trs bas cot Exemple : Microchip 8 bits avec interface Can, ~ 5$

Bus de terrain - Can et CanOpen

21

11

Can
Intgration dans une lectronique - Programmation

Programmation du contrleur CAN travers une srie de registres internes.


Registres de configuration. Registres denvoi et de rception de donnes.

Gnration automatique dune interruption la rception dun message. La complexit reste en gnral raisonnable.

Bus de terrain - Can et CanOpen

22

CanOpen
Un protocole de la couche application

CanOpen
Utilise le format Can 2.0 A. Dfinit la structure dtaille des messages. Protocole applicatif largement paramtrable. Donc assez complexe. Permet dutiliser efficacement CAN selon les besoins applicatifs.

Lidentificateur CAN est divis en 2 parties


COB-ID : Communication Object ID, sur 4 bits Node-ID : sur 7 bits. Adresse du nud, 0 127.
COB-ID 4 bits NODE-ID 7 bits CAN Identifier (arbitration field 11 bits)
Bus de terrain - Can et CanOpen 23

12

CanOpen
Quelques COB-ID COB-ID 000h 001h 080h 081h-0FFh 181h-1FFh 201h-27Fh 581h-5FFh 601h-67Fh
Bus de terrain - Can et CanOpen

Usage NMT (Network Management) Global Failsafe Command SYNC Emergency Transmit PDO1 Receive PDO1 Transmit SDO Receive SDO

Construction
Priorit la plus haute

80h + NodeID 180h + NodeID 200h + NodeID 580h + NodeID 600h + NodeID
Priorit la plus basse
24

CanOpen
SDO Service Data Object

Tlgrammes permettant denvoyer ou de lire des informations de configuration.


Utiliss pendant les phases dinitialisation.

Permettent notamment une application de configurer


Quelles donnes de processus doivent tre transmis (PDO). Sous quelle conditions ces donnes doivent tre envoyes.

Ces informations sont crites dans lObject Dictionnary


Chaque esclave comporte un Object Dictionnary. Cet object Dictionnary configure le comportement de lesclave.

Bus de terrain - Can et CanOpen

25

13

CanOpen
PDO Process Data Object Un PDO vhicule linformation du processus
Etat des entres analogiques et tout ou rien. Etat des sorties.

Selon la configuration, un PDO est envoy


Sur rception dun tlgramme dune autre station. Sur un vnement interne de lesclave :
changement dtat dune entre.

Sur rception du message SYNC. De faon priodique aprs N SYNC. Intervalle minimum entre 2 envois successifs, pour viter le surcharge.

Avantage
Un seul message SYNC peut dclencher lenvoi de tous les PDO des diffrentes stations. Gestion efficace de la bande passante.
Bus de terrain - Can et CanOpen 26

Can CanOpen
Avantages du modle vnementiel

Au niveau de la charge du bus


Un message nest envoy que lors dun changement dtat

Au niveau de la rapidit
Si le bus nest pas charg, notification immdiate. Pas de retard supplmentaire d un temps de cycle.
Cycles automate Can Cycles internes De lesclave Entre tout ou rien Sortie tout ou rien Retard faible

Bus de terrain - Can et CanOpen

27

14

Can CanOpen
Capacits de synchronisation temporelle

Synchronisation par un message en diffusion


Tous les esclaves le reoivent presque simultanment Permet de coordonner le dmarrage dun mouvement.
Problme en cas de rmission du message

Ce message devrait tre le plus prioritaire.


PDO Station 1 Can PDO Station 2 SYNC

Sortie tout ou rien Station 2

Sortie tout ou rien Station 1


Bus de terrain - Can et CanOpen 28

Can CanOpen
Faiblesse du modle vnementiel

Non dterminisme
Le temps de propagation dun vnement dpend de la charge du bus Si le bus est trs charg, un message non prioritaire peut prendre un temps trs long arriver. Problme observable dans la pratique.

Parades
Eviter de rpter trop souvent les PDO
Imposer un temps minimum entre 2 missions dun mme PDO

Ne garantit rien sur un bus avec de nombreuses stations.

Bus de terrain - Can et CanOpen

29

15

Implmentation du bus CAN


Exemple : Programmation du contrleur Bosch

Bus de terrain - Can et CanOpen

30

Implmentation du bus CAN


Exemple : Programmation du contrleur Bosch Message RAM
Valide 2.0A/B Emiss Rec. Arbitration 11/ 29 Masque arbitration Donnes 8 x 8 Emiss Valide 2.0A/B Rec. Arbitration 11/ 29 Masque arbitration Donnes 8 x 8 Valide 2.0A/B Emiss Rec. Arbitration 11/ 29 Masque arbitration Donnes 8 x 8 Utiliser masque Taille donnes Utiliser masque Taille donnes Utiliser masque Taille donnes

32 x

Valide 2.0A/B

Emiss Rec.

Arbitration 11/ 29

Masque arbitration Donnes 8 x 8

Utiliser masque

Taille donnes

Bus de terrain - Can et CanOpen

31

16

Implmentation du bus CAN


Exemple : Programmation du contrleur Bosch

Message RAM : 32 objets message


Zones mmoire pour configurer un message. Options :
Objet message utilis ou non Can 2.0A ou Can 2.0B Emission ou rception Champ darbitration (11 ou 29 bits) Masque darbitration (rception, 11 ou 29 bits) Utiliser ou non le masque Taille de donnes

Bus de terrain - Can et CanOpen

32

Implmentation du bus CAN


Exemple : Programmation du contrleur Bosch

Procdure suivre pour linitialisation


Configurer les objets message utiliss. Activer le contrleur CAN

Envoi de message
Ecrire les donnes dans lobjet message correspondant. Activer la demande denvoi de cet objet message

Rception
Lire le bit Message arriv Si vrai, lire les donnes

Bus de terrain - Can et CanOpen

33

17

Implmentation du bus CAN


Exemple : Programmation du contrleur Bosch Bibliothque fournie en laboratoire
Simplifie la mise en uvre du contrleur CAN Bosch sur Silabs

Initialisation
void can_configurer_objet_message( char numero_objet_message, // 1..32 char message_valide, // 0 ou 1 char can_2_0b, // 0 (CAN 2.0A) ou 1 (CAN 2.0B) char emission, // 0 ou 1 long champ_arbitration, // 11 ou 29 bits utiliss selon type_can long masque_arbitration, // 11 ou 29 bits utiliss selon type_can char utiliser_masque, // 0 ou 1 char taille_donnees // taille des donnees du message en octet ); void can_activer_controleur( char autoriser_interruption // 0 ou 1 );

Bus de terrain - Can et CanOpen

34

Implmentation du bus CAN


Exemple : Programmation du contrleur Bosch

Envoi
void can_envoyer_message( char numero_objet_message, // 1..32 char * donnees, char taille_donnees );
char can_message_envoye( char numero_objet_message // 1..32 ); // retourne 0 / 1

Bus de terrain - Can et CanOpen

35

18

Implmentation du bus CAN


Exemple : Programmation du contrleur Bosch

Rception
char can_message_recu( char numero_objet_message // 1..32 ); // retourne 0 / 1 char can_lire_message( char numero_objet_message, char * donnees, char taille_tampon_donnees ); // retourne la taille lue

// 1..32

Bus de terrain - Can et CanOpen

36

Implmentation du bus CAN


Exemple : Programmation du contrleur Bosch

Gestion des erreurs


char can_erreur( ); // retourne 0 / 1

void can_effacer_erreur( );

Bus de terrain - Can et CanOpen

37

19

Can
Analyse Can
Performance du principe vnementiel. Non dterminisme, sauf pour le message de priorit maximale. Simplicit dintgration dans une lectronique. Trs conomique. Protocole assez rpandu. Tire bien parti de Can. Trs adaptable aux besoins de lapplication. Une certaine complication au niveau logiciel. Il existe des bibliothques toute prtes en C.

CanOpen

Alternatives
Dveloppement dun protocole propritaire sur CAN. Trs efficace lorsque linteroprabilit nest pas ncessaire
Voie suivie par de nombreuses socits.

Bus de terrain - Can et CanOpen

38

Bus de terrain - Bienvenue

20

Quavons-nous appris ?
CAN
Couche 1 et 2 du modle OSI. Un protocole simple et efficace. Facile exploiter moindre cot dans toute carte microprocesseur.

CanOpen
Couche 7 du modle OSI Une solution un peu complique, mais trs configurable.

Can Propritaire
Solution considrer dans les dveloppements lectroniques. Permet de tirer parti des avantages de CAN. Sans la complexit de CanOpen.
Bus de terrain - Can et CanOpen 40

Vos questions

Bus de terrain - Can et CanOpen

41

21

Bus de terrain - Can et CanOpen

42

22

Das könnte Ihnen auch gefallen