CAN apzīmē Kontrollera apgabala tīkls protokols. Tas ir protokols, kuru izstrādāja Roberts Bošs aptuveni 1986. gadā. CAN protokols ir standarts, kas izstrādāts, lai ļautu mikrokontrollerim un citām ierīcēm sazināties savā starpā bez resursdatora. Funkcija, kas padara CAN protokolu unikālu starp citiem sakaru protokoliem, ir kopnes apraides veids. Šeit apraide nozīmē, ka informācija tiek pārsūtīta uz visiem mezgliem. Mezgls var būt sensors, mikrokontrolleris vai vārteja, kas ļauj datoram sazināties tīklā, izmantojot USB kabeli vai Ethernet portu. CAN ir uz ziņojumu balstīts protokols, kas nozīmē, ka ziņojumam ir ziņojuma identifikators, un, pamatojoties uz identifikatoru, tiek noteikta prioritāte. CAN tīklā nav nepieciešama mezgla identifikācija, tāpēc to ievietošana vai dzēšana no tīkla kļūst ļoti vienkārša. Tas ir seriāls pusduplekss un asinhrons sakaru protokola veids. CAN ir divu vadu sakaru protokols, jo CAN tīkls ir savienots, izmantojot divu vadu kopni. Vadi ir vītā pāra ar 120Ω raksturlielumu pretestību, kas savienota katrā galā. Sākotnēji tas galvenokārt bija paredzēts saziņai transportlīdzekļos, bet tagad to izmanto daudzos citos kontekstos. Tāpat kā UDS un KWP 2000, arī VAR izmantot iebūvētajai diagnostikai.
Kāpēc VAR?
Nepieciešamība pēc centralizēta standarta sakaru protokola radās elektronisko ierīču skaita pieauguma dēļ. Piemēram, modernā transportlīdzeklī var būt vairāk nekā 7 TCU dažādām apakšsistēmām, piemēram, informācijas panelim, transmisijas vadībai, dzinēja vadības blokam un daudzām citām. Ja visi mezgli ir savienoti viens pret vienu, tad sakaru ātrums būtu ļoti liels, bet vadu sarežģītība un izmaksas būtu ļoti augstas. Iepriekš minētajā piemērā vienam informācijas panelim ir nepieciešami 8 savienotāji, tāpēc, lai novērstu šo problēmu, CAN tika ieviests kā centralizēts risinājums, kam nepieciešami divi vadi, t.i., CAN augsts un CAN zems. CAN protokola izmantošanas risinājums ir diezgan efektīvs, pateicoties tā ziņojumu prioritāšu noteikšanai, un elastīgs, jo mezglu var ievietot vai noņemt, neietekmējot tīklu.
CAN protokola pielietojumi
Sākotnēji CAN protokols tika izstrādāts, lai novērstu sakaru problēmu, kas rodas transportlīdzekļos. Bet vēlāk, pateicoties piedāvātajām funkcijām, tas tiek izmantots dažādās citās jomās. Tālāk ir norādītas CAN protokola lietojumprogrammas:
- Automobiļi (pasažieru transportlīdzekļi, kravas automašīnas, autobusi)
- Elektroniskās iekārtas aviācijai un navigācijai
- Rūpnieciskā automatizācija un mehāniskā vadība
- Lifts un eskalatori
- Ēku automatizācija
- Medicīnas instrumenti un aprīkojums
- Jūras, medicīnas, rūpniecības, medicīnas
CAN slāņu arhitektūra
Kā mēs zinām, ka OSI modelis sadala sakaru sistēmu 7 dažādos slāņos. Bet CAN slāņu arhitektūra sastāv no diviem slāņiem, t.i.,
Sapratīsim abus slāņus.
jasmīns deiviss bērnībā
- Datu saites slānis: šis slānis ir atbildīgs par datu pārsūtīšanu no mezgla uz mezglu. Tas ļauj izveidot un pārtraukt savienojumu. Tā ir arī atbildīga par kļūdu noteikšanu un labošanu, kas var rasties fiziskajā slānī. Datu saites slānis ir sadalīts divos apakšslāņos:
MAC: MAC nozīmē Media Access Control. Tas nosaka, kā tīklā esošās ierīces iegūst piekļuvi datu nesējam. Tas nodrošina datu iekapsulēšanu un dekapsulēšanu, kļūdu noteikšanu un signalizāciju. - Fiziskais slānis: fiziskais slānis ir atbildīgs par neapstrādātu datu pārraidi. Tas nosaka tādu parametru specifikācijas kā sprieguma līmenis, laiks, datu pārraides ātrums un savienotājs.
CAN specifikācijas nosaka CAN protokolu un CAN fizisko slāni, kas ir definēti CAN standartā ISO 11898. ISO 11898 ir trīs daļas:
- ISO 11898-1: šī daļa satur datu saites slāņa un fiziskā signāla saites specifikācijas.
- ISO 11898-2: šī daļa ietilpst CAN fiziskajā slānī liela ātruma CAN. Ātrgaitas CAN nodrošina datu pārraides ātrumu līdz 1 Mb/s, ko izmanto spēka piedziņā un transportlīdzekļa uzlādes zonā.
- ISO 11898-3: šī daļa ietilpst arī zema ātruma CAN fiziskajā slānī. Tas nodrošina datu pārraides ātrumu līdz 125 kbps, un zemā ātruma CAN tiek izmantots, ja sakaru ātrums nav kritisks faktors.
CiA DS-102: Pilna CiA forma ir CAN in Automation, kas nosaka CAN savienotāja specifikācijas.
Kas attiecas uz ieviešanu, CAN kontrolleris un CAN raiduztvērējs tiek ieviesti programmatūrā ar lietojumprogrammas, operētājsistēmas un tīkla pārvaldības funkciju palīdzību.
CAN ierāmēšana
Izpratīsim CAN rāmja struktūru.
java masīvs
Tagad mēs redzēsim, kā dati tiek pārsūtīti caur CAN tīklu.
CAN tīkls sastāv no vairākiem CAN mezgliem. Iepriekš minētajā gadījumā mēs esam apsvēruši trīs CAN mezglus un nosaukuši tos kā mezglu A, mezglu B un mezglu C. CAN mezgls sastāv no trim tālāk norādītajiem elementiem.
- Uzņēmēja
Saimniekdators ir mikrokontrolleris vai mikroprocesors, kurā darbojas kāda lietojumprogramma noteikta darba veikšanai. Saimnieks izlemj, ko nozīmē saņemtais ziņojums un kāds ziņojums tam jānosūta tālāk. - CAN kontrolieris
CAN kontrolieris nodarbojas ar sakaru funkcijām, kas aprakstītas CAN protokolā. Tas arī aktivizē CAN ziņojumu pārraidi vai saņemšanu. - CAN raiduztvērējs
CAN raiduztvērējs ir atbildīgs par datu pārraidi vai saņemšanu CAN kopnē. Tas pārveido datu signālu no CAN kopnes savākto datu plūsmā, ko CAN kontrolleris var saprast.
Iepriekš redzamajā diagrammā datu pārsūtīšanai vai saņemšanai tiek izmantots neekranēts vītā pāra kabelis. To sauc arī par CAN kopni, un CAN kopne sastāv no divām līnijām, t.i., CAN zemās līnijas un CAN augstās līnijas, kuras attiecīgi sauc arī par CANH un CANL. Pārraide notiek šīm līnijām pielietotā diferenciālā sprieguma dēļ. Apkārtējās vides dēļ CAN izmanto vītā pāra kabeli un diferenciālo spriegumu. Piemēram, automašīnā, motors, aizdedzes sistēma un daudzas citas ierīces var izraisīt datu zudumu un datu bojājumus trokšņa dēļ. Abu līniju savīšana arī samazina magnētisko lauku. Kopne ir pabeigta ar 120Ω pretestību katrā galā.
CAN raksturojums
Ar diferenciālā sprieguma palīdzību mēs noteiksim, kā 0 un 1 tiek pārraidīti caur CAN kopni. Iepriekš redzamais attēls ir sprieguma grafiks, kas parāda CAN zema un CAN augsta sprieguma līmeni. CAN terminoloģijā tiek uzskatīts, ka loģika 1 ir recesīva, bet loģika 0 ir dominējoša. Ja CAN augstā līnija un CAN zemā līnija tiek pielietota ar 2,5 voltiem, faktiskais diferenciālais spriegums būtu nulle voltu. Nulles voltu CAN kopnē CAN raiduztvērējs nolasa kā recesīvo vai loģisko 1. Nulles voltu CAN kopnē ir ideāls kopnes stāvoklis. Ja CAN augsto līniju pavelk līdz 3,5 voltiem un CAN zemo līniju novelk līdz 1,5 voltiem, kopnes faktiskais diferenciālais spriegums būtu 2 volti. CAN raiduztvērējs to apstrādā kā dominējošo bitu vai loģisko 0. Ja kopnes stāvoklis tiek sasniegts līdz dominējošajam vai loģikai 0, tad pāriet uz recesīvo stāvokli ar jebkuru citu mezglu kļūtu neiespējami.
Galvenie punkti, kas iegūti no CAN raksturlielumiem
- Loģika 1 ir recesīvs stāvoklis. Lai pārraidītu 1 uz CAN kopnes, gan CAN augsts, gan CAN zems ir jāpieslēdz ar 2,5 V.
- Loģika 0 ir dominējošais stāvoklis. Lai pārraidītu 0 uz CAN kopnes, CAN high ir jāpieliek pie 3,5 V un CAN zemais ir jāpieliek pie 1,5 V.
- Autobusa ideālais stāvoklis ir recesīvs.
- Ja mezgls sasniedz dominējošo stāvokli, tas nevar atgriezties recesīvā stāvoklī ar citu mezglu.
CAN kopnes loģika
No iepriekš minētā scenārija mēs uzzinām, ka dominējošais stāvoklis pārraksta recesīvo stāvokli. Kad mezgls vienlaikus nosūta dominējošo un recesīvo bitu, kopne paliek dominējoša. Recesīvais līmenis notiek tikai tad, kad visi mezgli nosūta recesīvo bitu. Šāda loģika ir pazīstama kā UN loģika, un fiziski tā tiek realizēta kā atvērta kolektora ķēde.
CAN komunikācijas princips
Kā zināms, ziņojums tiek nosūtīts, pamatojoties uz šķīrējtiesas laukā iestatīto prioritāti. Standarta kadram ziņojuma identifikators ir 11 biti, savukārt paplašinātajam kadram ziņojuma identifikators ir 29 biti. Tas ļauj sistēmas izstrādātājam izveidot ziņojuma identifikatoru pašā dizainā. Jo mazāks ir ziņojuma identifikators, jo augstāka būs ziņojuma prioritāte.
Sapratīsim, kā darbojas šķīrējtiesa, izmantojot plūsmas diagrammu.
Sūtītājs vēlas nosūtīt ziņojumu un gaida, kamēr CAN kopne pārstās dīkstāvē. Ja CAN kopne ir dīkstāvē, sūtītājs nosūta SOF vai dominējošo bitu kopnes piekļuvei. Pēc tam tas nosūta ziņojuma identifikatora bitu visnozīmīgākajā bitā. Ja mezgls nosaka dominējošo bitu kopnē, kamēr tas ir pārsūtījis recesīvo bitu, tas nozīmē, ka mezgls ir zaudējis šķīrējtiesu un pārtrauc turpmāko bitu pārraidi. Sūtītājs gaidīs un atkārtoti nosūtīs ziņojumu, tiklīdz autobuss būs brīvs.
CAN arbitrāžas piemērs
Ja ņemam vērā trīs mezglus, t.i., 1., 2. un 3. mezglu, šo mezglu ziņojumu identifikatori ir attiecīgi 0x7F3, 0x6B3 un 0x6D9.
Visu trīs mezglu pārraide ar nozīmīgāko bitu ir parādīta iepriekš redzamajā diagrammā.
vienpadsmitthbits: tā kā visi trīs mezglu biti ir recesīvi, kopnes bits arī paliks recesīvs.
10thbits: visiem mezgliem ir 10. bits kā recesīvs, tāpēc kopne arī paliks recesīva.
mysql parādīt visus lietotājus
9thbits: 1. mezglam ir recesīvs bits, savukārt citiem mezgliem ir dominējošais bits, tāpēc kopne arī paliks dominējoša. Šajā gadījumā mezgls 1 ir zaudējis arbitrāžu, tāpēc tas pārtrauc bitu sūtīšanu.
8thbits: gan mezgls 2, gan mezgls 3 sūta recesīvo bitu, lai kopnes stāvoklis paliktu recesīvs.
7thbits: mezgls 2 sūta dominējošo bitu, bet mezgls 3 ir nosūtījis recesīvo bitu, lai kopnes stāvoklis paliktu dominējošs. Šajā gadījumā mezgls 3 ir zaudējis šķīrējtiesu, tāpēc tas pārtrauc ziņojuma sūtīšanu, kamēr mezgls 2 ir uzvarējis arbitrāžā, tas nozīmē, ka tas turpinās aizturēt kopni, līdz tiks saņemts ziņojums.