Interfaz de bus STM32CAN para enviar y recibir datos
El bus I2C.SPI se utiliza principalmente para transmisiones de corta distancia, con un protocolo simple y una pequeña cantidad de datos. Se utiliza principalmente para la comunicación entre IC, pero el CAN. El bus es diferente, el bus CAN (Red de área del controlador) define una mejor capa física y capa de enlace de datos, y tiene una rica variedad de protocolos de capa superior simples y complejos. El bus CAN (Controller Area Network) define una mejor capa física y una capa de enlace de datos, y tiene ricos protocolos de capa superior. A diferencia de I2C y SPI, que tienen comunicación síncrona de señal de reloj, la comunicación CAN no tiene sincronización de señal de reloj. Es una comunicación asíncrona con solo dos líneas de señal, CAN_High y CAN_Low, ****, compuestas por el mismo conjunto de líneas de señal diferencial. . La comunicación se realiza en forma de señales diferenciales.
La forma de la capa física CAN se divide principalmente en dos tipos de redes: bus de circuito cerrado y bus de circuito abierto. Uno es adecuado para comunicaciones de alta velocidad y el otro es adecuado para comunicaciones de larga distancia. . La red de comunicación de circuito cerrado CAN es una red de alta velocidad y corta distancia que sigue el estándar ISO11898. La longitud máxima del bus es de 40 m y la velocidad de comunicación puede alcanzar 1 Mbps. Se requiere una resistencia de "120 ohmios" en cada extremo. La adaptación del bus a la impedancia se realiza para minimizar los reflejos del eco.
?Red de bus de circuito cerrado
La red de bus CAN de circuito abierto es una red de larga distancia y baja velocidad que sigue el estándar ISO11519-2. Su distancia máxima de transmisión es. 1 km y su velocidad de comunicación máxima es de 125 kbps. Los buses son independientes entre sí y no forman un circuito cerrado. Cada bus debe estar conectado en serie con una resistencia de "2,2 kiloohmios". "
Red de bus de circuito abierto
El bus CAN se puede instalar en múltiples nodos de comunicación y las señales entre nodos se transmiten a través del bus para realizar la comunicación entre nodos. Desde el CAN El protocolo de comunicación no es adecuado para nodos. En lugar de codificar la dirección, se codifica el contenido de los datos, de modo que siempre que la carga del bus sea suficiente, el número de nodos en la red es teóricamente ilimitado y la carga se puede mejorar mediante repetidores.
Comunicación CAN El nodo consta de un controlador CAN y un transceptor CAN. El controlador está conectado al transceptor a través de las líneas de señal CAN_Tx y CAN_Rx, y el transceptor está conectado al bus CAN a través de CAN_High y. Las líneas de señal CAN_Low CAN_Tx y CAN_Rx usan una señal lógica TTL ordinaria, y CAN_High y CAN_Low son un par de líneas de señal diferencial, que utilizan una señal diferencial más especial. Cuando el nodo CAN necesita enviar datos, el controlador envía el código binario que necesita. para enviarse al transceptor a través de la línea CAN_Tx, y luego el transceptor esta señal de nivel lógico ordinario se convierte en una señal diferencial y se envía a la red del bus CAN a través de las líneas diferenciales CAN_High y CAN_Low. el controlador a través del transceptor, el proceso es exactamente el opuesto, y el transceptor recibe los datos en el bus. Las señales CAN_High y CAN_Low se convierten en señales de nivel lógico ordinario y se envían al controlador a través del diferencial CAN_Rx. señal
La señal diferencial también se llama señal de modo diferencial, que es diferente del uso tradicional de una sola señal. El voltaje de la línea de señal representa la lógica de una manera diferente. La transmisión de señal diferencial requiere dos líneas de señal con igual amplitud. y la fase opuesta. La diferencia de voltaje entre las dos líneas de señal se utiliza para representar el 0 lógico y el 1 lógico. En comparación con el método de transmisión de línea de señal única, el uso de señalización diferencial tiene las siguientes ventajas:
Convertir 0 lógico y La lógica 1 a la lógica 0 o la lógica 1 es un proceso muy simple. En comparación con la transmisión de línea de señal única, el uso de señalización diferencial tiene las siguientes ventajas: Tiene una fuerte capacidad antiinterferente. Cuando hay interferencia de ruido desde el exterior, se acoplará. a las dos líneas de señal casi al mismo tiempo. El extremo receptor solo se preocupa por la diferencia entre las dos señales, por lo que puede compensar completamente el ruido externo en modo ****.
? Puede suprimir eficazmente su interferencia electromagnética al mundo exterior. De la misma manera, debido a que la polaridad de las dos señales es opuesta, los campos electromagnéticos que irradian al mundo exterior pueden cancelarse entre sí. Cuanto más estrecho sea el acoplamiento, menor será la fuga al mundo exterior y menor será la energía electromagnética.
?Posicionamiento de sincronización preciso, porque el cambio de conmutación de la señal diferencial se encuentra en la intersección de las dos señales, en lugar de depender de señales ordinarias de un solo extremo para determinar los voltajes de umbral alto y bajo, por lo que Se ve menos afectado por el proceso y la temperatura, lo que puede reducir los errores de sincronización y es más adecuado para circuitos de señal de baja amplitud.
?Debido a estas ventajas de las líneas de señal diferencial, se utilizan señales diferenciales en la capa física del protocolo USB, protocolo 485, protocolo Ethernet y protocolo CAN.
Señales diferenciales en el protocolo CAN
El protocolo CAN especifica las señales diferenciales utilizadas, representadas por CAN_High y CAN_Low. Tomando como ejemplo el protocolo CAN de alta velocidad, cuando se indica 1 lógico (nivel implícito), los voltajes de las líneas CAN_High y CAN_Low son 2,5 V, es decir, su diferencia de voltaje V H -V L = 0 V; (nivel de voltaje explícito) (plano), el nivel de CAN_High es 3.5V y el nivel de la línea CAN_Low es 1.5V, es decir, su diferencia de voltaje V H -V L = 2V.