You are on page 1of 4

Introduccin al Bus de Red Local de Interconexin (LIN)

Fecha de Publicacin: may 12, 2010 | 1 Calificaciones | 5,00 fuera de 5

Visin General
Red Local de Interconexin (LIN) es un estndar en red embebida de bajo costo para conectar dispositivos inteligentes juntos. LIN es ms popular en la industria automotriz.

Contenido
1. Informacin General sobre LIN 2. Formato de Marco LIN 3. Temporizacin del Bus LIN 4. Topologa y Comportamiento de LIN 5. Deteccin de Error de LIN y Confinamiento 6. LIN Sleep and Wakeup 7. Tipos de Marcos Avanzados 8. Interfaces PC LIN Recomendadas 9. Informacin LIN Adicional

1. Informacin General sobre LIN


El bus de Red Local de Interconexin (LIN) fue desarrollado para crear un estndar para comunicacin multiplexada de bajo costo en redes automotrices. A pesar que CAN cubre la necesidad para alto ancho de banda, redes de manejo de error avanzado, los costos de hardware y software por la implementacin de CAN se han vuelto prohibitivos para dispositivos de menor rendimiento como controladores de potencia de ventanas y asientos. LIN proporciona comunicacin rentable en aplicaciones donde el ancho de banda y la versatilidad de CAN no son requeridos. Puede implementar LIN prcticamente a un menor precio usando el transmisor/receptor estndar serial universal asincrnico (UART) embebido en la mayora de los microcontroladores modernos de bajo costo de 8 bits. Las redes automotrices modernas usan una combinacin de LIN para aplicaciones de bajo costo principalmente en electrnicos, CAN para comunicacin de tren de potencia y carrocera y el bus FlexRay para comunicaciones de datos sincronizados de alta velocidad en sistemas avanzados como suspensin activa. El bus LIN usa un enfoque maestro/esclavo que consta de un LIN maestro y uno o ms LIN esclavos.

Figura 1. Marco de Mensaje LIN El encabezado de mensaje consiste de una interrupcin usada para identificar el inicio del marco y el campo de sincronizacin usado por el nodo esclavo para sincronizacin de reloj. El identificador (ID) consta de un ID de mensaje de seis bits y un campo paridad de dos bits. El ID indica una direccin especfica de mensaje pero no el destino. Despus de la recepcin e interrupcin del ID, un esclavo comienza la respuesta del mensaje, la cual consiste de uno a ocho bytes de datos y una suma de verificacin de ocho bits. El maestro controla la secuencia de los marcos del mensaje, la cual es fija en un programa. Puede cambiar el programa segn se necesite. Hay varias versiones de LIN estndar. La versin 1.3 finaliz la comunicacin byte-layer. Las versiones 2.0 y 2.1 aaden ms especificaciones de mensajes y servicios pero son compatibles al nivel de byte con LIN 1.3.

Caracterstica LIN 1.3 LIN 2.0 Suma de verificacin mejorada Concepto de nodo esclavo Formato NCF Diagnsticos y configuracin de nodo esclavo Arreglos de bytes LIN 2.1 Nuevos servicios de configuracin de nodo esclavo Diagnsticos de esclavo clase I-III Direccin funcional Tabla de resolucin
1

Soportado por NI USB LIN S S1 S S1 S1 S1 S S1 S1 S1 S1 S1

Esta caracterstica no est soportada por el API; sin embargo, puede implementar la funcionalidad. Tabla 1. Comparacin de Versiones LIN 1.3, 2.0 y 2.1

2. Formato de Marco LIN

El bus LIN es un bus con un solo dispositivo maestro y uno o ms dispositivos esclavos. El dispositivo maestro contiene una tarea de maestro y una tarea de esclavo. Cada dispositivo esclavo tiene

1/4

www.ni.com

