LIN Local Interconnect Network

Il protocollo Local Interconnect Network (LIN) si basa sulla tecnologia Volcano-Lite sviluppata dallo spin-out di proprietà Volvo: Volcano Communications Technology (VCT). Poiché anche altre case automobilistiche erano interessate a un'alternativa più economica a CAN, è stato creato il comitato LIN.
A metà del 1999 abbiamo il primo rilascio del protocollo LIN (1.0). Il protocollo è stato aggiornato due volte nel 2000. Nel novembre 2002 è stato rilasciato LIN 1.3 con modifiche principalmente apportate a livello fisico. L'ultima versione LIN 2.0 è stata rilasciata nel 2003. 
Con LIN 2.0 sono arrivate alcune importanti modifiche e anche alcune nuove funzionalità come la diagnostica. Le modifiche sono mirate principalmente a semplificare l'uso dei nodi slave standardizzati.

Aree di utilizzo
Il protocollo LIN è di solito associato ai protocolli CAN e SAE J1850 per applicazioni che non sono critiche in termini di tempo o che non richiedono un'estrema tolleranza agli errori, poiché il LIN non è affidabile come CAN. 
Dunque l'obiettivo del LIN è quello di essere facile da usare ed è un'alternativa economica alla rete CAN. Può essere utilizzato per i sistemi come: alzacristalli, specchi, tergicristalli e sensori di pioggia.

Il livello fisico LIN si basa su ISO 9141 (la linea K). Con un'organizzazione master/slave usando un bus singolo più la massa. La velocità di trasmissione del bus varia da 1-20 kbit/s e vige la politica dei bit dominanti/recessivi. La comunicazione è seriale ed orientata ai byte ed il mezzo trasmissivo ha una portata massima di 40 metri, dopodiché ci sarebbero elevate perdite di bit.

Proprietà fisiche
Il trasmittente del LIN-bus è una versione modificata del trasmettitore utilizzato dallo standard ISO 9141. Il bus è bidirezionale ed è collegato al trasmettitore del nodo tramite una resistenza di terminazione e un diodo a Vbat del nodo (Figura 1).
Descrizione di un trasmettitore LIN 2.0

Sul bus un livello logico basso (0) è il dominante e un livello logico alto (1) è il recessivo.

L'alimentazione di tensione (Vsup) per una ECU deve essere compresa tra i 7 V e i 18 V. I limiti per l'interpretazione del livello del bus sono indicati nella figura 2.
Determinazione livello logico
Trasmissione dati
La rete LIN è descritta da un LDF (LIN Description File) che contiene informazioni sui frame e segnali. Il file viene utilizzato per la creazione del software delle varie ECU o nodo.
Il nodo master controlla e si assicura che i frame siano inviati con il giusto intervallo e periodicità, assicurandosi inoltre che ogni frame il bus di trasmissione disponga lo spazio necessario all'occorenza. Tale pianificazione è basata su quanto è stato programmato sul LCF (LIN Configuration File), software presente nel nodo principale.

Tutti i dati vengono inviati in un frame che contiene un header, una o alcuni tempi di risposta in modo che lo slave abbia il tempo di processare e trasmettere una risposta. Ogni frame viene inviato in uno slot frame determinato dall'LCF. I messaggi vengono creati quando il nodo principale invia un frame contenente un header. I nodi slave riempono il frame con i dati a seconda del header inviata dal master. A seguire come è formato il frame del LIN.
Esempio di un Frame LIN

Esistono tre modi diversi di trasmettere i frame sul bus: frame incondizionati, attivato ad eventi e sporadici.
  • incondizionati: corrispondono agli standard nella comunicazione sul bus LIN. Il master invia un header di frame in uno slot di frame programmato e il nodo slave designato riempie il frame con i dati.
  • attivato ad eventi: sono utilizzati per ricevere più informazioni dai nodi slave senza sovraccaricare il bus LIN. Un frame attivato ad evento può essere riempito con dati provenienti da più di un nodo slave. Uno slave aggiorna i dati in un frame attivato ad eventi solo quando il valore è cambiato. Se più di uno slave deve aggiornare i dati nel frame, si verifica una collisione. Il master dovrebbe quindi inviare frame incondizionati a ciascuno degli slave a partire da quello con la massima priorità.
  • sporadiche: fornisce un comportamento dinamico al protocollo LIN. L'header di un frame sporadico viene inviata dal master solo quando sa che un segnale è stato aggiornato in un nodo slave. Di solito il master riempie i byte di dati del frame stesso e i nodi slave saranno i ricevitori delle informazioni.
Definizione di un campo byte
Fino ad adesso abbiamo parlato di bit ma il protocollo LIN è orientato ai byte, il che significa che i dati vengono inviati un byte alla volta e non a bit a bit.
Un campo byte contiene un bit di inizio (dominante), 8 bit di dati e un bit di arresto (recessivo). I bit di dati vengono inviati per primi all'LSB (prima il bit meno significativo). La trasmissione dei dati può essere suddivisa in un'attività principale e un'attività secondaria.
Struttura di un campo byte.
Il compito del Master
L'header del frame viene inviato dal master contiene tre parti; synch break, synch byte e un campo ID. Ogni parte inizia con un bit di inizio e termina con un bit di stop.

