SlideShare une entreprise Scribd logo
PROJET DE FIN D’ÉTUDES
29 Mai, 2013
RÉALISÉ PAR
Barrak Mohamed Amine
ENCADRANTS
M. Barreh Walid
Mme. Ben Hlima Ines
Licence Appliquée en Informatique Industrielle
Option : Systèmes embarqués
Contexte et objectif du projet
CAN
Page 2/24
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
• Les bus CAN permettent l’interconnexion entre plusieurs entités d’un même
système
• Topologie en bus pour faciliter la mise en place, l’évolution et l’extension des
systèmes
• Pour la mise en œuvre d’un bus de communication, un protocole doit être
développé afin de gérer la transmission fiable des données
• Exemples de protocoles :
– DeviceNet de la société Allen Bradley,
– SDS (Smart Distributed System) de la société Honeywell
– CAL/CANopen du CiA
• Objectif du stage
Implémenter le CANopen sur une plateforme ezLINX
Plan de la présentation
Présentation du protocole CANopen
Introduction
Implémentation et validation sur DSP
Conception du protocole CANopen
Conclusions et perspectives
Page 3/24
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Présentation du protocole
CANopen
Protocole CANopen
Conception CANopen
Implémentation sur DSP
• CANopen définit un protocole de communication pour les systèmes
d'automatisation industrielle distribués basés sur le bus CAN
• Développé au sein du groupe CiA
• Normalisé en Décembre 2002 sous CENELEC EN 50325-4
• Utilisé dans de nombreux secteurs de l’industrie
Protocole CANopen
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Page 5/24
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
• Jusqu’à 127 nœuds sont connectés sur le même réseau.
• Le débit de transmissions de données peut atteindre 1 Mbps pour une
longueur du bus de 30m
• Transmission de données différentielle effectuée sur une paire torsadée :
(CAN H et CAN L)
• La ligne du bus est terminée par des résistances de 120 Ω.
• Un nœud du bus CAN requiert un microcontrôleur et un contrôleur CAN.
Caractéristiques du réseau CAN
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Page 6/24
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Architecture d’un nœud CANopen
• L’architecture interne d’un appareil CANopen se compose de :
– Une interface de communication
– Un processus d'application
– Un Dictionnaire Objets
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Page 7/24
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Interface de communication
CANopen
Objets de communication CANopen
• CANopen définit les objets de communication :
– Process Data Object (PDO),
– Service Data Object (SDO),
– Network Management (NMT),
– Fonctions spéciales (SYNC, EMCY, TIME_Stamp,HB).
• Chaque objet possède un COB_ID sur 4 bits un Node_ID sur 7 bits
Page 9/24
Objet de communication COB_ID
NMT 0
SYNC 128(0080h)
TIME STAMP 256 (100h)
EMERGENCY 129+Node_ID (0081h-00FFh)
T_PDO 385+Node_ID (0181h-01FFh)
R_PDO 513+Node_ID (0201h-027Fh)
T_SDO 1409+Node_ID(0581h-05FFh)
R_SDO 1537+Node_ID(0601h-067Fh)
Heartbeat 1792+Node_ID (0700h-077F)
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Page 10/24
Organigramme général CANopen
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Start
End
COB-
ID=ID_NMT
NMT_Protocol
Read
COB-ID
COB-
ID=ID_SYNC
COB-
ID=ID_Emer
gency
COB-
ID=ID_Time
Stamp
COB-
ID=ID_TPDO
COB-
ID=ID_RPD
O
COB-
ID=ID_TSDO
COB-
ID=ID_RSDO
COB-
ID=ID_hear
tbeat
Transmit
PDO
Receive
PDO
No
yes
No No No No No No No
yes
yes yes
yes yes
yes yes
yes
Ccs=1
Server
Initiate
Download
yes
Server
Initiate
Upload
No
Ccs=1
Client
Initiate
Download
yes
Clieent
Initiate
Upload
No
Length Frame = 0
After Sync-
Counter
Send Broadcast
Remote Frame
yes
Send Frame
Emergency
Object
If returned
EEC(Emergency
Error Code) ?
yes
Send
Synchronous
Time-Stamp
object
If Heartbeat-
Timer
Coding Frame
Heartbeat
Send Frame
which indicate
State of Node
yes
Length
Frame=1
yes
No
No
No
Return SDO
Abort
Transfert
Return SDO
Abort
Transfert
No
(4)
(4)
Machine d’état du NMT
Page 11/24
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Initialisation
Pré-opérationnel
NMT, SDO, SYNC,
Emergency, HB
Opérationnel
NMT, SDO, PDO, SYNC,
Emergency, HB
Arrêt
NMT, HB
(1)
(2)
(3) (3)
(5)
(5)
(6)
(6) (6)
(1) : Mise sous tension du nœud
(2) : Transition automatique à la fin d’initialisation
(3) : Réception d’un message « Start Node »
(4) : Réception d’un message « Stop Node »
(5) : Réception d’un message «Enter pre-operational
mode »
(6) : Réception d’un message «Reset Node » ou
« Reset Communication »
Message NMT
Page 12/24
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Paramètre Désignation
Node_ID Compris entre 0h et 7Fh
0 : faire une diffusion d’état à tous les nœuds
CS 1h : Start Node
2h : Stop Node
80h : Enter pre-operational mode
81h: Reset Node
82h: Reset communication
Start
Length
Frame=2
If CS=1
yes
Start
Remote
Node
End
Décoding
Frame NMT
yes
If CS=2 If CS=128 If CS=129 If CS=130
No No No No
yes
Stop
Remote
Node
yes
Reset
Communication
yes
Reset Node
yes
Enter Pre-
Operational
No
Put
Field
Node ID
Send
Broadcast
Frame
If Node-
ID=0
yes
No
Send
Spécific
Frame
No
Return Abort
SDO
transfert
Organigramme NMT
Page 13/24
Message Heartbeat
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Etats du nœud 0 : redémarrage
4 : arrêté
5 : opérationnel
127 : pré-opérationnel
Message de synchronisation (SYNC)
Page 14/24
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Message d’urgence (EMERGENCY)
Page 15/24
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Code de l’Erreur (hex) Description de l’Erreur
0 Erreur acquittée
10 Erreur générique
3200 Défaut de tension
convertisseur
8120 Erreur de communication CAN
8130 Erreur de Heartbeat
Page 16/24
Message PDO (Process Data Object)
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Déclanchement d’un message PDO
Types de message PDO
- PDO mapping
- PDO Communication
Organigramme transmettre PDO
Start
End
selection frame to
send
Mappage of Data
on Dictionary
Object
Send Broadcast
Frame to
consommer(s)
If receive
SYNC ?
If Receive
RPDO ?
No
yes
Send Broadcast
Frame to
consommer(s)
yes
No
Is there
error?
Send Abort SDO
Transfert
Protocol
yes
No
Length
Frame=0
yes
No
Page 17/24
Message SDO (Service Data Object)
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Transfert accéléré
Transfert Segmenté
Abort Transfert
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Types de communication SDO
- SDO Download
- SDO Upload
Implémentation et validation
sur DSP
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Environnements de développement
Visual DSP++
Page 19/24
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Câble JTAG Plateforme ezLINX
Test du Network Management (NMT)
Page 20/24
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
80h: Enter pré-opération state
7Fh: état pré-opérationnel
Test du fonctionnement Hearbeat
Page 21/24
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
État actuel du nœud
Test de la transmission PDO mapping
Page 22/24
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Conclusions et perspectives
Page 23/24
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Conclusions
• Etude et implémentation des interfaces de communication CANopen pour:
– La gestion de réseau (NMT, SYNC, Emergency)
– Le contrôle de l’état des nœuds (Heartbeat)
– L’accès au dictionnaire objet (PDO, SDO)
• Validation de l’implémentation du protocole sur la plateforme DSP ezLINX
Perspectives
• Intégration du code développé sous l’environnement UNIX
• Optimisation du code en langage assembleur
• Test du fonctionnement sur la carte ezLINX
Initialisation SDO download (serveur)
Page 25/27
Protocole CANopen
Conception CANopen
Implémentation sur DSP
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Test SDO Download par le client
Page 26/31
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Test Download SDO segmenté par le client
Page 27/31
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Test de Synchronization (SYNC)
Page 28/31
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
Test de l’Initialisation SDO Upload par le serveur
Page 29/31
Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013

