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 |