Después de que el transmisor DDA retransmite su dirección local y recibe
el comando, realiza la medición solicitada según lo define el comando
recibido. Después de completar la medición solicitada, los datos para
esa medición se transmitirán a la computadora principal en un formato
predefinido, incluyendo ciertos caracteres de control. El formato de datos
de DDA transmitidos comienza con un carácter "STX" de "start of text"
(comienzo de texto) (STX = 02 hex). El conjunto de caracteres "STX"
irá seguido por los datos solicitados y terminará con un conjunto de
caracteres "ETX" de "end of text" (final de texto) (ETX = 03 hex). Ciertos
comandos permiten que múltiples campos de datos se transmitan dentro
de una secuencia de datos transmitida. Para estas transmisiones de datos,
cada campo de datos se separa mediante el carácter de dos puntos ASCII
":" (: = 3A hex), (ver ejemplos 6 y 7).
Transmisión de datos de campo individual
Ejemplo 6:
<STX><dddd.ddd><ETX>
Transmisión de datos de campos múltiples
Ejemplo 7:
<STX><dddd.ddd:dddd.ddd:dddd.ddd><ETX>
Todos los datos transmitidos constan de caracteres de 7-bits ASCII limitados
a valores hex entre "00" hex y "7F" hex (es decir, bits de datos D8 = 0).
Después de que un transmisor DDA completa la transmisión de datos,
la computadora principal debe esperar 50 milisegundos antes de poder
realizar otra interrogación. El retraso es necesario para permitir que el
transmisor interrogado anteriormente entre en modo reposo y libere las
líneas de comunicación de la red.
Todos los comandos de control de DDA admiten una función de cálculo
de suma de comprobación, detección de error de datos (DED, por sus
siglas en inglés), que permite que la computadora principal (maestra)
verifique la integridad de los datos transmitidos. El valor real de la suma
de comprobación que se transmite es el complemento (complemento de
2) del valor calculado. El esquema de suma de comprobación se basa en
la suma total de 16 bits de los datos hex dentro del bloque transmitido
(incluidos los conjuntos de caracteres "STX" y "ETX") sin importar el
desbordamiento. El resultado de dos bytes del proceso de adición luego
se complementa y anexa al bloque de datos transmitido.
Este proceso de complementación hace que la comparación de la suma
de comprobación sea más eficiente ya que el resultado de la suma de
comprobación añadido a su complemento siempre dará como resultado
cero en transmisiones de datos incorruptas. Los datos de la suma de
comprobación (bytes de dos hex) pueden oscilar entre "0000" hex
y "FFFF" hex. Dado que la red de comunicación solo permite valores de
datos transmitidos entre "00" y "7F" hex, se necesita un procesamiento
especial en el valor de la suma de comprobación de hex antes de que se
pueda transmitir.
Este valor de hex de dos bytes debe convertirse primero a caracteres
ASCII numéricos antes de la transmisión. Por ejemplo, un valor de
suma de comprobación de "FFFF" hex debería transmitirse como ASCII
65535. Luego, la computadora principal tendría que convertir ASCII
65535 a hex FFFF y realizar su propio cálculo de suma de comprobación
y comparación de los datos recibidos del transmisor DDA. Se muestra
un ejemplo (ver Ejemplo 8) de una transmisión de datos de campo
individual que incluye datos de la suma de comprobación y un ejemplo
de cálculo de suma de comprobación.
Cálculo de suma de comprobación
Ejemplo 8:
<STX><dddd.ddd><ETX><ccccc>
Nota:
El valor de la suma de comprobación anexado constará siempre de
cinco caracteres decimales (ASCII) entre 00000 y 65535. La función
de suma de comprobación se puede activar o desactivar.
Mensaje transmitido desde el transmisor DDA (comando 12 hex):
Carácter de hex equivalente del registro de datos transmitido que
incluye caracteres <STX> y <ETX>:
02, 32, 36, 35, 2E, 33, 32, 32, 3A, 31, 30, 39, 2E, 34, 35, 36, 03
Suma total de datos hex de dos bytes:
Complemento de dos:
Convertir a ASCII decimal:
Para verificar los datos transmitidos desde el transmisor DDA, realice
la suma total hex de dos bytes sobre el registro de datos (incluidos
"<STX>" y "<ETX>") que se muestra en (ejemplo 8). En este ejemplo
el resultado es 0308 hex. Luego, vuelva a convertir el valor de suma
de comprobación ASCII decimal a hexadecimal (por ejemplo, 64760 a
FCF8 Hex). Añada el valor de la suma total hex al valor de la suma de
comprobación hex y el resultado será cero (ignore el desborde) para
datos incorruptos. 0308 Hex + FCF8 Hex = 0000 Hex.
Nota:
La verificación de error mediante Verificación de redundancia cíclica
(CRC, por sus siglas en inglés) se ofrecerá más adelante. Se definirá
un interruptor de comando que permitirá la transmisión de datos
de DDA con verificación de error de CRC en lugar de verificación de
error mediante suma de comprobación. Los cálculos de la suma de
comprobación emplearán el polinomio definido por CRC-CCITT con un
resultado de CRC de 16 bits. Este valor de CRC de 16 bits se anexará
a cada mensaje transmitido. Dado que la red de comunicación solo
permite valores de datos transmitidos entre 00 y 7F hex, se necesita
un procesamiento especial en el valor de la CRC de hex de 16 bits
antes de que se pueda transmitir. Este valor de hex de 16 bits (2 bytes)
debe convertirse primero a caracteres ASCII numéricos antes de la
transmisión. Por ejemplo, un valor de suma de comprobación de
"FFFF" hex debería transmitirse como ASCII 65535.
11
Manual de interfaz DDA
Append checksum value
<STX><265.322.109.456><ETX>64760
0308 Hex
FCF8 Hex
64760
Serie LP