CAN Busz v01

Embed Size (px)

Citation preview

CAN BUSZ LTALNOS ISMERTET1. KIADS

2009

Szerz:

Somlyai LszlKand Klmn Villamosmrnki Kar, IV. vfolyam

oldal 1

Tartalomjegyzk1. 2. Bevezets .............................................................................................................................. 3 CAN busz ............................................................................................................................... 4 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 3. 4. Kialakulsa ..................................................................................................................... 4 Fizikai rteg ................................................................................................................... 7 Az zenetek keretformtumai .................................................................................... 11 A CAN zenetek fajti ................................................................................................. 12 Arbitrci..................................................................................................................... 13 A CAN busz felhasznlsi terletei .............................................................................. 15

CAN kommunikci ............................................................................................................. 16 Firmware ............................................................................................................................. 17 4.1. 4.2. 4.3. Firmware fejleszts ..................................................................................................... 17 Inicializls .................................................................................................................. 18 CAN.............................................................................................................................. 20

5. 6.

Irodalomjegyzk .................................................................................................................. 23 Mellkletek.......................................................................................................................... 24 M4.a mellklet: MCP2551 specifikci ................................................................................... 25 M4.b mellklet: MCP2551, DC karakterisztika........................................................................ 26 M4.c mellklet: MCP2551, DC karakterisztika ........................................................................ 27

oldal 2

1. BevezetsA dokumentci clja, hogy egy ltalnos lers adjak a CAN buszrl. A dokumentum elksztsnek alapjt a szakdolgozatom (CAN buszra csatlakoztathat kijelz 32 bites mikrokontrollerrel; 2009-BMF-KVK) szolgltatta. Clom a dolgozattal, hogy segtsget nyjtsak azoknak, akik a CAN busszal szeretnnek foglalkozni. Az ltalam sszegyjttt adatok j kiindulsi alapknt szolglhatnak. A dolgozat elejn a CAN busz ltalnos ismertetse trtnik az interneten fellelhet forrsokbl sszegyjtve. A dokumentum mg fejleszts alatt ll. Jelen verzi, az 1. kiads. Ksbb, a CAN busz elektronikai s szoftveres vonatkozsaival bvtem a lerst.

oldal 3

CAN busz1.1. Kialakulsa

Napjainkban sok jrm tartalmaz klnbz elektronikus vezrlegysgeket (ECU1). Az autipar fejldsvel egyre tbb elektronikus rendszer kerlt az autkba. Ezek egyrszt a felhasznli ignyeket elgtik ki, gy pldul az elektromos ablakemelk, multimdis eszkzk. Msrszt krnyezetvdelmi (az aut kros anyag kibocsjts s az zemanyag fogyasztsnak a cskkentsrt tbbek kzt az ECU2 felels) s biztonsgi clokat (ABS3, ASC4, ACU5) szolglnak. Az eszkzk bonyolultsga elengedhetetlenn teszi a kommunikcit kzttk. Ilyen egysg pldul az ASC, itt a motor idztse s a karburtor mkdik egytt, hogy a meghajtott kerk megcsszsa esetn, cskkenjen a meghajt nyomatk. Egy msik plda a klnll egysgek sszehangolsra az elektromos sebessgvlt. A sebessgvlts a gyjts precz vezrlsvel llthat. Eleinte a klnll alrendszerek dediklt vonalakon tartottk egymssal a kapcsolatot. gy minden vezrl, kln vezetkeket kapott az egyes funkcikhoz. Ez azonban az egyre sszetettebb vl rendszerek esetn egyre nagyobb problmt jelentett. Ezeket a vezetkktegeket kbelkorbcsoknak nevezik. Jelentsen megnehezti a szerelst s igen magas az ra. Valamint egy id utn az sszekttetsek szma mr tovbb nem nvelhet. Manapsg egy autban 50-70 ECU is tallhat. Egy rdekes adat, hogy egy mai tlagos aut vezetseinek hossza 2-2,5 km s 100 Kg sly is lehet, illetve lehetne.

ECU: Electronic Control Unit, azaz elektronikus vezrl egysg. Az autiparban hasznlt autelektronikk sszefoglal neve.2 3

1

ECU: Engine Control Unit, ms nven a motorvezrl elektronika.

