Home
Fulltext Document
Contents
1. 24 Microcontroller NXHX500ETM 25 Real time Ethernet Switch 28 Konzeptioneller Aufbau einer Steer by Wire Netzwerkarchitektur 30 Vereinfachte Netzwerkarchitektur 31 Anwendungsf lle des Produktes 32 Prinzipieller Aufbau der verteilten Kommunikation 2 2 2222020 33 Klassendiagramm der Softwarearchitektur 222 2 2 2 2 nn 34 Zustandsautomat des Moduls Steering Wheel 42 ABBILDUNGSVERZEICHNIS 75 9 2 9 3 9 4 9 9 9 6 Zustandsautomat des Moduls Force Sensor 46 Zustandsautomat des Moduls Motor 48 Die Richtung der CAN Kommunikation zwischen den Knoten 52 Scheduling der CAN basierten Kommunikation 2 222222 a 54 Scheduling der Real time Ethernet basierten Kommunikation 55 Sachregister Arbitrierung 11 ASR 1 BE 28 Betriebssystem 26 Bit Stuffing 9 CAN 9 CIA 13 COB 11 COB ID 12 CORE 36 CRC 9 CSMA CR 11 Deadline 16 dominanter Pegel 11 Drive by Wire 4 Echtzeit 16 Entprellung 38 Ethernet 28 FIQ 27 Fly by Wire 4 Force Feedback 19 23 44 54 GPIO 25 HAL 25 harte Echtzeitanforderung 16 HAW Hamburg 68 Integrationstest 62 ISR 39 LSB 10 Modultest 62 MSB 10 MTBF 8 Nibble 19 NMT 11 14 Payload 10 PDO 11 13 PDO Mapping 14 Periode 34 RC 28 Redundanz 6 8 Regelkr
2. 52 176 RC ae 0 ar mee a 08 180 e ae 0 ar 08 8 1er 250 wo om 8 15 een e 17 mm o 8 ns Joen nm 20 om mon 2 74 Joea e 114 20 o osa 8 m8 e a gt gt ee 8 15 een n4 173 mme eem 8 15 en 8 115 33 3803 RO n nm osa 8 117 20 10 Tabelle 5 3 Laufzeiten und die Reaktionszeiten der Nachrichtenpaaren 5 3 2 Laufzeit der Prozesse Zu der Laufzeit der Prozesse geh rt nicht nur die Rechenzeit im Thread sondern auch die Zeit die f r Kontextwechsel ben tigt wird Laut der Messung von Kai M ller 2011 betr gt die Zeit des Kontextwechsels 4 ou Der Scheduler Startet den Kontextwechsel fr her damit das Programm genau zum angegebenen Zeitpunkt gestartet wird Der R cksprung nimmt 1 5us in Anspruch Die Summe von diesen beiden Werten legt den minimalen Abstand zwi schen zwei Prozessen bzw Ereignissen fest Die Tabelle 5 4 enth lt die Liste der Threads Thread Name Thread Max us Ges Zeit us Force sensor Statemashine 16 07 22 17 Lenkrad Statemashine 22 34 28 44 Lenkrad Status Task 13 36 19 36 Analog IN Task 12 82 18 92 Motor Statemashine 14 19 20 29 Tabelle 5 4 Laufzeiten der Threads mit den entsprechenden Threadlaufzeiten Die Gesamtzeit die die CPU f r den Thread braucht ist eine Summe von Threadlaufzeit Funktionsaufrufzeit und R cksprungzeit Da mit die Schedulingstabelle vollst ndig entworfen werden kann werden noch die Messungen des Versenden be
3. KAPITEL 5 UMSETZUNG 49 bzw den Subindex der f r das Setzen des Parameters zust ndig ist Am Anfang ist der Zustandsautomat offline Nachdem die Variablen initialisiert wurden geht der Automat in den Zustand Motor ON Die mechanische Bewegung des Motors kann die Initialisierung des Kraftaufnehmers verf lschen Daher wird die Nachricht zum Einschalten des Motors erst dann versendet wenn der Kraftaufnehmer online ist Nachdem die Best tigung erhalten wurde nimmt der Zustandsautomat den Zustand Set Tx PDO1 ID an und der PDO Mapping von Tx Parameter beginnt Im Zustand Set Tx PDOT ID wird ein CANopen konformer Iden tifier gesetzt Nachricht ID 0x182 mit dem die Nachricht versendet wird Im Set Tx PDO1 Mode wird das Ereignis gesetzt bei dem die Nachricht mit dem Messwert und dem Status versendet wird In diesem Fall wird die auf jede SYNC Nachricht eingestellt Der Zustand Set Tx PDO1 Par Length legt die Anzahl der zu mappenden Parameter fest Indem Set Tx PDO1 Par1 wird der Status auf die ersten 4 Byte der Nachricht gemappt Die resultierende Gr e der Nachricht 0x182 ist daher 4 Byte Nachfolgend wird die Nachricht gemappt mit der die Position des Motors bzw die Geschwindigkeit der Positionierung gesetzt wird Der Zustand Set Rx PDO1 ID setzt den 0x252 als Identifier der mit der PDO1 assoziiert werden soll Das Setzen der Position geh rt zum kritischen Pfad Um die Verz gerungen zu verringern wird im Zustand Set Rx PDO1 Mode die berna
4. Motors zu berechnen und einzustellen Mittels einer Real time Kommunikation sollen die se beiden Bussysteme und der Controller zu einem gemeinsamen Netzwerk zusammenge schlossen werden Daf r ist eine Bridge vgl Abbildung 4 1 notwendig die die CAN Nach richten in Real time Ethernet Frames verpackt und an den Controller verschickt Die Bridge und der Controller hneln sich funktional Beide tunneln die CAN Nachrichten mittels Real time Ethernet Kommunikation Dies bedeutet dass der Controller nicht nur das Tunneling Protokoll der Bridge beherrscht sondern auch die komplette Bridge nachahmen muss Da her stellt sich die Frage ob man die Funktionalit t der Bridge wiederverwenden kann Diese Funktionalit t w re innerhalb eines Mikrocontrollers leicht realisierbar indem der CAN Bus KAPITEL 4 ARCHITEKTUR UND DESIGN 30 Controller RT Ethernet Switch CANopen Bus CAN Bus Rad Kraftsensor Lenkrad Abbildung 4 1 Konzeptioneller Aufbau einer Steer by Wire Netzwerkarchitektur virtuell realisiert wird Der Einsatz der Bridge erm glicht nicht nur ihre Wiederverwendbar keit sondern reduziert m gliche Fehlerquellen und erlaubt den Einsatz des Controllers so wohl ber Real time Ethernet als auch nur ber CAN bzw CANopen Die Realisierung der Bridge mitsamt des virtuellen CAN Interfaces wird in eine eigenst ndige Abschlussarbeit ver lagert mit der sich Jan Kamieth 2011 besch ftigt Der Real time Ethernet Stack wird von
5. entry send 0x6040 0 entry send 0x1800 1 entry send 0x1800 2 timeout 1 5 ms send 0x6040 0 timeout 1 5 ms send 0x1800 1 timeout 1 5 ms send 0x1800 2 Position Absolut Immed Operation Mode Reference Stop Set Rx PDO1 ID entry send 0x6040 0 entry send 0x6060 0 entry send 0x6040 0 entry send 0x1400 1 timeout 1 5 ms send 0x6040 0 timeout 1 5 ms send 0x6060 0 timeout 1 5 ms send 0x6040 0 timeout 1 5 ms send 0x1400 1 Reference Found Set Rx PDO1 Mode entry send 0x1400 2 timeout 1 5 ms send 0x1400 2 Homing Speed Ref Homing Speed Nullpoint Reference Start Set Rx PDO1 Par Length entry send 0x6099 1 entry send 0x6099 2 entry send 0x6040 0 entry send 0x1600 0 timeout 1 5 ms send 0x6099 1 timeout 1 5 ms send 0x6099 2 timeout 1 5 ms send 0x6040 0 timeout 1 5 ms send 0x1600 0 Homing_Mode Set Rx PDO1 Bar entry send 0x6098 0 entry send 0x1600 1 timeout 1 5 ms send 0x6098 0 timeout 1 5 ms send 0x1600 1 Reference Mode Kommutierung_Found Send NMT Set Rx PDO1 Par2 entry send 0x6060 0 entry send NMT entry send 0x1600 2 timeout 1 5 ms send 0x6060 0 timeout 1 5 ms send NMT timeout 1 5 ms send 0x1600 2 Abbildung 5 3 Zustandsautomat des Moduls Motor dung 5 2 stellt ein Zustandsautomat des CAN Messverst rkers dar Jeder Zustand enth lt die Information ber die Nachricht die er versendet und das CANopen konforme Objekt
6. parametriert bzw ge steuert Die Parameter der Regelung werden mittels SDO Kommunikation eingestellt Die Ger telD legt die Priorit t der Nachricht fest Damit die Nachrichten des Verst rkers mit den Nachrichten unter allen Endger ten eindeutig bleiben wird die Ger telD auf 2 eingestellt Eine genauere Beschreibung der CANopen Objekte ist dem Objektverzeichnis der Jenaer Antriebstechnik GmbH 2009 zu entnehmen KAPITEL 3 HARDWARE 23 3 2 2 Referenzfahrt Die Position des Rades nach dem Einschalten ist nicht bekannt Um die Position zu bestim men verf gt der Verst rker ber mehrere Referenzierungsm glichkeiten die sich in Pr zisi on bzw der Art der Suche unterscheiden Die Endschalter sch tzen die bewegten Teile vor dem Erreichen der unerlaubten Position Lichtschranken eignen sich sehr gut als Endschal ter weil sie sehr genau sind und mechanisch nicht besch digt werden k nnen Die in der Abbildung 3 5 dargestellte u eren Lichtschranken haben die Funktion der Endschalter Mit Abbildung 3 5 Lichtschranken der mittleren Schranke wird der Wertebereich in zwei Unterbereiche geteilt So kann beim Referenzieren sofort die Richtung zum Nullpunkt festgestellt werden 3 3 DF30CAN digiCLIP CAN Messverstarker mit dem Kraft aufnehmer C9B Um das Force Feedback zu realisieren muss die Querkraft die auf das Rad einwirkt be stimmt werden Daf r wird in der Abbildung 3 6 a dargestellte Messverst rker mit dem Kraftsenso
7. 1 4 eingegangen Manchmal ist es sinnvoll die Vibrationen des Motors am Lenkrad zu sp ren um eventuell die Fehlerursachen einfacher diagnostizieren zu k nnen Durch die fehlende Verbindung zum Motor werden sie aber nicht mehr wahrnehmbar 2 1 2 Dynamisches Lenkverhalten Zu den gr ten Vorteilen von Steer by Wire Systemen geh rt die M glichkeit einer dynami schen Anpassung der Lenkung Dabei handelt es sich nicht nur um die bersetzung son dern auch um die Endanschl ge des Lenkrades Dies erlaubt eine Lenkung zu entwickeln die bestimmte Verhaltenseigenschaften entsprechend der Situation sofort abrufbar macht Zu diesen Eigenschaften geh rt eine sportliche direkte Lenkung wie beim Rennauto oder die Lenkung im Stadtverkehr wobei der Fahrer entlastet wird Bei hohen Geschwindigkeiten kann eine hektische Lenkweise zum berschlag des Fahrzeuges f hren Aus diesem Grund kann eine nichtlineare bersetzung in Abh ngigkeit von der Geschwindigkeit eingesetzt wer den Auch das Parken ist eine spezielle Situation wobei die nichtlineare bersetzung sinn voll genutzt werden k nnte Auf der Abbildung 2 2 sind alle diese Situationen grafisch dar 3Mit Redundanz wird die mehrfache Ausf hrung der sicherheitrelevanten Ressourcen beschrieben Damit wird ein st rungsfreier Betrieb erm glicht KAPITEL 2 GRUNDLAGEN 7 Winkel des Rades Winkel des Lenkrades 180 360 540 Skalierung der Sportlenkung Dynamisch
8. Aufwand realisierbar Zudem enth lt das Betriebssystem weder Synchronisa tionsverfahren wie Semaphoren oder Mutexe noch die M glichkeit den Programmablauf anzuhalten Daher bietet sich ein Zustandsautomat an der den Zustand des Programms speichert um beim n chsten Aufruf wieder an der unterbrochenen Stelle fortzufahren Ab h ngig von dem Zustand f hrt der Automat die erforderliche Aktion durch und bei Bedarf wird sie wiederholt Die im Abschnitt 4 4 3 diskutierte Softwarearchitektur besteht aus einem Hauptprogramm und drei Threads Die Rolle des Hauptprogramms bernimmt das Modul Controller Auf seine Funktionalit t wird im folgenden Abschnitt eingegangen Die Threads KAPITEL 5 UMSETZUNG 38 haben die Aufgabe mit den CAN bzw CANopen Ger ten zu kommunizieren Zu den parallel ablaufenden Programmteilen geh ren die Module Steernig Wheel Force Sensor und Mo tor In der Konfigurationsdatei des Scheduler config c werden die Dauer der Periode und die Zeiteintr ge zu jedem Thread angegeben Anhand dieser zum Anfang der Periode relativen Zeiteintr ge wei der Scheduler wann die Funktion die den Thread beinhaltet aufgerufen werden soll Der Zustandsautomat speichert den Verlauf des Threads ab und setzt beim n chsten Aufruf an der unterbrochenen Stelle fort Threads haben die Aufgaben die ankom menden Daten zu verarbeiten eine CAN Nachricht zusammenzusetzen und zu versenden Die ankommenden CAN Nachrichten sind ereignisgesteuert und k
9. Beim Zeitpunkt O us wird der Thread steering wheel_state_mashine_task aktiviert der die Anfrage der Position Nachricht 0x201 an das Lenkrad versendet Der Winkel des Lenkrades Nachricht 0x211 wird empfangen abgearbeitet und zum Zeit punkt 380 us im Thread motor_state_mashine task an das Motor versendet Zum Zeitpunkt 500 us fordert der Thread steering wheel_status_request_task den Status des Lenkrades an Um die Bandbreite besser zu nutzen versendet der Thread force_sensor_state_mashine_task beim Zeitpunkt 620 us parallel zu der Reaktions zeit des Lenkrades die SYNC Nachricht die den Status bzw den Messwert vom Motor und des Kraftaufnehmers anfordert Die Nachricht 0x183 enth lt die Messung der Force Feed back Kraft und wird im n chsten Zyklus mit der Nachricht 0x201 gesetzt Die Kollision der Nachrichten 0x182 und 0x183 wird auf der Sicherungsschicht der CAN Implementierung auf gel st siehe Abschnitt 2 2 2 und findet erst nach dem Versenden der Nachricht 0x252 statt Beim Zeitpunkt 1200 us wird der Thread steering veel analog in request_task gestartet der mit der Nachricht Ox20A den analogen Eingang abfragt Der empfangene Wert KAPITEL 5 UMSETZUNG 55 emuliert die Geschwindigkeit des Fahrzeugs vgl Abschnitt 5 4 Die Totzeit der Regelung ist die Zeit die f r die Abarbeitung des kritischen Pfades ben tigt wird und betr gt 520 us 5 3 4 Schedulingtabelle f r Real time Ethernet Kommunikation Die in den vorherigen Ab
10. Bit lang 2 4 Regelungstechnik Bereits seit l ngerer Zeit geh ren die Regelprozesse zu unserem allt glichen Leben Sie sind so gut integriert dass sie nicht mehr als solche erkannt werden Beispielweise stellt ei ne Heizungsanlage einen Regelungsprozess dar der die vorgegebene gew nschte Tempe ratur mit der tats chlich gemessenen vergleicht Anhand der Abweichung wird entschieden wie weit das Ventil des Heizungsk rpers ge ffnet werden soll um die gew nschte Tempera tur schnell wie m glich zu erreichen und konstant zu halten Ein weiteres Beispiel mit dem selben Prinzip ist die Klimaautomatik bei der ebenfalls die Temperatur erfasst wird mit dem Unterschied dass die Kaltluftzufuhr geregelt wird Auch eine sehr einfache Sache die wir t glich benutzen ist der Sp lkasten der Toilette indem die Wasserzufuhr mechanisch gere gelt wird Vor allem in der Industrie und Automatisierungstechnik ist die Regelungstechnik von besonderer Bedeutung So wird beispielsweise in der Lebensmittelindustrie die Menge der Komponenten vollst ndig automatisch geregelt und berwacht 2 4 1 Regelkreis Bei einem Regelkreis handelt es sich um einen technischen Prozess der mittels regelm i ger Beobachtung der Eingangsgr e die physikalischen Ausgangsgr en beeinflusst Das charakteristische Merkmal eines Regelkreises ist die negative R ckf hrung der Regelgr e die den Vergleich des Istwertes mit dem Sollwert erm glicht Die Differenz bil
11. Lenkrad eingestellt wird k nn te dem Fahrer die H nde verdrehen oder sogar verletzen Andererseits muss der Fahrer zu jedem Zeitpunkt die M glichkeit haben das Fahrzeug zu lenken Daf r muss die Kraft mit der der Fahrer entgegenwirkt berwacht werden um entscheiden zu k nnen ob der Fahrer lenkt Eine einfachere L sung ist w hrend der Fahrt das Umschalten nur in einem bestimmten Einschlagintervall zu erlauben Ein weiterer Aspekt ist die dynamische Anpassung der Lenkungskurve Beim Parken ist es wichtig mit k rzeren Bewegungen auf die auftretenden Situationen zu reagieren Bei hohen Geschwindigkeiten ist es anders heftige Bewegungen k nnen das Auto zum berschlag bringen Mit der Steer by Wire Lenkung kann eine beliebige Lenkkurve dynamisch einstellen Daher soll untersucht werden ob die in der Abbildung 2 2 dargestellte Lenkungskurven f r den Mensch vorteilhaft sind weil ein nichtlineares Verhalten sehr schwer nachvollziehbar und daher gew hnungsbed rftig ist Danksagung Ein besonderer Dank gilt meinen beiden Korrektoren Prof Dr Ing Franz Korf der mich durch seine hilfreichen Anregungen und seine Geduld immer wieder unterst tzt hat sowie Prof Dr Ing Andreas Meisel Nicht zuletzt m chte ich mich bei meiner Familie bedanken die mir w hrend dieses Studiums sehr viel Geduld entgegengebracht und mich die ganze Zeit moralisch unterst tzt hat Weiterhin bedanke ich mich beim Core Team f r die M glichkeit an so einem t
12. Module auf die Erf llung der Funktionalit t verifiziert worden sind m ssen diese im Zusammenspiel mit den restlichen Programmteilen getestet werden Daf r werden die zu einem Gesamtsystem zusammengef gte Module einem Integrations test unterzogen Des Weiteren wurden Schnittstellentests durchgef hrt um die Kommuni 1SDer Modultest ist der Softwaretest der die Funktionalit t des Moduls sicherstellt Ziel des Modultests ist es fr hzeitig Programmfehler zu entdecken 14Bei einem Integrationstest werden die aufeinander abgestimmten Komponenten in dem Gesamtsystem getestet und auf die Erf llung der Anforderungen berpr ft KAPITEL 6 QUALIT TSICHERUNG 63 kation zwischen den Komponenten zu berpr fen Da die CAN Schnittstelle zur Anpassung des Lenkverhaltens die Grundlage f r die nachfolgende Bachelorarbeit darstellt muss sie besonders gr nldich getestet werden Daf r wurden CANopen konforme Objekte bzw Sub indizes sowohl mit g ltigen als auch mit ung ltigen Werten berpr ft Weiterhin wurden Pa rameter in den G ltigkeitsbereichen aber auch in den Grenzwertbereichen und au erhalb der g ltigen Werte ausf hrlich getestet 6 2 Validierung Bei der Validierung muss die Erf llung der Kundenanforderungen nachgewiesen werden Da f r muss das System in beiden Architekturen getestet werden Die Eignungspr fung erfolgt auf der Grundlage des im Abschnitt 4 4 1 aufgestellten Anforderungsprofils Zuers wurde das System innerhal
13. Vieweg Teubner September 2008 ISBN 978 3 8348 0447 1 Glossar Arbitrierung Die Arbitrierung ist ein Verfahren zum L sen der Zugriffskonflikten beim Zugriff meh reren Nutzer auf eine gemensame Ressource Deadline Deadline ist ein bestimmter Zeitpunkt zu dem eine Aufgabe erledigt werden muss Die Verletzung der Deadlin hat gravierende Auswirkungen auf das System harte Echtzeitanforderung Harte Echtzeitanforderung bedeutet dass anhand von Hardwarespezifikationen und Modellrechnungen eine beweisbare obere Grenze f r die Dauer eines Vorgangs an gegeben werden kann Integrationstest Bei einem Integrationstest werden die aufeinander abgestimmten Komponenten in dem Gesamtsystem getestet und auf die Erf llung der Anforderungen berpr ft Modultest Der Modultest ist der Softwaretest der die Funktionalit t des Moduls sicherstellt Ziel des Modultests ist es fr hzeitig Programmfehler zu entdecken Nibble Ein Nibble ist eine 4 Bit gro e Datenmenge sie wird meistens mit hexadezimalen Zahlen dargestellt Payload Payload bezeichnet die Nutzdaten die bertagen werden sollen Periode Als Periode bezeichnet man ein Zeitintervall zwischen zwei sich in gleichen Abst n den wiederholenden Ereignissen Glossar 71 Redundanz Mit Redundanz wird die mehrfache Ausf hrung der sicherheitrelevanten Ressourcen beschrieben Damit wird ein st rungsfreier Betrieb erm glicht Scheduling Unter Scheduling verbirgt sich die Ertei
14. als die Position Null Mit der Referenzfahrt kann das Lenkrad in eine richtige Initialposition gebracht werden Das Lenkrad verf gt ber einen Index Sensor nachdem die Referenzierung sucht Die Referenz fahrt dreht das Lenkrad im Uhrzeigersinn bis der Index Sensor erreicht ist Mit dem Offset kann nach dem Referenzieren eine beliebeige Position eingefahren werden Dies ist dann n tig wenn die gew nschte Nullposition nicht mit der Position des Index Sensors berein stimmt Die Nachricht 0x200 enth lt in den Bytes 5 und 6 das Positionsoffset das angibt um wie viel Grad das Lenkrad zur ckgedreht werden soll Diese Position wird als die neue Null position bernommen Wenn das zweite Byte der Nachricht 0x210 den Wert 0x68 aufweist so ist die Referenzfahrt zu Ende Danach kann die Regelung in den Normalmodus wechseln und den Motor einschalten 3 1 5 Analoger Eingang Um das geschwindigkeitsabh ngige Lenkverhalten zu realisieren ben tigt man einen ana logen Eingang Die Regelung des Lenkrades verf gt ber diesen Ein Potentiometer wird die Geschwindigkeit des Fahrzeuges simulieren Das Potentiometer braucht eine Spannungs versorgung von 4 8 Volt Diese kann dem Encoder entnommen werden Damit der Potentio meter nicht zu gro e Str me auf sich zieht und damit Spannungsausbr che an der Regelung verursacht muss das Potentiometer mindestens 1 kQ gro sein Andernfalls kann die Re gelung besch digt werden In der Abbildung 3 3 ist der S
15. bis zu 1 Gbit s und ist echtzeitf hig In Rahmen des Projekts mit dem sich das Communication over Real time Ethernet CoRE Team befasst wird die Zusammenarbeit des Real time Ethernet Protokolls mit den im Automotivebereich etablierten Bussen wie CAN und CANopen unter sucht und analysiert Dadurch konnten bereits entwickelte Komponenten ohne weiteres in die neuen bertragungsprotokolle eingebunden werden Der Vorteil von Real time Ether net ist die sehr hohe Bandbreite die nicht nur den Echtzeitanforderungen gen gt sondern erlaubt auch sehr gro e Datenmengen wie beispielsweise Multimedia zu bertragen ohne Echtzeitf higkeit zu beeinflussen Zielsetzung und Abgrenzung Im Rahmen dieser Arbeit soll eine Mikrocontroller basierte Steer by Wire L sung entwickelt werden vgl Abschnitt 2 1 Dabei sollen die CAN bzw CANopen basierte Komponenten wie der Lenkradmotor der Motor der Lenkgetriebe sowie der Kraftaufnehmer in Betrieb genommen und zu einem Regelkreis geschlossen werden 1X by Wire ist ein System bei dem die mechanische Verbindung mit den Aktoren und Sensoren durch eine elektrische Leitung ersetzt wird KAPITEL 1 EINF HRUNG 2 a Rad b Lenkrad Abbildung 1 1 Die bersicht des Gesamtsystems Der Controller soll die Position des Lenkrades in regelm igen Zeitabst nden auslesen sowie den daraus resultierenden Lenkwinkel berechnen und einstellen Auch die Querlenk kraft die auf das Rad einwirkt soll ermittelt und auf
16. der Konstante MOTOR_VALUE_HOMING_MODE wird der Referenzmodus festgelegt Bei dem default Modus 21 handelt es sich um die Referenzierung mit negativem Referenzschalter ohne Nullimpuls auswertung Jenaer Antriebstechnik GmbH 2009 KAPITEL 5 UMSETZUNG 48 Initialisierung Threads sind Programmteile die parallel zur Initialisierung ablaufen k nnen Daher w re falsch wenn der Thread vor der abgeschlossenen Initialisierung auf nicht initialisierte Varia blen zugreifen w rde Deswegen hat der Thread den Zustand Offline der den Zugriff auf die Variablen verbietet Erst durch den Aufruf von motor_init werden die Variablen initiali siert und erst dann wird der Thread des Zustandsautomaten freigegeben Zustandsautomat Der in der Funktion motor_state_mashine_task void arg platzierte Zustandsauto mat hat die Aufgabe den Threadablauf zu steuern und gegebenenfalls auf die auftretenden Fehler zu reagieren Weiterhin repr sentiert der Zustandsautomat das Ged chtnis des Mo duls Alle Parameter werden jedes Mal sequenziell gesetzt was die Anzahl der Zust nde sp rbar erh ht Das hat den Vorteil dass die Software auch nach dem Austausch der Hard ware oder der Wiederherstellung der Werkseinstellungen weiterhin funktioniert Die Abbil Set Tx PDO1 Par Length entry send 0x1800 0 EL timeout 1 5 ms send 0x1800 0 Set Tx PDO1 Bar entry send Ox1A00 1 timeout 1 5 ms send 0x1A00 1 Motor ON Set Tx PDO1 ID Set Tx PDO1 Mode
17. der vom Hersteller gelieferte CAN HAL Das Versenden der Nachricht wird von der Hardware ausgef hrt und verbraucht daher die CPU Rechenzeit nicht KAPITEL 3 HARDWARE 26 RS 232 Modul NXHX RS Das RS 232 Modul wird in den daf r vorgesehenen Slot eingesteckt In der Abbildung 3 7 ist es mit dem blauen Viereck umrandet Um die textuellen Ausgaben am Display darzustel len muss der Terminal mittels des Nullmodem Kabels mit dem RS 232 Modul verbunden werden Daf r kann auch ein herk mmlicher Computer mit der entsprechenden Software verwendet werden Folgende Parameter m ssen eingestellt werden Baudrate 1 4 5200 Data Bits 8 Parity none Stop BEE I Flow Control Hardware Nachdem der im Abschnitt 5 2 6 beschriebene Debugmodus aktiviert ist erscheinen die Aus gaben auf dem Display 3 4 2 Entwicklungsumgebung Als Entwicklungssprache ist C am besten geeignet weil sie sehr effizient schnell und hard warenahe ist Zum Kompilieren wird die Yagarto Toolchain verwendet Die Toolchain beinhal tet alle n tigen Werkzeuge um eine Anwendung f r die ARM 9 Architektur zu erstellen Die Erstellung von Sourcecode und das Kompilieren ist mit Eclipse CDT oder HiTOP m glich Der Upload der Software ber USB Kabel bzw Debugging ist nur mittels HiTOP m glich 3 4 3 Betriebssystem Das von dem Hersteller gelieferte Betriebssystem rcX ist f r die Entwicklung des Real time Ethernet RTE Stacks nicht geeignet weil die Sourcecodes nicht zu
18. e Das entwickelte Produkt ist sicherheitsrelevant und soll daher sehr robust und ausfall sicher realisiert werden Da der Fokus des Projektes die echtzeitf hige Kommunikation ist werden Aspekte wie Si cherheit durch Redundanz au en vor gelassen Struktur der Arbeit Das Kapitel 2 beschreibt die Grundlagen die f r das bessere Verste hen der Arbeit erforderlich sind Dazu geh rt eine kurze Einf hrung in die Lenksysteme bzw Steer by Wire CAN CANopen sowie die Einf hrung in die Regelungstechnik In Kapitel 3 werden die Besonderheiten der Hardware und das verwendete Betriebssystem erl utert Kapitel 4 enth lt die Beschreibung der Softwarearchitektur In Kapitel 5 werden die Umset zung die Berechnung der Schedulingstabelle und die externe Schnittstelle zur Einstellung des Lenkverhaltens beschrieben Die gestellten Anforderungen werden in Kapitel 6 mit den Ergebnissen der Umsetzung verglichen und analysiert Kapitel 7 enth lt die Zusammenfas sung und die Ideen zur Verbesserung bzw Erweiterung Kapitel 2 Grundlagen In diesem Kapitel werden die f r diese Arbeit relevanten Grundlagen vermittelt die f r das Verst ndnis der Architektur erforderlich sind Im Abschnitt 2 1 werden die Grundlagen der Lenkung bzw Steer by Wire dargestellt sowie deren Vorteile und Sicherheitsanforderun gen diskutiert Abschnitt 2 2 enth lt die Beschreibung des CAN Protokolls und befasst sich mit der Problematik der Arbitrierung sowie der Priorisierung
19. f r den Stadtverkehr geeignet Die Endanschl ge befin den sich bei 540 1 Sport Dieser Modus emuliert die sehr direkte Lenkung eines Rennwagens mit Endan schl gen bei 180 Ein sehr hoher Wirkungsgrad der Lenkung erfordert viel Kraft beim Lenken 2 Custom Der Modus erlaubt die Parameter der Lenkung beliebig anzupassen Die Default Werte entsprechen dem Cruiseodus Weitere Parameter werden mit den Sub indexen 1 5 eingestellt 3 Demo Beim Einschalten diesen Modus bewegt sich das Lenkrad bzw das Rad ab wechselnd erst in eine Richtung beim Erreichen der Endposition in die andere Rich tung So soll bei der Vorf hrung die Aufmerksamkeit der vorbeigehenden Zuschauer auf den Demonstrator gelenkt werden Force Feedback Der Subindex 1 l sst im Modus Custom die Wirkung der Force Feedback Kraft in den defi nierten Stufen anpassen Dies erlaubt einerseits durch die Minderung der Kraft den Komfort beim Fahren anderseits durch die Erh hung der Kraft eine bessere Verbindung zur Stra e zu erreichen Die Tabelle 5 6 enth lt die Skalierung der Kraft abh ngig vom Wert des Para meters Beim default Wert 4 wird die Kraft die auf das Rad einwirkt 1 1 in den Drehmoment umgerechnet Kleinere Werte verringern die Kraft gr ere erh hen sie entsprechend der Tabelle KAPITEL 5 UMSETZUNG 60 Force Feedback Parameter 0 1 2 131415 678 Drehmoment Multiplikator Tabelle 5 6 Skalierung der Force Feedback Kraft abh ngig vom Par
20. schaltet sich der Motor automatisch aus In einer realen Situation muss der Motor wieder eingeschal tet werden daher enth lt der Zustandsautomat die Zustandstransition aus dem Error in den Zustand Motor ON Bei einem Demonstrator handelt es sich um einen Vorf hrger t Ursache f r den Schleppfehler kann daher zum Beispiel ein eingeklemmter Finger sein Aus diesem Grund ist das Einschalten des Motors sehr gef hrlich und der Zustandsautomat bleibt im Zu stand Error Durch einen Neustart kann das System wieder in den Betriebszustand gebracht werden 5 2 6 Debug Um die Wartbarkeit der Software zu erh hen existiert ein Debug Modus Mit der Definition der nachfolgend beschriebenen Konstanten k nnen die textuelle Ausgaben aktiviert wer den Dadurch kann die Funktionalit t der Zustandsmaschinen und der einzelnen Parameter berpr ft werden Dabei soll beachtet werden dass einige Module parallel ablaufen und die Ausgaben sich vermischen k nnen Daher ist es hilfreich die Debug Modi einzeln zu aktivie ren e Mit der Definition der Konstante __DEBUG_SW_STATEMASHINE__ werden die Ausga ben des Lenkrad Zustandsautomaten eingeschaltet e Die Konstante DEBUG_SW_ANGLE__ gibt den empfangenen Lenkradwinkel an der Konsole aus Eine Ausgabe findet nur statt wenn sich der Zustandsautomat des Lenk rades im Zustand Online befindet Die Werte werden periodisch ausgegeben KAPITEL 5 UMSETZUNG 51 Um den Zustandsautomat des Kraftaufnehmers zu teste
21. Auf die Funktionalit t der einzelnen Bestandteile wird in den entsprechenden Modulbeschreibungen eingegangen Zugriff auf die Hardwareschalter Die Interrupt gesteuerte Nutzung von GPIO ist nicht m glich da die Interrupts entweder bei steigender oder bei fallender Flanke ausgel st werden vgl Abschnitt 3 4 1 Weiterhin sind die Schalter nicht prellsicher und m ssen entprellt werden Bei einer softwarebasierten KAPITEL 5 UMSETZUNG 39 Entprellung wird der Zustand der Schalter eine bestimmte Zeit beobachtet Erst wenn inner halb dieser Zeit keine Zustandsver nderungen festgestellt wurden wird der Wert bernom men Diese L sung ist mit dem gew hlten Ansatz nicht realisierbar Sollte der Zustand des Schalters einmal pro Periode ausgelesen werden so wird der Wert auf die Gesamtperiode verl ngert und damit der hnliche Effekt erzielt Durch das Verschieben des Schalters 1 sie he Abbildung 3 7 wird zwischen dem Sport und Cruisemodus umgeschaltet Mit Aufrufen der Funktion controller_get_steer_mode kann der Zustand des Schalters abgefragt werden Als R ckgabewert wird der Modus zur ckgegeben der eingestellt werden soll Mit tels Schalter 2 wird eingestellt ob die Emulation der Verletzung von Echtzeitkommunikation durchgef hrt werden soll Durch den Aufruf von controller_get_comm_mode kann die Position des Schalter abgefragt werden Abh ngig von dem R ckgabewert werden entwe der alle Nachrichten versendet oder nur ein Teil dav
22. DSSYSIEM va 2 wu weh ai E amt 3 5 Development Switch 100 Mbit s Architektur und Design Al SALCHIIEKIUF 4 4 40 A er ee we Be ei 4 2 Vereinfachte Architektur 4 3 Verteilter Regelkreis a 4 4 Softwaredesian 4 4 1 Anwendungsszenarien 2 2 Hmmm 4 4 2 Verteilte Kommunikation 4 4 3 Module und Softwarearchitektur Umsetzung 5 1 Arbeiten im Projektumfeld 5 1 1 Realtime Ethernet Implementierung 2 2 Km m mn 5 1 2 Entwuf einer CAN RTE Bridge 5 1 3 Infotainment Center 5 2 Programmaufbau und Beschreibung der Module 92 1 Mod l Controler raii ari amp er a AA er A 522 M g l CANT a ee e e era e 5 2 3 Modul Steering Wheel 5 24 Moqdul Foree Sensor e be bl e sr a a E 5 2 9 Mod l MOr A 4 4 r de Bde Ae de AC e do ae Tee 5 2 0 DEBUG a ne ae ae i 5 3 SCHEAUNNG s sa La a4 amp aa u Wr ee A Ra A 5 3 1 Laufzeiten der Nachrichten 2 2 2 2m Emm 5 3 2 Laufzeit der Prozesse 2 2 Comm mn 5 3 3 Schedulingtabelle f r CAN Kommunikation 5 3 4 Schedulingtabelle f r Real time Ethernet Kommunikation 5 3 5 Einstellung des Systems 5 4 Geschwindigkeitsabh ngiges Lenkungsverhalten 5 5 CAN Inteface zur Parametrierung des Controllers 22 23 23 23 24 24 25 26 26 27 29 29 30 31 32 32 33 34 INHALTSVERZEICHNIS 5 5 1 Parametrieren der Lenk
23. Fehler zu be seitigen Anhand des Status wird ber die weitere Vorgehensweise entschieden Es gibt nur zwei Arten von Fehlern die innerhalb der Software korrigiert werden k nnen e Messwert ung ltig e Skalierfehler Im Fall eines Skalierfehlers handelt es sich um den Fehler der nur innerhalb der Initialisie rung vorkommen konnte Daher wird die Initialisierung wiederholt Ist der Messwert ung ltig so wird an das Lenkrad als Messwert die O bergeben Bei den restlichen Fehlern handelt es sich um schwerwiegende Fehler die mit der Software nicht beseitigt werden k nnen Daher bleibt das Modul bis zur Beseitigung im Fehlerzustand 5 2 5 Modul Motor Dieses Modul bernimmt die Aufgabe der Kommunikation mit dem im Abschnitt 3 2 vorgestellten Servoverst rker Das Modul besteht aus einem in der Funktion motor_state_mashine _task void arg platzierten Thread der den Zustandsauto mat beinhaltet Die Aufgabe des Zustandsautomaten ist die berwachung der richtigen Reihenfolge der Ausf hrung sowie die Parametrierung der Hardware Das Modul hat die Aufgabe die berechnete Position bzw die Positionierungsgeschwindigkeit des Motors an den Servoverst rker zu versenden und damit einzustellen Parametrierung Die in der Datei motor h enthaltenen Konstanten beschreiben die einzelnen Parame ter des Moduls Die Konstante CANOPEN ADDR MOTOR enth lt die Ger te ID und muss mit der in der Hardware eingestellten Ger te ID bereinstimmen Mit
24. Ger t aus dem Preoperational Mode in den Operational Mode versetzt und damit PDO aktiviert Die NMT Nachricht ent h lt 2 Datenbytes Im ersten Byte wird das Kommando zum Starten bzw zum Stoppen ange geben das zweite Byte enth lt die Adresse des Knotens der angesprochen wird Nachdem der Knoten aktiviert wurde werden die Nachrichten erwartet bzw entsprechend der Konfigu ration versendet Die dabei entstehenden Nachrichten werden je nach Konfiguration hnlich der Abbildung 2 5 interpretiert 2 3 5 Synchronisierte Datenzugriffe sehr oft ist man in verteilten Systemen gezwungen mehrere Endger te zum selben Zeit punkt zu parametrieren bzw Daten holen zu m ssen Dabei f llt eine iterative Variante aus weil durch die nacheinander folgenden Nachrichten Verz gerungen entstehen F r die syn chronisierten Zugriffe sieht das CANopen Protokoll einen Konzept vor Mittels einer SYNC Nachricht die alle Knoten gleichzeitig erreicht wird die bernahme bzw das Versenden der Daten angeregt Der Zeitabstand zwischen zwei SYNC Nachrichten entspricht einer Periode KAPITEL 2 GRUNDLAGEN 15 blicherweise werden in der ersten H lfte der Periode die Antworten der gemappten Para meter erwartet In der zweiten H lfte werden die Parameter versendet die mit der SYNC Nachricht bernommen werden sollen Die SYNC Nachricht hat den Identifier 0x80 und da mit eine sehr hohe Priorit t Weiterhin enth lt sie keine Daten und ist daher nur 47
25. Hochschule f r Angewandte Wissenschaften Hamburg Hamburg University of Applied Sciences Bachelorarbeit Vitalij Stepanov Mikrocontroller und CAN basierte verteilte Regelung einer Steer by Wire Lenkung mit harten Echtzeitanforderungen Fakult t Technik und Informatik Faculty of Engineering and Computer Science Department Informatik Department of Computer Science Vitalij Stepanov Mikrocontroller und CAN basierte verteilte Regelung einer Steer by Wire Lenkung mit harten Echtzeitanforderungen Bachelorarbeit eingereicht im Rahmen der Bachelorpr fung im Studiengang Informatik am Department Informatik der Fakult t Technik und Informatik der Hochschule f r Angewandte Wissenschaften Hamburg Betreuender Pr fer Prof Dr Franz Korf Zweitgutachter Prof Dr Andreas Meisel Abgegeben am 22 August 2011 Vitalij Stepanov Thema der Bachelorarbeit Mikrocontroller und CAN basierte verteilte Regelung einer Steer by Wire Lenkung mit harten Echtzeitanforderungen Stichworte Steer by Wire Echtzeit Regelung Lenkung Force Feedback Mikrocontroller CAN CANopen Ethernet TTEthernet Kurzzusammenfassung Der Gegenstand dieser Bachelorarbeit ist die Entwicklung einer Mikrocontroller basierten Steer by Wire Lenkung Die Vorteile wie dynamische Anpassung des Lenkungsverhaltens und geschwindigkeitsabh ngige Lenkung werden untersucht und demonstriert Mit einem Schalter l sst sich zwischen einer gew hnlichen Lenkung f r den Stadtve
26. ISR untersucht werden wie mit der Nachricht zu verfahren ist Die Tabelle 5 1 enth lt eine bersicht der Nachrichten die vom CAN Modul empfangen werden k nnen Anhand des Identifiers wird entschieden an welches Modul die Nachricht KAPITEL 5 UMSETZUNG 40 ID Protokoll Modul Beschreibung 0x182 PDO Status des Motors 0x281 Motor NMT Antwort 2 0x58 CANopen SDO Antwort 0x183 BE 0x583 0x604 0x210 A 0x211 CAN Ox21A Tabelle 5 1 Liste der ankommenden Nachrichten und deren Zielmodule bermittelt werden soll Jedes Modul hat eine Funktion die die CAN Nachricht erwartet und gegebenenfalls verarbeitet Durch den Aufruf der Funktion des zugeh rigen Moduls wird die Nachricht an den Empf nger weitergereicht Versenden der Nachrichten Um eine CAN Nachricht zu versenden wird der Zeiger auf die Struktur die einen CAN Frame enth lt an die Funktion can_send CAN_FRAME_Tx tFrame bergeben Die Funktion leitet das an den CAN HAL weiter der die Nachricht anschlie end versendet Das Versenden der CAN Nachricht geschieht parallel und verbrauch nicht die CPU Rechenzeit Die Tabelle 5 2 enth lt die Nahrichten und deren Quellmodule die vom Controller versendet werden ID Protokoll Modul Beschreibung NMT Nachricht schaltet PDO ein 0x252 Motor Position Geschwindigkeit setzen 0x602 SDO Anfrage AN CANopen E Sun Nachricht SDO Anfrage 0x603 0x584 SDO Parameter der CAN Schnittstelle Antwort 0x200 Steering Wheel Status d
27. Kai M ller 2011 implementiert Ein weiterer positiver Aspekt dieser Designentscheidung ist die erh hte Flexibilit t bez glich des Einsatzes und der absoluten Unabh ngigkeit von der Bridge was sich bei der Fehlersuche besonders auszahlt 4 2 Vereinfachte Architektur Bei sehr komplexen und un bersichtlichen Aufgaben ist es von besonderer Bedeutung dass das Gesamiziel in kleinere beherrschbare Teilaufgaben unterteilt wird W hrend der Soft wareentwicklung der Grundfunktionalit t hat die r umliche Entfernung zwischen dem Con troller und den Aktoren bzw Sensoren keine kritische Auswirkung Daher wird der Controller zuerst nur innerhalb eines CAN basierten Systems realisiert Die Abbildung 4 2 stellt eine vereinfachte Architektur der Abbildung 4 1 dar Alle Knoten sind am gleichen Bussystem angeschlossen Dadurch werden die Vorg nge die in einer vollst ndigen Architektur par allel ablaufen sequentiell ausgef hrt was zur Auslastung der Bandbreite f hren kann Die dabei festgelegte Teilaufgabe begrenzt sich auf die Realisierung der Funktionalit t der Len KAPITEL 4 ARCHITEKTUR UND DESIGN 31 Controller CAN CANopen Bus Kraftsensor Lenkrad Abbildung 4 2 Vereinfachte Netzwerkarchitektur kung bzw des Force Feedbacks Nachdem der Controller entwickelt und getestet ist kann er in die vollst ndige Architektur integriert werden Allerdings muss dabei beachtet werden dass die in diesem Ansatz auftretende Busauslastung a
28. Modul hat eine Reihe von konstanten Parametern die man vor dem Kompilieren ver n dern und damit die Eigenschaften des Controllers anpassen kann Mittels der in der Datei steering_wheel h definierten Konstanten k nnen default Parameter f r die Lenkungsmodi CRUISE SPORT CUSTOM und DEMO eingestellt werden Weiterhin enth lt die Datei Kon stanten zum Zugriff auf das externe Interface das im Abschnitt 5 5 beschrieben wird Initialisierung Threads sind Programmteile die parallel zur Initialisierung ablaufen k nnen Daher w re es falsch wenn der Thread vor der abgeschlossenen Initialisierung auf nicht initialisierte Variablen zugreifen w rde Deswegen hat der Thread den Zustand Offline der den Zugriff auf die Variablen verbietet Erst durch den Aufruf von steering_wheel_init werden die Variablen initialisiert und erst dann wird der Thread freigegeben Zustandsautomat Der Zustandsautomat hat die Aufgabe beim erstmaligen Einschalten das Lenkrad zu refe renzieren und in den Betriebsmodus zu bringen Dies steuert der im Abschnitt 3 1 3 beschrie bene Zustandsautomat des Endger tes Eine Besonderheit dieses Zustandsautomaten ist dass der Befehl zum Ver ndern des Zustandes nicht den Abschluss der Transition best tigt KAPITEL 5 UMSETZUNG 42 sondern lediglich das Empfangen der Nachricht Damit erh lt die Best tigung nicht den ak tuellen Zustand sondern den Zustand zum Zeitpunkt des Versendens Durch diesen Einsatz erreicht die Rege
29. W AE Ed Bridge Lenkrad ech Lenkrad C Abbildung 5 6 Scheduling der Real time Ethernet basierten Kommunikation grauen Balken die Bearbeitungszeit bzw Rechenzeit dar Im Vergleich zu der Abbildung 5 5 sind hier zus tzlich der Real time Ethernet Switch und die Bridges am kritischen Pfad beteiligt Die Threads des Controllers werden mit den blauen K stchen dargestellt Beim KAPITEL 5 UMSETZUNG 96 Zeitpunkt 100 us wird der Thread steering wheel_state_mashine task aktiviert der die Anfrage der Position Nachricht 0x201 an das Lenkrad versendet Der Thread force_sensor_state_mashine task versendet beim Zeitpunkt 430 us an den Kraft sensor und den Motor die SYNC Nachricht Am Zeitpunkt 480 us fordert der Thread steering wheel_status_request_task den Status des Lenkrades an Da der Real time Ethernet Switch und die Bridges Full duplex sind kollidieren die Nachrichten bei 550 us nicht Der Winkel des Lenkrades Nachricht 0x211 wird empfangen abgearbeitet und zum Zeitpunkt 630 us im Thread motor_state_mashine_task an den Motor versendet Beim Zeitpunkt 1020 us wird der Thread steering veel analog in request_task gestartet der mit der Nachricht Ox20A den analogen Eingang abfragt Die Kollision zwischen der Nachricht 0x182 und der Nachricht 0x183 wird auf der Sicherungsschicht der CAN Im plementierung aufgel st siehe Abschnitt 2 2 2 Die Nachricht 0x182 wird in der Switch zwi schengespeichert und zum Zeitpunk
30. al sequenziell gesetzt was die Anzahl der Zu st nde sp rbar erh ht Das hat den Vorteil dass die Software auch nach dem Austausch der Hardware oder der Wiederherstellung der Werkseinstellungen weiterhin funktioniert Die Abbildung 5 2 stellt den Zustandsautomat des CAN Messverst rkers dar Jeder Zustand enth lt die Information ber die Nachricht die er versendet und das CANopen konforme Objekt bzw den Subindex der f r das Setzen der Parameter zust ndig ist Am Anfang ist der Zustandsautomat im Zustand Offline Erst wenn die Initialisierung der Variablen abge schlossen ist geht er in den Zustand Scaling Zero und f ngt an die Hardware zu parame trieren Die Zust nde Scaling Zero Scaling Zero Phys Scaling MAX Scaling MAX Phys setzen die entsprechenden in der Headerdatei definierten Parameter des Sensors Dadurch KAPITEL 5 UMSETZUNG 46 Scaling Zero Scaling Zero Phys Scaling MAX entry send 0x3140 1 entry send 0x3141 1 entry send 0x3142 1 timeout 1 5 ms send 0x3140 1 timeout 1 5 ms send 0x3141 1 timeout 1 5 ms send 0x3142 1 Scaling MAX Phys entry send 0x3143 1 timeout 1 5 ms send 0x3143 1 Online entry send SYNC timeout 1 5 ms send SYNC Set Fixpoint entry send 0x6132 1 timeout 1 5 ms send 0x6132 1 Operational Mode entry send 0x3402 0 timeout 1 5 ms send 0x3402 0 Autozero entry send 0x6125 1 timeout 1 5 ms send 0x6125 1 Set PDO1 Par2
31. ameter Endanschl ge Mittels Subindex 2 wird der Winkel des Lenkrades eingestellt bei dem in beiden Richtun gen von der Nullposition eine sp rbare Endgrenze realisiert wird Der Parameter ist eine vorzeichenlose ganzzahlige Zahl 2 Byte lang mit dem Wertebereich von 180 bis 540 Wirkungsgrad Mit dem Subindex 3 wird der Wirkungsgrad eingestellt der beschreibt wie effektiv die Kraft vom Rad an das Lenkrad bertragen wird Der Wirkungsgrad wird in Prozent eingegeben und hat den Wertebereich von O bis 100 Bei 100 wird die Kraft 1 1 bertragen Bei h heren Werten erh ht sich der Lenkkraftaufwand Reibung Unter Subindex 4 verbirgt sich die Reibung die die Hemmung der Bewegung zwischen der Fahrbahn und dem Rad beschreibt Zudem h ngt die Reibung von der Lenk bersetzung Lenkelastizit t und Achsenkinematik ab Ist die Reibung zu gro wird die Lenkung zu stumpf und verhindert den Kontakt zur Fahrbahn Sonst sind Vibrationen und Drehschwingungen sp rbar Eine richtig eingestellte Reibung erh ht die Kundenzufriedenheit D mpfung Der Subindex 5 stellt die D mpfung ein die die kontinuierliche Minderung der Bewegung oder Schwingung beschreibt Wenn einem ged mpften schwingenden System keine neue Energie zugef hrt wird verebbt seine Schwingung die Amplitude nimmt ab Somit wird die berschwingung verhindert 5 5 2 Fehlerbehandlung Sollte der Zugriff fehlerhaft sein dann enth lt die SDO Antwort im ersten Byte der Na
32. amit Force Feedback realisiert werden Ver ndert der Fahrer den Winkel des Lenkrades so wird daraus die Position des Mo tors berechnet und als Parameter an die Funktion motor_set_position int ber geben Die Anwendung des Infotainment Centers schickt CAN Nachrichten an das Lenkrad modul Anhand der ID stellt das Modul fest ob es sich um die Parameter der Lenkung handelt und stellt diese ein Diese berlegungen zeigen dass die entworfene Softwarearchitektur den gesetzten Zielen und den Kundenanforderungen gerecht wird Die Realisierung wird im nachfolgenden Kapitel beschrieben Kapitel 5 Umsetzung Dieses Kapitel beschreibt die Realisierung der Software bzw das Zusammenspiel mit weite ren Bachelorarbeiten im Projektumfeld Weiterhin enth lt das Kapitel die Beschreibung des externen CAN Interfaces zur Anpassung des Lenkungsverhaltens 5 1 Arbeiten im Projektumfeld Das Gesamtziel des Projektes setzt sich aus mehreren Bachelorarbeiten zusammen die in diesem Abschnitt beschrieben werden Insgesamt sind es drei Bachelorarbeiten die mit Steer by Wire eng verbunden sind und teilweise aufeinander aufbauend So setzt beispiels weise die im Abschnitt 4 1 vorgestellte Bridge auf der Implementierung von Real time Ether net auf Auch das Infotainment Center kann erst nach der Definition der Schnittstelle zur An passung des Fahrverhaltens entwickelt werden Die Konzeption bzw Entwicklung der Steer by Wire Lenkung ist von der Bridge u
33. ation Die Interpretation der Parameter wird entsprechend der Abbildung 2 5 realisiert Mit der Nachricht 0x200 wird die Regelung des Lenkrades gesteuert Das erste Byte enth lt das Steuerwort mit dem der Zustands automat aus dem Abschnitt 3 1 3 gesteuert wird Das LSB Nibble enth lt den Zustand des Automaten mit dem MSB Nibble wird der Modus des Lenkrades spezifiziert Innerhalb dieser Bachelorarbeit werden der Normalmodus 0x1 und der Referenzfahrt Modus 0x4 verwendet Mit den Bytes 3 und 4 wird die Position der Endanschl ge gesetzt Byte 7 legt die prozentuale Kraft innerhalb der Endanschl gen fest Mit dem Byte 8 wird die prozentuale Kraft au erhalb der Endanschl ge gesetzt Die Nachricht 0x210 enth lt in den Bytes 1 und 2 die Best tigung des Status der Regelung Befindet sich der Zustandsautomat im Fehlerzu stand dann enthalten die Bytes 3 und 4 den Fehlercode Mit der Nachricht 0x201 wird das Verhalten der Lenkung parametriert Bytes 1 und 2 setzen den Sollmoment damit ist das Force Feedback realisiert Die Reibung wird mit den Bytes 3 und 4 eingestellt D mpfung befindet sich in den Bytes 5 und 6 In den Bytes 7 und 8 ist die Federsteifigkeit untergebracht Nachricht 0x211 liefert die Position 1 2 3 4 die Geschwindigkeit 5 6 der Drehung und den Istmoment 7 8 Die Regelung berechnet aus den Parametern den Motormoment nach der Formel Daran wird die Abh ngigkeit der D mpfung von der Geschwindigkeit und der Federstei figk
34. b des CAN netwerkes getestet Alle Anwendungsszenarien wurden ausf hr lich durchgef hrt und dabei auf die Benutzerfreundlichkeit untersucht Um die Nutzererwar tungen zu pr fen wurden die Testpersonen sowie die Mitentwickler gebeten die Funktiona lit t des Produktes zu beurteilen Dabei wurden die Anmerkungen und Verbesserungsvor schl ge aufgenommen und anschlie end umgesetzt Weiterhin wurden die Aspekte Ausfall sicherheit und Benutzbarkeit untersucht Zudem wurden Reviews mit den Teammitgliedern zur Aufdeckung von Unklarheiten und irrt mlichen Annahmen durchgef hrt W hrend der Validierung wurde festgestellt dass der Motor des Lenkrades au erhalb der Endanschl gen nicht gen gend Kraft entwickelt Mit kleinen Anstrengungen lie sich der Endanschlag berwinden Daher wurde ein anderer leistungsf higerer Motor bestellt und eingebaut Die Software wurde entsprechend angepasst und getestet Beim Test des Gesamtsystems ist ei ne Anomalie fesgestellt worden dass bei einer bestimmten Konstellation die Regelung des Lenkrades die Statusnachricht mit dem falschen Inhalt versendet hat Anstatt des Zustandes der Regelung bzw des Statuses versendete diese die Position bzw die Geschwindigkeit Die Statusnachricht wird ausgewertet um die geforderte Robustheit zu erreichen Bei einem falschen Inhalt der Nachrich f hrt der Zustandsautomat des Moduls Steering Wheel falsche Transition aus und landet unn tigerweise in der Referenzierung Die Nachr
35. ch die Definition der entsprechenden Konstante festgelegt Nachfolgend werden die verf gbaren Rollen beschrieben KAPITEL 5 UMSETZUNG 57 e CONTROLLER Bei der Definition dieser Konstante befindet sich die Implementierung in Rolle des Controllers Mit der Konstante CAN_VIRTUAL wird die Art der CAN Kom munikation festgelegt Ist die Konstante definiert so wird die Schedulingtabelle aus dem Abschnitt 5 3 4 eingebunden In diesem Fall dient der Controller im Real time Ethernent Netzwerk als SYNC Master Er versendet in der SYNC Phase die SYNC Nachrichten um das Netzwerk auf die gemensame Zeit zu bringen Wenn die Kon stante nicht definiert ist handelt es sich um einen CAN basierten Controller und es wird die im Abschnitt 5 3 3 beschriebene Schedulingtabelle genutzt Beide Tabellen befinden sich in der Datei config_controller h e BRIDGE WHEEL Die Konfiguration entspricht der in der Abbildung 5 6 dargestellten Bridge Lenkrad Die Schedulingtabelle befindet sich in config_wheel h e BRIDGE_STEER Die Konfiguration entspricht der in der Abbildung 5 6 dargestellten Bridge Rad Die Schedulingstabelle befindet sich in config_steer h Es darf nur eine Rolle zur Zeit festgelegt werden weil jede Konstante eine Schedulingtabelle einf gt Bei mehreren Eintr gen werden Tabellen mit den gleichen Namen eingef gt was der Compiler als Fehler erkennt DA Geschwindigkeitsabh ngiges Lenkungsverhalten In einem herk mmlichen Fahrzeug beeinflusst die Fahrgesc
36. chaltplan zum Anschluss eines Analog IN Abbildung 3 3 Schaltplan zum Anschlu eines Potentiometers zur Simulation der Geschwindigkeit KAPITEL 3 HARDWARE 22 Potentiometers dargestellt Die Masse des Encoders X3 Pin 8 muss mit der Masse des AD Wandlers X5 Pin 1 verbunden werden Die 5 Volt Versorgungsspannung werden dem X3 Pin 1 entnommen Die u eren Pins des Potentiometers werden mit der Spannungsversorgung verbunden Der Pin mit dem ver nderbaren Widerstand wird am X5 Pin 9 angeschlossen Mit der Nachricht 0x20A wird die Messung angefordert Die Nachricht Ox21A enth lt in den Bytes 3 und 4 den Messwert von dem analogen Eingang 3 2 ECOVARIO 214AR BJ Verst rker mit Antrieb F r die Realisierung der Querlenkung wird die radiale Kraft des Motors mit dem Zahnstan genantrieb in die lineare Kraft umgesetzt siehe Abbildung 3 4 a Die Kraft wird an den Querlenker bertragen der das Rad zum Ausschlag bringt Der in der Abbildung 3 4 b dar a Der Motor und die Mechanische Verbindung zum Rad b Regelung des Motors Abbildung 3 4 Die Realisierung der Querlenkung und entsprechender Verst rker gestellte Verst rker bernimmt die Regelung des Motors Die Regelung verf gt ber einen Sollwertgenerator der daf r sorgt dass die durch die CAN Nachricht bermittelte absolute Position mit der angegebenen Geschwindigkeit angefahren wird 3 2 1 Nachrichten Der Verst rker wird mit dem CANopen Protokoll vgl Abschnitt 2 3
37. chricht die Konstante 0x80 Anhand des in Bytes 5 8 enthaltenen CANopen konformen Fehlercodes kann der Fehlergrund festgestellt werden Die Tabelle 5 7 enth lt die Liste der m glichen Fehler die nachfolgend beschrieben werden KAPITEL 5 UMSETZUNG 61 Fehler Nr Defineauscnh Beschreibung 0x00000206 CANOPEN_ERROR_OBJECT_DOESNT_EXIST Objekt existiert nicht 0x11000906 CANOPEN_ERROR_SUBINDEX_DOESNT_EXIST Subindex existiert nicht 0x00000008 CANOPEN_ERROR_COMMON Allgemeiner Fehler 0x12000706 CANOPEN_ERROR_DATA_TYPE_TOO_BIG Datenl nge zu gross 0x13000706 CANOPEN_ERROR_DATA_TYPE_TOO_SMALL Datenl nge zu klein Tabelle 5 7 Liste der Fehler mit den entsprechenden Fehlernummern e CANOPEN ERROR _ OBJECT _DOESNT EXIST tritt dann auf wenn an den Controller ein nicht implementiertes Objekt bergeben wurde e CANOPEN_ERROR_SUBINDEX DOESNT_EXIST wird von dem Controller gemeldet wenn der Zugriff auf ein nicht existierenden Subindex ausgef hrt wurde e CANOPEN_ERROR_COMMON der allgemeine Fehler tritt dann auf wenn die Grenze des Wertebereiches verletzt wurde oder die Nachrichtengr e weniger als 4 Byte lang ist und damit keine Daten enthalten kann e CANOPEN_ERROR_DATA_TYPE_TOO_BIG dieser Fehler kommt dann vor wenn die an gegebene L nge der Daten gr er ist als die L nge der Variablen e CANOPEN_ERROR_DATA_TYPE_TOO_SMALL dieser Fehler tritt dann auf wenn die an gegebene L nge der Daten kleiner ist als die L nge
38. chtzeitverletzung ll EES SE Fahrmodus GE umschalten CAN lt lt include gt gt Lenkungsverhalten am D Display einstellen lt lt include gt gt N lt lt include gt gt Sa Endanschl ge E j ae zen elidess einstellen CAN N Fahrer einstellen CAN lt lt include gt gt Ee DS N ES D mpfung Reibung einstellen einstellen CAN CAN Abbildung 4 3 Anwendungsf lle des Produktes KAPITEL 4 ARCHITEKTUR UND DESIGN 33 In dem Fall Fahrmodus ausw hlen wird mittels eines Schalters zwischen dem Sport modus und dem Cruisemodus umgeschaltet Sollte der Fahrer auf den Bordstein auffahren und damit eine Querkraft erzeugen so wird diese an das Lenkrad weitergereicht Der Usecase Lenken entspricht dem gew hnlichen Fahren Im Fall Echtzeitverletzung emulieren soll die Notwendigkeit der harten Echtzeitanfor derungen greifbar gemacht werden Mit dem Anwendungsfall Lenkungsverhalten am Display einstellen werden mittels eines Infotainment Centers per CAN die Parameter der Lenkung wie Force Feedback Endanschl ge Reibung D mpfung Wirkungsgrad und der Fahrmodus eingestellt 4 4 2 Verteilte Kommunikation Mittels eines Sequenzdiagramms k nnen parallel ablaufende Vorg nge bersichtlicher dar gestellt werden Das in der Abbildung 4 4 veranschaulichte Diagramm zeigt den prinzipiellen Aufbau der verteilten Kommunikation zwischen den einzelnen Komponenten in der zeitli Controller Kraftau
39. das Lenkrad zur ckgef hrt werden Man spricht dabei von Force Feedback vgl Abschnitt 2 1 3 Um den Aufgabenbereich besser berblicken zu k nnen wird die Arbeit gegliedert und schrittweise durchgef hrt Zun chst soll die Funktionalit t der Regelung nur innerhalb der CAN Topologie realisiert werden Im zweiten Schritt werden die CAN Endger te die sich in unterschiedlichen Bussen befinden mittels einer Bridge ber Real time Ethernet zusammengeschlossen Daf r werden die in der Abbildung 1 1 dargestellte zwei r umlich getrennten Systeme zu einem gemeinsamen System verbunden Es soll weiterhin m glich werden die Echtzeitverletzung zu emulieren um damit auf die Notwendigkeit von Real time Ethernet aufmerksam zu machen In diesem Zusammenhang sollen die Vorteile der Steer by Wire L sungen greifbar darge stellt werden Zu den gr ten Vorteilen z hlt die M glichkeit das Lenkverhalten dynamisch zu ver ndern Um auch das wahrnehmbar darzustellen werden folgende Teilziele gesetzt Es sollen unterschiedliche Modi wie z B normales Auto und Rennwagen ber einen Schalter einstellbar sein e Die externe Schnittstelle zur Ver nderung des Lenkverhaltens ber das Infotainment Center soll ein beliebiges Fahrzeugverhalten wie z B Porsche oder Ferrari erm gli chen e Das Lenkradverhalten soll geschwindigkeitsabh ngig realisiert werden und die Ge schwindigkeit ber ein Potentiometer einstellbar sein KAPITEL 1 EINF HRUNG 3
40. de Nachricht aufgezeichnet die an das entsprechen de Ger t gesendet werden soll Mittels eines Commands CMD wird die Art des Zugriffes 8 Byte O Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Index Sub Daten OMO LSB MSB LSB MSB Abbildung 2 6 Aufteilung einer CANopen Rx Nachricht in Parameter festgelegt Bei einem Lesezugriff muss die L nge der Daten nicht spezifiziert werden Man erh lt sie in der Antwortnachricht an derselben Stelle Bei einem schreibenden Zugriff legt die kleinste hexadezimale Zahl des CMD die L nge der Daten fest Nachfolgend werden alle m glichen Zugriffsarten f r die Tx Nachrichten aufgelistet KAPITEL 2 GRUNDLAGEN 13 0x40 Lesezugriff 0x23 Schreiben 4 Bytes 0x2B Schreiben 2 Bytes 0x2F Schreiben 1 Byte In dem Index Segment wird die Nummer eines Objekts angegeben das angesprochen bzw gelesen werden soll Die Objekte sind standardisiert und werden von CAN in Automation e V CiA geleitet Au erdem enth lt die Nachricht einen Subindex der als Parameter eines Objekts anzusehen ist Die Anzahl von verf gbaren Subindexen ist hersteller bzw imple mentierungsspezifisch der Dokumentation des Ger tes zu entnehmen Die Abbildung 2 7 enth lt die Antwortnachricht mit der der Empf nger den Erhalt der Nachricht quittiert Im B 8 Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 RES Index Sub Daten LSB MSB Index LSB MSB Abbildung 2 7 Aufteilung einer CANopen Tx Nachricht in Paramet
41. der Nachrichten Weiterhin ver mittelt der Abschnitt 2 3 die Erweiterung des CAN Protokolls zu CANopen erkl rt die Zu griffsm glichkeiten und befasst sich mit der Notwendigkeit von Objekten Die Grundlagen der Regelungstechnik und die Aspekte der Echtzeitanforderungen werden im Abschnitt 2 4 aufgezeigt 2 1 Steer by Wire Immer fter setzen sich Systeme durch in denen die mechanischen Verbindungen durch elektrische Leitungen ersetzt werden Man fasst sie unter dem Oberbegriff X by Wire zu sammen Es gibt eine Reihe hnlicher Systemen wie z B Drive by Wire oder auch Fly by Wire In der Luftfahrtindustrie sind derartige Systeme sehr komplex und fortgeschritten Sie erlauben nicht nur die bertragung der Befehle an Aktoren sondern k nnen vollst ndig autonom handeln Ein Beispiel daf r ist der Autopilot im Flugzeug der schon eine breite An erkennung und Akzeptanz verdient hat In einem herk mmlichen Fahrzeug wird der Winkel des Lenkrades durch eine komplizierte kinematische Verbindung an die R der bertragen und damit die Lenkung des Fahrzeuges erm glicht Diese Verbindung besteht aus einer Lenks ule die mittels eines Lenkgetriebes die radiale Bewegung in eine lineare Bewegung umsetzt und mithilfe der Spurstange den Lenkwinkel einstellt vgl Leiter u a 2008 Bei einer Steer by Wire Lenkung wird die Steer by Wire ist ein Lenksystem bei dem die mechanische Verbindung mit den Aktoren und Sensoren durch ei
42. der Parameter die zur Parametrierung des Lenkungsverhaltens genutzt wer den Nachfolgend wir auf jeden Parameter der Liste einzeln eingegangen Die in der Tabel Objekt Subindex Datentyp Wertebereich Beschreibung D uw 011 233 Umschalten von Modi ep oe Force Feedback 2 ut6 180 540 Endanschl ge 0x6060 3 u8 0 100 Wirkungsgrad 4 ug 0 50 5 ue 0 50 D mpfung Tabelle 5 5 Die bersicht der Objekte f r die Parametrierung des Controllers le zusammengefassten Parameter besitzen unterschiedliche Datentypen Der Datentyp gibt die Gr e des Parameter in Bits und die Art der Daten an So entspricht der Datentyp u8 dem vorzeichenlosen 1 Byte gro en Parameter Das Beispiel beschreibt den lesenden bzw schreibenden Zugriff auf den Subindex 0 und stellt damit Modus Custom ein KAPITEL 5 UMSETZUNG 99 Lesen 604 8 40 60 60 00 xx XX XX XX Antwort 584 8 ZE 60 60 00 OL XX XX XX Schreiben 604 8 ZE 60 60 00 02 XX XX XX Antwort 584 8 b0 60 60 00 02 XX x xx Beim lesenden Zugriff muss darauf geachtet werden dass der erste Byte der Antwort den CANopen konformen Datentyp enth lt der ausgewertet werden muss vgl Abschnitt 2 3 2 Umschalten des Modus Mit dem Subindex 0 wird zwischen vier verf gbaren Modi umgeschaltet Jeder der Modi hat eine bestimmte Funktion die nachfolgend erkl rt wird O Cruise In diesem Modus entspricht die Lenkung einem gew hnlichen Fahrzeug Die einfache Lenkung ist perfekt
43. der Variablen Kapitel 6 Qualit tsicherung In diesem Kapitel wird das entwickelte Produkt auf die Erf llung der gestellten Qualit tsan forderungen berp ft Zudem wird die Korrektheit gegen Anforderungen sowie deren voll st ndige Umsetzung untersucht Weiterhin werden die Aspekte Zuverl ssigkeit Wartbarkeit sowie Benutzerfreundlichkeit analysiert 6 1 Verifikation Innerhalb der Verifikation werden Fehler lokalisiert und behoben Die Fehler m ssen so fr h wie m glich entdeckt werden weil die Fehlersuche im Gesamtsystem viel umst ndlicher ist als in den kleineren Teilen Zudem ist das Debuggen von Echtzeitanwendungen besonders in eingebetteten Systemen sehr umst ndlich Um den verdeckten Fehlern auf die Spur zu kommen werden alle Module dem Modultest unterzogen Mit den im Abschnitt 5 2 6 be schriebenen Debug Parametern wurden das spezifizierte Verhalten der Zustandsautomaten und die Berechnungen der Parameter berpr ft Diese Tests lassen sich jederzeit wieder holen was die Wartbarkeit der Software wesentlich erh ht Bei den Tests wurden sowohl erlaubte als auch unerlaubte Eingaben durchgef hrt Die Modultests zeigen die Anwesen heit der Fehler und nicht deren Abwesenheit vgl International Software Testing Qualificati on Board 2005 Daher m ssen die dynamischen Tests mit anderen Methoden abgesichert werden Daf r wurden zus tzlich Codereviews durchgef hrt um die logischen Fehler zu entdecken Nachdem einzelne
44. det die Rege labweichung e t Aus der damit bestimmten Regelabweichung e t berechnet der Regler die Stellgr e u t Aus der Einwirkung der St rgr e auf die Stellgr e resultiert der Ist wert Der in der Abbildung 2 8 dargestellte Regelkreis ist von der Zeit abh ngig und stellt damit ein kontinuierliches System dar Es gibt eine Reihe von Parametern die erlauben das Verhalten des Regelkreises zu analysieren Die Totzeit charakterisiert die Verz gerung zwi schen der F hrungsgr e und der Stellgr e Manchmal werden auch die Begriffe Laufzeit oder Transportzeit verwendet Eine lange Totzeit beeinflusst das Regelverhalten des Regel Kreises negativ Daher soll darauf geachtet werden die Totzeit kurz wie m glich zu halten Eine Sehr ausf hrliche Beschreibung ist im Buch von Mann u a 2009 vorhanden SDer Begriff Totzeit Tr steht f r die Zeit die von der nderung am Eingang bis zur nderung am Ausgang vergeht KAPITEL 2 GRUNDLAGEN 16 St rgr e Regelabweichung Stellgr e d t Soll Wert Ist Wert Regelstrecke R ckkopplung Abbildung 2 8 Grafische Darstellung eines einfachen Regelkreises nach Quelle Mann u a 2009 2 4 2 Fahrer als Regler Von Geburt an wendet der Mensch die Prinzipien der Regelungstechnik unbewusst an Durch Vergleich und Beobachtung entscheidet der Mensch ob er das vorgegebene Ziel erreicht hat und versucht gegebenenfalls darauf zu reagieren So erlernt er im Laufe des L
45. e Lenkung im Parkmodus Skalierung der herk mmlichen Dynamische Lenkung bei Lenkung hoher Geschwindigkeit Abbildung 2 2 Grafische Darstellung von m glichen Steer by Wire Lenkungsver halten und deren Skalierung auf den Lenkinterval gestellt Eine ideale lineare bersetzung mechanisch zu entwickeln ist eine Wissenschaft f r sich Insbesondere bei nichtlinearen bersetzungen ist die Engineerkunst gefragt Die ses Problem vereinfacht sich wesentlich mit Steer by Wire und erlaubt die Vorteile der Modi abh ngig von der Situation oder per Knopfdruck sinnvoll auszunutzen 2 1 3 Force Feedback Durch den Ersatz einer mechanischen Verbindung durch elektrische Leitungen werden die Ereignisse der Fahrbahn wie Steine oder Stra ensch den f r den Fahrer nicht mehr er kennbar Um diese Verbindung herzustellen soll die Querbeschleunigung bzw die Querkraft mittels eines Kraftaufnehmers gemessen und auf das Lenkrad bertragen werden so dass es vom Fahrer wahrgenommen werden kann Eine solche L sung wird in dem Patent von Discenzo 2000 beschrieben Im Gegensatz zu den mechanischen L sungen kann der Um fang der R ckmeldung dynamisch angepasst werden So l sst sich beispielsweise die Kraft komplett ausschalten oder erh hen Dadurch kann die Kraft bertragung flexibel angepasst werden und es erh ht sich der Komfort f r den Fahrer Eine weitere Vorgehensweise ben tigt keinen Kraftaufnehmer und besteht darin dass man in einem berge
46. e parallel ihre Aufgaben verrichten Die Aufgabe der Module besthet darin die entsprechende Hardware in den Betriebsmodus zu f hren die Daten bzw den Statuszustand in regelm igen Abst nden anzufordern und gegebenenfalls auf Fehler zu reagieren Die Kommunikation zwischen den Endger ten erfolgt mittels eines CAN Moduls der die CAN Nachrichten versendet bzw entgegennimmt Das Modul Control Force Sensor fs_state_t fs_zustand Controller CAN_FRAME_T fs_init_msg controller_init void CAN_FRAME_T fs_measure_msg controller_get_steer_mode sw_mode_t signed int fs_force_value controller_get_comm_mode sw_rt_mode_t force_sensor_init void force_sensor_state_mashine void force_sensor_is_online bool force_sensor_receive CAN_FRAME_T void Steering Wheel CAN _FRAME_T sw_msg_control can_init void CAN_FRAME_T sw_msg_parameter can_sent CAN_FRAME_T void CAN_FRAME_T sw_msg_response can_isr_recv_low void sw_state_t sw_zustand sw_mode_t sw_modus steering_wheel_init void steering_wheel_state_mashine_task void CAN_FRAME_T motor_init_msg steering_wheel_status_request_task void CAN_FRAME_T motor_position_msg steering_wheel_analog_in_request_task void motor state t motor zustand steering_wheel_set_mode sw_mode_t void motor_init void steering_wheel_set_rt_mode sw_rt_mode_t void motor_state_mashine void steering_wheel_s
47. earbeitungszeit eines Threads setzt sich aus der Laufzeit des Threads und der Zeit die f r den Kontextwechsel ben tigt wird zusammen In Echtzeitsystemen hat die Verletzung der Deadline gravierende Auswirkungen vgl Abschnitt 2 4 3 Ist die dem Thread zugeteilte Rechenzeit berschritten so wird der Vorgang unter brochen auch wenn die Berechnungen noch nicht abgeschlossen sind Weiterhin brauchen die Prozesse die den Zugriff auf die Hardware wie zum Beispiel CAN bzw Real time Ether net Stack steuern ebenfalls Rechenzeit und m ssen in Betracht gezogen werden In einem Regelprozess darf Scheduling nicht allzu pessimistisch durchgef hrt werden denn dadurch erh ht sich die Totzeit des Systems siehe Abschnitt 2 4 1 In den folgenden Abschnitten werden die einzelnen Messungen vorgestellt und daraus eine Schedulingtabelle abgeleitet KAPITEL 5 UMSETZUNG 92 5 3 1 Laufzeiten der Nachrichten Bei der Echtzeitkommunikation teilen zeitkritische Nachrichten und nicht zeitkritische Nach richten ein gemeinsames bertragungsmedium F r Scheduling sind zeitkritische Nachrich ten von besonderer Bedeutung weil sie zu einem bestimmten Zeitpunkt versendet werden sollen In der Abbildung 5 4 werden alle Nachrichten abh ngig von der Anwendung in die Real time Ethernet Nachrichtenklassen aufgeteilt Die SDO Kommunikation die f r die In Infotainment DS E 0x200 0x201 Ox20A Controller 0x80 0x252 Virtueller CAN 0x00 0x602 0
48. ebens von anf nglich einfachen Abl ufen wie die Hand hochheben oder strecken bis zu komplexen Abl ufen wie das Laufen oder Schreiben Auch Fahrrad fahren ist ein sehr kom plexer Regelkreis bei dem die menschlichen Wahrnehmungen wie das Gleichgewicht oder r umliche Orientierung in mechanische Bewegungen wie das Lenken oder die Gewichts verlagerung umgesetzt werden 2 4 3 Echtzeitanforderungen in der Regelungstechnik Unter dem Begriff Echtzeit versteht man dass die Dauer eines Vorgangs bis zur Deadline abgeschlossen und daher vorhersagbar ist Die Geschwindigkeit ist dabei unerheblich viel wichtiger ist die Rechtzeitigkeit Bei den Echtzeitsystemen unterscheidet man die weiche Echtzeitanforderung und harte Echtzeitanforderung vgl Tanenbaum 2009 Das System mit dem weichen Echtzeitanforderungen kann durch nicht berechenbare Vorg nge wie Speicherauslagerung Caching oder Hardwarenterrupts verz gert werden und damit die Deadline berschreiten Bei der Verletzung der Deadline hat es keine Konsequenzen daher kann die Anwendung weiterlaufen Im Gegensatz zu der weichen Echtzeitanforderungen muss das System mit dem harten Echtzeitanforderungen die Vorhersagbarkeit des Prozess Deadline ist ein bestimmter Zeitpunkt zu dem eine Aufgabe erledigt werden muss Die Verletzung der Deadlin hat gravierende Auswirkungen auf das System Weiche Echtzeitanforderung bedeutet dass die Dauer eines Vorgangs die angegebene Obergrenze bli ch
49. eingestellt werden Die genaue Beschreibung der Parametrierung ist der Betriebsanleitung des Switch zu entnehmen vgl TTTech GmbH Kapitel 4 Architektur und Design In diesem Kapitel werden die Anforderungen des Projektes analysiert und daraus eine Ar chitektur abgeleitet Weiterhin werden im Abschnitt 4 1 die Entscheidungen bez glich des Architekturdesigns dargestellt und diskutiert Der Abschnitt 4 2 reduziert zwecks bersicht lichkeit die Aufgabenstellung auf die Grundfunktionalit t Im Abschnitt 4 3 wird auf die Pro blematik der Komponentenverteilung im Netzwerk eingegangen Abschnitt 4 4 beinhaltet die Beschreibung des konzeptionellen Ansatzes und stellt diesen mittels Modellierungstechni ken bersichtlich dar Abschlie end wird das entwickelte Design analysiert und auf die Ab deckung der Anforderungen berpr ft 4 1 Architektur Bevor man mit dem Architekturdesign beginnen kann wird zun chst die grundlegende Funk tionalit t der Regelung untersucht In der Ausgangslage werden die vorhandenen Endger te r umlich in zwei CAN Busse aufgeteilt In einem Bus werden der Motor und der Kraftauf nehmer platziert in dem anderen befindet sich das Lenkrad Da sowohl der Motor als auch der Kraftaufnehmer CANopen Protokoll implementieren kann von einem reinen CANopen Bus gesprochen werden Die Aufgabe des Controllers besteht dabei darin in regelm igen Abst nden den Winkel des Lenkrades per CAN auszulesen und daraus die Position des
50. eis 15 rezessiver Pegel 11 RTE 26 Scheduling 27 SDO 11 12 Steer by Wire 4 StVZO 8 Switch 27 Totzeit 15 49 TT 28 TT Tech Switch 27 Validierung 63 Verifikation 62 weiche Echtzeitanforderung 16 X by Wire 1 4 SACHREGISTER zerst rungsfreie Arbitirierung 11 117 Hiermit versichere ich dass ich die vorliegende Arbeit im Sinne der Pr fungsordnung nach 22 4 bzw 24 4 ohne fremde Hilfe selbst ndig verfasst und nur die angegebenen Hilfsmit tel benutzt habe Hamburg 22 August 2011 Vital j Stepanov
51. eit von der Position deutlich 10Ein Nibble ist eine 4 Bit gro e Datenmenge sie wird meistens mit hexadezimalen Zahlen dargestellt KAPITEL 3 HARDWARE 20 3 1 3 Zustandsautomat Die Regelung des Lenkrades wird von dem in der Abbildung 3 2 dargestellten Zustandsauto maten kontrolliert Durch das Steuerwort der Nachricht 0x200 werden die Zustandstransitio nen ausgef hrt und der Modus angegeben vgl Abschnitt 3 1 2 Der Zustandsautomat ist in Lei E Steuerwort 2 Y Steuerwort 4 fa Fehler N Steuerwort 2 A Steuerwort 0 Y y AS Ya _ lt Steuerwort F NL h Abbildung 3 2 Zustandsautomat der Lenkrad Regelung Quelle SensoDrive GmbH 2010 jedem Modus gleich und befindet sich nach dem Einschalten oder nach dem Moduswechsel im Zustand OFF Um die Regelung zu aktivieren muss der Zustandsautomat in den Zustand ON gef hrt werden Mit dem Steuerwort 0x2 wird der Zustand READY erreicht Erst nach der Best tigung der Zustandstransition in der Nachricht 0x210 kann zum Zustand ON ge wechselt werden Anschlie end soll das Steuerwort 0x4 gesendet und damit der Automat in den Zustand ON gebracht werden Aus den Zust nden OFF READY und ON beim Auftre ten eines Fehlers wird in den Zustand ERROR gewechselt Mit dem Steuerwort OxF wird der Fehler quittiert und der Zustand OFF erreicht KAPITEL 3 HARDWARE 21 3 1 4 Referenzfahrt Nach dem Einschalten bernimmt die Regelung die Einschaltposition
52. ennen zu k nnen wird zwischen dem dominanten und rezessiven Pegel unterschieden Der dominante Pegel entspricht einem logischen Wert 0 und der rezessive einer 1 Konkurrieren zwei Master um den Bus so zerst rt ein dominan ter Pegel den rezessiven und damit erlangt die kleinere ID den Buszugriff Daraus folgt dass die kleinere ID immer die h chste Priorit t hat Merkt anderseits der Sender dass die Daten auf dem Bus nicht mit seinen Solldaten bereinstimmen so stellt er fest dass er den Bus zugriff verloren hat und entscheidet sich zur ckzutreten um die Daten der hoch priorisierten Nachricht nicht zu zerst ren 2 3 CANopen Bei dem CANopen Protokoll handelt es sich um einer Erweiterung des CAN Protokolls Die ses ist von CAN in Automation CiA 2011 international standardisiert und speziell f r die eingebetteten Systeme entwickelt worden Die Implementierung des CANopen Protokolls reicht bis zur Anwendungsschicht des OSI Referenzmodells und schreibt daher jedem der Datenbytes eine Bedeutung vor Man unterscheidet zwischen einer quittierten Service Daten Objekt SDO und der schnelleren nichtquittierten Prozess Daten Objekt PDO Kommunika tion Die jeweiligen Vorteile werden in den Abschnitten 2 3 3 Kommunikation und 2 3 2 vorge stellt Ein wesentlicher Unterschied zum CAN Protokoll ist dass man nicht nur zwischen den Nachrichtenidentifier unterscheidet sondern noch einen Mechanismus zur Unterscheidung der Knotenadresse zur Ve
53. entry send Ox1A00 2 timeout 1 5 ms send 0x1A00 2 Set PDO1 ID entry send 0x1800 1 timeout 1 5 ms send 0x1800 1 Set PDO1 Bar Set PDO1 Par Length PDO2 Disable Set PDO1 Mode entry send Ox1A00 1 entry send 0x1A00 0 entry send 0x1801 2 entry send 0x1800 2 timeout 1 5 ms send 0x1A00 1 timeout 1 5 ms send 0x1A00 0 timeout 1 5 ms send 0x1801 2 timeout 1 5 ms send 0x1800 2 Abbildung 5 2 Zustandsautomat des Moduls Force Sensor wei der Messverst rker wie er die elektrische Messung des Sensors in die physikalischen Werte umsetzen soll Im Zustand Set Fixpoint wird die Position des Dezimalpunktes auf O gesetzt weil die Nachkommastellen f r den Fahrer keine sp rbaren Werte darstellen F r die richtige Justierung wird im Zustand Autozero der Messwert im unbelasteten Zustand als Referenz Nullpunkt bernommen Die Bewegung des Motors kann diese Justierung verf l schen Daher muss darauf geachtet werden dass der Motor in diesem Zustand still steht Aus diesem Grund wird der Motor erst dann initialisiert wenn der Kraftaufnehmer online ist Durch den Aufruf der Funktion steering wheel_is_online wird die Bereitschaft der Hardware festgestellt Der n chste Zustand Set PDO1 ID setzt einen CANopen konformen Identifier Nachrichten ID 0x183 mit dem die Nachricht versendet werden wird Im Zustand Set PDO1 Mode wird das Ereignis gesetzt bei dem die Nachricht mit dem Messwert und dem Status versendet wird Als solches Ere
54. enutzt werden Die ausf hrliche Beschreibung ist der Dokunmentatin Hilscher GmbH zu entnehmen Wei terhin hat das Board drei Kan le die f r den Anschluss der optionalen Peripherieger te zur Verf gung stehen KAPITEL 3 HARDWARE 25 t2 an eANopen EST 3 KI ba DCH gt Lin a A Abbildung 3 7 Microcontroller NXHX500E TM 3 4 1 Peripherie Das Entwicklungsboard verf gt ber Reihe von Peripherieger ten die sowohl in die Platine integriert als auch optional einsteckbar sind Nachfolgend werden die f r diese Arbeit rele vanten Peripherieger te beschrieben Den Zugriff auf die Peripherie erm glicht die Hardware Abstraction Layer HAL GPIO Das NXHX 500 ETM weist 16 General Purpose Input Output GPIO auf die teilweise mit den anderen Ger ten gemeinsam verwendet werden Die GPIO 8 10 sind mit den LEDs festverdrahtet Zwei verf gbare Switch Schalter sind ebenfalls an den GPIO 13 und 14 an geschlossen Es ist darauf zu achten dass die Hardwareschalter die GPIOs mit dem RS 232 Modul teilen und beim eingesteckten Modul nicht verf gbar sind Die GPIOs 9 11 13 14 haben die Ausf hrung an den Pins und k nnen auch als Ein bzw Ausg nge genutzt werden CAN Modul NXHX CO F r die CAN bzw CANopen Kommunikation wird das Modul NXHX CO verwendet Das Mo dul wird in den Channel 2 des Entwicklungsboards eingesteckt In der Abbildung 3 7 ist es mit dem roten Viereck umrandet Den Zugriff auf die Hardware bernimmt
55. er Gegensatz zu der Anfrage enth lt das erste Byte der Payload der Antwort den Response RES indem die angeforderte Operation best tigt oder als fehlerhaft markiert wird War der Zugriff fehlerhaft so enth lt das Datensegment eine 4 Byte lange CANopen konforme Fehlernummer Die m glichen RES Werte werden nachfolgend aufgelistet 0x60 Daten erfolgreich geschrieben 0x80 Fehler Datensegment enth lt eine Fehlernummer 0x43 4 Bytes empfangen 0x4B 2 Bytes empfangen 0Ox4Fr 1 Byte empfangen Bei einer lesenden Anfrage enth lt auch hier die niedrigste hexadezimale Zahl der RES die Anzahl der versendeten Daten Mit der zweiten Zahl wird der lesende Zugriff kenntlich ge macht Damit man die M glichkeit hat die Herkunft der Daten verifizieren zu k nnen enth lt auch die Antwortnachricht die Objekt ID und den Subindex Damit kann verhindert werden dass die Daten versehentlich anders interpretiert werden 2 3 3 PDO Zugriff Anders als bei SDO hat der PDO Zugriff keine Best tigung Dadurch wird nicht nur der Bus entlastet sondern die Reaktionszeit des Systems wird ebenfalls k rzer Au erdem lassen KAPITEL 2 GRUNDLAGEN 14 sich die Ereignisse auf denen die Auswertung bzw das Versenden der Daten ausgef hrt werden kann unterschiedlich einstellen Man kann die PDO so einstellen dass auf die Ver nderung des Wertes reagiert wird Auf die zweite Art das Versenden auf die SYNC Nach richt wird im Abschnitt 2 3 5 eingegangen Ein weite
56. erweise nicht berschreitet Harte Echtzeitanforderung bedeutet dass anhand von Hardwarespezifikationen und Modellrechnungen ei ne beweisbare obere Grenze f r die Dauer eines Vorgangs angegeben werden kann KAPITEL 2 GRUNDLAGEN 17 verhaltens bei Volllast und in anderen Ausnahmesituationen garantieren Daher kann das nicht Einhalten der Deadline gravierende Folgen haben Zum Beispiel verbraucht ein Prozess mehr Zeit als ihm zugeteilt wurde so wird er von einem anderen Prozess unterbrochen unabh ngig davon ob er den Vorgang bzw die Berechnung abgeschlossen hat So rechnet der nachfolgende Prozes mit den ung ltigen Werten weiter Die Regelung geh rt zu den kritischen Anwendungen weil sie in definierten Zeitinter vallen die Daten der Sensoren verarbeitet und die Aktoren mit den errechneten Daten versorgt Kommt eine Verletzung der Deadline zustande so wird beispielsweise die Berech nung der Daten nicht abgeschlossen ein Prozesswechsel findet statt und der Aktor wird mit den ung ltigen Daten beliefert Dies kann zu einem Absturz oder im schlimmsten Fall zur mechanischen Besch digung des Systems f hren Kapitel 3 Hardware Dieses Kapitel beschreibt die in vorliegenden Arbeit verwendete Hardware Dazu wird auf die einzelnen Endger te eingegangen und die grundlegende Funktionalit t erkl rt Weiterhin wird der Mikrocontroller erl utert der als Zielsystem f r die Entwicklung der Steer by Wire Lenkung zum Einsatz kommt und die E
57. es Lenkrades Anfrage 0x201 Position des Lenkrades Anfrage 0x20A Geschwindigkeit des Fahrzeugs Anfrage Tabelle 5 2 Liste der ausgehenden Nachrichten und deren Quellenmodule KAPITEL 5 UMSETZUNG 41 5 2 3 Modul Steering Wheel Dieses Modul bernimmt die Aufgabe der Kommunikation mit dem im Abschnitt 3 1 vorgestellten Lenkrad Das Modul besteht aus drei Threads Der erste wird durch die Funktion steering wheel_state_mashine task void arg repra sentiert und enth lt den Zustandsautomat der den Ablauf des Lenkrades ver waltet Seine Funktionalit t wird nachfolgend ausf hrlich beschrieben Der zweite Thread hat die Aufgabe den Wert des analogen Eingangs anzufordern und befin det sich in der Funktion steering wheel_analog in request_task void arg Mit dem Messwert wird die Geschwindigkeit des Fahrzeuges emuliert und damit die Abh ngigkeit des Lenkungsverhaltens von der Geschwindigkeit des Fahrzeuges nachgeahmt siehe Abschnitt 5 4 Der dritte Thread befindet sich in der Funktion steering wheel_status_request_task void xarg und dient der regelm igen Statusabfrage des Lenkrades Au erdem enth lt die Anfrage die Steuerungsparameter wie Betriebsmodus bzw Zustand Endanschl ge und das Drehmoment Anhand des in der Antwort enthaltenen Status kann der Verlauf der Hardware beobachtet werden Sollte ein Fehler auftreten kann darauf reagiert und das Endger t wieder in den Betriebszustand gebracht werden Parametrierung Das
58. et_force int void motor_set_position int void steering_wheel_receive CAN_FRAME_T void motor_set_velocity unsigned int void motor_receive CAN_FRAME_T void Abbildung 4 5 Klassendiagramm der Softwarearchitektur 12Als Periode bezeichnet man ein Zeitintervall zwischen zwei sich in gleichen Abst nden wiederholenden Ereignissen KAPITEL 4 ARCHITEKTUR UND DESIGN 35 ler hat die Aufgabe alle Module zu initialisieren Weiterhin stellt es die Funktionen zum Zugriff auf die Hardwareschalter zur Verf gung Das in der Abbildung 4 5 dargestellte Klassendia gramm enth lt die bersicht der festgelegten Module sowie die Funktionen und Parameter Um umfangreiche Architekturver nderungen w hrend der Umsetzungsphase zu vermeiden wird die Softwarearchitektur auf die Erf llung der Kundenanforderungen berpr ft Daf r werden alle m glichen Anwendungsszenarien durchgespielt und die Schl ssigkeit der Vor g nge getestet Die Position des Schalters Fahrmodus ausw hlen wird mit der Funktion controller _get_steer_mode abgerufen und als Parameter an die Funktion steering wheel_set_mode sw_mode_t bergeben um das Lenkungsverhalten anzupassen Mittels der Funktion controller_get_comm_mode wird festgestellt ob die Echt zeitverletzung emuliert werden soll oder nicht Sollte auf das Lenkrad eine Kraft eingewirkt haben so kann sie mit dem Aufruf der Funktion steering wheel_set_torque int auf das Lenkrad gesetzt und d
59. fnehmer SYNC Lenkrad Messwert Status Kraft Anfrage Positio gea us Anfrage Status Parame i I i Status i l l Anfrage analog IN l l l i ntwort analog IN i l l l l l l l l l l l l l l l l l l l l l l I l l l Position i l l l l l l l l I l l l l l l I l i Positionierung l l l l l l l l l l l l l l l l Abbildung 4 4 Prinzipieller Aufbau der verteilten Kommunikation KAPITEL 4 ARCHITEKTUR UND DESIGN 34 chen Abfolge auf F r beide Architekturen ist die dargestellte Kommunikation gleich Die aufgef hrte Folge von Nachrichten wird zyklisch wiederholt und stellt damit eine vollst ndige Periode dar Der Controller spielt dabei die bergeordnete Rolle Mittels der ersten Nach richt die der Controller an das Lenkrad richtet wird die Kraft des Kraftaufnehmers gesetzt Der daf r ben tigte Messwert des Kraftaufnehmers wird mittels SYNC Nachricht angefordert vgl Abschnitt 2 3 5 Aus der erhaltenen Position des Rades wird in die Position des Motors berechnet und an den Motor bermittelt Weiterhin erh lt der Controller die Statussignale von dem untergeordneten Knoten und reagiert gegebenenfalls auf diese 4 4 3 Module und Softwarearchitektur Jedes der Endger te ben tigt eine bergeordnete Steuerungseinheit die die Daten bzw den Status in regelm igen Abst nden ausliest Dadurch ergeben sich die Module f r den Mo tor den Kraftaufnehmer und das Lenkrad di
60. g veel analog in request_task void x arg befindet wird mit der Nachricht ID 0x20A der Wert des analogen Eingangs angefordert Abh ngig von dem erhaltenen Wert der Geschwindigkeit wird die Federsteifigkeit der Lenkung einge stellt vgl Abschnitt 5 4 Auf diese Weise erreicht man dass bei sehr hoher Geschwindig keit das Lenkrad st rker zur Nullposition gef hrt wird Der dritte Thread ist in der Funktion steering_wheel_status_request_task void xarg platziert und versendet an das Endger t einmal pro Periode die Statusanfrage Nachricht ID 0x200 Die Antwort enth lt den Status der Hardware bzw den Fehlercode Sollte sich der Zustandsautomat der Hard ware im Fehlerzustand befinden wird in den Zustand Error gewechselt um den Fehler zu korrigieren Die Modi der Lenkung unterscheiden sich in der Position der Endanschl ge Beim Umschalten aus dem Modus Cruise in den Modus Sport kann vorkommen dass sich das Lenkrad ausserhalb der neuen Endanschl gen befindet Das k nnte dazu f hren dass der Motor maximale Kraft entwickelt und die Benutzer verletzt Dies l sst die Regelung des Lenkrades nicht zu und nimmt den Fehlerzustand an Um das zu vermeiden wird der Zu standsautomat in den Zustand Change Mode versetzt der das Lenkrad in die erlaubte Po sition bringt und die Endanschl ge stufenweise versetzt Nachdem der gew nsche Modus eingestellt ist kehrt der Zustandsautomat in den Zustand Online zur ck Fehlerbehandlung Befindet sich der Zus
61. hme der ankommenden Daten sofort nach der Ver nderung eingestellt So verk rzt sich die Totzeit im Vergleich mit dem synchronisierten Ansatz um die L nge der SYNC Nachricht und den Abstand zwischen dem Setzen der Posi tion und dem Versenden der SYNC Nachricht Der Zustand Set Rx PDO1 Par Length legt die Anzahl der gemappten Parameter fest Im Zustand Set Rx PDO1 Part wird die Position in den ersten 4 Byte der Nachricht gemappt Der Zustand Set Rx PDOT Par2 mappt die Posi tionierungsgeschwindigkeit auf die restlichen 4 Byte der Nachricht Daher betr gt die Gr e der Nachricht 8 Byte Nachdem Rx PDO Mapping erfolgreich durchgef hrt wurde muss das Endger t in den Operational Mode umgeschaltet werden Daf r wird im Zustand Send NMT die NMT Nachricht versendet und damit ist das Endger t bereit die PDOs zu versenden bzw zu empfangen Im Zustand Kommutierung Found wird gewartet bis die Kommutierung ge funden wurde Erst wenn das entsprechende Bit im Statusregister gesetzt wurde wird der n chste Zustand angenommen Der Zustand Reference Mode schaltet die Hardware in den Modus zur Referenzfahrt ein Die Art der im Zustand Homing Mode gesetzten Referenzfahrt ist von der Hardware abh ngig und im Abschnitt 3 2 2 beschrieben Die Zust nde Homing Speed Ref und Homing Speed Nullpoint setzen die Geschwindigkeit der Referenzfahrt Im Zustand Reference Start wird die Referenzfahrt gestartet Nach dem erfolgreichen Start geht der Zustandsautomat in den Zusta
62. hwindigkeit das Lenkverhalten Bei sehr hoher Geschwindigkeit wird das Lenkrad beim Loslassen in die Mitte zur ckgef hrt Das sogenannte R cklaufverhalten ist von der Bauweise der Lenkung abh ngig Da eine lineare Lenkungskurve angestrebt wird nehmen wir das R cklaufverhalten linear an Um dieses Verhalten visuell darzustellen muss die Geschwindigkeit des Fahrzeuges ermittelt werden Da die tats chliche Geschwindigkeit nicht verf gbar ist muss eine andere L sung gefunden werden Daf r wird an den im Abschnitt 3 1 5 beschriebenen analogen Eingang des Lenkrades ein Potentiometer angeschlossen mit dem im Laufe der Zeit eine sich ver ndernde Geschwindigkeit emuliert wird Der eingestellte Wert wird mittels einer CAN Nach richt ausgelesen und an den Wertebereich der Federsteifigkeit skaliert Mit der Nachricht 0x20A wird der Messwert der Geschwindigkeit angefordert Die Antwortnachricht Ox21A ent h lt den Messwert des analogen Eingangs der sich im Wertebereich zwischen 0 und Ox3FF befindet Abh ngig von dem Modus wird der Wert der Federsteifigkeit ermittelt und an das Lenkrad bermittelt Im Modus Demo ist diese Funktionalit t nicht verf gbar da dieser nur f r den Zweck der Veranschaulichung des Demonstrators entwickelt wurde und mit der Ge schwindigkeit nichts zu tun hat Die Steilheit der Federsteifigkeit ist von der eingestellten Reibung und D mpfung des Modus abh ngig siehe Abschnitt 5 5 1 Ist die D mpfung zu klein eingestellt
63. icht ist auch mit tels propriet rer Software CANAlyzer auf dem CAN Bus sichtbar Mit dieser Software ist es nicht m glich den Fehler zu reproduzieren und damit ein Programmfehler auszuschliessen Die Ursache der Anomalie muss noch untersucht werden Die Real time Ethernet basierte Architektur besteht aus drei aufeinander aufbauenden Bachelorarbeiten und befindet sich noch in der Integrationsphase daher konnte nicht ausf hlich getestet werden Da die Funk tionalit t der Steer by Wire Lenkung in einem CAN Bussystem erfolgreich getestet wurde kann davon ausgegangen werden dass bei einem richtig eingestellten Scheduling die Len kung einwandfrei funktioniert Kapitel 7 Zusammenfassung und Fazit Nachdem die Realisierung der Steer by Wire Lenkung abgeschlossen ist beurteilt dieses Kapitel die erreichen Ergebnisse 7 1 Zusammenfassung In Zusammenarbeit von Studenten aus den Studieng ngen Maschinenbau Mechatronik und Informatik ist ein Steer by Wire System entstanden das die F higkeiten der Real time Ethernet untersucht und anschaulich darstellt Zudem wurden die Vorteile der Steer by Wire Technologie analysiert und dem Endbenutzer demonstriert Innerhalb dieser Arbeit wurden die Anforderungen des zu entwickelnden Produktes untersucht und daraus eine sehr flexible Architektur entworfen Aufgrund der Bridgearchitektur kann die Regelung sowohl in einem CAN Netzwerk als auch innerhalb des Real time Ethernet Netzwerkes betrieben werden Dam
64. ie Beschreibung der CANopen konformen Schnittstelle zur Einstellung des Lenkverhaltens mittels des Infotainment Centers Die gestellten Anforderungen werden in Kapitel 6 mit den Ergebnissen der Umsetzung ver glichen und analysiert Dabei werden die Verifikation bzw Validierung durchgef hrt 7 2 Fazit Die f r diese Arbeit gestellten Anforderungen wurden vollst ndig erf llt Der Demonstrator vermittelt die M glichkeiten von Steer by Wire zeigt Vorteile und Nachteile Die Lenkung ist sehr fl ssig und pr zise Das Rad bewegt sich ohne Verz gerung F r den Einsatz in einem echten Fahrzeug ist es jedoch nicht geeignet weil die ben tigte Ausfallsicherheit erst durch Redundanz erreichbar ist Es hat sich herausgestellt dass beim Umschalten zwischen den Modi sich die Auslenkung des Rades ver ndert Der Wertebereich der Endanschl ge liegt zwischen 180 und 540 Die Abweichung nahe dem Nullpunkt ist nicht sehr gro W rde beispielsweise das Lenkrad im Cruisemodus bei 180 stehen so entspricht es einem dfrittel des maximalen Radein schlages In einem Sportmodus ist es ein maximaler Einschchlag was einer Verdreifachung entspricht Beim Umschalten in der Kurve w rde die Regelung den Einschlag des Rades ver ndern was zu den unerw nschten Effekten f hren k nnte Eine m gliche L sung dieses Problems w re beim Umschalten den Einschlag des Rades zu halten Daraus folgt dass das Lenkrad positioniert werden muss Die Kraft die auf das
65. ignis muss jede SYNC Nachricht gelten Im Messver st rker ist standardm ig der PDO2 aktiviert und belastet unn tig den Bus Daher schaltet der Zustand PDO2 Disable den PDO2 aus Der Zustand Set PDO1 Par Length legt die An zahl der zu mappenden Parameter fest Indem Set PDO1 Par wird der Status auf die ersten 4 Byte der Nachricht eingestellt Mit dem Zustand Set PDOT Par2 wird der int32 Messwert auf die letzten 4 Byte der Nachricht gemappt Die resultierende Gr e der Nachricht 0x183 ist daher 8 Byte Damit die PDO Kommunikation aktiviert wird muss der Operational Mo de gesetzt werden Danach befindet sich der Kraftaufnehmer im Zustand Online In diesem Zustand wird die SYNC Nachricht versendet die den CAN Messverst rker und den Motor zum Versenden der gemappten Werte auffordert Da der Messverst rker vor dem Motor in itialisiert wird wird die SYNC Nachricht vom Modul Force Sensor versendet Anhand des KAPITEL 5 UMSETZUNG 47 Status wird der Zustand der Hardware berpr ft Ist der Zustand fehlerfrei wird der erhal tene Messwert als Parameter an die Funktion steering wheel_set_force int force bergeben Die Funktion berechnet aus der Kraft das Drehmoment und stellt dieses am Lenkrad ein Daf r wird die Kraft mit dem Radius des Lenkrades in Meter multipliziert Sollte ein Fehler auftreten so wechselt der Zustandsautomat in den Zustand Error Fehlertoleranz Befindet sich der Zustandsautomat im Fehlerzustand so wird versucht den
66. innt Das Lenkrad dreht sich auf der Suche nach dem Index im Uhrzeigersinn Nachdem der Index gefunden wurde bewegt sich das Lenkrad zu der angegebenen Nullposition zur ck Erst wenn diese Position erreicht ist nimmt der Zustands automat den Zustand Normal Ready an um den Motor auf das Einschalten vorzubereiten Zudem werden die Endanschl ge und der Wirkungsgrad eingestellt Im Zustand Normal ON wird der Motor des Lenkrades eingeschaltet Der Zustand Normal Send Parameter stellt die Parameter der Lenkung wie Reibung D mpfung und Federsteifigkeit ein Danach befindet sich der Automat im Zustand Online und liest regelm ig den Winkel des Lenkrades aus Nachricht ID 0x201 Aus dem Winkel wird die Position des Lenkrades berechnet und an die Funktion motor_set_position int position des Motor bergeben Positionjenkrad 300 Lenkrad Tnkremente pro Drehung eu KAPITEL 5 UMSETZUNG 43 OtLenkrad MOTOR_ENDSTOP Positionyotor PLenkrad endstop 5 2 Zudem enth lt die Antwort die Geschwindigkeit der Verstellung des Lenkrades Aus der Ge schwindigkeit und der Position der Endanschl ge wird die Positionierungsgeschwindigkeit des Motors ermittelt und an die Funktion motor_set_velocity int velocity berge ben MOTOR _ENDSTOP Um dr d y 3060 Viento x60 5 3 Moto sw en Js top Lenkrad Min A Der zweite und der dritte Thread sind nur im Zustand Online aktiv Im zweiten Thread der sich in der Funktion steerin
67. it diese Arbeit nicht nur f r einen engen Kreis der Fachleute verst ndlich ist ver mittelt Kapitel 2 grundlegendes Wissen das zum Verstehen der Arbeit erforderlich ist Es enth lt eine kurze Erl uterung von CAN CANopen Protokolle sowie die Einf hrung in die Regelungstechnik Weiterhin werden die Vorteile von Steer by Wire gegen ber den herk mmlichen Lenksystemen dargestellt Das Kapitel 3 stellt das verwendete Hardware vor Dabei werden die die Regelungen des Lenkrades und des Motors mit der Lenkgetriebe beschrieben Weiterhin wird der Messver st rker des Kraftsensors erl utert der zur Realisierung von Force Feedback erforderlich ist Zudem wird der verwendete Mikrocontroller und das Betriebssystem beschrieben Ansch liessend wird der TT Tech Switch vorgestellt und seine Besonderheiten erkl rt Im Kapitel 4 werden die Anforderungen an die Architektur gestellt Aufgrund der geforder ten Flexibilit t der Anwendung werden zwei Architekturen vorgestellt die je nach Bedarf verwendet werden k nnen Zudem werden die Anwendungsf lle festgelegt und die Softwa rearchitektur konzipiert KAPITEL 7 ZUSAMMENFASSUNG UND FAZIT 65 Das Kapitel 5 beschreibt die Umsetzung der Softwarearchitektur sowie die Zustandsauto maten die Initialisierung der Hardware bzw Ausfallsicherheit gew hrleisten Zudem werden die Abl ufe in der zeitlichen Abfolge zu den Schedulingtabellen zusammengefasst und gra fisch dargestellt Weiterhin enth lt das Kapitel d
68. lem das mit dem Umschalten der Modi verbunden ist ist die Skalierung der Position des Rades die anhand der Position der Endanschl ge berechnet wird Ver ndert sich die Position der Endanschl ge deutlich so wird das Rad st rker bzw schw cher ausgelenkt Der Schalter 2 erlaubt die Verletzung der Echtzeitkommunikation zu emulieren Ei ne TT Nachricht kann zur Laufzeit nicht in eine RC oder BE Nachricht umgewandelt werden Daf r m ssen alle Knoten und der Switch umprogrammiert werden Die Ver letzung der Echtzeitkommunikation l sst sich dadurch emulieren dass das Versenden der Nachrichten abh ngig von der Schalterposition teilweise ausgelassen wird Die mit tels der Funktion controller_get_comm model erhaltene Kommunikationsart wird an steering wheel_set_rt_mode sw_rt_mode_t bergeben und damit der entsprechen de Modus eingestellt 5 2 4 Modul Force Sensor Dieses Modul bernimmt die Aufgabe der Kommunikation mit dem im Abschnitt 3 3 vorge stellten CAN Messverst rker Das Modul besteht aus einem Thread der den Zustandsau tomat enth lt Die Aufgabe des Zustandsautomaten ist die berwachung der richtigen Rei henfolge der Ausf hrung sowie die Parametrierung bzw Skalierung der Hardware Im Modul wird die Querkraft die auf das Rad einwirkt gemessen und an dem Lenkrad eingestellt So wird die Verbindung des Lenkrades mit der Stra e hergestellt und damit der Force Feedback Pfad realisiert KAPITEL 5 UMSETZUNG 45 Para
69. ltigen Einsatz erlaubt Ein beispielhafter Einsatz dieser Architektur ist die Backbone Infrastruktur Daf r werden mehrere Netzwerke mithilfe eines sehr leistungs f higen Netzwerkes verbunden 5 1 3 Infotainment Center Grundidee dieser Bachelorarbeit ist die Visualisierung der M glichkeiten die mit dem Real time Ethernet gegeben sind So kann man ber ein gemeinsames Medium sowohl zeitkri tische Kommunikation als auch multimediale Anwendungen mit hohen Bandbreitenanforde rungen betreiben ohne dass sie sich gegenseitig beeinflussen Zu den zeitkritischen An wendungen im Auto z hlt beispielsweise die Kommunikation zwischen den Steuerger ten Die multimedialen Anwendungen in Bezug auf die Zukunft sind beispielsweise die R ck fahrtkamera Kameras als Ersatz der Au enspiegel oder auch Musik bzw Videos die an der Tankstelle gekauft und sofort heruntergeladen werden k nnen ber ein Touchscreen sollen die Parameter der Lenkung ber Schiebebalken angepasst werden Weiterhin w re denkbar dass durch die Auswahl eines Fahrzeuges aus der Liste die entsprechenden Eigenschaften der Lenkung eingestellt werden 5 2 Programmaufbau und Beschreibung der Module Das im Abschnitt 3 4 3 vorgestelltes Echtzeitbetriebssystem besitzt keine gew hnliche Thre adverwaltung Die Funktion die die Rolle des Threads bernimmt wird jedes Mal aufgerufen und nicht an der unterbrochenen Stelle fortgesetzt Ein herk mmlicher Threadaufbau ist nur mit sehr viel
70. lung dem Prozess nach einem festgelegten Zeitplan den Zugriff auf die Ressource Steer by Wire Steer by Wire ist ein Lenksystem bei dem die mechanische Verbindung mit den Akto ren und Sensoren durch eine elektrische Leitung ersetzt wird Totzeit Der Begriff Totzeit Tr steht f r die Zeit die von der nderung am Eingang bis zur nderung am Ausgang vergeht weiche Echtzeitanforderung Weiche Echtzeitanforderung bedeutet dass die Dauer eines Vorgangs die angegebe ne Obergrenze blicherweise nicht berschreitet X by Wire X by Wire ist ein System bei dem die mechanische Verbindung mit den Aktoren und Sensoren durch eine elektrische Leitung ersetzt wird Abk rzungsverzeichnis ASR BE CAN CIA COB COB ID CoRE CRC CSMA CR ESP FIQ GPIO HAL HAW Hamburg ISR LSB MSB MTBF Antriebsschlupfregelung Best Effort Controller Area Network CAN in Automation e V Communication Object Communication Object Identifier Communication over Real time Ethernet Cyclic Redundancy Check Carrier Sense Multiple Access Collision Resolu tion Elektronisches Stabilit tsprogramm Fast Interrupt Request General Purpose Input Output Hardware Abstraction Layer Hochschule f r Angewandte Wissenschaften Hamburg Interrupt Service Routine Least Significant Byte Most Significant Byte Mean Time Between Failures Abk rzungsverzeichnis NMT PDO RC RTE SDO StVZO TT 3 Network Managment Prozess Da
71. lung des Endger tes eine sehr schnelle Reaktionszeit mit der Konsequenz dass der bergeordnete Zustandsautomat auf die Ver nderung des Zustands pollen muss Erst nach dem Eintreten des Ereignisses wird die Zustandstransition ausgef hrt In der Intialized Reference Ready Reference ON entry send 0x200 entry send 0x200 timeout 1 5 ms send 0x200 timeout 1 5 ms send 0x200 Error 0x0100 Change Mode entry send 0x200 timeout 1 5 ms send 0x200 timeout 1 5 ms send 0x201 Error Normal Ready entry send 0x200 entry send 0x200 timeout 1 5 ms send 0x200 Error 0x0100 timeout 1 5 ms send 0x200 Error 0x0020 Online timeout 1 5 ms send 0x200 Normal Send Param Normal ON entry send 0x201 entry send 0x200 timeout 1 5 ms send 0x201 timeout 1 5 ms send Ox20A timeout 1 5 ms send 0x201 timeout 1 5 ms send 0x200 Abbildung 5 1 Zustandsautomat des Moduls Steering Wheel Abbildung 5 1 ist der Zustandsautomat des Moduls Lenkrad schematisch dargestellt Je der Zustand enth lt die Information ber die Nachrichten ID die in dem Zustand versendet wird Im Zustand Offline wird gewartet bis die Initialisierung abgeschlossen ist Am Ende der Initialisierung wird die Zustandstransition zum Reference Ready durchgef hrt und damit die Hardware in den entsprechenden Zustand berf hrt vgl Abschnitt 3 1 3 Nachdem der Zustand von der Hardware best tigt wird wechselt der Automat in den Zustand Reference ON und die Referenzfahrt beg
72. metrierung Die in der Datei force_sensor h enthaltenen Konstanten beschreiben die einzelnen Parame ter des Moduls Die Konstante CANOPEN ADDR FORCE SENSOR enth lt die Ger te ID und muss mit der in der Hardware eingestellten Ger te ID bereinstimmen Damit der an dem CAN Messverst rker angeschlossene Kraftsensor die richtigen Werte liefert m ssen mittels vier Punkten die Spannen der Skalierung beschrieben werden FS_VALUE_SCALING_ZERO 0 X FS VALUE SCALING_ZERO_PHYS ON FS_VALUE_SCALING_MAX 1 FS VALUE SCALING_MAX PHYS 5000 N Mit den richtig eingestellten Parametern liefert der Messverst rker den vorzeichenbehafteten ganzzahligen Wert der Kraft in Newton Initialisierung Threads sind Programmteile die parallel zur Initialisierung ablaufen k nnen Daher w re falsch wenn der Thread vor der abgeschlossenen Initialisierung auf nicht initialisierte Varia blen zugreifen w rde Deswegen hat der Thread den Zustand Offline der den Zugriff auf die Variablen verbietet Erst durch den Aufruf von force_sensor_init werden die Variablen initialisiert und im Anschluss daran der Thread des Zustandsautomaten freigegeben Zustandsautomat Der in der Funktion force_sensor_state_mashine task void arg platzierte Zu standsautomat hat die Aufgabe den Threadablauf zu steuern und gegebenenfalls auf die auf tretenden Fehler zu reagieren Weiterhin repr sentiert der Zustandsautomat das Ged chtnis des Moduls Alle Parameter werden jedes M
73. n ger Daher schreibt das Bundesministerium der Justiz 2011 im 38 der StVZO vor dass Bei Versagen der Lenkhilfe muss die Lenkbarkeit des Fahrzeuges erhalten bleiben Da ein Steer by Wire System auch als Lenkhilfe anzusehen ist und keine mechanische Verbindung existiert muss dieser Aussage besondere Beachtung geschenkt werden Sicherheit durch Redundanz Um die Lenkbarkeit auch bei Ausf llen zu gew hrleisten werden in sehr kritischen Systemen die ausfallkritischen Teile mehrfach redundant platziert Die Patente von Hommel 2001 und Ewbank 2003 beschreiben derartige Ans tze Zu den ausfallkritischen Teilen geh ren nicht nur Aktoren und Sensoren sondern ebenso die bertragungsmedien und die Span nungsversorgung Jede Strecke enth lt ein separates Steuerger t der die Funktionalit t der Lenkung realisiert Ein solcher Ansatz ist in der Abbildung 2 3 bersichtlich dargestellt Das Steuerger t berwacht die Zust nde von Aktoren und Sensoren um einen Ausfall feststellen zu k nnen Daf r wird eine Logik ben tigt die beide Steuerger te berwacht und den aus gefallenen Regelkreis abschaltet Sollte eine Regelkreis eine St rung aufweisen so wird der Fahrer mittels eines akustischen oder visuellen Signals gebeten die Werkstatt aufzusuchen und die St rung beseitigen zu lassen Um reproduzierbare Fehler auf der Softwareebene zu vermeiden sollen die Algorithmen unterschiedlich implementiert werden Man spricht dabei von Di
74. n muss die Konstante __ DEBUG _FS_STATEMASHINE___ definiert werden Mittels der Konstante _ DEBUG FS MEASURE _ wird der Messwert des Kraftaufneh mers am Terminal ausgegeben Die Ausgabe der Werte wird erst dann ausgef hrt wenn sich der Zustandsautomat des Kraftaufnehmers im Zustand Online befindet Die Definition der Konstante __DEBUG_MOTOR_STATEMASHINE__ schaltet den Debug Modus f r den Motor Zustandsautomat ein F r die berpr fung der Berechnung der Motorposition muss die Konstante __ DEBUG _MOTOR_POSITION__ definiert werden Die Position enth lt die Anzahl der Inkremente vom Nullpunkt F r die berpr fung der Berechnung der Positionierungsgeschwindigkeit muss die Konstante __DEBUG_MOTOR_POS_VELOCITY__ definiert werden Die Geschwindigkeit wird in Inkrementen pro Sekunde angegeben Die textuellen Ausgaben erfolgen ber die RS232 Schnittstelle am Terminal Die Parame ter zur Einstellung sind im Abschnitt 3 4 1 beschrieben Es ist darauf zu achten dass das RS232 Modul die GPIOs der Schalter ebenfalls nutzt und beim eingesteckten Modul die Schalter nicht funktionieren Zudem verbrauchen die textuellen Ausgaben CPU Rechenzeit und k nnen daher das Verlauf des Programms um mehr als 350 us verz gern 5 3 Scheduling In einem pr emptiven Multitasking Betriebssystem steuert der Scheduler den Zugriff auf die gemeinsamen Ressourcen Zu den Ressourcen z hlt auch die Rechenzeit um die die Pro zesse untereinander konkurrieren Die B
75. nd Reference Found und wartet bis die Referenzfahrt zu Ende ist Erst wenn das entsprechende Bit im Statusregister gesetzt wurde wird die n chs te Zustandstransition ausgef hrt Der Zustand Reference Stop stoppt die Referenz Damit die Positionierung erfolgen kann muss die Hardware in den Operation Mode umgeschaltet werden Weiterhin wird im Zustand Position Absolut Immediately sofortiges Positionieren ein gestellt Danach befindet sich das Modul im Online Zustand und ist bereit die Position an die Hardware zu versenden Die mit den Funktionen motor_set_position int position KAPITEL 5 UMSETZUNG 50 undmotor_set_velocity unsigned int velocity gesetzten Parameter werden in die Nachricht 0x252 verpackt und versendet Sollte ein Fehler auftreten so wechselt der Zu standsautomat in den Zustand Error Fehlertoleranz Befindet sich der Zustandsautomat im Fehlerzustand so wird versucht den Fehler zu be seitigen Anhand des Status wird ber die weitere Vorgehensweise entschieden Es gibt nur zwei Arten von Fehlern die innerhalb der Software korrigiert werden k nnen e Fault e Schleppfehler Fault bezeichnet einen allgemeinen Fehler Der Automat bleibt im Fehlerzustand bis der Feh ler beseitigt wurde Beim Schleppfehler handelt es sich um den Fall bei dem die Kraft des Motors kleiner als die Gegenkraft war und infolgedessen die Positionsabweichung einen be stimmten Wert berschritten hat Da es sich um mechanisch bewegte Teile handelt
76. nd dem Betriebssystem abh ngig 5 1 1 Realtime Ethernet Implementierung Im Zuge des Communication over Real time Ethernet CoRE Projekts entwickelt Kai M ller 2011 nach der TTEthernetspezifikation von TTTech den Microcontroller basierten Real time Ethernet Stack Die Echtzeitkommunikation setzt eine global synchronisierte Zeit vor aus Um die Zeitabweichungen zwischen den einzelnen Knoten zu beheben werden ent sprechend dem TTEthernet Protokoll Sync Nachrichten ausgetauscht und damit die globale Zeit eingestellt Damit laufende Prozesse und das Versenden der Nachrichten planm ig abgearbeitet werden sind spezielle Schedulingalgorithmen n tig Das Ziel dieser Bachelor arbeit ist ebenfalls die daf r ben tigten Algorithmen zu implementieren bzw als Echtzeitbe triebssystem f r die Anwendung zur Verf gung zu stellen KAPITEL 5 UMSETZUNG 37 5 1 2 Entwuf einer CAN RTE Bridge Bei dieser Arbeit handelt es sich um eine L sung die CAN basierte Netzwerke mittels Real time Ethernet verbindet Die von Jan Kamieth 2011 entwickelte Bridge bernimmt die Auf gabe die ereignisgesteuerte CAN Kommunikation auf die zeitgesteuerte Real time Ethernet Kommunikation umzusetzen Daf r wird der gesamte Traffic in Real time Ethernet Kan le aufgeteilt Man unterscheidet TT RC und BE Kan le Au erdem verwaltet Bridge Routen f r alle CAN Nachrichtentypen Weiterhin stellt sie eine virtuelle CAN Schnittstelle zur Ver f gung die einen vielf
77. ndger te des gesamten Systems steuert 3 1 SENSO Wheel Lenkrad Bei diesem Endger t handelt es sich um ein Lenkrad das die Funktion einer Fahrzeuglen kung nachahmt Die in der Abbildung 3 1 a dargestellte Regelung realisiert bereits das grundlegende Lenkungsverhalten wie die Endanschl ge bzw D mpfung Reibung und Fe dersteifigkeit Die Regelung steuert die Bewegungen des Motors auf dem das Lenkrad mon tiert ist siehe Abbildung 3 1 b Mittels des CAN Protokolls kann die Regelung parametriert a G Aer BunBrosso yAddns 77 OLV9V L v0001 NS WIA I00WWOSN3S d Lod L a Regelung des Lenkrades b Motor und darauf befestigte Lenkrad Abbildung 3 1 Die Komponenten des Lenkrades KAPITEL 3 HARDWARE 19 bzw der Winkel des Lenkrades ausgelesen werden Dieser Abschnitt soll nur die grundle gende Funktionalit t aufzeigen die zum Verst ndnis der Funktionsweise beitr gt Die de taillierte Beschreibung des Ger tes ist den Ausf hrungen der SensoDrive GmbH 2010 zu entnehmen 3 1 1 CAN Watchdog Die Steuerung des Lenkrades verf gt ber einen CAN Watchdog der das Lenkrad in den Fehlerzustand berf hrt wenn innerhalb von 50 ms keine Nachricht empfangen wurde De ren Art ist nicht festgelegt Jede empfangene Nachricht setzt den Watchdog zur ck Sollte der Watchdog auslaufen so geht der im Abschnitt 3 1 3 beschriebene Zustandsautomat in den Fehlerzustand 3 1 2 Nachrichten Es handelt sich um einer reinen CAN Kommunik
78. ne elektrische Leitung ersetzt wird KAPITEL 2 GRUNDLAGEN 5 Lenks ule zwischen dem Lenkrad und der Lenkzahnstange mit den Winkelsensoren und Motoren ersetzt Der einfache Steer by Wire Aufbau ist in der Abbildung 2 1 dargestellt Die lt o A gt Sensor Regelung Sensor Lenkgetriebe Abbildung 2 1 Prinzipieller Aufbau der Steer by Wire Lenkung nach Quelle Institut f r Arbeitswissenschaft Darmstadt 2011 Verbindung von Sensoren und Aktoren wird ber direkte Leitungen oder Bus realisiert Die bergeordnete Regelung ermittelt mithilfe eines Encoders den Winkel des Lenkrades und berechnet daraus den Winkel des Rades Weiterhin erteilt er den Befehl an den Motor den berechneten Sollwinkel einzustellen Weicht der Istwinkel von dem Sollwinkel ab so wird die entgegengesetzte Kraft auf das Lenkrad bertragen und damit die direkte Verbindung mit der Fahrbahn realisiert Da sich ein auf dem Motor montiertes Lenkrad unbegrenzt drehen kann m ssen die Endanschl ge die den Lauf des Lenkrades begrenzen entweder mechanisch oder mittels Software bzw Regelkreis realisiert werden KAPITEL 2 GRUNDLAGEN 6 2 1 1 Beurteilung des Systems Ein auf diese Weise entkoppeltes System bietet eine sehr hohe Flexibilit t bez glich der Plat zierung des Lenkrades weil die elektrischen Leitungen viel einfacher realisierbar sind als die mechanischen Verbindungen Um beispielsweise eine bessere Man vrierf higkeit des Ga belsta
79. ngtabelle eingegebenen Zeitpunkt wird die entsprechen Funktion aufgerufen und damit die Zuteilung der Rechenzeit realisiert Kommt der n chste Zeitpunkt so wird der laufende Kontext verlassen unabh ngig davon ob die Berechnungen abgeschlossen sind Die Priorit ten f r weitere Aufgaben werden mit den Priorit ten des Interrupts gesteuert und im nachfolgenden Abschnitt beschrieben Interrupts Alle Ereignisse des Mikrocontrollers besitzen eine Priorit t die mit der Priorit t ID des ent sprechenden Interrupts festgelegt wird Die kleinere ID verf gt ber eine h here Priorit t Die Priorit ten werden in der Datei interrupt h festgelegt Nachfolgend werden die f r diese Arbeit relevanten Priorit ten werden aufgelistet VIC_INTERRUPT_VECTOR_ETHERNET_RECEIVEO d VEGZINFERRUPT VECLTOR ZSCHEBUEER ER 6 VIECZINTERRUPT VECTOR SCHEDBULER TASK 8 VIC INTERRUPT VECTOR_CAN_RECV 12 VECAENTERRUET VECTOR GEO ro Das Versenden bzw das Empfangen der RTE Nachrichten hat eine h here Priorit t als die Prozesse und kann den Verlauf des Programms kritisch beeinflussen Daher muss beim Erstellen des Schedulings besonders pr zise vorgegangen werden 3 5 Development Switch 100 Mbit s Der im Abschnitt 4 1 beschriebene Switch stellt besondere Anforderungen an die Netzwerk kommunikation Er muss ber ein gemeinsames Ethernet Medium sowohl nicht kritische als auch zeitkritische Daten bertragen Diese hohe Anforderung erf llt der von TTTech ent
80. nnen zu jedem Zeitpunkt eintreffen Aufgrund der Best tigung des erfolgreich durchgef hrten Vorgangs wird eine Zu standstransition des Automaten durchgef hrt Somit wird der bergang vom ereignisgesteu erten Empfangen zum zeitgesteuerten Senden realisiert Da eine CAN Nachricht aufgrund der Synchronisierung von Real time Ethernet vgl Abschnitt 5 3 verloren gehen kann wird die Nachricht in jedem Zyklus erneut versendet bis eine Best tigung empfangen wird Da durch erreicht man die vorausgesetzte Robustheit der Zustandsautomaten und vermeidet Deadlocks 5 2 1 Modul Controller Das Modul Controller ist mit der main vergleichbar Seine Aufgabe ist es die verwen deten Module zu initialisieren bzw Threads zu erzeugen Weiterhin enth lt das Modul die Funktionen zum Zugriff auf die Hardwareschalter Damit innerhalb eines Mikrocontrollers die Konfiguration der Hardware an einer Stelle erfolgt wird GPIO und damit beide Schalter in der main initialisiert Beim Hochfahren des Betriebssystems wird die Initialisierung des Controllers einmalig aufgerufen und damit die Anwendung gestartet Initialisierung Mit dem Aufruf von void controller_init void werden die Module Steernig Wheel Force Sensor und Motor initialisiert Nach der Initialisierung verhalten sich die Threads wie unabh ngige Programmteile Ab diesem Zeitpunkt f hren sie die Initialisierung der zugeh ri gen Endger te durch um die Bereitschaft der Hardware zu realisieren
81. ollen Projekt teilzunehmen und bei allen Kollegen die mir immer mit gutem Rat zur Seite standen Bei meinen Freunden m chte ich mich f r die vielen Stunden Korrekturlesen sowie die inter essanten Beitr ge und nderungsvorschl ge bedanken Literaturverzeichnis Bundesministerium der Justiz 2011 BUNDESMINISTERIUM DER JUSTIZ 38 Lenkeinrich tung 2011 URL http www gesetze im internet de stvzo __38 html Zugriffsdatum 2011 05 21 CAN in Automation CIA 2011 CAN IN AUTOMATION CIA Canopen 2011 URL http www can cia org index php id canopen Zugriffsdatum 2011 05 06 Communication over Real time Ethernet CoRE COMMUNICATION OVER REAL TIME ETHERNET CORE Communication over Real time Ethernet URL http www informatik haw hamburg de core html Discenzo 2000 DISCENZO Frederick M US Patent Steer by wire system with feed back 2000 URL http www google de patents hl de81lr 8 vid USPAT6097 286 amp 1d CROBEAAAAEBAJ amp o1i fnd amp dgq 6097286 amp printsec abstract Ewbank 2003 EWBANK US Patent Redundant Steer by Wire System 2003 URL http www google de patents id 41EOAAAAEBAJS pg PA2 amp dgq 6208923 amp hl en amp ei1 V4fuTdHoMsmSOp3SIvJIIlssa X amp 0o1 book_ result amp ct result amp resnum 4 amp ved 0CC0OO6AEWAW HBM GmbH HBM GmbH Veranst DF30CAN digiCLIP Betriebsanleitung A1748 2 0 de URLhttp www hbm de Hilscher GmbH Hilscher GmbH Veranst NXHX500 ETM Betrieb
82. on Auf diese Weise wird der Eindruck vermittelt dass die Nachrichten verloren gegangen sind 5 2 2 Modul CAN Die Aufgabe dieses Moduls besteht darin die Verbindung mit dem im Abschnitt 3 4 1 vorge stellten CANopen Hardwaremodul herzustellen und damit die Kommunikation mit den CAN Endger ten zu erm glichen Die ankommenden Nachrichten sind ereignisgesteuert und k n nen zu jedem Zeitpunkt eintreffen Wird eine Nachricht empfangen so generiert CAN HAL den Interrupt der vom Modul ausgewertet wird Zudem enth lt CAN Modul die Definition von CANopen konformen Konstanten die f r die Parametrierung bzw die Zusammensetzung von Nachrichten genutzt werden Bevor die Hardware zum Einsatz kommen kann muss die Initialisierung durchgef hrt werden Initialisierung Durch den Aufruf von void can_init void wird die CAN Hardware initialisiert Damit alle CAN Ger te untereinander kommunizieren k nnen m ssen sie die eingestellte bertra gungsgeschwindigkeit unterst tzen Daher werden alle Ger te auf eine gemeinsame Ge schwindigkeit von 1 Mbit s eingestellt Weiterhin wird die Priorit t des Interrupts eingestellt vgl Abschnitt 3 4 3 Nachdem der CAN auf Cannel 2 eingestellt wurde vgl Abschnitt 3 4 1 wird der Interrupt aktiviert und kann benutzt werden Vermittlung der empfangenen Nachrichten zu den Modulen Da das Empfangen von Nachrichten durch das Ausl sen von Interrupt mitgeteilt wird muss in der Interrupt Service Routine
83. ordneten Steuerger t die Sollposition des Rades mit der Istposition vergleicht um daraus Schl sse ber die Einwirkung der Gegenkraft zu ziehen Der Nachteil dabei ist KAPITEL 2 GRUNDLAGEN 8 dass nur festgestellt werden kann dass die Kraft in eine bestimmte Richtung gewirkt hat aber nicht die Kraftst rke Anhand der Differenz zwischen Soll und Istposition des Rades kann die Sollposition des Lenkrades bestimmt und eingestellt werden 2 1 4 Fehlertoleranz in verteilten Systemen Bei den Systemen mit sicherheitsrelevanten Aufgaben ist die Fehlertoleranz von besonderer Bedeutung denn der Ausfall des Systems kann gravierende Folgen mit sich bringen Andrew S Tanenbaum 2003 bringt die Fehlertoleranz mit weiteren Eigenschaften in Verbindung So besagt beispielsweise die Zuverl ssigkeit dass das System w hrend eines bestimmten In tervalls ohne Unterbrechung funktioniert Die Zuverl ssigkeit eines Systems kann man mit Mean Time Between Failures MTBF ausdrucken Je h her der Wert ist umso zuverl s siger ist das System Unter einem weiteren wichtigen Sicherheitsaspekt verbirgt sich die F higkeit bei einem vor bergehenden Ausfall daf r zu sorgen dass nichts katastrophales passiert Besonders f r Fahrzeuge die gem Stra enverkehrs Zulassungs Ordnung StV ZO f r den Verkehr zugelassen werden hat ein Ausfall der Lenkung nicht nur Auswirkun gen f r die Insassen sondern auch f r die anderen Verkehrsteilnehmer sowie die Fu g
84. plers zu erreichen befindet sich das lenkende Rad im hinteren Teil des Fahrzeuges Daher ist die Strecke die man mechanisch berbr cken muss nicht nur l nger sondern auch umst ndlicher zu realisieren Die Verwendung von Steer by Wire vereinfacht die Reali sierung der Lenkung in diesem Fall wesentlich und geh rt daher schon seit einiger Zeit zum Standard Es ist ein bedeutender Schritt auf dem Weg zu den autonomen fahrerlosen Syste men Durch das Abschalten der Verbindung zwischen dem Lenkrad und der Lenks ule l sst sich sehr einfach ein Diebstahlschutz realisieren Das Fahrzeug ist dadurch nicht mehr lenk bar und f r die Diebe nicht mehr attraktiv Allerdings ist zu bedenken dass der Ausfall des Diebstahlschutzes auch ein Kappen der Verbindung bewirken kann und daher als Sicher heitsrisiko anzusehen ist Ein weiterer wesentlicher Aspekt ist die M glichkeit sowohl die Kraft bersetzung als auch das Lenkverhalten dynamisch anzupassen Dadurch l sst sich die Lenkung von einem beliebigen Fahrzeug auf Knopfdruck nachahmen Die wegfallende Lenks ule erh ht nicht nur den Komfort f r den Fahrer sondern verringert das Verletzungs risiko bei schweren Unf llen Zu den negativen Aspekten z hlt die Tatsache dass beim Ausfall des Steer by Wire Systems das Fahrzeug nicht mehr lenkbar w re Um dieses Problem in den Griff zu bekommen muss die Sicherheit durch Redundanz gew hrleistet sein Auf diese Problematik wird ausf hrlich im Abschnitt 2
85. r CAN bzw virtuellen CAN ben tigt Laut der Messung von Jan Kamieth 2011 betr gt die Dauer des Versendens ber CAN 30 45 us und ber Real time Ethernet 25 30us KAPITEL 5 UMSETZUNG 54 5 3 3 Schedulingtabelle f r CAN Kommunikation Die in den vorherigen Abschnitten beschriebenen Laufzeiten bilden die Grundlage f r die Berechnung des Zeitverhaltens f r die im Abschnitt 4 2 vorgestellte Architektur Die End ger te und der Controller befinden sich in einem gemeinsamen CAN Netzwerk daher soll darauf geachtet werden dass die Nachrichten m glichst optimal die Bandbreite ausnutzen Der in der Abbildung 5 5 dargestellter Zeitplan beschreibt das Verhalten des Controllers und 1100 1200 1300 1400 1500 Motor Kraftsensor Controller Lenkrad Abbildung 5 5 Scheduling der CAN basierten Kommunikation der Endger te in der zeitlichen Abfolge Die Gesamtperiode des Zeitplans betr gt 1 5 ms Das Ziel der Regelung ist die Einstellung der Auslenkung des Rades Da die Auslenkung von der Position des Lenkrades abh ngig ist nennen wir diesen Pfad kritisch Der kritische Pfad ist mit den roten Linien markiert Mit den grauen Balken wird die Bearbeitungszeit bzw Rechenzeit dargestellt Die Bearbeitungszeit der Nachrichten 0x182 und 0x183 vari iert sehr stark Die Differenz zwischen der minimalen und der maximalen Abarbeitungszeit wird gr n dargestellt Die Threads des Controllers werden mit den blauen K stchen visua lisiert
86. r Verf gung stehen Die n tige Modifikation des Ehternet Stacks ist daher nicht m glich Deswegen entwickelte Kai M ller 2011 ein Minibetriebssystem das die echtzeitf hige Schedulingalgorithmen imple mentiert und der Anwendung zur Verf gung stellt Vereinfacht werde ich diese Entwicklung im weiteren Verlauf der Bachelorarbeit als Betriebssystem bezeichnen Weiterhin bietet das Betriebssystem den RTE Stack an der sich mit der Synchronisierung der Zeit innerhalb des Netzwerkes befasst Das Modul Terminal erm glicht die textuelle Ausgabe ber die RS 232 Schnittstelle Im Betriebssystem k nnen weiterhin die verf gbaren Module der HAL gbenutzt werden KAPITEL 3 HARDWARE 27 Scheduling Der Scheduling eines Echtzeitbetriebssystems unterscheidet sich von dem herk mmlichen in den verwendeten Schedulingalgorithmen Das Echtzeitbetriebssystem stellt sehr hohe An spr che an die Einhaltung der Genauigkeit bei der Zuteilung der Rechenzeit Die Nichtein haltung der Deadline kann katastrophale Folgen haben In dem oben beschriebenen Be triebssystem existiert keine Verwaltung des Kontextwechsels Dieser wird mit dem Aufruf der Funktion realisiert und hnelt damit dem Interrupt Handling bzw der ISR Der Scheduler verwendet den Fast Interrupt Request FIQ und hat damit die h chste Priorit t Die Sche dulingtabelle befindet sich in der Datei config c und enth lt Zeitpunkte zu denen die die Funktionen aufgerufen werden Zu dem in der Scheduli
87. r in der Abbildung 3 6 b verbunden Der Messverst rker kann mit unterschiedli chen Sensoren genutzt werden Daher muss er entsprechend dem angeschlossenen Sensor eingestellt werden 3 3 1 Nachrichten Der Verst rker unterst tzt CANopen Protokoll vgl Abschnitt 2 3 Mittels SDO Zugriffe wird der Messverst rker parametriert bzw der Messwert ausgelesen Um die Eindeutigkeit der Nachrichten zu gew hrleisten wird die Ger telD auf 3 eingestellt Die Beschreibung der CANopen Objekte ist dem Benutzerhandbuch der HBM GmbH zu entnehmen KAPITEL 3 HARDWARE 24 a Messverst rker Quelle HBM GmbH b Kraftsensor Abbildung 3 6 Die Hardware des Kraftaufnehmers 3 3 2 Skalierung Damit der Messverst rker die elektrischen Messwerte in die entsprechenden physikalischen Werte umwandeln kann m ssen die Parameter des Sensors eingestellt werden Der Kraft aufnehmer C9B besitzt enie elektrische Spanne zwischen 0 7 und 1 gr Die physikalische Spannbreite liegt zwischen 0 N und 5000 N Nach der richtigen Einstellung liefert der Mess verst rker den Messwert in Newton N 3 4 Entwicklungsboard Hilscher NXHX 500 ETM Als Zielsystem steht das Entwicklungsboard NXHX 500 ETM zur Verf gung Dieses basiert auf dem 32 Bit Prozessor ARM926EJ S mit 200 MHz Real time clock und verf gt ber zwei 10 100 MBit s Ethernet Kan le Dual Port Memory sowie USB Interface Der Prozessor be sitzt vier interruptf hige Hardwaretimer die f r eigene Zwecke g
88. rer wesentlicher Vorteil von PDO ist die M glichkeit mittels nur einer Nachricht mehrere Parameter gleichzeitig zu setzen bzw ab zurufen und in einer Nachricht versenden zu k nnen Dabei entf llt der im SDO vorhandene Overhead wie Zugriffsart Objekt ID und Subindex Dadurch l sst sich das zu bertragene Datenvolumen effizienter verwenden Damit die PDO genutzt werden k nnen muss dem Endger t mitgeteilt werden welche Parameter die Quelle bzw das Ziel sind Diesen Mecha nismus nennt man PDO Mapping 2 3 4 PDO Mapping Sowohl f r die Tx Objekt 0x1800 als auch f r Rx Objekt 0x1400 sollen die Kommuni kationsparameter eingestellt werden Dazu geh ren der Identifier Subindex 1 die Art der Reaktion Subindex 2 und die Inhibit Zeit Subindex 3 Mittels Inhibit Zeit wird der minima le Abstand zwischen dem Absenden der PDO festgelegt Eine PDO Nachricht kann 1 bis 8 unterschiedliche Parameter enthalten In den Objekten 0x1600 f r Rx und Ox1A00 f r Tx werden die Parameter f r PDO1 eingetragen Der Subindex O legt die Anzahl der Parame ter fest in den nachfolgenden Subindexen werden die jeweiligen Parameter gemappt Daf r werden der Objektindex Subindex und die L nge des Parameters in Bits zu einem 4 Byte langen Wert zusammengefasst und im Datensegment bertragen Beispielweise beim Map pen eines 16 Bit hexadezimal 0x10 Bit langen Objekts 0x6040 Subindex 1 resultiert ein Wert 0x6040 01 10 Mittels einer NMT Nachricht wird das
89. rf gung hat 2 3 1 CANopen Identifier Eine CAN Nachricht wird als Communication Object COB bezeichnet Um die Adressie rung der verschiedenen Ger te zu gew hrleisten werden der Ger te ID die kleinsten 4 Bit zugeteilt Die Adresse O ist f r das Network Managment NMT reserviert daher k nnen Die Arbitrierung ist ein Verfahren zum L sen der Zugriffskonflikten beim Zugriff mehreren Nutzer auf eine gemensame Ressource KAPITEL 2 GRUNDLAGEN 12 Objekt con Tabelle 2 1 Die von CANopen reservierte COB IDs und deren Semantik nur bis zu 15 Ger te unterscheiden werden Nat rlich muss die Ger te ID innerhalb eines Busses eindeutig sein Die Communication Object Identifier COB ID setzt sich aus der Summe von COB und der Ger te ID zusammen In der Tabelle 2 1 sind die Communications Objekte COB aufgelistet die f r diese Arbeit von Bedeutung sind Auch hier werden die Nachrichten entsprechend der im Abschnitt 2 2 2 vorgestellten Arbitrierung bzw dem Prio risierungsverfahren gehandhabt Das bedeutet dass auch an dieser Stelle die Nachrichten mit der niedrigsten COB ID die h chste Priorit t besitzen 2 3 2 SDO Zugriff Bei einem SDO Zugriff wird jede Nachricht immer von dem Empf nger quittiert In einigen F llen ist das sehr vorteilhaft anderseits bringt es eine Busbelastung mit sich In dem fol genden Beispiel wird der SDO Zugriff dargestellt Die Ger te ID des Zielknotens ist 1 In der Abbildung 2 7 ist eine ausgehen
90. rkehr und ei ner sehr direkten Sportlenkung umschalten Eine externe Schnittstelle erlaubt die Lenkung wunschgerecht anpassen und damit jedes beliebige Fahrzeug emulieren Mit dem Force Feedback wird die Verbindung zu der Fahrbahn hergestellt Eine sehr flexible Architektur erlaubt den Einsatz der Regelung sowohl innerhalb eines CAN Busses als auch in einem Real time Ethernet Netzwerk Title of the paper Microcontroller and CAN based disrtibuted Control of Steer by Wire steering with hard Real time requirements Keywords Steer by Wire Real time Control Steering Force Feedback Microcontroller CAN CANopen Ethernet TTEthernet Abstract The subject of this Bachelor thesis is the development of a microcontroller based Steer by Wire steering The advantages like dynamic adaptation of the steering behaviour or steering dependent on speed will be examined and demonstrated By the operating a switch can be choosen between a usual steering and very direct sports steering behaviour With an exter nal interface can emulate any vehicle steering behaviour The Force feedback produces the connection with the road A very adaptable architecture permits the application of the control within CAN bus or in Real time Ethernet network Inhaltsverzeichnis 1 Einf hrung 2 Grundlagen 2 1 Steer by Wire u arc a e a ad 2 1 1 Beurteilung des Systems 2 1 2 Dynamisches Lenkverhalten 2 1 3 EE EE 2 4 5 4 wu ee A arms 2 1 4 Fehlertoleranz in ver
91. sanleitung 1 0 Hommel 2001 HOMMEL US Patent Fault tolerant electromechanical steer by wire steering actuator 2001 URL http www google de patents hl des amp lr amp v1d USPAT6208923 amp 1d 060GAAAAEBAJ amp o1 fnd amp dq steer by wires amp printsec abstract Institut f r Arbeitswissenschaft Darmstadt 2011 INSTITUT F R ARBEITSWISSENSCHAFT DARMSTADT Prinzipdarstellung eines Steer by Wire Systems April 2011 LITERATURVERZEICHNIS 68 URL http www arbeitswissenschaft de website projects foi_ automot ergonomisch_152 de de_ergonomisch_univer_1 php Zu griffsdatum 2011 05 18 International Organisation for Standardization 2003 INTERNATIONAL ORGANISATION FOR STANDARDIZATION ISO 11898 1 3 2003 URL http www iso org Zugriffs datum 2011 05 06 International Software Testing Qualification Board 2005 INTERNATIONAL SOFTWARE TESTING QUALIFICATION BOARD Certified Tester Foundation Level Syllabus 2005 URL http www4 in tum de lehre vorlesungen sw_test ss06 LSTOB Lehrplaene 1Ls ee Jan Kamieth 2011 JAN KAMIETH Entwurf und Implementation einer Mikrocontroller basierten Bridge zur Kopplung von CAN Bussen ber Time Triggered Realtime Ethernet Hochschule f r Angewandte Wissenschaften Hamburg HAW Hamburg 2011 For schungsbericht Jenaer Antriebstechnik GmbH 2009 Jenaer Antriebstechnik GmbH Veranst Ecova rio Objektverzeichnis 11 2009 URL http www jat gmbh de download eco
92. schnitten beschriebenen Laufzeiten bilden die Grundlage f r die Berechnung des Zeitverhaltens f r die im Abschnitt 4 1 vorgestellte Architektur Die Sche dulingtabelle f r die Real time Ethernet basierte Architektur unterscheidet sich von der CAN Netzwerk Architektur in mehreren wesentlichen Aspekten Die Real time Ethernet Imple mentierung reserviert die ersten 100 us der Periode f r die Synchronisierung der glo balen Zeit Die Synchronisierung hat aus der Sicht des Schedulers die h chste Priori t t und w rde jeden Thread verdr ngen In der Abbildung 5 6 ist diese Phase gelb dar gestellt Weiterhin enth lt die Architektur zus tzliche Komponenten die die Nachrichten untereinander austauschen bzw bermitteln Die CAN Endger te werden in zwei r um lich getrennte Busse aufgeteilt Daher kann die CAN Kommunikation parallel ablaufen und trotz der ausfallenden Synchronisationsphase bleibt die Regelperiode von 1 5 ms erhal ten Der erste CAN Bus und die zugeh rigen Endger te sind oberhalb der Rad Bridge platziert und schlie en diese mit ein Der zweite CAN Bus befindet sich unterhalb der Lenkrad Bridge und schlie en die Lenkrad Bridge mit ein Zudem ist ein Real time Ether net Switch enthalten der die Bridges und den Controller verbindet Auch hier stellen die 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 Motor D H Kraftsensor Q Bridge Rad N Switch E D Ed Controller y D
93. ser Regelkreis unterscheidet sich von dem im Abschnitt 2 4 1 vorgestellten da hier die Ver nderung der Querkraft direkt auf den von dem Fahrer vorgegebenen Sollwert einwirkt KAPITEL 4 ARCHITEKTUR UND DESIGN 32 4 4 Softwaredesign Im Gegensatz zu den herk mmlichen PC s verf gen die Mikrocontroller ber begrenzte Res sourcen und Rechenleistung Daher wird bei dem Softwaredesign f r einen Mikrocontroller besonders auf die Effizienz geachtet Oftmals ist ein komplexes Design mit Overhead ver bunden der die Ressourcen des Mikrocontrollers stark belasten kann Daher werden die Schwerpunkte auf die Effizienz Erweiterbarkeit und die Wartbarkeit gelegt Die Anzahl der Module und Funktionsaufrufe soll auf ein Minimum reduziert werden da die verschachtelte Funktionsaufrufe unn tig Rechenzeit und Speicher verbrauchen Da diese Arbeit auf den be reits entwickelten Komponenten aufsetzt muss das Softwaredesign entsprechend entworfen werden Weiterhin sollen Kundenanforderungen analysiert und daraus resultierende Anwen dungsf lle festgelegt werden 4 4 1 Anwendungsszenarien Zum Festlegen der Anwendungsszenarien werden die gesetzten Ziele und Anforderungen analysiert Das Use Case Diagramm 4 3 stellt typische Lenkungsvorg nge eines Fahrers dar In der Abbildung sind f nf Anwendungsszenarien erkennbar die nachfolgend beschrie ben werden Lenkungssystem Fahrmodus Bordstein ForceFeedback umschalten auffahren einstellen CAN a 7 Sg E
94. so kommt es zu berschwingungen um den Mittelpunkt Die Einstellungen KAPITEL 5 UMSETZUNG 98 f r die Modi Cruise Sport und die default Einstellungen f r Custom befinden sich in der Datei steering_wheel h 5 5 CAN Inteface zur Parametrierung des Controllers F r die Verbesserung der Usability Eigenschaften des Produktes wird die Schnittstelle ent wickelt die zus tzlich zu den fest programmierten Modi wie Sport und Cruise einen Modus Custom zur Verf gung stellt indem das Lenkverhalten bzw Force Feedback beliebig ange passt werden kann Mittels der externen Schnittstelle hat man die M glichkeit den Modus des Lenkrades umzuschalten sowie eine eigene Konfiguration einzustellen Diese Konfi guration erlaubt die Lenkung eines beliebigen Fahrzeuges nachzuahmen siehe Abschnitt 5 1 3 Die Schnittstelle implementiert das CANopen Protokoll vgl Abschnitt 2 3 Mit dem im ersten Byte der Nachricht angegebenen Zugriffscode kann man zwischen Lese bzw Schreibzugriff unterscheiden Die Ger te ID der externen Schnittstelle ist 4 die Parametrie rung erfolgt mittels SDO Zugriff vgl Abschnitt 2 3 2 Die resultierende SDO Tx Adresse nach dem CANopen Protokoll entspricht 0x604 Mit der ID 0x584 wird de SDO Antwort versendet 5 5 1 Parametrieren der Lenkung Alle Parameter der Lenkung sind ber das CANopen konforme Objekt 0x6060 erreichbar Mit dem Subindex werden die einzelnen Parameter angesprochen Die Tabelle 5 5 enth lt die bersicht
95. software Handbuch_Objektverzeichnis_ECO_de_091130 pdf Kai M ller 2011 Ka M LLER Time Triggered Ethernet f r eingebettete Systeme De sign Umsetzung und Validierung einer echtzeitf higen Netzwerkstack Architektur HAW Hamburg 2011 Forschungsbericht Leiter u a 2008 LEITER Ralf MISSBACH Stefen WALDEN Michael Fahrwerk Fahr werk Lenkung Reifen und R der Vogel Buchverlag 2008 ISBN 978 3 8343 3001 7 Mann u a 2009 Mann Heinz SCHIFFELGEN Horst FRORIEP Rainer Einf hrung in die Regelungstechnik analoge und digitale Regelung Pearson Studium 2009 ISBN 978 3 446 41765 6 SensoDrive GmbH 2010 SENSODRIVE GMBH SENSOWheel Betriebsanleitung v4po0 06 2010 Tanenbaum 2003 TANENBAUM Andrew S Verteilte Systemen Grundlagen und Paradig men Pearson Studium Oktober 2003 ISBN 978 3 8273 7057 4 Tanenbaum 2009 TANENBAUM Andrew S Moderne Betriebssysteme 3 aktualisierte Auflage Pearson Studium Oktober 2009 ISBN 978 3 8273 7342 7 TTTech GmbH TTTech GmbH Veranst Betriebsanleitung 1 0 LITERATURVERZEICHNIS 69 Wallentowitz und Reif 2006 WALLENTOWITZ Henning REIF Konrad Handbuch Kraft fahrzeugelektronik Springer Verlag 2006 ISBN 978 3 528 03971 X Zeltwanger 2001 ZELTWANGER Holger CANopen VDE Verlag 2001 ISBN 978 3 8007 2448 0 Zimmermann und Schmidgall 2008 ZIMMERMANN Werner SCHMIDGALL Ralf Bussys teme in der Fahrzeugtechnik 3 Auflage
96. t 1150 us an den Controller versendet Der Controller empf ngt den Messwert der Force Feedback Kraft bei 1160 us und wird im n chsten Zyklus mit der Nachricht 0x201 an das Lenkrad einstellen Auch die Nachricht 0x183 wird zwischen gespeichert und erst bei 1220 us den Switch verlassen Durch den zus tzlichen Real time Ethernet Kommunikationsaufwand verl ngert sich der kritische Pfad und damit auch die Tot zeit der Regelung auf 870 us 5 3 5 Einstellung des Systems Der Scheduler erwartet in der Datei config c die Schedulingtabelle die das Verhalten des Ger ts beschreiben Damit man nicht f r jede Bridge und den Controller ein eigenst ndi ges Projekt ben tigt werden die Schedulingtabellen mittels der Precompiler directiven ge neriert So hat man alle Daten in einem Projekt was f r bersichtlichkeit und eine bessere Wartbarkeit sorgt In der Datei config_demostrator_main h wird festgelegt welche Rolle die Implementierung annehmen soll Das hat den Vorteil dass man mit einer kleinen Ver nde rung an einer zentralen Stelle das Verhalten des Systems anpasst und somit die manuelle Ver nderung der Schedulingtabelle vermeiden wird config c Abh ngig von den in der Datei config_demostrator_main h definierten Konstanten werden entsprechende Schedulingtabellen in die config c eingef gt und damit eine g ltige Konfigu ration des Schedulers gew hrleistet config_demostrator_main h In dieser Datei wird die Rolle der Implementierung dur
97. tandsautomat im Fehlerzustand so wird versucht den Fehler zu quit tieren Anhand der Fehlernummer wird ber die weitere Vorgehensweise entschieden Es gibt nur drei Arten von Fehlern die innerhalb der Software korrigiert werden k nnen 0x0020 CAN Bus Fehler 0x0080 CAN Watchdog Zeit berschreitung 0x0100 Unerlaubte Position Position gt 144409 KAPITEL 5 UMSETZUNG 44 Beim Quittieren von CAN Bus Fehler und CAN Watchdog Zeit berschreitung wird in den Zustand Normal Ready gewechselt und damit der Motor wieder eingeschaltet Bei der uner laubten Position muss wieder referenziert werden daher ist der n chste Zustand Reference Ready Parametrierung ber Schalter Die Positionen der Schalter werden im Online Zustand ein Mal pro Periode ausgelesen vgl Abschnitt 5 2 1 und entsprechend das Verhalten der Lenkung angepasst Dabei ist zu be achten dass die GPIOs die f r die Schalter verwendet werden mit dem RS232 Modul ge meinsam genutzt werden Daher funktionieren die Schalter beim eingesteckten RS232 Mo dul nicht Mit dem Schalter 1 werden die Cruise oder Sportmodi eingestellt Der mit der Funktion controller _get_steer_mode ausgelesene Modus wird als Parameter an die Funkti on steering wheel_set_mode sw_mode_t mode bergeben Der Sportmodus hat eine kleinere Distanz zwischen den Endanschl gen daher kann beim Umschalten von Cruise zum Sport die Position des Lenkrades au erhalb der Endanschl ge liegen Ein weiteres Prob
98. teilten Systemen 22 GAN isa der a ee ee ee AA AA A 2 2 1 Nachrichtenaufbau 2 2 e e a taa E 2 2 2 Arbitrierung und Priorisierung der Nachrichten E A A E E ch dene hi Er A ei 2 3 1 CANopen Identifier s ing sia eka nn 23 2 SDO ZUON e 2 4 0 die E 2 3 3 PDO ZUM sans a A Di IR KERLE EBD 2 3 4 CHEMIE 4 4 a 2 weh u ie ED 2 3 5 Synchronisierte Datenzugriffe 2 4 Regelungstechnik a SN WE EE 2 4 2 Fahrer als e TEEN 2 4 3 Echtzeitanforderungen in der Regelungstechnik 3 Hardware 3 1 SENSO Wheel Lenkrad aaa a a a a aa 3k GANWAICcHa0g ss 4 o i 2 ar ade A an Em a EA 3 1 2 SINACHRIEHIEN se amp 4 Ar A eh Ar feet del de de e A a 31 3 Zustandsautomat e 3 2328 a den pi 3 1 4 Referenzfahrt a Ser d ss da di a re 3 1 9 Anal gerEiNngaNd 4 222 244 2 sk 2 2 2 aa AA a 3 2 ECOVARIO 214AR BJ Verst rker mit Antrieb mb 0 NOORA A 11 11 11 12 13 14 14 15 15 16 16 INHALTSVERZEICHNIS Ses ZNACHFICHIEN er Eer e d Ar AAA 3 2 2 Referenzfahrt aa a ta e e G a D a Ro a R a i is 3 3 DF30CAN digiCLIP CAN Messverst rker mit dem Kraftaufnehmer C9B oT NACNHCMEON S g 2 a ee ads abs as ED 3 3 2 ORURO u da cd ana de Ale a de AC e A a dl A 3 4 Entwicklungsboard Hilscher NXHX 500 ETM 34 1 Porp uds naaa e 3 4 2 Entwicklungsumgebung 3 4 38 BEINIE
99. ten Objekt Rate Constrained Real time Ethernet Service Daten Objekt Stra enverkehrs Zulassungs Ordnung Time Triggered Abbildungsverzeichnis 1 1 2 1 2 2 2 3 2 4 2 9 2 6 2 2 8 3 1 3 2 3 3 3 4 3 0 3 6 3 3 8 4 1 4 2 4 3 4 4 4 5 5 1 Die bersicht des Gesamtsystems 2 Prinzipieller Aufbau der Steer by Wire Lenkung nach Quelle Institut f r Ar beitswissenschaft Darmstadt 2011 a a a a a a a a a nn 5 Grafische Darstellung von m glichen Steer by Wire Lenkungsverhalten und deren Skalierung auf den Lenkinterval 2 2 2 aoa oa a a a a a a 7 Redundante Steer by Wire Lenkung Quelle Wallentowitz und Reif 2006 9 Allgemeine Bescheibung einer CAN Nachricht a 2 222 22 10 Interpretation von zusammenh ngenden Daten 10 Aufteilung einer CANopen Rx Nachricht in Parameter 22 12 Aufteilung einer CANopen Tx Nachricht in Parameter 13 Grafische Darstellung eines einfachen Regelkreises nach Quelle Mann u a 20091 ie en a en de hen ee ee er d a er ee 16 Die Komponenten des Lenkrades 2 2 2 2 m mn nn nn 18 Zustandsautomat der Lenkrad Regelung Quelle SensoDrive GmbH 2010 20 Schaltplan zum Anschlu eines Potentiometers zur Simulation der Geschwin lie SEET 21 Die Realisierung der Querlenkung und entsprechender Verst rker 22 LICHISCHFANKEN 2 2 intra ed de a a 23 Die Hardware des Kraftaufnehmers
100. uen K stchen dargestellt werden Das erste Byte enth lt dabei den Least Significant Byte LSB und das letzte den Most Significant Byte MSB Dies bedeutet dass die Byteorder des CAN Protokolls Big Endian ist Eine Nachricht kann bis zu 8 unterschied liche Parameter enthalten Ebenfalls sind die Parameter die aus mehreren Bytes bestehen zul ssig Dabei werden die LSB und MSB f r jeden Parameter separat betrachtet und m s sen entsprechend interpretiert werden Abh ngig von der Byteorder des Zielsystems sollen m glicherweise die Bytes gedreht werden Die Abbildung 2 5 enth lt ein CAN Telegramm 0x020100 0x050403 0x0706 Abbildung 2 5 Interpretation von zusammenh ngenden Daten Payload bezeichnet die Nutzdaten die bertagen werden sollen KAPITEL 2 GRUNDLAGEN 11 mit der L nge von 8 Byte Die Daten werden logisch auf 3 Parametern aufgeteilt Der erste und der zweite Parameter bestehen jeweils aus 3 Bytes der dritte aus 2 Bytes Bei diesem Beispiel handelt es sich beim Zielsystem um Little Endian daher sollen die Bytes innerhalb einer logischen Trennung geswappt werden 2 2 2 Arbitrierung und Priorisierung der Nachrichten Das CAN Protokoll nutzt das Carrier Sense Multiple Access Collision Resolution CSMA CR bertragungsverfahren Das hei t dass man in der Lage ist nicht nur die Kollisionen zu erkennen sondern auch die zerst rungsfreie Arbitrierung durchzuf hren Um die Kollisio nen in einem Multimaster System erk
101. uf zwei Bussysteme verteilt wird und dadurch einen parallelen Ablauf erm glicht Hinzu kommt die Verz gerung des Real time Netzwerkes Diese beeinflusst das Zeitverhalten des Controllers 4 3 Verteilter Regelkreis Sowohl das Lenkrad als auch der Servoverst rker des Motors besitzen eine separate Re gelung die teilweise eigenst ndig die Aufgaben bernimmt Die Regelung des Lenkrades realisiert die grundlegende Funktionalit t der Endanschl ge sowie des Lenkverhaltens vgl Abschnitt 3 1 Der im Abschnitt 3 2 beschriebene Servoverst rker erlaubt die Positionierung und das Setzen der Positionierungsgeschwindigkeit Diese Funktionen sind nicht in einem gemeinsamen Controller sondern als separate funktionale Bl cke realisiert Da sie zu einem gemeinsamen ber ein Netzwerk verteiltes System zusammengeschlossen werden spricht man von einer verteilten Regelung Die Funktionalit t der Steer by Wire Lenkung setzt sich aus zwei Pfaden zusammen Der erste Pfad hat die Aufgabe den Winkel des Lenkrades auszulesen auf den Wertebereich der Zahnstange zu skalieren und auf die berechnete Po sition zu setzen Erst durch die R ckkopplung ber den Force Feedback Pfad und den Fahrer wird dies zu einem Regelkreis Der Kraftsensor wird in regelm igen Abst nden aufgefor dert den Messwert an den Controller zu senden Aus dem Messwert der Querkraft die auf die Querstange einwirkt wird das Drehmoment berechnet und anhand dessen das Lenkrad eingestellt Die
102. und weitere Bits die zwecks bersichtlichkeit an dieser Stelle nicht beschrieben werden Eine ausf hrliche Beschreibung kann man aus Zimmermann und Schmidgall 2008 oder Zeltwanger 2001 entnommen werden Die Framel nge bei einem 11 Bit Identifier betr gt max 111 Bit Um die Synchro nisation bei gleichpoligen Bits durchf hren zu k nnen wird Bit Stuffing angewendet Daf r wird nach f nf gleichpoligen Bits ein komplement res Bit eingef gt Daher kann die L nge KAPITEL 2 GRUNDLAGEN 10 des Frames abh ngig von der Payload bis zu 19 Bit l nger werden Aus der nominalen Bitzeit von 1 us resultiert die Gesamt bertragungszeit eines Telegramms von 130 us Um Reflektionen bei der bertragung zu vermeiden sollen beiden Enden des Busses mit den Abschlusswiderst nden von 120 terminiert werden 2 2 1 Nachrichtenaufbau Jede CAN Nachricht wird durch den Identifier eindeutig und kann bis zu 8 Byte Nutzdaten enthalten Dabei wird nicht das Ger t gekennzeichnet sondern die Nachricht selbst Anhand des Identifiers kann entschieden werden um welche Art der Nachricht es sich handelt Wei terhin beinhaltet die Nachricht die L nge der enthaltenen Daten im Wertebereich n 0 8 Die Abbildung 2 4 beschreibt den allgemeinen Aufbau eines CAN Telegramms Der Identi Abbildung 2 4 Allgemeine Bescheibung einer CAN Nachricht fier ist in Blau dargestellt Das gelbe K stchen enth lt die Anzahl der Nutzdaten die mittels nachfolgendem gra
103. ung 5 5 2 Fehlerbehandlung 6 Qualit tsicherung 5 1 Ekel ul dido ereignete he 8 2 VANAErUNG s s da i Ae ANE d ie 7 Zusammenfassung und Fazit 7 1 Zusammenfassung oscense dd LE GEET E Les Literaturverzeichnis Glossar Abk rzungsverzeichnis Abbildungsverzeichnis Sachregister vi 62 62 63 64 64 65 67 70 72 74 76 Kapitel 1 Einf hrung Die modernen Autos sind ohne Bussysteme nicht mehr denkbar Sie machen die Elektronik bersichtlicher mindern die Kabelbauml nge erlauben eine schnellere Diagnose und den Zugriff auf jede Komponente von einer zentralen Stelle Die Anzahl der Buskomponenten w chst stetig und damit auch die Menge der zu bertragenen Daten Diese Daten stehen in starker Konkurrenz zueinander W rden beispielsweise die Scheibenwischer die Daten der Einspritzregelung st ren w rde der Motor ausgehen wenn man die Scheibenwischer bet tigt Auch die sicherheitsrelevanten Daten wie die der Antriebsschlupfregelung ASR des elektronischen Stabilit tsprogramms ESP oder X by Wire stellen besondere Anforde rungen an die Rechtzeitigkeit der Daten bertragung Daher werden die Nachrichten priori siert bertragen Da die Bandbreite der Busse limitiert ist f hren die st ndig wachsenden Anspr che der modernen Technologien die Busse an die Grenzen des M glichen Eine Vari ante zur L sung dieses Problems ist Real time Ethernet Der bietet eine Bandbreite
104. versit t Werden die Algorithmen einfach kopiert so bedeutet das dass wenn der ers te Algorithmus einen Fehler aufweist so betrifft dies auch den zweiten Dies f hr zu dem Ausfall von beiden Regelkreisen und st rt damit die Funktionalit t der Lenkung KAPITEL 2 GRUNDLAGEN 9 Feedback Aktor FTU Lenkrad Fehlertolerantes Datenbussystem z B Time Triggered Protocol Zentrales elektronisches Steuerger t FTU Kugelgewindetrieb Lenkzahnstange Vorderachsaktor FTU Abbildung 2 3 Redundante Steer by Wire Lenkung Quelle Wallentowitz und Reif 2006 2 2 CAN Unter Controller Area Network CAN verbirgt sich ein Kommunikationsprotokoll das im Au tomotivebereich weit verbreitet ist und sich seit Jahrzehnten durchgesetzt hat Das Protokoll ist von der International Organisation for Standardization 2003 in ISO 11898 1 3 spezifiziert und verf gt ber eine die bertragungsrate bis zu 1 Mbit s Das CAN Protokoll implementiert Schicht 1 und 2 des OSI Referenzmodells und realisiert damit eine zuverl ssige bertra gung Es handelt sich um ein ereignisgesteuerts Kommunikationsprotokoll Die Nachrichten die auf dem Bus landen k nnen von allen Teilnehmer gelesen werden Jeder Teilnehmer entscheidet f r sich ob die Nachricht f r ihn relevant ist oder nicht Au er den Nutzdaten enth lt das CAN Telegramm weitere Bits die den Anfang bzw das Ende des Frame mar kieren sowie 15 Bits lange Cyclic Redundancy Check CRC
105. wi ckelte Real time Ethernent Switch Mit dem in der Abbildung 3 8 dargestellten 8 Port Switch werden die Nachrichten in drei Nachrichtenklassen aufgeteilt Die Klasse Time Triggered 11Unter Scheduling verbirgt sich die Erteilung dem Prozess nach einem festgelegten Zeitplan den Zugriff auf die Ressource KAPITEL 3 HARDWARE 28 Abbildung 3 8 Real time Ethernet Switch TT beschreibt zeitkritische Nachrichten die zu einem bestimmten Zeitpunkt empfangen bzw versendet werden Die zweite Klasse beinhaltet die Rate Constrained RC die eben falls zeitkritisch sind aber eine geringere Priorit t als TT Nachrichten haben und daher in den freien Slots versendet werden Bei mehreren RC Sendern konkurrieren sie um die ge meinsame Bandbreite Damit das Verhalten des Netzwerkes vorhersagbar bleibt besitzt die RC Klasse eine Bandbreitenbegrenzung Diese wird durch den minimalen Abstand zwischen zwei gleichen Nachrichten festgelegt Die Best Effort BE Klasse entspricht dem herk mm lichen Ethernet Bevor der Switch verwendet werden kann muss er entsprechend der im Abschnitt 5 3 4 dargestellten Schedulungtabelle konfiguriert werden Daf r m ssen f r jeden Port des Switches alle ankommenden und rausgehenden TT und RC Nachrichten registriert werden Kennt der Switch die Nachricht nicht oder sie kommt vom falschen Port so wird sie verworfen F r den Ethernet Traffic BE kann sowohl eine herk mmliche lernf hige oder eine statische Routingtabelle
106. x603 BIT 0x210 0x211 0x21 0x182 0x183 Lenkrad 0x281 0x582 0x583 Abbildung 5 4 Die Richtung der CAN Kommunikation zwischen den Knoten itialisierung der Hardware genutzt wird ist nicht an einen bestimmten Zeitpunkt gebunden und geh rt daher zu der RC Klasse Die CAN Identifier der RC Kommunikation sind blau dargestellt Wenn die Initialisierung abgeschlossen ist befinden sich die Endger te im Ber tiebszustand und senden in regelm igen Abst nden die Werte bzw den Status des Ge r tes Diese Nachrichten sind zeitkritisch geh ren damit zu der TT Klasse und werden mit roter Farbe markiert Um die Zugeh rigkeit der Antwort zu der Anfrage bersichtlicher dar zustellen werden alle Nachrichten in der Tabelle 5 3 zusammengefasst Weiterhin enth lt die Tabelle entsprechende Laufzeiten der Nachrichten sowie die minimale und die maximale Reaktionszeit der Endger te Bei manchen Nachrichtenpaaren weicht von Periode zu Peri ode die minimale Reaktionszeit von der maximalen ab Daher soll die Schedulingtabelle so gestaltet werden dass die aktuelle Nachricht beim Zugriff bereits empfangen ist Wird zum Beispiel versucht die Antwortnachricht abzuholen bevor sie empfangen wurde so wird der alte Inhalt abgeholt Der neue Wert wird erst in der n chsten Periode verf gbar was die Totzeit der Regelung im schlimmsten Fall um eine bis mehrere Perioden verl ngert KAPITEL 5 UMSETZUNG 93 Byte Byte Mim Max Klasse 0x0 0 57 0x281 o
Download Pdf Manuals
Related Search
Related Contents
ECOR Series DVR silabo man_ y cons Z-1eco ファインリキッド 20B Wybron Transition Optic User's Manual Agrafeuse pneumatique BeA 346/200-951E HP mp3130 User's Manual Service manual Peerless Industries SAL770 User's Manual 入札説明書 - 埼玉大学 Copyright © All rights reserved.
Failed to retrieve file