Istusite autosse, vajutasite käivitusnuppu ja mootor ärkas hetkega ellu, kuid kuidas teie auto otsustas, kas see peaks käima või mitte?

Noh, et auto käima saada, suhtlesid võtmehoidjaga mitmed antennid ja elektroonilised juhtplokid. Controller Area Network (CAN) protokoll tagab teie võtmehoidja, antennide ja ECU-de vahelise suhtluse teie autos õigesti.

Mis on CAN-protokoll ja kuidas see aitab teie sõiduki süsteemide seadmetel koos töötada? Noh, uurime välja.

Mis on CAN-protokoll ja miks seda vaja on?

Tol ajal ei olnud autodel palju elektroonikat. Tegelikult, kui tahtsite oma sõidukit 1900. aastate alguses käivitada, pidite autost välja tulema ja mootorit käsitsi väntama.

Tänapäeva autodel on vastupidi mitu elektroonilist andurit ja elektroonikaseadmed jälgivad kõike alates salongi temperatuurist kuni väntvõlli pöörete arvuni.

Sellegipoolest pole nendelt anduritelt saadud andmetel väärtust enne, kui neid töödeldakse. Seda andmetöötlust teostavad arvutusseadmed, mida nimetatakse elektroonilisteks juhtseadmeteks (ECU).

instagram viewer
Pildi tiitrid: SenseiAlan/Flickr

Erinevalt ühe protsessoriga arvutist on autol mitu ECU-d, millest igaüks vastutab konkreetse ülesande täitmise eest. Kuigi need ECU-d suudavad tõhusalt täita ühte ülesannet, peavad nad tegema koostööd, et tagada sellised funktsioonid nagu ABS ja ESC korralikult töötama.

Seetõttu tuleb kõik auto ECU-d ühendada. Nende ühenduste loomiseks võiks kasutada punkt-punkti topoloogiat, kus iga ECU on otse ühendatud iga teise ECU-ga. Selline arhitektuur muudaks aga süsteemi keeruliseks. Tegelikult on kaasaegsel sõidukil üle 70 eküüd ja nende üks-ühele ühendamine suurendaks juhtmestiku massi plahvatuslikult.

Selle probleemi lahendamiseks lõi Bosch koos Mercedes-Benzi ja Inteliga 1986. aastal Controller Area Networki protokolli. See protokoll võimaldas ECU-del üksteisega suhelda, kasutades jagatud andmesiini, mida tuntakse CAN-siinina.

Kuidas CAN töötab?

CAN-protokoll on sõnumipõhine sidemetoodika, mis tugineb andmeedastuseks keerdpaarkaablite komplektile. Neid juhtmeid tuntakse kui CAN high ja CAN low.

Andmeedastuse võimaldamiseks nendel juhtmetel muudetakse nende pingetaset. Need pingetasemete muutused tõlgitakse seejärel loogilisteks tasemeteks, mis võimaldavad auto ECU-del üksteisega suhelda.

Pildi krediit: Spinningspark/Wikimedia

Loogika edastamiseks CAN siinil on mõlema liini pingeks seatud 2,5 volti. Seda olekut nimetatakse ka retsessiivseks olekuks, mis tähendab, et CAN-siin on saadaval kasutamiseks iga ECU jaoks.

Vastupidi, loogika 0 edastatakse CAN siinil, kui CAN kõrge liini pinge on 3,5 volti ja CAN madal joon on 1,5 volti. Seda siini olekut tuntakse ka domineeriva olekuna, mis ütleb igale süsteemi ECU-le, et on teine ​​ECU edastab, seega peaksid nad ootama, kuni edastus on lõppenud, enne kui nad hakkavad oma sõnumit edastama.

Nende pingemuutuste võimaldamiseks on auto ECU-d ühendatud CAN-siiniga CAN-transiiveri ja CAN-kontrolleri kaudu. Transiiver vastutab CAN-siini pingetasemete teisendamise eest tasemetele, millest ECU aru saab. Vastutav töötleja seevastu kasutatakse vastuvõetud andmete haldamiseks ja protokolli nõuete täitmise tagamiseks.

