CAN: Unterschied zwischen den Versionen
Zeile 108: | Zeile 108: | ||
* STM32F215 : 2 CAN Schnittstellen | * STM32F215 : 2 CAN Schnittstellen | ||
* STM32F217 : 2 CAN Schnittstellen | * STM32F217 : 2 CAN Schnittstellen | ||
Cortex M4 Core | Cortex M4 Core | ||
- [http://www.st.com/internet/mcu/subclass/1521.jsp?WT.ac=p2_bn_jun12_stm32f4series STM32F4 Hi-Performance and DSP] | - [http://www.st.com/internet/mcu/subclass/1521.jsp?WT.ac=p2_bn_jun12_stm32f4series STM32F4 Hi-Performance and DSP] | ||
* STM32F405 : 2 CAN Schnittstellen | * STM32F405 : 2 CAN Schnittstellen |
Version vom 6. Januar 2013, 17:31 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
- Mikrocontroller mit CAN Schnittstelle
- Herstellerseite
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
- Mikrocontroller mit Cortex-M3 Kern.
- 1 - 2 CAN Schnittstellen
- Herstellerseite: Philips Semiconductors
- Demoboard mit LPC-1766 erhältlich bei thinkembedded
NXP (ex. Philips) LPC2129 LPC2194 LPC2290 LPC2292 LPC2294
- Mikrocontroller mit ARM7TDMI-S-Kern (vgl. LPC2000 Philips ARM7TDMI-Familie)
- 2 - 4 CAN Schnittstellen
- CAN-Modul angelehnt an Philips SJA1000 (aber mit recht langer und deftig gewürzter Bug-Liste)
- Herstellerseite: Philips Semiconductors
- LPC2194 erhältlich bei http://www.microcontroller-starterkits.de und http://de.digikey.com/
- CANopen software protocol stacks at [2]
NXP LPC23xx
- Mikrocontroller mit ARM7TDMI-S-Kern (vgl. LPC2000 Philips ARM7TDMI-Familie)
- 2 CAN Schnittstellen
- Demoboard mit LPC-2378 erhältlich bei thinkembedded
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
- von NXP (ex. Philips)
- SO14
- VCC = 4,75...5,25V
- Standby, Sleepmode
- 1 MBit/s
- -27..+40V
- Automatische Einstellung der I/O Pegel
- Erwetierte Diagnosefunktionen
- "Listen only"-Mode
- 2. Generation
- http://www.nxp.com/documents/data_sheet/TJA1041A.pdf
TJA 1042
- von NXP (ex. Philips)
- SO8
- VCC = 4,5...5,5V auch als 3V I/O Version
- Standby
- -27..+40V
- +-8kV ESD, verträgt dauerhaft +-58V auf den CAN-BUS
- 3. Generation (bessere EMC und EMI Daten)
- http://www.nxp.com/documents/data_sheet/TJA1042.pdf
TJA 1043
- wie TJA1041 (bessere EMC, ESD Eigenschaften und geringerer Ruhestrom)
- SO14
- Standby, Sleepmode
- -58..++58V
- +-8kV ESD, verträgt dauerhaft +-58V auf den CAN-BUS
- 3. Generation
- http://www.nxp.com/documents/data_sheet/TJA1043.pd
TJA 1050
- ABGEKÜNDIGT!
- von NXP (ex. Philips)
- SO8, pinkompatibel
- VCC = 4,75...5,25V
- 3. Generation, Nachfolger der PCA82C25x
- http://www.semiconductors.philips.com/pip/TJA1050
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
- Dual High-Speed CAN Transceiver
- High speed (up to 1Mbit/s)
- SOIC-20
- vgl. http://www.mikrocontroller.net/topic/53799
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
- 16 Port-Pins mit unterschiedlichen Konfigurationsmöglichkeiten
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.
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
- Vector-Informatik CANscope (Pegeltester) http://www.vector-informatik.de/deutsch/ - ca. 3300EUR
- Gemac CBT (CanBusTester) testet auch Pegel, Reflexionen ... (Treiber etc. etwas ältlich, von 2002, was ist mit Weiterentwicklung?), auch leihweise http://www.gemac-chemnitz.de/pages/d_html/produkte/bus-tester/new-de-can-bust.html http://www.brandt-data.de/canbus/can_intro.html - ca. 2400EUR
- ixxat bietet ebenfalls den Gemac-cbt an, auch leihweise
- QCANObserver http://qcanobserver.sourceforge.net/ CAN Debugger mit ähnlichen Fähigkeiten. Derzeit läuft die Entwicklung nur noch unter Linux. Freie Software (GPL)
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
Allgemein
- CAN-WIKI - spezielle Wiki Site für CAN bus (Englisch)
- Wikipedia - CAN
- Grundlagen zum CAN-Bus - Kurze Zusammenfassung der Funktionsweise und Einsatzmöglichkeiten vom CAN-Bus
- CAN - Controller_Area_Network (Czech)
- CAN in 30 minutes or less - A quick-and-dirty guide to tuning your CAN interface and simplifying your design by Hassane El-Khoury at www.embedded.com
- Einführung in CAN - kostenloses E-Learning Angebot
Testboards
- AT90CAN Testboard by www.jtronics.de (aktualisiert 2010)
- universal Testboard - CAN RS232 SPI I2C
- ATmega8 CAN Testboard und MCP2515 Tutorial
- Olimex AVR-CAN mit AT90CAN128
Dongles
Selbstbau Projekte
- Can200 Linux Project von Martin Homuth-Rosemann CAN Businterface am Parallelport (LPT). Mit SJA1000.
- USB<>CAN Bus Interface mit AVR ATmega162 Open Source. Mit ATmega162, FT245 und SJA1000.
- CAN Bus HUB
- CAN-Interceptor von Martin S. Mit R8C/23 und FT232R.
- USBtin - Simple USB to CAN interface von Thomas Fischl Mit PIC18F14K50 und MCP2515. Bausatz verfügbar (24,50 EUR).
Fertiggeräte
- Tiny-CAN USB-CAN-Adapter von MHS-Elektronik Ab 60,- EUR. Open Source CAN-Monitor für Windows und Linux.
- CANvu - CAN-Display-Produkte von CANtronik
- CAN/LIN nach USB Adapter von KOPF GmbH Ab 320,- EUR
- PC/CAN-Interfaces von IXXAT Automation GmbH ca. 200 EUR
- CAN-Interfaces von Peak-System Ca. 200 EUR
- USB to CAN Bus Interface von EMS Dr. Thomas Wünsche Ca. 180 EUR
- USB-CANmodul Serie von SYS TEC electronic mit Unterstützung von 1, 2, 8, oder 16 CAN Kanälen (ab 129,- EUR)
- USB2CAN USB to CAN bus galvanic isolated converter von 8devices Ab 65,- EUR. Open source interface DLL and software.
- canusb USB<>CAN über V24-Treiber und RS232/V24<>CAN Bus Interface von Lawicel.
- CAN-LAN-Bridge von PORT mit ARM und Linux
- CAN-USB Gateway und CAN-Ethernet Gateways von AnaGate LowCost Lösung und Professionelle Varianten mit Linux System für eigene Anwendungen mit 1,2 und 4 CAN-Ports (Shop)
- PP2CAN LPT-CAN Interface, CAN2MMC Datenlogger (CAN,RS232-GPS) und USB2CAN USB2CAN USB-CAN Interface 80 EUR von CANLAB
- CANHACK CANUSB Interface High Speed CAN + OBD2 inkl. CAN Monitor. 79,- EUR. (noch aktuell?)
Software
- BUSMASTER - Open Source CAN-Bus Analyzer von ETAS/BOSCH
- CAN Monitor für Lawicel CANUSB, Zanthic CAN-4-USB-FX/MCP2515 und MHS-Elektronik Tiny-CAN
- CAN Monitor und Tracer für Peak USB, Lawicel CANUSB+CAN232 und kompatible
- GNU – Open Source CAN Monitor, Makro und Filter Funktion, Plugin fähig, unter GTK+ entwickelt
- wireshark - Netzwerk Protokoll Analyse Tool, unterstützt via socket-CAN CAN und CANopen