CAN
Eine ausführliche Liste: http://www.mjschofield.com/devices.htm [dead]
[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, 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/
[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 STM8S20
- STM8 Kern [2] DIV/MUL -Befehle
- SPI mit automatischer CRC Berechnung
- 1 beCAN Schnittstelle CAN2.0B
- sehr preiswert (128 kFlash/6K RAM ) 3,30 bis 4,80 € ([3] aber SMD LQFP
[Bearbeiten] STMicroelectronics STR730 STR750
- ARM7TDMI-Kern
- 1-3 CAN Schnittstellen
[Bearbeiten] STMicroelectronics STR910FM32, STR910FW32, STR911FM42, STR911FM44, STR912FW42, STR912FW44
[Bearbeiten] Toshiba TLCS-870/C
"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,00€)
- 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.
- -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 mit standard Knoten
CAN Hub mit getrennten Rx und Tx Leitungen
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
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
- 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
- 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)
CAN als Hausbus
|