CAN et CAN FD (Extrait)

Page 1

CAN et CAN FD

Tout sur les protocoles et leur mise en œuvre avec Arduino livresbooks

Pierre Molinaro

CAN et CAN FD

Tout sur les protocoles et leur mise en œuvre avec Arduino

• Droits de reproduction © 2024 – Publitronic - Elektor International Media

• Toute reproduction ou copie, même partielle, de ce livre, et sur quelque support que ce soit, sans l'accord écrit de l'éditeur, est interdite.

• Le code de la propriété intellectuelle du 1er juillet 1992 interdit expressément la photocopie à usage collectif sans autorisation des ayants droit.

No part of this book may be reproduced, in any form or means whatsoever, without permission in writing from the publisher. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsability for errors or omissions. Neither is any liability assumed for damages resulting from the use of the information contained herein.

La protection du droit d'auteur s'étend aux illustrations, y compris aux circuits imprimés et aux projets y relatifs. En conformité avec l'article 30 de la Loi sur les brevets, les circuits mentionnés ne peuvent être exécutés qu'à des fins particulières ou scientifiques et non pas dans ou pour une entreprise ; ces exécutions et/ou applications se font en dehors de toute responsabilité de l'éditeur.

Conformément au droit d'auteur, ce copyright ne s'applique pas à certains schémas reproduits dans ce livre à titre de citation et d'illustration des propos et de la démarche intellectuelle de l'auteur, avec l'aimable autorisation des ayants droit.

L'éditeur remercie d'avance le lecteur qui prendra la peine de lui signaler les erreurs éventuelles qui auront échappé à sa vigilance (écrire à redaction@elektor.fr).

• ISBN 978-2-86661-218-4 Version papier 978-2-86661-219-1 Version numérique

• 1e édition — 1er tirage - 03/2024

• Maquette : Pierre Molinaro

Imprimé aux Pays-Bas par Ipskamp Printing

