3.7 KiB
Session 3 2024-03
bus can -> bus syst. série réduire nb cables
BUS CAN
conçu par BOSCH, fin des années 80
- temps maximal normalisé
- syst. d'erreur simple et efficace
-> contrôleurs CAN petits, peu couteux, entièrement intégrés, utilisable à débit important en tps réel et env difficile avec haut niveau de fiabilité -> origine automobile, étandu à tous les domaines
syst critique (High speed) ou low speed CAN -> prot. réseau intégré dans la norme ISO/OSI
Protocole CAN
(rappel : arbitrage non destructif, si collision réémission de la deuxième trame plus tard) => catégorie des réseaux de terrain
-> hiérarchie des msg, garantie du temps de latence, souplesse de config ->reception de multiples sources avec synchro temporelle -> fonctionnement multimaitre, detect° d'erreurs ->retransm. automatique des msg altérés -> distinction d'err. : d'ordre temporaire ou de non fonctionnalité permanent au niveau d'un noeud -> déconnexion des noeuds défectueux
Caractéristiques
bus série = paire différentielle avec CAN_H(igh) et CAN_L(ow), connecté sur des résist. 120ohms ou capa 30pF résistant aux perturbat° -> attention Can_H(igh) != can high speed résist. 120 ohm au bout pour éviter que le message reparte dans le can après avoir circulé si EMI (interference electromagn.)=> modif des msg dans H et L, calcul de la diff. de différentiel, et les deux seront modifiés de la même manière ex
CAN-H | 5 | 3 | 3 | 4.5 | 3 |
---|---|---|---|---|---|
CAN-L | 1 | 1.5 | 2 | 2.5 | 1 |
UDiff | 4 | 1.5 | 1 | 2 | 2 |
-> la différence reste constante contrairement à tension mesurée dans le fil |
ex : bit = 0 si Udiff < 3, 1 sinon
low-speed = vit de propag sur le bus = 125Kbits (permet cable plus long) high-speed = 1 Mbits
Principe de fctment
-> type wired-and : un bit dominant (0)(CANH > CANL) écrase un bit récessif (1)(CANH <= CANL) +> les identif. des noeuds avec la valeur la plus faible sont prioritaires
synchro d'horloge : bourrage de bit inversé (bit stuffing) le débit réel des infos ne tient pas compte de ces bits stuffing
si ajouter un bit de stuffing fait passer la séq. d'après à 5 bits conséc. => on ajoute encore un nouveau bit de stuffing => possibilité de propagation
types de trames :
- de données
- de requête (remote frame)
- de gestion d'erreur
- de surcharge (ex si un calc n'arrive pas à lire assez vite)
- espace entre frames
trame, fin = 7 bits à 1 + séparateur trames = 3 bits à 1 CAN sur les couches appli (prot spécifié par l'utilisateur) liaison et physique (prot CAN pour les deux couches)
Couche physique
couche MAC entre données et couche physique, elle donne la priorité et définit l'arbitrage fournit les moyens matériels nécéssaires à l'activation, maintien, désactvation des connex physiques -> gère repr. des bits et définit les niveaux electriques optiques etc des signaux le type de transceiver définit le type de transmission (low speed ou high speed)
transceiver transforme trame en voltage pour can high ou low (et receptionne avec processus inverse)
2 couches basses, 3 parties : Implémentation, Standards et CAN (iso pas à connaitre) can controller complète le msg (ajout identifiant, concat dataframe, etc)
µcontrolleur => crée msg
résist. de terminaisons évitent les répétitions en bout de ligne (rebond du signal)
Topologie du réseau
réseau sous forme de bus => tt est connecté réseau avec passerelle -> un can fait office de pont entre deux réseaux
CAN low speed -> can fault tolerance : accepte des erreurs sur le réseau, et de les résoudre ou déconnecter les noeuds
faisceau de bits codé en NRZ Bit stuffing sur remote frame et dataframe, s'applique jusqu'au CRC synchro de 2 façon : hard : sur le bit de start Re-synchro sur chaque front récessif et dominant