ABS: Anti-lock Braking System, a blokkolsgtl fkrendszer vezrl elektronikja. A blokkolsgtl a kerekek blokkolst, illetve az tfelleten val csszst hivatott megelzni. ASC: Automatic Stability Control, voner szablyozs. Az ASC megelzi a hajtott kerekek kiprgst s gondoskodik a lehet legjobb vonerrl s stabilitsrl, mikzben az aut az ton van. ACU: Airbag Control Unit, ms nven a lgzsk vezrl elektronika. Az feladata a lgzskok felfjsa baleset esetn.5 4

oldal 4

A rgi kommunikcis mdok kivltsra dolgozta ki a 80-as vekben a Robert Bosch Kft. a CAN buszt (Controller Area Network). A kbelkorbcsok kivltst egy soros kommunikcis csatorna alkalmazsa oldotta meg. A rendszer lnyege, hogy egy ktvezetkes kommunikcis csatornn helyezkednek el, a klnbz elektronikus vezrlegysgek (0.1. bra). Az els CAN buszvezrl chipet az Intel s a Philips ksztette el 1987-ben. Ez a vezrl mg a CAN 1.0-s szabvnyt ismerte. A ma is hasznlt CAN 2.0-s szabvnyt a Bosch 1991-ben publiklta. A CAN busz megfelel hibadetektlssal s zavarvdelemmel rendelkezik, valamint a nagy adattviteli (akr 1 Mbit/sec) sebessg tette alkalmass az autipari alkalmazsra. A magas megbzhatsg elengedhetetlen, hiszen ezen a csatornn helyezkednek el olyan rendszerek, mint az ABS, ASC, amiknek letvdelmi szempontbl elengedhetetlen a megbzhat mkdsk. A nagy adatforgalom s a biztonsg nvelse miatt mr nem egy, hanem legalbb 2 klnll CAN busz tallhat a gpjrmvekben. Az egyik ltalban a nagysebessg (1 Mbit/sec) vonal, ezen kapnak helyet a motorvezrl elektronika, ABS, ASC. A msik egy kis sebessg busz (125 Kbit/sec), itt a nem ltfontossg eszkzk helyezkednek el. Ilyen pldul a kzponti zr, elektromos ablakemel s az ablaktrl.

0.1. bra - CAN busz a gpjrmben [6]

oldal 5

A CAN busz mellet 1990-ben egy msik kommunikcis protokoll kerlt kifejlesztsre az eurpai autgyrtk ltal, a LIN busz (Local Interconnect Network). Ennek jval kisebb az adattviteli sebessge (19,2 Kbit/sec) valamint a megbzhatsga is kisebb. Nagy elnye abban rejlik, hogy igen olcs. ltalban a CAN hlzatok alhlzataknt hasznljk. A magasabb priorits, fontos zenetek a CAN buszon kzlekednek, mg a LIN buszt a kisebb feladatok megoldsra hasznljk, ilyen lehet pldul az elektromos ablakemels s ablaktrls. Az egyre tbb elektronikval felszerelt jrmvek miatt a CAN busz is kezdi kinni magt. A CAN kivltsra fejlesztettk ki a FlexRay-t, ami 2007-ben ltott napvilgot. Az adattviteli sebessge 20 Mbit/sec. Az els FlexRay-el felszerelt aut 2007-ben gurult ki a BMW gyrbl.

oldal 6

1.2.

Fizikai rteg

A fizikai rteg feladata a bitek hibamentes tovbbtsa. Ezen a szinten van megfogalmazva a vezetkezs s a bitek tovbbtsi formja. A CAN hlzat szimmetrikus jeltvitelt alkalmaz. A szimmetrikus jeltvitelhez kt vonalra van szksg, ami egy sodrott rpron trtnik. Ez lehet rnykolt, vagy rnykolatlan rpr. A kt vezetket CAN_H-nak s CAN_L-nek nevezik. Erre az rprra csatlakoztathatak az eszkzk (0.2. bra). Elnye a buszrendszernek, hogy knnyedn csatolhatak r tovbbi eszkzk, s el is tvolthatunk rla llomsokat. Kt ISO szabvny rgzti a CAN-t. Ezek kztt a klnbsg a fizikai rtegben jelentkezik. Az ISO 11898 a nagysebessg (akr 1 Mbit/sec) CAN alkalmazsokat foglalja magban, mg az ISO 11519 az alacsony sebessgeket (125 Kbit/sec).

0.2. bra - CAN hlzat