● 4
Tabledesmatières 5 Listedestableaux 16 Listedesfigures 19 Listedesalgorithmes 25 Avant-propos 27 1Lignesdetransmission 32 1.1Unexempleillustratif:connexiondirected’uninterrupteur 33 1.1.1Connexiondirecte ................................. 33 1.1.2SimulationSpiced’uneconnexiondirecte 35 1.1.3SimulationSpicedelafermeture,avecdiodesdeclamping .......... 37 1.1.4SimulationSpice,diminutiondeRpullup 39 1.1.5SimulationSpiced’uneconnexiondirecte,avecunerésistanceensérie ... 40 1.2Connexiond’uninterrupteurviaunelignedifférentielle 41 1.3Théoriesuccinctedeslignesdetransmission ....................... 42 1.4Lignesansperte 44 1.5Ligneavecperte ....................................... 45 1.6Simulations Spice d’unelignesansperte ......................... 46 1.6.1Lignesansperteouverte 46 1.6.2Lignesansperteterminéepar RC ........................ 47 1.6.3Lignesansperteterminéeparunevaleurdifférentede RC 47 2BrèveintroductionauxréseauxCANetCANFD 49 2.1CibledesréseauxCAN 50 2.2Queltypederéseau? .................................... 51 2.3Intérêtd’unréseauCAN 52 2.4BrefhistoriqueduréseauCAN 53 2.5Lanormalisation ....................................... 54 2.6CaractéristiquesduréseauCAN 54 2.7ProtocolesapplicatifsaudessusdeCAN ......................... 55
Tabledesmatières
6 Tabledesmatières 3Réseau,bus,contrôleurettranscepteur 56 3.1DistinctionentreréseauCANetbusCAN ......................... 56 3.2ContrôleursCAN 57 3.3Connexiond’uncontrôleurCANàunréseau 58 3.4Fonctionlogiqued’unréseauCAN:états dominant, récessif ............... 58 3.4.1Lessignaux TxD et RxD descontrôleurs 59 3.4.2Lafonctionlogiqueduréseau 60 3.4.3Étatduréseau,vuparuncontrôleur ....................... 61 3.5Desexemplesderéseauxsanstranscepteur 61 3.5.1Logiqueduréseauréaliséeavecuneporte« et » ................ 62 3.5.2Logiqueduréseauréaliséeparun«et»câblé ................. 62 3.5.3Logiqueduréseauréaliséepardesdiodes 63 3.5.4Contrôleursalimentéssoustensionsdifférentes ................ 64 3.6Délaideboucleduréseau .................................. 64 4TranscepteurCAN 66 4.1Fonctionnementd’untranscepteurCAN 67 4.1.1L’émetteur 68 4.1.2LesdeuxétatsdubusCAN ............................ 69 4.1.3Récepteur 69 4.1.4TranscepteurCANseulsurunbus 70 4.2ExemplesdetranscepteursCAN .............................. 70 4.2.1TranscepteursCANalimentéssous5V 71 4.2.2TranscepteursCANalimentéssous3,3V .................... 72 4.2.3TranscepteursCANbi-tension .......................... 73 4.3FonctionnalitésdestranscepteursCAN 74 4.3.1Tirageintégrésur T ................................ 74 4.3.2RésistanceéquivalenteàunbusCAN ...................... 75 4.3.3Nombremaximumdetranscepteurssurunbus 76 4.3.4Tensionsde CANH etde CANL ........................... 77 4.3.4.1Bus dominant .............................. 77 4.3.4.2Bus récessif 78 4.3.4.3Transitionsentreétats dominant et récessif ............. 78 4.3.4.4Détectiondel’étatdubus 79 4.3.4.5Transcepteursalimentéssous3,3V 79 4.3.5Lesdifférentesterminaisonsdebus ....................... 81 4.3.5.1Laterminaisonstandard 81 4.3.5.2Laterminaison«SPLIT» 81 4.3.6Protectiontensiond’alimentationbasseethorstension ............ 83 4.3.7Protectioncontreunétat dominant permanent 83 4.3.8Protectioncontrelessurtensions ......................... 84 4.3.9Contrôledepenteparrésistanceexterne,modederepos ........... 85
Tabledesmatières 7 4.3.10Tempsdeboucled’untranscepteur 85 4.4Configurationsparticulières ................................. 86 4.4.1PlusieurscontrôleursCANconnectésaumêmetranscepteur 86 4.4.2Connexionavecisolationgalvanique 86 5Bus,câbleetconnectique 89 5.1Busetautrestopologies .................................. 90 5.1.1Dispositionacceptable ............................... 90 5.1.2Dispositionrecommandée 90 5.1.3Longueurmaximumd’unbusCAN ........................ 90 5.1.4Autrestopologies:àéviter ............................ 91 5.2Simulations Spice deréseauxenétoile 92 5.2.1Branchesdemêmelongueur,unerésistanceàl’extrémitédedeuxbranches 93 5.2.1.1Transition récessif → dominant 93 5.2.1.2Transition dominant → récessif 95 5.2.2Branchesdemêmelongueur,unerésistanceàl’extrémitédechaquebranche 95 5.2.2.1Transition récessif → dominant 96 5.2.2.2Transition dominant → récessif 96 5.2.3Deuxterminaisons,branchesinégales ...................... 97 5.2.3.1Transition récessif → dominant 97 5.2.3.2Transition dominant → récessif 97 5.2.4Résistancessurtouteslesextrémités,branchesinégales ........... 98 5.2.4.1Transition récessif → dominant 98 5.2.4.2Transition dominant → récessif .................... 98 5.3Câbles ............................................. 100 5.3.1Chutedetensiondanslebusetsectiondesconducteurs 101 5.3.2CâbleconçupourlebusCAN ........................... 103 5.3.3Câbleenruban ................................... 103 5.3.4Câbleplattéléphonique 104 5.4Connectique ......................................... 104 5.4.1ConnecteursrecommandésparlerapporttechniqueCiA106 ......... 105 5.4.2LaconnectiqueRJ 106 5.4.2.1Lesconnecteursmâles xPy C ...................... 106 5.4.2.2Lesembasesfemelles xPy C 107 5.4.2.3LescordonsEthernetRJ45 107 5.4.2.4LescordonstéléphoniquesRJ12 .................... 109 5.4.2.5Sertirsesproprescâbles 109 5.4.3LaconnectiqueIEEE1394 110 5.4.3.1Formatdesembases .......................... 111 5.4.3.2Formatdescordons 111 5.4.3.3Adaptationàunéquipementmobile .................. 112 5.5Choixdessignauxvéhiculésparlescâblesréseau .................... 113
8 Tabledesmatières 5.5.1Touteslescartesontlamêmeréférencedetension 113 5.5.2Lescartesn’ontpasderéférencecommune 114 5.5.3Lescartesontdesréférencesdetensionprésentantundécalage 115 6Répéteuretpasserelle 116 6.1Répéteur,passerelle ..................................... 116 6.2Intérêtd’unrépéteuroud’unepasserelle ......................... 117 6.3Principed’unepasserelleCAN ............................... 118 6.4Principed’unrépéteurCAN ................................. 119 6.4.1Lafonctionlogiqued’arbitragen’estpascombinatoire ............. 120 6.5ExemplesderépéteursCAN 121 6.5.1Répéteurréaliséavecdescircuitsintégréslogiques 122 6.5.2Les AMIS-42700 et AMIS-42770 deONSemiconductors 122 6.5.2.1Descriptiondu AMIS-42700 etdu AMIS-42770 124 6.5.2.2UnrépéteurentredeuxbusCAN 124 6.5.2.3UnrépéteurentredeuxbusCANassociéàunnœudCAN 124 6.5.2.4UnrépéteurentrequatrebusCAN 125 6.5.2.5UnrépéteurentresixbusCANouplus 126 7ProtocoleCAN2.0B 128 7.1Lesdifférentstypesdetrame ............................... 129 7.2Leréseauaurepos ...................................... 130 7.3Formatd’unetramededonnéesetderequête ...................... 130 7.3.1Champ SOF :débutdetrame ........................... 132 7.3.2Champs ARBITRATION et CONTROL :arbitrageetcontrôle ........... 132 7.3.3Champ DATA :données .............................. 134 7.3.4Champ CRC :sommedecontrôle 135 7.3.5Champ ACK :acquittement 137 7.3.6Champ EOF :findelatrame 138 7.3.7Champ IPS :espaceinter-trames 138 7.3.8ExemplesdetramesCAN 138 7.4Validationdelatransmission 140 7.5Décisiond’émettre:condition buslibre 140 7.6Synchronisationforte 141 7.7Synchronisationdescontrôleursenréception 141 7.8Le bitstuffing ......................................... 142 7.9Cohabitationdestramesstandardsetétendues ..................... 143 7.10Résolutiondescollisions .................................. 144 7.10.1CAN:collisionnondestructive .......................... 144 7.10.2Re-émissiondestrames ............................. 146 7.10.3Collisiond’identificateurs ............................. 146 7.11Activitéd’uncontrôleurCANvis-à-visduréseau ..................... 147 7.12LongueurdestramesCAN ................................. 148
Tabledesmatières 9 7.13Débitutiled’unréseauCAN 150 8Détectionetgestiondeserreurs 151 8.1Lesdifférentstypesd’erreursd’unréseauCAN ...................... 152 8.1.1L’inversiondebit .................................. 152 8.1.2L’insertionetlasuppressiondebit ........................ 153 8.1.3L’erreurenrafale .................................. 155 8.2LeserreursdétectéesparuncontrôleurCAN ....................... 155 8.2.1Erreurdebit(biterror ) ............................... 156 8.2.2Erreurde bitstuffing (stufferror ) ......................... 156 8.2.3Erreurdeforme(formerror ) 156 8.2.4Erreurdesommedecontrôle(CRCerror ) 156 8.2.5Erreurd’acquittement(acknowledgmenterror ) 157 8.3Gestiondeserreurs 157 8.3.1Compteursd’erreurs 157 8.3.2Modesd’uncontrôleurCANvis-à-visduréseau 158 8.3.3Comportementd’uncontrôleurCANvis-à-visduréseau 158 8.3.4Champ SUSPENDTRANSMISSION 159 8.3.5Sortirdumode BUSOFF 159 8.4Signalement:lestramesd’erreur ............................. 160 8.4.1Tramed’erreuractive(ACTIVEERRORFRAME) ................. 160 8.4.1.1Algorithme ................................ 160 8.4.1.2Erreursdétectéesdurantl’émission .................. 161 8.4.1.3Discussion ................................ 161 8.4.2Tramed’erreurpassive(PASSIVEERRORFRAME) ............... 162 8.4.2.1Algorithme ................................ 162 8.4.2.2Erreursdétectéesdurantl’émission .................. 162 8.4.2.3Discussion ................................ 163 8.4.3Tramedesurcharge(OVERLOADFRAME) ..................... 163 8.4.3.1Algorithme 163 8.4.3.2Erreursdétectéesdurantl’émission 164 8.4.3.3Discussion 164 8.5AddendumàlaspécificationCAN 164 8.5.1Champ DLC supérieurà8 165 8.5.2Bit SRR dominant 165 8.5.3Dernierbitduchamp EOF reçu dominant 165 8.5.4Incrémentationdu REC quandlemode ERRORPASSIVE estatteint 166 8.5.5Conditionscomplémentairesdepriseencomptedelasynchronisationforte 166 8.5.6Implémentationducompteurd’erreursdetransmission TEC ......... 167 9FiabilitéCAN2.0B 168 9.1Duplicationdel’émissiond’unetrame ........................... 169 9.2Inversionsdebitsdanslestramesstandardssansoctetdedonnées .......... 169
10 Tabledesmatières 9.3Inversionsdebitsdanslestramesstandardsderequête 170 9.4Inversionsdebitsentretramesstandardsansdonnéeettramesderequête ..... 171 9.5Inversionsdebitsentretramesstandardd’unoctetdedonnée ............. 171 9.6Inversionsdebitsentredeuxtramesétenduessansoctetdedonnées 173 9.7Inversionsdebitsentredeuxtramesstandarddedeuxoctetsdedonnées ...... 175 9.8Altérationduchamp DLC :exemplededoubleinversiondebitsnondétectée 175 9.8.1Constructionduscénario ............................. 175 9.8.2Unexemplepratique ................................ 177 10DécompositiondubitCAN 179 10.1NormalisationdeladescriptiondubitCAN 179 10.2Paramètresprogrammables ................................ 180 10.3Décompositiond’unbitCAN 180 10.4Synchronisationd’unrécepteur,duréedepropagation .................. 181 10.5Resynchronisationet SJW 183 10.6Positionsdespointsd’échantillonnage .......................... 185 11Contraintesdeparamétrage 186 11.1Tolérancedeshorloges ................................... 186 11.1.1Uneseulehorloge 186 11.1.2Systèmesàdeuxhorloges ............................. 187 11.2Tolérancesurladuréenominaled’unbit 188 11.3Récapitulatifdescontraintesderesynchronisation .................... 188 11.4Tolérancemaximumdel’horloge 189 12QuelquescontrôleursCAN 190 12.1QuelquesfonctionnalitésdescontrôleursCAN 190 12.1.1Modes loopback, listenonly, selfreception ..................... 190 12.1.2Buffersd’émission 191 12.1.3Nombredere-émissions ............................. 192 12.1.4Quitterlemode BUSOFF 192 12.1.5Filtragedestramesreçues ............................ 192 12.2QuelquescontrôleursCANexternes ............................ 194 12.2.1Ancienscontrôleurs 194 12.2.2Lecontrôleur SJA1000 .............................. 195 12.2.3Lecontrôleur MCP2515 196 12.2.4Lecontrôleur HI-311x .............................. 196 12.3QuelquescontrôleursCANintégrésdansunmicrocontrôleur .............. 197 12.3.1ModuleTWAIdel’ESP32 197 12.3.2Les bxCAN desSTM32 ............................... 197 12.3.3FlexCANdeNXP 198 12.3.4RaspberryPi RP2040 ............................... 199
Tabledesmatières 11 13CodesdecalculCAN 201 13.1Codessources ........................................ 201 13.2Paramétragepouratteindreundébitdonné 202 13.2.1Calculde DBRP etde N pour375kbit/s 203 13.2.2Calculde NPROP SEG , NPS1 , NPS2 et SJW ................. 206 13.2.3Calculde DBRP etde N pour250kbit/s 208 13.3Calculde DBRP ,de N etdelafréquenceduquartzpour615kbit/s 208 13.4VérifierladécompositiondubitCANpourun MCP2515 .................. 209 13.5DébitscommunsàdeuxcontrôleursCAN 211 13.5.1ConfigurationsdubitCANduLPC2294 ..................... 211 13.5.2ConfigurationsdubitCANduPIC18F26K80 .................. 212 13.5.3Construirelalisteordonnéedesdébitsproches 212 13.5.4Afficherlesdébitsproches ............................ 212 13.6Classe CANFrameGenerator ................................ 213 13.6.1Constructeur:calculdelatrame 213 13.6.2Obtentiondescaractéristiquesd’unetrame ................... 214 13.6.3Testerlegénérateurdetrames .......................... 215 13.6.4AffichagededeuxtramesCAN 218 13.6.5ComparerdeuxtramesCAN ............................ 218 13.7BorneseffectivesdelalongueurdestramesCAN 219 14LeprotocoleCANFD 221 14.1LeprotocoleCANFDenbref 222 14.2LestypesdetramesCANFD ................................ 222 14.3Formatd’unetrameCANFD ................................ 223 14.3.1Champs ARBITRATION et CONTROL 223 14.3.2Champ CRC ..................................... 226 14.3.3Insertionforcéed’unbitde stuff ......................... 229 14.3.4Champ STUFFBITCOUNT 229 14.4ExemplesdetramesCANFD ................................ 230 14.5DécompositiondubitCANFD ............................... 233 14.6Lechangementdedébitendétail 234 14.7Compensationdudélaideboucledutransmetteur .................... 237 14.7.1Trametransmiseaudébitd’arbitrage 237 14.7.2Changementdedébit,pasdecompensationdudélaideboucle 238 14.7.3Changementdedébit,aveccompensationdudélaideboucle ......... 238 14.8LongueurdestramesCANFD 240 14.8.1LongueurdestramesCANFD,pasdechangementdedébit 240 14.8.2LongueurdestramesCANFD,avecchangementdedébit ........... 242 14.9Débitutiled’unréseauCANFDISO 243 14.10Activitéd’uncontrôleurCANFDvis-à-visduréseau ................... 243 14.11RecommandationspourlaconfigurationdubitCANFD ................. 245
12 Tabledesmatières 14.11.1LestroisclassesderéseauCANFD 245 14.11.2LesrecommandationsCiA601-3 ......................... 247 15CodesdecalculCANFD 249 15.1Classe CANFDFrameGenerator :générateurdetramesCANFD ............ 249 15.1.1Constructeur:calculdelatrame ......................... 249 15.1.2Obtentiondescaractéristiquesd’unetrameCANFD .............. 250 15.1.3TesterlegénérateurdetramesCANFD 251 15.2LaconfigurationdubitCANFDenpratique 254 16FiabilitéCANFD 262 16.1Simpleinversiondebit 262 16.1.1Validationdelatransmissiond’unetrame 263 16.1.2Inversiondubit r0 ................................. 263 16.2Inversionsdebitsdanslestramesdebasesansoctetdedonnées ........... 263 16.3Altérationduchamp DLC :doubleinversiondebitnondétectée ............ 266 16.4Altérationdubit SOF :unevulnérabilitéduprotocole non-ISO 266 17TranscepteursCANFDetCANSIC 271 17.1TranscepteursCANFD 271 17.2TranscepteursCANSIC 273 18ContrôleursCANFD 276 18.1Le MCP2518FD deMicrochip 276 18.2Le TCAN4550-Q1 deTexasInstruments .......................... 277 18.3Lemodule M_CAN deRobertBoschGmbH ......................... 277 19Utiliserlesservicesd’unpilote 281 19.1Pilotelogiciel ......................................... 281 19.2Structurationencouches .................................. 282 19.3Configurationdupilote 282 19.4Émissiond’unmessage 285 19.5Réceptiond’unmessage 286 20Concevoirunemessagerie 287 20.1Éliminerlesrisquesdecollisionfatale 288 20.2Rôleapplicatifdesidentificateurs ............................. 288 20.3Choixdesidentificateurs .................................. 288 20.4Transmettredesétats .................................... 289 20.5Donnéesfragmentées 290 20.6Traficpériodiqueouévènementiel? 292 20.7Évaluerlachargedubus .................................. 293 20.8Surveillerl’occupationdesbuffersdupilote ........................ 294 20.9Surveillerl’étatducontrôleurvis-à-visduréseau .................... 295
Tabledesmatières 13 21Utiliserunanalyseurlogique 296 21.1Lesignalaffichén’estpaslesignalréel .......................... 296 21.2Quelanalyseurchoisir? 297 21.3ExemplesdedécodagedetramesCAN .......................... 298 21.4Quelssignauxobserver? 299 21.5Exemplesd’observationavecunseulcontrôleurCAN .................. 300 21.5.1Signal RxD enpermanence récessif 301 21.5.2Signal RxD enpermanence dominant ....................... 302 21.5.3Contrôleurseulsurleréseau:nonacquittementdestrames 304 21.5.4CANFD:évaluerlespositionsdespointsd’échantillonnage .......... 305 21.6Exemplesd’observationavecdeuxcontrôleursCAN 308 21.6.1Acquittementdelaréceptiond’unetrame .................... 308 21.6.2Laperted’arbitrage 309 21.6.3Collisionentretramesidentiques ......................... 310 21.6.4Collisionentretramesayantmêmechamp ARBITRATION 312 21.6.5Exempled’un activeerrorflag de12bits ..................... 315 21.7Observationsdutempsderéponseetdelaperted’arbitrage 316 21.7.1Lematériel ..................................... 316 21.7.2Lecodede S0 .................................... 317 21.7.3Lecodede S1 , S2 et S3 319 21.7.4Laséquencedestramessurleréseau ...................... 320 22Exemplesd’applications 322 22.1Commanded’uneLED .................................... 323 22.1.1Définitiondelamessagerie 325 22.1.2Définitiondel’étatinitial .............................. 325 22.1.3Premiercahierdescharges:laledreflètel’étatdupoussoir 325 22.1.3.1Station LED ............................... 325 22.1.3.2Station LED,variantesiémissionpériodique 326 22.1.3.3Station POUSSOIR,émissionpériodique ................ 328 22.1.3.4Station POUSSOIR,émissionévènementielle 329 22.1.3.5Station POUSSOIR,émissionévènementielle,filtragedesrebonds . 330 22.1.3.6Station POUSSOIR,émissionévènementielleetpériodique 332 22.1.4Secondcahierdescharges:unappuicomplémentel’étatdelaled ...... 332 22.2Systèmed’acquisition 334 22.2.1Définitiondelamessagerie ............................ 334 22.2.2Émissionspontanée 335 22.2.3Émissionsurdemande .............................. 337 23Lesévolutionsfutures 340 23.1CANFDLight 340 23.2CANXL ............................................ 341
14 Tabledesmatières Annexes 342 ALelogicieldesimulationSpice 343 A.1Présentationsuccincte ................................... 343 A.2Modèled’unerésistance,d’uncondensateur ....................... 344 A.3Modèled’unesourcedetensionfixe ............................ 345 A.4Modèled’unesourcedetensionimpulsionnelle 346 A.5Modèled’unelignesansperte 346 A.6Modèled’uneligneavecperte 347 A.7Modèled’uninterrupteurcommandéentension ..................... 347 BÉcrireuncodeArduino 349 B.1Lestypes int et unsigned ................................. 349 B.2Typesd’entiersindépendantsdelaplateforme ...................... 350 B.3Constanteslittéralesentières 350 B.4Lafonction delay nepermetpasderespecterunepériode 351 B.5Programmerdesdatesd’exécution,premièreécriture 352 B.6Programmerdesdatesd’exécution,amélioration .................... 353 B.7Organisationd’uncodeArduino .............................. 354 B.8Discussiondudébordementde millis 354 B.8.1Rattrapagedudépassementd’échéance,débordementnongéré 355 B.8.2Rattrapagedudépassementd’échéance,débordementgéré 356 B.8.3Rattrapagedudépassementd’échéance,débordementmalgéré ....... 358 CContrôlederedondancecyclique 360 C.1Lesopérations ⊕ et ⊙ dans N ............................... 361 C.2 Z/2Z ............................................. 362 C.3Lespolynômessur Z/2Z 362 C.4Lepointsurlesnotations 364 C.5Notationpolynomialed’unnombreentier 364 C.6Données,sommedecontrôle,message .......................... 365 C.7Unalgorithmedecalculdelasommedecontrôle .................... 366 C.8Représentationsdupolynôme ............................... 369 C.9Influencedelavaleurinitiale SEED 370 C.10Exemples 370 C.11Vérificationdelasommedecontrôleàlaréception ................... 372 C.12DistanceetpoidsdeHammingd’uncode ......................... 372 C.13Propriétésdessommesdecontrôle ............................ 373 C.13.1Termeconstantde POLYNÔME 373 C.13.2Détectiondetouteerreursimple 374 C.13.3Divisibilitéd’unpolynômepar X +1 374 C.13.4Détectiond’unnombreimpaird’erreurs ..................... 375 C.13.5Détectiond’uneerreurenrafale ......................... 375
Tabledesmatières 15 C.13.6BornesupérieuredeladistancedeHammingd’uncode 376 C.14Rechercherun bon polynôme 377 C.14.1Logicield’évaluationd’unpolynôme 378 C.14.2Choisirlavaleurde SEED .............................. 379 C.15LespolynômesdeCAN2.0BetCANFD .......................... 380 C.15.1CAN2.0B,polynôme CRC15CAN .......................... 380 C.15.2CANFD,polynôme CRC17CANFD ......................... 380 C.15.3CANFD,polynôme CRC21CANFD ......................... 381 Bibliographie 382 Index 386
3.1Étatduréseau,vuparuncontrôleur 61 4.1LesdeuxétatsdubusCAN 69 4.2ExemplesdetranscepteursCAN5V 71 4.3ExemplesdetranscepteursCAN3,3V ............................. 73 4.4ExemplesdetranscepteursCANbi-tension 74 4.5EncadrementdeRDIFF 76 4.6Transcepteurs5Vetbi-tension,VCANH ,VCANL etVDIFF délivréesdansl’état dominant ... 78 4.7Transcepteurs3,3V,VCANH ,VCANL etVDIFF délivréesdansl’état dominant .......... 80 4.8Contrôledepenteparrésistanceexterne 85 5.1Longueurmaximumd’unbusCANenfonctiondesondébit 91 5.2TableaudecorrespondanceAWG ................................ 100 5.3CaractéristiquesrésuméesdequelquescâblesCANHelukabel ............... 103 5.4Caractéristiquesrésuméesdequelquescâblesenruban 104 5.5Affectationdesbrochesd’uneembaseIEEE1394 ...................... 111 7.1Nombred’octetsdelatrame,enfonctionduchamp DLC 134 7.2DeuxexemplesdetrameCAN2.0B .............................. 139 7.3Longueurd’unetrameCAN,enfonctiondesontypeetduchamp DLC 148 7.4Calculdelalongueurd’unetramededonnées 149 7.5Débitutiled’unréseauCAN,pourundébitde1Mbit/s .................... 150 8.1Compteursd’erreurs ....................................... 157 8.2Actionssurlescompteursd’erreurs .............................. 157 8.3Modesd’uncontrôleurCANvis-à-visduréseau 158 8.4Comportementd’uncontrôleurCANvis-à-visduréseau,enfonctiondesonmode .... 158 8.5Conditionetinstantd’émissiond’unetramedesurcharge .................. 164 9.1DistancedeHammingentretramesstandarddedonnéessansdonnée .......... 170 9.2Exempledequadrupleinversiondebitnondétectéeentredeuxtramesstandardsans octetdedonnées 170 9.3DistancedeHammingentretramesstandardderequête .................. 171 9.4Exempledetripleinversiondebitnondétectéeentredeuxtramesstandardsderequête 172
Listedestableaux
Listedestableaux 17 9.5Triplesinversionsdebitnondétectéesentredeuxtramesstandardsderequêteetune tramestandardsansoctetdedonnée 172 9.6DistancedeHammingentretramesstandardsd’unoctetdedonnée 172 9.7Exemplededoubleinversiondebitnondétectéeentredeuxtramesstandardsd’identificateur 0x65 contenantunoctetdedonnées ............................. 173 9.8Exemplededoubleinversiondebitnondétectéeentredeuxtramesétenduessansoctet dedonnées ............................................ 174 9.9Doublesinversionsdebitnondétectéesentredeuxtramesstandardsdedeuxoctets .. 175 9.10Exemplededoubleinversiondebitnondétectée ....................... 178 10.1ParamètresdéfinissantlebitCAN ............................... 180 11.1RésumédescontraintesdeparamétragedubitCAN 189 12.1Principedufiltragepar masqued’acceptation et filtred’acceptation .............. 193 12.2Exempled’acceptationpar masqued’acceptation et filtred’acceptation 194 12.3Exemplederefuspar masqued’acceptation et filtred’acceptation 194 12.4CartesNucleo 197 12.5CartesTeensy3.x 198 13.1Fichierscontenantlescodessources ............................. 202 13.2PlagesdesparamètresdubitCANdu MCP2515 ........................ 203 13.3DécompositiondubitCANpourun MCP2515 210 13.4DébitsduLPC2294etPIC18F26K80proches 212 13.5Exempled’affichagedeschampsd’unetrameCAN 215 13.6DuréesdescalculsexhaustifsdeslongueursdetramesCAN 219 13.7BornesdeslongueurseffectivesdetramesCAN 219 13.8LongueureffectivedequelquestramesCAN 220 14.1Nombred’octetsd’unetrameCANFD,enfonctionduchamp DLC 226 14.2PolynômesutiliséspourlessommesdecontrôleCANetCANFD 227 14.3Compositionduchamp STUFFBITCOUNT 230 14.4PremierexempledetramesCANFD 231 14.5SecondexempledetramesCANFD 232 14.6ParamètresdéfinissantlesbitsCANFD 233 14.7PlagesdesparamètresdéfinissantlesbitsCANFD 234 14.8Duréedesbitsd’unetrameCANFD .............................. 236 14.9Calculdelalongueurd’unetrameCANFDISOsanschangementdedébit ......... 241 14.10Longueurd’unetrameCANFDISOsanschangementdedébit ............... 241 14.11Calculdelalongueurd’unetrameCANFDISOavecchangementdedébit ......... 242 14.12Débitutiled’unréseauCANFDISO,débitd’arbitrageetdedonnéesde1Mbit/s ..... 244 14.13Débitutiled’unréseauCANFDISO,débitd’arbitragede1Mbit/s,dedonnéesde8Mbit/s 245
18 Listedestableaux 15.1DécompositiondubitCANFDpour500kbit/s–2Mbit/s,échantillonnageà80% 258 15.2DécompositiondubitCANFDpour500kbit/s–5Mbit/s,échantillonnageà80% 261 16.1Exempledetramesdebase nonISO sansoctetdedonnées,distantesde6bits 264 16.2Exempledetramesdebase ISO sansoctetdedonnées,distantesde6bits 265 16.3Exemplededoubleinversiondebitsnondétectée,protocole nonISO 267 16.4Exemplededoubleinversiondebitsnondétectée,protocole ISO 268 16.5Altérationdubit SOF,exempledevulnérabilitéduprotocole non-ISO 270 17.1ExemplesdetranscepteursCANSIC .............................. 275 18.1Tailled’unélémentdeszones TxFIFO0,TxFIFO1, RxBuffers et TxBuffers ......... 278 18.2Compositiond’unélémentdelazone 11-bitFilters ...................... 279 18.3Conditiond’acceptiondelatramereçued’identificateur idf ................ 279 18.4Destinationdelatramereçued’identificateur idf ...................... 280 18.5Compositiond’unélémentdelazone 29-bitFilters ...................... 280 20.1Exemplededescriptiond’unetramed’unemessagerie ................... 289 20.2Fragmentsd’unblocde32octets ............................... 291 22.1Tracedel’exécutiondelastation GESTIONNAIRE,émissionspontanée 337 22.2Tracedel’exécutiondelastation GESTIONNAIRE,émissionsurdemande 339 A.1Suffixesmultiplicateurs ..................................... 344 B.1Typesd’entiersindépendantsdelaplateforme ........................ 350 B.2Tracedel’exécutionducroquis debordement-non-gere.ino ............... 356 B.3Tracedel’exécutionducroquis debordement-gere.ino .................. 357 B.4Tracedel’exécutionducroquis debordement-mal-gere.ino ............... 359 C.1Exempled’opérations + et ⊕ .................................. 361 C.2Exempled’opérations × et ⊙ .................................. 361 C.3Opérationsbooléennes et ................................. 362 C.4Représentationpolynomialede10etde13 .......................... 364 C.5Représentationnumérique« POLYNÔME »d’unpolynôme ................... 369 C.6Représentation« NORMAL »d’unpolynôme ........................... 369 C.7Représentation« KOOPMAN »d’unpolynôme .......................... 369 C.8Quelquesexemplesdesommesdecontrôlepour N =16 et P =8 ............ 371 C.9ExempledecalculdedistancedeHamming .......................... 373 C.10Quelquesbonspolynômespourunesommedecontrôle8bits(P =8) .......... 377 C.11Sommesdecontrôlepour POLYNÔME= 0x1F3 avecdiversesvaleursde SEED ........ 379