Contenu connexe

Similaire à Development and implementation of the protocol CANopen on the ezLINX platform Degree

presentation_corrige_rapidertgrthtrr.pptx
presentation_corrige_rapidertgrthtrr.pptxpresentation_corrige_rapidertgrthtrr.pptx
presentation_corrige_rapidertgrthtrr.pptx
ThamerMahersi1
 
Alphorm.com Formation Cisco CCNA v3 : mise à jour
Alphorm.com Formation Cisco CCNA v3 : mise à jourAlphorm.com Formation Cisco CCNA v3 : mise à jour
Alphorm.com Formation Cisco CCNA v3 : mise à jour
Alphorm
 
Cv
CvCv
Mon CV Detaillé
Mon CV Detaillé Mon CV Detaillé
Mon CV Detaillé
Hicham HADDAD
 
ITN_Module_17.pdf
ITN_Module_17.pdfITN_Module_17.pdf
ITN_Module_17.pdf
sirinejlassi1
 
WAN hybride
WAN hybrideWAN hybride
WAN hybride
IEEE 802
 
Supervision et gestion d’énergie
Supervision et gestion d’énergieSupervision et gestion d’énergie
Supervision et gestion d’énergie
Nicolas ODIN
 
Mobilité && SAP
Mobilité && SAPMobilité && SAP
Mobilité && SAP
Lotfi GAALOUL
 
