LIN ( Local Interconnect Network ) es un protocolo de red utilizado para la comunicación entre componentes de los vehículos modernos. Es un protocolo serial de un solo cable de bajo costo que admite comunicaciones de hasta 19,2 Kbit/s con una longitud máxima de bus de 40 metros (131,2 ft).
La necesidad de una red serial barata surgió a medida que las tecnologías y las facilidades implementadas en el automóvil crecieron, mientras que el bus CAN era demasiado costoso de implementar para cada componente del automóvil. Los fabricantes de automóviles europeos comenzaron a utilizar diferentes tecnologías de comunicación serial, lo que generó problemas de compatibilidad.
A finales de los años 90, cinco fabricantes de automóviles ( BMW , Volkswagen Group , Audi , Volvo Cars y Mercedes-Benz ) fundaron el Consorcio LIN , con las tecnologías suministradas (experiencia en redes y hardware) de Volcano Automotive Group y Motorola . La primera versión totalmente implementada de la nueva especificación LIN (LIN versión 1.3) se publicó en noviembre de 2002. En septiembre de 2003, se presentó la versión 2.0 para ampliar las capacidades y prever funciones de diagnóstico adicionales. LIN también se puede utilizar a través de la línea de alimentación de la batería del vehículo con un transceptor especial LIN sobre línea de alimentación de CC (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 designada por el Comité Técnico de Gestión de ISO (TMB) como Autoridad de Registro para el ID de Proveedor LIN estandarizado en la serie ISO 17987.
LIN es una red serial de transmisión que comprende 16 nodos (un maestro y hasta 15 esclavos). [2] [3] [4] [5]
Todos los mensajes son iniciados por el maestro y, como máximo, un esclavo responde a un identificador de mensaje determinado. El nodo maestro también puede actuar como esclavo respondiendo a sus propios mensajes. Debido a que todas las comunicaciones son iniciadas por el maestro, no es necesario implementar una detección de colisiones . [6]
El maestro y los esclavos suelen ser microcontroladores , pero pueden implementarse en hardware especializado o ASIC para ahorrar costes, espacio o energía.
Los usos actuales combinan la eficiencia de bajo costo de la LIN y sensores simples para crear redes pequeñas. Estos subsistemas pueden conectarse mediante una red troncal (es decir, la red CAN en los automóviles). [7]
El bus LIN es un protocolo de comunicación en serie económico que permite realizar aplicaciones remotas dentro de la red de un automóvil. Está especialmente pensado para nodos mecatrónicos en aplicaciones distribuidas de automoción, pero también es adecuado para aplicaciones industriales. Su objetivo es complementar la red CAN existente y dar lugar a redes jerárquicas dentro de los automóviles.
A finales de los años 90, cinco fabricantes de automóviles europeos, Mentor Graphics (antes Volcano Automotive Group) y Freescale (antes Motorola , ahora NXP ), fundaron el Consorcio de la Red de Interconexión Local (LIN) . La primera versión totalmente implementada de la nueva especificación LIN se publicó en noviembre de 2002 como versión LIN 1.3. En septiembre de 2003 se presentó la versión 2.0 para ampliar las capacidades de configuración y prever importantes funciones de diagnóstico adicionales e interfaces de herramientas.
Las principales características del protocolo se enumeran a continuación:
Los datos se transfieren a través del bus en mensajes de formato fijo 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 identificador. Los esclavos responden con una trama de datos que consta de 2, 4 u 8 bytes de datos más 3 bytes de información de control. [9]
Un mensaje contiene los siguientes campos: [9]
La especificación LIN fue diseñada para permitir el uso de nodos de hardware muy económicos 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 está conectado 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 funcionar como un nodo LIN puro sin funcionalidad agregada.
Como los nodos esclavos LIN deben ser lo más económicos posible, pueden generar sus relojes internos utilizando osciladores RC en lugar de osciladores de cristal (de cuarzo o de cerámica). Para garantizar la estabilidad de la velocidad en baudios dentro de una trama LIN, se utiliza el campo SYNC dentro del encabezado.
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. Una trama LIN consta de dos partes: encabezado y respuesta . 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 o de parada). Las velocidades de bits varían dentro del rango de 1 kbit/s a 20 kbit/s. Los datos en el bus se dividen en recesivos (lógico ALTO) y dominantes (lógico BAJO). El tiempo normalmente es considerado por la fuente de reloj estable de los maestros LIN, la entidad más pequeña es un tiempo de bit (52 μs a 19,2 kbit/s).
En el protocolo LIN se utilizan dos estados de bus: modo de suspensión 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 entran en modo de suspensión y se liberan de nuevo al estado activo mediante una trama de ACTIVACIÓN. Esta trama puede ser enviada por cualquier nodo que solicite actividad en el bus, ya sea el maestro LIN siguiendo su programación interna o uno de los esclavos LIN conectados que se activan mediante su aplicación de software interna. Una vez que se activan todos los nodos, el maestro continúa programando el próximo identificador.
El encabezado consta de cinco partes:
BREAK: El campo BREAK se utiliza para activar todos los esclavos LIN conectados para que escuchen las siguientes partes del encabezado. Consta de un bit de inicio y varios bits dominantes. La longitud es de al menos 11 bits; el uso estándar actual es de 13 bits y, por lo tanto, difiere del formato de datos básico. Esto se utiliza para garantizar que los nodos LIN que escuchan con un reloj principal diferente de la velocidad en baudios del bus establecida en rangos específicos detecten 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 se ejecutan en el oscilador RC utilizarán la distancia entre una cantidad fija de flancos ascendentes y descendentes para medir el tiempo de bit actual en el bus (el tiempo normal del maestro) y para recalcular la velocidad en baudios interna.
ESPACIO ENTRE BYTES: 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 los campos 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 que debe ser realizada por uno o varios de los nodos esclavos LIN conectados. El diseñador de la red debe garantizar el funcionamiento sin fallos en la fase de diseño (se permite que un esclavo envíe datos al bus en un intervalo de tiempo).
Si el identificador hace que un esclavo LIN físico envíe la respuesta, el identificador puede denominarse identificador Rx. Si la tarea del esclavo del maestro envía datos al bus, puede denominarse identificador Tx.
ESPACIO DE RESPUESTA: El espacio de respuesta es el tiempo entre el campo IDENTIFICADOR y el primer byte de datos que inicia la parte de RESPUESTA LIN de la trama LIN. Cuando una trama LIN particular se transmite completamente, Encabezado + Respuesta, por el LIN MASTER, el LIN MASTER utilizará todo el TIEMPO DE ESPACIO DE RESPUESTA 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 de Espacio de Respuesta en sus cálculos de tiempo de espera.
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.
SUMA DE VERIFICACIÓN: Hay dos modelos de suma de verificación disponibles en LIN: el primero es la suma de verificación que incluye únicamente los bytes de datos (especificación hasta la versión 1.3), el segundo incluye además el identificador (versión 2.0+). El modelo de suma de verificación utilizado está predefinido por el diseñador de la aplicación.
Estos métodos permiten detectar 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]
Restricciones:
Cada nodo esclavo debe proporcionar dos pines adicionales, uno de entrada, D 1 , y uno de salida, D 2 .
Cada pin de configuración D x (x = 1-2) tiene circuitos adicionales para ayudar en la detección de la posición.
Al inicio del procedimiento, ningún dispositivo SNPD tiene un NAD asignado
1 Primer mensaje LIN con direccionamiento automático
2 mensajes LIN de direccionamiento automático subsiguientes
3 Todos los pull-ups y pull-downs se desactivan completando el procedimiento de direccionamiento.
Cada nodo esclavo tiene dos pines LIN
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.
Al inicio del procedimiento, ninguno de los dispositivos SNPD tiene un NAD asignado. 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 corriente de compensación
2 Modo pull-up
3 Modo de fuente actual
Esta técnica está cubierta por las patentes EP 1490772 B1 y US 7091876.
El bus LIN no es un reemplazo completo del bus CAN, pero es una buena alternativa cuando los costos son esenciales y la velocidad o el ancho de banda no son importantes. 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.
El direccionamiento en LIN se logra con un NAD (Node ADdress) que es parte del PID (protected identifier). Los valores NAD están en 7 bits, es decir, en el rango de 1 a 127 (0x7F) y están compuestos por el ID del proveedor, el ID de la función y el ID de la variante.
Puede obtener un ID de proveedor contactando a CAN in Automation , que es la autoridad responsable de la asignación de dichos identificadores.
Varios buses de conectividad de vehículos (automotrices):
La especificación LIN v2.2A (2010) se transcribió en la familia de documentos de normas oficiales ISO 17987. Las partes 1 a 7 de la norma ISO se publicaron por primera vez en 2016, seguidas de la parte 8 en 2019.