Bus CAN: ¿cómo funciona la electrónica en los automóviles modernos? ¿Qué es un bus CAN? ¿Qué es un autobús de lata en un coche?

La aparición de los neumáticos digitales en los automóviles se produjo después de que los componentes electrónicos comenzaran a introducirse ampliamente en ellos. En ese momento, solo necesitaban una "salida" digital para "comunicarse" con equipo de diagnóstico- para esto, las interfaces seriales de baja velocidad como ISO 9141-2 (K-Line) fueron suficientes. Sin embargo, la aparente complicación de la electrónica de a bordo con la transición a la arquitectura CAN se ha convertido en su simplificación.

De hecho, ¿por qué tener un sensor de velocidad separado si la unidad ABS ya tiene información sobre la velocidad de rotación de cada rueda? Basta con transferir esta información al tablero de instrumentos y a la unidad de control del motor. Para los sistemas de seguridad, esto es aún más importante: por ejemplo, el controlador de la bolsa de aire ya es capaz de apagar el motor de forma independiente en caso de colisión al enviar el comando apropiado a la ECU del motor y desenergizar el máximo de circuitos a bordo al enviando un comando a la unidad de control de potencia. Anteriormente, por seguridad, era necesario aplicar medidas poco fiables como interruptores de inercia y cebos en el terminal de la batería ( Propietarios de BMW con sus "glitches" ya son bien conocidos).

Sin embargo, según los principios antiguos, era imposible implementar una "comunicación" completa de las unidades de control. El volumen de datos y su importancia han crecido en un orden de magnitud, es decir, se requería un bus que no solo sea capaz de operar a alta velocidad y esté protegido de interferencias, sino que también proporcione retrasos mínimos en la transmisión. Para un automóvil que se mueve a alta velocidad, incluso los milisegundos ya pueden desempeñar un papel fundamental. Una solución que satisface tales solicitudes ya existía en la industria: estamos hablando de CAN BUS (Controller Area Network).

La esencia del bus CAN

El bus CAN digital no es un protocolo físico específico. El principio de funcionamiento del bus CAN, desarrollado por Bosch en los años ochenta, permite implementarlo con cualquier tipo de transmisión, incluso a través de cables, incluso a través de fibra óptica, incluso a través de un canal de radio. El bus CAN funciona con soporte de hardware para prioridades de bloque y la capacidad de que el "más importante" interrumpa la transmisión del "menos importante".

Para ello, se ha introducido el concepto de bits dominantes y recesivos: en pocas palabras, el protocolo CAN permitirá que cualquier unidad se ponga en contacto en el momento adecuado, deteniendo la transferencia de datos de sistemas menos importantes simplemente transmitiendo un bit dominante mientras está allí. es recesivo en el autobús. Esto sucede puramente físicamente; por ejemplo, si el "más" en el cable significa "uno" (bit dominante), y la ausencia de una señal significa "cero" (bit recesivo), entonces la transmisión de "uno" suprimirá inequívocamente "cero".

Imagine una clase al comienzo de una lección. Los alumnos (controladores de baja prioridad) hablan tranquilamente entre ellos. Pero, tan pronto como el maestro (controlador de alta prioridad) da el comando "¡Silencio en el aula!" En voz alta, bloqueando el ruido en el aula (el bit dominante suprimió al recesivo), la transferencia de datos entre los controladores de los estudiantes se detiene. A diferencia de una clase escolar, en el bus CAN esta regla funciona de manera continua.

¿Para qué sirve? Que los datos importantes se transfieran con un mínimo de retrasos, incluso a costa de que los datos sin importancia no se transfieran al bus (esto distingue al bus CAN del familiar para todos de las computadoras Ethernet). En caso de accidente, la capacidad del calculador de inyección para recibir información al respecto del controlador SRS es desproporcionadamente más importante que panel recibir el siguiente paquete de datos sobre la velocidad de movimiento.

En los automóviles modernos, ya se ha convertido en norma distinguir físicamente entre las prioridades altas y bajas. Utilizan dos o incluso más buses físicos de baja y alta velocidad; por lo general, es un bus CAN "motor" y un bus "cuerpo", los flujos de datos entre ellos no se cruzan. Solo el controlador CAN-bus está conectado a todos a la vez, lo que hace posible "comunicarse" con todos los bloques a través de un conector.

