Grundlegende Verständnisfrage: µC an LIN-Bus Anbindung

OP #3999847
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
#4000603
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
OP #4000759
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
Gast #4001452
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.