Controller Area Network



Hasonló dokumentumok
Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.

Járműfedélzeti rendszerek II. 6. előadás Dr. Bécsi Tamás

Járműfedélzeti kommunikáció. Controller Area Network Dr. Aradi Szilárd

Autóipari beágyazott rendszerek. Local Interconnection Network

I+K technológiák. Buszrendszerek Dr. Aradi Szilárd

Járműfedélzeti hálózatok. Fedélzeti diagnosztikai protokollok Dr. Aradi Szilárd

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

Számítógépes Hálózatok. 4. gyakorlat

A CAN hálózat alapjai

CAN BUSZ ÁLTALÁNOS ISMERTETŐ

Rendszertervezés házi feladat

Járműinformatika Multimédiás buszrendszerek (MOST, D2B és Bluetooth) 4. Óra

Számítógépes Hálózatok. 5. gyakorlat

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Autóipari kommunikációs protokollok a CAN

Autóipari beágyazott rendszerek CAN Controller Area Network

Tájékoztató. Használható segédeszköz: -

Lokális hálózatok. A lokális hálózat felépítése. Logikai felépítés

Járműfedélzeti rendszerek II. 8. előadás Dr. Bécsi Tamás

I+K technológiák. Digitális adatátviteli alapfogalmak Aradi Szilárd

Tájékoztató. Használható segédeszköz: számológép, rajzeszközök

Programozási segédlet DS89C450 Fejlesztőpanelhez

I+K technológiák. Beágyazott rendszerek 3. előadás Dr. Aradi Szilárd

Roger UT-2. Kommunikációs interfész V3.0

Billentyűzet. Csatlakozók: A billentyűzetet kétféle csatlakozóval szerelhetik. 5 pólusú DIN (AT vagy XT billentyűzet csatlakozó),

2.5 Soros adatkommunikációs rendszerek CAN (Ötödik rész)

Autóipari beágyazott rendszerek. A kommunikáció alapjai

Járműinformatika bevezetés. 1. Óra

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Irányítástechnika Elıadás. PLC rendszerek konfigurálása

loop() Referencia:

Modbus kommunikáció légkondícionálókhoz

Számítógépes Hálózatok 2012

I 2 C, RS-232 és USB. Informatikai eszközök fizikai alapjai. Oláh Tamás István

4. Hivatkozási modellek

Számítógépes Hálózatok. 7. gyakorlat

Kommunikáció. 3. előadás

Az adatkapcsolati réteg

Adatkapcsolati réteg 1

Vezetéknélküli technológia

13. KOMMUNIKÁCIÓS HÁLÓZATOK

Számítógépes Hálózatok. 5. gyakorlat

Szállítási réteg (L4)

XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL

Tartalom. Az adatkapcsolati réteg, Ethernet, ARP. Fogalma és feladatai. Adatkapcsolati réteg. A hálókártya képe

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

1 Járműipari hálózatok

Járműinformatika. 2. Óra. Kőrös Péter

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Autóipari beágyazott rendszerek. FlexRay

JÁRMŰIPARBAN GYAKRAN ALKALMAZOTT FEDÉLZETI BUSZOK 1. BEVEZETÉS

Számítógépes Hálózatok 2010

ADATKAPCSOLATI PROTOKOLLOK

Terepi buszrendszerek összehasonlítása jegyzet az Épületinformatika cím tárgyhoz

Hálózati Architektúrák és Protokollok GI BSc. 3. laborgyakorlat

Számítógép hálózatok gyakorlat

Bevezetés. Számítógép-hálózatok. Dr. Lencse Gábor. egyetemi docens Széchenyi István Egyetem, Távközlési Tanszék

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

Az interrupt Benesóczky Zoltán 2004

Járműfedélzeti kommunikáció. Dr. Aradi Szilárd

2016/11/29 11:13 1/6 Digitális átvitel

Kameleon Light Bootloader használati útmutató

Procontrol RFP-3. Műszaki adatlap. Rádiótransceiver / kontroller 433 vagy 868 MHz-re, felcsavarható SMA gumiantennával. Verzió:

Programozható logikai vezérlők

Számítógépes hálózatok

MACAW. MAC protokoll vezetéknélküli LAN hálózatokhoz. Vaduvur Bharghavan Alan Demers, Scott Shenker, Lixia Zhang

5. Hét Sorrendi hálózatok

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

LED DRIVER 6. 6 csatornás 12-24V-os LED meghajtó. (RDM Kompatibilis) Kezelési útmutató

7. Adatkapcsolati réteg

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

ZL180 Kétmotoros vezérlés 24V-os mototokhoz

Hálózati ismeretek. Az együttműködés szükségessége:

INVERSE MULTIPLEXER RACK

Számítógépes Hálózatok és Internet Eszközök

Számítógépes Hálózatok 2008

Az I2C egy soros, 8 bit-es, kétirányú kommunikációs protokoll, amelynek sebessége normál üzemmódban 100kbit/s, gyors üzemmódban 400kbit/s.

Busz... LAN. Intranet. Internet Hálózati terminológia

Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Járműfedélzeti rendszerek II. 6. előadás Dr. Aradi Szilárd

Számítógépes Hálózatok 2008

Az Internet működésének alapjai

IDAXA-PiroSTOP. PIRINT PiroFlex Interfész. Terméklap

Az Ethernet példája. Számítógépes Hálózatok Az Ethernet fizikai rétege. Ethernet Vezetékek

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

GoWebeye Monitor Release Üzenetküldés

Hálózatok II. A hálózati réteg torlódás vezérlése

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

Számítógépes Hálózatok és Internet Eszközök