Por ejemplo, documentación técnica Volkswagen define tres tipos de buses CAN utilizados:

  • El autobús "rápido", que opera a 500 kilobits por segundo, integra unidades de control de motor, ABS, SRS y transmisión.
  • "Lento" opera a una velocidad de 100 kbps y combina bloques del sistema "Confort" ( cierre centralizado, ventanas, etc.).
  • El tercero funciona a la misma velocidad, pero solo transmite información entre navegación, teléfono integrado, etc. En automóviles más antiguos (por ejemplo, Golf IV), el autobús de información y el autobús de "confort" se combinaron físicamente.

Dato interesante: en renault logan la segunda generación y sus “co-plataformas” también tienen físicamente dos buses, pero el segundo conecta exclusivamente el sistema multimedia al controlador CAN, el segundo tiene simultáneamente la ECU del motor, el controlador ABS, las bolsas de aire y la UCH.

Físicamente, los automóviles con bus CAN lo utilizan como un par diferencial trenzado: en él, ambos cables sirven para transmitir una sola señal, que se define como la diferencia de voltaje en ambos cables. Esto es necesario para una protección contra el ruido simple y confiable. Un cable sin blindaje funciona como una antena, es decir, la fuente de radiointerferencia es capaz de inducir en él una fuerza electromotriz, suficiente para que los controladores perciban la interferencia como un bit de información real transmitido.

Pero en un par trenzado, el valor EMF de la interferencia será el mismo en ambos cables, por lo que la diferencia de voltaje permanecerá sin cambios. Por lo tanto, para encontrar el bus CAN en un automóvil, busque un par de cables trenzados; lo principal es no confundirlo con el cableado. Sensores ABS, que también se colocan dentro de la máquina con un cable de par trenzado para proteger contra interferencias.

El conector de diagnóstico del bus CAN no se reinventó: los cables se llevaron a los pines libres del bloque ya estandarizado, en el que el bus CAN se encuentra en los pines 6 (CAN-H) y 14 (CAN-L).

Dado que puede haber varios buses CAN en un automóvil, a menudo se practica el uso de diferentes niveles físicos de señales en cada uno. Nuevamente, como ejemplo, veamos la documentación de Volkswagen. Así es como se ve la transmisión de datos en el bus de motor:

Cuando no se transmiten datos en el bus o se transmite un bit recesivo, el voltímetro mostrará 2,5 voltios a tierra en ambos cables del par trenzado (la diferencia de señal es cero). En el momento de transmitir el bit dominante en el cable CAN-High, el voltaje sube a 3,5 V, mientras que en CAN-Low cae a uno y medio. Una diferencia de 2 voltios significa "uno".

En el autobús Comfort, todo se ve diferente:

Aquí, “cero” es, por el contrario, una diferencia de 5 voltios, y el voltaje en el cable bajo es más alto que en el cable alto. "Unidad" es un cambio en la diferencia de voltaje a 2.2 V.

La verificación del bus CAN en el nivel físico se realiza mediante un osciloscopio, que le permite ver el paso real de las señales a través de un par trenzado: con un probador ordinario, por supuesto, es imposible "ver" la alternancia de pulsos de tal longitud.

La "descodificación" del bus CAN del automóvil también se realiza mediante un dispositivo especializado: el analizador. Le permite enviar paquetes de datos desde el bus a medida que se transmiten.

Usted mismo comprende que el diagnóstico del bus CAN en el nivel de "aficionado" sin el equipo y el conocimiento adecuados no tiene sentido, y es simplemente imposible. Lo máximo que se puede hacer con medios "improvisados" para verificar el can-bus es medir el voltaje y la resistencia en los cables, comparándolos con los de referencia para un automóvil en particular y un neumático en particular. Esto es importante: anteriormente dimos específicamente un ejemplo del hecho de que incluso en el mismo automóvil puede haber una gran diferencia entre los neumáticos.

fallas

Aunque la interfaz CAN está bien protegida contra interferencias, fallas electricas se convirtió en un gran problema para él. La combinación de bloques en una sola red la hizo vulnerable. La interfaz CAN en los automóviles se ha convertido en una verdadera pesadilla para los electricistas automotrices poco calificados debido a una de sus características: las fuertes subidas de tensión (por ejemplo, en invierno) no solo pueden "bloquear" un error de bus CAN que se detecta, sino también llenar la memoria del controlador con errores esporádicos de naturaleza aleatoria.

Como resultado, se enciende toda una "guirnalda" de indicadores en el tablero. Y, mientras el recién llegado se rasca la cabeza en estado de shock: "¿qué pasa?", Un diagnosticador competente primero colocará una batería normal.

