“”

Bit Timing

Produktfinder »

Formular zur Berechnung der CAN Timingregister

Füllen Sie bitte die beiden Eingabefelder aus. Sie spezifizieren damit Ihre benutzte Taktfrequenz am CAN Controller und die von Ihnen geforderte Lage des "Sample-Point" in Prozent. CANopen legt den Abtastpunkt typischerweise auf 87.5 Prozent.  Die folgende Tabelle gibt einen Überblick zu den empfohlenen Werten für die Berechnung der Bit-Timing Register:

 Übersicht der empfohlenen Werte für die Berechnung der Bit-Timing Register entsprechend Standard CiA-301 V4.2

Bit Rate

Nominal bit time

tb

Valid range for location of sample point

Recommended location of sample point

1 Mbit/s

1 µs

75% to 90%

87,5%

800 kbit/s

1,25µs

75% to 90%

87,5%

500 kbit/s

2µs

85% to 90%

87,5%

250 kbit/s

2µs

85% to 90%

87,5%

125 kbit/s

2µs

85% to 90%

87,5%

50 kbit/s

2µs

85% to 90%

87,5%

20 kbit/s

2µs

85% to 90%

87,5%

10 kbit/s

2µs

85% to 90%

87,5%

Anschließend betätigen Sie den Knopf zum Absenden Ihrer Daten. Zurück kommt hoffentlich eine Tabelle mit brauchbaren Werten für Sie. Die Tabelle für den SJA1000-Mode (Like Philips or Intel) können Sie auch für CAN Controller:

  • Philips 82C200, SJA1000
  • Intel 82527
  • Infineon (Siemens) C167CR, C515C, XC161C, XC164C, TwinCAN SAK82C900
  • SPANSION (berichtet von Ralf Ebeling) und bestätigt durch eigene Erfahrung mit MB9054x Controllern
  • Dallas 80c390 Dual CAN
  • Toshiba TCAN
  • Freescale msCAN (HCS12)
  • Renesas RL78F (RSCAN)

nutzen, oder Sie wählen die Berechnung für:

  • das Freescale TouCAN Modul,
  • den Texas Instruments TMS320 (TMS320F2407,TMS320F28xx),
  • den NEC aFCAN (V78K0,V850),
  • das ATMEL CANary Modul (AT90CAN128, 89C51),
  • das ATMEL AT91SAM9263 Modul (auch für AT91SAM7A3, AT91SAMX),
  • the BOSCH C_CAN Modul (C8051xxx, MB96xxx, STR7xx, STR9xx...),
  • den Microchip CAN/ECAN Controller (PIC18F, dsPic30, dsPic33),
  • den Renesas M16C/29,
  • den Renesas M32C/87 CAN controller
  • den Renesas RCAN (H8SX).
  • den RENESAS RSCAN
CAN Rate
in MHz, von 1 bis 300. Benutzen Sie den Wert am Eingang des BaudRatePrescaler BTR, nicht die Taktfrequenz der CPU (für einen an 16 MHz angeschlossenen SJA1000 benutzen Sie '8').
Sample-Point is:
in %, von 10 bis 90 (87.5 % ist der von CANopen und DeviceNet benutzte Wert).





Oft wird gefragt: Was ist überhaupt der sample point?
Das folgende Bild zeigt die Aufteilung eines Bits der CAN Nachricht, so wie es die ISO-11898 definiert.

sampling point


Sync_Seg:1 tq
Prop_Seg + Phase_Seg1:1 .. 16 tq
Phase_Seg2:1 .. 8 tq
(Die Berechnung der obigen Tabelle benutzt Prop_Seg = 0)


Eine detallierte Betrachtung zur Einstellung des CAN Bit-Timing können Sie einem Beitrag zur Internationalen CAN Konferenz von Florian Hartwich und Armin Bassemir von Robert Bosch entnehmen: The Configuration of the CAN Bit Timing.

Prinzipiell wird die Dauer eines Bits im CAN Telegramm in vier Segmente unterteilt. Jedes Segment besteht aus einer bestimmten Anzahl von Time-Quanta - tq- kleinsten Zeiteinheiten.

  • SYNC_SEG ist 1 Time Quantum lang.
    Es wird zur Synchronisation der verschiedenen Bus-Knoten verwendet.

  • PROP_SEG ist programmierbar im Bereich von 1, 2,... 8 Time Quanta Längen. Es wird zur Kompensation der Signalverzögerung im CAN Netzwerk benutzt.

  • PHASE_SEG1 ist programmierbar im Bereich von 1,2, ... 8 Time Quanta Längen. Dieses Segment wird zur Kompensation von Flankenfehlern benutzt und kann sich während einer Resynchronisation verlängern.

  • PHASE_SEG2 ist normalerweise so lang wie PHASE_SEG1 plus Zeit für die Informationsverarbeitung. Auch dieses Segment wird zur Kompensation von Phasenfehlern durch die Anstiegsflanken benutzt. Es kann sich während einer Resynchronisation verkürzen. Daher muß PHASE_SEG2 mindestens so lang sein, wie der Wert für SJW.

  • Zeit für die Informationsverarbeitung ist kleiner oder gleich 2 Time Quanta.
  • Die maximale Anzahl der Time Quanta eines Bit beträgt zwischen 8 und 25.

Die Programmierung des Sample Point erlaubt die Optimierung des Bit Zeitverhaltens: Ein Sample Point in der Nähe des Bit-Endes erlaubt eine große Busausdehnung, lange Kabel. Ein früher Sample Point erlaubt flache Anstiegsflanken.