8.3. AZ ASIC TESZTELÉSE

2-VEZETÉKES KAPUTELEFON RENDSZER Telefonos illesztő / Telefonhívó modul. VDT-TPC Felhasználói és telepítői kézikönyv VDT-TPC. VDT-TPC Leírás v1.0.

Felhasználói kézikönyv MC442H típusú léptetőmotor meghajtóhoz

Számítógép felépítése

AF hangú kód adó-vevő. Fő jellemzők:

Firmware frissítés (ROM Update)

Informatikai eszközök fizikai alapjai Lovász Béla

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

13. Egy x és egy y hosszúságú sorozat konvolúciójának hossza a. x-y-1 b. x-y c. x+y d. x+y+1 e. egyik sem

Átírás:

Controller Area Network A CAN és a többi komm. és busz protokol az elektronikus szabályozó berendezések számának növekedése miatt jött létre. ( Motor vezérlő, ABS, átvitel vezérlés, aktív berendezések, műszerfal, világítás, légkondicionáló, elektromos zárak, elektronikusan állítható ülések, elektromos ablak, légzsák.) Emiatt az autókban a több mérföldnyi kábel és a csatlakozók kavalkádja bonyolult rendszert alkotott. A CAN segítségével, tehát a pontról pontra írás alkalmazásával az összes vezérlő berendezés egy vagy több soros busz használatával összekapcsolható. Emiatt az összes berendezést el kellett látni néhány speciális CAN-es hardverrel, hogy tudjon a buszon információt továbbítani, és fogadni. A CAN egy fejlett soros busz rendszer, amely hathatósan támogatja az elkülönített vezérlőrendszereket. Eleinte 1980-ban a Bosch Németországban motorok hajtására fejlesztette ki. A CAN egy multi-masteres rendszer nyílt vonali struktúrával egyetlen logikai busz vonallal, és egyenrangú csomópontokkal. A buszhoz való hozzáférést a Carrier Sense Multiple Access Collision Detecton with Non-Destructive Arbitration protokol határozza meg. Ez az azt jelenti, hogy az üzenetek ütközését időveszteség nélkül elkerüli az arbitrációval. A CAN protokollban a busz csomópontjainak nincs speciális címe. Helyette, a címinformációt a küldött üzenet azonosítója tartalmazza (ill. az üzenet tartalmát, és a prioritását). Igy multicasting és broadcasting is lehetséges a CAN-nel. A CAN jellemzői: -alacsony költségek -magas megbízhatóság -valós idejü rendszer -flexibilis -gyors Alacsony költségek:- protokoláris eszközök olcsón hozzáférhetők az autóiparbeli, és ipari tömeges használata miatt - jó ár/teljesítmény arány - az olcsó csavart ér-pár Megbízható: - Kifinomult hibaérzékelés és hibakezelés - Védett az elektromágneses zavarok ellen. - Hibás üzenet automatikus visszajelzése - Átmeneti hibák érzékelése - Automatikusan lekapcsolja a hibás csomópontokat - Garantált adat összefüggés Valós idejű: - magas baud rate: 1000 Kbit/sec maximum 40 m hosszú csavart érpáron - rövid üzenethossz: üzenetenként maximum 8 adatbájt lehetséges. - rövid átfutási idő az adás kérése, és a kért üzenet küldése között. - multi-master - arbitráció Flexibilis: - A csomópontok számát nem limitálja a protokol (csak a fizikai rétegnél.) - A változtatások a kommunikáció megszakítása nélkül lehetségesek. A címinformációt az üzenet identifikációja tartalmazza. Gyors: - Max 8 bájt hosszúságú üzenetek - Busz hozzáférés prioritizált - 1 Mbps baud rate

Alkalmazás: - autóipar - ipar különböző szegmensei - gépkocsikban - teherautókban - ipari automatizálásban - vonatoknál - gyógyászati berendezésekben - automatikus berendezések építésében - háztartási készülékekben - iroda automatikában. 1998-ban világszerte kb. 100 millió új CAN állmást installáltak. A 2002-es évben installált új csomópontok száma becslések szerint évente 170 millióval fog nőni. A CAN nyilvánvalóan a vezető járművekben alkalmazott protokol Európában, és az USA-ban is egyre népszerűbbé válik. A CAN-t nemzetközileg szabványosította a Nemzetközi Szabványosito Hivatal (ISO) és a SAE(Society of Automotive Enginers). A CAN protokoll az adatkapcsolati réteget és a fizikai réteget köti meg az ISO/OSI-ban. Vannak magasabb szintű protokollok is, amikkel kompatíbilis: CAN open, Device Net, Smart Distributed Systems, J1939. A CAN protokoll verziói: Az eredeti CAN specifikációkat a 1.0, 1.2 és a2.0a verziók írják le. Ezek az üzenet azonosítóját 11 bitesnek definiálták. Ez a normál ("Standard CAN"). Azokat az adat és remote frame-eket tehát, amelyek 11 bites azonosítót tartalmaznak, normál, standard frame-eknek nevezzük. Így 2048 különféle üzenet azonosítható, a 0.-tól a 2047.-ik azonosítóig. Bár a 16 legalacsonyabb prioritású üzenet, a 2032-től a 2047-ig későbbi felhasználásra fenntartott. A 2.0A verziót frissítették 2.0B-re, hogy megnöveljék a lehetséges üzenetek számát. A 2.0B-t megváltoztatták kiterjesztett (Extended) CAN-re. A kiterjesztett frame-eknek 29-bites azonosítójuk van, ami több mint 536 millió különböző üzenet-azonosítót enged meg. A 29-bit két részből áll össze, egy 11 bites bázis-azonosítóból, és egy 18 bites kiterjesztettazonosítóból. A 2.0B CAN specifikáció is lehetővé teszi a 11 bit hosszúságú azonosító használatát. A 2.0A-hoz tartozó modulok csak normál üzenetek küldését és fogadását teszik lehetővé. Ha egy olyan üzenetet küldünk egy standard állomásnak, amelynek az azonosítója 29 bites, az hibához vezet. A 2.0B protokollhoz tartozó eszközöknek nincs ilyen megkötése. Vannak olyan modulok, amelyek csak normál üzenetek fogadásra, illetve küldésére alkalmasak, de tolerálják a kiterjesztett üzeneteket is hibagenerálás nélkül. Ezekez a 2.0B Passive protokol definiálja. A V2.0B Active eszközök normál és kiterjesztett üzenetek kezelésére is alkalmasak. A fizikai réteg: A CAN fizikai rétegének működése: - üzenetkódolás - szinkronizáció - bit időzítés - bit felépítés - bit feltöltés - CAN busz vonalak - busz struktúrák

