Forum: Mikrocontroller und Digitale Elektronik Grundlegende Verständnisfrage: µC an LIN-Bus Anbindung


von Jim S. (jimstreet)


Lesenswert?

Hallo Community,
(ja ich habe bereits die ähnlichen Beiträge in diesem Forum 
durchgelesen, habe aber dennoch eine Frage)

Ich habe momentan auf meinem mbed LPC1768 einen CAN-Bus in Betrieb 
genommen. Dieses System läuft einwandfrei und möchte nun um einen 
weiteren Bus ergänzt werden.

Ich möchte also an meinen LPC1768 ein LIN-Netzwerk anschließen und habe 
dazu eine grundlegende Frage:
Ist es richtig, dass ich für die Hardware-Umsetzung lediglich einen 
Lin-Transceiver (z.B. TJA1020) benötige, den ich an den UART Ausgang 
meines Mikrocontrollers anschließe oder sind noch weitere Komponenten 
nötig?
Der µC soll in diesem Fall als Slave arbeiten und lediglich als Zuhörer 
fungieren.

Können die Leute die sich schon mal damit befasst haben, mir eventuell 
Sagen was sonst noch so knifflige Punkte sind, auf die ich bei dem 
Projekt besonders achten muss? (Mit dem LIN-Botschaftsaufbau kenne ich 
mich ausreichend aus).

Vielen Dank für die Hilfestellung
LG Jim

von Frank K. (fchk)


Lesenswert?

Jim Street schrieb:

> Ich möchte also an meinen LPC1768 ein LIN-Netzwerk anschließen und habe
> dazu eine grundlegende Frage:
> Ist es richtig, dass ich für die Hardware-Umsetzung lediglich einen
> Lin-Transceiver (z.B. TJA1020) benötige, den ich an den UART Ausgang
> meines Mikrocontrollers anschließe oder sind noch weitere Komponenten
> nötig?

Nein, mehr als der Transceiver ist für die Busankopplung nicht 
notwendig.

> Können die Leute die sich schon mal damit befasst haben, mir eventuell
> Sagen was sonst noch so knifflige Punkte sind, auf die ich bei dem
> Projekt besonders achten muss? (Mit dem LIN-Botschaftsaufbau kenne ich
> mich ausreichend aus).

Ein LIN-fähiger UART muss BREAK-Zustände auf dem Bus erkennen und 
erzeugen können. Nicht alle UARTs können das.

LIN ist so designed, dass nur der Master eine genaue Taktquelle braucht, 
um das Timing vorzugeben, während die Slaves nur einen RC-Oszillator 
brauchen und das Timing, sprich die Bitrate, aus dem Syncbyte ausmessen. 
Da Dein LPC sicher einen Quarz hat (sonst würde CAN nicht 
funktionieren), musst Du das nicht implementieren, was die Sache 
vereinfacht.

fchk

von Jim S. (jimstreet)


Lesenswert?

Hey,

vielen Dank, dass hört sich ja schonmal gut an.

Wenn mein UART nun also Break-Zustände erkennen kann und ich einen 
LIN-Transceiver kaufe sollte dem Projekt Hardware-technisch nicht mehr 
im Wege stehen? Der Rest ist dann wohl Software ...

Hier ist nicht zufällig jemand der eine Software-Lösung in C oder C++ 
anzubieten hat? Oder ein PAP?

Vielen Dank und Grüße
Marvin

von Jens E. (surfjenser)


Lesenswert?

Meines Wissens unterstützen die Cortex von NXP jedoch kein LIN-Break

von fgg (Gast)


Lesenswert?

Beim STM32 schon gleich bei der Library mit dabei.

von Rudolph (Gast)


Lesenswert?

Beim AVR detektiert man das Break über das Frame Error Bit wenn man für 
LIN direkt mit dem UART unterwegs ist.
Break ist ja auch nur, dass 13 Null-Bits gesendet werden.

Und nach dem User-Manual vom LPC1768 hat der ein Framing Error Bit im 
UARTn Line Status Register.

Zusätzlich sogar noch einen Break Interrupt.

von Jim S. (jimstreet)


Lesenswert?

Ok,
vielen Dank für die Hilfe.
LG Jim

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.