Sun Dec 02 11:00:58 CET 2007
|
BlackTM
|
Kommentare (10)
| Stichworte:
Artikel, BlackTM, Blog, Daten, Elektronik, Foren
Du hast von einem Thema rund um Fahrzeugelektronik und Datenübertragung gelesen, das du nicht so recht durchschaut hast und benötigst jetzt ein wenig Grundlage? Etwas in diesem Blog oder im Forum ist dir nicht verständlich und du brauchst eine Erklärung? Du siehst einen Fehler in meinen Beiträgen? Dann her damit! Ich kann nicht garantieren das alles zu 100% korrekt beantwortet wird, aber ich versuche es einfach und nehme gerne Themen technischer Natur auf. Im Forum ist selten der Rahmen um weiter auszuschweifen, hier geht das. Weiterhin werde ich das Blog mit Artikeln rund um Datenübertragung füllen, speziell höhere Protokollebenen stehen ja noch aus und lassen viel Spielraum. Auch OBD soll nicht zu kurz kommen - zumindest alles was öffentlich verfügbar ist. MfG BlackTM |
Sun Dec 02 10:14:30 CET 2007
|
BlackTM
|
Kommentare (5)
| Stichworte:
Daten, Elektronik, Fahrzeug, Glossar, Protokolle
Nun, wenige Busse sind vorgestellt, einige werden noch folgen, jetzt fehlt noch so eine kleine Übersicht über diverse Begriffe die hier und da fallen. Deswegen hier das dazu passende Glossar: [more] Alle Begriffe im Umfeld der automobilen Datenübertragung! Acknowledge Bus Buslast CRC Feld (im Frame) Frame Gateway ID Jitter Knoten (auch Netzknoten) Latenz LVDS Master Netzwerk OSI-Schicht / OSI-Layer / Protokollebene Overhead Paket Protokoll Ring Schedule Slave Slot Standby Stern Terminierung Erweiterungsvorschläge und Klarstellungen sind herzlich willkommen. Nutzt dazu die Kommentarfunktion! MfG BlackTM |
Mon Nov 12 06:16:34 CET 2007
|
BlackTM
|
Kommentare (6)
| Stichworte:
Bus, Daten, Fahrzeug, LIN, Protokoll, Spezifikation
Der LIN-Bus (Local Interconnect Network) stellt eine kostengünstige Möglichkeit dar, Datenübertragung im Fahrzeug per Bus zu realisieren wenn nur wenig Bandbreite benötigt wird und andere Lösungen überdimensioniert sind. Dies ist bei der Realisierung von gemischten Netzen aus Sensoren und Aktoren im Komfortbereich der Fall. Wer mehr über den LIN-Bus erfahren möchte, kann hier [more]weiterlesen. Physikalische Auslegung Die Kommunikation Ein paar Zahlen Kollisionserkennung Der Fehlerfall Anwendungsfälle Weitere Informationsquellen (kleine Auswahl) |
Tue Nov 06 21:53:13 CET 2007
|
BlackTM
|
Kommentare (20)
| Stichworte:
Bus, CAN, Daten, Fahrzeug, Fehler, Notmodus, Protokoll, Spezifikation
Der CAN Standard ist kein Geheimnis, aber dennoch für alle die sich die 73-Seiten CAN2.0 Spezifikation nicht durchlesen wollen kommt hier eine vereinfachte Erklärung. Für mehr: [more]weiterlesen. Physikalische Auslegung Mir sind zwei Ausführungen bekannt: der 2-Draht CAN und der 1-Draht CAN. Bei einem 2-Draht-CAN System wird die Spannungsdifferenz der ersten und invertierten zweiten Leitung ermittelt und daraus eine logische 1 oder 0 erzeugt. Beim 1-Draht CAN (iirc nur bei General Motors in Verwendung) ermittelt man die Spannungsdifferenz zur Signalmasse. Prinzipiell sind auf einem 2-Draht-CAN höhere Übertragungsraten möglich und Störungen haben kaum Einfluss, da sie selten nur eine der beiden Datenleitungen betreffen, sondern beide. Damit ändert sich eventuell die Spannung auf beiden Leitungen, die Differenz bleibt aber gleich und das Signal damit unbeeinflusst. Die beiden Leitungen werden zudem verdrillt, damit sie möglichst keine Kapazität erzeugen (was bei 2 parallel liegenden Leitungen vorkommen könnte, sie wirken wie ein Kondensator). Der 1-Draht CAN funktioniert bei geringen Datenübertragungsraten aber ebenfalls zuverlässig. Die Kommunikation Es gibt also keinen bestimmten Knoten ohne den ein CAN-Netzwerk an sich nicht arbeiten würde, solange mindestens 2 da sind können diese arbeiten. Auf höheren Protokollebenen jedoch sieht es ganz anders aus, würde z.B. ein Steuergerät ausfallen welches für die Übermittlung der Zündschlossstellung zuständig ist müssen andere von einem Standardwert ausgehen, dieser sagt normalerweise, das die Zündung ausgeschalten ist. Ein paar Zahlen Kollisionserkennung Der Fehlerfall Da es eine serielle Kommunikation ist (Bit für Bit wird übertragen), müssen sich die Knoten synchronisieren, damit immer im richtigen Moment geschrieben bzw. gelesen wird. Dies passiert bei CAN während eine Nachricht gesendet wird, nämlich eine bestimmte Zeit nach einer Bitflanke (Wechsel von 0 auf 1 bzw. 1 auf 0). Zu lange Zeit ohne eine Bitflanke wäre ein Fehler, deshalb wird nach 5 Bits ohne Änderung ein Bitwechsel erzwungen (ausser in 3 bestimmten Bereichen des Frames oder wenn nichts gesendet wird). Wann ein Knoten überhaupt etwas senden möchte kann durch Eintreten eines Ereignisses (wie zum Beispiel Betätigung einer Taste im Armaturenbrett, Veränderung der Gaspedalstellung, Erkennen eines Hindernisses vom Parkassistent) ausgelöst werden, auf einer festen zeitlichen Basis (was letztlich auch ein Ereignis ist, z.B. pro Sekunde die Stellung des Zündschlossschalters oder alle 10 Millisekunden die Raddrehzahl) erfolgen oder einer Mischung aus beidem (pro Sekunde die Stellung des Zündschlossschalters und wenn sie sich ändert). Am sinnvollsten werden also wichtige, sich schnell ändernde Informationen in Datenpaketen transportiert die eine niedrige ID haben und unwichtigere mit hohen IDs. Extrem kritische oder sicherheitsrelevante Signale jedoch werden meist hartverdrahtet, darunter zählen Crashsensoren und Zündpillen des Rückhalteystems. Zudem wird auch bei einigen Steuergeräten das geschaltete Plus noch verdrahtet, damit diese abschalten auch wenn das Fahrzeug sich in einem Notmodus ohne CAN-Kommunikation befindet. Diese Rückfallebene (nicht Teil des CAN-Protokolls, aber vorgeschrieben) sorgt dafür, dass mindestens
weitere Informationsquellen (kleine Auswahl davon) Falls ihr Anmerkungen, Kritik oder Fragen habt, verwendet die Kommentarfunktion oder schickt mir eine PN. |
Tue Nov 06 21:53:02 CET 2007
|
BlackTM
|
Kommentare (2)
| Stichworte:
Bus, CAN, Daten, Fahrzeug, FlexRay, I²C, LIN, Protokoll, Spezifikation
Wer sich schon immer dafür interessierte wie denn nun dieses oder jenes über ein paar wenige Leitungen funktioniert, für den habe ich hier eine kleine Übersicht und einen Vergleich über die üblichsten Busse aufgeschrieben. Ich weiss, es ist ein trockenes Thema, deswegen bin ich für auflockernde Vorschläge und Anregungen sehr dankbar. Öfters wird zudem auch ein wenig missverstanden worüber man sich genau unterhält und deshalb folgen noch Motor-Talk geeignete Artikel zu diesem Thema. Ich hoffe ihr findet es allgemein hilfreich. Später werden noch einige tiefergehende Artikel zu dem Thema erscheinen. Kommentare und Ideen ausdrücklich erwünscht! Falls euch das interessiert, könnt ihr hier [more]weiterlesen. Die Ursprünge Datenbusse bzw. Netzwerke im Fahrzeug zu verwenden liegen darin weniger Leitungen zu benötigen. Das geschieht indem man auf "weniger" Leitungen "mehr" Informationen überträgt, statt pro Leitung eine Information bzw. Signal. Das man damit Kupfer einspart ist ebenso der Fall, wie die Tatsache das weniger Kontakte auch weniger Kontaktprobleme (Korrosion, Wackelkontakte, geweitete Pins, Kabelbruch aufgrund dickerer Kabelstränge, Probleme hochpoliger Stecker) bedeuten. Nachteil hierbei: ist die Verbindung unterbrochen fallen viele Informationen weg, statt wie bei konventioneller Verdrahtung nur das einzelne Signal der betroffenen Leitung. Inwiefern eine Komponente jedoch ohne ein bestimmtes Signal noch arbeiten kann hängt von ihrer Funktion ab und insofern ist ein kompletter Ausfall meist nicht wesentlich schwerwiegender, da dann ein Notmodus in Kraft tritt. CAN LIN I²C FlexRay MOST Ältere Protokolle : SAE J1850, ISO 9141 (K-Line) Es werden weitere Artikel folgen in denen näher auf diese Protokolle eingegangen wird. MfG BlackTM |
Wed Jul 02 04:40:06 CEST 2008 |
BlackTM
|
Kommentare (10)
| Stichworte:
Bus, Daten, Fahrzeug, I²C, Protokoll, Spezifikation
Der I²C (Inter-IC Bus) ist ein 1980 von Philips eingeführter Standard. Zur Datenübertragung werden 2 Leitungen und Masse benötigt. Andere Hersteller nennen ihre Version davon aus Markenrechtsgründen TWI (Two Wire Interface). Die Einsatzgebiete sind natürlich überall wo man Daten mithilfe weniger Leitungen aus einfachen Komponenten übertragen möchte. So ist die Produktpalette für I²C sehr vielseitig, von Speicherbausteinen (EEPROM) über Echtzeituhren, Display Treibern bis zum Temperatursensor gibt es so einiges am Halbleitermarkt.
Für weitere Informationen hier [more]weiterlesen.
Der I²C Bus ist ein Master-Slave Bus mit der Möglichkeit mehrere Master an einem Bus zu haben. In der Regel wird der Bus (sofern frei) durch einen Master "gestartet", danach fragt der Master eine Adresse an und der betroffene Slave liest/schreibt die geforderten Daten auf den Bus bzw. in seinen internen Speicher, die übertragenen Daten werden vom Empfänger bestätigt und der Bus wird "gestoppt" oder alternativ wird fortgesetzt. Sollten mehrere Master gleichzeitig eine Anfrage starten wollen, so fährt der Master fort, der die Arbitrierung gewinnt.
Das Protokoll kann recht einfach in Mikrocontrollern implementiert werden. Typische Anwendungen umfassen z.B. im PC (dort der Ableger SMBus) die Temperaturerfassung und -steuerung, Echtzeituhren (RealTimeClock) und die Steuerung von Segmentdisplays. Im automobilen Bereich wird/wurde I²C ebenfalls zur allgemeinen Kommunikation im Infotainmentbereich eingesetzt, wobei diese Bereiche langsam durch CAN oder LIN ersetzt werden (vermutlich aufgrund besserer EMV-Eigenschaften und Kosten).
Die Übertragungsraten sind von anfänglich 100kBit/s über 400kBit/s auf mittlerweile 3,4MBit/s angestiegen. Das stellt jedoch nur das Maximum an einem Bus dar, denn dieser muss sich dem langsamsten Teilnehmer anpassen. Die einzelnen Knoten sind also in der Lage beim Schreiben auf den Bus ihre Geschwindigkeit variabel zu gestalten und müssen keine zeitkritische Datenübertragung gewährleisten, da sie die Übertragung des nächsten Zustands "hinauszögern" können. Damit ist I²C nicht echtzeitfähig, dafür aber recht ressourcenschonend und der internen Verarbeitung von Daten werden keine zeitlichen Limits gesetzt (ausser den für einen Bus vorgesehenen, selbst festgelegten). Man kann natürlich auf die maximale Übertragungsrate kommen, wenn jede beteiligte Komponente die Geschwindigkeit halten kann. Leichte Abweichungen zwischen den Baudraten erzeugen also keine Probleme.
Es gibt 2 Protokollversionen, die erste mit 7 Bit und die zweite mit 10 Bit Adressen. Diese Adressen für Slaves werden vom I²C Gremium vergeben, die letzten 3 Bits sind aber durchaus auch durch den OEM konfigurierbar (ggf. auch programmierbar) um mehrere Busteilnehmer des gleichen Typs an einem Bus betreiben zu können. Bei einem selbstgestalteten Protokoll zwischen Mikrocontrollern (Master + "intelligentere" Slaves) spielt das aber kaum eine Rolle.
Die Länge der in einem "Frame" übertragenen Daten ist quasi unbegrenzt, lediglich Designwünsche wie Reaktionszeit auf z.B. einen Tastendruck oder die Zeit bis Erkennung von Kommunikationsausfällen begrenzt den Zeitbedarf für eine Datenübertragung. Jedes übertragene Datenbyte wird einzeln bestätigt, auf Rückfalltechniken geht die Spezifikation nicht ein, das ist also dem OEM überlassen wie ein Fehler in den Daten zu behandeln ist. Üblicherweise ist wohl eine erneute Übertragung des gesamten Pakets fällig. Höhere Protokollebenen müssen demzufolge auch die Ermittlung von Gültigkeit und Ablehnung von Daten behandeln. Es wäre z.B. möglich nach jedem Schreibbefehl gleich einen Lesebefehl anzuhängen, in dem der Empfänger den Status, eine Checksumme und/oder die geschriebenen Daten zurückgibt, so das diese verglichen werden können.
Wie schon angedeutet besteht I²C aus 2 Leitungen und Masse.
Die zwei Leitungen nennen sich SDA (Data) und SCL (Clock). Der SCL Leitung kommt eine besondere Funktion für die Arbitrierung zu. Die SDA-Leitung darf ihren Status (bis auf die START- und STOP-Kondition) nicht ändern während SCL High ist. Bei beiden Leitungen dominiert der Low-Zustand über den High-Zustand. Je nachdem welcher Knoten Datenbits auf der SDA-Leitung einstellt, hat immer der Empfänger per SCL Vorrang bei der Entscheidung, ob neue Daten gesendet werden dürfen (indem die Leitung noch auf Low gehalten wird, während der Sender sie "released", also auf High gesetzt, hat). Der andere Teilnehmer bemerkt dann bei Zustandswechsel der SCL-Leitung, dass er weitersenden kann.
Es können immer nur zwei Busteilnehmer Daten austauschen und somit auch nur Sender oder Empfänger Daten als ungültig markieren (fehlendes ACK-Bit oder Fehlerbehandlung auf höherer Protokollebene). Eine Gültigkeitsüberwachung durch das gesamte Netzwerk wie bei CAN gibt es somit nicht. Auch wäre I²C anfällig gegen Einstreuungen und zu hohe Kapazität auf den Leitungen, da das Netzwerk durch fest eingebaute Widerstände stabilisiert wird. Eine Obergrenze für Kapazität sind 300pF für ein Subnetzwerk, wodurch die Leitungslänge ohne weitere Massnahmen stark begrenzt ist. Es ist nicht so, das man im Automobilbereich die volle Leitungslänge nutzen wollte oder müsste, diese Angabe lässt allerdings einen Rückschluss auf die Störungssicherheit zu. Übertragungssysteme mit LVDS (Low-Voltage-Differential-Signal) Technologie sind da robuster.
Links
I²C Spezifikation alternativ hier.
Produktübersicht für Logik-ICs
MfG BlackTM