Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Entwicklung eines CAN-Treibers für IP460-Module mit CAN-Modul TIP816-10Entwicklung eines CAN-Treibers für IP460-Module mit CAN-Modul TIP816-10 Entwicklung.

Ähnliche Präsentationen


Präsentation zum Thema: "Entwicklung eines CAN-Treibers für IP460-Module mit CAN-Modul TIP816-10Entwicklung eines CAN-Treibers für IP460-Module mit CAN-Modul TIP816-10 Entwicklung."—  Präsentation transkript:

1 Entwicklung eines CAN-Treibers für IP460-Module mit CAN-Modul TIP816-10Entwicklung eines CAN-Treibers für IP460-Module mit CAN-Modul TIP Entwicklung eines einfachen DemonstrationsmodulsEntwicklung eines einfachen Demonstrationsmoduls Steer by Wire III (CAN) David Weese, Philipp Reinecke Einleitung Hintergrund: Nutzung als Schnittstelle zwischen Lenkung und Lenkrad im Steer by Wire-System EMES-Projekt bei Daimler Chrysler

2 Reaktionen in EchtzeitReaktionen in Echtzeit HochverfügbarkeitHochverfügbarkeit hohe Toleranz gegenüber Umwelteinflüssenhohe Toleranz gegenüber Umwelteinflüssen Steer by Wire III (CAN) David Weese, Philipp Reinecke allg. Anforderungen Konsequenz ist CAN-Protokoll wegenKonsequenz ist CAN-Protokoll wegen -Kollisionsvermeidung -vorhersagbaren Reaktionszeiten (für hochpriorisierte Nachrichten)

3 Steer by Wire III (CAN) David Weese, Philipp Reinecke Treiber-Anforderungen Der Treiber sollte tatsächliche Hardware weitestgehend abstrahierentatsächliche Hardware weitestgehend abstrahieren vom CAN-Modul-Hersteller unabhängig seinvom CAN-Modul-Hersteller unabhängig sein Streams für die Kommunikation zur Verfügung stellenStreams für die Kommunikation zur Verfügung stellen

4 Steer by Wire III (CAN) David Weese, Philipp Reinecke Lösung – Theorie I Planung der Treiber: Anpassung eines bereits existierenden PCI-Treibers für Linux, um Fehlerquellen gering zu haltenAnpassung eines bereits existierenden PCI-Treibers für Linux, um Fehlerquellen gering zu halten Entwicklung folgender Treiber:Entwicklung folgender Treiber: -SMC1-Treiber zur seriellen Kommunikation mit den Terminals und Debug-Ausgabe -Raw-Treiber zur binären packetorientierten Kommunikation über CAN -Cooked-Treiber zur zeichenorientierten Kommunikation über den Raw-Treiber alle Treiber stellen Input-/Output-Streams zur Verfügungalle Treiber stellen Input-/Output-Streams zur Verfügung

5 Steer by Wire III (CAN) David Weese, Philipp Reinecke Lösung – Theorie II

6 Steer by Wire III (CAN) David Weese, Philipp Reinecke Lösung – Theorie III Planung des Demonstrationsmoduls: muss lediglich SMC1-Stream und Cooked-Stream verwendenmuss lediglich SMC1-Stream und Cooked-Stream verwenden durch den SMC1-Stream vom Nutzer kommende Texte werden durch den Cooked-Stream über den CAN-Bus zum anderen Board übertragendurch den SMC1-Stream vom Nutzer kommende Texte werden durch den Cooked-Stream über den CAN-Bus zum anderen Board übertragen vom CAN-Bus durch Cooked-Stream kommende Texte werden durch SMC1-Stream zurück zum anderen Nutzer gesendetvom CAN-Bus durch Cooked-Stream kommende Texte werden durch SMC1-Stream zurück zum anderen Nutzer gesendet

7 Steer by Wire III (CAN) David Weese, Philipp Reinecke Lösung – Theorie IV

8 vorhandene Hardware: IP460-Board mit 32bit MC68040 und MC68360 (Communication Controller) von MotorolaIP460-Board mit 32bit MC68040 und MC68360 (Communication Controller) von Motorola Steer by Wire III (CAN) David Weese, Philipp Reinecke Lösung – Praxis I IP-Modul TIP816 von TEWES mit integriertem CAN-Controller i82527 von IntelIP-Modul TIP816 von TEWES mit integriertem CAN-Controller i82527 von Intel bietet 14 frei belegbare Transmit-/Receive- Objekte für CAN-Nachrichten und ein exklusives Receive-Objekt (Message Ob- jekt 15)bietet 14 frei belegbare Transmit-/Receive- Objekte für CAN-Nachrichten und ein exklusives Receive-Objekt (Message Ob- jekt 15) alle Objekte sind nach ID maskierbaralle Objekte sind nach ID maskierbar

