Bonsoir,
Quelqu'un connaitrait-il l'existence d'une librairie gérant le protocole HDLC ?
Merci
Version imprimable
Bonsoir,
Quelqu'un connaitrait-il l'existence d'une librairie gérant le protocole HDLC ?
Merci
Le contexte est simple: dialoguer sur une liaison série.
Il n'y a pas de hardware.Citation:
C'est pas si simple. Quelle plateforme ? Quel système série, quel composants ? Je rappelle que HDLC est un protocole série synchrone. D'où vient l'horloge ?
Il n'y a qu'une liaison série sans controleur HDLC.
Ca n'existe pas. Le protocole HDLC (High level Data Link Layer) nécessite au moins 2 circuits (Tx, Rx) et une horloge (Clk) :
Alors explique exactement ce que tu veux faire, parce que pour le moment, je ne vois rien.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Modem/Terminal Rx ---------> Rx Tx <--------- Tx Clk ---------> Clk ou Terminal/Terminal Tx ---------> Rx Rx <--------- Tx Clk <---+----> Clk | Clk
Si tu veux le protocole HDLC seul, il est bien décrit dans les documents de l'UIT-T (je ne sais plus lequel. Un G.xxx, ou un X.xxx, X25, probablement : LAP)
Ceci peut aider :
http://www.gaudry.be/_pge/r-hdlc.php
Autant pour moi.
Je précise: ISO/IEC 13239. Edition 2002.
Il s'agit d'une couche liaison de donnée... (h)au(t) dessus de la couche liaison physique.
OK.
http://www.freesoft.org/CIE/Topics/122.htm
http://webstore.iec.ch/preview/info_...ed3.0%7Den.pdf
Accès libre. OK. Euh non ! Ce n'est que le teaser... Le document coute plus de 200 Francs Suisses...
C'est un protocole bit à bit... Il est généralement implémenté par du matériel. Tu veux le faire en logiciel ? C'est un séquenceur synchrone donc, une boucle qui émet des flags 01111110 au repos :
L'émission de données se complique car il faut s'insérer entre les flags, rompre les séquences de 6 bit à 1 par un bit de bourrage à 0 etc.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 bit := 0 count := 0 LOOP SELECT count CASE 0,7 bit := 0 ELSE bit := 1 END SELECT xmit(bit) ; interface physique... delay(BIT_DURATION) INC count IF count = 8 COUNT := 0 END IF END LOOP
En réception, c'est encore plus complexe. Il faut repérer les flags et se synchroniser dessus, repérer et supprimer les bits de bourrages, les séquences > 6 bits à 1, les séquences > 15 bits à 1 (all-1), extraire les données valides... etc.
Il vaut connaitre les automates, ça aide à définir et à implémenter le bouzin...
http://emmanuel-delahaye.developpez.com/clib.htm
Module FSM