High-level protokoly na CAN sběrnici

Tento dokument obsahuje soubor poznámek a částí různých materiálů nalezených na internetu k jednotlivým protokolům. Nejedná se tedy o ucelený text, spíše jde o takový poznámkový blok, ve kterém jsem si chtěl uložit pohromadě základní informace k dané problematice. Proto se také nejedná o konečnou verzi textu, vždy když narazím na něco, co sem patří, budu se snažit tento text doplnit.

> > > - CAN Kingdom

> > > - J1939

> > > - OSEK

> > > - DeviceNet

> > > - Smart Distributed Systems

> > > - CAL/CAN Open

> > > - MilCAN

> > > - CANaerospace

> > > - ISO BUS (ISO11783)

> > > - CAN Calibration Protocol

CAN Kingdom

www.kvaser.se/canking/

Celý systém je přirovnán k království - říši - kingdom. Tato říše má hlavní město - capital s vládcem - king , který je zodpovědný za pravidla a řízení říše. V království pak jsou jednotlivá města, každé z nich má své správce - mayor. Všechny informace mezi obyvateli království jsou předávány poštovním systémem. Každé město má poštovní stanici s pošťákem.

Termíny používané ve specifikaci mají tyto významy:

Capital - King | Network Manager
Postal system | CAN bus, CAN protocol
City - Mayor | CAN node
Post Office - Postmaster | CAN controller
Envelope - Obálka | CAN ID
Letter - Dopis | CAN Message
Page - Stránka | CAN data block
Line - Řádek | CAN data byte

Dopis má vždy 1 obálku. Jedna stránka může mít 0 až 8 řádek.

Specifikace není kompletní, systémový designer dotvoří specifikaci dle požadavků konkrétního systému.

J1939

www.sae.org

Protokol je určen zejména pro nákladní automobily a autobusy.

Specifikace protokolu je tvořena těmito částmi:

- J1939/11 Physical Layer

- J1939/21 Data Link Layer

Obecné vlastnosti sběrnice CAN pro komunikaci jednotek v rámci hnacího řetězce vozidla.

- J1939/71 Application Layer

D efinice jednotlivých zpráv a jejich vlastnosti.

- identifikátor zprávy

- frekvenci nebo podmínky pro vysílání zprávy.

- uspořádání a kódování datové části.

- J1939/01 Truck & Bus overall doc.

- J1939/02 Agricult. overall doc.

- J1939/31 Network Layer

- J1939/81 Network Management

Přenosová rychlost je pevně stanovena na 250 000 bitů/s.

Datová část má vždy délku 8 bajtů.

Protokol využívá rozšířených identifikátorů, identifikátor má následující strukturu:

Bity ID | b28-b26 | b25 | b24 | b23-b16 | b15-b8 | b7-b0
V ýznam | Priority | Reserved | Data page | Data Content | PDU specific | Source Address

Data Content:

Value | PDU specific
0 - 239 | Destination Address
240 - 255 | Extended Data Content

Časový interval vysílání zprávy je určován s ohledem na důležitost obsažených informací a pohy-buje se od 10 ms (tj. vysílání 100-krát za sekundu) do 1 sekundy. Pro některé zprávy není perioda opakování určena, takové zprávy se vysílají jen na vyžádání (obvykle obsahují diagnostiku daného zařízení) nebo ve specifických případech (např. po zastavení motoru).

Datová část zprávy obsahuje aktuální hodnoty určených veličin. Zařízení, která zprávu vysílají, nemusí "vyplnit" všechny předpisem definované hodnoty, ale musí na jejich místě vysílat byte, jehož všechny bity mají hodnotu rovnou 1. To zajišťuje kompatibilitu stávajících i budoucích verzí jednotek připojených na CAN. Data o rozsahu větším než 8 bytů (např. informace o konfiguraci motoru) se vysílají v blocích po 8 bytech s tím, že před zahájením takového přenosu je vysílána speciální informační zpráva.

Celkem definuje předpis SAE J 1939 (verze z roku 1999) 145 zpráv, které specifikují přenos i ta-kových informací jako blokování immobilizéru, teplotu povrchu pneumatik a vozovky nebo lase-rové navádění tahače na přívěs.

Některé adresy jednotek v rámci hnacího řetězce vozidla:

00h .... motor

03h .... převodovka

0Bh .... ABS / ASR.

Většina jednotek vysílá několik různých zpráv (tj. zpráv s odlišnými identifikátory).

Současný motor obvykle vysílá následující periodické zprávy:

- Electronic Engine Controller #1, interval: 10 ms