A CAN busz az NRZ (Non-Returnto-Zero) [3] kdolst alkalmazza. A kdols lnyege, hogy csak akkor van tmenet a bitid kezdetn, ha az elzztl klnbz bit rkezik (0.3. bra). Az NRZ kdolsbl nem lehet kinyerni az rajelet, ezrt szksges minden, a kommunikciban rsztvev eszkznek szinkronizldnia a vtelhez.

0.3. bra - NRZ kdols [3]

oldal 7

A szinkronizlsnak ktfle fajtja van. Az egyik esetben az zenet els bitjre trtnik a szinkronizls, ez a SOF bit (Start of Frame). A busz nyugalmi helyzetben magas szinten van. A SOF bit kezdetekor egy lefut l generldik. Erre az lre trtnik az els szinkronizci. Ezt Hard Syncronization-nak nevezik. A szinkronizci msodik varicija eltt meg kell nzni egy fontos dolgot. Ez nem ms, mint a Staff Bits, vagy ms nven a beszrt bit. Amikor ltrejtt az ad s a vev eszkz kztti szinkron, az id mlsval egyre jobban elcssznak egymstl. Hiszen sajt rajel forrsuk van az eszkzknek s ezek sebessge, mg ha igen kis mrtkben is, de eltr egymstl. Egy 8 bites aszinkron adattvitelnl, mint pldul az RS232, ez nem jelent gondot, hiszen a kevs bitid alatt nem trtnik nagy szinkronelcsszs. A CAN csomagok esetben kt problma merl fel. Az egyik a bitek nagy szmbl (akr 100 bit egy csomagban) s az NRZ kdolsbl add bittmenet hinya. Abban az esetben, ha nagyon sok megegyez bit kveti egymst, nem trtnik jelszint vltozs a buszon. Az albbi brn (0.4. bra) lthat egy adat csomag, majd alatta a CAN busz ltal talaktott zenet. A CAN szabvny kimondja, ha 5 megegyez bit kveti egymst, akkor egy ellenttes bitrtket kell beszrni. De hogy erre mirt is van szksg?

0.4. bra Beszrt bitek [4]

oldal 8

Erre a vlasz az jra szinkronizci. Lnyege, hogy minden recessziv1 - dominns2 bittmenetnl vevk jra szinkronizldnak az adshoz (0.5. bra). Ezzel cskkentve az aszinkron kommunikcibl ered szinkronizci problmjt.

0.5. bra jra szinkronizls [4]

A CAN vezrl TTL jelszinten kommunikl a buszmeghajt ramkrrel. A kontroller a CAN_TX s CAN_RX vonalakon kldi s fogadja a biteket. A buszmeghajt feladata, hogy ellltsa a csavart rprra jut szimmetrikus jelrtket. A buszon ktfle rtk lehet, az egyik a dominns 0, a msik a recesszv 1 bitrtk. Mint az albbi brn (0.6. bra) is lthat a CAN_H s a CAN_L vonalak feszltsg klnbsge adja meg, hogy a bit dominns, vagy recesszv rtk. A kvetkez tblzat mutatja a jelszintekhez tartoz feszltsgrtkeket. Az itt rgztett rtkek az ISO 11898 ltal megfogalmazott nagysebessg CAN alkalmazsokra rtendk. Bitrtk 0 1 Feszltsg 0V 2V Trs max. 0,5V min. 0,9V

dominns recesszv

0.6. bra - CAN busz jelszintek

A csavart rpr s a szimmetrikus jeltvitel nagy elnye, az elektromgneses zavarssal szembeni ellenllsga. Mint azt a 0.7. bra is szemllteti, ha egy1 2

A recesszv bit a CAN buszon a logikai 1-nek felel meg. A dominns bit a CAN buszon a logikai 0-nak felel meg s magasabb prioritssal rendelkezik.

oldal 9

elektromgneses impulzus ri a buszt, az mind a CAN_H s a CAN_L vonalon megjelenik, azonos eljellel. Mivel a kt vonal klnbsge adja meg a jelszintet, ez a zavars kiesik. Az Udiff feszltsg vltozatlan marad. Ez az egyik fontos tulajdonsga a busznak, ami alkalmass tette az autkban val alkalmazsra.

0.7. bra - Elektromgneses zavars