9 vorhandene Software: Monitorsoftware IP460Mon V2.01 im EEPROM des IP- Boards - nimmt Initialisierung der Controller vor und ermöglicht Upload des Treibers über serielles ASCII- Protokoll (Quellen unvollständig)Monitorsoftware IP460Mon V2.01 im EEPROM des IP- Boards - nimmt Initialisierung der Controller vor und ermöglicht Upload des Treibers über serielles ASCII- Protokoll (Quellen unvollständig) TIP816-Linux-Treiber von TEWES für eine PCI-Version des CAN-Controllers mit Quellen da als Device-Driver geschrieben, enthält dieser Funktionen zum Initialisieren, Öffnen, Schließen Schreiben und Lesen (gewisse Abhängigkeit von Unix- Spezifika)TIP816-Linux-Treiber von TEWES für eine PCI-Version des CAN-Controllers mit Quellen da als Device-Driver geschrieben, enthält dieser Funktionen zum Initialisieren, Öffnen, Schließen Schreiben und Lesen (gewisse Abhängigkeit von Unix- Spezifika) Steer by Wire III (CAN) David Weese, Philipp Reinecke Lösung – Praxis II

10 Vorgehensweise: 1.Implementation des SMC1-Treibers 2.Adaption des TIP816-Treibers 3.Test des Treibers mittels Beispielprogramm 4.Implementation des Cooked-Streams 5.Aufsetzen des Demonstrationsprogramms Steer by Wire III (CAN) David Weese, Philipp Reinecke Lösung – Praxis III

11 1.Implementation des SMC1-Treibers Entwicklung von stabilen IRQ-unabhängigen Ein-/ Ausgaberoutinen (schliesst Fehlerquellen aus)Entwicklung von stabilen IRQ-unabhängigen Ein-/ Ausgaberoutinen (schliesst Fehlerquellen aus) Reverse-Engineering der Monitorroutinen und Anpassung mit MC68360 DokumentationenReverse-Engineering der Monitorroutinen und Anpassung mit MC68360 Dokumentationen 2.Adaption des TIP816-Treibers Adaption zur KompilierbarkeitAdaption zur Kompilierbarkeit Beibehaltung der Interfaces (da zweckmäßig)Beibehaltung der Interfaces (da zweckmäßig) Entfernung der überflüssigen/nicht implementierbaren BereicheEntfernung der überflüssigen/nicht implementierbaren Bereiche 3.Test des Treibers mittels Beispielprogramm Validierung der Treiberfunktion vor Implementation höherer EbenenValidierung der Treiberfunktion vor Implementation höherer Ebenen Kompilierung nahezu problemlos, Übertragung nichtKompilierung nahezu problemlos, Übertragung nicht Steer by Wire III (CAN) David Weese, Philipp Reinecke Lösung – Praxis IV

12 Logic Analyser zeigt Spannungsverlauf des CAN-Busses an: 1. Modul sendet Pakete (meldet errorcounter > 96)1. Modul sendet Pakete (meldet errorcounter > 96) erfolgreich erkennbar sind Arbitrierungs- und Datenbitserfolgreich erkennbar sind Arbitrierungs- und Datenbits Arbitrierung scheinbar erfolgreichArbitrierung scheinbar erfolgreich 2. Modul empfängt keine Pakete, löst keinen IRQ aus, es ist kein IRQ pending und auf der IRQ-Leitung bleibt die Spannung unverändert2. Modul empfängt keine Pakete, löst keinen IRQ aus, es ist kein IRQ pending und auf der IRQ-Leitung bleibt die Spannung unverändert Ursache in Hardware (CAN-Bus richtig angeschlossen?)Ursache in Hardware (CAN-Bus richtig angeschlossen?) Nutzbar sind: SMC1-Treiber mit StreamSMC1-Treiber mit Stream Cooked-StreamCooked-Stream DemonstrationsprogrammDemonstrationsprogramm Steer by Wire III (CAN) David Weese, Philipp Reinecke Ergebnis

13 Was hätte man anders machen können? Entwicklung eines eigenen Treibers mit Orientierung auf Echtzeit (war in der Zeitkürze nicht möglich)Entwicklung eines eigenen Treibers mit Orientierung auf Echtzeit (war in der Zeitkürze nicht möglich) Wie könnte man weitermachen? Verifikation der korrekten HardwarefunktionVerifikation der korrekten Hardwarefunktion Beseitigung des ÜbertragungsfehlersBeseitigung des Übertragungsfehlers Einsatz in Steer by Wire-Demo (Stand-Alone oder mit RTOS)Einsatz in Steer by Wire-Demo (Stand-Alone oder mit RTOS) Steer by Wire III (CAN) David Weese, Philipp Reinecke Ausblick

14 ENDE Steer by Wire III (CAN) David Weese, Philipp Reinecke Schluss


Herunterladen ppt "Entwicklung eines CAN-Treibers für IP460-Module mit CAN-Modul TIP816-10Entwicklung eines CAN-Treibers für IP460-Module mit CAN-Modul TIP816-10 Entwicklung."

Ähnliche Präsentationen


Google-Anzeigen