- Electronic Engine Controller #2, interval: 50 ms

- Electronic Engine Controller #3, interval: 250 ms

- Cruise Control/ Vehicle Speed, interval: 250 ms

- Engine Temperature, interval: 1000 ms

- Ambient conditions, interval: 1000 ms

- Inlet/Exhaust conditions, interval: 1000 ms

- Engine configuration, interval: 1000 ms (rozsáhlá zpráva rozdělená do 4 bloků)

Příklad:

Zpráva EEC1

vysílá: motor

identifikátor: 0CF00400h

perioda: 10 ms

obsahuje hodnoty:

- kód zařízení, které aktuálně řídí kroutící moment motoru: volnoběh, pedál akcelerátoru, cruise-control, ABS, ASR, převodovka, omezovač rychlosti, omezovač otáček, omezovač kroutícího momentu...

- otáčky motoru: 0 - 8000 ot/min

- řidičem požadovaný kroutící moment (vyjádřený v procentech referenčního kroutícího momentu)

- aktuální kroutící moment (vyjádřený v procentech referenčního kroutícího momentu)

OSEK

www-iiit.etec.uni-karlsruhe.de/~osek

Osobní automobily.

DeviceNet

www.odva.org

Protokol využívá standardních 11 bitových identifikátorů. Identifikátory mají tuto strukturu:

Identifier bits | Idenity Usage
10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
0 | Group 1 Msg ID | Source MAC ID | Message Group 1
1 | 0 | MAC ID | Group 2 Msg ID | Message Group 2
1 | 1 | Group 3 Msg ID | Source MAC ID | Message Group 3
1 | 1 | 1 | 1 | 1 | Group 4 Msg ID | Message Group 4 (reserved for future use)
1 | 1 | 1 | 1 | 1 | 1 | 1 | X | X | X | X | Invalid CAN IDs

Smart Distributed Systems

www.honeywell.com/sensing/prodinfo/sds/

Tento protokol využívá standardního 11 bitového identifikátoru. Ten má následující tvar:

Pro DLC=0:

Identifier bits | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
Význam | Direction | Device Address | PDU type

Direction:

0 - Host to Guest

1 - Guest to Host

Device Address:

0 - 125

PDU type:

0 - Change of state OFF

1 - Change of state ON

2 - OFF Ack

3 - ON Ack

4 - Write OFF

5 - Write ON

6 - Write OFF Ack

7 - Write ON Ack

Pro DLC>0:

Identifier bits | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
Význam | Dir | Device Address | PDU type
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
RRE | 0 | R | OGID
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
Variable ID

RRE:

Request

Response

Error

0:

Fragment

OGID:

Object ID

Group ID

CAL/CAN Open

www.can-cia.de/icop.htm

www.ncl.ac.uk/~nrauto/canopen.htm

www.pp2can.wz.cz

CAL:

Flexibilní a vhodný pro uzavřené systémy.

Obsahuje 272 předdefinovaných standardních identifikátorů.

8 tříd priority.

CANopen:

CANopen je podmnožinou CAL

Navrženy komunikační profily pro IO a pohony.

MilCAN

Struktura identifikátoru je navržena tak, aby nekolidovala se zprávami ve formátu J1939. Následující tabulky porovnávají strukturu ID těchto protokolů.

MilCAN

Bity ID | b28-b26 | b25 | b24 | b23-b16 | b15-b8 | b7-b0
V ýznam | Priority | Reserved=1 | Request | Message Primary Type | Message Sub-Type | Source Address

SAE J1939

Bity ID | b28-b26 | b25 | b24 | b23-b16 | b15-b8 | b7-b0
V ýznam | Priority | Reserved=0 | Data page | PDU Format (Data Content) | PDU specific | Source Address

CANaerospace

http://www.ib-martin.com/

Letecká technika.

Identifikátory jsou děleny do 6 skupin dle priority:

Datová část pak má tuto strukturu:

ISO BUS (ISO11783)

http://www.isobus.net/

Komunikační standard založený na sběrnici CAN dle definice CAN 2.0 B určený pro zemědělské a lesnické stroje. Standard má tyto části:

- Part 1: General standard for mobile data communication

- Part 2: Physical layer

- Part 3: Data link layer

- Part 4: Network layer

- Part 5: Network management

- Part 6: Virtual terminal

- Part 7: Implement messages applications layer

- Part 8: Power train messages

- Part 9: Tractor ECU

- Part 10: Task controller and management information system data interchange

- Part 11: Mobile data element dictionary

- Part 12: Diagnostic

- Part 13: File Server

CAN Calibration Protocol

http://www.asam.de