Après retransmission de son adresse locale et réception d'une commande
par le transmetteur DDA, il effectuera la mesure demandée, telle que définie
par la commande reçue. Après réalisation de la mesure demandée, les
données de cette mesure seront transmises à l'hôte dans un format prédéfini
incluant certains caractères de contrôle. Le format des données transmises
par le DDA commence par un caractère « début de texte » « STX »
(STX = 02 hex). L'ensemble de caractères « STX » est immédiatement
suivi par les données demandées et se termine par l'ensemble de caractère
« ETX » (soit « End of Text », fin du texte) (ETX = 03 hex). Certaines
commandes autorisent la transmission de multiples champs de données
dans une séquence de données transmise. Pour ces transmissions de
données, chaque champ de données est séparé par un caractère à deux
points ASCII « : » (: = 3A hex), (voir les Exemples 6 et 7).
Transmission de données un seul champ
Exemple 6 :
<STX><dddd.ddd><ETX>
Transmission de données champ multiple
Exemple 7 :
<STX><dddd.ddd:dddd.ddd:dddd.ddd><ETX>
Toutes les données transmises comprennent des caractères ASCII 7-bit
limités aux valeurs hex entre « 00 » hex et « 7F » hex (i.e. octet de
données D8 = 0).
Après qu'un transmetteur DDA ait terminé une transmission de
données, l'hôte doit attendre 50 millisecondes avant de procéder
à une autre interrogation. Ce délai est requis pour que le transmetteur
précédemment interrogé passe en mode veille et libère les lignes de
communication du réseau.
Toutes les commandes de contrôle DDA prennent en charge une fonction
de calcul de somme de contrôle, Data Error Detection (DED ou détection
des erreurs de données) qui permet à l'ordinateur hôte (maître) de
vérifier l'intégrité des données transmises. La valeur de la somme de
contrôle effective qui est transmise complète (2e complément) la valeur
calculée. Le modèle de somme de contrôle est basé sur une somme
16 bits des données hex dans le bloc transmis (y compris les ensembles
de caractères « STX » et « ETX ») sans considération du dépassement
de capacité. Le résultat à deux octets du processus d'ajout est alors
complété et annexé au bloc de données transmises.
Ce processus de complément affine la comparaison de la somme de
contrôle finale en ce sens que la somme du résultat de la somme contrôlée
à son complément a toujours pour résultat une somme à zéro pour les
transmissions de données non corrompues. Les données de la somme de
contrôle (deux octets hex) peuvent varier de « 0000 » hex à « FFFF » hex.
Puisque le réseau de communication n'accepte que les valeurs de données
transmises entre « 00 » et « 7F » hex, un traitement spécial est requis sur
la valeur de la somme de contrôle hex avant qu'elle puisse être transmise.
Cette valeur hex à deux octets doit d'abord être convertie en caractères
ASCII numériques (décimaux) avant la transmission. Par exemple, une
valeur de somme de contrôle de « FFFF » serait transmise en tant que
ASCII 65535. L'ordinateur hôte aura alors à reconvertir ASCII 65535
en FFFF hex, calculera la somme de contrôle et comparera les données
reçues du transmetteur DDA. L'Exemple 8 illustre une transmission de
donnée à un seul champ, incluant les données de la somme de contrôle
et un échantillon du calcul de la somme de contrôle. Calcul de la somme
de contrôle
Exemple 8 :
<STX><dddd.ddd><ETX><ccccc>
Note :
La valeur de la somme de contrôle annexée se composera toujours
de caractères à cinq décimales (ASCII) allant de 00000 à 65535.
La fonction de la somme de contrôle peut être activée ou désactivée.
Message transmis par le transmetteur DDA (commande 12 Hex) :
Caractère hex équivalent au registre de données transmises incluant
les caractères <STX> et <ETX> :
02, 32, 36, 35, 2E, 33, 32, 32, 3A, 31, 30, 39, 2E, 34, 35, 36, 03
Somme des données Hex deux octets :
Complément de deux :
Conversion en décimal ASCII :
Pour vérifier les données transmises par le transmetteur DDA, effectuer
la somme Hex à deux octets sur le registre de données (y compris
« <STX> » et « <ETX> ») (voir l'exemple 8). Le résultat dans cet exemple
est 0308 Hex. Reconvertir ensuite la valeur de la somme de contrôle
ASCII décimale en Hex (par exemple, 64760 en FCF8 Hex). Ajouter la
valeur de la somme Hex à la valeur de la somme de contrôle Hex : le
résultat sera zéro (sans considération du dépassement de capacité) pour
les données non corrompues. 0308 Hex + FCF8 Hex = 0000 Hex.
Note :
Un contrôle d'erreur CRC (contrôle de redondance cyclique) sera
proposé à une date ultérieure. Un interrupteur de commande sera
défini et autorisera la transmission des données DDA avec un contrôle
d'erreur CRC au lieu d'un contrôle d'erreur de la somme de contrôle.
Les calculs de la somme de contrôle utiliseront le polynôme défini
CRC-CCITT avec un résultat CRC 16 bit. Cette valeur CRC 176 bit
sera annexée à chaque message transmis. Puisque le réseau de
communication n'accepte que les valeurs de données transmises
entre 00 et 7F hex, un traitement spécial est requis sur la valeur
de la somme de contrôle CRC hex 16 bits avant qu'elle puisse être
transmise. Cette valeur hex à 16 bits (deux octets) doit d'abord
être convertie en caractères ASCII numériques (décimaux) avant la
transmission. Par exemple, une valeur de somme de contrôle de
« FFFF » serait transmise en tant que ASCII 65535.
11
Manuel d'interface DDA
Append checksum value
<STX><265.322.109.456><ETX>64760
0308 Hex
FCF8 Hex
64760
Série LP