El bus LIN es un bus con un solo dispositivo maestro y uno o ms dispositivos esclavos. El dispositivo maestro contiene una tarea de maestro y una tarea de esclavo. Cada dispositivo esclavo tiene solamente una tarea de esclavo. La comunicacin a travs del bus LIN est controlada completamente por la tarea de maestro en el dispositivo maestro. La unidad bsica de transferencia en el bus LIN es el marco, el cual est dividido en un encabezado y una respuesta. El encabezado siempre es transmitido por el nodo maestro y consiste de tres diferentes campos: la interrupcin, la sincronizacin (symc) y el identificador (ID). La respuesta, la cual es transmitida por una tarea de esclavo y puede residir ya sea en el nodo maestro o un nodo esclavo, consiste de una carga til de datos y una suma de verificacin. Normalmente, la tarea de maestro consulta cada tarea de esclavo en un ciclo al transmitir un encabezado, el cual consiste de una secuencia de interrupcin-sincronizacin-ID. Antes de comenzar el LIN, cada tarea esclavo es configurada para publicar datos al bus o suscribir a datos en respuesta a cada ID de encabezado recibido. Despus de recibir el encabezado, cada tarea de esclavo verifica la paridad de ID y despus checa el ID para determinar si necesita publicar o suscribir. Si la tarea de esclavo necesita publicar una respuesta, transmite uno de los ochos bytes de datos al bus seguido de un byte de suma de verificacin. Si la tarea de esclavo necesita suscribirse, lee la carga til de los datos y el byte de la suma de verificacin del bus y procede de manera apropiada. Para comunicacin estndar de esclavo a maestro, el maestro publica el identificador a la red y solamente un esclavo responde con una carga de datos. La comunicacin de maestro a esclavo se logra por una tarea de esclavo diferente en el nodo maestro. Esta tarea auto recibe todos los datos publicados al bus y responde como si fuera un nodo esclavo independiente. Para transmitir bytes de datos, el maestro debe primero actualizar su respuesta interna a la tarea de esclavo con los valores de datos que desea transmitir. El maestro entonces publica el encabezado de marco adecuado y la tarea interna de esclavo transmite su carga de datos al bus.

Figura 2. Marco de Mensaje LIN 1. Interrupcin Cada marco de LIN comienza con la interrupcin, el cual consta de 13 bits dominantes (nominal) seguidos por un freno delimitador de un bit recesivo (nominal). Esto sirve como una nota de inicio del marco para todos los nodos en el bus. 2. Sincronizacin El campo de sincronizacin es el segundo campo transmitido por la tarea de maestro en el encabezado. La sincronizacin est definida por el carcter x55. El campo de sincronizacin permite a los dispositivos esclavos que realizan deteccin automtica de razn de transferencia para medir el periodo de la razn de transferencia y ajustar sus razones internas para sincronizarse con el bus. 3. ID El campo de ID es el campo final transmitido por la tarea de maestro en el encabezado. Este campo proporciona identificacin para cada mensaje en la red y finalmente determina cual nodo en la red recibe o responde a cada transmisin. Todas las tareas de esclavo escuchan continuamente a los campos de ID, verifican sus paridades y determinan si son publicadores o subscriptores para este identificador en particular. El bus LIN proporciona un total de 64 IDs. Los IDs 0 al 59 son usados para marcos (datos) de transmisin de seales, el 60 y 61 son usados para llevar datos de diagnstico, el 62 es reservado para extensiones identificadas por el usuario y el 63 es reservado para mejoramientos futuros del protocolo. El ID es transmitido a travs del bus como un byte de ID protegido, con los seis bits ms bajos que contienen ID original y los dos bits ms altos que contienen la paridad. ID(7:6) Protegido ID(5:0) Protegido P(0) ID(0) ^ ID(1) ^ ID(2) ^ ID(4) Tabla 2. Mtodo de Clculo de Paridad 4. Bytes de Datos El campo de bytes de datos es transmitido por la tarea de esclavo en la respuesta. Este campo contiene de uno a ocho bytes de carga til de datos. 5. Suma de Verificacin El campo de la suma de verificacin es transmitido por la tarea de esclavo en la respuesta. El bus LIN define el uso de uno de dos algoritmos de suma de verificacin para calcular el valor en el campo de la suma de verificacin de ocho bits. La suma de verificacin clsica es calculada al sumar solamente los bytes de datos, y la suma de verificacin mejorada es calculada al sumar los bytes de datos y el ID protegido. La especificacin LIN 2.0 define el proceso de clculo de la suma de verificacin como la suma de todos los valores y la deduccin de 255 cada vez que la suma es mayor o igual a 256 (distinto al mdulo-255 o mdulo-256). Segn la especificacin LIN 2.0, la suma de verificacin clsica es para uso con nodos esclavos LIN 1.3 y la suma de verificacin mejorada es para uso con nodos esclavos LIN 2.0. Especifica que los IDs 60 al 63, siempre deben usar la suma de verificacin clsica. La interfaz LIN ofrece un atributo para establecer el tipo de suma de verificacin, ya sea clsica o mejorada. El ajuste predeterminado es clsico. Conforme a la especificacin LIN 2.0, los IDs del 60 al 63 siempre usan la suma de verificacin clsica, sin importar la configuracin del atributo de la suma de verificacin. La Figura 3 ilustra cmo un encabezado de tarea de maestro y una respuesta de tarea de esclavo se combinan para crear un marco LIN completo. ID(5:0) 063

