CAN
Eine ausführliche Liste: http://www.mjschofield.com/devices.htm
[bearbeiten] Mikrocontroller mit CAN
- 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
[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] NXP (ex. Philips) LPC2129 LPC2194 LPC2290 LPC2292 LPC2294
[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
"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€)
"Stand-alone" CAN-Controller von Philips
- Parallele Schnittstelle ca. 12 Leitungen
- erhältlich z.B. bei Reichelt (ca. 4 Euro)
"Stand-alone" CAN-Controller von Intel (entwickelt von Bosch)
"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)
- 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)
- von Microchip
- PDIP8 und SOIC
- VCC = 4,5...5,5V
- kostet rund 1€
- 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€)
- 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€)
- von Atmel
- SO8
- VCC = 4,75...5,25V
- von Texas Instruments
- SO8
- VCC = 3,0V...3,6V
- erhältlich z.B. bei Reichelt (SN65HVD230, SN65HVD231)
[bearbeiten] Fault-Tolerant / Low-Speed
- von NXP (ex. Philips)
- bis 125 "kBaud"
- SO14
- ähnliche Funktionen, gleicher Hersteller: TJA1053, TJA1055
- zwei Transceiver
- Schaltung
- Anmerkung: Diese Schaltung ist Quatsch und funktioniert nicht.
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.
- 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
Obsolete
Datenblatt
- 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
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)
CAN als Hausbus
|