Actualmente estoy configurando una red CAN de 16 nodos. Para futuras ampliaciones de la red, los nodos se distribuyen en 4 sucursales diferentes. Estas ramas están unidas por dos extensores de bus CAN (más específicamente, dos chips AMIS42700 ) y supervisado por un nodo CAN master (incluso si no existe tal cosa en CAN). El AMIS42700 actúa como extensor CAN y como transceptor para el nodo maestro. El esquema de la parte del extensor de bus CAN se muestra a continuación:
El problema con el chip AMIS42700 es que al intentar transmitir un mensaje a todos los nodos, parece que sigue enviando el mismo mensaje repetidamente. Esto no ocurre cuando se transmiten mensajes entre los nodos slave (lo verifiqué en el osciloscopio).
Cuando esto no es un problema en sí mismo cuando se transmiten mensajes del maestro al esclavo, los nodos CAN reciben múltiples réplicas del mismo mensaje y, finalmente, la red se satura con mensajes del nodo maestro. Esto afecta la calidad general de la comunicación y es bastante problemático en mi caso.
¿Alguien puede arrojar algo de luz sobre este comportamiento peculiar? ¿Es específico para extensores de bus CAN?
Para completar, aquí hay una lista de cosas que ya probé:
- Modifique el valor del resistor de terminación en todas ramas (de 0 a 170 ohmios)
- Cambia el mensaje de difusión. Pude ver el cambio en el osciloscopio, por lo tanto, asumo que esto no es un cuadro de error, sino una réplica de mi mensaje. ¿Es un supuesto razonable?
- Quite las resistencias de terminación: en este caso, los nodos CAN ya no podían comunicarse entre sí, y el comportamiento era similar al experimentado con el AMIS42700 (estaban intentando reenviar el mensaje y los búferes internos nunca podría ser vaciado).
- Verifique los buffers de transmisión del controlador CAN en el nodo maestro: nunca están llenos. Parece que el controlador CAN en el maestro es insensible al valor del resistor de terminación.
- Extrañamente, al desconectar una de las líneas CAN (CANH o CANL) a la vez, la comunicación podría establecerse entre nodos. En ese caso, aunque no comprobé CANH y CANL en el osciloscopio.
¡Todos los consejos sobre el método de prueba y sobre los extensores de bus CAN y CAN en general serán más que apreciados!