P(1) ID(1) ^ ID(3) ^ ID(4) ^ ID(5)

Figura 3. Creacin de Marcos LIN

3. Temporizacin del Bus LIN


Ya que el bus LIN es un bus obtenido, el procesamiento de cada marco tiene adjudicada una ranura de tiempo nominal como sigue: THeader_Nominal = 34 * TBit TResponse_Nominal = 10 * (NData + 1) * TBit TFrame_Nominal = THeader_Nominal + TResponse_Nominal El procesamiento de cada marco tiene adjudicada una ranura de tiempo nominal como sigue: THeader_Maximum = 14 * THeader_Nominal TResponse_Maximum = 1.4 * TResponse_Nominal TFrame_Maximum = THeader_Maximum + TResponse_Maximum

2/4

www.ni.com

4. Topologa y Comportamiento de LIN


El bus LIN conecta un solo dispositivo (nodo) maestro y un o ms dispositivos (nodos) esclavo juntos en un cluster LIN. El comportamiento de cada nodo se describe por su propio archivo de capacidad de nodo. Los archivos de capacidad del nodo son entradas a una herramienta definida por software, la cual genera un archivo de descripcin (LDF) que describe el comportamiento de todo el cluster. El LDF es analizado por un generador del sistema para generar automticamente el comportamiento especificado en los nodos deseados. En este punto, la tarea del nodo maestro inicia transmitiendo encabezados en el bus y todas las tareas en el cluster (incluyendo la propia tarea de esclavo del nodo maestro) responden como se especifica en el LDF. En trminos generales, el LDF es usado para configurar y crear el comportamiento programado del cluster LIN. Por ejemplo, identifica la razn de transferencia, la ordenacin y los retrasos de tiempo para la transmisin de la tarea de maestro de los encabezados y el comportamiento de cada tarea de esclavo en respuesta. El hardware LIN y el API NI-CAN de Trama para LIN no proporciona de manera original soporte completo para LDFs, lo que significa que usted no puede descargar el comportamiento programado al hardware. Sin embargo, el soporte de bajo nivel del acceso al bus (escribir encabezados y publicar o suscribir a respuestas) es proporcionado para que el usuario pueda crear este comportamiento programado al nivel de la aplicacin. Como se mencion en la descripcin para el tipo de entrada de marco de respuesta de LIN, el hardware LIN tiene una respuesta en espera para almacenar respuestas de tarea de esclavo. La respuesta en espera detiene 64 respuestas, uno para cada uno del nmero mximo de 64 IDs especificados por LIN. Esto asegura que la tarea de interfaz esclavo de LIN puede responder a los encabezados durante el tiempo de respuesta definido por la especificacin LIN. API NI-CAN de Trama para LIN ofrece una interaccin de bajo nivel con el bus LIN. Esto proporciona al usuario final la funcionalidad desde la cual se desarrollan aplicaciones complejas que involucran el anlisis y generacin de prototipos de redes LIN. El API NI-CAN de Trama para LIN no soporta de manera original diagnsticos LIN o configuracin, LDFs o tablas de programacin. Sin embargo, puede implementar estas tareas en aplicaciones que usan el API NI-CAN de Trama para LIN.

