Cours N°2:
Le bus 485 Modbus
S. OUBBATI
[Link]@[Link]
Département d’électronique.
Université Ammar Telidji – Laghouat.
Sommaire
• Rappel sur la norme RS232
• La liaison RS485
• Le protocole Modbus
• Adressage et Trame Modbus,
Les normes
4
Normes
• Il existe différentes normes de liaison série
asynchrones :
▫ RS232 : norme de liaison série présente sur les
PCs (ports COM ou tty).
▫ RS422 : norme industrielle mieux immunisée vis à
vis du bruit.
▫ RS485 : Identique à la RS422 mais développée
pour pouvoir connecter plus de deux appareils sur
le même bus.
5
Normes
• Le choix d'une norme dépend :
▫ De la vitesse de transmission souhaitée
▫ De la longueur du câble
▫ Du nombre d'équipements que l'on souhaite
connecter
▫ De l’immunité vis à vis des parasites
RS correspond aux normes américaines définies par l’EIA (Electronics
Industries Association).
V.. ou X.. correspond aux avis internationaux définis par le CCITT (Comité
Consultatif International pour le Téléphone et les
Télécommunications).
Boucle particulièrement utilisée dans l’industrie, ne correspond pas à une
de norme.
courant
6
Normes
EIA RS 232 RS 423 RS 422 RS 485 Boucle
CCITT V24 / V28 V11 / X27 V11 / X27 de courant
Type d’interface Unipolaire Unipolaire Différentiel Différentiel 0 – 20 mA
Distance (m) 15 1200 1200 1200 1000 à
2000
Débit max. (bps) 19200 100K 10M sur 100 m 10M 19200
100K sur 1200
m
Multipoint non oui oui oui oui
Nombre d’émetteurs 1 1 1 32
Nombre de récepteurs 1 10 10 32
Niveau de sortie pleine charge (V) 5 à 15 3.6 2 1.5
Résistance émetteur 3 à 7 k 450 100 54
La norme RS232
8
Norme RS232
• Niveaux de tension
▫ Les 0-5V (voire moins) que l'on trouve
généralement en sortie des microcontrôleurs sont
insuffisants pour transmettre les informations loin.
signal est atténué.
ligne de transmission
9
Norme RS232
• Niveaux de tension
▫ Afin de pouvoir envoyer les signaux plus loin, la liaison série
RS232 transmet les informations sous des niveaux de
tension plus élevés.
Un niveau logique bas (0V) sera transmis à l'aide d'une
tension de +12V (de 3V à 25V)
Un niveau logique haut (5V) sera transmis à l'aide d'une
tension de -12V (de -3V à -25V)
INVERSION DES NIVEAUX LOGIQUE (logique négative)
ADAPTATION à +10V ET-10V
10
Norme RS232
11
Norme RS232
(exemple : [Link])
12
Composant externe (MAX 232)
• Génère à partir d'une alimentation Vcc de 5V, les
tensions +10V et -10V.
• Distance maxi de 10m à 9600m.
• Plus la distance sera grande, moins la vitesse de
transmission sera rapide car les atténuations et
les déformations des signaux seront plus
importantes.
13
Composant externe (MAX 232)
• Exemple :
14
Connecteur
• Le connecteur DB9 est généralement utilisé :
RS 232 C
15
Connectique
Canon Sub-D 25 broches Canon Sub-D 9 broches RJ45 (RS 232 D)
1 DSR/RI
2 CD
3 DTR
4 Gnd
5 RxD
6 TxD
7 CTS
8 RTS
16
Connectique (Raccordements)
17
Évolution
• Les nouveaux ordinateurs ne sont généralement
plus pourvus par défaut de ports COM RS232.
• Convertisseurs USB/RS232 ,
permettant de gérer le
protocole USB d'un coté
et la liaison RS232 de l'autre
(puces FTDI)
18
Évolution
• Circuits permettant de passer à une liaison USB
vers une liaison série à niveaux logiques TTL (0V
à 5V) ou 0V à 3,3V
• Permet de s'interfacer en USB directement avec
un microcontrôleur, sans passer par un étage
+10V/-10V.
19
Norme RS422
• Evolution de la RS232 en version différentielle.
• Performances : jusqu‘à 10km, 10 Mbits/s.
• Nécessite une résistance terminale de 100 pour
adapter la ligne (moins de réflexions en bout de ligne
débit )
La norme RS485
21
Norme RS485
• Adaptation de la RS422 à une topologie "bus".
Contrairement au format RS232, RS485 travaille en logique positive :
- niveau 1 5v
Adaptation
RS232/RS485
23
Adaptateur RS232/RS485
RS485
23
Le protocole
ModBus
MODBUS
• Développé par MODICON en 1979
• Protocole d ’échange « CLIENT/SERVEUR »
Requête
(request)
Client Serveur
Réponse
(reply)
MODBUS
• Un des plus utilisés dans la communication
entre automates industriels
• s ’adapte au nouvelle technologie: intègre
TCP/IP
• permet une communication sur différents
supports entre différents équipements
MODBUS
• N ’implémente que les couches 1, 2 et 7 du
model OSI
Modbus-
Protocole
d’application
Protocol Application
• Couche application définie PDU (Protocol Data
Unit) indépendant de la couche liaison et du
support de transmission
Adresse Code fonction Données Contrôle
Couche application
Couche liaison
Couche liaison rajoute des champs pour constituer ADU
(Application Data Unit)
PDU Client ->Serveur
Code fonction Data
Client
Envoi une
requête
Serveur
• Code fonction 1 octet
▫ code fonction [1;127]
• Data : n octets , dépend du code fonction et
contient habituellement des variables. Peut
être nul.
PDU Serveur ->Client
• Si pas d ’erreur
Client Serveur
Attend la réponse Exécute l ordre,
renvoie la réponse
Code fonction Data
•Les données demandées
Celui envoyé par le client en mode lecture
•Les données reçues en
mode écriture
• Si erreur!
Client Serveur
Attend la réponse Détection d ’erreur,
renvoie la réponse
Code fonction Code Erreur
Celui envoyé par le
client
Modbus sur
liaison série
MODBUS série
• Couche 1 et 2 du model OSI
• liaison 2 fils sur interface (RS485)
• protocole de type maître/esclave
▫ Maitre(s) -> Client(s)
▫ esclave(s) -> Serveur(s)
▫ topologie en bus
protocole maître/esclave
• 1 seul maître parle, le(s) esclave(s)
écoute(nt)
• communication toujours à l ’initiative du
maître
• esclaves ne communiquent pas entre eux
• 2 modes de communication
▫ diffusion (broadcast)
▫ individuel (unicast)
Mode Broadcast
• Requête envoyée à tous les esclaves
• Requête d ’écriture uniquement
• Requête envoyée à l ’adresse 0x00
• Pas de réponse des esclaves
Mode Unicast
• Maitre adresse 1 seul esclave à la fois
• Après traitement de la demande, esclave renvoie
sa réponse
Mode Unicast
• Règles d ’adressage
▫ maître n ’a pas d ’adresse
▫ adresse 0 réservée au mode broadcast
▫ adresses esclaves [1;247]
▫ adresses [248;255] sont réservées
▫ une adresse unique pour chaque
esclave
Trames Modbus
TRAME MODBUS
• L application fournie le PDU
• la couche liaison rajoute les
informations
▫ adresse du récepteur
▫ détection d ’erreur de transmission
TRAME MODBUS
Tout échange contient deux trames :
1. une demande du maître …
2. … et une réponse de l'esclave !
TRAME Chaque trame contient 4 types d'informations
ADU= Application Data Unit
PDU modbus PDU= Protocol Data Unit
Code CRC
Adresse data
fonction Ou LRC
1 octet 1 octet X octets 2 octets
Entre 1 et 247 Entre 1 et 127 Complément Contrôle de
Identifie d'informations validité
Le destinataire (dépend du code
Fonction)
Contrôle d ’erreur
MAITRE Esclave
N°esclave Code Données N°esclave Code Données
CRC16 CRC16
fonction fonction
Calcul du CRC16 Calcul du CRC16
Comparaison des CRC16
Ne renvoie rien CRC16 identique
Exécute l ’action et répond au client
MODBUS série
• 2 modes de transmission
▫ RTU (Remote Terminal Unit)
▫ ASCII (American Standard Code for Information
Interchange)
• le mode de transmission doit être configuré de
façon identique pour tous les équipements
branchés sur le bus.
Mode RTU
Rappel Trame MODBUS
• Envoi d ’un octet sur le support physique
▫ 1 bit de start
▫ 8 bits de donnée (LSB en premier)
▫ 1 bit de parité (paire)
▫ 1 bit de stop
Transmission RTU
Start Data parité Stop
1 bit 8 bits 1 bit 1 bit
Forme physique des données
La detection d ’erreur est assurée par un calcul de type CRC
Cyclical Redundancy Checking
Mode ASCII
Trame MODBUS constituée de 2 caractères ASCII pour
coder un octet
• Envoi d ’un caractère sur le support physique
▫ 1 bit de start
▫ 7 bits de donnée (LSB en premier)
▫ 1 bit de parité (paire)
▫ 1 bit de stop
Transmission RTU
Contrairement au mode RTU, la détection de début et fin de
trame n ’est pas assuré par des silences sur la ligne, mais par:
• un caractère de « start » « : » (0x3A)
• une chaîne de fin constitué de 2 commandes « CR LF »
(0x0D et 0x0A)
Start Data parité Stop
1 bit 7 bits 1 bit 1 bit
Forme physique des données
La detection d ’erreur est assurée par un calcul de type LRC
Logitudinal Redundancy Checking
[Link]@
[Link]
UATL2018