- a felhasználható közeg - a szokásos alkalmazások - az elektromágneses zavarok ellen való érzéketlenség Kétféle busz állapot van, domináns és recesszív. A busz logika huzalozott-és mechanizmust használ, ami azt jelenti, hogy a domináns bit, vagyis a 0 szint felülirja a recessive, 1-es szintet. Az üzenetkódolás: A CAN protokoll Non-Return-to-Zero, vagy NRZ bit kódolást alkalmaz. Ez azt jelenti, hogy a jel is egy bit ideig konstans, és csak egy idő szegmens szükséges egy bit kifejezésére. Általában, de nem mindig a "0" szint felel meg a domináns bitnek, és az "1"-es szint a recesszív bit. Hard szinkronizáció: Sok terepi busz-rendszerrel ellentétben a CAN szinkron adatátvitelt használ. Az összes üzenet kezdőbitjének első lefutó éle szinkronizálja az összes csomópontot. Ezt hívjuk Hard szinkronizációnak. Szükséges az állomás újraszinkronizációja is, ha üzenetet küld. Az újraszinkronizáció: A helyes mintavételezés biztosításához a CAN állomásnak az egész frame-en át szükséges az újraszinkronizáció. Ezt minden recesszívről domináns szintre váltás elvégzi. A bit időzítés: Egy CAN bit idő - az NRZ kód egy alacsony, vagy magas impulzusa -, négy nemátlapolt idő szegmensből áll. Minden szegmens, váltakozva az időkvatum egész számú többszöröséből áll. A TQ (időkvantum) a legkisebb diszkrét időzítés-felbontás, amit a CAN állomás használ. Ennek a hosszát a CAN állomás oszcillátor frekvenciájának egy programozható osztója generálja. Ez minimum 8, maximum 25 időkvantum bitenként. Az időkvantum szélességének és a különböző szegmensekben az időkvantumok számának programozása határozza meg a bit időt, és a bit rátát is. A CAN bit első szegmense, a szinkronizációs szegmens szinkronizálja a különböző busz csomópontokat. Átvitelkor a kimeneti állapot ennek a szegmensnek a kezdetekor ismétlődik. Ennek a szegmensnek a hossza mindig egy időkvantum. A terjedési idő szegmenst (propagation time) arra használjuk, hogy a jelkéséseket kikompenzáljuk a hálózaton. Ezeket a késéseket a jel busz vonalon való terjedésének késése és az interfész áramkörök okozzák. Ez a szegmens minimum 1, maximum 8 időkvantum hosszúságú. A fázis puffer szegmensei közül az első kettő az él fázis hibák kompenzálására szolgál. Ezek a szegmensek rövidülhetnek, illetve hosszabbodhatnak az újraszinkronizáció során. Az 1. fázis puffer szegmens 1 és 8 közötti időkvantum hosszúságú lehet, a második fázis puffer szegmens az 1. fázis puffer szegmens maximuma és az információ feldolgozási ideje, ami a példa ponttal(sample point) kezdődő idő szegmens. Ez a következő bit szint számolására van fenntartva, és kevesebb, vagy egyenlő, mint két időszegmens. A példa pont az időnek azon pontja, ahol a busz szintjét úgy olvassa, és értelmezi, mint a saját bitjének értékét. Ennek a két fázis puffer szegmens között van a helye. Az újraszinkronizálás eredményeképpen a fázis puffer szegmens 1. hosszabbodhat, vagy a fázis puffer 2 rövidülhet, hogy kompenzálja a különböző CAN állomások oszcillátor toleranciáit. Ha például az adó oszcillátor frekvenciája gyorsabb, mint a vevő oszcillátora, késleltetheti a következő lefutó élt, ami az újraszinkronizálásra való. Másrészről ha az adó oszcillátora lassúbb, mint a vevő oszcillátora,