Listedesfigures

1.1Commentconnecteruninterrupteuràunmicrocontrôleur? ................. 33 1.2Connexiondirected’uninterrupteuràunmicrocontrôleur 33 1.3SchémaSpicefermetureetouvertured’uninterrupteur 35 1.4Codedelasimulationdelafermetureetdel’ouvertured’uninterrupteur 36 1.5Résultatsdelasimulationdelafermetureetdel’ouvertured’uninterrupteur 37 1.6SchémaSpicefermetureetouvertured’uninterrupteur,avecdiodesde clamping 38 1.7CodeSpicedelasimulationdelafermetured’uninterrupteur,avecdesdiodesdeclamping 38 1.8Simulationdelafermetured’uninterrupteur,priseencomptedesdiodesdeclamping .. 39 1.9Résultatsdelasimulationdelafermetureetdel’ouvertured’uninterrupteur,Rpullup =5kΩ 39 1.10SchémaSpicedelasimulationfermetureetouvertured’uninterrupteurensérieavec Rc 40 1.11CodeSpicedelasimulationdelafermetured’uninterrupteurensérieavec Rc ...... 40 1.12CodeSpicedelasimulationdel’ouvertured’uninterrupteurensérieavec Rc ....... 41 1.13Simulationfermetureetouvertured’uninterrupteurensérieavec Rc 41 1.14Connexionparlignedifférentielled’uninterrupteuràunmicrocontrôleur 42 1.15Connexionparlignedifférentielled’uninterrupteuràunmicrocontrôleur,schémacomplet 43 1.16Lignedetransmissiondelongueur l 43 1.17Décompositiond’unelignedetransmission 43 1.18Lignesanspertedelongueurinfinie 45 1.19Lignesanspertedelongueurfinie,terminéepar Rc ..................... 45 1.20SimulationSpiced’unelignesansperteouverte ....................... 46 1.21SimulationSpiced’unelignesansperteterminéepar RC .................. 47 1.22SimulationSpiced’unelignesansperteterminéeparunerésistancedifférentede RC .. 48 2.1StationsetbusCAN ....................................... 49 3.1Schémadeprinciped’unréseauCAN 57 3.2RéseauetbusCAN,détaildelaconnexionentrecontrôleurettranscepteur 57 3.3ContrôleurCANintégréouexterne ............................... 58 3.4Interfaceréseaud’uncontrôleurCAN ............................. 58 3.5Schémadeprinciped’unréseauCANréunissanttroiscontrôleurs ............. 59 3.6ContrôleurCAN,sortie TxD push/pull:activebas/activehaut ............... 60 3.7ContrôleurCAN,Sortie TxD collecteurouvert:activebas/hauteimpédance ....... 60
20 Listedesfigures 3.8LalogiqueduréseauCANetfonction« et » 60 3.9Simpleréseauavecuneporte« et » .............................. 62 3.10Simpleréseau,réseauenlogiquecâblée ............................ 62 3.11Simpleréseau,logiqueduréseauréaliséepardesdiodes 63 3.12Contrôleursalimentéssousdestensionsdifférentes .................... 64 3.13Délaideboucled’unréseau 64 3.14Exemplesdeconnexionsdonnantdestempsdeboucledifférents ............. 65 4.1TranscepteursetbusCAN(schémadeprincipe) 67 4.2Schémadeprinciped’untranscepteurCAN .......................... 67 4.3SchémadeprincipedelapartieémetteurdutranscepteurCAN 68 4.4Lesdeuxétatsdel’émetteurdutranscepteurCAN 68 4.5PrincipedefonctionnementdurécepteurdutranscepteurCAN ............... 69 4.6TranscepteurCANseulsurunbus 70 4.7DispositiondesbrochesdestranscepteursCAN ....................... 71 4.8Connexiond’untranscepteuralimentésous5V 72 4.9Connexiond’untranscepteuralimentésous3,3V 73 4.10Schémadeconnexiond’untranscepteurbi-tension ..................... 74 4.11Tirageintégrésurl’entrée T 74 4.12Résistanced’entréedifférentielle ............................... 75 4.13Tensionstypiquesde CANH et CANL,transcepteurs5Vetbi-tension 77 4.14Détectiondel’étatdubus,transcepteurs5Vetbi-tension 79 4.15Tensionstypiquesde CANH et CANL,transcepteurs3,3V .................. 80 4.16Détectiondel’étatdubus,transcepteurs3,3V 80 4.17Terminaisonstandard ...................................... 81 4.18Terminaison«SPLIT» 82 4.19Busàdeuxfils 83 4.20Connexiondediodesdesuppressiondetensionstransitoiresbidirectionnelles ...... 84 4.21ConnexiondecontrôleursCANàuntranscepteurviauneporte« et » 86 4.22ConnexiondecontrôleursCANdontlasortieestdutype collecteurouvert àuntranscepteur 87 4.23ConnexiondutranscepteurISO1050deTexasInstruments 87 4.24Isolationgalvaniqueàl’aided’optocoupleurs 88 5.1TranscepteursetbusCAN(schémadeprincipe) 89 5.2Dispositionacceptable ..................................... 90 5.3Dispositionrecommandée 90 5.4ExemplederéseauCANenétoile,terminaisonssurdeuxstations 92 5.5ExemplederéseauCANendeuxétoilesréliéesparunbus,terminaisonssurdeuxstations 92 5.6ExemplederéseauCANendeuxétoilesréliéesparunbus,terminaisonsréparties 92 5.7SchémaSpiceduréseauenétoile,pourlatransition récessif → dominant ......... 94
Listedesfigures 21 5.8SimulationSpiced’unréseauenétoile,résistanceàuneseuleextrémité, récessif → dominant 94 5.9SchémaSpiceduréseauenétoile,pourlatransition dominant → récessif ......... 95 5.10SimulationSpiced’unréseauenétoile,résistanceàuneseuleextrémité, dominant → récessif 96 5.11SimulationSpiced’unréseauenétoile,résistancesréparties, récessif → dominant .... 97 5.12SimulationSpiced’unréseauenétoile,résistancesréparties, dominant → récessif 98 5.13SimulationSpiced’unréseauenétoile,résistanceàuneseuleextrémité,branchesinégales, récessif → dominant .................................. 99 5.14SimulationSpiced’unréseauenétoile,résistanceàdeuxextrémités,branchesinégales, dominant → récessif ....................................... 99 5.15SimulationSpiced’unréseauenétoile,résistancesréparties,branchesinégales, récessif → dominant 100 5.16SimulationSpiced’unréseauenétoile,résistancesréparties,branchesinégales, dominant → récessif .......................................... 101 5.17Tensionauxextrémitésdubus 102 5.18CâblesenrubanetconnectiqueIDC .............................. 103 5.19Exempledematérielpourfabriquersesproprescordonstéléphoniques 104 5.20EmbasemâleD-SUBà9brochesdécritedanslerapporttechniqueCiA106 105 5.21Connectique Mini-SPOX2.50mm deMolex ........................... 106 5.22QuelquesborniersDegson,aupasde3,81mm 106 5.23Connecteursmâles xPy C .................................... 107 5.24CordonsEthernetdroitetcroisé 108 5.25CordonsplatsRJ12droitetcroisé 109 5.26Cordonsplatsà8conducteursdroitetcroisé ......................... 110 5.27FormatdesembasesIEEE1394AetIEEE1394B 111 5.28CordonIEEE1394A ....................................... 111 5.29Connexiond’unéquipementmobileaveclaconnectiqueIEEE1394A 112 5.30Touteslescartesontlamêmeréférence 0V 113 5.31Exemplesd’agencementde CANH et CANL dansuncâbleplat ................ 113 5.32Cartessansréférencecommune(nonrecommandé) 114 5.33Cartessansréférencecommune,lebusvéhiculelaréférence ................ 114 5.34Exemplesd’agencementde CANH, CANL, 0V et Alimentation dansuncâbleplat 115 6.1Répéteur,passerelle 116 6.2Intérêtd’unrépéteuroud’unepasserelle 117 6.3Schémadeprinciped’unepasserelleCAN ........................... 118 6.4Schémadeprinciped’unrépéteurCAN 119 6.5Circuitlogiqued’arbitragecombinatoire(défaillant) ...................... 120 6.6Circuitlogiqued’arbitragecombinatoire:miseenévidenced’unedéfaillance 121 6.7Ligneàretard 122 6.8SchémadurépéteurCAN .................................... 123
22 Listedesfigures 6.9Connexionsetschéma-blocd’un AMIS-427x0 124 6.10UnrépéteurentredeuxbusCANavecun AMIS-427x0 .................... 125 6.11UnnœudCANetunrépéteurentredeuxbusCANavecun AMIS-42700 .......... 125 6.12UnrépéteurentrequatrebusCANavecdeux AMIS-427x0 126 6.13UnrépéteurentresixbusCANavectrois AMIS-427x0 127 7.1Fonctionlogiqued’unréseauCAN:un et câblé 129 7.2RéseauCANaurepos ...................................... 130 7.3Formatd’unetrameCANdedonnéesouderequête ..................... 131 7.4Débutdetrame 132 7.5Champd’arbitrageetchampdecontrôle 133 7.6Arbrededécisiondudécodagedutyped’unetrameCAN2.0B ............... 134 7.7Compositionduchamp DATA .................................. 134 7.8Compositionduchamp CRC 135 7.9Compositionduchamp ACK 137 7.10Compositionduchamp ENDOFFRAME ............................ 138 7.11Compositiondel’espaceinter-trames INTERFRAMESPACE,selonl’étatducontrôleur .. 138 7.12Validationdelatransmission 140 7.13Synchronisationdescontrôleursenréception 141 7.14Exemplesd’insertiondebitparlemécanismede bitstuffing ................ 142 7.15Scénariod’insertionmaximumdebitsparle« bitstuffing » ................. 143 7.16Exempled’arbitrageentretroiscontrôleurs 145 7.17Champarbitragedestramesstandardsetétendues,derequêteetdedonnées ...... 146 7.18Activitéd’uncontrôleurCANvis-à-visduréseau ....................... 147 8.1Exempled’erreurd’inversiondebit ............................... 152 8.2Exempled’erreurd’inversiondebitentraînantuneviolationdu bitstuffing ......... 153 8.3Exempled’erreurd’inversiondebitentraînantunesuppressiondebit 153 8.4Exempled’erreurd’inversiondebitentraînantuneinsertiondebit 154 8.5Exempled’erreurdesuppressiondebit ............................ 154 8.6Compositiondel’espaceinter-trames INTERFRAMESPACE,selonlemodeducontrôleur 159 8.7Tramed’erreuractive(ACTIVEERRORFRAME) 160 8.8Tramed’erreurpassive(PASSIVEERRORFRAME) 162 8.9Tramedesurcharge(OVERLOADERRORFRAME) ....................... 163 8.10Find’unetramededonnéesouderequête .......................... 166 9.1Exemplededoubleerreurnondétectée ............................ 176 10.1Normalisationsdeladécompositiond’unbitCAN ...................... 180 10.2Décompositiond’unbitCANnominal(ISO15765-4) 181 10.3Synchronisationd’unrécepteur,duréedepropagation 182 10.4Resynchronisationd’unrécepteur ............................... 183 10.5Resynchronisationsd’unrécepteurrapide ........................... 184
Listedesfigures 23 10.6Resynchronisationsd’unrécepteurlent 184 10.7Positionsdel’uniqueoutripleéchantillonnage ........................ 185 12.1Variantesdumode« LoopBack »d’uncontrôleurCAN .................... 191 12.2Principedufiltragedestramesreçues 193 12.3Connexiond’unSJA1000àunmicrocontrôleur ........................ 195 12.4Connexiond’unMCP2515àunmicrocontrôleur 196 12.5CheminementdesmessagesdanslecontrôleurFlexCAN .................. 199 13.1ConnexionpourtesterlegénérateurdetrameCAN 216 14.1Formatd’unetrameCANFD 224 14.2Champarbitrageetchampdecontrôled’unetrameCANFD ................ 225 14.3Arbrededécisiondudécodagedutyped’unetrameCANFD 227 14.4Champs STUFFBITCOUNT et CRC d’unetrameCANFD .................. 228 14.5Zoneoùle databitrate estactif 235 14.6DécompositiondubitCANetpositiondupointd’échantillonnage .............. 235 14.7DécompositiondubitCANFDetpositiondespointsd’échantillonnage 236 14.8Décompositiondesbits BRS et CRCDEL ........................... 236 14.9Exempledechronogrammedeschangementsdedébit 237 14.10Pasdechangementdedébit,illustrationdudélaideboucle ................. 238 14.11Changementdedébit,pasdecompensationdudélaideboucle 238 14.12Mesureautomatiquedudélaideboucledutransmetteur .................. 239 14.13Positiondu pointd’échantillonnagesecondaire SSP 240 14.14Activitéd’uncontrôleurCANFDvis-à-visduréseau ..................... 246 15.1ConnexionpourtesterlegénérateurdetramesCANFD ................... 252 16.1Altérationdubit SOF ....................................... 269 17.1DispositionetsignificationdesbrochesdequelquestranscepteursCANFD 272 17.2Délaideboucled’untranscepteurCAN/CANFD,étatdessortiesCANH/CANL ..... 274 17.3Délaideboucled’untranscepteurCANSIC,étatdessortiesCANH/CANL ......... 274 18.1Configurationdela messageRAM d’unmodule M_CAN 278 19.1Structured’unestationCAN 283 19.2CheminementdesmessagesdansuncontrôleurCAN .................... 284 21.1Affichaged’unsignaléchantillonné .............................. 296 21.2Pertedelaséquentialitéentredeuxévènements 297 21.3Décodaged’unetrameCANstandard,unoctetdedonnées ................. 298 21.4InversiondebitaléatoiredansunetrameCANstandardd’unoctetdedonnées 299 21.5Connexionspourobserverleseffetsd’unniveau récessif permanentsur RxD ....... 301
24 Listedesfigures 21.6Signal TxD,quand RxD estenpermanence récessif 302 21.7Connexionspourobserverleseffetsd’unniveau dominant permanentsur RxD 303 21.8Signal TxD,quand RxD devientenpermanence dominant 303 21.9Connexionspourobserverleseffetsd’uncontrôleurseulsurleréseau .......... 304 21.10Trameutiliséepourmettreenévidencel’erreurd’acquittement ............... 304 21.11Erreurd’acquittementdansl’état erroractive ......................... 305 21.12Erreurd’acquittementdansl’état errorpassive ........................ 305 21.13Évaluationdeladuréedesbits BRS et CRCDEL ....................... 306 21.14Exempledeconnexionspourdestravauxpratiques ..................... 308 21.15Acquittementdelaréceptiond’unetrame ........................... 309 21.16Perted’arbitragelorsdel’émissiond’unetrame ....................... 310 21.17Émissionaprèslaperted’arbitrage .............................. 310 21.18Collisionentretramesidentiques,contrôleursen erroractive ................ 311 21.19Collisionentretramesidentiques,contrôleursen errorpassive ............... 312 21.20Collisionsentretrames,émissions1à15 ........................... 313 21.21Collisionsentretrames,16e émission 314 21.22Collisionsentretrames,17e émission 314 21.23Collisionsentretrames,18e émission 315 21.24Collisionsentretrames,19e émission 315 21.25Collisionsentretrames,exempled’activeerrorflag de12bits 316 21.26RéseauentrelesquatremodulesTeensy4.1 317 21.27 M0 suivide M2 320 21.28Impulsionaudébutduchamp SOF 321 22.1RéseauetbusentredeuxXIAOESP32S3 324 22.2Brochaged’unXIAOESP32S3(documentSeeedStudio) 324 22.3RéseauetbusentretroisXIAOESP32S3 334 A.1Descriptiond’unerésistanceetd’uncondensateurenSpice ................. 345 A.2Descriptiond’unesourcedetensionfixe ............................ 345 A.3ModèleSpiced’unesourcedetensionimpulsionnelle .................... 346 A.4ModèleSpiced’unelignesansperte .............................. 346 A.5ModèleSpiced’uneligneavecperte .............................. 347 A.6InterrupteurSpicecommandéentension 347 A.7Cycled’hystérésisd’uninterrupteurSpicecommandéentension 348
8.1Émissiondelatramed’erreuractive .............................. 160 8.2Émissiondelatramed’erreurpassive ............................. 162 8.3Émissiondela tramedesurcharge ............................... 163 20.1Algorithmederéceptiondesfragments ............................ 292 21.1Croquis,miseenévidenceducomportementquand RxD estenpermanence récessif ... 301 21.2Croquis,miseenévidenceducomportementquand RxD estenpermanence dominant . 303 21.3Croquis,miseenévidenceducomportementquanduncontrôleurestseulsurleréseau . 304 21.4Croquis,miseenévidencedelapertedel’arbitrage ..................... 309 21.5Émissiondetramesidentiques 311 21.6Émissiondetramesdontleschamps ARBITRATION sontidentiques 313 21.7Émissiondetramesdontleschamps ARBITRATION sontidentiques 316 21.8Codedelastation S0 318 21.9Codedelastation S1 319 22.1Codedelastation LED 326 22.2Codedelastation LED,détectiondel’absenced’émission 327 22.3Codedelastation POUSSOIR,émissionpériodique 328 22.4Codedelastation POUSSOIR,émissionévènementielle 329 22.5Codedelastation POUSSOIR,émissionévènementielle,priseencomptedesrebonds 331 22.6Codedelastation POUSSOIR,émissionévènementielleetpériodique 332 22.7Codedelastation LED,inversiondel’état 333 22.8Codedelastation CAPTEUR0,émissionspontanée ...................... 335 22.9Codedelastation GESTIONNAIRE,émissionspontanée ................... 336 22.10Codedelastation CAPTEUR0,émissionsurdemande .................... 338 22.11Codedelastation GESTIONNAIRE,émissionsurdemande ................. 338
Listedesalgorithmes
26 Listedesalgorithmes B.1Rattrapagedudépassementd’échéance,débordementnongéré 355 B.2Rattrapagedudépassementd’échéance,débordementgéré 357 B.3Rattrapagedudépassementd’échéance,débordementmalgéré 358