A fizikai rtegnl mg egy fontos dolgot szksges trgyalni, ez nem ms, mint a vezetkezs. A CAN szabvny kimondja, hogy megadott adattviteli sebessg esetn mi a maximlisan hasznlhat vezetkhossz. Ezen kvl a lezr ellenllsok rtkt is tblzat rgzti (0.1. tblzat). Tvolsg 0-40 m 40-300 m 300-600 m 600-1000 m Lezr ellenlls 124 127 150 300 150 300 Max. baud rate 1 Mbit/s 500 Kbit/s 100 Kbit/s 50 Kbit/s

0.1. tblzat - CAN busz, vezetkek

A maximlisan megadott kbelhossz rtkeknl fontos szerepet jtszott a jelterjedsi id. Az ad ltal kiadott dominns vagy recesszv bit, klnbz kssekkel rkezik meg a vevhz, a jelterjedsi id miatt. Fontos kritrium a CAN busz esetben, hogy a kialakul legnagyobb idkss nem rheti el a mindenkori bitid felt.

oldal 10

1.3.

Az zenetek keretformtumai

A CAN buszra kerl zenetek meghatrozott keretformtumot kapnak. Az els vltozata a CAN 1.0 volt, ezt ma mr nem hasznljk. A ma hasznlatos ktfle zenettpus a CAN 2.0A s a CAN 2.0B. Mint azt a 0.8. bra is mutatja, az eltrs a keretformtumok kztt az arbitrcis1 rszben van. Ez tulajdonkppen a csomag azonostja vagy cme. A CAN 2.0A formtumnl 11 bit azonost egy csomagot. Ezt Standard Frame-nek hvjk. Ilyenkor 2048 fle cm oszthat ki az zeneteknek. Abban az esetben, ha ez kevsnek bizonyulna egy alkalmazsnl, akkor lehet hasznlni a CAN 2.0B-t. Ilyenkor a 11 bit mellett tovbbi 18 bit ll a rendelkezsre a cm megadsra. Ezt hvjk Extended Fame-nek . Itt az sszesen 29 bit segtsgvel 536870912 db cm adhat meg.

0.8. bra - CAN keretformtumok [4]

Az arbitrcis rszt leszmtva lthat, hogy az zenetformk nagyjbl megegyeznek. ltalnossgban elmondhat egy keretrl, hogy a SOF (Start of Frame) bittel kezddik. Majd ezutn kvetkezik az arbitrcis rsz, vagyis az zenet azonostja (ID-je). Majd a RTR (Remote Transmission Request) bit kvetkezik. Ha ennek a bitnek az rtke 1, akkor adskrst jelent egy msik llomstl, azonban haArbitrci: A CAN zenet elejt, az zenet cmt jelenti. Az zenet kldsekor ebben a rszben dl el tbb ad kztt kinek lesz joga az adshoz. Vagyis versengs a buszrt.1

oldal 11

0, akkor adatklds van. A standard s kiterjesztett formtum zenetet az IDE (Identifier Extension) bit klnbzteti meg. Melynek rtke 0 a standard formtum keret esetben, mg rtke 1, ha kiterjesztett formtum a keret. Az ezt kvet szakasz, a vezrl rsz (CTRL). Az IDE bit az ltalnos keret esetben itt kapott helyet. A DLC (Data Length Code) adja meg az zenetben tallhat adatbjtok szmt. Ennek az rtke minimum nulla s maximum nyolc lehet. Ebbl a 4 bites rszbl fogja tudni a vev, hogy hny bjt adat fog rkezni. A kvetkez maximum 64 biten tallhatak az adatbjtok. Itt legfeljebb 8 bjtnyi hasznos informci trolhat. Ezutn kvetkezik egy 15 bites CRC (Cyclic Redundancy Code) mez. Ez a kd az zenet hibamentes clba juttatst segti. Az ad lloms az adatbjtokbl matematikai mveletek segtsgvel elllt egy 15 bites CRC kdot, majd az zenetbe illeszti. A vev egysg ezt a kdot ugyanazokkal a matematikai mveletekkel visszafejti, s ha megegyezik az adatbjtokkal, akkor tudjuk az zenetrl, hogy az tvitel sorn nem szenvedett srlst. A CRC mez vgn tallhat az ACK (Acknowledge) bit. Ha valamelyik vev, a CRC alapjn helyesnek tallta az zenetet, akkor a vev ennek a bitnek a helyt dominns rtkkel rja fell, gy az ad ltja, hogy az zenet sikeresen clba rt. Amennyiben egy lloms se rja fell ezt a bitet, vagyis recesszv rtket olvas vissza, abban az esetben az ad tvlt hibakeres zemmdba. A keret vgn egy 7 bites EOF (End of Frame) szakasz jelzi az zenet vgt. Minden bitjnek rtke 1. Itt nem rvnyes az 5 bitenknti ellenttes bit beszrsa, ha nem trtnt vltozs a bitek rtkben.

