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
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
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.
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
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
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.
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
>> 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
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
>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....
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
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.
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.