Avant-propos

Pourquoiutiliserunréseau? Lorsqu’ilconçoitunéquipement,leconcepteurpeutêtreamenéà connecteràl’informatiqueembarquéedesactionneursetdescapteursdistants.Unsignalnumérique issud’unmicrocontrôleuroud’uncircuitlogiquenepeutêtretransmisfiablementquesurquelques dizainesdecentimètres.Encause,lesparasitesélectromagnétiquesetlefaitqu’unelignedetransmissionn’estpasuneéquipotentielle,mêmeenl’absencedeparasite.Unesolutionestd’adopterune lignedifférentielle,maisceladoublelenombredefils.Cespointssontdéveloppésdansle chapitre1à partirdelapage32.

Intérêtd’unréseau. Dèslors,leconcepteurpeutenvisagerd’adopterunréseau.Cettesolutionprésentedenombreuxavantages.

Latransmissionfiabledessignauxsurleréseauestprisenchargepardescomposantsdédiésà cettetâche–lestranscepteurs.

Aulieud’une(grande)carteinformatiqueunique,l’équipementestconstituédeplusieurs(petites) cartesséparées.Chacuned’elleestprochedesactionneursetdescapteursdontellealacharge.Ces cartessontplusfacilesàconcevoiretàmainteniretpeuventêtreenpartietestéesséparement,sans connexionauréseau.Commeunréseaueffectueunmultiplexagetemporeldeplusieurssignaux,on bénéficied’unediminutiondunombredefilsnécessairesàl’interconnexion,etd’unestandardisation decelle-ci.Encasdepanne,lescartespeuventêtreremplacéesindépendammentlesunesdesautres. Aufuretàmesuredel’évolutiondesprestations,denouvellescartespeuventêtreintégréesauréseau. Onpeutdoncconcevoirsonéquipementprogressivement,lerendantévolutifàlademande.

L’interfaced’échanged’informationestclaire:c’estlamessagerieduréseau.

Inconvénientsd’unréseau. Chaquecartedoitintégrerlescomposantsd’interface,lecontrôleurréseau,quieffectuelapriseenchargeduprotocoleréseauetletranscepteurchargédelatransmissionfiabledessignaux.S’ilexistedenombreuxmicrocontrôleursintégrantdescontrôleursdedivers typesderéseau,letranscepteurestuncomposantexterne.Àcelas’ajoutelepilote,logicielquiassure l’interfaceaveclecontrôleur,dontlevolumemémoire(codeetmémoirevive)peutêtreimportant, relativementàlaplacedisponibledanslesmicrocontrôleurs.

Ilfautaussicompterl’investissementintellectuelpourcomprendreetapprivoiserlefonctionnement d’unréseau,pouvoircernerlacaused’unedéfaillanceoud’undysfonctionnement.Undesbutsdece livreestd’aiderleconcepteuràcomprendreendétaillefonctionnementdesréseauxCANetCANFD.

Équipementsélectriquesdesvéhiculesroutiers. Lesconstructeursautomobilessontconfrontésà laprogressionconstantedeséquipementsélectriques:d’abord,démarragedumoteuràcombustion interne,éclairagedelaroute,puislesessuie-glaces,lesclignotants,…Lalisteestlongueetaugmente régulièrement.Àlafindu20e siècle1 ,unevoiturehautdegammepeutembarquerjusqu’à3kmde câbles,longueurcumuléede1000fils,représentantunemassenonnégligeablede40kg.L’interconnexiondeceséquipementsestundéfi:complexitédesfaisceaux,coût,encombrement,fiabilitéet maintenance.