1.4.

A CAN zenetek fajti

A CAN buszon ngy fle zenetet klnbztetnk meg. Ezek az zenetek szllthatnak adatot, vagy jelezhetnek hibt, esetleg adatot krhetnek. Data Frame (Adat keret): Ez a csomag adatot juttat el az adtl a ve(k)ig. A mr korbban trgyalt bitek (0.8. bra) kzl a RTR bit dominns rtke jelzi egy zenet Data Frame mivoltt.

oldal 12

Remote Frame (Adat kr keret): Az adatkr keret lnyege, hogy egy eszkz kezdemnyezhesse, hogy egy msik lloms zenetet kldjn. Fontos hogy az adatkr keret azonostjval megegyez azonostj vlaszt kell kldenie. A Remote Frame-et az RTR bit recesszv rtke jelzi. Error Frame (Hibakezel keret): A keret a segtsgvel jelezhetik vissza az llomsok, ha hibt szleltek a fogadott adatban. Overload Frame (Tlcsordulst jelz keret): Ha egy csompont nem tud tbb adatot fogadni pillanatnyilag, akkor ezzel az zenettel jelezheti a hlzat fele, hogy ksleltessk a neki kldtt zeneteket.

1.5.

Arbitrci

Az elz pontokban ismertetsre kerlt a CAN busz fizikai rtege s az zenetek formtumai. Mint korbban sz esett rla ktfle keretet hasznl a CAN. Az egyik a Standard Frame, ami 11 bites azonostt tartalmaz, mg a msik az Extended Frame, ami 29 bites zenetazonostval rendelkezik. A CAN busz esetben nem az llomsoknak van cme, hanem az zeneteknek. Ha egy csompont zenetet akar kldeni, eltte meg kell szereznie a buszhozzfrsi jogot. Azt, hogyha tbb eszkz egyszerre szeretne adni, ki kapja meg az adsi jogot elsknt, az arbitrcis rsz hatrozza meg. Kt bitrtk van, a dominns s a recesszv. A 0.9. bra szemlltet egy olyan esetet mikor 3 csompont szeretne egyszerre adni. A fels 3 iddiagram az egyes llomsok kikldtt zenete. Az als diagram pedig a CAN buszon megjelen zenet. Az zenetklds kezdetn mind a 3 lloms elkezdi az adst. Sorra kldik ki a biteket, majd visszaolvassk a buszt.

oldal 13

0.9. bra - Arbitrci

A busz hozzfrsi jog a dntsi mezben dl el. Addig, amg mind a 3 lloms megegyez biteket kld a buszra, nem trtnik semmi, mind ad mdban vannak. Az 5. bitnl trtnik az els fontos esemny. A msodik lloms recesszv, mg a tbbi dominns bitet kldtt. A CAN buszon a dominns bit fog megjelenni, hiszen ez rendelkezik nagyobb prioritssal. Mivel az eszkz vissza is olvassa a buszt, tudni fogja, hogy egy, vagy tbb lloms dominns bitet kldtt, gy elveszti az adsi jogot, s tvlt vteli mdba. Majd a 2. bitnl az els lloms is elveszti az adsi jogot. Ezzel a mdszerrel nem alakul ki tkzs az zenet kldsekor. Amelyik eszkz elveszti az adsi jogot, tvlt vtelre s megkapja az aktulis csomagot. sszegezve teht, annak az zenetnek van nagyobb prioritsa a buszon, aminek az azonost ID-je kisebb rtk.

oldal 14

1.6.

A CAN busz felhasznlsi terletei

A CAN buszt elssorban az autipar hasznlja. Hiszen eredetileg gpjrmvekbe fejlesztettk ki. Az autipari alkalmazsa megkvetelte a megbzhat mkdst, gyorsasgot, magas zavarvdelmet. Manapsg azonban egyre tbb helyen kezdik alkalmazni a megbzhat mkdse miatt (0.10. bra).

0.10. bra - CAN busz alkalmazsi terletei [4]