L'interruzione della sincronizzazione segna l'inizio di un messaggio e deve essere lunga almeno 13 bit dominanti, incluso il bit iniziale. L'interruzione della sincronizzazione termina con un "delimitatore di interruzione" che dovrebbe essere almeno un bit recessivo.
Break field

Il byte di sincronizzazione viene inviato per decidere il tempo tra i due fronti di discesa e quindi determinare la velocità di trasmissione utilizzata dal master. Il modello di bit è 0x55 (01010101, numero massimo di bordi). Ciò è particolarmente utilizzabile per la compatibilità con nodi slave standardizzati.
Campo sincronizzazione byte

Il campo ID contiene un identificatore lungo 6 bit e due bit di parità. L'identificatore a 6 bit contiene informazioni sul mittente e sul destinatario e il numero di byte previsti nella risposta. I bit di parità vengono calcolati come segue: la parità P0 è il risultato della logica "XOR" tra ID0, ID1, ID2 e ID4. La parità P1 è il risultato invertito della logica "XOR" tra ID1, ID3, ID4 e ID5.
Campo ID
La risposta dallo slave e quindi immissione del campo dati può essere lunga 2, 4 o 8 byte a seconda dei due MSB (Most Significant Byte) dell'identificatore inviato dal master. Questa capacità è disponibile con LIN 2.0, le versioni precedenti hanno una lunghezza statica di 8 byte.

Il compito dello SLAVE
Lo slave attende l'interruzione della sincronizzazione e quindi inizia la sincronizzazione tra master e slave con il byte di sincronizzazione. A seconda dell'identificatore inviato dal master, lo slave riceverà o trasmetterà oppure starà in attesa. Uno slave che dovrebbe trasmettere, invia il numero di byte richiesti dal master e quindi termina la trasmissione con un campo di checksum.
Esistono due diversi tipi di checksum. Il classico viene utilizzato in LIN 1.3 ed è costituito dalla somma a otto bit invertita di tutti (8) byte di dati in un messaggio. Il nuovo utilizzato in LIN 2.0 incorpora anche l'identificatore protetto nel calcolo del checksum. La somma di otto bit invertita non è la stessa di modulo-256. Ogni volta che la somma è maggiore di 256, viene sottratto 255. Es .: 240 + 32 = 272 à 272-255 = 17 e così via ...

Per risparmiare energia, i nodi slave verranno messi in modalità di sospensione dopo 4 secondi di inattività del bus o se il master ha inviato un comando di sospensione. La riattivazione dalla modalità di sospensione viene eseguita da un livello dominante sul bus che tutti i nodi possono creare.

Diagnostica
Una nuova funzione in LIN 2.0 è la possibilità di leggere informazioni diagnostiche dai nodi master e slave. A tale scopo vengono utilizzati due identificatori di frame che prevedono entrambi 8 byte di dati: frame di richiesta master con ID 60 (0x3c) e risposta slave con ID 61 (0x3d). 
Il primo byte di un frame di diagnostica è un NAD (Node Address for Diagnostic) che è un indirizzo di nodo diagnostico lungo un byte. Il valore è compreso tra 1-127, mentre 0 è riservato e da 128-255 sono liberi. Esistono tre metodi per la diagnostica: diagnostica basata sul segnale, diagnostica definita dall'utente o uso di un livello di trasporto diagnostico.

Diagnostica basata sul segnale
La diagnostica basata sul segnale è il metodo più semplice ed utilizza segnali standard in frame ordinari che rappresentano:
  • basso sovraccarico nei nodi slave.
  • concetto standardizzato.
  • statico e senza flessibilità.
Diagnostica definita dall'utente
La diagnostica definita dall'utente può essere progettata per soddisfare le esigenze di un dispositivo specifico, ma ciò significa anche che non sarà utile per scopi generali. Questo metodo utilizza NAD nell'intervallo 128-255.

Livello di trasporto diagnostico
Questo metodo è utile per una rete LIN costruita su un sistema basato su CAN in cui viene utilizzata la diagnostica ISO. Vengono utilizzati i NAD 1-127. Questo metodo rappresenta:
  • Basso carico sul dispositivo principale.
  • Fornisce diagnostica ISO per gli slave LIN.
  • Destinato a nodi LIN più complessi e potenti.
Un frame diagnostico è chiamato PDU (Packet Data Unit) ed inizia con un NAD che indirizza un determinato nodo. Successivamente segue un PCI (Protocol Control Information) che gestisce il controllo del flusso. Se il tipo PCI è un singolo frame (SF) l'intero comando di richiesta diagnostica si adatta ad una singola PDU. Se il tipo PCI è First Frame (FF), il byte successivo (LEN) descriverà il numero di byte a venire. I byte di dati che non rientrano nel primo frame verranno inviati nei seguenti frame con il tipo PCI di Continuation Frames (CF). Un identificatore di servizio (SID) specifica la richiesta e quali byte di dati seguire.

 NADPCI SID DATA1  DATA2DATA3 DATA4 DATA5 
Request frame PCI-type = SF

 NADPCI LEN SID  DATA1DATA2 DATA3 DATA4 
Request frame PCI-type = FF

 NADPCI DATA1DATA2  DATA3DATA4 DATA5 DATA6 
Request frame PCI-type = CF

Commenti

Post popolari in questo blog

AUTOSAR

Automotive safety-ISO 26262