Los problemas puramente eléctricos son roturas de cables de bus, sus cortocircuitos a tierra o más. El principio de transmisión diferencial cuando alguno de los cables se rompe o la señal "incorrecta" se vuelve irrealizable. Lo peor es el cortocircuito del cable, porque "paraliza" todo el bus.

Imagine un autobús de motor simple en forma de cable en el que varios bloques "se sientan en una fila": un controlador de motor, un controlador de ABS, un tablero y un conector de diagnóstico. Una ruptura en el conector no es terrible para el automóvil: todos los bloques continuarán transmitiéndose información entre sí en modo normal, solo el diagnóstico será imposible. Si rompemos el cable entre el controlador ABS y el panel, solo podremos verlo en el autobús con un escáner, no mostrará ni la velocidad ni la velocidad del motor.

Pero si hay una ruptura entre la ECU del motor y el ABS, lo más probable es que el automóvil ya no arranque: la unidad, sin "ver" el controlador que necesita (la información de velocidad se tiene en cuenta al calcular el tiempo de inyección y el encendido). temporización), entrará en modo de emergencia.

Si no corta los cables, sino que simplemente aplica constantemente "más" o "tierra" a uno de ellos, el automóvil "entrará en un golpe de gracia", ya que ninguno de los bloques podrá transmitir datos a otro. Es por eso regla de oro electricista automotriz, traducido a la censura rusa, suena como "no se suba al autobús con las manos torcidas", y varios fabricantes de automóviles prohíben conectar dispositivos adicionales de terceros no certificados (por ejemplo, alarmas) al bus CAN.

Afortunadamente, conectar el bus CAN de señalización no es un conector a un conector, pero chocar directamente contra el bus del automóvil le da al instalador "torcido" la oportunidad de mezclar los cables en algunos lugares. Después de eso, el automóvil no solo se negará a arrancar: si hay un controlador de control de circuito integrado que distribuye energía, incluso el encendido no es un hecho que se encenderá.

Cada año, los circuitos eléctricos de los automóviles aumentan de tamaño y se vuelven más complejos en diseño. En los primeros autos producidos, el encendido funcionaba desde el magneto, y batería Y no había generador. Los faros usaban sopletes de acetileno.

En 1975, la longitud de los cables en la automoción diagrama de cableado equivalía a varios cientos de metros y era comparable a la electricidad de los aviones ligeros.

El deseo de simplificar el cableado fue el siguiente: solo se necesita un cable, conecte todos los consumidores y conecte un dispositivo de control a cada uno. Pase a través de este cable una corriente eléctrica a los consumidores y señales de control para los dispositivos.

Video

En 1991, gracias a un gran avance en la tecnología digital, Bosch e Intel crearon una interfaz de red CAN (Controller Area Network) para sistemas informáticos de a bordo con multiprocesador. En electrónica, dicho sistema se denomina "bus".

En un bus serie (bus serie), los datos se transmiten pulso a pulso sobre un par trenzado (dos hilos), y en un bus paralelo (bus paralelo), los datos viajan a lo largo de varios hilos al mismo tiempo.

Con mayor rendimiento, el bus paralelo complica el cableado del vehículo. El bus serial transmite información hasta 1 Mbps.

Diferentes bloques comparten datos, la regla por la cual esto sucede se llama protocolo. El protocolo puede enviar comandos a diferentes bloques, solicitar datos de uno o todos. Además de una llamada específica al dispositivo, el protocolo también puede establecer la importancia de los comandos. Por ejemplo, un comando para encender el ventilador de enfriamiento del motor tendrá prioridad sobre un comando para bajar la ventana lateral.

La minimización de la electrónica moderna hizo posible lanzar la producción de módulos de control y sistemas de comunicación económicos. En la red automotriz, se pueden combinar en cadenas, estrellas y anillos.

La información va en ambos sentidos, por ejemplo, al encender la lámpara haz alto, la señal en el panel de instrumentos se encenderá, brille o no.
El sistema de gestión del motor selecciona Mejor modo, recibiendo datos de todos los dispositivos de la cadena, el sistema de iluminación encenderá o apagará los faros, el sistema de navegación trazará o cambiará la ruta, etc.

Gracias a este protocolo se ha simplificado la diagnosis del motor y de otros dispositivos del coche.

El deseo de tener un solo cable en el automóvil no se hizo realidad, pero el módulo CAN y el protocolo de transferencia de datos aumentaron la confiabilidad del sistema y simplificaron el cableado.

Video

Bus CAN: ¿qué es?