A

CAN

busz

elterjed s

kommunikcis az

protokollnak

szmt,

az

ipari

folyamatautomatizlsban

orvostechnikban,

tmegkzlekedsben,

pletautomatizlsban, robotikban s mg szmos helyen.

oldal 15

2. CAN kommunikciA mikrokontrollerben tallhat 2 db CAN vezrl nmagban nem elg a buszmeghajtshoz. Szksges egy vonali illeszt elhelyezse a processzor s a CAN busz kztt. A mikrokontroller kimenete (CANRX, CANTX) 0-3,3V-os jelszinteket ad ki. A CAN busz vonalmeghajt ezeket a jeleket illeszti a szimmetrikus jelszinteket tartalmaz buszra. A kapcsolsba az MCP2551 nev vonali illeszt kerlt. Az illeszt adatlapjbl nhny oldal az M4-es mellkletben lthat. Az M4.a mellklet tartalmazza az IC paramtereit. Az illeszt 1Mbit/sec adattvitelre kpes s az ISO11989-es CAN szabvnyt tmogatja. A kapcsolsi rajz elksztsnl az MCP2551-nek szksges 5V-os tpfeszltsgrl kell gondoskodni, valamint a felfutsi idt llt ellenllst (Rcanx) kell elhelyezni (2.1. bra). Mivel a processzor 3,3V, s az illeszt 5V-os tpfeszltsget kap, elvileg szksges lenne egy jelszint illeszts. Azonban a processzort tmogatja a TTL jelszinteket s az MCP2551 a 3,3V-os bemenetet. A processzor bemenete elviseli az 5V-os jelszintet, s az illeszt mr 2V-tl logikai 1-nek veszi a jelet. Ez a M4.c mellkletben lthat.

2.1. bra - CAN busz vonalillesztk

A kapcsolsi rajzon lthat kondenztoroknak zavarszrsi szerepe van. Az IC, a kimenet vltozsakor megrntja a tpfeszltsget. Ezeket az ingadozsokat szrik a kondenztorok. Vgl az RcanxCLS ellenlls, a CAN busz lezrsrl gondoskodik. Ezt csak akkor kell beforrasztani, ha az eszkz vgponton kapott helyet.

oldal 16

3. FirmwareEbben a fejezetben a mikrokontrolleren fut szoftver tervezse szerepel. Ez a kd mkdteti az egyes perifrikat, vezrli a kommunikcikat. A kvetkezkben bemutatsra kerlnek az egyes vezrlmodulok mkdse, a rluk kszlt folyamatbrk segtsgvel.

3.1.

Firmware fejleszts

A mikrokontroller programkdja C nyelven kszl. Sajt modulok lettek tervezve a perifrik mkdtetshez. A modulok elksztsnl az AT91SAM7A3 adatlapja [7] nyjtott segtsget. Az elkszlt modulok fordtsa a GCC fordtprogrammal [8] trtnt. A szoftver felptse modulris, ezek a fggvnygyjtemnyek egy-egy nagyobb feladattal foglalkoznak. Az adott fjlon bell minden szksges fggvny megtallhat, ami ahhoz szksges, hogy a modul el tudja ltni a feladatt. Az albbi 3.1. bra szemlleti a modulok egymssal val kapcsoltat. A legfels szinten helyezkedik el a main.c fjl, ez al sorakoznak fel a klnbz funkcikat ellt rszek. A hardverszinttel a legals (spi.c, can.c, usart.c, uif.c) modulok tartjk a kapcsolatot.

3.1. bra - Modulok

oldal 17

3.2.

Inicializls

Az inicializls fggvny, a main.c modulban tallhat. Ez a funkci csak egyszer, a processzor indtsa utn fut le. Feladata a processzor konfigurlsa, az egyes perifrik lesztse. Az inicializls blokkvzlata lthat az albbi brn (3.2. bra), amit az Init() fggvny valst meg.

3.2. bra - Inicializls

Els lpsknt a mikrokontroller perifriinak s IO portjainak konfigurlsa trtnik. A perifrik belltsra segtsget nyjt az AT91SAM73A adatlapjban tallhat plda a 213.oldalon [7]. Itt pldkat hoznak fel kimeneti portok konfigurlsra, pldul a port IO, perifria A vagy B hasznlatra. Az IO inicializlsnl a port irnyok belltsa trtnik. A kvetkez rszekben az SPI, az USART, a CAN s az LCD inicializlsok trtnnek. Itt az Init() fggvny csak meghvja a perifriakezel modulok konfigurcis rszt. Ezeknek a fggvnyeknek paramtertadssal leget megadni a perifria adatait, oldal 18

