www.mikrocontroller.net

CAN

Eine ausführliche Liste: http://www.mjschofield.com/devices.htm

Inhaltsverzeichnis

[bearbeiten] Mikrocontroller mit CAN

[bearbeiten] Atmel AT90CAN128

  • Atmel AVR Controller mit CAN-Schnittstelle (ein Kanal)
  • 15 CAN "Message Objects", jedes individuell konfigurierbar.
  • 128kByte Flash, 4kByte RAM
  • Bis auf die CAN-Funktionen weitestgehend identisch mit dem ATmega128 (vgl. Migration-Guide ATmega128->AT90CAN128 bei atmel.com)
  • Beispielcode inkl. CAN für den IAR-C-Compiler findet sich bei atmel.com. Autobaud-Routinen in Assembler (etwas Aufwand bei der Portierung nach avr-gcc/avr-as).
  • Für die ISP-Programmierung schliesst man Ihn wie den ATmega128 an. MOSI-2 ; MISO-3 ; SCK-11 ; /Reset-20 ; GND-22,53,63 ; Vcc-21,52,(62),(64). Auf die übliche "ATmega64/128-Problematik" achten: MISO/MOSI der Programmierschnittstelle sind nicht identisch mit der SPI-Schnittstelle.
  • Im Auslieferungszustand ist nur der interne RC-Oszillator aktiv (wie üblich bei allen modernen AVRs mit internem R/C-Oszillator vgl. AVR Checkliste). Umschalten auf externe Taktquelle über die AVR-Fusebits.
  • Dieser MC ist für nicht-gewerbliche Endanwender einzeln z.B. bei Reichelt und Segor erhältlich (ca. 17 EUR). Beim Bestellen des MC sollte man einen CAN-BUS-Treiber gleich mitbestellen: z.B. Philips PCA82C250. Jedoch auf vorhandene Versorgungsspannungen achten (AT90CAN128 "kann mit" VCC=2,7...5,5V, PCA82C250 lt. Datenblatt für VCC=4,5...5V).
  • die aktuelle Hardware-Version (Stand 4/2005) hat einen "silicon bug" (Hardwarefehler, vgl. avrfreaks-Forum): Liegt der Stack im externen RAM, führt dies zu Fehlern in der Stackverwaltung (push/pop/rcall etc.). Details in aktuellen Fassungen des Datenblatts. Abhilfe/Workaround: Stack im internen RAM (<0x1001) verwalten. Dies ist ohnehin sinnvoll, da der Stackzugriff dann schneller ist.
  • CANopen software protocol stacks at http://www.port.de/Atmel.html


[bearbeiten] Atmel AT91SAM7X, AT91SAM7A

  • ARM7TDMI-Kern

[bearbeiten] Luminary Micro Stellaris LM3S8xxx

  • ARM Cortex-M3
  • bis 64kByte RAM und 256kByte Flash
  • CAN und Ethernet

[bearbeiten] Microchip PIC18Fxx8 PIC18Fxx8x

[bearbeiten] Mitsubishi / Renesas R8C / M16C / M32C

R8C/23, M16C/6Nx

[bearbeiten] Motorola / Freescale DSP56F8xx

  • Clock des CAN-Moduls von PLL speisen, nicht von XTAL, sonst gibt es sporadische Aussetzer
  • Bei hohen Datenraten ist es notwendig die CAN-TX-Leitung vom Controller mit einem PullUp-Widerstand zu beschalten. Sonst stimmt das Bit-Timing nicht, weil die Anstiegszeit des TX-Signals zu schlecht ist.

[bearbeiten] Freescale MC9S12

  • B, C, D und H Serie

[bearbeiten] NXP (ex. Philips) LPC2129 LPC2194 LPC2290 LPC2292 LPC2294

[bearbeiten] NXP LPC23xx

[bearbeiten] NXP P80C591 P80C592 P80C598

  • 8-Bit Mikrocontroller mit 8051-Kern
  • P80C591 ist neuer und beherrscht CAN2.0B
  • P80C592: CAN2.0A, P80C598 ist die Automotive-Version vom '592

[bearbeiten] STMicroelectronics STR730 STR750

  • ARM7TDMI-Kern
  • 1-3 CAN Schnittstellen

