Forum: Mikrocontroller und Digitale Elektronik LIN Bus Konzept Aufbau


von Sebastian B. (mircobolle)


Lesenswert?

Hallo,

für ein Projekt benötige ich eine LIN-Bus Schnittstelle.

Der LIN Bus ist ja grundsätzlich eine Ein-Draht Schnittstelle.

Für eine UART Schnittstelle benötige ich ja (minimal) beispielsweise:
- Rx,Tx Leitungen
- 1 Baustein zur Pegelanpassung für Rx und Tx (MAX3218 for example)

Für die LIN Schnittstelle habe ich die SCI Schnittstelle meines 
COntrollers (MC9S08QE128) vorgesehen. Diese bietet ja schon Rx,Tx 
Leitungen und die entsprechenden Register (Byte) zur Versendung/Empfang 
der Daten...

Nun meine Frage:
Welche Peripherie benötige ich für die Umsetzung des LIN Buses? (Welche 
Bausteine?)
- ich würde vermuten einen baustein zur 2 draht/1 draht umsetzug..
(Typ?)
- einen Baustein zur Pegelanpassung (Typ?)..

das dürfte ja grundsätzlich alles sein? Oder habe ich etwas essentielles 
vergessen??? Bin Neuling auf dem Gebiet LIN, wie man unschwer erkennen 
kann ;-)

Viele Grüße und danke für jede Info!
Sebastian

von Carsten S. (carsten)


Lesenswert?

Hallo,
es gibt Bausteine die machen die Pegelumsetztung und haben die Umsetzung 
deiner Rx/Tx-Signale auf die LIN-Bus-Leitung.
z.B. Infineon TLE6258

von Gast (Gast)


Lesenswert?

Es gibt auch Controller mit integrierter LIN-
Schnittstelle: Atmel ATA6612/13

Ansonsten hat jeder größere Chip-Hersteller
spezielle LIN-Interfacebausteine; oft auch
austauschbar. TI, Atmel, usw.

von Sebastian B. (mircobolle)


Lesenswert?

Hallo Carsten,

danke für die schnelle Antwort!!

Genau so etwas habe ich gesucht.

Habe mir gerade mal das Datenblatt angeschaut, sieht alles sehr gut aus.
Im Datenblatt habe ich gelesen bei der Bus-Schnittstelle:
"6 Bus Bus output/input; internal 30 kΩ pull up, LOW in dominant state"

bedeutet dies dass ich einen kommuniziereden LIN-Knoten ohne weitere 
Maßnahmen direkt mit meinem System verbinden kann?

Bei I²C Verbindungen müssen ja beispielsweise noch zusätzlich Pull-Up 
Widerstände rein.. aber da dieser ja einen integriert hat, dürfe das ja 
entfallen?
Das heißt: "Anschließen und kommunizieren" ?

Danke! Gruß
Sebastian

von Sebastian B. (mircobolle)


Lesenswert?

Danke "Gast ;)

für die Antwort.

Das mit einem Controller der einen LIN Interface integriert hat ist 
natürlich auch möglich.

Aber mein Ziel ist es in ein bestehendes System:
MC9S08QE128
eine LIN Schnittstelle zu integrieren.

Der Controller besitzt 2 SCI Schnittstellen (Serial COmmunication 
Interface)
- 1 SCI Schnittstelle benutze ich für RS232 (funktioniert)
- und die 2. soll für LIN eingesetzt werden...

Ziel soll es sein, dass mein System (TEst-System) Nachrichten auf den 
LIN-Bus versenden kann. Um verschiedene Dinge testen zu können...
Auch eine Art "Rs232/LIN" Gateway ist denkbar... ich sende LIN Daten 
über RS232 an mein System und diese "Roh-Daten" werden in einen 
LIN-Frame gepackt und versendet...

Danke und Gruß
Sebastian

von chris (Gast)


Lesenswert?

Hallo, zuerst mal, Lin ist ein single Master, multiple Slaves system.
Was willst du mit deinem Controller sein, Master oder Slave.
Weiters, Lin beinhaltet einen Preamble welcher nicht mit einem HW
SCI interface realisierbar ist, bzw es kann auch passieren, daß die
Baudrate nicht mit dem SCI übereinstimmt, als Slave.

von Sebastian B. (mircobolle)


Lesenswert?

Hallo Chris,

das sind interessante Hinweise / Fragen, die du genannt hast.

> zuerst mal, Lin ist ein single Master, multiple Slaves system.
> Was willst du mit deinem Controller sein, Master oder Slave.

Bei den LIN-Geräten die getestet werden sollen handelt es sich um 
Steuergeräte die im Automobil eingesetzt werden und ihre Kommandos von 
einem Master erhalten.

In meinem Fall müsste mein System also als Master (zu Testzwecken) eine 
Kommunikation mit den Slave(s) aufbauen.

> Lin beinhaltet einen Preamble welcher nicht mit einem HW
> SCI interface realisierbar ist,

Das ist interessant. Ist diese Preamble nicht durch ein SCI Interface 
realisierbar?
Du hast recht, das SCI lässt folgende Einstellungen zu:
-StartBit (immer da)
-Anzahl Datenbits (8,9)
-Parität (gerade/ungerade)
-Anzahl Stopbits (1,2)
-Baudrate..

>bzw es kann auch passieren, daß die
>Baudrate nicht mit dem SCI übereinstimmt, als Slave.
Die Baudrate lässt sich variable über Register und Vorteiler einstellen. 
Ich sehe an dieser Stelle (zunächst) keine Probleme.