Kõik need CAN-siiniga ühendatud ECU-d suudavad andmeid keerutatud kaablil edastada, kuid siin on konks, CAN-siinil saab edastada ainult kõrgeima prioriteediga sõnumit. Et mõista, kuidas ECU CAN-siinil andmeid edastab, peame mõistma CAN-protokolli sõnumistruktuuri.

CAN-protokolli sõnumistruktuuri mõistmine

Kui kaks ECU-d soovivad suhelda, edastatakse alloleva struktuuriga teated CAN-siinil.

Need sõnumid edastatakse CAN-siini pingetasemeid muutes ja CAN-juhtmete keerdpaarkonstruktsioon takistab andmete rikkumist edastamise ajal.

  • SOF: Lühidalt kaadri algusest on SOF-bit üks domineeriv bitiandmekaader. Selle biti edastab sõlm, kui see soovib saata andmeid CAN-siinil.
  • Identifikaator: CAN-protokolli identifikaator võib olla kas 11-bitine või 29-bitine. Identifikaatori suurus põhineb kasutatava CAN-protokolli versioonil. Kui kasutatakse CAN-i laiendatud versiooni, siis on identifikaatori suurus 29 bitti ja muudel juhtudel on identifikaatori suurus 11 bitti. Identifikaatori peamine eesmärk on tuvastada sõnumi prioriteet.
  • RTR: Kaugedastuse taotlust või RTR-i kasutab sõlm, kui andmeid on vaja küsida teiselt sõlmelt. Selleks saadab andmeid sooviv sõlm soovitud sõlmele sõnumi retsessiivse bitiga RTR-kaadris.
  • DLC: Andmepikkuse kood määrab andmeväljal edastatavate andmete suuruse.
  • Andmeväli: See väli sisaldab andmekoormust. Selle kasuliku koormuse suurus on 8 baiti, kuid uuemad protokollid nagu CAN FD suurendavad selle kasuliku koormuse suuruse 64 baidini.
  • CRC: Lühidalt sõnast Cyclic Redundancy Check, CRC väli on veakontrolli raam. Sama suurus on 15 bitti ja selle arvutavad välja nii vastuvõtja kui ka saatja. Edastav sõlm loob edastamisel andmetele CRC. Andmete vastuvõtmisel arvutab vastuvõtja vastuvõetud andmete CRC. Kui mõlemad CRC-d ühtivad, kinnitatakse andmete terviklikkus. Kui ei, on andmetes vigu.
  • Kinnitusväli: Kui andmed on vastu võetud ja vigadeta, annab vastuvõttev sõlm domineeriva biti kinnituskaadrisse ja saadab selle tagasi saatjale. See annab saatjale teada, et andmed on vastu võetud ja vigadeta.
  • Kaadri lõpp: Kui andmeedastus on lõpetatud, edastatakse seitse järjestikust retsessiivset bitti. See tagab, et kõik sõlmed teavad, et sõlm on andmeedastuse lõpetanud, ja saavad andmeid siinis edastada.

Lisaks ülaltoodud bittidele on CAN-protokollil mõned tulevaseks kasutamiseks reserveeritud bitid.

CAN-i lihtsustamine näite kaudu

Nüüd, kui meil on põhiteadmised sellest, kuidas CAN-siini sõnum välja näeb, saame aru, kuidas andmeid erinevate ECU-de vahel edastatakse.

Lihtsuse huvides oletame, et meie autol on 3 ECU-d: sõlm 1, sõlm 2 ja sõlm 3. Kolmest ECU-st soovivad sõlm 1 ja sõlm 2 suhelda sõlmega 3.