OSV atelier bus mob-bi
OSV atelier bus   mob-biOSV atelier bus   mob-bi
OSV atelier bus mob-bi
FabMob
 
VoIP-kobbane2018_1_.pdf
VoIP-kobbane2018_1_.pdfVoIP-kobbane2018_1_.pdf
VoIP-kobbane2018_1_.pdf
AlKir1
 
CAN
CANCAN
Alphorm.com Formation Palo Alto : Installation et configuration de base
Alphorm.com Formation Palo Alto : Installation et configuration de baseAlphorm.com Formation Palo Alto : Installation et configuration de base
Alphorm.com Formation Palo Alto : Installation et configuration de base
Alphorm
 
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Nawres Farhat
 

Similaire à Development and implementation of the protocol CANopen on the ezLINX platform Degree (20)

presentation_corrige_rapidertgrthtrr.pptx
presentation_corrige_rapidertgrthtrr.pptxpresentation_corrige_rapidertgrthtrr.pptx
presentation_corrige_rapidertgrthtrr.pptx
 
Alphorm.com Formation Cisco CCNA v3 : mise à jour
Alphorm.com Formation Cisco CCNA v3 : mise à jourAlphorm.com Formation Cisco CCNA v3 : mise à jour
Alphorm.com Formation Cisco CCNA v3 : mise à jour
 
Cv
CvCv
Cv
 
Pres2012 nada
Pres2012 nadaPres2012 nada
Pres2012 nada
 
Mon CV Detaillé
Mon CV Detaillé Mon CV Detaillé
Mon CV Detaillé
 
ITN_Module_17.pdf
ITN_Module_17.pdfITN_Module_17.pdf
ITN_Module_17.pdf
 
Tanger
TangerTanger
Tanger
 
my_resume(fre)
my_resume(fre)my_resume(fre)
my_resume(fre)
 
WAN hybride
WAN hybrideWAN hybride
WAN hybride
 
Supervision et gestion d’énergie
Supervision et gestion d’énergieSupervision et gestion d’énergie
Supervision et gestion d’énergie
 
Mobilité && SAP
Mobilité && SAPMobilité && SAP
Mobilité && SAP
 
OSV atelier bus mob-bi
OSV atelier bus   mob-biOSV atelier bus   mob-bi
OSV atelier bus mob-bi
 
VoIP-kobbane2018_1_.pdf
VoIP-kobbane2018_1_.pdfVoIP-kobbane2018_1_.pdf
VoIP-kobbane2018_1_.pdf
 
CV-Elhassane-NAIM-FR
CV-Elhassane-NAIM-FRCV-Elhassane-NAIM-FR
CV-Elhassane-NAIM-FR
 
CAN
CANCAN
CAN
 
Alphorm.com Formation Palo Alto : Installation et configuration de base
Alphorm.com Formation Palo Alto : Installation et configuration de baseAlphorm.com Formation Palo Alto : Installation et configuration de base
Alphorm.com Formation Palo Alto : Installation et configuration de base
 
Projet Planing Network
Projet Planing NetworkProjet Planing Network
Projet Planing Network
 
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
 
PFEs SagemCom
PFEs SagemComPFEs SagemCom
PFEs SagemCom
 
Cours J2ME
Cours J2MECours J2ME
Cours J2ME
 

