CAN-Bus Analyzer I ( CAN-Bus Finder)
Projektstand:
Januar 2009 - Prototyp der Hardware wurde erfolgreich auf einer Lochrasterkarte aufgebaut. Mittels Testprogramm wurden alle Hardwarefunktionen erfolgreich getestet. Somit muss nur noch ein bisschen Software :-) geschrieben werden.
Allgemeines:
Der CAN-Bus (Controller Area Network) ist ein Datenbus, welcher in der heutigen Fahrzeugen nicht mehr wegzudenken ist. Entwickelt wurde er von Bosch in den 80er Jahren. Mit dem ISO-Standard ISO 11898 wurde das Protokoll für die Anwendung im PKW international standardisiert.
CAN ist das derzeit am häufigsten eingesetzte Kfz-Bussystem für Low-Speed und Highspeed Anwendungen.
Meistens kommen mehrere CAN-Busse mit unterschiedlichen Baudraten im PKW zum Einsatz:
- Motor-CAN (High-Speed-CAN: 500kBit/s) für Motorsteuerung, Getriebesteurung, Bremsen, usw.
- Komfort-CAN ( Low-Speed-CAN: 50kBit/s, 100kBits/s, 125kBits/s) für Klima, Tür, Lichtsteureung usw.
- Infotaiment-CAN (Low-Speed-CAN 50kBit/s, 100kBits/s, 125kBits/s) für Navigation, Radio, LFB usw.
Beim CAN-Bus erfolgt die Datenübertragung auf einer Zwei-Draht-Leitung (CAN-High und CAN-Low) Leitung, deren gemeinsamer Bezugspunkt die Masse Leitung ist. Üblicherweise sind diese 2 Leitungen auch miteinander verdrillt (Twisted Pair) wodurch eine besserer EMV erreicht wird. Ein weiteres Merkmal des CAN-Busses ist, dass keine Geräte (man spricht hier von CAN-Knoten) direkt addressiert werden, sondern eine CAN-Message aus einem Identifier (Message ID) und bis zu 8 Datenbytes besteht. z.B. (LEN gibt die Anzahl der Datenbytes an)
ID LEN Datenbytes Kommentar
351 8 00 00 00 00 00 00 00 00 Message in der die Geschwindigkeitinformation bei VW-Fahrzeugen enthalten ist
Dies sollte mal als kurze Einführung reichen. Weitere Informationen zum CAN-Bus sind unten bei den Links zu finden.
Kurzbechreibung:
Der CAN-Bus-Analyzer erkennt automatisch das Format des CAN-Bus Protokolls ( 11-Bit Identifier oder 29-Bit Identifier und die aktuelle Baudrate) und protokolliert die CAN-Messages via RS232-Schnittstelle an den PC. Ebenso wird immer die letzte Empfangene CAN-Message auf dem optionalen LCD anzgezeigt (empfohlen wird ein 2x24 Zeichen Textdisplay HD44780 kompatibel). Ebenso ist die Hardware in der Lage, CAN-Bus Messages selbst zu versenden (dies sollte man aber aus Sicherheitsgründen beim Motor-CAN nicht machen)
Kenndaten der Hardware:
- Mikrocontroller: ATMega 168
- 8-MHz Quarz
- CAN-Bus Controller: SJA 1000
- CAN-Bus Treiber: ATA 6660
- RS232 Schnittstelle: MAX232
- LCD-Schnittstelle für LCD-Displays (HD44780 kompatible) siehe Projekt LCD-Display
- CAN-Bus Schnittstelle ist nicht galvanisch getrennt
- ISP-Schnittstelle (zum Programmieren)
- JTAG-Schnittstelle (zum Programmieren und Debuggen via JTAG)
- Jumper für die Terminierung der CAN-Bus Leitungen wahlweise mit 120 bzw. 2,6k ohm
- Protokollierung der CAN-Messages via RS232 bzw. zum Senden von Steuerkommandos an den CAN-Analyzer
Hauptzweck der Schaltung ist es, in Fahrzeugen den CAN-Bus zu lokalisieren und zum analysieren der CAN-Messages
Software:
noch in der Mache :-)
Compiler: CodeVision AVR C
Programmierung:
Die Programmierung erfolgt via ISP Schnittstelle mit den üblichen Programmieradaptern, bzw. mit dem STK500 Entwicklungskit oder mittels JTAG-Interface
Fusesettings für den Atmel Prozessor:
- kommt noch
Schaltplan:
Bilder vom Prototypen Aufbau:
Leiterbahnunterseite vom Testaufbau:
Beispiel einer emfpangener Testmessage mit der CAN-ID 110 und 8 Datenbytes: