2011-2012 Pierre-Louis CAYREL www.cayrel.net Feuille n∘ 2 corrigé IUT de Saint-Etienne d'après un cours de Thierry Vaira Le bus CAN Exercice 1 Compléter le diagramme suivant en respectant la méthode de BitStung. Réponse Exercice 2 Déterminer, pour les formats standard et étendu, les longueurs minimum et maximum en bits d'une trame de données circulant sur le bus CAN en ne tenant pas compte du bitstung. Réponse CAN CAN CAN CAN 2.0A Standard trame mini = 1 + 11 + 1 + 6 + 0 + 16 + 2 + 7 = 44 bits 2.0A Standard trame maxi = 1 + 11 + 1 + 6 + 64 + 16 + 2 + 7 = 108 bits 2.0B Etendu trame mini = 1 + 29 + 2 + 1 + 6 + 0 + 16 + 2 + 7 = 64 bits 2.0B Etendu trame maxi = 1 + 29 + 2 + 1 + 6 + 64 + 16 + 2 + 7 = 128 bits Exercice 3 Déterminer le nombre de capteurs/actionneurs TOR (Tout Ou Rien) diérents qu'un noeud peut gérer dans une seule trame de données. Réponse Capteur/Actionneur TOR = 1 bit et le champ de données d'une trame CAN peut contenir 64 bits soit l'état de 64 capteurs. 1 Exercice 4 Calculer alors le rendement du protocole CAN lorsqu'il émet une trame de données complète. Réponse 64 𝐷𝑜𝑛𝑛𝑒𝑒𝑠 𝑢𝑡𝑖𝑙𝑒𝑠 = = 59.25% 𝑇 𝑟𝑎𝑚𝑒 𝑠𝑡𝑎𝑛𝑑𝑎𝑟𝑑 𝑚𝑎𝑥𝑖 108 𝐷𝑜𝑛𝑛𝑒𝑒𝑠 𝑢𝑡𝑖𝑙𝑒𝑠 64 𝑅𝑒𝑛𝑑𝑒𝑚𝑒𝑛𝑡 = = = 50% 𝑇 𝑟𝑎𝑚𝑒 𝑒𝑡𝑒𝑛𝑑𝑢𝑒 𝑚𝑎𝑥𝑖 128 𝑅𝑒𝑛𝑑𝑒𝑚𝑒𝑛𝑡 = Exercice 5 Pour comparaison, déterminer le rendement du protocole Ethernet pour la même situation. Quel est alors le protocole le plus ecace pour ce type de situation (notion de bus de terrain ou bus industriel) ? Réponse 𝐷𝑜𝑛𝑛𝑒𝑒𝑠 𝑢𝑡𝑖𝑙𝑒𝑠 8 = = 12, 5% 𝑇 𝑟𝑎𝑚𝑒 𝐸𝑡ℎ𝑒𝑟𝑛𝑒𝑡 64 Le protocole Ethernet n'est pas adapté pour transporter de petites quantités de données (caractéristique des bus de terrain). 𝑅𝑒𝑛𝑑𝑒𝑚𝑒𝑛𝑡 = Exercice 6 Avec des trames de 60 bits en moyenne, déduire le nombre maximum de trames pouvant circuler sur le bus en une seconde et ce pour le débit maximum (1 Mbits/s). Réponse 𝑁 𝑏 𝑇 𝑟𝑎𝑚𝑒𝑠 = 106 𝐷𝑒𝑏𝑖𝑡𝑚𝑎𝑥 = = 16666 𝑡𝑟𝑎𝑚𝑒𝑠/𝑠 𝑇 𝑎𝑖𝑙𝑙𝑒 𝑡𝑟𝑎𝑚𝑒 𝑚𝑜𝑦𝑒𝑛𝑛𝑒 60 Exercice 7 Dans le cas où il y a 4 noeuds identiques qui émettent et reçoivent 16 trames (de 60 bits en moyenne) par secondes , déterminer le taux de charge maximum pour ce bus. Réponse 𝑁 𝑏 𝑇 𝑟𝑎𝑚𝑒𝑠 = 4 × 16 𝑡𝑟𝑎𝑚𝑒𝑠/𝑠 = 64 𝑡𝑟𝑎𝑚𝑒𝑠/𝑠 𝑇 𝑎𝑢𝑥 = 64 × 100 = 0, 38% 16666 2 Exercice 8 Déterminer en théorie le nombre de messages qu'il est possible de dénir pour une trame standard. Réponse 𝑁 𝑏 𝑀 𝑒𝑠𝑠𝑎𝑔𝑒𝑠 = 211 = 2048 𝑚𝑒𝑠𝑠𝑎𝑔𝑒𝑠 Exercice 9 En tenant compte de ces particularités, déterminer réellement le nombre de messages qu'il est possible de dénir pour une trame standard. Réponse 𝑁 𝑏 𝑀 𝑒𝑠𝑠𝑎𝑔𝑒𝑠 = 211 − 24 = 2032 𝑚𝑒𝑠𝑠𝑎𝑔𝑒𝑠 Exercice 10 À partir de l'exemple précédent, attribuer les priorités pour les 3 stations. Réponse Un capteur de température relié sur la station 1 (+), le capteur d'antipatinage relié sur la station 3 (++) et l'ABS relié sur la station 2 (+++) Exercice 11 Compléter le troisième chronogramme (résultante sur le bus) et indiquer le noeud qui a réussi à émettre sa trame. Réponse 3 Exercice 12 Compléter la trame (jusqu'au champ CRC exclu) dans le cas où un noeud émet les données 'B' (0x42) suivi de la valeur 6. Réponse Exercice 13 Réponse Avec un identicateur identique pour les deux trames, l'arbitrage se fera sur le bit RTR et, on aura la situation suivante : trame de donnée : RTR = état dominant trame de requête : RTR = état récessif L'état dominant l'emportant sur l'état récessif, la trame de données sera donc prioritaire sur une trame de requête. Exercice 16 Réponse Tous les noeuds disparaîtront tour à tour et, vous serez le seul noeud à vouloir continuer de communiquer sur le réseau. Personne ne vous répondra ! Pas d'acquittement. Donc erreur, le compteur d'erreurs s'incrémentera. Votre noeud nira par passer en bus o lui aussi. Le bus se trouve momentanément bloqué car aucune station ne peut voir passer les fameuses 128 occurrences de 11 bits récessifs nécessaires à son réveil ! Exercice 17 Réponse BTR0 = 0x43 = 0 1 0 0 0 0 1 1 BTR1 = 0x2F = 0 0 1 0 1 1 1 1 SJW = 1 et BRP = 3 SPL = 0 (1 point d'échantillonnage) TSEG1 = 2 et TSEG2 = 15 1 × (3 + 1) = 0, 5 × 10−6 𝑠 6 16 × 10 𝑡𝑆𝑌 𝑁 𝐶𝑆𝐸𝐺 = 0, 5 × 10−6 × 1 = 0, 5 × 10−6 𝑠 𝑡𝑞 = 2 × 𝑡𝑇 𝑆𝐸𝐺2 = 0, 5 × 10−6 × (15 + 1) = 8 × 10−6 𝑠 𝑡𝑆𝐸𝐺1 = 0, 5 × 10−6 × (2 + 1) = 1, 5 × 10−6 𝑠 𝑁 𝐵𝑇 = 𝑡𝑆𝑌 𝑁 𝐶𝑆𝐸𝐺 + 𝑡𝑇 𝑆𝐸𝐺1 + 𝑡𝑇 𝑆𝐸𝐺2 = (0, 5 + 8 + 1, 5) × 10−6 = 10 × 10−6 𝑠 1 𝐷𝑏𝑖𝑡 = 𝑠 = 100000𝑏𝑖𝑡𝑠/𝑠 = 100𝐾𝑏𝑖𝑡𝑠/𝑠 10 × 10−6 4