CAN - bus ("can bus") es un sistema de control para todos electrodomésticos y comunicación digital en el automóvil, que puede recibir información de dispositivos, intercambiar datos entre ellos y también controlarlos. datos sobre condición técnica y las señales de control pasan digitalmente por par trenzado gracias a un protocolo especial. La energía se suministra desde la red a bordo del vehículo a cada consumidor, pero todos están conectados en paralelo. Esta opción aumentó la confiabilidad de todo el circuito eléctrico, redujo la cantidad de cables y simplificó la instalación.

En este momento casi todos coche moderno equipados con ordenadores de a bordo, EBD, elevalunas eléctricos y muchos otros dispositivos electrónicos. Ahora dicho equipo puede controlar no solo mecánico, sino también neumático, así como sistemas hidraulicos carros. E incluso el motor no puede prescindir de la electrónica. Tiene un dispositivo especial - CAN-bus. De eso vamos a hablar hoy.

Historial de ocurrencia

El concepto de CAN-bus apareció por primera vez en los años 80 del siglo pasado. Luego, la conocida empresa alemana Bosch, junto con Intel, desarrolló un nuevo dispositivo digital para la transmisión de datos, que se denominó

¿Qué puede hacer ella?

Este bus puede interconectar todos los sensores, bloques y controladores que hay en el coche. CAN puede comunicarse con el inmovilizador, SRS, ESP, ECM, transmisión e incluso bolsas de aire. Además, el neumático está en contacto con sensores de suspensión y control de clima. Todos estos mecanismos se conectan en modo dúplex con hasta 1 Mbps.

Bus CAN: descripción y características del dispositivo.

Por toda su funcionalidad este mecanismo consta de sólo dos cables y un chip. Anteriormente, para conectarse con todos los sensores, el bus CAN estaba equipado con docenas de enchufes. Y si en los años 80 solo se transmitía una señal en cada cable, ahora este valor llega a cientos.

El bus CAN moderno también es diferente porque tiene la función de conectarse a teléfono móvil. También se puede conectar un llavero electrónico que actúa como llave de encendido a este dispositivo y recibir información de la unidad de control del motor.

También es importante que esta herramienta pueda predeterminar fallas en el funcionamiento del equipo de la máquina y, en algunos casos, eliminarlas. Es prácticamente inmune a las interferencias y tiene un buen aislamiento de contactos. El bus CAN tiene un algoritmo de operación muy complicado. Los datos que se transmiten a través de él en bits se convierten instantáneamente en marcos. Un par de espiras de 2 hilos sirve como conductor de información. También existen productos de fibra óptica, pero son menos eficientes en su funcionamiento, por lo que no son tan habituales como las primeras opciones. El menos común es el bus CAN, que transmite información a través de un canal de radio o

Funcionalidad y rendimiento

Para mejorar el rendimiento de este dispositivo, los fabricantes suelen acortar la longitud de sus cables. Si la longitud total del bus es inferior a 10 metros, la tasa de transferencia de información aumentará a 2 megabits por segundo. Por lo general, a esta velocidad, el mecanismo transmite datos de 64 sensores y controladores electrónicos. Si se conectan más dispositivos al bus, se crean varios circuitos para recibir y transmitir información.

El coche moderno está equipado bloques electronicos control de varios sistemas: motor, Sistema de freno antibloqueo frenos, carrocería y otros. Esencialmente, estos bloques son microcomputadoras.

Para comprender qué es un bus CAN en un automóvil, imagine que en el automóvil se organiza una red local a la que se conectan estas microcomputadoras para que funcionen en un complejo.

Esto es similar a cómo las computadoras de la oficina se conectan a una red para que los empleados puedan obtener información fácilmente entre sí, y el jefe tiene la oportunidad de controlar rápidamente el trabajo de los empleados de la oficina.

Actúa como el jefe en el coche. ordenador de a bordo y sistema de diagnóstico.

Historia del desarrollo y unificación de la Red de Área del Controlador

BOSCH, realizando investigaciones en el campo de la automatización en los años 80 del siglo pasado, propuso un estándar de comunicación de microcontroladores que también podría aplicarse en la industria automotriz.

El estándar CAN se usa no solo en automóviles. Actualmente, se utiliza en el concepto de "hogar inteligente", automatización industrial, etc.

Aplicado a tecnología automotriz el estándar CAN (Controller Area Network) se adapta al bus con una capa física. Se organiza mediante un par de conductores trenzados, a lo largo de los cuales van paquetes de señales de diferente polaridad.

Dicho estándar ha recibido la clasificación internacional ISO 11898. Una trama (paquete) incluye una señal de información de 11 bits (o 29 bits en modo extendido).

