Pregunta

Estoy diseñando software en torno a un producto de hardware existente. Tengo el control total del protocolo de comunicación, pero no estoy seguro de cómo facilitar la detección de dispositivos.

Un dispositivo podría tener un rango de posibles configuraciones (tasa de baudios es decir, bits de datos, bits de paridad, bits de parada) que debe ser detectado en tiempo de ejecución. ¿Cuál es la manera más fácil, más fiable que el software para averiguar qué configuración que está utilizando? Una vez más, tengo el control total del protocolo de comunicación para que pueda definir cualquier mecanismo de deseo.

¿Fue útil?

Solución

¿Es este un dispositivo full-duplex o half-duplex? Se puede controlar solicitud para tomar la emisión y monitorear-clara de envío en ambos extremos de la línea serie? Es la línea de serie de punto-a-punto (como RS-232) o multipunto (como RS-485)? Se hará una (aunque pequeña) diferencia si usted va a interferir con otros dispositivos que ya están conectados al negociar con una nueva conexión.

Si se piensa en el proceso de enlace como un módem de la negociación de un protocolo de capa de enlace, se utiliza un conjunto estándar de mensajes para describir el tipo de comunicaciones que le gustaría tener y espera a que un "acuse de recibo" desde el otro extremo. En su caso recomiendo tener un "hablemos" mensaje estándar que su cabecera genera con la gama de velocidades de bits y espera el acuse de recibo desde el dispositivo.

También recomendamos reducir el número de opciones de configuración para el dispositivo. Olvidarse de bits de datos variables, los bits de paridad y bits de parada. El mundo de las comunicaciones en serie ya no es tan inestable como lo fue en los años 70. Sólo tiene que utilizar 8 bits de datos, sin paridad, un bit de parada y variar la velocidad de bits. A CRC en el extremo de mensajes proporciona un montón de comprobación de errores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top