Àcela,s’ajouteunproblèmepluscomplexe,celuidel’évolutiondesprestationsversleurinterdépendance.Audépart,lesprestationssontindépendantes.Pourprendreunexemple,lesfreinssont actionnésuniquementparlapédaledefrein,viaunsystèmehydraulique.

Actuellement,outrel’actionduconducteur,lesfreinspeuventêtrecommandéspar:

• l’ABS(del’allemand« Antiblockiersystem »),systèmeanti-blocagedesroues;

• l’ESP(« ElectronicStabilityProgram »),systèmed’anti-dérapagepouréviterlesous-virageetle sur-virage;

• l’ASR(« AccelerationSlipRegulation »),systèmed’anti-patinagedesrouesmotrices;

• l’EBD(« ElectronicBrakeforceDistribution »),quirépartitlefreinagesurlesrouespouréviterle tête-à-queue.

Fairecohabitercesdifférentesprestationsnepeutplusêtrerésoluparuncâblage,aussicomplexe soit-il.Lasolutionadoptéeestdedisposerd’ungrandnombredecalculateursembarqués,interconnectésparunouplusieursréseauxinformatiques.LeréseauCANestl’undeceux-là.

LeréseauCAN. LeprotocoleCAN(«ControllerAreaNetwork»)aétéconçuparlasociétéBoschà partirde1983etlaversion2.0Baéténormaliséeen1993.Sonbut:proposeràl’industrieautomobile unréseau tempsréel,peucoûteuxetfiablepourconnectertoutel’instrumentationembarquée(capteurs,actionneurs).UneoriginalitéduprotocoleCANestqu’ilinclutunegestionprécisedeserreurs quiestpriseenchargeautomatiquementparlecontrôleur,sansinterventiondulogiciel(cequiapour conséquencedelesimplifieretdel’alléger).En2012,l’extensionCANFDduprotocoleaétérendue publique,etaéténormaliséeaprèsquelquesmodificationsen2015.

L’industrieautomobileexigefiabilité,grandessériesetprixbas.Enconséquence,denombreuxcomposantsCAN/CANFDsontdisponibles,auprèsdedifférentsfondeurs,tousétantparfaitementinteropérables.Denouveauxmarchéssecréentalors,attirésparlesfaiblescoûts.Ainsifutcrééeen 1992l’organisationinternationale CANinAutomation 2 (CiA),quiregroupelesutilisateursetfabricants deproduitsmatérielsetlogicielsbaséssurCAN.

L’industrieproposedenombreuxmodulesmicrocontrôleursdotésd’uneinterfaceCANet/ouCAN FD,pourdesprixallantdequelqueseurosàplusieursdizainesd’euros.L’environnementdedéveloppementArduinoadémocratisélaprogrammationdecesmodulesetilexistedesbibliothèquesqui implémententunpiloteCANet/ouunpiloteCANFD.Cecirendaccessibleàl’amateurouàl’ingénieur nonspécialistelaconceptionetlamaîtrised’unréseauCAN/CANFD.

1 Déjà,en1950,laPeugeot203embarquaituncâblagede50filspourunelongueurcumuléede125m.

2 https://www.can-cia.org/about-us/

28 Avant-propos

Plandulivre. Lapremièrepartiedecelivreestconstituéededeuxchapitres:le chapitre1àpartir delapage32 estconsacréauxlignesdetransmissionetle chapitre2àpartirdelapage49 estune brèveintroductionauxréseauxCANetCANFD.

LadeuxièmepartieestconsacréeauréseauCAN:

• le chapitre3àpartirdelapage56 présenteladistinctionentreréseauetbusetpréciselerôle descontrôleursetdestranscepteurs;lafonctionlogiqued’unréseauCAN(unefonction« et ») estdétailléeens’appuyantsurlestermes dominant et récessif ;

• le chapitre4àpartirdelapage66 détaillelefonctionnementdestranscepteursetleursfonctionnalités;

• le chapitre5àpartirdelapage89 présentelatopologielaplusclassiqued’unréseauCANqui estlebus,discutedelatopologieenétoileetenproposedessimulations,selonletypedeterminaisonchoisie;ilseterminesurl’agencementdessignauxsuruncâbleetcitedifférentes connectiques;

• le chapitre6àpartirdelapage116 montrecommentétendreunréseauCANaumoyend’un répéteur oud’une passerelle ;

• onremarqueraqueleschapitresprécédentsn’ontpasbesoindeconnaîtreleprotocoleCAN, seulementlafonctionlogiqueduréseau;c’estpourquoileprotocoleCANn’estprésentéqu’au chapitre7àpartirdelapage128 :leformatd’unetrame,le bitstuffing,larésolutionnondestructivedescollisions;

• le chapitre8àpartirdelapage151 listeleserreursdétectéesparuncontrôleuretcommentil yréagit;

• leprotocoleCANest-ilfiable?AlorsquelaspécificationCAN2.0Bannonceunedistancede Hammingde6etlaprobabilitéqu’unetrameerronéevérifielasommedecontrôleinférieure à 4,7 × 10 11 ,l’expérienceamontréquecen’étaitpaslecas;le chapitre9àpartirdelapage 168 donnequelquesexemplesquimontrentqueladistancedeHammingestinférieureà6;

• laconfigurationd’uncontrôleurCANfixelavaleurdedifférentsparamètresquidéfinissentla compositiontemporelled’unbitCANetparconséquenceledébitduréseau:le chapitre10à partirdelapage179 expliqueleursignificationetcommentilsinterviennent;

• leparamétrageétabliauchapitreprécédentest-ilvalidepourunréseaudonné?Le chapitre11 àpartirdelapage186 répondàcettequestionenlistantlescontraintesquidoiventêtresatisfaites;

• le chapitre12àpartirdelapage190 présentesuccinctementquelquescontrôleursCAN;

• le chapitre13àpartirdelapage201 présentedifférentscodesécritsenC++etdestinésàêtre exécutéssurunemachinedebureau:ungénérateurdelaséquencedebitsd’unetrameCAN (quiaservipourproduirelesexemplesdetramesdecelivre)etdeslogicielsutilitairespour obtenirunedécompositiondubitCANpourundébitdonnéouencoreobtenirlalistedesdébits communsàplusieurscontrôleurs.

LatroisièmepartieestconsacréeauréseauCANFD.Onpartdelaconnaissancedeschapitresprécédents:

• le chapitre14àpartirdelapage221 commencedoncdirectementparl’exposéduprotocole CANFD,lesnouveauxformatsdetrame;laspécificationd’origineduprotocole–maintenant

Avant-propos 29

appelée CANFDnonISO –présentaitdesvulnérabilitésdontcertainesontétécorrigéeslorsde lanormalisationduprotocole–aboutissantàlaversion CANFDISO,incompatibleaveclaprécédente;cechapitreprésenteaussiladécompositiontemporelledubitCANFDetlemécanisme de changementdedébit propreàCANFD;

• le chapitre15àpartirdelapage249 décritungénérateurdetramesCANFDetunalgorithme decalculdeladécompositiondesbitsCANFDenfonctiondesdébitsdemandésetdelaposition despointsd’échantillonnage;

• leprotocoleCANFDest-ilfiable?Plusieursétudesontmisenévidencequedesfaiblessesdu protocolepersistaientdanslaversion CANFDISO duprotocole;le chapitre16àpartirdelapage 262 endécritquelques-unes,ainsiqu’unevulnérabilitépropreàlaversion CANFDnonISO :l’altérationdubit SOF ;

• lesdeuxchapitressuivantssontcourts:présentationdestranscepteursCANFD(chapitre17à partirdelapage271)etleurversionamélioréeCANSICetdescontrôleursCANFD(chapitre18 àpartirdelapage276).

Laquatrièmepartiecomportedeuxchapitresquis’appliquentaussibienàCANqu’àCANFD:

• lesservicesqu’offreunpilotelogicieldédiéàCANouCANFDfontl’objetdu chapitre19àpartir delapage281 ;

• concevoirunemessagerieCAN/CANFD: chapitre20àpartirdelapage287 ;onymontreprincipalementqu’ilvautmieuxtransmettreun état plutôtqu’un changementd’état etquel’onpeut organiserl’échangedemessagessurleréseausoiten traficévènementiel,soiten traficpériodique ;

• utiliserunanalyseurlogique(chapitre21àpartirdelapage296):cetoutilpermetdevisualiser letraficd’unréseauetydécelerfacilementdeserreurs–typiquementdeserreursdedébits entrelesdifférentscontrôleursd’unréseau;unformateurpourraaussiytrouverdesidéessur destravauxpratiquesquimettentenévidencedifférentespropriétésduprotocole,commele bit stuffing,larésolutionnondestructivesdescollisions,l’acquittementdestrames;

• le chapitre22àpartirdelapage322 présenteplusieursexemplesd’applications.

Le chapitre23àpartirdelapage340 évoquerapidementlesévolutionsfuturesencoursdeconception, CANFDLight et CANXL

Lelivreseterminepartroisannexes:

• lapremière(annexeAàpartirdelapage343)estuneprésentationrapidedulogicielSpice,qui aservipoureffectuerlessimulationsdu chapitre1 ;

• ladeuxième(annexeBàpartirdelapage349)contientdesréflexionssurl’écritured’uncode Arduino,notammentsurlerespectd’unepériodicité–cequelafonction delay nepermetpas –etsurledébordementdelafonction millis ;

• latroisième(annexeCàpartirdelapage360)estuneprésentationdesmathématiquesdes CRC (« CyclicRedundancyCode »),avecapplicationauxsommesdecontrôlespécifiéesparles protocolesCANetCANFD.

Celivres’adresseauxamateursetauxingénieursnonspécialistespourcomprendrelespossibilités qu’offreunréseauCANetcommentonlemetenœuvre.Unenseignanttrouveradesinformations pourapprofondirsesconnaissancesetpourconcevoirdestravauxpratiques.Uneconnaissancedes

30 Avant-propos

microcontrôleurs,deleurprogrammation,del’électroniquenumériqueaideralalecturedesschémas. LaconnaissancedulangageC++faciliteralacompréhensiondesprogrammesquisontdécritsdansle livre.LaconnaissancedulangagedesimulationélectroniqueSpicepermettradecomprendrelecode sourcedesdifférentessimulations.TouslescodessourcesontdisponiblessurledépôtGitHubdont l’URLest https://github.com/pierremolinaro/codes-can.

CelivreaétéécritenXELATEX,lesfiguresétantcomposéesavecl’extensiongraphique Tikz. Microcontrôleur, contrôleurCAN, transcepteurCAN, réseauCAN et busCAN sontaucœurdecetouvrage.Une conventiondecouleurestappliquéedanstouslesschémas,commel’illustrelafigureci-dessous.Noteraussiladélimitationd’unréseauCAN etcelled’unbusCAN .

StationCAN

Microcontrôleur

ContrôleurCAN

0V TxD RxD

RéseauCAN

0V CANH CANL

BusCAN TranscepteurCAN

L’auteurremerciePhilippeMartin,MikaëlBriday,Jean-LucBéchennecetlarédactiond’Elektorpour leurrelectureattentiveetpourlesnombreusescorrectionsetsuggestionsqu’ilsontproposées.

Avant-propos 31

Chapitre1

Lignesdetransmission

Pourquoiprésenterleslignesdetransmission?Simplementpourlaraisonsuivante: unfiln’estpas uneéquipotentielle. Autrementdit,lesignalquel’onrécupèreàl’extrémitéd’unelignen’estpascelui envoyéàl’autreextrémité.Encause,l’inductancepropredelaligne,sacapacité,leséchosrenvoyés parlesextrémitésdelaligne,lesparasitesélectriquesqu’ellesubit,…

Peut-onignorercesphénomènes?Celadépenddeladynamiquedusignal,delalongueurdelaligne detransmission,del’environnementélectrique.Enpratique,pourlaplupartdeslignesvéhiculantun signalnedépassantpasunedizainedemégahertzetdelongueurinférieureàunedizaine(vingtaine?) decentimètres,laréponseestoui.PourunréseauCANs’étendantsurplusieursdizaines(oucentaines de)mètres,laréponseestnon.

AussiassurerunetransmissionfiabledessignauxaétéaucœurdelaconceptionduprotocoleCAN: onverraau chapitre« TranscepteurCAN »àpartirdelapage66 quedescomposantsdédiés–les transcepteursCAN –ontétédéveloppésdanscebut.

Danscechapitre,aprèsunexempleillustratif,onprésente(très)succinctementlathéoriedeslignes detransmissionetonverrapourquoiunelignedifférentielleassociéeàdesrésistancesdeterminaison bienchoisies permettentdetransmettrefiablementunsignal.

CechapitredécritplusieurssimulationsréaliséesenSpice,logicieldesimulationélectronique,décrit succinctementdansl’annexeAàpartirdelapage343.Ilnefautpasprendrelesrésultatsdessimulationscommeétantlerefletexactdelaréalité.Onobserveuniquementcequiaétémodéliséetune influencedanslemontageréel,oubliéedanslasimulation,peutrendrelesrésultatsdessimulations trèsdifférentsdelaréalité.Ainsi,danslesmodélisationsdecechapitre,onnemodélisepaslapré-

1.1Unexempleillustratif:connexiondirected’uninterrupteur 33 1.2Connexiond’uninterrupteurviaunelignedifférentielle 41 1.3Théoriesuccinctedeslignesdetransmission 42 1.4Lignesansperte 44 1.5Ligneavecperte 45 1.6Simulations Spice d’unelignesansperte ..................................... 46

1.1.Unexempleillustratif:connexiondirected’uninterrupteur

senced’élémentsperturbateurs,telsqueautreslignes,moteurs,…Ilfautconsidérerlesrésultatsdes simulationsdecechapitrecommeétantillustratifsd’unaspectparticulierdeslignesdetransmission.

LescodesSpicesontdisponiblesdanslerépertoire chapitre-lignes-de-transmission dusite GitHub https://github.com/pierremolinaro/codes-can