En general, un bus CAN no necesariamente puede implementarse utilizando un par trenzado de conductores. Puede ser tanto de fibra óptica como de canal de radio.

Se puede suponer que con la introducción de vehículos no tripulados Vehículo El bus CAN se está transformando en una interfaz móvil para transmitir información de uno, y posiblemente incluso de un complejo de vehículos.

Car CAN bus: qué es y cómo funciona

El bus es una red local a través de la cual se intercambia información entre las unidades de control de varios sistemas del vehículo. Así, la unidad de control, por ejemplo, un motor de automóvil, además del microcontrolador principal, sirviendo el motor, asume la presencia de un controlador CAN que genera pulsos en dos buses: CAN-alto y CAN-bajo (H y L).

Estas señales son transmitidas por conductores (par trenzado) por el transceptor. Los transceptores, o transceptores, están diseñados para:

  • amplificación de señal,
  • asegurar la inmunidad al ruido de los pulsos transmitidos;
  • ajustar la tasa de bits del flujo digital;
  • protección de línea en caso de daños en el bus CAN.

Ahora, en la tecnología automotriz, se utilizan los siguientes tipos de transceptores: alta velocidad y tolerancia a fallas. El transmisor de alta velocidad proporciona una velocidad de transferencia de información relativamente alta: hasta 1 megabit por segundo. El segundo tipo de transmisor tiene una tasa de transferencia de información más baja: hasta 120 kilobits por segundo. Por otro lado, es menos sensible (tolerante a errores) a la calidad del bus CAN, y permite desviaciones en sus parámetros.

Esquema de organización de intercambio de datos

El diagrama de bloques de la conexión de varios bloques de vehículos al bus CAN se puede representar de la siguiente manera:

Para que coincidan todos los dispositivos, es decir, para organizar las condiciones óptimas y la velocidad de recepción y transmisión, las impedancias de salida de los transmisores deben ser aproximadamente las mismas.

En caso de apagado o daño a cualquiera de las unidades de control de los sistemas del vehículo, la resistencia del bus cambia, se viola la coincidencia de resistencia, lo que conduce a una disminución significativa en la velocidad de transferencia de información a través del bus. Tales violaciones pueden conducir a una pérdida total de comunicación en el bus CAN.

En algunos vehículos, se usa un módulo de puerta de enlace separado para solucionar problemas de sincronización de información CAN.

Cada mensaje transmitido por el bus CAN tiene su propio identificador, como "temperatura del refrigerante" y un código correspondiente a su valor, como "98,7 grados Celsius". Estos no serán necesariamente valores absolutos, en la mayoría de los casos son unidades binarias relativas, que luego se convierten en señales de control y monitoreo.

Las herramientas de diagnóstico utilizan los mismos datos para monitorear y procesar información sobre los sistemas principales del automóvil.

Los principales modos de funcionamiento del bus CAN:

  • activo (encendido conectado);
  • dormir (cuando el encendido está apagado);
  • despertarse y quedarse dormido (cuando se enciende y se apaga el encendido).

Durante el modo de suspensión, el consumo de corriente del bus es mínimo. Sin embargo, al mismo tiempo, se transmiten señales a través del autobús (a una frecuencia más baja) sobre el estado de apertura de puertas y ventanas y otros sistemas relacionados con las funciones de seguridad del automóvil.

La mayoría de los dispositivos de diagnóstico modernos tienen un modo para diagnosticar errores a través del bus CAN. Técnicamente, esto se organiza conectando directamente los conductores al conector de diagnóstico.

Ventajas y desventajas de usar el bus CAN en un automóvil

Debemos comenzar con el hecho de que si el estándar CAN no se hubiera propuesto en los años 80 del siglo pasado, seguramente ocuparía su lugar otro tipo de interacción entre los sistemas del vehículo.

Es posible, por supuesto, colocar todas las unidades de control de los sistemas del automóvil en un solo superbloque, en el que el software garantice la interacción de los diferentes sistemas. Tales intentos fueron realizados por fabricantes franceses. Sin embargo, con el aumento de la funcionalidad y el rendimiento, la probabilidad de fallas aumenta significativamente. Las fallas, como los limpiaparabrisas, pueden provocar que no arranque el motor.

Las principales ventajas de utilizar el bus CAN:

  • la posibilidad de realizar el control operativo y;
  • combinar flujos de información en un solo canal protegido contra el ruido;
  • universalidad, contribuyendo a la unificación de los procesos diagnósticos;
  • la capacidad de conectar sistemas de seguridad a través de CAN-bus (no es necesario tirar del cableado a cada elemento de control).

