www.mikrocontroller.net

CAN

Controller Area Network - Ein von Bosch entwickeltes, echtzeitfähiges Bussystem für den Automobilbereich, welches u.a. auch Anwendung in der Automatisierungstechnik findet.

Inhaltsverzeichnis

[Bearbeiten] Mikrocontroller mit CAN

[Bearbeiten] Atmel AVR

[Bearbeiten] AT90CAN

  • Atmel AVR Controller mit CAN-Schnittstelle (ein Kanal)
  • Speicher: (flash,EEPROM,RAM)
    • AT90CAN32 -> 32KB 1KB 2KB
    • AT90CAN64 -> 64KB 2KB 4KB
    • AT90CAN128 -> 128KB 4KB 4KB
  • 15 CAN "Message Objects", jedes individuell konfigurierbar
  • Bis auf den CAN controller weitestgehend identisch mit den nicht CAN Versionen (siehe AVR096)
  • 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).
  • Dieser MC ist für nicht-gewerbliche Endanwender einzeln z. B. bei Reichelt, CSD und Segor erhältlich (ca. 9EUR). 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).
  • CANopen software protocol stacks at http://www.port.de/Atmel.html
  • Freier CANopen stack: http://www.canfestival.org/


[Bearbeiten] ATmega16M1/32M1/64M1

  • modernisierte Version der AT90CAN128 Serie inkl. LIN, PSC und DAC
  • not sampled

[Bearbeiten] AT32UC3C

  • 32bit AVR mit zwei CAN controllern
  • bis zu 512k flash, 64k RAM
  • DMA, USB, Ethernet MAC, 2Msmps 12bit ADC, 12bit DAC

[Bearbeiten] Atmel ARM

[Bearbeiten] AT91SAM7X

  • ARM7TDMI-Kern mit einem CAN controller
  • bis 512k flash und 128k RAM

[Bearbeiten] AT91SAM9X

  • ARM926-Kern mit zwei CAN controllern
  • kein onboard flash
  • 32k RAM aber DDR2 support

[Bearbeiten] AT91SAM3A

  • Cortex M3-Kern mit zwei CAN controllern
  • bis zu 512k flash und 96k RAM

[Bearbeiten] AT91SAM3X

  • Cortex M3-Kern mit zwei CAN controllern
  • bis zu 512k flash und 96k RAM

[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 MC9S08

  • D Serie


[Bearbeiten] Freescale MC9S12

  • B, C, D, G und H Serie

[Bearbeiten] NXP LPC11CXX

  • 32-bit ARM Cortex-M0
  • LPC11C12 16KB flash, 8KB SRAM, 1x C_CAN
  • LPC11C14 32KB flash, 8KB SRAM, 1x C_CAN
  • LPC11C22 16KB flash, 8KB SRAM, 1x C_CAN, on-chip CAN transceiver
  • LPC11C24 32KB flash, 8KB SRAM, 1x C_CAN, on-chip CAN transceiver
  • Herstellerseite: [1]

[Bearbeiten] NXP LPC175X LPC176X

[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] Silicon Labs C8051F04X C8051F06X C8051F5XX

  • 8-Bit Mikrocontroller mit 8051-Kern
  • 16K - 128K Flash, 2304 - 8448 RAM
  • LIN 2.1
  • 25-50 MIPS
  • bis 5x5 QFN

[Bearbeiten] STMicroelectronics STM8S20

  • STM8 Kern [3] DIV/MUL -Befehle
  • SPI mit automatischer CRC Berechnung
  • 1 beCAN Schnittstelle CAN2.0B
  • sehr preiswert (128 kFlash/6K RAM ) 3,30 bis 4,80 € ([4] aber SMD LQFP

[Bearbeiten] STMicroelectronics STR730 STR750

  • ARM7TDMI-Kern
  • 1-3 CAN Schnittstellen

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

  • 96MHz ARM966E-S CPU Kern

[Bearbeiten] STMicroelectronics Cortex M3/M4

Cortex M3 Core

- STM32F1 Mainstream
  • STM32F103  : 1 CAN Schnittstelle
  • STM32F105  : 2 CAN Schnittstellen
  • STM32F107  : 2 CAN Schnittstellen
- STM32F2 Hi-Performance
  • STM32F205  : 2 CAN Schnittstellen
  • STM32F207  : 2 CAN Schnittstellen
  • STM32F215  : 2 CAN Schnittstellen
  • STM32F217  : 2 CAN Schnittstellen

Cortex M4 Core

- STM32F4 Hi-Performance and DSP
  • STM32F405  : 2 CAN Schnittstellen
  • STM32F407  : 2 CAN Schnittstellen
  • STM32F415  : 2 CAN Schnittstellen
  • STM32F417  : 2 CAN Schnittstellen

[Bearbeiten] TI TMS470

  • ARM7TDMI-Kern

[Bearbeiten] Toshiba TLCS-870/C

[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€
  • Datenblatt

[Bearbeiten] PCA 82C250

  • ABGEKÜNDIGT!
  • 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,00€)

[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 1041

[Bearbeiten] TJA 1042

[Bearbeiten] TJA 1043

[Bearbeiten] TJA 1050

[Bearbeiten] ATA6660

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

[Bearbeiten] SN65HVD23x

  • von Texas Instruments (auch als Sample erhaeltlich)
  • SO8
  • VCC = 3,0V...3,6V
  • erhältlich z. B. bei Reichelt: SN65HVD230, SN65HVD231 (ca. 3,00 €)

Datenblatt:

[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.
  • -Zum Senden eines Zeichen, muss beim CAN paralell auf dem Bus gelesen werden.
 -Die TRansceiver tun dies nicht, mach nur der Controller.
 -Die gelesene Nachricht muss also durch einen Controller erneut gesendet werden, wenn der Bus frei ist...

[Bearbeiten] CAN Hub

CAN Hub mit standard Knoten

CAN Hub mit getrennten Rx und Tx Leitungen

CAN Hub für sternförmige und busförmige Verdrahtung

[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

CAN-IO Erweiterung. Braucht praktisch nur noch Quarz und Transciever. Preise ab 3€

  • bis zu 8 digitale IOs
  • bis zu 2 PWM, 10 Bit
  • bis zu 4 ADC, 10 Bit, externe Ref.
  • SLEEP-Mode etc.

Datenblatt

[Bearbeiten] Verkabelung

  • auf beidseitige Busterminierung achten (typisch 2x 120Ω 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
  • LogicPort http://www.pctestinstruments.com/

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] Testboards

[Bearbeiten] Dongles

[Bearbeiten] Selbstbau Projekte

[Bearbeiten] Fertiggeräte

[Bearbeiten] Software

[Bearbeiten] Protokolle

[Bearbeiten] CANopen

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net