Beruflich Dokumente
Kultur Dokumente
Thmes abords
Aperu rapide de
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
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
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
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.
RX / TX
Rcessif
Dominant
Rcessif
Dominant
Rcessif
6
Can
Couche Physique Modulation du signal Transmission diffrentielle
Vcc
Tx Driver
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.
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
Can
Consquence 1 Lien entre dbit et distance
Dtection de Collision : 50 % tbit
Station 1
Station 2
temps propagation
10
Can
Consquence 1 Lien entre dbit et distance
tbit
1 f bit
vsignal f bit
11
Lcble v propagatio n
Lcble 0.2
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
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.
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
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
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)
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
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.
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.
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
TXD RXD
RS
RXD
RECEIVER
20
Can
Intgration dans une lectronique - Contrleurs CAN
21
11
Can
Intgration dans une lectronique - Programmation
Gnration automatique dune interruption la rception dun message. La complexit reste en gnral raisonnable.
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.
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
25
13
CanOpen
PDO Process Data Object Un PDO vhicule linformation du processus
Etat des entres analogiques et tout ou rien. Etat des sorties.
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 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
27
14
Can CanOpen
Capacits de synchronisation temporelle
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
29
15
30
32 x
Valide 2.0A/B
Emiss Rec.
Arbitration 11/ 29
Utiliser masque
Taille donnes
31
16
32
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
33
17
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 );
34
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
35
18
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
36
void can_effacer_erreur( );
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.
38
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
41
21
42
22