Ich ging davon aus, dass sich ein LIN Bus mit einem Standard UART 
realisieren ließe?

Leider fand ich auch unter Wiki ;-) keine nähere Beschreibung zur LIN 
Spezifikation.

Mit CAN habe ich mehr Erfahrung.. zumindest was Protokoll und 
Datenformat angeht... bei LIN tappe ich da etwas im dunkeln..

Vielen Dank für die Hinweise!!

Sebastian

von chris (Gast)


Lesenswert?

>> Lin beinhaltet einen Preamble welcher nicht mit einem HW
>> SCI interface realisierbar ist,

>Das ist interessant. Ist diese Preamble nicht durch ein SCI Interface
>realisierbar?
Nein, ist es nicht, du mußt das SCI Interface abschalten, das
Preamble über direkte Pin-Ansteuerung realisieren, und dann wieder das 
SCI-Interface einschalten und damit senden. Ob sich das auszahlt, bzw 
geht,
und welche Konsequenzen man damit im Rx hat, daß musst du selbst 
evaluieren.


>>bzw es kann auch passieren, daß die
>>Baudrate nicht mit dem SCI übereinstimmt, als Slave.
>Die Baudrate lässt sich variable über Register und Vorteiler einstellen.
>Ich sehe an dieser Stelle (zunächst) keine Probleme.
Als Master sicherlich nicht.

>Ich ging davon aus, dass sich ein LIN Bus mit einem Standard UART
>realisieren ließe?
Das Stimmt, mit Außnahme des Preambles.

>Leider fand ich auch unter Wiki ;-) keine nähere Beschreibung zur LIN
>Spezifikation.
Die kann man downloaden, man muß sich dazu nur registrieren.

Mit CAN habe ich mehr Erfahrung.. zumindest was Protokoll und
Datenformat angeht... bei LIN tappe ich da etwas im dunkeln..

Vielen Dank für die Hinweise!!

Sebastian

von Mike (Gast)


Lesenswert?

Schau mal unter www.microcontroller-starterkits.de nach. Da gibt's zu 
LIN Schältpläne für LIN-Interfaces und auch ganz günstig Leerplatinen 
dazu.

Gruß
Mike

von Sebastian B. (mircobolle)


Lesenswert?

>Das ist interessant. Ist diese Preamble nicht durch ein SCI Interface
>realisierbar?
Nein, ist es nicht, du mußt das SCI Interface abschalten, das
Preamble über direkte Pin-Ansteuerung realisieren, und dann wieder das
SCI-Interface einschalten und damit senden. Ob sich das auszahlt, bzw
geht,
und welche Konsequenzen man damit im Rx hat, daß musst du selbst
evaluieren.

Ist dies auch notwendig, wenn ich einen Baustein wie den:
Infineon TLE6258
welcher ja eine 2-Draht auf 1-Draht Umsetzung und eine Pegelanpassung 
realisiert?

Rx <---
       |
       |-----<--TLE6258--> LIN BUS
       |
Tx ---->

Naja, grundsätzlich das SCI Modul abzuschalten und dann selbst auf den 
Pins rumzutackern ist natürlich machbar. Aber als Ingenieur geht man 
halt davon aus, dass es da einfachere Methode gibt (wie ein fertiger 
Baustein).

Wenn ich selbst auf den Pins rumtackere... muss ich mich um Timing usw. 
kümmern, was, ehrlich gesagt, durch einen sequentuiellen programmablauf, 
mit sonstigen Störeinflüssen eine ganz schöne Arbeit sein kann...
besonders das Bit-Timing zu stabilisieren usw....

von chris (Gast)


Lesenswert?

Die Spezifikation kannst du unter www.lin-subbus.org runterladen.
Wegen Preamble, habe nochmals nachgesehen, theoretisch geht das auch mit 
einem SCI, wenn du imstande bist, ein Break zu senden, sonst mußt du 
zwischendurch umschalten. Das heisst, z.B. ein PC ist imstande, das
vollständig mit dem UART zu implementieren, uC meistens nicht.
Sorry für die nicht korrekte Info, die kam aus der Praxis mit uC, welche
nicht imstande sind, den Lin vollständig mit dem Uart modul zu fahren.

Gruß
Chris

von chris (Gast)


Lesenswert?

Dann gibt es dann noch kleinigkeiten, wie Wake-up signale usw, welche
entsprechendes Timing benötigen, auch das ist generell nur mit 
pin-Ansteuerung machbar. Der Lin-Tranceiver ist halt nur ein 
Pegelkonverter,
sonst nichts.

von Sebastian B. (mircobolle)


Lesenswert?

>Wegen Preamble, habe nochmals nachgesehen, theoretisch geht das auch mit
>einem SCI, wenn du imstande bist, ein Break zu senden, sonst mußt du
>zwischendurch umschalten.

Hey Chris,

danke für die kompetenten Hinweise in Sachen LIN-Bus!

Hab gerade mal in das Manual meines Controllers
(MC9S08QE128) unter dem Kapitel SCI nachgesehen.

Dieser ist im Stande Break Characters zu senden.
Dort ist zu wählen zwischen Break Character Length von
10
11
12
14 Bit times

Von Wake-Up idle ist auch die Rede im Datenblatt.
Demnach sollte sich das ganze auch mit meinem uC realsieren lassen!

Danke für die Hinweise!!

sebastian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.