akkor a következő újraszinkronizálásra használt lefutó él korai lehet. Ezért az n-edik bit fázis puffer szegmens 2-je rövidül, hogy eligazítsa az n+1-edik bit példa pontját, és a bit idő végét. A fázis puffer szegmenseinek rövidülésének és hosszabbodásának van egy felső határa, amit meghatároz az újraszinkronizáló ugrás szélesség. Az újraszinkronizáló ugrás szélesség 1 és 4 közötti időkvantum hosszúságú lehet, de nem lehet hosszabb, mint a fázis puffer 2. Sok CAN modult úgy valósítanak meg, hogy a terjedési idő szegmenst és a fázis puffer szegmens 1-et egyetlen Időzítő Szegmenssé kombinálják össze a könnyebb programozhatóság érdekében. A fázis puffer 2 ilyenkor Időzítő Szegmens 2-ként ismeretes. A példa pont programozása megengedi a karakterisztika beszabályozását a busznak megfelelően. Korai mintavételezés megenged több időkvantumot a fázis puffer 2-ben, és ezért a szinkronizáló ugrás szélesség beprogramozható a maximális 4 időszegmensre. A bit idő rövidítésének, és hosszabbításának maximális kapacitása megnöveli az állomás oszcillátor toleranciához tartozó érzékenységét, így olcsóbb oszcillátorokat is használhatunk, mint például a kvarc. A késői mintavételezés több időkvantumot enged meg a terjedési idő szegmensben, de gyengébb minőségű busz-topológiát, és rövidebb busz hosszt engedélyez. Bár ilyenkor pontosabb oszcillátorra van szükség. A maximális CAN busz sebesség 1 MBaud. Ilyenkor a busz hossza maximum 40 méter lehet. 40 méternél hosszabb busz esetén csökkenteni kell az átviteli sebességet. Például egy 1000 méter hosszú busz esetén 50 KBaud-os busz sebességet alkalmazhatunk. 1000 méternél hosszabb busz esetén speciális meghajtókra, és jelismétlőkre van szükség. Az NRZ kód egyik jellemzője, hogy a jelben nincsenek újraszinkronizálásra használható élek, ha sok azonos polaritású bitet közvetítünk egymás után. Minden állomás szinkronizálásának biztosításához bitfeltöltési szabályt használnak. Ez azt jelenti, hogy az üzenet átvitele alatt maximum 5 egymást követő bit lehet azonos polaritású. Ha 5 egymást követő azonos polaritású bitet küldünk az adatfolyamban, az adó beszúr egy kiegészítő ellentétes polaritású bitet, mielőtt továbbítaná a többi bitet. A vevő is ellenőrzi az azonos polaritású bitek számát, és ismét eltávolítja a feltöltött bitet. A CAN busz vonal: A CAN egy soros busz rendszer egyetlen logikai busz vonallal. A busz nyitott lineáris struktúrájú egyenrangú állomásokkal. A buszon levő csomópontok számát nem korlátozza a protokoll - csak a felhasznált adó-vevők típusa - és dinamikusan változtatható anélkül, hogy a többi csomópont kommunikációját zavarnánk. Így tehát könnyű az állomások bekapcsolódása és a szétválasztása, illetve újabb feladatok hozzáadása, hiba keresése, vagy a busz figyelése. A CAN busz vonalnak két logikai állapota van: a recesszív és a domináns állapotok. Az aktuális busz állapotot az összes állomás huzalozott-és logikája határozza meg. Ez azt jelenti, hogy a recesszív biteket, amelynek legtöbbször az 1-es szint felel meg, felül tudják írni a domináns bitek. Ameddig egyetlen állomás sem küld domináns bitet, addig a busz recesszív állapotban marad, és bármely állomás domináns bitje domináns busz állapotot eredményez. Ezen okból kifolyólag olyan átviteli közeget kell választani, amely mind a domináns, mind a recesszív szintet képes közvetíteni. Az egyik általános, és legkevésbé költséges megoldás a csavart érpár használata. Ha ilyet használunk, a busz vonalat "CAN_HIGH"-nak és "CAN_LOW"- nak nevezzük. A két busz vonalat az állomások különböző jellel hajtják meg. A csavart érpár mindkét végén lezáró ellenállásokkal végződik, melyek tipikus értéke 120-124 Ohm. Optikai közeget, például üvegszálat is használhatunk busz vonalnak. Ebben az esetben a recesszív állapotot a "light off" jelzi, vagy a fény hiánya. A domináns állapotot a "light on", vagyis a fény jelenléte reprezentálja. Speciális adó-vevők használatával a CAN-t egyetlen ér esetén is lehet használni, bár ez csökkenti az elektromágneses zavarok elleni érzéketlenséget. Az átvitel különböző természetéből következi a CAN elektromágneses zavar elleni érzéketlensége, mert mindkét busz vonalat ugyanaz a hatás éri, ami a különböző jelek