Vaatame, kuidas CAN-protokoll aitab sellise stsenaariumi korral sidet tagada.

  • Bussi oleku tuvastamine: Kõik autol olevad ECU-d on ühendatud CAN-siiniga. Meie näite puhul soovivad sõlm 1 ja sõlm 2 saata andmeid teise ECU-sse; enne seda peavad mõlemad ECU-d kontrollima CAN-siini olekut. Kui siin on domineerivas olekus, ei saa ECU-d andmeid edastada, kuna siin on kasutusel. Teisest küljest, kui siin on retsessiivses olekus, saavad ECU-d andmeid edastada.
  • Kaadri alguse saatmine: Kui diferentsiaalpinge CAN siinil on null, muudavad nii sõlm 1 kui ka sõlm 2 siini oleku domineerivaks. Selleks tõstetakse CAN-i kõrge pinge 3,5-ni ja CAN-madala pinge vähendatakse 1,5-ni.
  • Otsustamine, milline sõlm pääseb siinile juurde: Kui SOF on saadetud, võistlevad mõlemad sõlmed CAN-siinile juurdepääsu nimel. CAN-siin kasutab CSMA/CD (Carrier Sense Multiple Access/Collision Detection) protokolli, et otsustada, milline sõlm saab juurdepääsu. See protokoll võrdleb mõlema sõlme edastatud identifikaatoreid ja annab juurdepääsu kõrgema prioriteediga sõlmele.
  • Andmete saatmine: Kui sõlmel on juurdepääs siinile, saadetakse andmeväli koos CRC-ga vastuvõtjale.
  • Side kontrollimine ja lõpetamine: Andmete vastuvõtmisel kontrollib sõlm 3 vastuvõetud andmete CRC-d. Kui tõrkeid pole, saadab sõlm 3 edastavale sõlmele CAN-teate kinnituskaadri domineeriva bitiga koos EOF-iga, et side lõpetada.

Erinevat tüüpi CAN

Kuigi CAN-protokolli kasutatav sõnumistruktuur jääb samaks, muudetakse andmeedastuse kiirust ja andmebittide suurust, et edastada andmeid suurema ribalaiusega.

Nende erinevuste tõttu on CAN-protokollil erinevad versioonid ja nendest on ülevaade allpool:

  • Kiire CAN: CAN-juhtmete andmeid edastatakse järjestikku ja seda saab teha erineva kiirusega. Kiire CAN-i puhul on see kiirus 1 Mbps. Tänu sellele suurele andmeedastuskiirusele kasutatakse suure kiirusega purki ECU-de jaoks, mis juhivad jõuülekannet ja turvasüsteeme.
  • Madala kiirusega CAN: Madala kiirusega CAN-i puhul vähendatakse andmete edastamise kiirust 125 kbps-ni. Kuna väike kiirus võib pakkuda väiksemat andmeedastuskiirust, kasutatakse seda ECU-de ühendamiseks, mis juhivad reisija mugavust, nagu kliimaseade või teabe- ja meelelahutussüsteem.
  • Kas FD: Lühidalt CAN-i paindlikust andmeedastuskiirusest on CAN FD CAN-protokolli uusim versioon. See suurendab andmekaadri suurust 64 baidini ja võimaldab ECU-del edastada andmeid kiirusega 1 Mbps kuni 8 Mbps. Seda andmeedastuskiirust saavad ECU-d süsteeminõuete alusel reaalajas hallata, võimaldades andmete edastamist suurema kiirusega.

Mis on autotööstuse kommunikatsiooni tulevik?

CAN-protokoll võimaldab mitmel ECU-l üksteisega suhelda. See side võimaldab kasutada selliseid turvafunktsioone nagu elektrooniline stabiilsuskontroll ja täiustatud juhiabisüsteemid, nagu pimeala tuvastamine ja adaptiivne püsikiiruse regulaator.

See tähendab, et täiustatud funktsioonide, nagu autonoomne sõit, tulekuga kasvab CAN-siini poolt edastatavate andmete hulk plahvatuslikult. Nende funktsioonide lubamiseks on turule tulemas CAN-protokolli uuemad versioonid, nagu CAN FD.