CAN es un protocolo de bajo nivel, en algún lugar alrededor de la capa de enlace de datos del modelo OSI (capa 2) . Por lo tanto, solo se refiere a la transferencia de marcos de datos genéricos. CAN no especifica una topología de red, ni cómo se pasan los datos, ni la naturaleza de los datos, etc., etc.
Entonces, CAN no es un protocolo maestro / esclavo por la misma razón que UART no lo es.
Además de los marcos de protocolo CAN estándar, necesita capas más altas que definan la comunicación. Los más comunes para CAN son:
- CANopen (más común, genérico)
- DeviceNet (genérico, utilizado principalmente en la industria de la automoción)
- J1939 (camiones, tractores, vehículos pesados)
Estos funcionan de maneras completamente diferentes.
CANopen, por ejemplo, no define un maestro en lo que respecta al tráfico de datos. La comunicación de datos entre nodos en el bus es solo una preocupación de los nodos involucrados: no hay tráfico de datos de dirección maestra y cada nodo puede configurarse para hablar / escuchar a cualquier otro nodo.
Pero CANopen define un maestro "administrador de red", que está a cargo de supervisar los nodos en el bus: asegurarse de que comiencen correctamente y permanezcan activos y funcionales, etc.