Įsėdote į savo automobilį, paspaudėte užvedimo mygtuką ir variklis akimirksniu atgijo, bet kaip jūsų automobilis nusprendė, užsivesti ar ne?
Na, o kad automobilis užsivestų, su rakto pakabuku susisiekė kelios antenos ir elektroniniai valdymo blokai. Valdiklio srities tinklo (CAN) protokolas užtikrina, kad ryšys tarp jūsų rakto pakabos, antenų ir ECU tinkamai vyktų jūsų automobilio viduje.
Taigi, kas yra CAN protokolas ir kaip jis padeda jūsų transporto priemonės sistemų įrenginiams veikti kartu? Na, išsiaiškinkime.
Kas yra CAN protokolas ir kodėl jo reikia?
Anksčiau automobiliuose nebuvo daug elektronikos. Tiesą sakant, jei norėjote užvesti savo transporto priemonę XX a. pradžioje, turėjote išlipti iš transporto priemonės ir ranka užvesti variklį.
Šiandieniniai automobiliai, atvirkščiai, turi kelis elektroninius jutiklius, o elektroniniai prietaisai stebi viską – nuo salono temperatūros iki alkūninio veleno apsisukimų.
Tai reiškia, kad iš šių jutiklių gauti duomenys nėra vertingi, kol jie nėra apdoroti. Šį duomenų apdorojimą atlieka kompiuteriniai įrenginiai, vadinami elektroniniais valdymo blokais (ECU).
Skirtingai nuo kompiuterio su vienu CPU, automobilis turi keletą ECU, kurių kiekvienas yra atsakingas už tam tikros užduoties atlikimą. Nors šie ECU gali efektyviai atlikti vieną užduotį, jie turi veikti kartu, kad užtikrintų tokias funkcijas kaip ABS ir ESC tinkamai dirbti.
Dėl šios priežasties visi automobilio ECU turi būti prijungti. Norint sukurti šiuos ryšius, galima naudoti „point-to-point“ topologiją, kai kiekvienas ECU yra tiesiogiai prijungtas prie kiekvieno kito ECU. Tačiau ši architektūra padarys sistemą sudėtingą. Tiesą sakant, šiuolaikinė transporto priemonė turi daugiau nei 70 ekiu, o juos sujungus vienas su vienu, laidų svoris padidėtų eksponentiškai.
Norėdami išspręsti šią problemą, „Bosch“ kartu su „Mercedes-Benz“ ir „Intel“ 1986 m. sukūrė „Controller Area Network“ protokolą. Šis protokolas leido ECU susisiekti vienas su kitu naudojant bendrą duomenų magistralę, žinomą kaip CAN magistralė.
Kaip veikia CAN?
CAN protokolas yra žinutėmis pagrįsta komunikacijos metodika, kuri remiasi vytos poros kabelių rinkiniu duomenų perdavimui. Šie laidai yra žinomi kaip CAN high ir CAN low.
Kad būtų galima perduoti duomenis šiais laidais, keičiami jų įtampos lygiai. Šie įtampos lygių pokyčiai tada paverčiami loginiais lygiais, leidžiančiais automobilio ECU susisiekti vienas su kitu.
Norint perduoti logiką CAN magistrale, abiejų linijų įtampa yra nustatyta 2,5 volto. Ši būsena taip pat žinoma kaip recesyvinė būsena, o tai reiškia, kad CAN magistralę galima naudoti bet kuriam ECU.
Priešingai, logika 0 perduodama CAN magistrale, kai CAN aukštojoje linijoje yra 3,5 volto įtampa, o žemoje CAN linijoje – 1,5 volto. Ši magistralės būsena taip pat žinoma kaip dominuojanti būsena, kuri kiekvienam sistemos ECU nurodo, kad yra kitas ECU perduoda, todėl jie turėtų palaukti, kol siuntimas baigsis, prieš pradėdami siųsti savo pranešimą.
Norint įjungti šiuos įtampos pokyčius, automobilio ECU prijungiami prie CAN magistralės per CAN siųstuvą-imtuvą ir CAN valdiklį. Siųstuvas-imtuvas yra atsakingas už CAN magistralės įtampos lygių konvertavimą į lygius, kuriuos ECU gali suprasti. Kita vertus, duomenų valdytojas yra naudojamas gautų duomenų tvarkymui ir protokolo reikalavimų įvykdymui užtikrinti.
Visi šie ECU, prijungti prie CAN magistralės, gali perduoti duomenis susuktu kabeliu, tačiau yra užklijavimas, CAN magistrale galima perduoti tik aukščiausio prioriteto pranešimą. Norėdami suprasti, kaip ECU perduoda duomenis CAN magistrale, turime suprasti CAN protokolo pranešimų struktūrą.
Suprasti CAN protokolo pranešimų struktūrą
Kai du ECU nori susisiekti, toliau nurodytos struktūros pranešimai perduodami CAN magistrale.
Šie pranešimai perduodami keičiant CAN magistralės įtampos lygius, o susuktos poros CAN laidų konstrukcija neleidžia sugadinti duomenų perdavimo metu.
- SOF: SOF bitas yra vieno dominuojančio bito duomenų rėmelis. Šį bitą mazgas perduoda, kai nori siųsti duomenis CAN magistrale.
- Identifikatorius: CAN protokolo identifikatorius gali būti 11 bitų arba 29 bitų dydžio. Identifikatoriaus dydis priklauso nuo naudojamo CAN protokolo versijos. Jei naudojama išplėstinė CAN versija, tada identifikatoriaus dydis yra 29 bitai, o kitais atvejais identifikatoriaus dydis yra 11 bitų. Pagrindinis identifikatoriaus tikslas yra nustatyti pranešimo prioritetą.
- RTR: Nuotolinio perdavimo užklausą arba RTR naudoja mazgas, kai reikia prašyti duomenų iš kito mazgo. Norėdami tai padaryti, mazgas, kuris nori duomenų, siunčia pranešimą su recesyviniu bitu RTR kadre į numatytą mazgą.
- DLC: Duomenų ilgio kodas apibrėžia duomenų lauke perduodamų duomenų dydį.
- Duomenų laukas: Šiame lauke yra naudingi duomenys. Šios naudingosios apkrovos dydis yra 8 baitai, tačiau naujesni protokolai, tokie kaip CAN FD, padidina šios naudingosios apkrovos dydį iki 64 baitų.
- CRC: Ciklinio perteklinio patikrinimo trumpinys, CRC laukas yra klaidų tikrinimo rėmelis. Tas pats yra 15 bitų ir jį apskaičiuoja tiek imtuvas, tiek siųstuvas. Perduodantis mazgas sukuria CRC duomenims, kai jie perduodami. Gavęs duomenis, imtuvas apskaičiuoja gautų duomenų CRC. Jei abu CRC sutampa, patvirtinamas duomenų vientisumas. Jei ne, duomenys turi klaidų.
- Patvirtinimo laukas: Kai duomenys gaunami ir juose nėra klaidų, priimantis mazgas perduoda dominuojantį bitą į patvirtinimo rėmelį ir siunčia jį atgal į siųstuvą. Tai praneša siųstuvui, kad duomenys buvo gauti ir kad juose nėra klaidų.
- Kadro pabaiga: Užbaigus duomenų perdavimą, perduodami septyni iš eilės recesyviniai bitai. Tai užtikrina, kad visi mazgai žinotų, kad mazgas baigė duomenų perdavimą, ir gali perduoti duomenis magistrale.
Be aukščiau nurodytų bitų, CAN protokole yra keletas bitų, rezervuotų naudoti ateityje.
CAN supaprastinimas naudojant pavyzdį
Dabar, kai turime pagrindinį supratimą apie tai, kaip atrodo pranešimas CAN magistralėje, galime suprasti, kaip duomenys perduodami tarp skirtingų ECU.
Paprastumo dėlei tarkime, kad mūsų automobilyje yra 3 ECU: 1 mazgas, 2 mazgas ir 3 mazgas. Iš 3 ECU 1 ir 2 mazgas nori susisiekti su 3 mazgu.
Pažiūrėkime, kaip CAN protokolas padeda užtikrinti ryšį tokiu atveju.
- Autobuso būklės aptikimas: Visi automobilio ECU yra prijungti prie CAN magistralės. Mūsų pavyzdžio atveju 1 mazgas ir 2 mazgas nori siųsti duomenis į kitą ECU; Prieš tai darydami abu ECU turi patikrinti CAN magistralės būseną. Jei magistralė yra dominuojančios būsenos, ECU negali perduoti duomenų, nes magistralė yra naudojama. Kita vertus, jei magistralė yra recesyvinės būsenos, ECU gali perduoti duomenis.
- Kadro pradžios siuntimas: Jei CAN magistralės diferencinė įtampa lygi nuliui, tiek 1, tiek 2 mazgas pakeičia magistralės būseną į dominuojančią. Norėdami tai padaryti, CAN aukšto įtampa padidinama iki 3,5 volto, o CAN žemos įtampos įtampa sumažinama iki 1,5 volto.
- Nuspręskite, kuris mazgas gali pasiekti magistralę: Išsiuntus SOF, abu mazgai varžosi dėl prieigos prie CAN magistralės. CAN magistralė naudoja „Carrier Sense Multiple Access/Collision Detection“ (CSMA/CD) protokolą, kad nuspręstų, kuris mazgas gauna prieigą. Šis protokolas palygina abiejų mazgų perduodamus identifikatorius ir suteikia prieigą prie aukštesnio prioriteto.
- Siunčiami duomenys: Kai mazgas turi prieigą prie magistralės, duomenų laukas kartu su CRC siunčiamas imtuvui.
- Ryšio patikrinimas ir nutraukimas: Gavęs duomenis, 3 mazgas patikrina gautų duomenų CRC. Jei klaidų nėra, 3 mazgas siunčia CAN pranešimą siunčiančiam mazgui su dominuojančiu bitu patvirtinimo rėmelyje kartu su EOF, kad nutrauktų ryšį.
Įvairūs CAN tipai
Nors CAN protokolo naudojama pranešimų struktūra išlieka ta pati, duomenų perdavimo greitis ir duomenų bitų dydis keičiami siekiant perduoti didesnio pločio duomenų.
Dėl šių skirtumų CAN protokolas turi skirtingas versijas, o jų apžvalga pateikiama toliau:
- Didelės spartos CAN: Duomenys CAN laiduose perduodami nuosekliai, o šis perdavimas gali būti atliekamas skirtingu greičiu. Didelės spartos CAN atveju šis greitis yra 1 Mbps. Dėl šio didelio duomenų perdavimo greičio didelės spartos skardinės naudojamos ECU, valdančios jėgos pavarą ir saugos sistemas.
- Mažo greičio CAN: Mažos spartos CAN atveju duomenų perdavimo sparta sumažinama iki 125 kbps. Kadangi mažas greitis gali pasiūlyti mažesnį duomenų perdavimo spartą, jis naudojamas prijungti ECU, kurie valdo keleivio komfortą, pavyzdžiui, oro kondicionierių ar informacijos ir pramogų sistemą.
- Ar galima FD: CAN lankstaus duomenų perdavimo spartos trumpinys CAN FD yra naujausia CAN protokolo versija. Tai padidina duomenų kadro dydį iki 64 baitų ir leidžia ECU perduoti duomenis nuo 1 Mbps iki 8 Mbps greičiu. Šį duomenų perdavimo greitį ECU gali valdyti realiu laiku pagal sistemos reikalavimus, todėl duomenis galima perduoti didesniu greičiu.
Kokia yra automobilių komunikacijos ateitis?
CAN protokolas leidžia keliems ECU bendrauti tarpusavyje. Šis ryšys įgalina saugos funkcijas, tokias kaip elektroninė stabilumo kontrolė ir pažangios vairuotojo pagalbos sistemos, pvz., aklosios zonos aptikimas ir prisitaikanti pastovaus greičio palaikymo sistema.
Vis dėlto, atsiradus pažangioms funkcijoms, tokioms kaip autonominis vairavimas, CAN magistralės perduodamų duomenų kiekis didėja eksponentiškai. Norint įjungti šias funkcijas, į rinką patenka naujesnės CAN protokolo versijos, pvz., CAN FD.