Desventajas del bus CAN:

  • baja confiabilidad;
  • el daño a una de las unidades de control puede conducir a la inoperancia completa de la conexión CAN.

Solución de problemas

No hay luz indicadora de falla CAN en el tablero del vehículo. Es posible juzgar que el rendimiento del bus CAN se ve afectado por indicadores indirectos:

  • varias luces indicadoras de mal funcionamiento en el tablero al mismo tiempo;
  • indicadores de temperatura del refrigerante, niveles de combustible desaparecieron;

En primer lugar, debe realizar un diagnóstico. Si indica una falla en el bus CAN, debe comenzar a solucionar el problema.

Secuencia de trabajo:

  1. Localice los conductores de bus de par trenzado. A menudo tienen negro ( nivel alto) y naranja-marrón (bajo).
  2. Verifique el voltaje en los conductores con el encendido conectado usando un multímetro. Los niveles no deben ser de 0 o más de 11 voltios (generalmente alrededor de 4,5 voltios).
  3. Apague el encendido, retire el terminal de la batería. Medir la resistencia entre conductores. Si tiende a cero, entonces hay un cortocircuito en el bus, si tiende a infinito, hay un abierto.
  4. Comience a buscar un circuito abierto o un cortocircuito.
  5. Si existe la sospecha de que el cortocircuito del bus se debe a la falla de alguna unidad de control, puede apagar las unidades de control secuencialmente y monitorear la resistencia y el rendimiento del bus.

El mal funcionamiento del bus CAN se refiere a mal funcionamiento complejo del equipo eléctrico del vehículo. Si el propietario del automóvil no tiene las habilidades de reparación eléctrica necesarias, es mejor utilizar los servicios de un especialista.

Un automóvil moderno no es solo un medio de transporte, sino también un dispositivo avanzado con funciones multimedia y sistema electrónico unidades de control y un montón de sensores. Muchos fabricantes de automóviles ofrecen las funciones de asistentes de tráfico, asistentes de estacionamiento, monitoreo y control de automóviles desde su teléfono. Esto es posible gracias al uso de un bus CAN en el coche al que están conectados todos los sistemas: motor, sistema de frenos, volante, multimedia, clima, etc.

Mi coche Skoda Octavia 2011 en adelante no ofrece opciones de control desde el teléfono, así que decidí corregir esta deficiencia y, al mismo tiempo, agregar una función de control por voz. Como puerta de enlace entre el bus CAN y el teléfono, uso una Raspberry Pi con escudo CAN BUS y un enrutador WiFi TP-Link. El protocolo de comunicación para unidades de automóviles está cerrado y Volkswagen se negó a proporcionar documentación del protocolo a todas mis cartas. Por lo tanto, la única forma de averiguar cómo se comunican los dispositivos en un automóvil y aprender a controlarlos es aplicar ingeniería inversa al protocolo de bus CAN de VW.

Lo hice paso a paso:

  1. Conexión al bus CAN del coche
  2. Control por voz con Homekit y Siri
Al final de la ventana de control de voz de video.

Desarrollo de escudo CAN para Raspberry Pi

Tomé el esquema de escudo aquí lnxpps.de/rpie, también hay una descripción de los pines, se usan 2 microcircuitos MCP2515 y MCP2551 para comunicarse con CAN. 2 cables CAN-High y CAN-Low están conectados al blindaje. En SprintLayout 6, extendí el tablero, tal vez CANBoardRPi.lay sea útil para alguien (en la foto del título, el prototipo del escudo en el tablero).

Instalación del software de bus CAN

En Raspbian 2-x años, necesitaba parchear bcm2708.c para agregar soporte CAN (tal vez esto no sea necesario ahora). Para trabajar con el bus CAN, debe instalar el paquete de utilidades can-utils desde github.com/linux-can/can-utils, luego cargue los módulos y levante la interfaz can:

# inicializar insmod spi-bcm2708 insmod can insmod can-dev insmod can-raw insmod can-bcm insmod mcp251x # Maerklin Gleisbox (60112 y 60113) usa 250000 # modo de bucle invertido para probar el enlace ip establecido can0 type can bitrate 125000 loopback on ifconfig can0 up
Comprobamos que la interfaz CAN ha subido con el mando ifconfig:

Puedes comprobar que todo funciona enviando un comando y recibiéndolo.

En una terminal escuchamos:

[correo electrónico protegido]~ # candump cualquier,0:0,#FFFFFFFF
En otra terminal enviamos:

[correo electrónico protegido]~ #cansend can0 123#deadbeef
Un proceso de instalación más detallado se describe aquí lnxpps.de/rpie.