érzéketlenségét eredményezi. Hogy még jobban redukáljuk az elektromágneses zavarokkal szembeni érzékenységet, a busz vonalat árnyékolhatjuk. Ez főleg magas baud rate esetén hasznos. A legtöbb CAN csomópont magában foglalja a további speciális CAN busz meghajtó áramköröket, amelyekkel az állomás a választott közeghez kapcsolódhat. Ezen busz meghajtókat diszkrét elemekből is elő lehet állítani, de alkalmazhatunk speciális CAN adóvevő eszközöket is. A járművek busz rendszerének alkalmazásait három különböző kategóriába sorolhatjuk a valós-idejűségnek megfelelően. Az A osztály egy alacsony sebességű busz 10 kbit/s-os bit rátáig, ide tartoznak a kényelmi alkalmazások, a B osztály ugyancsak alacsony sebességű 10 kbit/s - 125 kbit/s-os bit rátáig, ide sorolható a műszerfal és a diagnosztika, a C osztály egy magas sebességű vonal 125 kbit/s-től 1 Mbit/s-ig a valós idejű alkalmazások számára, mint például a motor vezérlés, a sebességváltó, az ABS, stb. A járművekben használt CAN eszközök interfészéhez két szabványt definiáltak: CAN High Speed az ISO-DIS 11898-nek megfelelően a 125 kbit/s és 1 Mbit/s közötti bit rátához, illetve CAN Low Speed az ISO-DIS 11519-2-nek megfelelően a maximum 125 kbit/s-os bit rátához. Az ISO-DIS 11898 ös szabvány sokkal szélesebb körben használatos, mint az ISO-DIS 11519-2, mert a busz-sebességek széles skáláját engedélyezi. A busz vonal maximum 40 méter, vagy 130 láb hosszú lehet, ha a maximális 1 Mbaud sebességgel működik a rendszer, és 120 Ohmos lezáró ellenállásokat alkalmazunk. A busz vonal lehet hosszabb is, ha alacsonyabb baud rate-et használunk. Maximum 30 csomópontot enged meg a szabvány a CAN meghajtókkal. Több állomás csatlakoztatásához erősebb meghajtókra, vagy ismétlőkre van szükség. A reflexió elkerüléséhez az állomások nem lehetnek messzebb a busz vonaltól, mint 30 centiméter, vagy 1 láb, ha a sebesség 1 Mbit/s. A recesszív bitnek mindkét vonalon a 2.5 V-os szint felel meg, úgy, hogy a két vonal közötti feszültségkülönbség 0 V körül van. A domináns bitet a CAN_HIGH 3.5 V-ra emelkedése és a CAN_LOW 1.5 V-ra csökkenése jelzi. Tehát domináns szint esetén a feszültségkülönbség 2 V. Ahhoz, hogy a CAN-t ipari terepi nyitott busz rendszernek is lehessen használni, a "CAN az automatikában" nevű felhasználói csopot, a CiA elkészítette a CiA DS 102-1 szabványt, ami az 11898-en alapul. E szabványnak egy fontos következménye az ajánlott 9 érintkezős SUB- D csatlakozó a csomópontok CAN buszhoz való csatolásához. A busz jelek, a CAN_HIGH és a CAN_LOW a 7-es és a 2-es érintkezőre csatlakoznak. A többi érintkező táp- és földvezetékek számára szolgálnak, illetve későbbi felhasználásokra vannak fenntartva. Kivitelezés: Egy tipikus CAN állomást arra használunk, hogy vezéreljünk egy bizonyos eszközt, amely különböző alegységekből áll.az eszközt legtöbbször egy 8 vagy 16 bites mikrokontroller vezérli, Ahhoz, hogy a CAN kommunikációban részt tudjon venni, a mikrokontrollert a CAN kontrollerhez kell csatlakoztatni, vagy olyan mikrokontrollert kell alkalmazni, amely már magában foglalja a CAN kontrollert is. Ez utóbbi takarékos megoldás, mert a nyomtatott áramkört hatékonyabban kihasználhatjuk, és a felhasználónak nem kell a mikrokontroller és a CAN kontroller közötti kommunikációt külön beállítania. A CAN chipeknek 2 fajtája van az interface-ekre vonatkozóan: az úgynevezett "Basic-CAN" és a "Full-CAN" eszközök. Nem fontos, melyik verziót használjuk, ezért használhatunk Basic-CAN és Full-CAN eszközöket is ugyanabban a hálózatban. A Basic-CAN eszközök hardverébe csak az alapvető funkciókat építik: az üzenetek elfogadási szűrését, vezérlését. Egy Basic-CAN kontroller általában 1-3 küldési puffert tartalmaz, és egy, vagy kettő fogadó

puffert. Fogadáskor csak bizonyos szintig lehetséges az elfogadási szűrés során az azonosítók vizsgálata. Mivel csak kevés fogadó puffer van a kiszolgáló kontrollert meglehetősen lefoglalja a bejövő üzenetek olvasása és tárolása, mielőtt felülírnák őket a következő üzenetek. Így nagyon gyors CPU-töltésre van szükség, különösen magasabb baud rate-ek és magasabb busz terheltség esetén. Ráadásul a remote frame-re való válaszok kezelését is a kiszolgáló CPU-nak kell végeznie. Ezen okokból a Basic-CAN eszközöket csak alacsonyabb baud rate-eken és alacsonyabb busz terheltség esetén használják.a Full-CAN kontrollerek fel vannak szerelve a teljes hardverrel a megfelelő elfogadási szűréshez, és üzenet kezeléshez. Ezek az eszközök meghatározott számú üzenet-objektummal rendelkeznek, általában 15-16- tal, ami minden információt tartalmaz az üzenetekkel kapcsolatban, mint az azonosítót, adatbyte-okat, stb. Az eszköz inicializálása során a kiszolgáló CPU meghatározza, mely üzeneteket küldi, melyeket fogadja, és aszerint inicializálja az üzeneteket. Ha a CAN kontroller egy olyan üzenetet fogad, amelynek az azonosítója megegyezik az üzenet objektumban tárolttal, megőrzi az üzenetet, és generál egy megszakítást. Egy másik előny, hogy a bejövő remote frame-ekre automatikusan válaszol a Full-CAN kontroller. Ebben az esetben a CPU terheltsége jelentősen kisebb, mint a Basic-CAN esetében. Full-CAN eszköz használatakor magas baud rate-ek és magas busz terheltség esetén is sok üzenetet képes eredményesen kezelni. Sok Full-CAN kontroller tartalmazza a "Basic-CAN" tulajdonságot: az üzenet objektumok közül egy úgy viselkedik, mint egy Basic-CAN fogadási puffer, azért, hogy bármilyen típusú üzenetet képes legyen fogadni. Láthatjuk tehát, hogy a CAN egy igen kedvező kommunikációs protokoll automatikus eszközök építése esetén kedvező tulajdonságai miatt, melyek még egyszer: az alacsony költségek, nagy megbízhatóság, valós idejűség, flexibilitás illetve a gyors átviteli sebesség. Az adatkapcsolati réteg jellemzői, a működés, az arbitráció, az adatszerkezetek, a hibakeresés és a protokollverziók A CAN buszos arbitráció működésének leírása: A CAN protokol a Carrier Sense Multiple Access with Non Destructive Arbitration elvét használja. Ennek megfelelően az arbitráció folyamata elkerüli az üzenetek ütközését, ha több csomópont kezd üzenetet küldeni egyszerre. Ha 2 állomás van jelen. Tegyük fel, hogy csak az A állomás vár arra, hogy adhasson. Egy általános adás arbitráció nélkül így néz ki: Az A állomás megvizsgálja, hogy a buszvonal szabad, és senki nincs adásban. Ha a busz szabad, és egyetlen másik állomás sem akar adást kezdeményezni, akkor az A állomás elkezdi az üzenetküldést, és ő válik a busz masterré. Az üzenet kezdőbitjét érzékelve az összes többi állomás fogadóvá válik. Az üzenet hibátlan fogadása után, amit minden egyes fogadó állomás nyugtáz, minden csomópont ellenőrzi az üzenet leíróját, és eltárolja az üzenetet, ha szükséges. Egyébként az üzenetet eldobja. Ha a szabad busz státusz detektálása után két vagy több állomás kezd egyszerre adni, az üzenetek ütközését az un. "bitről bitre" arbitráció módszerrel kerüli el. Ez úgy működik, hogy minden állomás bitsorosan küldi az üzenetét, és figyeli a busz szintjét. Amíg az üzenet leíróját el nem küldi, minden állomás folytatja az adást. Ha például az A állomás egy domináns bitet küld, a B egy recesszívet. B állomásnak vissza kell állnia a recesszív szintre, de domináns szintet érzékel közben, ezért ekkor abbahagyja a busz arbitrációt, és vevő módba kapcsol át. Ez a lehetőség akkor következik be, ha a konkurens csomópont üzenetének azonosítója alacsonyabb bináris értékű, amely azt jelzi, hogy az az üzenet magasabb