[bearbeiten] STMicroelectronics STR910FM32, STR910FW32, STR911FM42, STR911FM44, STR912FW42, STR912FW44

  • 96MHz ARM966E-S CPU Kern

[bearbeiten] TI TMS470

  • ARM7TDMI-Kern

[bearbeiten] CAN Controller

[bearbeiten] MCP2515

"Stand-alone" CAN-Controller von Microchip.

  • SPI Schnittstelle
  • 2 Empfangs- und 3 Sendepuffer jeweils individuell konfigurierbar (ID, Masken/Filter etc.)
  • ein gemeinsamer Interruptpin (RX)
  • ein Interruptpin pro Empfangspuffer, umkonfigurierbar als GPO
  • ein Triggerpin pro Sendepuffer, umkonfigurierbar als GPI
  • Stromsparmodus
  • auch für 3,3V-Betrieb geeignet.
  • Diverse C- und Assembler Beispielcodes verfügbar (z.B. bei microchip.com und kvaser, Assembler meist für PICs). Auch Software für Direktanschluss an die parallele Schnittstelle eines PC verfügbar ("bit-bang Interface").
  • erhältlich z.B. bei Reichelt (ca. 2€)

[bearbeiten] Links

[bearbeiten] SJA1000

"Stand-alone" CAN-Controller von Philips

  • Parallele Schnittstelle ca. 12 Leitungen
  • erhältlich z.B. bei Reichelt (ca. 4 Euro)

[bearbeiten] AN82526

"Stand-alone" CAN-Controller von Intel (entwickelt von Bosch)

  • Vorgänger des AN82527

[bearbeiten] AN82527

"Stand-alone" CAN-Controller von Intel (entwickelt von Bosch)

  • Nachfolger des AN82526
  • parallele UND SPI-Schnittstelle
  • 8- oder 16-Bit Multiplex Bus, oder 8-Bit Non-Multiplexed Bus
  • 14 Tx/Rx Puffer
  • bis zu 16 IO-Pins (je nach Controlleranbindung)
  • erhältlich z.B. bei Reichelt (ca. 5€)

[bearbeiten] Bosch CC170 / CC750 / CC770

  • kompatibel zum AN82527
  • mehr Debug-Register
  • CC750 im SOIC16-W Gehäuse ohne Parallel-Interface, nur SPI
  • erhältlich bei Rutronik (ca. 8 Euro)

[bearbeiten] SAE81C9x

  • SPI und Busanschluss möglich.
  • PLCC44 und PLCC28, letzteres allerdings in ungebräuchlicher Bauform
  • Nur CAN 2.0A, beherrscht also keine Extended IDs.

[bearbeiten] Bustreiber (CAN-Transceiver)

[bearbeiten] High-Speed

[bearbeiten] MCP2551

  • von Microchip
  • PDIP8 und SOIC
  • VCC = 4,5...5,5V
  • kostet rund 1€

[bearbeiten] PCA 82C250

  • von NXP (ex. Philips)
  • PDIP8 und SO8
  • VCC = 4,5...5,5V
  • V-CAN: -8V..+18V -> "TTL-kompatible" Bus-Spannung
  • erhältlich z.B. bei Reichelt (ca. 1,50€)

[bearbeiten] PCA 82C251

  • von NXP (ex. Philips)
  • PDIP8 und SO8
  • VCC = 4,5...5,5V
  • V-CAN: -40V..+40V -> +24V Bus-Spannung
  • erhältlich z.B. bei Reichelt (ca. 1,50€)

[bearbeiten] TJA 1050

[bearbeiten] ATA6660

  • von Atmel
  • SO8
  • VCC = 4,75...5,25V

[bearbeiten] SN65HVD23x

  • von Texas Instruments
  • SO8
  • VCC = 3,0V...3,6V
  • erhältlich z.B. bei Reichelt (SN65HVD230, SN65HVD231)

[bearbeiten] Fault-Tolerant / Low-Speed

[bearbeiten] TJA1054

  • von NXP (ex. Philips)
  • bis 125 "kBaud"
  • SO14
  • ähnliche Funktionen, gleicher Hersteller: TJA1053, TJA1055