Conexión al bus CAN del coche

Después de un pequeño estudio de la documentación abierta en el bus VW CAN, descubrí que uso 2 buses.

Puede transportar unidad de poder , que transmite datos a una velocidad de 500 kbit/s, vincula todas las unidades de control que dan servicio a esta unidad.

por ejemplo, a Puede transportar Los siguientes dispositivos se pueden conectar a la unidad de potencia:

  • la unidad de control del motor,
  • centralita ABS
  • unidad de control del sistema de estabilización del tipo de cambio,
  • unidad de control de la caja de cambios,
  • unidad de control de bolsas de aire,
  • Combinación de instrumentos.
Bus CAN para sistema de confort y sistema de infoentretenimiento, que permite transferir datos a una velocidad de 100 kbit/s entre las unidades de control que dan servicio a estos sistemas.

Por ejemplo, al bus CAN del sistema de confort e información<командной системы могут быть
los siguientes dispositivos están conectados:

  • unidad de control para el sistema Climatronic o el sistema de aire acondicionado,
  • unidades de control en puertas de automóviles,
  • unidad de control del sistema de confort,
  • unidad de control con pantalla para sistema de radio y navegación.
Habiendo accedido al primero, puedes controlar el movimiento (en mi versión sobre la mecánica, al menos puedes controlar el control de crucero), teniendo acceso al segundo, puedes controlar la radio, el clima, el cierre centralizado, la potencia. lunas, faros, etc.

Ambos buses se conectan a través de una puerta de enlace, que se encuentra en el área debajo del volante, también se conecta un conector de diagnóstico OBD2 a la puerta de enlace, lamentablemente, no puede escuchar el tráfico de ambas llantas a través del conector OBD2, solo puede enviar un comando y solicitar un estado. Decidí que trabajaría solo con el bus Comfort, y el lugar más conveniente para conectarme al bus era el conector en la puerta del conductor.

Ahora puedo escuchar todo lo que sucede en el bus Comfort CAN y enviar comandos.

Desarrollo de un sniffer y estudio del protocolo CAN bus


Después de obtener acceso para escuchar el bus CAN, necesito descifrar quién está transmitiendo a quién y qué. El formato del paquete CAN se muestra en la figura.

Todas las utilidades del conjunto can-utils pueden analizar los paquetes CAN y devolver solo información útil, a saber:

  • identificador
  • Longitud de datos
  • Datos
Los datos se transmiten sin cifrar, lo que facilitó el aprendizaje del protocolo. En la Raspberry Pi, escribí un pequeño servidor que redirige los datos de candump a TCP/IP para analizar el flujo de datos en la computadora y mostrarlos maravillosamente.

Para macOS, escribí una aplicación simple que agrega una celda a la tabla para cada dirección de dispositivo, y en esta celda ya puedo ver qué datos están cambiando.

Presiono el botón de la ventana de encendido, encontré la celda en la que cambian los datos, luego determiné qué comandos corresponden a presionar hacia abajo, presionar hacia arriba, mantener hacia arriba, mantener hacia abajo.

Puedes comprobar que el comando funciona enviando desde la terminal, por ejemplo, el comando para subir la ventana izquierda:

Cansend can0 181#0200
Comandos transmitidos por dispositivos vía bus CAN en automóviles VAG (Skoda Octavia 2011), obtenidos por ingeniería inversa:

// Vidrio frontal izquierdo arriba 181#0200 // Vidrio frontal izquierdo abajo 181#0800 // Vidrio frontal derecho arriba 181#2000 // Vidrio frontal derecho abajo 181#8000 // Vidrio trasero izquierdo arriba 181#0002 // Vidrio trasero izquierdo Abajo 181#0008 // Cristal trasero derecho arriba 181#0020 // Cristal trasero derecho abajo 181#0080 // Cerradura central abierta 291#09AA020000 // Cerradura central cerrada 291#0955040000 // Actualización del estado de la luz de la cerradura central (cuando envía un comando abre / cierra la cerradura, luego el LED en el botón de control de la cerradura no cambia de estado, por lo que muestra el estado real de la cerradura central, debe enviar un comando de actualización) 291 # 0900000000
Era demasiado perezoso para explorar todos los demás dispositivos, así que en esta lista, solo lo que me interesaba.

Desarrollo de aplicaciones para teléfonos

Usando los comandos recibidos, escribí una aplicación para iPhone, que abre / cierra ventanas y controla la cerradura central.