Dernier

Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Institut de l'Elevage - Idele
 
electronique de puissance Electronique-de-puissance-cours-N°5.pdf
electronique de puissance Electronique-de-puissance-cours-N°5.pdfelectronique de puissance Electronique-de-puissance-cours-N°5.pdf
electronique de puissance Electronique-de-puissance-cours-N°5.pdf
Elisée Ndjabu
 
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdfpdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
Elisée Ndjabu
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Institut de l'Elevage - Idele
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
Institut de l'Elevage - Idele
 
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvresJTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
Institut de l'Elevage - Idele
 
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
Institut de l'Elevage - Idele
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
Institut de l'Elevage - Idele
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
Institut de l'Elevage - Idele
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdfRAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
fatima413951
 
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Institut de l'Elevage - Idele
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
Institut de l'Elevage - Idele
 

Dernier (13)

Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
 
electronique de puissance Electronique-de-puissance-cours-N°5.pdf
electronique de puissance Electronique-de-puissance-cours-N°5.pdfelectronique de puissance Electronique-de-puissance-cours-N°5.pdf
electronique de puissance Electronique-de-puissance-cours-N°5.pdf
 
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdfpdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
pdfcoffee.com_polycopie-de-cours-ppt-lge604-20012-bf-pdf-free.pdf
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
 
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvresJTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
 
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdfRAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
 
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
 

