LIN ( Red de interconexión local ) es un protocolo de red en serie que se utiliza para la comunicación entre componentes en vehículos. La necesidad de una red en serie barata surgió a medida que crecían las tecnologías y las instalaciones implementadas en el automóvil, mientras que el bus CAN era demasiado caro de implementar para todos los componentes del automóvil. Los fabricantes de automóviles europeos comenzaron a utilizar diferentes tecnologías de comunicación en serie, lo que generó problemas de compatibilidad.
A fines de la década de 1990, el Consorcio LIN fue fundado por cinco fabricantes de automóviles ( BMW , Volkswagen Group , Audi , Volvo Cars , Mercedes-Benz ), con las tecnologías suministradas (experiencia en redes y hardware) de Volcano Automotive Group y Motorola . La primera versión completamente implementada de la nueva especificación LIN (LIN versión 1.3) se publicó en noviembre de 2002. En septiembre de 2003, se introdujo la versión 2.0 para ampliar las capacidades y hacer provisiones para funciones de diagnóstico adicionales. LIN se puede utilizar también sobre la batería del vehículo la línea de alimentación con un transceptor LIN sobre DC línea de alimentación especial (DC-LIN).
LIN sobre línea de alimentación de CC (DC-LIN) se estandarizó como ISO / AWI 17987-8. [1]
CAN in Automation ha sido designado por la Junta de Gestión Técnica (TMB) de ISO como la Autoridad de Registro para el ID de Proveedor LIN estandarizado en la serie ISO 17987.
Topología de la red
LIN es una red de transmisión en serie que comprende 16 nodos (un maestro y normalmente hasta 15 esclavos). [2] [3] [4] [5]
Todos los mensajes son iniciados por el maestro con como máximo un esclavo respondiendo a un identificador de mensaje dado. El nodo maestro también puede actuar como esclavo respondiendo a sus propios mensajes. Dado que todas las comunicaciones son iniciadas por el maestro, no es necesario implementar una detección de colisiones . [6]
El maestro y los esclavos son típicamente microcontroladores , pero pueden implementarse en hardware especializado o ASIC para ahorrar costos, espacio o energía.
Los usos actuales combinan la eficiencia de bajo costo de LIN y sensores simples para crear redes pequeñas. Estos subsistemas se pueden conectar mediante una red troncal (es decir, CAN en los automóviles). [7]
Descripción general
El bus LIN es un protocolo de comunicaciones en serie de bajo costo, que soporta de manera efectiva la aplicación remota dentro de la red de un automóvil. Está especialmente diseñado para nodos mecatrónicos en aplicaciones automotrices distribuidas, pero es igualmente adecuado para aplicaciones industriales. Su objetivo es complementar la red CAN existente que conduce a redes jerárquicas dentro de los automóviles.
A fines de la década de 1990, el Consorcio de Red de Interconexión Local (LIN) fue fundado por cinco fabricantes de automóviles europeos, Mentor Graphics (anteriormente Volcano Automotive Group) y Freescale (anteriormente Motorola , ahora NXP ). La primera versión completamente implementada de la nueva especificación LIN se publicó en noviembre de 2002 como LIN versión 1.3. En septiembre de 2003, se introdujo la versión 2.0 para ampliar las capacidades de configuración y hacer provisiones para importantes funciones de diagnóstico e interfaces de herramientas adicionales.
Las principales características del protocolo se enumeran a continuación:
- Maestro único, hasta 16 esclavos (es decir, sin arbitraje de bus). Este es el valor recomendado por el Consorcio LIN para lograr una respuesta de tiempo determinista. [8]
- La detección de posición de nodo esclavo (SNPD) permite la asignación de direcciones de nodo después del encendido [9]
- Comunicaciones de un solo cable hasta 19,2 kbit / sa 40 metros de longitud de bus. [8] [10] En la especificación LIN 2.2, [9] la velocidad hasta 20 kbit / s.
- Tiempos de latencia garantizados.
- Longitud variable de la trama de datos (2, 4 y 8 bytes).
- Flexibilidad de configuración.
- Recepción multidifusión con sincronización horaria, sin cristales ni resonadores cerámicos .
- Suma de comprobación de datos y detección de errores.
- Detección de ganglios defectuosos.
- Implementación de silicio de bajo costo basada en hardware UART / SCI estándar .
- Habilitador de redes jerárquicas.
- Voltaje de funcionamiento de 12 V. [8]
Los datos se transfieren a través del bus en mensajes de forma fija de longitudes seleccionables. La tarea maestra transmite un encabezado que consta de una señal de interrupción seguida de campos de sincronización e identificación. Los esclavos responden con una trama de datos que consta de entre 2, 4 y 8 bytes de datos más 3 bytes de información de control. [9]
Marco de mensaje LIN
Un mensaje contiene los siguientes campos: [9]
- Interrupción de sincronización
- Byte de sincronización
- Byte identificador
- Bytes de datos
- Byte de suma de comprobación
Tipos de tramas
- Marco incondicional. Estos siempre llevan señales y sus identificadores están en el rango de 0 a 59 (0x00 a 0x3b). Todos los abonados de la trama incondicional recibirán la trama y la pondrán a disposición de la aplicación (suponiendo que no se hayan detectado errores).
- Fotograma desencadenado por eventos. El propósito de esto es aumentar la capacidad de respuesta del clúster LIN sin asignar demasiado ancho de banda del bus al sondeo de múltiples nodos esclavos con eventos que ocurren raramente. El primer byte de datos de la trama incondicional transportada será igual a un identificador protegido asignado a una trama activada por evento. Un esclavo responderá con una trama incondicional asociada solo si su valor de datos ha cambiado. Si ninguna de las tareas esclavas responde al encabezado, el resto de la ranura de la trama permanece en silencio y el encabezado se ignora. Si más de una tarea esclava responde al encabezado en la misma ranura de trama, se producirá una colisión y el maestro tiene que resolver la colisión solicitando todas las tramas incondicionales asociadas antes de volver a solicitar la trama activada por evento.
- Marco esporádico. Esta trama es transmitida por el maestro según sea necesario, por lo que no puede ocurrir una colisión. El encabezado de una trama esporádica solo se enviará en su intervalo de trama asociado cuando la tarea maestra sepa que se ha actualizado una señal transportada en la trama. El editor del marco esporádico siempre proporcionará la respuesta al encabezado.
- Marco de diagnóstico. Estos siempre llevan datos de diagnóstico o de configuración y siempre contienen ocho bytes de datos. El identificador es 60 (0x3C), llamado marco de solicitud maestro, o 61 (0x3D), llamado marco de respuesta esclavo. Antes de generar el encabezado de una trama de diagnóstico, la tarea maestra pregunta a su módulo de diagnóstico si se enviará o si el bus estará en silencio. Las tareas esclavas publican y se suscriben a la respuesta de acuerdo con su módulo de diagnóstico.
- Marco definido por el usuario. Estos pueden llevar cualquier tipo de información. Su identificador es 62 (0x3E). El encabezado de una trama definida por el usuario siempre se transmite cuando se procesa una ranura de trama asignada a la trama
- Marco reservado. Estos no se deben utilizar en un clúster LIN 2.0. Su identificador es 63 (0x3F).
Hardware LIN
La especificación LIN fue diseñada para permitir el uso de nodos de hardware muy baratos dentro de una red. Es una red de un solo cable de bajo costo basada en ISO 9141 . [11] En las topologías de redes de automóviles actuales, se utilizan microcontroladores con capacidad UART o hardware LIN dedicado. El microcontrolador genera todos los datos LIN necesarios (protocolo ...) (en parte) por software y se conecta a la red LIN a través de un transceptor LIN (simplemente hablando, un cambiador de nivel con algunos complementos). Trabajar como un nodo LIN es solo una parte de la funcionalidad posible. El hardware LIN puede incluir este transceptor y funciona como un nodo LIN puro sin funcionalidad adicional.
Como los nodos LIN Slave deberían ser lo más baratos posible, pueden generar sus relojes internos utilizando osciladores RC en lugar de osciladores de cristal (cuarzo o cerámica). Para garantizar la estabilidad de la velocidad en baudios dentro de una trama LIN, se utiliza el campo SYNC dentro del encabezado.
Protocolo LIN
El LIN-Master utiliza una o más tablas de programación predefinidas para iniciar el envío y la recepción al bus LIN. Estas tablas de programación contienen al menos el tiempo relativo en el que se inicia el envío del mensaje. Un marco LIN consta del encabezado y la respuesta de dos partes . El encabezado siempre lo envía el LIN Master, mientras que la respuesta la envía un LIN-Slave dedicado o el propio LIN master.
Los datos transmitidos dentro del LIN se transmiten en serie como bytes de datos de ocho bits con un bit de inicio, un bit de parada y sin paridad (el campo de interrupción no tiene un bit de inicio y un bit de parada). Las velocidades de bits varían dentro del rango de 1 kbit / sa 20 kbit / s. Los datos del bus se dividen en recesivos (lógico ALTO) y dominantes (lógico BAJO). El tiempo normal es considerado por la fuente de reloj estable del LIN Masters, la entidad más pequeña es un tiempo de bit (52 µs @ 19,2 kbit / s).
En el protocolo LIN se utilizan dos estados de bus (modo de reposo y activo). Mientras los datos están en el bus, se solicita a todos los nodos LIN que estén en estado activo. Después de un tiempo de espera especificado, los nodos ingresan al modo de suspensión y serán liberados de nuevo al estado activo por una trama de WAKEUP. Esta trama puede ser enviada por cualquier nodo que solicite actividad en el bus, ya sea el LIN Master siguiendo su programa interno, o uno de los LIN Slaves conectados siendo activado por su aplicación de software interna. Una vez que se despiertan todos los nodos, el maestro continúa programando el siguiente identificador.
Encabezamiento
El encabezado consta de cinco partes:
BREAK: El campo BREAK se utiliza para activar todos los esclavos LIN adjuntos para escuchar las siguientes partes del encabezado. Consta de un bit de inicio y varios bits dominantes. La longitud es de al menos 11 bits de tiempo; El uso estándar a día de hoy son tiempos de 13 bits y, por lo tanto, difiere del formato de datos básico. Esto se utiliza para asegurar que los nodos LIN de escucha con un reloj principal que difiera de la velocidad en baudios del bus establecida en rangos especificados detectarán el BREAK como la trama que inicia la comunicación y no como un byte de datos estándar con todos los valores cero ( hexadecimal 0x00).
SYNC: SYNC es un byte de formato de datos estándar con un valor hexadecimal 0x55. Los esclavos LIN que funcionan con un oscilador RC usarán la distancia entre una cantidad fija de flancos ascendentes y descendentes para medir el tiempo de bit actual en el bus (el tiempo del maestro es normal) y recalcular la velocidad de transmisión interna.
ESPACIO INTERBYTE: El espacio entre bytes se utiliza para ajustar la fluctuación del bus. Es un componente opcional dentro de la especificación LIN. Si está habilitado, todos los nodos LIN deben estar preparados para manejarlo.
Hay un espacio entre bytes entre el campo BREAK y SYNC, uno entre SYNC e IDENTIFIER, uno entre la carga útil y la suma de comprobación y uno entre cada byte de datos en la carga útil.
IDENTIFICADOR: El IDENTIFICADOR define una acción a realizar por uno o varios de los nodos esclavos LIN adjuntos. El diseñador de la red debe garantizar la funcionalidad sin fallos en la fase de diseño (un esclavo puede enviar datos al bus en un tiempo de trama).
Si el identificador hace que un esclavo LIN físico envíe la respuesta, el identificador puede llamarse identificador Rx. Si la tarea esclava del maestro envía datos al bus, puede llamarse Tx-identifier.
ESPACIO DE RESPUESTA: El espacio de respuesta es el tiempo entre el campo IDENTIFICADOR y el primer byte de datos que inicia la parte LIN RESPONSE de la trama LIN. Cuando una trama LIN en particular se transmite completamente, Encabezado + Respuesta, por el LIN MASTER, LIN MASTER usará el TIEMPO DE ESPACIO DE RESPUESTA completo para calcular cuándo enviar la respuesta después de enviar el encabezado. Si la parte de respuesta de la trama LIN proviene de un NODO ESCLAVO físicamente diferente, entonces cada nodo (maestro y esclavo) utilizará el 50% del tiempo del Espacio de respuesta en sus cálculos de tiempo de espera.
Respuesta
La respuesta es enviada por una de las tareas esclavas LIN adjuntas y se divide en datos y suma de comprobación . [9]
DATOS: El esclavo que responde puede enviar de cero a ocho bytes de datos al bus. La cantidad de datos la fija el diseñador de la aplicación y refleja los datos relevantes para la aplicación en la que se ejecuta el esclavo LIN.
CHECKSUM: Hay dos modelos de suma de comprobación disponibles dentro de LIN: el primero es la suma de comprobación que incluye solo los bytes de datos (especificación hasta la Versión 1.3), el segundo incluye el identificador además (Versión 2.0+). El modelo de suma de comprobación utilizado está predefinido por el diseñador de la aplicación.
Detección de posición de nodo esclavo (SNPD) o dirección automática
Estos métodos permiten la detección de la posición de los nodos esclavos en el bus LIN y permiten la asignación de una dirección de nodo única (NAD). [12]
- Permite conectar dispositivos similares o iguales en el bus sin programación de fin de línea o programación de pines del conector.
Restricciones:
- Todos los esclavos con direccionamiento automático deben estar en una línea
- Los esclavos estándar se pueden conectar de cualquier forma
Método SNPD | ID del método SNPD | Empresa |
---|---|---|
Cadena de margarita de cable adicional | 0x01 | NXP (anteriormente Philips) |
Método de derivación de bus | 0x02 | Elmos Semiconductor |
Reservado | 0x03 | TBD |
Reservado | 0x04 | TBD |
Reservado | 0xFF | TBD |
Conexión en cadena de cable adicional (XWDC)
Cada nodo esclavo debe proporcionar dos pines adicionales, una entrada, D 1 , y una salida, D 2 .
- La primera entrada D1 del nodo SNPD se establece en GND o se conecta a la salida del maestro.
- La salida del primer nodo, D 2 , está conectada a la entrada, D 1 del segundo nodo, y así sucesivamente, lo que da como resultado una cadena tipo margarita.
Cada pin de configuración D x (x = 1-2) tiene un circuito adicional para ayudar en la detección de posición.
- Pull-up resistivo conmutable a V bat
- Desplegable a GND
- Comparador referenciado a V bat / 2
Procedimiento de direccionamiento automático XWDC
Al inicio del procedimiento, ningún dispositivo SNPD tiene un NAD asignado
1 Primer mensaje LIN de direccionamiento automático
- 1.1 Todas las salidas (D 2 ) están configuradas a un nivel alto, todos los desplegables están apagados
- 1.2 Se selecciona el primer nodo SNPD. Se identifica por tener la entrada D 1 baja (cableada).
- 1.3 El nodo seleccionado toma la dirección del mensaje de configuración LIN
- 1.4 El nodo detectado enciende el desplegable en la salida D 2
2 Mensajes LIN subsiguientes de direccionamiento automático
- 2.1 Se selecciona el primer nodo SNPD no direccionado. Se identifica por tener la entrada D 1 baja (D 2 del nodo anterior).
- 2.2 El nodo seleccionado toma la dirección del mensaje de configuración LIN
- 2.3 El nodo detectado enciende el desplegable en la salida D 2
- 2.4 Los pasos 2.1-2.4 se repiten hasta que a todos los nodos esclavos se les asigna una dirección
3 Todos los pull-ups y pull-downs se desactivan completando el procedimiento de direccionamiento.
Método de derivación de bus (BSM)
Cada nodo esclavo tiene dos pines LIN
- bus_in
- bus_out
Cada nodo esclavo necesita algunos circuitos adicionales en comparación con los circuitos LIN estándar para ayudar en la detección de posición.
- El pull-up estándar debe ser intercambiable
- Fuente de corriente conmutable de 2 mA desde V bat
- Resistencia de derivación
- Amplificador diferencial
- Conversor analógico a digital
Procedimiento de direccionamiento automático BSM
Al inicio del procedimiento, ninguno de los dispositivos SNPD tiene asignado un NAD. La rutina de direccionamiento automático se realiza durante el campo de sincronización. El campo de sincronización se divide en tres fases:
1 medición de la corriente de compensación
- 1.1 Todas las salidas pull-ups y fuentes de corriente están apagadas
- 1.2 Se mide la corriente de bus, me Offset
2 Modo pull-up
- 2.1 Los pull-ups están activados y las fuentes de corriente permanecen apagadas
- 2.2 Se mide la corriente del bus, I PU
- 2.3 Los nodos con ΔI = I PU - I offset <1 mA se "seleccionan"
3 Modo de fuente de corriente
- 3.1 Los nodos seleccionados encienden la fuente de corriente y otros apagan los pull-ups
- 3.2 Se mide la corriente de bus, I CS
- 3.3 Nodo con ΔI = I CS - I offset <1 mA se detecta como último nodo
- 3.4 Las fuentes de corriente se apagan y los pull-ups se encienden
- 3.5 El último nodo aceptará la dirección contenida en el mensaje de configuración LIN
Esta técnica está cubierta por las patentes EP 1490772 B1 y US 7091876.
Ventajas de LIN
- Fácil de usar
- Componentes disponibles
- Más barato que CAN y otros buses de comunicaciones
- Reducción de arnés
- Vehículos más confiables
- Extensión fácil de implementar.
- No se requiere tarifa de licencia de protocolo
LIN no es un reemplazo completo del bus CAN. Pero el bus LIN es una buena alternativa donde los bajos costos son esenciales y la velocidad / ancho de banda no es importante. Por lo general, se utiliza en subsistemas que no son críticos para el rendimiento o la seguridad del vehículo; a continuación se ofrecen algunos ejemplos.
Aplicaciones
Segmentos de aplicación | Ejemplos de aplicaciones específicas de LIN |
---|---|
Techo | Sensor, sensor de luz, control de luz, techo solar |
Volante | Control de crucero, limpiaparabrisas, luz de giro, control de clima, radio, bloqueo de ruedas |
Asiento | Motores de posición del asiento, sensores de ocupantes, panel de control |
Motor | Sensores, motores pequeños, motores de ventiladores de refrigeración |
Reja | Contraventana de rejilla |
Clima | Pequeños motores, panel de control |
Puerta | Espejo, ECU central, interruptor de espejo, elevalunas, interruptor de control del asiento, cerradura de puerta |
Iluminación | Mejora en el acabado del vehículo, placas de umbral iluminadas con LED RGB |
Direccionamiento
El direccionamiento en LIN se logra con un NAD (Node ADdress) que forma parte del PID (identificador protegido). Los valores NAD están en 7 bits, por lo que en el rango de 1 a 127 (0x7F) y es una composición de ID de proveedor, ID de función e ID de variante.
Puede obtener una identificación de proveedor comunicándose con CAN in Automation, que es la autoridad responsable de la asignación de dichos identificadores.
Herramientas de desarrollo
Al desarrollar y / o solucionar problemas del bus LIN, el examen de las señales de hardware puede ser muy importante. Los analizadores lógicos y los analizadores de bus son herramientas que recopilan, analizan, decodifican y almacenan señales para que las personas puedan ver las formas de onda de alta velocidad en su tiempo libre.
Ver también
- Lista de buses de la red
- LIN-CP
Referencias
- ^ . "ISO / AWI 17987-8" .
- ^ Mary Tamar Tan, Brian Bailey, Han Lin. "Microchip AN2059: conceptos básicos de LIN e implementación de la biblioteca de pila MCC LIN en microcontroladores PIC de 8 bits" .
- ^ "ATAN0049: Red LIN de dos cables" .
- ^ Steve Winder. "Fuentes de alimentación para conducción LED" . pag. 284
- ^ "La historia corta de LIN" .
- ^ "Concepto Lin" . Descripción general de LIN . Administración LIN. Archivado desde el original el 5 de octubre de 2011 . Consultado el 28 de octubre de 2011 .
- ^ "Aplicaciones de destino" . Descripción general de LIN . Administración LIN. Archivado desde el original el 5 de octubre de 2011 . Consultado el 28 de octubre de 2011 .
- ^ a b c "Laboratorio de Electrónica Vehicular Clemson: AUTOMOVILES" . Archivado desde el original el 14 de abril de 2012 . Consultado el 14 de enero de 2009 . 090114 cvel.clemson.edu
- ^ a b c d e Paquete de especificaciones LIN Rev.2.2a Archivado el 26 de abril de 2008 en Wayback Machine.
- ^ "Descripción de bus LIN, bus automotriz, red de interconexión local" . 090114 interfacebus.com
- ^ Descripción general técnica de LIN Archivado el 19 de julio de 2011 en la Wayback Machine.
- ^ Anand Gopalan, Akeem Whitehead. "Detección automática de la posición del nodo esclavo (SNPD)" .
enlaces externos
- Consorcio LIN ya no está disponible, porque la última especificación LIN (2.2A) se está transcribiendo a la ISO (Organización Internacional de Normalización) como parte del proceso para ser aceptada como norma ISO ISO 17987 Parte 1-7.
- Autoridad de registro de ID de proveedor de LIN Autoridad de registro para la ID de proveedor de LIN estandarizada en la serie ISO 17987
- Curso de formación LIN de inmersión profunda con ejemplos prácticos
- Entrenamiento CAN / LIN
- Breve información básica sobre CAN / LIN (chino)
- Artículo sobre una implementación de hardware / software libre y abierta del protocolo LIN
- Un analizador de protocolo LIN de código abierto basado en Arduino
- Plataforma basada en Arduino de código abierto con conectividad LIN
- Una calculadora de suma de comprobación LIN en línea gratuita