1.1Unexempleillustratif:connexiondirected’uninterrupteur

Considéronscettesituation,illustréeparla figure1.1 :d’uncôté,nousdisposonsd’unmicrocontrôleuretdel’autre,uninterrupteurdistantdeplusieursmètres.Commentréalisercetteconnexion?

Figure1.1– Commentconnecteruninterrupteuràunmicrocontrôleur?

1.1.1Connexiondirecte

Figure1.2– Connexiondirected’uninterrupteuràunmicrocontrôleur

Uneréponseélémentaireestderéaliseruneconnexiondirecte(figure1.2):unedesbornesdel’interrupteurestreliéeàlaréférencedetension 0V etl’autreàl’entréedumicrocontrôleur,programmée avecsarésistancedetirageverslehaut1 (pullup ).Lavaleurde Rpullup esttypiquementde50kΩ

1 C’est-à-diredanslemode INPUT_PULLUP enArduino.

33
Vcc 0V Entrée
Plusieursmètres
0V Entrée
Vcc
Plusieursmètres Rpullup

Danscelivre,onutilise 0V pourdésignerlatensionderéférenced’uncircuit,àpartirdelaquelletoutes lesautrestensionsducircuitsontcomptées.Letermeanglais ground (GND)esttropimprécis,ilincite àconfondrele 0V d’uncircuitaveclaterre.

Malheureusement,ledispositifdela figure1.2 n’estpasviableetcepourplusieursraisons:

• ladistancedeplusieursmètresrendlalignesensibleauxperturbationsélectromagnétiques;

• cetteligneprésentedeséchos,carellen’estpaséquilibrée.

Perturbationsélectromagnétiques. Unelignesecomportecommeuneantennequicaptelesrayonnementsélectromagnétiques.Laproximitéd’équipementsélectriquesmalisoléspeutengendrerdes perturbationsélectromagnétiquesprovoquéesparleursrayonnements.D’autrepart,unéquipement intérieurbaignedanslerayonnement50Hzdusecteur:ilsuffitd’observeràl’oscilloscopelesignal engendréparunfildeplusieursmètresdontl’extrémitén’estpasconnectée.

Échos. Considéronslesextrémitésdufilvéhiculantlesignal:côtéinterrupteur,laterminaisonest soituneimpédanceinfinie(interupteurouvert),soituneimpédancenulle(interrupteurfermé).Côté microcontrôleur,laterminaisonestlarésistance Rpullup ,combinéeàlalacapacitédel’entréedumicrocontrôleur.Quandonmanœuvrel’interrupteur,lesignalsepropageàunevitessefinie(0,2m/ns esttypique,c’estunefractiondelavitessedelalumière).Lorsquelesignalparvientaumicrocontrôleur,unefractionestréfléchieversl’interrupteuretlorsquecettefractionparvientàl’interrupteur, unefractiondecettefractionestrenvoyéeverslemicrocontrôleuretainsidesuite.Cepointestmis enévidencedanslasectionsuivanteparunesimulation Spice.

Uneconnexiondirecteestdoncparfaitementviablelorsqueladistanceentrel’interrupteuretlemicrocontrôleurn’excèdepasquelquesdizainesdecentimètres,maiscertainementpasquelquesmètres. Touteslesperturbationsrendentledispositifdela figure1.2 nonviable.Commentfaire?Ilyaplusieurs voiespossibles:

• diminuerlarésistancedetirage;

• blinderlecâble;

• adopterunelignedifférentielle.

Diminuerlarésistancedetirage. Endiminuantlarésistancedetirage,onaugmentel’immunitéauxbruits.D’ailleurs,certainsmicrocontrôleurspermettentdesélectionnerunevaleurparmiplusieurspossibles.Aubesoin,utiliserunerésistanceexterneaumicrocontrôleur.L’inconvénientestque laconsommationdecourants’entrouveaugmentée.

Blinderlecâble. Ondiminueainsil’influencedesperturbationsélectromagnétiques,cependantpersisteleproblèmedel’écho.

Adopterunelignedifférentielle. Unelignedifférentielleconsisteàvéhiculerunsignaletsoncomplémentaire.Transportésdansdesconducteursadjacentsd’unenappeoumieuxdansunepairetorsadée,lesdeuxsignauxprésententunebienmeilleureimmunitéauxbruits,c’estdeloinlameilleure solution.Unepremièreapprocheestd’abordprésentéeàla section1.1.5page40 etla section1.2page 41 enmontreladispositionàadopteretcitedescomposantsquipermettentdelaréaliser.

34 Chapitre1.Lignesdetransmission

Onpeutsedemanderquelleestl’alluredessignauxàlafermetureetàl’ouverturedel’interrupteur danslecasd’uneconnexiondirecte.Unesolutionsimpleestd’effectuerunesimulationdumontage parlelogiciel Spice,quiestdédiéàlasimulationdescircuitsélectroniques.L’annexeAàpartirdela page343 présentelelangagededescriptionetlamiseenœuvred’unesimulation.Notamment, Spice contientdesmodèlesdelignesdetransmission(sectionA.5page346 et sectionA.6page347).

Onvadoncprocéderàlasimulationdel’ouvertureetdelafermeturedel’interrupteurconnectéà l’entréedumicrocontrôleurparunelignede1m.Attention,unesimulationn’estpaslaréalité.Sila simulationnedonnepaslesrésultatsescomptés,soitilyauneerreurdanssadescription,soitle montagequel’onsimulen’estpasviable.Silasimulationdonnelesrésultatsescomptés,unphénomènenonmodélisépeutprovoqueruncomportementtrèsdifférentdumontageréel;parexemple, sil’onplacelalignede1mprèsd’unmoteurquiengendredesperturbationsélectromagnétiques, celles-cin’étantpasmodéliséesdanslasimulation,lemontageréelpourraavoiruncomportement différent.Enrésumé,unesimulationpermetdemettreenévidenceuncertaincomportementidéal, maisneremplacejamaisuneexpérimentationdumontageréel.

Leschéma Spice delasimulationdel’ouvertureetdelafermeturedel’interrupteurconnectéàl’entréedumicrocontrôleurparunelignede1m(figure1.2page33)estdonnéàla figure1.3.Ilapourbut demettreenévidencel’influencedelalignede1m,enexcluanttouteautreperturbation.

Plusieurscommentairessurleschémadela figure1.3 :

• lesnœudssontindiquésparunnombredoublemententouré;lenœud 0 estlaréférenceimplicitedetouteslestensionsducircuit;

• l’interrupteurestcommandéentension(sectionA.7page347)parunesourcedetensionimpulsionnelle(sectionA.4page346);

• lalignedetransmission T1 estmodéliséeparunelignesansperte(sectionA.5page346)etdont unethéoriesuccincteestprésentéeàla section1.4page44 ;sesparamètressont:impédance caractéristique Z0 =120 Ω etduréedepropagationdanslalignede1mégaleà TD =5ns;ces valeurssonttypiquesd’unbusCAN;

• l’entréedumicrocontrôleurestmodéliséeparunesourcedetensionde5Vensérieavecune résistancede50kΩ,pourreprésenteruneentréeprogramméeavecsarésistancedetirageinterne;

• latensionquinousintéresseest v2 ,tensiondel’entréedumicrocontrôleur.

1.1.Unexempleillustratif:connexiondirected’uninterrupteur 35 1.1.2SimulationSpiced’uneconnexiondirecte
Interrupteur Sourcedetension impulsionnelle VDD +5V Rpullup 50kΩ l =1m Z0=120 Ω TD=5ns T1 Lignedetransmission 0 1 0 2 4 0 3 v2 Entréedumicrocontrôleur
Figure1.3– SchémaSpicefermetureetouvertured’uninterrupteur

LescodesSpicedessimulationssontdonnésparla figure1.4.Ilfautécrireuncodepoursimulerla fermeturedel’interrupteuretunautrepoursimulersonouverture:laseuledifférenceentrelesdeux codesrésidedansladéfinitionde VCC,ligne6.

1Fermetureinterrupteursurlignesansperte 2

3.MODELinterSW(RON=1mROFF=10MEGVT=2.5VH=.5) 4SW10130inter

5T11020Z0=120TD=5n

6VCC30PULSE(0501n1n500m)

7VDD40DC5

8Rpullup2450k

9

10.control

11tran10n1u01n

12plotv(2)

13.endc

14.end

fermeture-sur-ligne-sans-perte-ouverte.cir

(a) CodeSpicefermetureinterrupteur

1Ouvertureinterrupteursurlignesansperte 2

3.MODELinterSW(RON=1mROFF=10MEGVT=2.5VH=.5)

4SW10130inter

5T11020Z0=120TD=5n

6VCC30PULSE(5001n1n500m)

7VDD40DC5

8Rpullup2450k

9

10.control

11tran10n1u01n

12plotv(2)

13.endc

14.end

ouverture-sur-ligne-sans-perte-ouverte.cir

(b) CodeSpiceouvertureinterrupteur

Quelquesremarquessurcesdeuxcodes:

• lapremièreligneestuncommentairelibre;

• enSpice,onnepeutpasattribuerunerésistancenulleàuninterrupteurfermé,niunerésistance infinieàuninterrupteurouvert;lesvaleurschoisies(ligne3)sontunerésistancede1mΩ lorsqu’ilestferméet10MΩ lorsqu’ilestouvert;

• l’interrupteursimulénesefermenis’ouvreinstantanément;cesontlestempsdemontéeetde

36 Chapitre1.Lignesdetransmission
Figure1.4– Codedelasimulationdelafermetureetdel’ouvertured’uninterrupteur

descentedelasourcedetensionimpulsionnelle(ligne6)quidéterminentcesdurées;

• laduréedelasimulationestchoisieégaleà1µs(ligne11).

Examinonsmaintenantlerésultatdecessimulations(figure1.5).

Àlafermeture,desoscillationsfaiblementamortiesapparaissentsurl’entréedumicrocontrôleur. Celles-cisontdirectementprovoquéesparleséchosàchaqueextrémitédelalignedetransmission.

L’amortissementn’estréaliséqueparlesrésistances,orlaseuledanscettesimulationest Rpullup , devaleur50kΩ.Cettefortevaleurexpliquelefaibleamortissementdessimulations.Ànoterqu’elles sontcentréessurzéro.Cerésultatestjusteunesimulation,nepasimaginerquecelareflètelecomportementréel.Ainsi,latensionnepeutatteindredetellesvaleurspositivesetnégatives,l’entréedu microcontrôleurintègredeuxdiodesde clamping,quilimitelesexcursionsendehorsdel’intervalledes tensionsdel’alimentation:lapriseencomptedecesdiodesdanslasimulationestprésentéeàla sectionsuivante.

Àl’ouverture,lalignedetransmissionprovoqueunemontéelentesansoscillation:auboutd’1µs, latensionsimuléeatteint1,90V.

Figure1.5– Résultatsdelasimulationdelafermetureetdel’ouvertured’uninterrupteur 1.1.3SimulationSpicedelafermeture,avecdiodesdeclamping

La figure1.5.a amisenévidencedesoscillationsd’amplitudesimportantesàlafermeturedel’interrupteur.Uneentréeréelled’unmicrocontrôleurintègredeuxdiodesde clamping,dontlebutestde limiterl’excursiondelatensiond’entrée.Aussiprendreencomptecesdiodespermetd’obteniruncomportementplusréaliste.Àl’ouverturedel’interrupteur(figure1.5.b),latensionsimuléeestpositiveet resteinférieureà5V,aussiprendreencomptecesdiodesde clamping n’apporterien.

1.1.Unexempleillustratif:connexiondirected’uninterrupteur 37
t 0 0 v2 5V 1µs
Tension v2 ,fermeturedel’interrupteur 1,90V t 0 0 v2 5V 1µs (b) Tension v2 ,ouverturedel’interrupteur
(a)

La figure1.6 montrelenouveauschéma,quicontientlesdeuxdiodesD1etD2.

Poursimulerlesdiodesde clamping,nousavonschoisidesdiodes 1N4148,dontlemodèleapparaît àlaligne4dulistingdela figure1.7.Lesdiodes D1 et D2 sontdéfiniesauxlignes10et11.

1Fermetureinterrupteursurlignesansperteavecdiodesclamping 2

3.MODELinterSW(RON=1mROFF=10MEGVT=2.5VH=.5)

4.MODELD1N4148D(IS=0.1PA,RS=16CJO=2PFTT=12NBV=100IBV=0.1PA)

5T10102Z0=120TD=5n

6SW10130inter

7VCC30PULSE(0501n1n500m)

8VDD40DC5

9Rpullup2450k

10D124D1N4148

11D202D1N4148

12

13.control

14tran10n1u01n

15plotv(2)

16.endc

17.end

fermeture-sur-ligne-sans-perte-ouverte-avec-diodes.cir

Figure1.7– CodeSpicedelasimulationdelafermetured’uninterrupteur,avecdesdiodesdeclamping

Latension v2 résultatdelasimulation(figure1.8)présentetoujoursdesoscillations,maisfortement atténuéesparlaprésencedesdiodes.Eneffet,unefoislatensiondeseuilatteinte,larésistanced’une diodeesttrèsfaible(quelquesohms),cequiamortitfortementlesoscillations.Maislorsquel’onest endeçadecettetensiondeseuil,larésistancedevientforteetlesoscillationssontpeuamorties.

38 Chapitre1.Lignesdetransmission Interrupteur Sourcedetension impulsionnelle VDD +VDD=5V Rpullup Rpullup=50kΩ l =1m Z0=120 Ω TD=5ns T1 Lignedetransmission D1 D2 0 1 0 2 4 0 3 v2 Entréedumicrocontrôleur
Figure1.6– SchémaSpicefermetureetouvertured’uninterrupteur,avecdiodesde clamping

1.1.4SimulationSpice,diminutiondeRpullup