TouCAN

Das TouCAN Modul benutzt drei Register zur Programmierung des geforderten Bit-Timings. Control Register 1 und 2 (CANCTRL1, CANCTRL2) enthalten die Werte für PROPSEG = PROP_SEG( Bit 0-3 in CANCTRL1), PSEG1 = PHASE_SEG1 (Bit 3-5), PSEG2 = PHASE_SEG2 (Bit 0-2) und RJW (Bit 6-7 in CANCTRL2). Das Prescaler Divide Register (PRESDIV) erlaubt die Auswahl eines geeigneten Teilerverhältnisses für die Eingangsfrequenz des Timinggenerators aus dem Systemtakt. Für die Lage des Sample Point ist das Verhältnis aus (SYNC_SEG + PROP_SEG + PHASE_SEG1) / (PHASE_SEG2) ausschlaggebend. Die genaue Ableitung des Wertes für PROPSEG = PROP_SEG hat eher akademische Bedeutung und wird vom Programm nicht vorgenommen. Es erfolgt die Ausgabe der Werte für PRESDIV, PROPSEG, PSEG1 und PSEG2.

SJA1000

Der SJA 1000 benutzt nur 2 Register zur Programmierung des geforderten Bit-Timings. Ein Register für den Vorteiler BTR0 und ein Register für die Werte von PHASE_SEG1 und PHASE_SEG2. PHASE_SEG1 wird hierbei für die Festlegung von (PROP_SEG + PHASE_SEG1) nach CAN Spezifikation verwendet.

Für 125 kbit/s und 16 tq bei 16 (8)Mhz - sja100
BTR0 = 3, BTR1 = 1C.
Für 125 kbit/s und 16 tq bei 20 (10)Mhz - C515C
BTR0 = 4, BTR1 = 1C

CANary

Auch das CANary Modul, welches ATMEL z.B. im T89C51 und CAN-AVR verwendet, benutzt zwei Register zur Programmierung des geforderten Bit-Timings und ein Register für den Vorteiler, ähnlich wie das TouCAN Modul von Freescale - CANBT1, CANBT2 und CANBT3. CANBT1 enthält BRP, den Bit-Timing Vorteiler in den Bits 1-6, Wertebereich 0-63, CANBT2 das Programming Time Segment PRS = PROP_SEG (Bit 1-3) und CANBT3 die Werte für PHS1 = PHASE_SEG1 (Bit 1-3) und PHS2 = PHASE_SEG2 (Bit 4-6 in CANBT3).

Es erfolgt die Ausgabe der Werte für BRP, PRS, PHS1 und PHS2.

Für 125 kbit/s und 16 tq bei 16 (8)Mhz
BRP = 3, PRS = 4, PHS1 = 7, PHS2 = 1

AT91SAM9263

Diese Informationen gelten in gleicher Weise auch für den AT91SAM7A3 und den AT91SAM7X.

Der CAN Controller, der in diesen Atmel Deviraten implementiert wurde, hat eine Informationsverarbeitungszeit von 2tq (IPT=2tq). Daher das das Phase2 Segment nicht kleiner als 2 sein.

Register: CAN_BR

31 30 29 28 27 26 25 24
- - - - - - - SMP=0
23 22 21 20 19 18 17 16
- BRP
15 14 13 12 11 10 9 8
- - SJW=0 - PROPAG
7 6 5 4 3 2 1 0
- PHASE1 - PHASE2

TMS320

Texas Instruments benutzt bei den zwei Familien die 24xx und 28xx die Bit Timing Register leicht unterschiedlich. Die 240xA Fmilie benutzt zwei 16-bit Register. Im BCR2 sind die unteren 8-bit für die Programmierung des Vorteilers. BCR1 enthält die Werte von TSEG1 (4-bit) und TSEG2 (3-bit) in den unteren Bits 0-6. Die Familien 281x und 280x benutzen das 32-bit Register BTC für jede Timing Konfiguration. Der Wert für BTC ist zusammengesetzt aus BCR1 und BCR2 : (BCR2 << 16) | BCR1.

Beachten Sie biite, dass der CPU-Takt im direkten Zusammenhang zu dem CAN Modul steht (max. 150 MHz für 281x).

Es gibt eine Besonderheit bei der Generierung von niedrigen CAN Bitraten zu berücksichtigen für High-Speed Controller. There is currently an issue for the high speed controllers in generating low CAN bit rates. Für einen Takt SYSCLKOUT von 150 MHz, ist die kleinst-mögliche Bitrate 23,4 kbps.

Microchip PIC18F

Microchip benutzt im PIC18F drei 8bit Register. BRGCON1 enthält den Prescaler, BRGCON2 die Propagation und Phase Segment 1 Bits und BRGCON3 die Phase Segment 2 bits. Letztere werden allerdings nur genutzt, wenn SEG2PHTS (BRGCON2, bit7) gesetzt ist.

Microchip MCP2510

Anwender des MicroChip MCP2510 finden auf der Intrepics Web Site ein freies Tool zur Bit-Timing Berechnung.

Bosch C_CAN

Der C_CAN CAN Controller von Bosch ist in verschiedenen CPUs integriert. Daher werden BTR0 und BTR1 getrennt ausgewiesen. Häufig werden diese jedoch als 16bit Wert konfiguriert.
Bittiming Register = (BTR1 << 8) | BTR0


Bittiming Register

  15 14 13 12 11 10 9 8
BTR1 - TSeg2 TSeg1
  7 6 5 4 3 2 1 0
BTR0 SJW=0 BRP