CAN: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
Zeile 53: Zeile 53:
* Herstellerseite: [http://ics.nxp.com/products/lpc1000/lpc1100/lpc11cxx/]
* Herstellerseite: [http://ics.nxp.com/products/lpc1000/lpc1100/lpc11cxx/]


=== NPX LPC175X LPC176X ===
=== NXP LPC175X LPC176X ===
* Mikrocontroller mit Cortex-M3 Kern.
* Mikrocontroller mit Cortex-M3 Kern.
* 1 - 2 CAN Schnittstellen
* 1 - 2 CAN Schnittstellen

Version vom 25. Oktober 2012, 16:08 Uhr

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

Mikrocontroller mit CAN

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, 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).
  • 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
  • Freier CANopen stack: http://www.canfestival.org/


Atmel AT91SAM7X, AT91SAM7A

  • ARM7TDMI-Kern

Luminary Micro Stellaris LM3S8xxx

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

Microchip PIC18Fxx8 PIC18Fxx8x

Mitsubishi / Renesas R8C / M16C / M32C

R8C/23, M16C/6Nx

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.

Freescale MC9S08

  • D Serie


Freescale MC9S12

  • B, C, D, G und H Serie

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

NXP LPC175X LPC176X

NXP (ex. Philips) LPC2129 LPC2194 LPC2290 LPC2292 LPC2294

NXP LPC23xx

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

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

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

STMicroelectronics STR730 STR750

  • ARM7TDMI-Kern
  • 1-3 CAN Schnittstellen

STMicroelectronics STR910FM32, STR910FW32, STR911FM42, STR911FM44, STR912FW42, STR912FW44

  • 96MHz ARM966E-S CPU Kern

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

TI TMS470

  • ARM7TDMI-Kern

Toshiba TLCS-870/C

CAN Controller

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€)

Links

SJA1000

"Stand-alone" CAN-Controller von Philips

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

AN82526

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

  • Vorgänger des AN82527

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€)

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)

SAE81C9x

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

Bustreiber (CAN-Transceiver)

High-Speed

MCP2551

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

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€)

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€)

TJA 1041

TJA 1042

TJA 1043

TJA 1050

ATA6660

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

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:

Fault-Tolerant / Low-Speed

TJA1054

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

CAN Repeater

AMIS-42700

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...

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

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.

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

DS 36001M

Obsolete

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

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

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)

Links

Intern

CAN als Hausbus

Allgemein

Testboards

Dongles

Selbstbau Projekte

Fertiggeräte

Software

Protokolle

CANopen