Development and implementation of the protocol CANopen on the ezLINX platform Degree

  • 1. PROJET DE FIN D’ÉTUDES 29 Mai, 2013 RÉALISÉ PAR Barrak Mohamed Amine ENCADRANTS M. Barreh Walid Mme. Ben Hlima Ines Licence Appliquée en Informatique Industrielle Option : Systèmes embarqués
  • 2. Contexte et objectif du projet CAN Page 2/24 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 • Les bus CAN permettent l’interconnexion entre plusieurs entités d’un même système • Topologie en bus pour faciliter la mise en place, l’évolution et l’extension des systèmes • Pour la mise en œuvre d’un bus de communication, un protocole doit être développé afin de gérer la transmission fiable des données • Exemples de protocoles : – DeviceNet de la société Allen Bradley, – SDS (Smart Distributed System) de la société Honeywell – CAL/CANopen du CiA • Objectif du stage Implémenter le CANopen sur une plateforme ezLINX
  • 3. Plan de la présentation Présentation du protocole CANopen Introduction Implémentation et validation sur DSP Conception du protocole CANopen Conclusions et perspectives Page 3/24 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 4. Présentation du protocole CANopen Protocole CANopen Conception CANopen Implémentation sur DSP
  • 5. • CANopen définit un protocole de communication pour les systèmes d'automatisation industrielle distribués basés sur le bus CAN • Développé au sein du groupe CiA • Normalisé en Décembre 2002 sous CENELEC EN 50325-4 • Utilisé dans de nombreux secteurs de l’industrie Protocole CANopen Protocole CANopen Conception CANopen Implémentation sur DSP Page 5/24 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 6. • Jusqu’à 127 nœuds sont connectés sur le même réseau. • Le débit de transmissions de données peut atteindre 1 Mbps pour une longueur du bus de 30m • Transmission de données différentielle effectuée sur une paire torsadée : (CAN H et CAN L) • La ligne du bus est terminée par des résistances de 120 Ω. • Un nœud du bus CAN requiert un microcontrôleur et un contrôleur CAN. Caractéristiques du réseau CAN Protocole CANopen Conception CANopen Implémentation sur DSP Page 6/24 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 7. Architecture d’un nœud CANopen • L’architecture interne d’un appareil CANopen se compose de : – Une interface de communication – Un processus d'application – Un Dictionnaire Objets Protocole CANopen Conception CANopen Implémentation sur DSP Page 7/24 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 8. Protocole CANopen Conception CANopen Implémentation sur DSP Interface de communication CANopen
  • 9. Objets de communication CANopen • CANopen définit les objets de communication : – Process Data Object (PDO), – Service Data Object (SDO), – Network Management (NMT), – Fonctions spéciales (SYNC, EMCY, TIME_Stamp,HB). • Chaque objet possède un COB_ID sur 4 bits un Node_ID sur 7 bits Page 9/24 Objet de communication COB_ID NMT 0 SYNC 128(0080h) TIME STAMP 256 (100h) EMERGENCY 129+Node_ID (0081h-00FFh) T_PDO 385+Node_ID (0181h-01FFh) R_PDO 513+Node_ID (0201h-027Fh) T_SDO 1409+Node_ID(0581h-05FFh) R_SDO 1537+Node_ID(0601h-067Fh) Heartbeat 1792+Node_ID (0700h-077F) Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 10. Page 10/24 Organigramme général CANopen Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 Start End COB- ID=ID_NMT NMT_Protocol Read COB-ID COB- ID=ID_SYNC COB- ID=ID_Emer gency COB- ID=ID_Time Stamp COB- ID=ID_TPDO COB- ID=ID_RPD O COB- ID=ID_TSDO COB- ID=ID_RSDO COB- ID=ID_hear tbeat Transmit PDO Receive PDO No yes No No No No No No No yes yes yes yes yes yes yes yes Ccs=1 Server Initiate Download yes Server Initiate Upload No Ccs=1 Client Initiate Download yes Clieent Initiate Upload No Length Frame = 0 After Sync- Counter Send Broadcast Remote Frame yes Send Frame Emergency Object If returned EEC(Emergency Error Code) ? yes Send Synchronous Time-Stamp object If Heartbeat- Timer Coding Frame Heartbeat Send Frame which indicate State of Node yes Length Frame=1 yes No No No Return SDO Abort Transfert Return SDO Abort Transfert No
  • 11. (4) (4) Machine d’état du NMT Page 11/24 Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 Initialisation Pré-opérationnel NMT, SDO, SYNC, Emergency, HB Opérationnel NMT, SDO, PDO, SYNC, Emergency, HB Arrêt NMT, HB (1) (2) (3) (3) (5) (5) (6) (6) (6) (1) : Mise sous tension du nœud (2) : Transition automatique à la fin d’initialisation (3) : Réception d’un message « Start Node » (4) : Réception d’un message « Stop Node » (5) : Réception d’un message «Enter pre-operational mode » (6) : Réception d’un message «Reset Node » ou « Reset Communication »
  • 12. Message NMT Page 12/24 Protocole CANopen Conception CANopen Implémentation sur DSP Paramètre Désignation Node_ID Compris entre 0h et 7Fh 0 : faire une diffusion d’état à tous les nœuds CS 1h : Start Node 2h : Stop Node 80h : Enter pre-operational mode 81h: Reset Node 82h: Reset communication Start Length Frame=2 If CS=1 yes Start Remote Node End Décoding Frame NMT yes If CS=2 If CS=128 If CS=129 If CS=130 No No No No yes Stop Remote Node yes Reset Communication yes Reset Node yes Enter Pre- Operational No Put Field Node ID Send Broadcast Frame If Node- ID=0 yes No Send Spécific Frame No Return Abort SDO transfert Organigramme NMT
  • 13. Page 13/24 Message Heartbeat Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 Etats du nœud 0 : redémarrage 4 : arrêté 5 : opérationnel 127 : pré-opérationnel
  • 14. Message de synchronisation (SYNC) Page 14/24 Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 15. Message d’urgence (EMERGENCY) Page 15/24 Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 Code de l’Erreur (hex) Description de l’Erreur 0 Erreur acquittée 10 Erreur générique 3200 Défaut de tension convertisseur 8120 Erreur de communication CAN 8130 Erreur de Heartbeat
  • 16. Page 16/24 Message PDO (Process Data Object) Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 Déclanchement d’un message PDO Types de message PDO - PDO mapping - PDO Communication Organigramme transmettre PDO Start End selection frame to send Mappage of Data on Dictionary Object Send Broadcast Frame to consommer(s) If receive SYNC ? If Receive RPDO ? No yes Send Broadcast Frame to consommer(s) yes No Is there error? Send Abort SDO Transfert Protocol yes No Length Frame=0 yes No
  • 17. Page 17/24 Message SDO (Service Data Object) Protocole CANopen Conception CANopen Implémentation sur DSP Transfert accéléré Transfert Segmenté Abort Transfert Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 Types de communication SDO - SDO Download - SDO Upload
  • 18. Implémentation et validation sur DSP Protocole CANopen Conception CANopen Implémentation sur DSP
  • 19. Environnements de développement Visual DSP++ Page 19/24 Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 Câble JTAG Plateforme ezLINX
  • 20. Test du Network Management (NMT) Page 20/24 Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 80h: Enter pré-opération state 7Fh: état pré-opérationnel
  • 21. Test du fonctionnement Hearbeat Page 21/24 Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 État actuel du nœud
  • 22. Test de la transmission PDO mapping Page 22/24 Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 23. Conclusions et perspectives Page 23/24 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013 Conclusions • Etude et implémentation des interfaces de communication CANopen pour: – La gestion de réseau (NMT, SYNC, Emergency) – Le contrôle de l’état des nœuds (Heartbeat) – L’accès au dictionnaire objet (PDO, SDO) • Validation de l’implémentation du protocole sur la plateforme DSP ezLINX Perspectives • Intégration du code développé sous l’environnement UNIX • Optimisation du code en langage assembleur • Test du fonctionnement sur la carte ezLINX
  • 24.
  • 25. Initialisation SDO download (serveur) Page 25/27 Protocole CANopen Conception CANopen Implémentation sur DSP Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 26. Test SDO Download par le client Page 26/31 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 27. Test Download SDO segmenté par le client Page 27/31 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 28. Test de Synchronization (SYNC) Page 28/31 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013
  • 29. Test de l’Initialisation SDO Upload par le serveur Page 29/31 Projet de Fin d’Etudes, Mohamed Amine Barrak, ISI, 2013

