Sobre el módulo:
Introducción
Protocolo
Escape
Uso
Resultados
Módulos didácticos para procesos de Tiempo Real |
Protocolo de comunicación |
La comunicación se realiza a una velocidad de 38400 Baudios, utilizando el siguiente protocolo:
La definición de los comandos es como sigue:
-> Módulo | Módulo -> |
-C0-s1-ch-cs-C0-
Paquete de inicialización: |
-C0-s1-ch-1-cs-C0- El módulo retransmite el paquete de datos, con el código de identificación incrementado en 1. De esta forma, el próximo módulo lo interpretará como comando de identificación. |
-C0-s2-ch-cm-cs-C0- Paquete de 'comando': el valor de cm será utilizado para la entrada del sistema a controlar, por ejemplo la intensidad de la fuente de luz, o la velocidad del motor. |
-C0-s2-ch-cs-C0- Paquete de confirmación: el mismo de entrada, sin el valor de comando. |
-C0-s3-ch-cs-C0- Paquete de 'pedido': el módulo tiene que responder con el valor de salida del proceso, por ejemplo, la medición de la intensidad de la luz o medición de temperatura. |
-C0-s3-ch-md-cs-C0- Paquete de resultado: el mismo de entrada, pero contiene el valor de la medición pedido. |
Algunas aclaraciones sobre los códigos usados:
Código | Descripción |
C0 | Código de inicio y terminación de paquete (Hex 0xC0) |
s1 s2 s3 |
Códigos de comando. La 's' indica el 'canal interno' en módulo: cada módulo está previsto (aunque no implementado todavía) para controlar varios procesos simúltaneamente. El número del canal está codificado en los 4 bits superiores. |
ch | Número del módulo a controlar |
cs | Suma de control. La suma de todos los bytes, excepto los 0xC0 iniciales y finales, tiene que dar 0xFF. |
cm | Valor del comando (0 - 255). |
md | Valor de respuesta (medición). |
Un obervador atento habrá detectado una falla en el diseño de este protocolo: Qué pasa cuando uno de los datos enviados es actualmente 0xC0? En este caso sería imposible de sincronizar correctamente. Para esta caso existe un sistema con secuencias de escape.
(c) John Coppens ON6JC/LW3HAZ | correo |