Definitivamente querrá elegir una capa de red estándar. He visto algunos casos en los que las personas se han dado a conocer, y con frecuencia el protocolo es ineficiente, y al final es una pérdida de tiempo. Una capa de red probada proporciona una funcionalidad básica para resolver la mayoría de los problemas que probablemente enfrentará en la red con un dispositivo integrado, y eso le ahorrará un tiempo y dinero valioso al final.
Estoy familiarizado con CANopen, así que pondré una pequeña explicación aquí y podría ayudarlo a decidir si esa es la forma en que quiere ir. Si no se ajusta a lo que necesitas hacer, buscaría otra cosa.
CANopen está muy centrado en los datos. Todos los nodos esclavos CANopen (las cosas que controla desde un nodo maestro, como sensores o controladores de motor) proporcionan un diccionario que contiene todos los datos de configuración, control y adquisición de datos que necesita leer / escribir para realizar su trabajo. Luego puede leer / escribir estos objetos individualmente a través del mecanismo SDO (objeto de datos de servicio), o leer / escribir estos objetos periódicamente en transmisiones de mensajes CAN temporizados a través del mecanismo PDO (objeto de datos del productor). Los servicios de NMT, así como un servicio de asignación de ID de nodo (si desea usarlo) proporcionan servicios de inicio, apagado, reinicio y detección de latido / funcionamiento incorrecto del nodo. Para implementar un dispositivo utilizando una biblioteca CANOpen incorporada, básicamente configura un diccionario de objetos, configura PDO para enviar / recibir actualizaciones de datos periódicamente y escribe un código de usuario que se comporta en función de esas entradas de datos. Hay otras cosas que ofrece CANopen, pero esa es la mayor parte de ellas. Lee este libro para obtener más información.