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:

Schaltplan vom CAN-Bus Analyzer

Bilder vom Prototypen Aufbau:

Bild vom Schaltungsaufbau auf Lochraster Leiterplatte


Leiterbahnunterseite vom Testaufbau:
Bild von der Leiterbahnunterseite vom Aufbau



Beispiel einer emfpangener Testmessage mit der CAN-ID 110 und 8 Datenbytes:
Anzeiger einer empfangener CAN-Message im Display