En la Raspberry Pi, inicié 2 pequeños servidores, el primero envía datos de candump a TCP/IP, el segundo recibe comandos del iPhone y los envía a cansend.


Fuentes de aplicaciones de control automático para iOS

// // FirstViewController.m // Car Control // // Creado por Vitaliy Yurkin el 17/05/15. // Copyright (c) 2015 Vitaliy Yurkin. Reservados todos los derechos. // #import "FirstViewController.h" #import "DataConnection.h" #import "CommandConnection.h" @interface FirstViewController () @property (no atómico, fuerte) DataConnection *dataConnection; @property (no atómico, fuerte) CommandConnection *commandConnection; @property (débil, no atómica) IBOutlet UILabel *Door_1; @property (débil, no atómica) IBOutlet UILabel *Door_2; @property (débil, no atómica) IBOutlet UILabel *Door_3; @property (débil, no atómica) IBOutlet UILabel *Door_4; @property (débil, no atómica) IBOutlet UIButton *CentralLock; - (Acción IBA) bloquear Desbloquear: (UIButton *) remitente; @end @implementation FirstViewController - (void)viewDidLoad ( self.dataConnection = ; self.dataConnection.delegate = self; ; self.commandConnection = ; ; ) - (void)didReceiveMemoryWarning ( ; // Deshágase de cualquier recurso que se pueda recrear. ) - (void)doorStatusChanged:(char)value ( /* 1 - Puerta delantera izquierda 2 - Puerta delantera derecha 4 - Puerta trasera izquierda 8 - Puerta trasera derecha 3 - Puerta delantera izquierda y derecha = 1 + 3 5 - Puerta delantera y trasera izquierda = 1 + 4 */ // Puerta delantera izquierda if (valor & 1) ( self.Door_1.backgroundColor = ; self.Door_1.text = @"Open"; NSLog(@"1"); ) else ( self.Door_1. backgroundColor = ; self.Door_1.text = @"Cerrado"; ) // Puerta delantera derecha if (value & 2) ( self.Door_2.backgroundColor = ; self.Door_2.text = @"Abierto"; NSLog(@"2 "); ) else ( self.Door_2.backgroundColor = ; self.Door_2.text = @"Cerrado"; ) // Puerta trasera izquierda if (value & 4) ( self.Door_3.backgroundColor = ; self.Door_3.text = @"Abrir"; NSLog(@"4"); ) else ( self.Door_3.backgroundColor = ; self.Puerta_3.text = @"Cerrado"; ) // Puerta trasera derecha if (valor & 8) ( self.Door_4.backgroundColor = ; self.Door_4.text = @"Open"; NSLog(@"8"); ) else ( self.Door_4.backgroundColor = ; self .Puerta_4.text = @"Cerrado";) ) BOOL firstStatusChange = YES; BOOL último estado; -(void) centralLockStatusChanged:(BOOL)status ( // En los primeros cambios de estado, establezca la variable lastStatus if (firstStatusChange) ( firstStatusChange = NO; // Invertir el estado, para pasar la siguiente prueba lastStatus = !status; ) // Cambiar imagen de bloqueo solo si el estado cambió if (!(lastStatus == status)) ( // Comprobar el estado if (status) ( forState:UIControlStateNormal]; ) else ( forState:UIControlStateNormal]; ) lastStatus = status; ) ) // Cristal frontal izquierdo - (IBAction)frontLeftUp:(UIButton *)sender ( ; ) - (IBAction)frontLeftDown:(id)sender ( ; ) // Vidrio frontal derecho - (IBAction)frontRightUp:(UIButton *)sender ( ; ) - (IBAction)frontRightDown :(id)sender ( ; ) // Vidrio trasero izquierdo - (IBAction)backLeftUp:(UIButton *)sender ( ; ) - (IBAction)backLeftDown:(id)sender ( ; ) // Vidrio trasero derecho - (IBAction)backRightUp :(UIButton *)sender ( ; ) - (IBAction)backtRightDown:(id)sender ( ; ) - (IBAction)lockUnlock:(UIButton *)sender ( // Si la cerradura central está cerrada if (lastStatus) ( // Open ; int64_t retraso en segundos = 1; // 1 segundo dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void)( ; )); ) else ( // Cerrar ; int64_t delayInSeconds = 1; // 1 segundo dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void)( ; )); ) ) @end


Hay una manera de no escribir su propia aplicación para el teléfono, pero para usar una lista para usar del mundo de los hogares inteligentes, solo necesita instalar un sistema de automatización en la Raspberry Pi.
 

¡Comparta este artículo en las redes sociales si fue útil!