LIN ( Red de interconexión local ) es un protocolo de red utilizado para la comunicación entre componentes en vehículos modernos . Es un protocolo serie 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 pies).
La necesidad de una red serial barata surgió a medida que crecieron las tecnologías y las instalaciones implementadas en el automóvil, mientras que el bus CAN era demasiado costoso de implementar para todos los componentes del automóvil. Los fabricantes de automóviles europeos empezaron a utilizar diferentes tecnologías de comunicación en serie, lo que generó problemas de compatibilidad.
A finales de la década de 1990, cinco fabricantes de automóviles ( BMW , Grupo Volkswagen , Audi , Volvo Cars , 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 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 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 designado por el Consejo de Gestión Técnica (TMB) de ISO 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 las inicia el maestro, no es necesario implementar una detección de colisión . [6]
El maestro y los esclavos suelen ser 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 pueden conectarse mediante una red troncal (es decir, CAN en los automóviles). [7]
El bus LIN es un protocolo de comunicaciones serie económico que soporta eficazmente aplicaciones remotas dentro de la red de un automóvil. Está especialmente destinado a nodos mecatrónicos en aplicaciones automotrices distribuidas, pero es igualmente adecuado para aplicaciones industriales. Su objetivo es complementar la red CAN existente y conducir a redes jerárquicas dentro de los automóviles.
A finales de la década de 1990, cinco fabricantes de automóviles europeos fundaron el Consorcio de la Red de Interconexión Local (LIN), 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 prever importantes funciones de diagnóstico e interfaces de herramientas adicionales.
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 monofilar de bajo coste 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...) (parcialmente) mediante software y está conectado a la red LIN a través de un transceptor LIN (en pocas palabras, un cambiador de nivel con algunos complementos). Trabajar como nodo LIN es sólo 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.
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 momento relativo en el que se inicia el envío del mensaje. Un marco LIN consta de dos partes, encabezado y respuesta . El encabezado siempre lo envía el maestro LIN, mientras que la respuesta la envía un esclavo LIN dedicado o el propio maestro LIN.
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 ni de parada). Las velocidades de bits varían dentro del rango de 1 kbit/s a 20 kbit/s. Los datos del bus se dividen en recesivos (lógico ALTO) y dominantes (lógico BAJO). El tiempo normalmente lo considera la fuente de reloj estable del LIN Masters; la entidad más pequeña es el tiempo de un bit (52 μs a 19,2 kbit/s).
Dentro del 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 específico, los nodos entran en modo de suspensión y serán liberados nuevamente al estado activo mediante una trama DE DESPERTAR. 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 activado por su aplicación de software interna. Una vez que se despiertan todos los nodos, el Maestro continúa programando el siguiente Identificador.
El encabezado consta de cinco partes:
BREAK: El campo BREAK se utiliza para activar todos los esclavos LIN conectados para escuchar las siguientes partes del encabezado. Consta de un bit inicial y varios bits dominantes. La longitud es de al menos 11 bits; El uso estándar hoy en día son tiempos de 13 bits y, por lo tanto, difiere del formato de datos básico. Esto se utiliza para garantizar que los nodos LIN de escucha con un reloj principal diferente de la velocidad en baudios del bus establecida en rangos especificados detecten la INTERRUPCIÓN 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 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 de baudios 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 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 de la carga útil.
IDENTIFICADOR: El IDENTIFICADOR define una acción que debe cumplir uno o varios de los nodos esclavos LIN conectados. 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 cuadro).
Si el identificador hace que un esclavo LIN físico envíe la respuesta, el identificador puede denominarse identificador Rx. Si la tarea esclava 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 RESPUESTA LIN de la trama LIN. Cuando una trama LIN particular se transmite completamente, encabezado + respuesta, por LIN MASTER, LIN MASTER utilizará 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.
La respuesta es enviada por una de las tareas esclavas LIN adjuntas y se divide en datos y suma de verificació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 dentro de LIN: la primera es la suma de verificació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.
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, una entrada, D 1 , y una salida, D 2 .
Cada pin de configuración D x (x=1-2) tiene circuitos adicionales para ayudar en la detección de posición.
Al inicio del procedimiento ningún dispositivo SNPD tiene un NAD asignado
1 Primer mensaje LIN de direccionamiento automático
2 mensajes LIN de direccionamiento automático posteriores
3 Todos los pull-ups y pull-downs se apagan 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 compensada
2 modos de dominadas
3 Modo de fuente actual
Esta técnica está amparada por las patentes EP 1490772 B1 y US 7091876.
LIN no es un reemplazo completo del bus CAN. Pero el bus LIN es una buena alternativa cuando los costes bajos son esenciales y la velocidad/ancho de banda no es importante. Normalmente, se utiliza dentro de 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 (Dirección de Nodo) que forma parte del PID (identificador protegido). Los valores de NAD están en 7 bits, por lo que están en el rango de 1 a 127 (0x7F) y son una composición de ID de proveedor, ID de función e ID de variante.
Puede obtener un ID de proveedor poniéndose en contacto con CAN en Automatización , que es la autoridad responsable de la asignación de dichos identificadores.
Varios autobuses de conectividad para vehículos (automotores):
La especificación LIN v2.2A (2010) se transcribió a la familia de documentos de normas oficiales ISO 17987. Las partes 1 a 7 de ISO se publicaron por primera vez en 2016, seguidas de la parte 8 en 2019.