prioritású. Így a magasabb prioritású üzenetet küldő állomás nyeri az arbitrációt, és folytatja az üzenet küldését. Így időveszteség nélkül zajlik a folyamat. Azután a busz visszatér üres állapotba. Ekkor az az állomás, amely elveszítette az arbitrációt ( most a B állomás) automatikusan megpróbálja megismételni az adást. Két állomás nem küldhet ugyanazzal az azonosítóval üzenetet, mert ez az arbitráció elvesztéséhez, és hibához vezetne. Adatszerkezet formátumok: Az adatok keretszerkezetét a CAN állomás automatikusan generálja, amikor adatot akar küldeni. Egy normál (standard) CAN adatkeret a következőképp néz ki: A keret egy domináns kezdőbittel kezdődik, az összes csomópont hard szinkronizációja miatt. Ezt a 12 bites arbitrációs terület követi. A 12 bitből 11 azonosító, ami az üzenet tartalmát és prioritását, valamint az RTR (Remote Transmission) bitet tartalmazza. Az RTR-t az adat keret és a remote frame megkülönböztetésére használják. Ha az RTR recesszív, akkor remote frame-ről van szó, ha domináns, akkor pedig adat frame. A következő terület a Vezérlő Terület, amely 6 bitből áll. Az 1. bit az IDE (azonosító kiterjesztés). Ha ez a bit domináns, az azt jelzi, hogy ez a frame egy normál (standard) keret. A következő bit dominánsnak definiált, későbbi alkalmazásra fenntartott bit. A maradék 4 bit a DLC, az adat hosszának kódját tartalmazza, ami azt jelzi, hány bájtból áll az adat(0..64 bit). Az adat hossz kód 0-tól 8 értékű lehet. A következő rész az adat terület. Ez bármilyen érték lehet 0-64 biten, v. 0-8 bájton. Ezután jön a CRC terület. Ez a terület arra való, hogy fel lehessen deríteni segítségével a lehetséges hibákat. Ez a terület egy 15 bites CRC sorozatból, és a befejező recesszív CRC határolójelből áll. Következik a nyugtázó terület. A nyugtázó slot bitet recesszív bitként küldi el az állomás. Bármely állomás, amely hibátlanul fogadta az üzenetet úgy nyugtázza a helyes fogadást, hogy visszaküld egy domináns bitet, függetlenül attól, hogy elfogadja-e az üzenetet, vagy sem. A CAN tehát a "biten belüli válaszú"(in-bit-response) protokollok közé tartozik. A recesszív nyugtázás határoló zárja a nyugtázó slot-ot, amit nem tud felülírni domináns bit. A nyugtázó terület után következik 7 recessszív bit, ami a keret, és az adatterület végét jelzi. Bármilyen 2 frame után a busznak legkevesebb 3 bit ideig recesszív állapotban kell maradni. Ez a szünet. Ha a keretet követően egyetlen állomás sem akar adni, akkor a busz recessziv, vagy szabad állapotban marad. A fő különbség a normál, és a kiterjesztett adatszerkezet között az azonosító hossza, ami a kiterjesztett formátum esetén 29 bit hosszúságú a normál 11 bitjével szemben. Így a kiterjesztett formátumnál az arbitrációs terület hossza 32 bit. A kiterjesztett adatkeret első 11 bitje a 29 bites azonosítónak a legmagasabb helyiértékű része, ez a bázis azonosító (Base-ID). Ezt követi az SRR (Substitute Remote Request), ami recesszív, majd az IDE, ami szintén recesszív, jelezve, hogy az adatszerkezet kiterjesztett. Az azonosító maradék 18 bitje az azonosító kiterjesztése (ID-Extension) és az RTR bit. (19 bit). Ahogy a normál adatszerkezetnél már láthattuk, az RTR bit domináns, ezzel jelzi, hogy adat frame-ről van szó. A kiterjesztett szerkezet maradék része a vezérlő rész, az adatterület, CRC terület, nyugtázó rész. A keret vége ugyanúgy épül fel, mint a normál adatkeretnél. A remote frame: Akkor beszélünk remote frame-ről, ha a célállomás adatot kérj a forrás állomástól. Ilyenkor a célállomás küld egy remote frame-et a szükséges adat keret azonosítójával. Ekkor a megfelelő adat forrás állomás a kért adattal válaszol a remote frame-re. A normál remote frame felépítése:

A remote frame-nek hasonló a struktúrája az adat kerethez, két szembetűnő különbséggel. Az egyik, hogy itt az RTR bit recesszív, a másik, hogy nincs adatterület. Ugyanez igaz a kiterjesztett remote frame-ekre is. Az RTR bit itt is recesszív, és itt sincs adatterület. Egy olyan szituációban, ahol egy adat, és egy remote frame kerül ugyanazzal az azonosítóval egyszerre a buszra, az adat frame nyeri az arbitrációt mert annak domináns az RTR bitje. Ebben az esetben tehát a remote frame-et küldő állomás rögtön fogadja a kívánt adatot. A CAN busz hiba frame-jei: Ha bármely állomás hibát érzékel, azonnal generál egy hiba frame-et (nyugtázási hiba kivételével). A hiba üzenetnek két területe van: a hiba-jelző terület és a hiba-határoló. A hiba határoló 8 recesszív bitet tartalmaz, és engedélyezi a busz csomópontjainak, hogy egy hiba után újrakezdjék a busz kommunikációt. A hiba-jelző területnek két formája van, ez pedig a hiba frame-et küldö állomás hiba státuszától függ. Ha egy hiba-aktív állomás érzékeli a busz hibáját, akkor az állomás megszakítja az aktuális üzenet átvitelét, és generál egy aktív hiba-jelzőt. Ez 6 egymást követő domináns bitből áll. Mivel ez a bit-folyam megsérti a bit feltöltési szabályt, minden más állomás érzékeli a fennálló bit feltöltési hibát, és egymás után hiba frame-eket generálnak. E hibajelző terület 6-12 darab egymást követő domináns bitet tartalmaz, amit egy, vagy több állomás generál. A hiba frame a hiba-határolóval végződik. A hiba frame befejezésével a busz működése visszaáll normál működési állapotba, és a megszakított állomás megkísérli megismételni a megszakított üzenetet. Ha egy hiba-passzív állomás érzékeli a busz hibát, akkor ez a csomópont küld egy passzív hiba-jelzőt, amit ugyancsak a hiba-határoló követ. A passzív hiba-jelző 6 darab egymást követő recesszív bitet tartalmaz, és ezért a hiba frame 14 recesszív bites, és nem tartalmaz domináns bitet. Ebből következik, hogy, azt kivéve, ha a busz hibát az aktuális küldő állomás azaz a busz master - érzékeli, egy hiba-passzív állomás hiba frame átvitele nem lesz hatással a hálózat többi állomására. Ha a busz master csomópont generál egy passzív hiba-jelzőt, akkor előfordulhat, hogy a többi állomás aktív hiba frame-eket generál a bitfeltöltési szabályt megszegve. A túlterhelés frame (overload frame): A túlterhelés frame szerkezete ugyanolyan, mint az aktív hiba frame-é. Ilyen üzenetet hiba aktív állomás tud generálni. Túlterhelés frame-et csak üzenetküldési szünetben lehet küldeni. Ily módon a túlterhelés frame megkülönböztethető a hiba frame-től, mert a hiba frame üzenet átvitele alatt képződik. A túlterhelés frame két részből áll. Egy túlterhelésjelzőből, és egy túlterhelés határolóból. Előbbi 6 domináns bit, ami más állomások túlterhelésjelzőjét követi, mint egy aktív hiba-jelző. Tehát a maximális hossz itt is 12 bit. A túlterhelés határoló 7 recesszív bit. Túlterhelés frame-et akkor generál az állomás, ha nem áll még készen a következő üzenet fogadására. Egy csomópont maximum kettő túlterhelés frame-et generálhat egymás után, hogy késleltesse a következő üzenetet. Az frame-ek közti szünet (Interframe Space): Az Interframe Space választja el az előző üzenetet - mindegy, hogy milyen típusú volt - a következő adat, vagy remote frame-től. Az Interframe Space legalább 3 recesszív bit. Ezeket a biteket "szünetnek" hívjuk. Ez gondoskodik arról, hogy az állomásoknak legyen idejük a belső feldolgozáshoz, mielőtt elkezdődik a következő üzenet küldése. A szünet után, a hiba-aktív CAN állomások miatt, a busz vonal recesszív állapotban marad (Bus Idle), amíg a következő átvitel el nem kezdődik.