[bearbeiten] CAN Repeater

[bearbeiten] AMIS-42700

[bearbeiten] Alternative

  • zwei Transceiver
  • Schaltung
  • Anmerkung: Diese Schaltung ist Quatsch und funktioniert nicht.

[bearbeiten] CAN Hub

[bearbeiten] SLIO-CAN

Preisgünstigste Bausteine sind die Serial Linked I/O Bausteine (SLIO). Diese Bausteine ermöglichen den Aufbau von Ein- und Ausgabeknoten ohne lokalen Prozessor. Auf der Basis dieser Bausteine lässt sich eine dezentrale Signal-Ein-Ausgabe mit minimalem Kostenaufwand realisieren.

[bearbeiten] Philips P82C150

  • Single-Chip-I/O-Einheit mit integriertem CAN-Controller
  • mögliche Busdatenrate 20kBd bis 125kBd
  • interner RC-Oszillator wird durch den Bitstrom auf den Bus synchronisiert
  • Kalibrierungsnachricht alle 8000 Bitzeiten erforderlich
    • 4-Bit des Identifiers über Port-Pins einstellbar
  • maximal 16 P82C150 in einem CAN-Segment
    • 16 Port-Pins mit unterschiedlichen Konfigurationsmöglichkeiten
      • 16 mal als digitale Eingänge
      • 16 mal als digitale Ausgänge
      • 2 mal als analoger Ausgang ( 10-Bit, DPM )
      • 6 mal als analoger Eingang ( 10-Bit, multiplex )
      • 2 mal als Komparator

Anmerkung: Philips stellt die SLIO nicht mehr her! Es ist auch "nichts" mehr am Markt beschaffbar, wenn, dann zu horrenden Preisen (um die 60,-EUR/Stück zur Zeit). --Patrick 09:08, 25. Jan 2005 (CET)

obsolete

[bearbeiten] DS 36001M

Obsolete

[bearbeiten] MCP2502X/5X

Datenblatt

[bearbeiten] Verkabelung

  • auf beidseitige Busterminierung achten (typisch 2x 124 Ohm bei "high-speed")
  • Standardbelegung für diverse Steckverbindungen vgl. CANOpen-Dokumentation http://www.can-cia.de/index.php?id=440 (CiA 303-1); erfordert Anmeldung
  • Schaltplan für galvanische Trennung z.B. nach Datenblatt des PCA82C250
  • für einfache Testaufbauten über sehr kurze Strecken oder "on-board-CAN" kann auf die Bustreiber verzichtet werden (vgl. Siemens Application-Note AP2921)

Es gibt auch CAN mit

  • einpoliger unsymmetrischer Verbindung (SAE J2411 single wire)
  • optischer Verbindung (Faser, Glasfaser)

Für einfache Tests genügt auch eine direkte wired-and-Verbindung ohne Treiber: http://www.mikrocontroller.net/forum/read-1-325202.html?reload=yes#325962

[bearbeiten] Debugging

Hersteller von Debug-Geräten

Oszilloskope mit CAN-Analyse (manche auch SPI, LIN, RS232, SATA ...):

  • LeCroy WaveRunner 6040 wird mit Vector-CANcaseXL (externer CAN-Trigger) geliefert (sehr gut, ab ca.9000 EUR)
  • LeCroy WaveSurfer 424 wird mit Vector-CANcaseXL (externer CAN-Trigger) geliefert (sehr gut, ab ca.8000 EUR)
  • Yokogawa DL1640 und DL9040 (CAN-Trigger ist intern) ähnliche Preise wie LeCroy, Bedienung gewöhnungsbedürftig, geht mit etwas Übung besser
  • Tektronix
  • HP / Agilent

Triggermöglichkeiten: SOF, CAN-ID, CAN-Data, ErrorFrame, RTR, Ack, NoAck - alle verknüpfbar (gleich ungleich kleiner größer inRange outofRange)

[bearbeiten] Links

[bearbeiten] Intern

CAN als Hausbus

[bearbeiten] Allgemein

[bearbeiten] Hardware

[bearbeiten] Testboards

[bearbeiten] Dongles

[bearbeiten] Software

[bearbeiten] Protokolle

[bearbeiten] CANOpen

webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net