mint pldul a kommunikcis sebessg (baud rate), CAN esetben szrket, maszkokat, valamint a FIFO-k mrett is. A TIMER0 inicializls azrt szksges, mert ez ad egy rendszeridztst. Vannak folyamatok, amiknek meghatrozott idben jra s jra le kell zajlaniuk, ilyenkor az idzt ltal generlt megszakts indtja el ket. A kimeneti kommunikcis FIFO-k ellenrzse lehet egy plda. Hiszen bizonyos idnknt ellenrizni kell, nincsen e kldend adat egy pufferben. Az inicializls legvgn mg a megszaktsok engedlyezst el kell vgezni.

oldal 19

3.3.

CAN

Az albbi brn lthat a CAN modul kommunikcirt felels rsze (7.5. bra). Ha egy folyamat kldeni szeretne netet, a CAN buszra, akkor azt a push() (3.5. bra) fggvnnyel teheti meg. A CAN kezelnl alkalmazott FIFO-k tulajdonkppen ktdimenzis struktra tmbk. A struktra felptse: typedef struct { unsigned char adr3; unsigned char adr2; unsigned char adr1; unsigned char adr0; unsigned char dlc; unsigned char data[8]; }mob;

//zenet cme

//adatbjtok szma //8 bjt adat

Egy ilyen tpus struktrt kell tadni a FIFO-nak. Az adat elvtel a pop() (3.6. bra) fggvny segtsgvel trtnik. Ha a fggvny visszatrsi rtke nulla, akkor nincs berkezett adat, egybknt egy struktra cme, ami CAN csomag tpus.

3.3. bra - CAN kommunikci

oldal 20

Az AT91SAM7A3 mikrokontroller CAN modulja (3.4. bra) 16 db gynevezett MOB-ot (Message Object) tartalmaz. Tulajdonkppen postaldk, amikbe a kldend, vagy a vett adat rkezik. Ezek a MOB-ok tartalmaznak a vezrlshez szksges vltozkat, s egy CAN csomag trolshoz szksges megfelel regisztereket. Egy MOB-ot lehet ad, vagy vev mdban hasznlni. Az albbi brn lthatk a MOB-ok, amiket MBx-el jelltek. A vezrl ezekbl a MOB-okbl prioritsi sorrendben veszi ki az adatokat s kerl a CAN Protokol Controller-be, ami elkldi a buszra. A berkez zenet szintn egy postafikba rkezik, majd egy megszakts generldik, ahol le kell kezelni az zenetet, clszeren a bemeneti FIFO-ba tltssel.

3.4. bra - Az AT91SAM7A3 CAN vezrlje

A vezrl fggvny feladata, hogy figyelje a kimeneti puffert. Ha van a FIFO-ban adat, s szabad a CAN busz, akkor a soron kvetkez elemet msolja egy MOB-ba. Ezutn mr a mikrokontroller hardvere a felels az zenet tovbbtsrt.

oldal 21

3.5. bra - FIFO rs

3.6. bra - FIFO olvass

oldal 22

4. Irodalomjegyzk[1] BOSCH - CAN Specification version 2.0: http://www.semiconductors.bosch.de/pdf/can2spec.pdf [2] [3] [4] CAN busz - http://en.wikipedia.org/wiki/Controller-area_network NRZ - http://en.wikipedia.org/wiki/Non-return-to-zero ATMEL - CAN tutorial: http://www.efo.ru/ftp/pub/atmel/_C51_and_AVR_with_CAN/CAN_CD_Ju ne_2005/pdf/can_tutorial.pdf [5] [6] [7] http://www.can-cia.de/ http://www.semiconductors.bosch.de/en/20/can/index.asp AT91SAM7A3 adatlap: http://www.atmel.com/dyn/resources/prod_documents/doc6042.pdf [8] GCC: http://gcc.gnu.org/

oldal 23

5. Mellkletek

oldal 24

M4.a mellklet: MCP2551 specifikci

oldal 25

M4.b mellklet: MCP2551, DC karakterisztika

oldal 26

M4.c mellklet: MCP2551, DC karakterisztika

oldal 27