SJA 1000

  • CAN-Analyzer I

    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