Notes de l'éditeur

  1. Madame la présidente de jury, madame monsieur les membres de jury, chers invités, j’ai l’honneur de vous présenter mon projet de fin d’étude intitulé Implémentation du protocole CANopen sur la plateforme ezLINX. Mon projet à été réalisé au sein de la société EBSYS, sous la supervision de monsieur Barreh walid et Madame Ben hlima Ines.
  2. De nos jours, les réseaux de terrain notamment le Bus CAN (Controller Area Network) sont intégrés dans la plupart des domaines de l’industrie. Ils permettent l'interconnexion entre plusieurs entités d’un même système, exemples : appareils de mesure, capteurs, microcontrôleurs, etc. la topologie en bus est adoptée pour faciliter la mise en place, l’évolution et l’extension des systèmes. Pour la mise en œuvre d’un bus de terrain, un protocole de communication doit être développé afin de gérer la transmission fiable des données. Nous citons ici quelques exemples de protocoles : le device net de la société Allen Bradley, SDS (Smart Distributed System) de la société Honeywell et CAL/CANopen du CiA Dans notre projet de fin d’études nous nous sommes intéressés en particulier au protocole CANopen. Notre objectif est d’implémenter le protocole CANopen qui est le protocole de la couche supérieure de la base CAN sur une plateforme DSP ezLINX.
  3. Le plan de notre présentation est le suivant. Après cette brève introduction nous allons passer à la présentation du protocole CANopen et de son environnement CAN, ensuite nous allons présenter les détails de conception du protocole CANopen notamment ces interfaces de communication. Avant de conclure nous allons présenter les résultats d’implémentation du protocole sur la plateforme DSP du type Blackfin 548.
  4. Commençons par la présentation du protocole CANopen.
  5. CANopen définit un protocole de communication pour les systèmes d'automatisation industrielle distribués basés sur le bus CAN. Il a été développé au sein du groupe CAN in automation en 94 initialement pour les véhicules automobiles. depuis décembre 2002 il a été normalisé sous CENELEC EN 50325-4. CANopen a trouvé une large utilisation dans de nombreux secteurs de l’industrie, notamment en Europe, où il est considéré comme la principale norme pour les systèmes industriels et embarqués basés sur CAN. il est actuellement utilisé dans divers domaines , spatial, maritime, transport et médical.
  6. Nous Présentons maintenant les caractéristiques physiques du réseau CAN. le bus CAN permet de raccorder jusqu'à 127 appareils sur le même réseau. La vitesse de transmission dépend étroitement de la longueur du bus. Le débit peut atteindre 1 Mbps pour une longueur du bus de 30m. La transmission des données s’effectue sur une paire torsadée plus une masse pour émission différentielle, c’est-à-dire on mesure la différence de tension entre les deux lignes (CAN H et CAN L) La ligne du bus doit se terminer par des résistances de 120 Ω à chacun des bouts. Un noeud requiert pour son fonctionnement un microcontrôleur et un contrôleur CAN. Il est connecté au transceiver qui transforme les bits en tensions par l’intermédiaire d’une ligne de transmission Tx et d’une ligne de réception Rx.
  7. L’architecture interne d’un appareil CANopen se compose de trois parties : l'interface de communication qui gère la communication via le bus CAN, le processus d'application qui fournit les fonctionnalités de l’appareil et le Dictionnaire Objets du CANopen qui se situe entre l’interface de communication et le processus d'application.
  8. Nous détaillons dans ce qui suit l’interface de communication qui implémente le protocole CANopen
  9. Le protocole CANopen définit les objets ou messages de communication suivants Process Data Object (PDO), Service Data Object (SDO), Network Management (NMT), Fonctions spéciales (SYNC, EMCY, TIME_Stamp, HB). Chaque objet possède un identifiant de l’objet de com COB_ID sur 4 bits et un identifiant du nœuds Node_ID sur 7 bits Les possibilité de communication des nœuds pour chacun de ces états sont données dans ce tableau.
  10. L’organigramme générale CANopen permet de décrire toutes les interfaces de communication dans le protocole CANopen La lecture de la valeur du champ COB_ID identifie l’émetteur de la trame sur le Bus CAN. Ce champ permet de supporter des valeurs de 0000h jusqu'au 0800h. Selon la valeur du COB_ID, on va accéder a un traitement qui décrit les interfaces de communications du protocole CANopen.
  11. La machine d’état NMT permet de contrôler le comportement de communication des périphériques dans le réseau CAN. 4 états sont définis. Après la mise sous tension, Le nœud est à l’état d’initialisation et aucun objet de communication est activé, il y a une transition automatique a l’état pré-opérationnel, seul le message PDO n’est pas actif. Lors de la réception d’un message « start node », il passe à l’état opérationnel et tous les objets de communication sont actifs. lors de la réception d’un message  « stop node », il passe à l’état arrêt, seuls les objets NMT et le Heartbeat sont activés. Quand un message « enter preoperationnel » arrive il revient à l’état pré-opérationnel. Enfin il revient à l’état d’initalisation lors de la réception d’un message Reset Communication. Nous parlons dans ce qui suit des différents messages du protocole CANopen.
  12. Le message NMT est envoyé sur 2 octets, il est déclenché par un nœud master avec des nœuds esclaves, le premier octet indique l’état du nœud et le deuxième octet constitue le node ID vers lequel le message sera envoyé. L’organigramme suivant présente le traitement qui se fait au niveau d’un nœud esclave lors de la réception d’un message NMT selon la valeur du champ cs.
  13. Passons maintenant au message heartbeat qui permet d’indiquer l’état actuel du nœud . il est généré périodiquement du nœud producteur vers les autres nœuds connectés au réseau CAN, avec une période appelé « Heartbeat producer Time ». Un message heartbeat est constitué d’un octet, les états possibles d’un nœud sont spécifiés dans ce tableau.
  14. Le message SYNC est généré périodiquement d’une période appelé « Communication cycle period  ». Il représente l’horloge de base du réseau. Le message SYNC permet aux nœuds consommateurs d’exécuter une fonction particulière lors de la réception du message SYNC, Par exemple on demande à un nœud d’envoyer un message PDO une fois un message SYNC est arrivé.
  15. Les messages d’urgence (Emergency) sont déclenchés lors de la présence d’une erreur fatale Il permettent à un nœud d’envoyer aux autres nœuds un message contenant le code d’erreur correspondant au problème avec une priorité élevée. Le message emergency est codé sur 8 octets, Le champ EEC(Emergency Error Code) décrit le code d’erreur sur 2 octets. Le champ ER(Error Register) représente le registre d’erreur. Le champ MEF(Manufacturer-specific Error Field) représente le champ d’erreur spécifique au fabricant.
  16. Il existe deux types de messages PDO le PDO mapping et le pdo communication qui décrit les possibilité de communication pdo ex cob-id . Nous allons détailler dans la partie implémentation un exemple de pdo mapping. ***Le déclenchement d’un message PDO est dû à la réception de l’un de ces trois événements: -l'apparition d'un événement spécifique, ou un signal déclenché par une minuterie écoulé (Timer). -la réception d'un Remote Frame initiée par un autre dispositif. -l'expiration d'une donnée périodique SYNC L’organigramme suivant décrit l’envoie d’un message PDO lors de la réception d’un message SYNC ou remote frame
  17. La communication SDO se base sur le modèle Client/serveur, elle définie deux services Download SDO et Upload SDO. Le service Download SDO, dans lequel le client envoie une donnée au serveur pour qu’il l’enregistre dans le Dictionnaire Objet, et un service Upload SDO, dans lequel le client demande au serveur de lui envoyer une donnée spécifique du Dictionnaire Objet Le transfert de donnée se fait soit par l’envoie accéléré ou par l’envoie segmenté. Si la taille des données est inférieure à 4 octets on procède à l’envoi accéléré, autrement on fait un envoie segmenté. Le service SDO offre l’envoie du abort transfert si une erreur est survenue lors de l’accés au DO.
  18. Passons maintenant à l’implémentation du protocole sur DSP et l’analyse des résultats de test.
  19. Notre objectif est d’implémenter le protocole CANopen sur un DSP du type Blackfin BF548 parce que ce processeur intègre déjà un bus de communication CAN. Pour ce faire, nous avons utilisé le visual DSP++ pour le codage du protocole. Une fois le code est validé, il sera intégré sur la plateforme en utilisant le cable Jtag. L’architecture du blackfin est constituée d’un cœur du processeur, de mémoires et de périphériques de connexion. Nous présentons dans cet exposé trois tests pour la validation des messages NMT, Heartbeat et PDO mapping.
  20. Pour le test de l’NMT, on suppose qu’on reçoit une donnée sur 2 octets du maitre NMT dans la variable Buffer, qui impose au nœud esclave son états. Dans cet exemple de test on décode cette trame, dans le 1er octet on trouve la commande NMT qui contient la valeur 80h(128) et qui impose au nœud d’entrer dans l’état pré-opérationnel (7F h et 127 en décimale) dans lequel tout les service CANopen sont fonctionnel sauf le PDO comme l’indique la structure state_cmd. Et on trouve dans le 2ème octet le node-id du nœud ciblé (si on trouve 0,alors cet état est broadcasté a tout les nœuds).
  21. Le service heartbeat est généré périodiquement d’une période HB_producer_time qui se trouve dans l’index 1017h du Dictionnaire Objet, il prépare un octet de donné dans lequel il met l’état actuel du nœud qui et 7Fh qui décrit l’état pre-operationnel, pris de la structure NMT appelé operating State.
  22. Pour faire transmettre un PDO mapping, on choisie les Index des données a envoyé, ensuite on les cherche dans le Dictionnaire Objet, puis on enregistre les données trouvé dans une variable mapping, puis on stocke cette variable mappé dans le Dictionnaire Objet d’Index 1A00, et enfin, on envoie ces données déjà prêt si l’un des événement qui déclenche le service PDO est présent.
  23. En conclusion, lors de notre projet de fin d’études nous avons étudié et implémenté ... Nous avons validé l’implémentation du protocole sur la plateforme DSP du type ezLINX. Le code que nous avons développé a été mappé en grande partie dans la mémoire à accès rapide du dsp. Comme perspectives nous envisageons de faire l’intégration du code, l’optimisation du code en langage assembleur et enfin le test du fonctionnement sur la carte ezLINX.
  24. Pour le test du message Initialisation SDO Download, Le serveur reçoit la variable Buffer qui contient la requête de données envoyé par le client qui est détaillé dans la structure CID_SDO, ensuite, la variable BufferSend pour la confirmation de la requête.
  25. Pour faire un transfert SDO, le client prépare la structure CID_SDO essentiellement les deux champs ccs=1 et e=1 et l’envoie au serveur la donnée d’index 1280h et sub-index 01h dans le BufferSend. Le serveur prépare une structure SID_SDO et répond le client par une trame de confirmation dans Buffer.
  26. Pour faire l’envoie d’une donnée segmenté, on fait le même traitement que dans initialisation SDO Download et on spécifie dans le champ data la taille de donnée a envoyer. Le client prépare la structure CSD_SDO pour envoyer les données dans le BufferSend. Ensuite le client vérifie la trame Buffer préparé par le serveur dans la structure SSD_SDO pour la confirmation.
  27. Dans le service SYNC de COB-ID 80h et de taille DLC=0 est envoyé périodiquement d’une période appelé Sync_counter de valeur (0Ah) enregistré dans le dictionnaire objet d’index 1016h et Sub-index 00h, on génère un compteur qui s’incrémente d’une milliseconde.
  28. Le serveur SDO, reçoit une trame de requête de la part du client Buffer, il décode cette requête et prépare les données demandé dans la structure SIU_SDO, puis il l’envoie au client dans la variable BufferSend.