5. Deteccin de Error de LIN y Confinamiento


La especificacin LIN 2.0 establece que la deteccin de error debe ser manejada por las tareas de esclavo y que no se requiere el monitoreo de error por la tarea de esclavo. La especificacin LIN 2.0 no requiere el manejo de mltiples errores en un marco LIN o el uso de contadores de error. Despus de encontrar el primer error en un marco, la tarea de esclavo aborta el procesamiento del marco hasta la deteccin de la prxima secuencia interrupcin-sincronizacin (en el prximo encabezado transmitido por el maestro). Si el atributo de registro de errores de bus est establecido como verdadero, se registra un marco de error de bus en la lectura en espera. Si el atributo de registro de errores de bus est establecido como falso, se genera un error por ncWriteNet o ncWriteNetMult. LIN tambin proporciona reportes por error a la red. La especificacin LIN 2.0 define un bit de estado de Respuesta_Error, para el cual se requiere el esclavo para reportar al maestro en uno de sus marcos transmitidos. Este bit se establece en cuanto un marco recibido o transmitido por un nodo esclavo contiene un error en el campo de respuesta. El bit es liberado despus de ser transmitido en uno de las respuestas publicadas del esclavo. El API NI-CAN de Marco para LIN no soporta de manera original el bit de Respuesta_Error pero proporciona al usuario final una manera de implementar fcilmente esta funcionalidad al nivel de la aplicacin. El procedimiento consiste en establecer el atributo de registro de errores de bus igual a 1 para permitir el registro de los marcos de error del bus en la lectura en espera. La aplicacin entonces puede monitorear una lectura de un marco de error del bus con el cdigo de error indicando un error en la respuesta. Despus de esta condicin, la aplicacin puede establecer un estado de Respuesta_Error en una variable local. La aplicacin puede entonces usar el tipo de entrada de marco de respuesta de LIN para actualizar la respuesta de esclavo en espera con datos que contengan el bit de estado de Respuesta_Error y despus liberar el bit en la variable local.

6. LIN Sleep and Wakeup


LIN tiene un mecanismo que permite a los dispositivos ya sea entrar en el modo de sleep o mantenerse encendidos. De acuerdo a la especificacin LIN 2.0, todos los esclavos deben ser forzados al modo sleep al maestro enviar un marco de solicitud de diagnstico maestro (ID=60) con el primer byte de datos igual a cero. Este marco especial se llama comando go-to-sleep. Los esclavos tambin entran automticamente en modo sleep si el LIN est inactivo por ms de cuatro segundos. El API NI-CAN de Trama para LIN proporciona gran flexibilidad al permitir que el usuario ponga la interfaz LIN en sleep cuando lo desee al nivel de la aplicacin. Despus de recibir un marco completo que contiene un mensaje de solicitud de sleep, o un marco de bus inactivo indica cuatro segundos de inactividad del bus, el usuario puede poner la interfaz LIN en sleep al establecer el atributo LIN Sleep en TRUE. LIN tambin ofrece un mecanismo para despertar dispositivos en el bus. Wakeup es una de las tareas que se deben iniciar para cualquier nodo en el bus (un esclavo as como el maestro). Conforme la especificacin LIN 2.0, la solicitud wakeup se realiza al forzar el dominante del bus para 250 s a 5 ms. Cada esclavo debe detectar la solicitud de wakeup y debe estar listo para procesar encabezados en 100 ms. El maestro debe detectar tambin la solicitud de wakeup y comenzar a enviar encabezados cuando los nodos esclavo estn listos (entre 100 y 150 ms despus de recibir la solicitud wakeup). Si el maestro no enva encabezados 150 ms despus de recibir la primera solicitud de wakeup, entonces el esclavo que solicita a wakeup debe intentar una segunda solicitud de wakeup (y esperar por otros 150 ms). Si el maestro an no responde, el esclavo debe solicit la solicitud de wakeup y esperar 150 ms por tercera vez. Si as, an no hay respuesta, el esclavo debe esperar 1.5 segundos antes de enviar una cuarta solicitud de wakeup. El API NI.CAN de Trama para LIN permite que el wakeup se realice de acuerdo a la especificacin 2.0 sin importar si la interfaz LIN est operando como un maestro o esclavo.

