Jūs iekāpāt savā automašīnā, nospiedāt starta pogu, un dzinējs ātri atdzīvojās, bet kā jūsu automašīna izlēma, vai tai vajadzētu iedarbināt vai nē?
Nu, lai automašīna iedarbinātu, vairākas antenas un elektroniskie vadības bloki sazinājās ar atslēgas piekariņu. Controller Area Network (CAN) protokols nodrošina, ka saziņa starp jūsu atslēgu piekariņu, antenām un ECU notiek atbilstoši jūsu automašīnā.
Tātad, kas ir CAN protokols un kā tas palīdz ierīcēm jūsu transportlīdzekļa sistēmās strādāt kopā? Nu, noskaidrosim.
Kas ir CAN protokols un kāpēc tas ir vajadzīgs?
Toreiz automašīnās nebija daudz elektronikas. Faktiski, ja vēlējāties iedarbināt savu transportlīdzekli 1900. gadu sākumā, jums bija jāizkāpj no transportlīdzekļa un ar roku jākustina dzinējs.
Mūsdienu automašīnām, gluži pretēji, ir vairāki elektroniskie sensori, un elektroniskās ierīces uzrauga visu, sākot no salona temperatūras līdz kloķvārpstas apgriezieniem.
Tomēr no šiem sensoriem saņemtajiem datiem nav nozīmes, kamēr tie nav apstrādāti. Šo datu apstrādi veic skaitļošanas ierīces, kas pazīstamas kā elektroniskās vadības bloki (ECU).
Atšķirībā no datora ar vienu centrālo procesoru, automašīnai ir vairāki ECU, no kuriem katrs ir atbildīgs par noteikta uzdevuma veikšanu. Lai gan šie ECU var efektīvi veikt vienu uzdevumu, tiem ir jāstrādā kopā, lai nodrošinātu tādas funkcijas kā ABS un ESC strādāt pareizi.
Sakarā ar to visi automašīnas ECU ir jāpievieno. Lai izveidotu šos savienojumus, varētu izmantot punktu-punktu topoloģiju, kur katrs ECU ir tieši savienots ar katru citu ECU. Tomēr šī arhitektūra padarītu sistēmu sarežģītu. Faktiski mūsdienu transportlīdzeklim ir vairāk nekā 70 ECU, un to savienošana viens pret vienu palielinātu vadu svaru eksponenciāli.
Lai atrisinātu šo problēmu, Bosch kopā ar Mercedes-Benz un Intel 1986. gadā izveidoja Controller Area Network protokolu. Šis protokols ļāva ECU sazināties vienam ar otru, izmantojot koplietojamo datu kopni, kas pazīstama kā CAN kopne.
Kā CAN darbojas?
CAN protokols ir uz ziņojumiem balstīta saziņas metodika, kas balstās uz vītā pāra kabeļu komplektu datu pārraidei. Šie vadi ir pazīstami kā CAN high un CAN low.
Lai iespējotu datu pārraidi pa šiem vadiem, tiek mainīti to sprieguma līmeņi. Šīs sprieguma līmeņu izmaiņas pēc tam tiek pārvērstas loģiskajos līmeņos, kas ļauj automašīnas ECU sazināties vienam ar otru.
Lai pārsūtītu loģiku uz CAN kopnes, abu līniju spriegums ir iestatīts uz 2,5 voltiem. Šis stāvoklis ir pazīstams arī kā recesīvs stāvoklis, kas nozīmē, ka CAN kopne ir pieejama lietošanai ar jebkuru ECU.
Gluži pretēji, loģiskā 0 tiek pārraidīta uz CAN kopnes, kad CAN augstajai līnijai ir 3,5 voltu spriegums un CAN zemajai līnijai ir 1,5 volti. Šis kopnes stāvoklis ir pazīstams arī kā dominējošais stāvoklis, kas katram sistēmas ECU norāda, ka cits ECU pārraida, tāpēc viņiem ir jāgaida, līdz pārraide ir beigusies, pirms viņi sāk pārraidīt ziņojumu.
Lai iespējotu šīs sprieguma izmaiņas, automašīnas ECU ir savienotas ar CAN kopni, izmantojot CAN raiduztvērēju un CAN kontrolieri. Raiduztvērējs ir atbildīgs par CAN kopnes sprieguma līmeņu pārveidošanu ECU saprotamos līmeņos. Savukārt pārzinis tiek izmantots, lai pārvaldītu saņemtos datus un nodrošinātu protokola prasību izpildi.
Visi šie CAN kopnei pievienotie ECU var pārraidīt datus pa savītu kabeli, taču ir āķis, pa CAN kopni var pārsūtīt tikai ziņojumu ar augstāko prioritāti. Lai saprastu, kā ECU pārsūta datus CAN kopnē, mums ir jāsaprot CAN protokola ziņojumu struktūra.
Izpratne par CAN protokola ziņojumu struktūru
Ikreiz, kad divi ECU vēlas sazināties, ziņojumi ar tālāk norādīto struktūru tiek pārsūtīti uz CAN kopnes.
Šie ziņojumi tiek pārsūtīti, mainot sprieguma līmeņus CAN kopnē, un CAN vadu vītā pāra dizains novērš datu bojājumus pārraides laikā.
- SOF: Saīsinājums no “Start Of Frame” — SOF bits ir viena dominējošā bita datu rāmis. Šo bitu pārsūta mezgls, kad tas vēlas nosūtīt datus CAN kopnē.
- Identifikators: CAN protokola identifikators var būt 11 bitu vai 29 bitu liels. Identifikatora lielums ir balstīts uz izmantotā CAN protokola versiju. Ja tiek izmantota CAN paplašinātā versija, tad identifikatora izmērs ir 29 biti, bet citos gadījumos identifikatora izmērs ir 11 biti. Identifikatora galvenais mērķis ir noteikt ziņojuma prioritāti.
- RTR: Attālās pārraides pieprasījumu vai RTR izmanto mezgls, kad dati ir jāpieprasa no cita mezgla. Lai to izdarītu, mezgls, kas vēlas iegūt datus, nosūta ziņojumu ar recesīvu bitu RTR kadrā uz paredzēto mezglu.
- DLC: Datu garuma kods nosaka datu laukā pārsūtāmo datu lielumu.
- Datu lauks: Šajā laukā ir ietverta lietderīgā slodze. Šīs lietderīgās slodzes lielums ir 8 baiti, bet jaunāki protokoli, piemēram, CAN FD, palielina šīs kravas lielumu līdz 64 baitiem.
- CRC: Saīsinājums no cikliskās atlaišanas pārbaudes, CRC lauks ir kļūdu pārbaudes rāmis. Tas pats ir 15 bitu lielums, un to aprēķina gan uztvērējs, gan raidītājs. Pārraides mezgls izveido CRC datiem, kad tie tiek pārraidīti. Saņemot datus, uztvērējs aprēķina saņemto datu CRC. Ja abi CRC atbilst, tiek apstiprināta datu integritāte. Ja nē, datos ir kļūdas.
- Apstiprinājuma lauks: Kad dati ir saņemti un tajos nav kļūdu, saņemšanas mezgls ievada dominējošo bitu apstiprinājuma rāmī un nosūta to atpakaļ raidītājam. Tas paziņo raidītājam, ka dati ir saņemti un tajos nav kļūdu.
- Kadra beigas: Kad datu pārraide ir pabeigta, tiek pārsūtīti septiņi secīgi recesīvie biti. Tas nodrošina, ka visi mezgli zina, ka mezgls ir pabeidzis datu pārraidi, un tie var pārsūtīt datus kopnē.
Papildus iepriekš minētajiem bitiem CAN protokolā ir daži biti, kas rezervēti turpmākai lietošanai.
CAN vienkāršošana, izmantojot piemēru
Tagad, kad mums ir pamata izpratne par to, kā izskatās ziņojums CAN kopnē, mēs varam saprast, kā dati tiek pārsūtīti starp dažādiem ECU.
Vienkāršības labad pieņemsim, ka mūsu automašīnai ir 3 ECU: Node 1, Node 2 un Node 3. No 3 ECU 1. un 2. mezgls vēlas sazināties ar 3. mezglu.
Apskatīsim, kā CAN protokols palīdz nodrošināt saziņu šādā scenārijā.
- Autobusa stāvokļa noteikšana: Visi automašīnas ECU ir savienoti ar CAN kopni. Mūsu piemēra gadījumā Node 1 un Node 2 vēlas nosūtīt datus uz citu ECU; Pirms to darīt, abiem ECU ir jāpārbauda CAN kopnes stāvoklis. Ja kopne ir dominējošā stāvoklī, ECU nevar pārsūtīt datus, jo kopne tiek izmantota. No otras puses, ja kopne ir recesīvā stāvoklī, ECU var pārsūtīt datus.
- Kadra sākuma nosūtīšana: Ja diferenciālais spriegums uz CAN kopnes ir nulle, gan 1., gan 2. mezgls maina kopnes stāvokli uz dominējošo. Lai to izdarītu, CAN augsts spriegums tiek paaugstināts līdz 3,5 voltiem, bet CAN zemais spriegums tiek samazināts līdz 1,5 voltiem.
- Izlemjot, kurš mezgls var piekļūt kopnei: Kad SOF ir nosūtīts, abi mezgli sacenšas, lai piekļūtu CAN kopnei. CAN kopne izmanto Carrier Sense Multiple Access/Collision Detection (CSMA/CD) protokolu, lai izlemtu, kuram mezglam ir piekļuve. Šis protokols salīdzina abu mezglu pārsūtītos identifikatorus un nodrošina piekļuvi tam, kuram ir augstāka prioritāte.
- Datu sūtīšana: Kad mezglam ir piekļuve kopnei, datu lauks kopā ar CRC tiek nosūtīts uztvērējam.
- Saziņas pārbaude un pārtraukšana: Saņemot datus, 3. mezgls pārbauda saņemto datu CRC. Ja kļūdu nav, 3. mezgls nosūta CAN ziņojumu pārraides mezglam ar dominējošo bitu apstiprinājuma rāmī kopā ar EOF, lai pārtrauktu komunikāciju.
Dažādi CAN veidi
Lai gan CAN protokola izmantotā ziņojumu struktūra paliek nemainīga, datu pārraides ātrums un datu bitu lielums tiek mainīts, lai pārsūtītu lielāku datu joslas platumu.
Šo atšķirību dēļ CAN protokolam ir dažādas versijas, un tālāk ir sniegts to pārskats:
- Ātrgaitas CAN: Dati par CAN vadiem tiek pārsūtīti sērijveidā, un šo pārraidi var veikt dažādos ātrumos. Ātrgaitas CAN šis ātrums ir 1 Mbps. Pateicoties šim lielajam datu pārraides ātrumam, liela ātruma kanna tiek izmantota ECU, kas kontrolē spēka piedziņu un drošības sistēmas.
- Zema ātruma CAN: Zema ātruma CAN gadījumā datu pārraides ātrums tiek samazināts līdz 125 kbps. Tā kā mazais ātrums var piedāvāt mazāku datu pārraides ātrumu, tas tiek izmantots, lai savienotu ECU, kas pārvalda pasažiera komfortu, piemēram, gaisa kondicionētāju vai informācijas un izklaides sistēmu.
- Var FD: Saīsinājums no CAN elastīgā datu ātruma, CAN FD ir jaunākā CAN protokola versija. Tas palielina datu rāmja izmēru līdz 64 baitiem un ļauj ECU pārsūtīt datus ar ātrumu no 1 Mbps līdz 8 Mbps. Šo datu pārraides ātrumu var pārvaldīt ECU reāllaikā, pamatojoties uz sistēmas prasībām, ļaujot datus pārsūtīt ar lielāku ātrumu.
Kāda ir automobiļu komunikācijas nākotne?
CAN protokols ļauj vairākiem ECU sazināties vienam ar otru. Šī komunikācija nodrošina tādas drošības funkcijas kā elektroniskā stabilitātes kontrole un uzlabotas vadītāja palīgsistēmas, piemēram, aklās zonas noteikšana un adaptīvā kruīza kontrole.
Tas nozīmē, ka līdz ar uzlaboto funkciju, piemēram, autonomās braukšanas, parādīšanos CAN kopnes pārsūtīto datu apjoms pieaug eksponenciāli. Lai iespējotu šīs funkcijas, tirgū nonāk jaunākas CAN protokola versijas, piemēram, CAN FD.