Az Interframe Space-nek van egy kissé különböző formája is annak a hiba-passzív állomás számára, ami az előző üzenetet küldte. Ebben az esetben ezeknek az állomásoknak újabb 8 recesszív bitet kell várni mielőtt a busz újra üres nem lesz, és lehetségessé válik újra az üzenetküldés. Ezt az állapotot felfüggesztett átvitelnek hívjuk. Így a hiba-aktív állomásoknak lehetőségük van elküldeni az üzenetüket, mielőtt a hiba-passzív állomások képesek lesznek az átvitelre. Hiba érzékelés: A CAN protokoll sokrétű hibadetektáló technikával van ellátva. A következő hibákat képes detektálni: CRC hibák, nyugtázási hibák, alaki hibák, bit hibák és bit-feltöltési hibák. A CRC hibák: A CRC segítségével a küldő állomás kiszámolja a bit-folyam ellenőrző összegét, az adatfolyam elejét jelző bittől, a végét jelzőig. Ezt a CRC kódot az üzenet CRC területébe másolja. A fogadó állomás ugyancsak kiszámolja ezt az összeget, ugyanazon algoritmus segítségével, és összehasonlítja a fogadott kóddal. Ha a két ellenőrző összeg megegyezik, akkor nem keletkezik busz hiba. Ha a fogadó állomás eltérést érzékel a két összeg között, az CRC hibát okoz. Az állomás kiküld egy hiba frame-et, hogy jelezze a hibát, és hogy az elrontott üzenet újraküldését kérje. Minden csomópont elveti az addig fogadott üzenetet, és generál egy hiba frame-et. Ezután az üzenetet újra elküldi a forrásállomás. A nyugtázási hiba: A nyugtával a küldő állomás érzékeli, hogy az elküldött üzenet nyugtázó részében lévő nyugtázó slot, amit recesszívként küldött el, felülíródott dominánssá. Ha ez történit, akkor legalább egy állomás hibátlanul megkapta az üzenetet, és átváltotta dominánssá a recesszív nyugtázó slot-ot. Ha nem, akkor ez nyugtázási hibát okoz. Ilyenkor az üzenet küldését meg kell ismételni, de nem generálódik hiba frame. Alaki hibák: A frame ellenőrzés formai hibákat érzékel. Ha az adó domináns bitet érzékel a CRC határolóban, a nyugta határolóban, vagy a frame végét jelző bitben, az formai hibát okoz, és hiba frame-et generál. Ilyenkor az üzenetet meg kell ismételni. A bit hiba: Minden csomópont végez bitfigyelést. Az okoz bit hibát, ha az adó domináns bitet küld, de recesszív bitet érzékel, vagy recesszívet küld, de dominánst detektál a busz vonalon. Ilyenkor hiba frame-et generál, és megismétli a küldést. Ha egy domináns bitet érzékel a recesszív bit helyett, nem okoz hibát a következő esetekben: ha ez az arbitrációs területen van, vagy a nyugtázó slot-ban, mert ezeken a területeken felülírható a recesszív bit az arbitráció és a nyugtázás során. A bitfeltöltési hiba: Ha az üzenet kezdetét jelző bit, és a CRC határoló között van 6 egymást követő azonos polaritású bit, az megsérti a feltöltési szabályt. Ez feltöltési hibát okoz, és hiba frame-et generál. Az üzenetet meg kell ismételni. A hibák kezelése: A felderített hibákat az összes állomás érzékeli hiba frame-eken keresztül. Ha hiba keletkezik, a hibás üzenet küldése megszakad, és az üzenetet újra el kell küldeni, amilyen hamar csak lehet. A CAN csomópont 3 féle állapotban lehet, a belső hibaszámláló állapotától

függően: hiba-aktív, hiba-passzív, vagy bus-off állapotban. Reset után hiba-aktív állapotban van az eszköz, ilyenkor képes üzeneteket küldeni, fogadni és aktív hibaüzeneteket korlátlanul adni. A CAN kommunikáció során a hiba számlálók meglehetősen komplex szabályok alapján változnak. Minden vételi, és adási hiba esetén növekszenek egy megadott értékkel a hibaszámlálók, és minden sikeres átvitel során csökkennek egy megadott értékkel. Egy állomás akkor van hiba-aktív állapotban, ha mind a fogadási, mind a küldési hibaszámlálója a 127-es érték alatt van. Ha a két hibaszámláló közül bármelyik 127 fölé emelkedik, akkor hibapasszív állapotba kerül a csomópont, és ha a küldési hibaszámláló 255 fölé emelkedik, akkor bus-off állapotba kerül. Ha bármely hibaszámláló eléri a 128-as értéket, a csomópont átkapcsol hiba-passzív állapotba. Ilyenkor még mindig képes üzeneteket küldeni, és fogadni, bár adás után adás felfüggesztésbe kényszerül, ami azt jelenti, hogy 8 bit idővel többet kell várnia, mint a hiba-aktív állomásoknak, mielőtt újabb üzenet küldését kezdhetné. Tekintettel a hiba-jelzésre, a hiba-passzív állomások csak recesszív bitekből álló passzív hiba frame-eket képesek küldeni a buszon. Ha mindkét hibaszámláló 128 alá csökken újra, akkor a csomópont visszakapcsol hiba-aktív állapotba. A CAN protokoll egyik jellemzője, hogy automatikusan lekapcsolja a buszról a hibás állomásokat. Ez a bus-off állapot, és akkor következik be, ha a küldési hibaszámláló túllépi a 255-ös határt. Leáll minden busz tevékenység, ami átmenetileg lehetetlenné teszi az állomás számára, hogy részt vegyen a kommunikációban. Ebben az állapotban tehát üzenet küldése, és vétele sem lehetséges.a csomópont csak akkor képes visszaállni a hiba-aktív állapotba, ka a kiszolgáló processzor újra inicializálja. Ilyenkor mindkét hibaszámláló visszaáll nullára. Egy példa a CAN hibadetektálásának megbízhatóságára: Ha egy CAN hálózat évente 2000 órán át üzemel, a CAN busz sebessége 500 kbit/s, a busz terheltsége 25% akkor statisztikusan egyetlen felderítetlen hiba képződik minden 1000 évben.