Nousallonsmaintenantillustrerl’influencedediminutiondelavaleurdelarésistanceRpullup :alors qu’elleétaitde50kΩ àlaligne8dela figure1.4,onlafixemaintenantà5kΩ.Pourmieuxmettreen évidencelebénéficedecettediminution,lesdiodesde clamping sontretirées.Lescodesmodifiéssont surledépôtdéjàcité,danslesfichiers fermeture-sur-ligne-sans-perte-ouverte-5k.cir et ouverture-sur-ligne-sans-perte-ouverte-5k.cir.

(a) Tension v2 ,fermetureinterrupteur

Figure1.9– Résultatsdelasimulationdelafermetureetdel’ouvertured’uninterrupteur,Rpullup =5kΩ

Onobtientainsilescourbesreprésentéesàla figure1.9,àcompareraveclescourbesdela figure 1.5.Onyremarqueunmeilleuramortissementdesoscillationslorsdelafermetureetunemontéeplus rapidelorsdel’ouverture,latension v2 atteignant4,96Vauboutde1µs.DiminuerRpullup aamélioré lesréponses.Maisilyabeaucoupmieux,c’estajouterunerésistanceensérieavecl’interrupteur,c’est cequel’onvavoirdanslasectionsuivante.

1.1.Unexempleillustratif:connexiondirected’uninterrupteur 39 t 0 0 v2 5V 1µs
Figure1.8– Simulationdelafermetured’uninterrupteur,priseencomptedesdiodesdeclamping
t 0 0 v2 5V 1µs
4,96V t 0 0 v2 5V 1µs (b) Tension v2 ,ouvertureinterrupteur

1.1.5SimulationSpiced’uneconnexiondirecte,avecunerésistanceensérie

Oninsèreunerésistancequel’onnomme R1 ensérieavecl’interrupteur.Ilestimportantdelaplacer leplusprèspossibledecelui-ci.LeschémaSpicedumontagemodifiéestdonnéàla figure1.10.On gardelavaleurde5kΩ pourRpullup ,afind’obtenirunemontéeplusrapideàl’ouverture.Pourmieux observerl’influencede R1 ,onneplacepaslesdiodesde clamping.Ilexisteunevaleur«magique»à donnerà R1 :celledel’impédancecaractéristique Z0 delalignedetransmission,ici120 Ω,cequisera justifiéàla section1.3page42.LescodesSpicesontprésentésdansles figure1.11 et figure1.12.

1Fermeturesurlignesansperte,termineeparRC 2

3.MODELinterSW(RON=1mROFF=10MEGVT=2.5VH=.5)

4R115120

5T10502Z0=120TD=5n

6SW10130inter

7VCC30PULSE(0501n1n500m)

8VDD40DC5

9Rpullup245k

10

11.control

12tran10n1u01n

13plotv(2)

14.endc

15.end

fermeture-sur-ligne-sans-perte-rc.cir

Figure1.11– CodeSpicedelasimulationdelafermetured’uninterrupteurensérieavec Rc

Maintenant,examinonslerésultatdessimulationsdansla figure1.13.L’améliorationdelaréponse lorsdelafermeturedel’interrupteurestspectaculaire:lesoscillationsontdisparu.Ilresteunetension résiduelle,provoquéeparlepontdiviseurdetensionentre R1 etRpullup

,

réponseàl’ouvertureestlamêmequecelledela figure1.9.Onremarqueraquelestensionsrestent dansl’intervalledestensionsd’alimentation(saufuneexcursionà-0,17Vàlafermeture),aussiajouter desdiodesde clamping nechangeraitlesrésultatsdelasimulation.

Cesrésultatsdesimulationsontàprendreavecprécaution.Eneffet,celle-cinetientcompteque del’effetdelalignedetransmissionetpasdesparasitesélectromagnétiquesquipourraientexister danslecircuitréel.Deplus,enexaminantleschémadela figure1.10,onvoitquel’undesfilsdela

40 Chapitre1.Lignesdetransmission
R1 VDD +VDD=5V Rpullup 5kΩ l =1m Z0=120 Ω TD=5ns T1 0 0 0 5 2 4 3 1 v2
Figure1.10– SchémaSpicedelasimulationfermetureetouvertured’uninterrupteurensérieavec Rc
: 120 Ω 120 Ω +5 kΩ × 5 V =0
12 V.La

ouverture-sur-ligne-sans-perte-rc.cir

lignedetransmissionestlamasseetl’onn’apastenucomptedescourantsquipourraientycirculer. Sil’ondoitcâblerplusieursinterrupteurs,ilnefautpasutiliserunfilcommun,maisassocieruneligne différentiellepropreàchaqueinterrupteur.Ceciestprésentédanslasectionsuivante.

1.2Connexiond’uninterrupteurviaunelignedifférentielle

Unelignedifférentielleconsisteàvéhiculerunsignaletsoncomplémentaire.Transportésdansdes conducteursadjacentsd’unenappeoumieuxdansunepairetorsadée,lesdeuxsignauxprésentent unebienmeilleureimmunitéauxbruits,c’estdeloinlameilleuresolution.Unelignedifférentiellepeut êtrefacilementréaliséeenseservantdecomposantsdédiésaubusRS4222 ,telsqueparexemplele

2 TexasInstruments, RS-422andRS-485StandardsOverviewandSystemConfigurations,ApplicationReport,SLLA070D–June 2002–RevisedMay2010,SLLS112C, http://www.ti.com/lit/an/slla070d/slla070d.pdf

1.2.Connexiond’uninterrupteurviaunelignedifférentielle 41
2
5T10502Z0=120TD=5n
8VDD40DC5 9Rpullup245k 10 11.control 12tran10n1u01n 13plotv(2) 14.endc 15.end
1Ouverturesurlignesansperte,termineeparRC
3.MODELinterSW(RON=1mROFF=10MEGVT=2.5VH=.5) 4R115120
6SW10130inter 7VCC30PULSE(5001n1n500m)
Figure1.12– CodeSpicedelasimulationdel’ouvertured’uninterrupteurensérieavec Rc
t 0 0 v2 5V 1µs (a) Tension v2 ,fermeturedel’interrupteur 4,96V t 0 0 v2 5V 1µs (b) Tension v2 ,ouverturedel’interrupteur
Figure1.13– Simulationfermetureetouvertured’uninterrupteurensérieavec Rc

UA96383 (doubleémetteur)etle UA9637A4 (doublerécepteur).Onobtientleschémadela figure1.14 4,7kΩ

Le UA9638 ayantuneentréesansrésistanceintégréedetirage,ilfautunerésistanceexterne(icide 4,7kΩ)pourimposerunniveauhautlorsquel’interrupteurestouvert.Pourunebonneimmunitéaux bruits,unelignedifférentielledoitêtreterminéeparunerésistancedite résistancedeterminaison,ici

ZT .Idéalement,celle-cidoitavoirpourvaleurla résistancecaractéristiquedelalignedetransmission (voirla section1.3page42),c’est-à-direleplussouventunevaleurcompriseentre100 Ω et120 Ω

Attention,le UA9637A requiertunealimentationde+5V,ilfautqueleportd’entréedumicrocontrôleurauquelilestconnectéacceptecettetension:

• soitlemicrocontrôleurestaussialimentésous+5V;

• soitleportd’entréetolèreunetensionde+5V;

• sinon,ilfautdiminuerlatensionparunpontdiviseuràdeuxrésistances.

L’UA9638 requiertaussiunealimentationde+5V.Ilnefautpasutiliserl’alimentationdel’UA9637A : unelignedeplusieursmètresdélivreunetensionbruitéeimpropreàuneutilisationdirecte.Lasolution estdetransmettreunealimentiondetensionsupérieure(parexemple+9V)etdefabriquer,justeà côtédel’UA9638 unetensionde+5Vgrâceàunrégulateurdetensionintégrételquele LM7805

Onaboutitdoncfinalementàla figure1.15.Lepontdiviseuràlasortiedel’UA9637A garantitquela tensionprésentesurleportd’entréedumicrocontrôleurnedépasserapas 18 kΩ 12 kΩ +18 kΩ × 5 V =3 V, tensioninférieureàlatensiond’alimentation,maislargementsuffisantepourunniveauhaut.

1.3Théoriesuccinctedeslignesdetransmission

Unelignedetransmissiondelongueur l estreprésentéeàla figure1.16.Oninjecteàl’entréeune tension vE ,onobserveàlasortielatension vS .Lamodélisationclassiqued’unelignedetransmission nécessitequatreparamètres:

• R,résistancelinéiquedesconducteurs(en Ω/m),

3 TexasInstruments, uA9638C,DualHigh-SpeedDifferentialLineDriver, https://www.ti.com/lit/ds/symlink/ua9638.pdf

4 TexasInstruments, uA9637AC,DualDifferentialLineReceiver,SLLS111B, https://www.ti.com/lit/ds/symlink/ua9637a. pdf

42 Chapitre1.Lignesdetransmission
Entréeacceptant+5V
+5V +5V
T
Vcc 0V
Plusieursmètres
Z
UA9638 UA9637A Figure1.14– Connexionparlignedifférentielled’uninterrupteuràunmicrocontrôleur

• L,inductancelinéique(en H/m),

• C ,capacitélinéique(en F/m),

• et G,conductancelinéique(en S/m)5 ,quimodélisel’isolationentrelesconducteurs.

Voicilesvaleurstypiquesd’uncâbleutilisépourunbusCAN: R =70mΩ/m, L =0,6µH/m, G =0 (isolationparfaiteentrelesconducteurs)et C =41,7pF/m.

Unelignedelongueur l estdécoupéeensegmentsdelongueur dx (figure1.17)quidéfinissentdes quadripôlesélémentaires.

Leséquationsdifférentiellesquirégissentlequadripôleélémentairesont6 :

5 L’unitédeconductanceestle Siemens,quiestl’inversedel’Ohm:1S=1 Ω 1

6 Ceséquationssontconnuessouslenom équationsdestélégraphistes ;ontrouverasurleWebunedocumentationabondante surcesujet.

1.3.Théoriesuccinctedeslignesdetransmission 43 +3,3V 0V Entrée 12kΩ 18kΩ Plusieursmètres +5V ZT UA9638 UA9637A +9V LM7805 4,7kΩ
l vE iE vS iS
Figure1.15– Connexionparlignedifférentielled’uninterrupteuràunmicrocontrôleur,schémacomplet Figure1.16– Lignedetransmissiondelongueur l
l vE iE vS iS Rdx Ldx Cdx 1 Gdx v i v + dv i + di dx
Figure1.17– Décompositiond’unelignedetransmission
∂ v ∂ x = Ri L ∂ i ∂ t et ∂ i ∂ x = C ∂ v ∂ t Gv

Malheureusementdanslecasgénéral,onnepeutpasrésoudreceséquations.Certainscasparticuliers,commeune lignesansperte (section1.4),permettentd’obtenirdesrésultatssupplémentaires.

1.4Lignesansperte

Sionconsidèrequelarésistance R etlaconductance G sontnulles,lalignedetransmissionest sans perte 7 .C’estuneapproximationraisonnablesilarésistancedelaligneestfaibledevantla résistance caractéristique Rc quel’onvamettreenévidence.Larésistanceentrelesconducteurs(l’isolation)est bienplusimportanteque Rc ,aussiconsidérer G nulleestunebonneapproximation.

Vitessedepropagation. Onmontrequelevitessedepropagationd’unsignalest v =1/ √LC Pourlesvaleurs L =0,6µH/met C =41,7pF/m,onobtient v =0,2m/ns.C’estévidemmentpluslent quelavitessedelalumière8

Remarquezquelavitessedepropagationnedépendpasdelafréquencedessignaux.Imaginezalors latransmissiond’unsignalnonsinusoïdal:ilsedécomposeenunesommedesignauxsinusoïdauxde différentesfréquences.Commeilssepropagenttousàlemêmevitesse,laformedusignaln’estpas altéréedurantlatransmission.

Délailinéiquedepropagation. Ledélailinéiquedepropagationd’uneligneest τ =1/ v .Pourles valeurs L =0,6µH/met C =41,7pF/m,onobtient τ =5ns/m.

Résistancecaractéristique Rc . Unelignedetransmissionsansperteestcaractériséeparsa résistancecaractéristique Rc : R

Pourlesvaleurs L =0,6µH/met C =41,7pF/m,onobtient Rc =120 Ω.

Paramètrescaractérisantunelignesansperte. Onamisenévidenceplusieursparamètresd’une lignesansperte:

• soninductancelinéique L ;

• sacapacitélinéique C ;

• sarésistancecaractéristique Rc ;

• savitessedepropagation v ,ousoninverse,ledélailinéiquedepropagation τ

Cesparamètresnesontpasindépendants,ilsuffitd’enconnaîtredeuxpourendéduirelesautres. C’estcel’onfaitpouruncâbledontseulscertainsparamètressontfournis.C’estpourquoilemodèle Spice LLTRA d’unelignesanspertedemandelaconnaissancede Z0,l’impédancecaractéristiqueet TD, ledélaidepropagationdanslaligne.Pourlasimulation,lalongueur l delignen’apasàêtreconnue, c’estleproduit l τ quiestutile.

Lignedelongueurinfinie. Commelaligneestdelongueurinfinie,iln’yapasd’extrémité,doncpas

7 « sansperte »signifieaucunepertedepuissance:toutelapuissanceélectriqueinjectéeàl’entréedelaligneestrécupéréeàsa sortie.Dansuncircuitpassif,enrégimepermanent,inductanceetcondensateurn’engendrentaucunepertedepuissance,seules lesrésistancesprovoquentunepertedepuissance.

8 c =299792458m/s ≈ 0,3m/ns.

44 Chapitre1.Lignesdetransmission
= L C
c

d’onderéfléchie.Onmontrequ’unelignedelongueurinfiniesecomportecommeunerésistancede valeur Rc (figure1.18). v

estéquivalentà