7. Tipos de Marcos Avanzados


La especificacin LIN 2.0 clasifica los marcos LIN en seis tipos: 1. Incondicional 2. Por Evento 3. Espordico 4. Diagnstico 5. Definido por el usuario 6. Reservado Es importante notar que las diferencias entre estos tipos de marco se deben ya sea a la temporizacin de cmo son transmitidos o al contenido de los bytes de datos. Independientemente de la clasificacin del marco, un marco LIN completo consiste en un encabezado transmitido por la tarea de maestro y una respuesta transmitida por una tarea de esclavo. El API NI-CAN de Trama para LIN puede cubrir las necesidades del manejo de cada uno de estos tipos de marcos especificados por LIN. El tipo de marco incondicional es el usado con ms frecuencia. Los marcos incondicionales llevan seales (datos) y sus identificadores estn en el rango de 0 a 59. El tipo de marco por evento intenta conservar el ancho de banda del bus al solicitar una respuesta de marco incondicional desde mltiples esclavos en un tiempo de ranura de marco. El marco por evento puede tener un ID en el rango de 0 a 59. Cada esclavo que puede responder al ID de encabezado por evento tiene su primer byte de datos cargado con el ID protegido que respondera si el maestro lo cuestiona para un marco incondicional. El marco por evento funciona de la siguiente manera: El maestro escribe un ID de disparo en un encabezado. Los esclavos pueden responder solamente al ID por evento si sus datos han sido actualizados. Si solamente un esclavo publica una respuesta, entonces el maestro lo recibe y por ver el primer byte de datos, sabe desde cual esclavo fue recibido (a travs del ID protegido). Si varios esclavos publican una respuesta, ocurre un choque, la cual la tarea de esclavo del dispositivo maestro reporta como un error del bus. El dispositivo maestro entonces solicita una respuesta desde cada esclavo usando marcos incondicionales. Los marcos espordicos proporcionan algn comportamiento dinmico al LIN. Siempre llevan seales (datos) y sus IDs van desde 0 a 59. El encabezado de un marco espordico debe ser enviado solamente en su ranura de marco cuando la tarea de maestro sabe que el valor del dato (seal) en el marco ha sido actualizada. Este requerimiento convierte a la tarea de esclavo del dispositivo maestro el editor normal de respuesta de marco espordico. Los marcos de diagnstico siempre tienen ocho bytes de datos y siempre llevan datos de diagnstico o configuracin. Sus IDs son ya sea 60 para un marco de solicitud de maestro o 61 para marco de respuesta de esclavo. Los marcos definidos por el usuario, los cuales tienen un ID de 62, pueden llevar cualquier tipo de informacin. Los marcos reservados tienen un ID de 63 y no deben ser usados en un cluster LIN 2.0.

8. Interfaces PC LIN Recomendadas

Figura 4. Interfaz LIN NI USB-8476 Se puede comunicar con dispositivos LIN usando la Interfaz LIN USB-8476.

3/4

www.ni.com

9. Informacin LIN Adicional


Para ms informacin sobre las especificaciones de LIN, visite el consorcio LIN en www.lin-subbus.org.

4/4

www.ni.com

You might also like