Lignedelongueur l terminéepar Rc . Considéronslalignedelongueurinfinie:elleneprésentepas d’onderéfléchie.Onpeutladécomposerenunsegmentdelongueur l ,suivid’unelignedelongueur infinie(figure1.19).Onremplacealorscettelignedelongueurinfinieparsarésistanceéquivalente Rc

Conclusion:unelignedelongueurfinieterminéeparsarésistancecaractéristiqueneprésentepas d’onderéfléchie.

C’estunrésultatfondamentalquiexpliquepourquoiilfauttoujourseffectueruneterminaisonadéquatedeslignesdetransmission.

estéquivalentà

Figure1.19–

1.5Ligneavecperte

Rc

Pouruneligneavecperte,lespropriétésénoncéesdanslasectionprécédentenesontplusvraies; enparticulier,lavitessedepropagationdépenddelafréquencedessignaux:laformedessignaux nonsinusoïdauxestdoncaltérée.CepointestimportantcarlessignauxvéhiculésparunbusCAN peuventprésenterdesfrontsabrupts,quisontdoncdégradéslelongducâble.Si G =0estunebonne approximationd’uneligneréelle,considérerquelarésistancelinéiqueestnullen’estvalidequesi,en fonctiondelalongueurdubus,larésistancequ’elleimposeestfaibledevantlesautresrésistances.

1.5.Ligneavecperte 45
E iE
vE iE Rc
Figure1.18– Lignesanspertedelongueurinfinie
∞ vE iE
l ∞ vE iE
l vE iE Rc
estéquivalentà
Lignesanspertedelongueurfinie,terminéepar

1.6Simulations Spice d’unelignesansperte

LemodèleSpiced’unelignesansperteestnommé LLTRA etestprésentéàla

sectionA.5page346

1.6.1Lignesansperteouverte

1Lignesansperteouverte

2

3T10102Z0=120TD=50n

4VCC10PULSE(050m1n1u500m)

5 6.control

7tran10n1u01n 8plotv(2)

9.endc

10.end

ligne-sans-perte-ouverte.cir

(c) CodeSpice

1µs

(d) Tension v2 enfonctiondutemps

La figure1.20 montrecommentdécrireen Spice unelignesansperteouverteetdonnelaformede latension v2 obtenueàsonextrémité.Pourl’analysestatique,latension VCC estnulle,ainsiquela tension v2 .Àl’instantt=1ns, v1 effectueunerampede0Và5Ven1ns,puisresteà5Vjusqu’àla findelasimulation.

Àl’extrémitédelaligne,latension v2 obtenueconsisteendesoscillationsentreenviron0Vet10V. Legraphes’arrêteàt=1µs,onpourraitallerplusloin,onobtendraitlesmêmescourbes,lesoscillationsnesontpasamorties.Pourquoicesoscillationsnesontpasamorties?Seulelaprésencede résistancesdanslecircuitpeutamortirlesoscillations,or,danscettesimulation,l’impédancedugénérateurdetensionestnulle,laligneestsansperte.Évidemment,ilnefautdoncpasprendrececomportementcommeétantfidèleàlaréalité.Biensûr,celle-ciestautre,legénérateuraunerésistance internenonnulle,laligneprésentedespertes,lerécepteuràl’extrémitédelaligneaunerésistance noninfinie:lesoscillationsserontamortiesdansuncircuitréel.

46 Chapitre1.Lignesdetransmission
=10m v1 v2
Schéma VCC 0 1 0 2 Z0=120 Ω TD=50ns T1 (b) SchémaSpice
L =0,6µH/m, C =41,7pF/m, l
(a)
t 0 0 v2 5V 10V
Figure1.20– SimulationSpiced’unelignesansperteouverte

1.6.2Lignesansperteterminéepar RC

Maintenant,nousajoutonsàl’extrémitédelaligneunerésistance R1 de120 Ω,c’est-à-direexactementlavaleurdel’impédancecaractéristiquedelaligne(figure1.21).La figure1.21.d montreun signalpropre,exemptd’oscillation,quin’aabsolumentrienàvoiraveclesignaldela figure1.20.d C’estévidemmentuncasidéal,oùlarésistancedeterminaisonestexactementégaleàl’impédance caractéristiquedelaligne.

L =0,6µH/m, C =41,7pF/m, l =10m

(a) Schéma

1LignesansperteterminéeparRC

2

3T10102Z0=120TD=50n

4VCC10PULSE(050m1n1u500m)

5R102120

6

7.control

8tran10n1u01n

9plotv(2)

10.endc

11.end

ligne-sans-perte-terminee-par-rc.cir

(b) SchémaSpice

1.6.3Lignesansperteterminéeparunevaleurdifférentede RC

Onpeutmaintenantsedemandercequ’iladvientsilarésistancedeterminaisonn’estpaségale àl’impédancecaractéristiquedelaligne.Parrapportaucodedela figure1.21.c,ilsuffitdechanger lavaleurassociéeà R1.La figure1.22 montrelescourbesobtenuespourlamoitiéetledoublede l’impédancecaractéristiquedelaligne.

Silarésistancedeterminaisonestinférieureà Rc ,onobserveunemontéepluslenteetl’absence dedépassementetd’oscillation.Sielleestsupérieure,ilyadépassementsetoscillations.

1.6.Simulations Spice d’unelignesansperte 47
R1 v1 v2
120 Ω VCC ± 0 1 0 2 Z0=120 Ω TD=50ns T1
t 0 0 v2 5V 1µs
(c) CodeSpice
(d) Tension v2 enfonctiondutemps
Figure1.21– SimulationSpiced’unelignesansperteterminéepar RC

Figure1.22– SimulationSpiced’unelignesansperteterminéeparunerésistancedifférentede RC

48 Chapitre1.Lignesdetransmission t 0 0 v2 5V 1µs (a) Terminéepar60 Ω,soit RC /2 t 0 0 v2 5V 1µs (b) Terminéepar240 Ω,soit 2 RC

Index -1à7-

0V, 34

1N4148, 63

6N137, 87 -A-

ACAN, 216, 300

ACAN_T4, 252, 317

ACKDELIMITER, 137

ACKSLOT, 137

AFNOR, 54

API, 281

ARBITRATION, 132

ArbitrationBitRate, 234

Arduino, 53, 213, 304

Bibliothèque, 281

ArduinoUno, 276

ATSAME51, 277

AWG, 100 -B-

BAT43, 63

BRS, 225, 306

BusCAN, 49

BusEthernet, 51

Buslibre, 192

BUSOFF, 158, 192

BusUSB, 51

bxCAN, 197 -C-

CAN

HS(HighSpeed), 66

LS(LowSpeed), 66, 92

CANFDISO,non-ISO, 222, 306

CANFDLight, 53, 340

CANXL, 53, 225, 237, 262, 341

CANH,CANL, 68, 77

CANMessage, 285

CANopen, 55, 286

CiA, 28, 54

601-3, 247, 254

601-4, 273

106, 105, 110

802, 129, 286

ClassicCAN, 221

Collecteurouvert, 59

CONTROL, 132

Contrôledepente, 85

Cordon, 100

CRC, 135

CRCDEL, 306

CRC15CAN, 136, 227, 380

CRC17CANFD, 227, 380

CRC21CANFD, 227, 381

Câble, 100 -D-

DataBitRate, 234

Diodetransil, 84

DistancedeHamming, 136, 372

DLC, 226

Dualbitrate, 222

Débit

d’arbitrage, 234 desdonnées, 234

Débitutile

CAN, 150

CANFD, 243 -E-

EOF, 138

Erreurenrafale, 155, 375

ERRORACTIVE, 158

ERRORPASSIVE, 158

ESI, 225, 307

ESP32, 65, 196, 300

Ethernet, 51, 341

Ethernetcommuté, 52

ExceptionauprotocoleCANFD, 225

-F-

FDF, 223

FireWire, 110

FlexCAN, 192, 198

FSB, 229

Gigue, 216

GND, 34

HI-311x, 196

Hi-Z, 59

i82526, 194

i82527, 194

IA82527, 195

IDC, 104

IDLE, 138

IEEE1394, 110

-G-

-H-

-I-

Insertiondebit, 152

INTERMISSION, 138

Inversiondebit, 152

IPS, 138

ISO

11898-2, 66

11898-3, 66

15765-4, 179, 233

11898, 54

ISO1042-Q1, 87

ISO1050, 87

Isolationgalvanique, 86

-L-

LIN, 341

LLTRA, 44, 46, 346

Logic2, 298

LongueurmaximumbusCAN, 90

Loopback, 190

LPC2294, 211

LTRA, 347

M_CAN, 277

MacSpice, 343

MCP2510, 195

MCP2515, 196

-M-

MCP2542FD/4FD, 271

MCP2542WFD/4WFD, 271

MCP2557FD/8FD, 271

MCP2561FD/62FD, 271

MCP2562, 196, 237, 324

MCP25625, 196

MCP2562FD, 237

Messagerie, 287

Mini-SPOX, 105

Modederepos, 85

MS/s, 297

Niveauhaut, 294

-N-

NUCLEO, 197

F303K8, 284

G474RE, 255

L432KC, 284

-P-

PartieParMillion(PPM), 205, 261

Passerelle, 91

PCA82C200, 195

PIC18, 52

PIC18F26K80, 211

Pilote, 281

PIO, 199

REC, 157

Représentation

-R-

KOOPMAN, 369

NORMAL, 368, 369

POLYNÔME, 369

Resynchronisation, 141

RJ, 106

RP2040, 199

RTR, 132

Répéteur, 91

RéseauCAN, 49

Résistancecaractéristiqued’uneligne, 44

-S-

SAE81C90, 195

Saleae, 298

SIC, 273

SJA1000, 195

SJW

EttolérancehorlogeCAN, 189

SN7407, 83

SOF, 132

Spice

Condensateur, 344

Inductance, 344

Résistance, 344

Index 387

Sourcetensionfixe, 345

SPOX, 105

SSP, 239

STM32G, 277

STM32H, 277

StubLength, 90

STUFFBITCOUNT, 229, 306

Suppressiondebit, 152

SUSPENDTRANSMISSION, 158, 302

Synchronisationforte, 141

SynchronizationSegment,SS, 181 -T-

TCAN1462-Q1, 275

TCAN4550-Q1, 277

TDC, 237

TDCE, 239, 257

TDCO, 239, 248

TEC, 157

Teensy3.2, 192, 198, 216

Teensy3.5, 192

Teensy3.6, 192, 311

Teensy4.0, 252

Teensy4.x, 316

Tempsdeboucle, 61

TIDA-01487, 121

Time-SensitiveNetworking, 52

TJA1462, 275

Transcepteur, 66

TranscepteurCANSIC, 91, 273

Tripleéchantillonnage, 235

TVS, 84

TWAI, 197 -U-

UA9637A, 42

UA9638, 42

USB, 51, 52 -X-

XIAOESP32S3, 322

388 Index

CAN et CAN FD

Tout sur les protocoles et leur mise en œuvre avec Arduino

Initialement destiné aux véhicules routiers, le réseau CAN (« Controller Area Network ») et son successeur le réseau CAN FD (« Flexible Data ») ont vu leurs champs d’application s’élargir à de nouveaux domaines. L’industrie propose de nombreux modules microcontrôleurs dotés d’une interface CAN et/ou CAN FD. L’environnement de développement Arduino a démocratisé la programmation de ces modules et il existe des bibliothèques qui implémentent un pilote CAN et/ou un pilote CAN FD.

La première partie dresse un rapide historique des réseaux CAN et CAN FD et expose la problématique des lignes de transmission en abordant succinctement leur théorie et présentant des résultats de simulation Spice.

La deuxième partie est consacrée au réseau CAN, en détaillant successivement la fonction logique du réseau, les transcepteurs, les contrôleurs, la topologie la plus classique (le bus) et d’autres moins courantes, les répéteurs et les passerelles. Les aspects particuliers du protocole, tels que le bit stuffing, l’arbitrage, les trames d’erreur, la détection des erreurs sont exposés. La discussion de la fiabilité du protocole est illustrée par des exemples mettant en évidence ses faiblesses.

La troisième partie présente le protocole CAN FD, ses deux variantes CAN FD ISO et CAN FD non ISO, leurs fiabilités, leurs faiblesses, mises en évidence par des exemples. Différents transcepteurs et contrôleurs CAN FD sont décrits.

La quatrième partie est dédiée aux applications : comment utiliser les services d’un pilote, concevoir une messagerie, utiliser un analyseur logique. Deux exemples d’application terminent cette partie.

Ce livre s’adresse aux amateurs et aux ingénieurs non spécialistes pour comprendre les possibilités qu’offre un réseau CAN et comment on le met en œuvre. Un enseignant trouvera des informations pour approfondir ses connaissances et pour concevoir des travaux pratiques. Une connaissance des microcontrôleurs, de leur programmation, de l’électronique numérique aidera à la lecture des schémas. La connaissance du langage C++ et du langage de simulation électronique Spice facilitera la compréhension des programmes qui sont décrits dans le livre. Tous les codes source sont disponibles sur le dépôt GitHub de l’auteur.

Centrale de Nantes

Maître de Conférences. Il y a enseigné les actionneurs électriques, l‘électronique, la compilation, les exécutifs Temps-Réel et les systèmes embarqués. Il est l‘auteur de plusieurs bibliothèques CAN / CAN FD pour Arduino, et co-auteur du livre « Traitement des composants et des circuits » aux éditions Ellipses.

Tous les programmes du livre sont disponibles gratuitement sur le site web d’Elektor. Rendez-vous sur : www.elektor.fr/books et entrez le titre du livre dans le champ de recherche.

éditeur : Publitronic SARL

diffusion : GEODIF

37,50 €

Elektor International Media

www.elektor.fr

Pierre Molinaro, maintenant retraité, a effectué toute sa carrière à l‘École comme
livresbooks

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.