Mis on can-bus: võimalused ja juhised oma kätega autosignalisatsiooniga ühendamiseks. Mis on CAN-siin ja miks seda vaja on? Hiina kana tööpõhimõtte kirjeldus

Selles artiklis me ei kirjelda CAN-protokolli täielikult, vaid pöörame tähelepanu ainult asjadele, mida kasutamiseks või arendamiseks peab teadma ja aru saama. elektroonikaseadmed CAN toega.

CAN-protokoll töötati välja autotööstus ja sai hiljem standardiks sõidukite pardavõrkude loomisel, raudteetransport jne. CAN võimaldab luua täiustatud veakontrolliga võrke, mille edastuskiirus on kuni 1 Mbit/s ja pakette, mis ei sisalda rohkem kui kaheksa baiti andmeid.

Link ja füüsilised kihidCAN

CAN-protokollil ei ole füüsilise kihi ranget definitsiooni, seega saab sõnumite edastamiseks kasutada näiteks keerdpaari või optilist kiudu. Sisuliselt realiseerib CAN andmesidekihi, st. teostab sõnumipakettide moodustamist, vigade leviku piiramist, vastuvõtu kinnitamist ja arbitraaži. Loomulikult on olemas ka ühised rakendustaseme standardid, näiteks CANopen, kuid kui puudub vajadus tagada erinevate tootjate seadmete interaktsioon, siis on parem kasutada sisemist protokolli.

Võrgusõlme struktuurCAN

Vaadeldav CAN-võrgu sõlm koosneb mikrokontrollerist, CAN-kontrollerist ja transiiverist (joonis 1). Enamasti kasutame vooluringi lihtsustamiseks sisseehitatud CAN-kontrolleriga mikrokontrollereid, kuid mõnikord kasutatakse ka eraldiseisvat SPI-liidesega CAN-kontrollerit (MCP2510). Järgmisena ühendatakse transiiver keerdpaarkaabliga, mille otstes on sobivad takistid (terminaator) takistusega 120 oomi.

Joonis 1 – CAN-võrgu sõlm

Loogilise loo moodustamiseks keerdpaaris ehk vabasiinis rakendatakse mõlemale juhtmele pinge, mis võrdub poolega 0 või Vcc pinge erinevusest. Loogiline null vastab diferentsiaalpinge rakendamisele liini juhtmetele (joonis 2).




Joonis 2 – CAN siini loogikatasemed

CAN-siin võimaldab edastada andmeid kiirusega 1 Mbit/s kaabli pikkusega mitte rohkem kui 40 m Koolituskirjanduses öeldakse, et edastuskiiruse vähendamisel 10 kbit/s-ni on võimalik saavutada võrgu pikkus 1,5 km.

SõnumipakettCAN

CAN-teate vorming on näidatud joonisel 3.




Joonis 3 – CAN-teatepakett

Tegelikult genereerib sõnumipaketi CAN-kontroller ja rakendustarkvara määrab ainult sõnumi identifikaatori, sõnumi pikkuse ja annab andmebaite, nii et me ei võta paketti täielikult arvesse, vaid vaatame andmeid, mida muudame, kui töötamine CAN-siiniga.

Sõnumi ID-d kasutatakse selles paketis saadetud andmete tuvastamiseks. Iga saadetud sõnumi võtavad vastu kõik võrgusõlmed ja sel juhul võimaldab identifikaator konkreetsel seadmel aru saada, kas see peab seda sõnumit töötlema. Sõnumi maksimaalne pikkus on 8 baiti, kuid salvestamiseks saate seda väärtust vähendada ribalaius CAN bussid. Näiteks on teksti all mitu ekraanipilti autotööstuse võrgu CAN-teadetest.

Bussi vahekohusCAN

Ilma täiendavate üksikasjadeta edastatakse CAN siini kaudu alati kõige väiksema identifikaatoriga teade.

Siini edastuskiiruse seadistamineCAN

Andmeedastuskiirust CAN-siini kaudu reguleeritakse ajalõikude moodustamise kaudu, mitte aga, nagu paljudes teistes jadaandmeedastusprotokollides, kiirusjaguri kaudu. Enamasti on kasutusel kiirused 10Kbit/s, 20Kbit/s, 50Kbit/s, 100Kbit/s, 125Kbit/s, 500Kbit/s, 800Kbit/s, 1MBaud ja nende kiiruste seaded on juba välja arvutatud. Joonis 4 näitab kiiruse valiku akent programmis PcanView.



Joonis 4 – Andmeedastuskiiruse valimine programmis PcanView

Nagu näeme, siis standardkiiruse määramisel seatakse sätted automaatselt, kuid on juhtumeid, kui on vaja kasutada teistsugust andmeedastuskiirust. Näiteks pardal Sõiduk CAN suudab töötada kiirusega 83Kbit/s. Sel juhul peate seaded ise arvutama või otsima Internetist spetsiaalset kiiruse kalkulaatorit. Kiiruse iseseisvaks arvutamiseks peate mõistma, et ühe sõnumibiti edastamiseks kasutatakse mitut kvanti ja edastusintervall koosneb kolmest segmendist (joonis 5).




Joonis 5 – Ühe biti edastusaeg

Esimene segment on alati fikseeritud ja võrdne ühe kvantiga. Järgmiseks on kaks segmenti Tseg1 ja Tseg2 ning kvantide arvu igas segmendis määrab kasutaja ja see võib olla 8 kuni 25. Proovivõtukoht asub Tseg1 ja Tseg2 vahel, st. esimese lõigu lõpus ja teise lõigu alguses. Kasutaja saab määrata ka sünkroonimishüppe laiuse (SJW), et reguleerida vastuvõtva seadme bitikiirust, mis võib olla vahemikus 1–4 ajalõiku.

Nüüd anname kiiruse arvutamise valemi (SJA1000 CAN-kontrolleri kiiruse arvutamise näide):

BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))

BTR – andmeedastuskiirus,

Pclk – CAN-kontrolleri töösagedus,

BRP – boodikiiruse generaatori sageduse eelskaalaja väärtus

Tseg1 – esimene segment

Tseg2 – teine ​​segment

Kontrollimiseks võtame juba arvutatud kiiruseks 125Kbit/s ja proovime seadistusi käsitsi hankida. PClk võtame 16 MHz.

BRP = 16 MHz / (125 K * (1 + Tseg1 + Tseg2))

Seejärel valime bitiedastusintervalli, mis jääb vahemikku 8 kuni 25 ajalõiku, nii et saame täisarvulise BRP väärtuse. Meie puhul, kui võtame (1 + Tseg1 + Tseg2) = 16, on BRP võrdne 30-ga.

SP = ((1 + Tseg1 + Tseg2) * 70)/100

Asendame väärtused ja saame 16 * 0,7 = 11,2, mis vastab seosele Tseg1 = 10, Tseg2 = 5, st. 1 + 10 + 5 = 16. Järgmiseks vaadake, kas Tseg2 >= 5, siis SJW = 4, kui Tseg2< 5, то SJW = (Tseg2 – 1). В нашем случае SJW = 4.

Kokku, et saada kiirust 125 Kbit/s, tuleb parameetrites määrata BRP = 30, Tseg1 = 10, Tseg2 = 5, SJW = 4.

P.S. Boodikiiruse konfiguratsioon erineb oluliselt SJA1000 kontrolleriga vanade USB-CAN moodulite (GW-001 ja GW-002) ja kontrolleriga AT91SAM7A3 uute sysWORXX moodulite vahel. Artiklis, mis kirjeldab töötamist sõiduki pardal oleva CAN-iga kiirusel 83 kbit/s, esitatakse kontrolleri AT91SAM7A3 kiirusarvutus.


Näide andmete vastuvõtmisest ja edastamisest kauduCAN-liides

Näites kasutame CAN-adapterit koos SYSTEC-i programmiga PcanView ja ühendame auto salongi CAN-iga, mis töötab kiirusega 125 Kbps. Kaalutav auto on varustatud elektriistmetega ja seetõttu uurime istmete asendi eest vastutavaid andmeid ning proovime arvuti abil paketti vahetades muuta seljatoe asendit.

Alustuseks leiame auto skeemil kõige mugavamalt paigutatud pistiku koos CANH- ja CANL-liinidega ning ühendame sellega oma adapteri. Kui te konnektorit ja juhtmeid ei leia, võite roomata tooli juhtploki juurde, leida sealt kaks kokku keeratud juhet ja hoolikalt läbi lõigata juhtmed ning ühendada adapter. Kui pärast adapteri ühendamist ja seadistamist teateid ei saabu, proovige kõigepealt muuta CANH CANL-id ja kontrollida, kas süüde on sees.
Järgmisena käivitage programm PcanView, avanevas seadistusaknas määrake Baudrate = 125Kbit/s ja klõpsake nuppu OK (joonis 4). Järgmises aknas määrake Sõnumifilter = Standardne, aadressivahemik 000 kuni 7FF ja klõpsake nuppu OK (joonis 6).



Joonis 6 – CAN-filtri seadistamine

Kui kõik on õigesti tehtud, näeme sõnumeid toolidelt (joonis 7) ja kui vajutame juhtpaneelil seljatoe kallutamise nuppu, siis näeme teist teadet aadressiga 1F4, mis läheb puldist toolile (Joonis 8 ).



Joonis 7 – CAN-teated elektritoolilt


Joonis 8 – CAN-teated elektritoolilt ja teade juhtpaneelilt toolile

Nüüd teame, milline peaks olema CAN-paketi aadress, pikkus ja andmed, et simuleerida seljatoe asendi muutmise nupu vajutamist. Vahekaardil Transmit vajuta UUS ja avanevas aknas loo paketi 1F4 koopia, st. ID = 1F4, pikkus = 3, andmed = 40 80 00. Perioodiks võib jätta 0 ms, siis saadetakse sõnumid tühikuklahvi vajutamisel (joonis 9).



Joonis 9 – CAN-teate loomine

Joonisel 10 on kujutatud põhiakna väli Edastus, mis sisaldab kõiki CAN-ile saadetud sõnumeid ja teavet nende kohta. Kui tõstad sõnumi esile ja vajutad tühikuklahvi, saadetakse pakett CAN-võrku ja tool liigub veidi soovitud suunas.



On selge, et sel juhul ei ole võimalik saavutada täielikku kontrolli tooli üle, sest Tehase juhtpaneelipakette me võrgust välja jätta ei saa, kuid see probleem on täiesti lahendatav.

Alumine rida

Nägime, kuidas mõne pingutuse ja oskusega saate luua oma elektroonilised süsteemid kasutades kõrgtehnoloogilist CAN-protokolli ja kuidas saate ühendada, uurida ja juhtida autode CAN-siiniga ühendatud seadmeid.

Kaasaegse auto pardaelektroonika sisaldab suurt hulka ajamid ja juhtseadmeid. Nende hulka kuuluvad igasugused andurid, kontrollerid jne.

Nendevaheliseks teabevahetuseks oli vaja usaldusväärset sidevõrku.
Eelmise sajandi 80ndate keskel tegi BOSCH ettepaneku uus kontseptsioon CAN (Controller Area Network) võrguliides.

CAN-siin võimaldab ühendust kõigi seadmetega, mis suudavad samaaegselt vastu võtta ja edastada digitaalset teavet (duplekssüsteem). Rehv ise on keerdpaar. Bussi selline teostus võimaldas vähendada mootori ja muude sõidukisüsteemide töö ajal tekkivate väliste elektromagnetväljade mõju. See siin tagab üsna kõrge andmeedastuskiiruse.

Reeglina on CAN-siini juhtmed oranžid, mõnikord eristuvad need erinevat värvi triipudega (CAN-High - must, CAN-Low - oranžikaspruun).

Tänu selle süsteemi kasutamisele kompositsioonist elektriskeem auto vabastati teatud arv juhte, mis võimaldasid sidet näiteks KWP 2000 protokolli kaudu mootori juhtimissüsteemi kontrolleri ja standardne äratus, diagnostikaseadmed jne.

Andmeedastuskiirus CAN siini kaudu võib ulatuda kuni 1 Mbit/s, samas kui infoedastuskiirus juhtplokkide vahel (mootor – ülekanne, ABS – turvasüsteem) on 500 kbit/s (kiire kanal), infoedastuskiirus süsteemi Comfort "(turvapatjade juhtplokk, auto uste juhtplokid jne), info- ja käsusüsteem on 100 kbit/s (aeglane kanal).

Joonisel fig. Joonisel 1 on kujutatud sõiduauto CAN siini topoloogiat ja lainekuju.

Teabe edastamisel ükskõik millisele juhtplokile võimendab vastuvõtja-saatja (transiiver) signaale vajaliku tasemeni.

Igal CAN-siiniga ühendatud seadmel on teatav sisendtakistus, mille tulemuseks on CAN-siini kogukoormus. Kogu koormustakistus sõltub siiniga ühendatud elektrooniliste juhtseadmete ja täiturmehhanismide arvust. Näiteks CAN-siiniga ühendatud juhtseadmete takistus jõuseade, keskmiselt on see 68 oomi ning Comfort-süsteem ning teabe- ja käsusüsteem - 2,0 kuni 3,5 kOhmi.

Pange tähele, et toite väljalülitamisel lülituvad välja CAN-siiniga ühendatud moodulite koormustakistused.

Joonisel fig. Joonisel 2 on kujutatud CAN-siinide fragment koormuse jaotusega liinidel CAN-High, CAN-Low.

Sõidukisüsteemidel ja juhtplokkidel ei ole mitte ainult erinev koormustakistus, vaid ka andmeedastuskiirused, mis kõik võivad häirida erinevat tüüpi signaalide töötlemist.

Selle lahendamiseks tehniline probleem Siinidevaheliseks suhtlemiseks kasutatakse muundurit.

Sellist muundurit nimetatakse tavaliselt lüüsiks; see seade autos on enamasti sisse ehitatud juhtploki, näidikuploki konstruktsiooni ja seda saab teha ka eraldi seadmena.

Liidest kasutatakse ka diagnostilise teabe sisestamiseks ja väljastamiseks, mille päring realiseerub liidesega ühendatud “K” juhtme kaudu või spetsiaalsesse diagnostikakaabel CAN bussid.

Sel juhul on diagnostikatööde tegemisel suureks eeliseks ühe ühtse diagnostikapistiku (OBD-pistiku) olemasolu.

Joonisel fig. Joonisel 3 on kujutatud lüüsi plokkskeem.

Pange tähele, et näiteks mõnel automargil Volkswagen Golf V, Comfort süsteemi CAN siinid ning info- ja käsusüsteem ei ole lüüsiga ühendatud.

Tabel näitab elektroonilised komponendid ja jõuallika CAN-siinide, Comfort-süsteemi ning teabe- ja käsusüsteemiga seotud elemendid. Tabelis toodud elemendid ja plokid võivad olenevalt auto margist koostiselt erineda.

CAN-siini tõrgete diagnoosimisel kasutatakse spetsiaalseid diagnostikaseadmeid (CAN-siini analüsaatorid), ostsilloskoopi (sh sisseehitatud CHN-siininanalüsaatoriga) ja digitaalset multimeetrit.

Reeglina algab töö CAN-siini töö kontrollimiseks siini juhtmete vahelise takistuse mõõtmisega. Arvestada tuleb sellega, et Comfort süsteemi CAN siinid ning info- ja käsusüsteem on erinevalt jõuülekande siinist pidevalt pinge all, mistõttu tuleks nende kontrollimiseks lahti ühendada üks akuklemm.

CAN-siini peamised talitlushäired on peamiselt seotud lühise/katkeste liinide (või nendel olevate koormustakistitega), signaalide taseme langusega siinil ja selle tööloogika rikkumistega. Viimasel juhul saab defekti otsida ainult CAN siini analüsaator.

Kaasaegse auto CAN bussid

  • Jõuülekande CAN siin
  • Elektrooniline mootori juhtseade
  • Elektrooniline käigukasti juhtseade
  • Turvapadja juhtseade
  • ABS elektrooniline juhtseade
  • Elektrilise roolivõimendi juhtseade
  • Sissepritsepumba juhtseade
  • Keskne kinnitusplokk
  • Elektrooniline süütelüliti
  • Roolinurga andur
  • Comfort süsteemi CAN siin
  • Instrumentide klaster
  • Elektroonilised ukseüksused
  • Elektrooniline parkimisjuhtimisseade

Süsteemid

  • Comfort süsteemi juhtseade
  • Klaasipuhastite juhtseade
  • Rehvirõhu jälgimine

Info- ja käsusüsteemi CAN-siin

  • Instrumentide klaster
  • Heli taasesitussüsteem
  • Infosüsteem
  • Navigatsioonisüsteem

Konditsioneeri temperatuuri muutmine Ford Fusion kasutades käske CAN siini kaudu.

Ariel Nuñez
Ford Fusioni kliimaseadme temperatuuri muutmine CAN-siini kaudu käskude abil.


Joonis 1. Kuidas saan rakenduse abil sõiduki põhifunktsioone juhtida?
Hiljuti ma koos oma sõpradega ettevõttest Reis töötas Ford Fusioni kliimaseadme tarkvarajuhtimise juurutamisel. Voyage arendab praegu odavaid isejuhtivaid autosid. Lõppeesmärk: et igaüks saaks kutsuda auto oma välisukse ette ja reisida turvaliselt kuhu iganes soovib. Voyage usub, et tagaistmelt juurdepääsu tagamine sõiduki põhifunktsioonidele on kriitilise tähtsusega, sest päev, mil juhi kogemus on täielikult automatiseeritud, pole enam kaugel.
Miks rehvi vaja on?CAN
Kaasaegsetes autodes kasutatakse mitmesuguseid juhtimissüsteeme, mis paljudel juhtudel toimivad veebiarenduses nagu mikroteenused. Näiteks turvapadjad, pidurisüsteemid, kiiruskontroll (püsikiiruse hoidja), elektriline roolivõimendi, audiosüsteemid, akende ja uste juhtseadmed, klaaside reguleerimine, elektriautode laadimissüsteemid jne. Need süsteemid peavad suutma suhelda ja üksteise parameetreid lugeda. 1983. aastal alustas Bosch selle keerulise probleemi lahendamiseks CAN-siini (Controller Area Network; Local Controller Network) väljatöötamist.
Võime öelda, et CAN-siin on lihtne võrk, kus iga auto süsteem saab käske lugeda ja saata. See rehv ühendab kõik keerukad komponendid elegantsel viisil, võimaldades realiseerida meie kasutatavaid auto väga armastatud funktsioone.


Joonis 2: Rehv esimest kordaCAN-i hakati kasutama 1988. aastal BMW 8. seerias
Isejuhtivad autod ja bussCAN
Kuna huvi isejuhtivate autode arendamise vastu on märgatavalt kasvanud, on populaarseks saanud ka väljend “CAN buss”. Miks? Enamik isejuhtivaid autosid loovaid ettevõtteid ei tooda nullist, vaid püüavad õppida, kuidas autosid pärast tehase konveierilt lahkumist programmiliselt juhtida.
Mõistmine sisemine seade Autos kasutatav CAN-siin võimaldab inseneril tarkvara abil käske genereerida. Kõige vajalikumad käsud, nagu arvata võib, on seotud juhtimise, kiirendamise ja pidurdamisega.


Joonis 3: LIDARi (isejuhtiva sõiduki võtmeandur) tutvustus
Kasutades selliseid andureid nagu LIDAR (valguse tuvastamine ja kauguse määramine; optiline kauguse määramise süsteem), suudab masin vaadata maailma nagu superinimene. Seejärel teeb autos olev arvuti saadud teabe põhjal otsuseid ja saadab CAN-siinile käsud juhtimise, kiirendamise ja pidurdamise juhtimiseks.
Mitte iga auto ei ole võimeline muutuma isejuhtivaks. Ja millegipärast valis Voyage Fordi mudel Fusion (põhjuste kohta saate lugeda sellest artiklist).
BussiuuringudSAAB sisseFordFusioon
Enne Ford Fusioni kliimaseadmete uurimise alustamist avasin oma lemmikraamatu "The Car Hacker's Handbook". Enne sukeldumist vaatame 2. peatükki, mis hõlmab kolme olulist mõistet: siiniprotokollid, CAN-siin ja CAN-raamid.
RehvCAN
Ameerikas hakati kasutama CAN-bussi sõiduautod ja väikeveokid alates 1994. aastast ja alates 2008. aastast kohustuslik (in Euroopa autod aastast 2001). Sellel siinil on kaks juhet: CAN high (CANH) ja CAN low (CANL). CAN-siin kasutab diferentsiaalsignalisatsiooni, mille olemus seisneb selles, et kui ühel juhtmel võetakse vastu signaal, siis pinge tõuseb, teisel aga sama palju väheneb. Diferentsiaalsignalisatsiooni kasutatakse keskkondades, mis peavad olema mittetundlikud müra suhtes, nt. autosüsteemid või tootmise ajal.


Joonis 4: Toores siini signaalCAN kuvatakse ostsilloskoobil
Teisest küljest edastatakse paketid bussi kauduCAN, ei ole standarditud. Iga pakett sisaldab 4 põhielementi:

  • VahekohusID (VahekohusID) on leviedastussõnum, mis tuvastab sidet üritava seadme. Iga seade võib saata mitu vahekohtu ID-d. Kui ajaühikus saadetakse üle siini kaks CAN-paketti, jäetakse vahele see, mille arbitraaži ID on väiksem.
  • ID laiend(Identifikaatorpikendamine; IDE) – standardse CAN-siini konfiguratsiooni korral on see bit alati 0.
  • Andmepikkuse kood (Andmedpikkuskood; DLC) määrab andmete suuruse, mis varieerub vahemikus 0 kuni 8 baiti.
  • Andmed. Edastatavate andmete maksimaalne suurus standardrehv CAN, võib olla kuni 8 baiti. Mõned süsteemid sunnivad paketi polsterdama 8 baidini.


Joonis 5: StandardvormingCAN paketid
CAN raamid
Kliimasüsteemi sisse/välja lülitamiseks peame leidma õige rehv CAN (sellist bussi on autos mitu). Ford Fusionil on vähemalt 4 dokumenteeritud rehvi. 3 rehvi peal suur kiirus 500 kbit/s (High Speed ​​​​CAN; HS) ja 1 siini keskmise kiirusega 125 kbit/s (keskmise kiirusega CAN; MS).
OBD-II porti on ühendatud kaks kiiret siini HS1 ja HS2, kuid seal on kaitse, mis ei luba käske võltsida. Koos Alaniga Voyage'ist võtsime välja OBD-II pordi ja leidsime ühendused kõikidele bussidele (HS1, HS2, HS3 ja MS). OBD-II tagaseinal olid kõik bussid ühendatud Gateway Module'iga.


Joonis 6:Homeros – firma esimene isejuhtiv taksoReis
Kuna kliimasüsteemi juhitakse meedialiidese (SYNC) kaudu, peame saatma käsud keskmise kiirusega siini (MS) kaudu.
CAN-pakettide lugemine ja kirjutamine toimub Volkswageni uurimisosakonna poolt Linuxi tuuma jaoks loodud SocketCAN-draiveri ja võrgupinu abil.
Ühendame autost kolm juhtmest (GND, MSCANH, MSCANL) Kvaser Leaf Light HSv2 adapteriga (saab osta Amazonist 300 $) või CANable'iga (müügil Tindie's 25 $) ja laadime bussi arvutisse värske Linuxi kernel CAN võrguseadmena.

Modprobe saab
modprobe kvaser_usb
IP-lingikomplekt can0 tüüpi saab bitikiirusega 1250000
ifconfig saab0 üles

Pärast allalaadimist käivitage käsk candump can0 ja alustage liikluse jälgimist:

Can0 33A 00 00 00 00 00 00 00 00 kanistri 2 7F FF 10 00 19 F8 00 can0 3E0 00 00 00 00 80 00 00 00 can0 167 72 7F FF 10 00 19 F7 00 can0 34E 00 00 00 00 00 00 00 00 00 00 00 000 000 000 purki 4 00 00 00 00 00 00 00 00 can0 216 00 00 00 00 82 00 00 00 can0 3AC FF FF FF FF FF FF FF can0 415 00 00 C8 FA 0F FE 0F FE can0 083 00 00 00 C 1 08 52 00 00 can0 3BC 0C 00 08 96 01 BB 27 00 can0 167 72 7F FF 10 00 19 F7 00 can0 3BE 00 20 AE EC D2 03 54 00 can0 333 000 000 000 70 E0 00 00 00 00 can0 42C 05 51 54 00 90 46 A4 00 can0 33B 00 00 00 00 00 00 00 00 can0 42E 93 00 00 E1 78 03 CD 40 can0 42F 00 670 0 72 7F FF 10 00 19 F7 00 can0 3E7 00 00 00 00 00 00 00 00 can0 216 00 00 00 00 82 00 00 00 can0 415 00 00 CC F9 0F FE 0F FE can0 3A5 00000000 FF FF FF FF FF FF FF can0 50B 1E 12 00 00 00 00 00 00

Kuigi ülaltoodud teave on samaväärne amplituudiga helisignaal, on üsna raske mõista, mis toimub ja tuvastada mingeid mustreid. Meil on vaja midagi sagedusanalüsaatoriga sarnast ja selline ekvivalent on saadaval cansnifferi utiliidi kujul. Cansniffer näitab identifikaatorite loendit ja võimaldab teil jälgida muudatusi CAN-kaadri andmejaotises. Kui uurime konkreetseid ID-sid, saame filtreerida ID-de järgi, mis on meie ülesande jaoks asjakohased.
Alloleval joonisel on näide MS siinist kansnifferi abil võetud teabe kohta. Oleme välja filtreerinud kõik, mis on seotud ID-dega 355, 356 ja 358. Pärast temperatuuri reguleerimisega seotud nuppude vajutamist ja vabastamist kuvatakse päris lõpus väärtus 001C00000000.


Joonis 7: BussiteaveMS jäädvustatud utiliidi cansniffer abil
Järgmiseks tuleb ühendada kliimasüsteemi juhtimise funktsionaalsus autos töötava arvutiga. Arvuti töötab ROS operatsioonisüsteemil (Robot Operating System; Operation system for robots). Kuna me kasutame SocketCAN-i, lihtsustab socketcan_bridge moodul oluliselt CAN-kaadri teisendamist ROS-i operatsioonisüsteemile arusaadavaks teabeplokiks.
Allpool on näide dekodeerimisalgoritmist:

Kui frame.id == 0x356:
töötlemata_andmed = lahtipakkimine("BBBBBBBB", raam.andmed)
ventilaatori_kiirus = töötlemata_andmed / 4
draiveri_temperatuur = sõelumistemperatuur (toorandmed)
reisija_temp = sõelumistemperatuur (toorandmed)

Vastuvõetud andmed salvestatakse CelsiusReport.msg:

Bool auto
bool system_on
bool unit_on
bool dual
bool max_cool
bool max_defrost
booli retsirkulatsioon
bool head_fan
bool jalad_fänn
bool front_defrost
bool rear_defrost string driver_temp
string reisija_temp

Pärast kõigi klõpsamist vajalikud nupud autos on meil järgmine nimekiri:

CONTROL_CODES = (
"ac_toggle": 0x5C,
"ac_unit_toggle": 0x14,
"max_ac_toggle": 0x38,
"recirculation_toggle": 0x3C,
"dual_temperature_toggle": 0x18,
"passenger_temp_up": 0x24,
"passenger_temp_down": 0x28,
"driver_temp_up": 0x1C,
"driver_temp_down": 0x20,
"auto": 0x34,
"wheel_heat_toggle": 0x78,
"defrost_max_toggle": 0x64,
"defrost_toggle": 0x4C,
"rear_defrost_toggle": 0x58,
"body_fan_toggle": 0x04,
"feet_fan_toggle": 0x0C,
"fan_up": 0x2C,
"fan_down": 0x30,
}

Seejärel saadetakse need stringid ROS-i operatsioonisüsteemi käitavasse sõlme ja tõlgitakse seejärel autole mõistetavateks koodideks:

Rostopic pubi /celsius_control celsius/CelsiusControl ac_toggle

Järeldus
Nüüd saame luua ja saata CAN-siinile samu koode, mis tekivad siis, kui vajutame füüsilisi temperatuuri tõstmise ja langetamisega seotud nuppe, võimaldades meil kaugjuhtimisega muuta auto temperatuuri rakenduse abil, kui oleme sisse lülitatud. tagaistmel auto.


Joonis 8: Auto kliimasüsteemi kaugjuhtimispult
See on vaid väike samm koos Voyage’i spetsialistidega isejuhtiva takso loomisel. Selle projektiga töötades sain palju positiivseid emotsioone. Kui ka sind see teema huvitab, siis saad tutvuda Voyage’i vabade töökohtade nimekirjaga.

Administraator

18702

CAN siini tööpõhimõtete mõistmiseks otsustasime kirjutada/tõlkida sellel teemal tavapäraselt mitmeid artikleid välismaiste allikate materjalide põhjal.

Üks neist allikatest, mis, nagu meile tundus, CAN siini põhimõtteid üsna asjakohaselt illustreerib, oli Igendi Engineeringi (http://canbasic.com) õppetoote CANBASIC videoesitlus.

Tere tulemast CAN siini toimimisele pühendatud koolitussüsteemi (tahvli) uue CANBASIC toote esitlusele.

Alustame CAN-siinide võrgu ehitamise põhitõdedest. Diagramm näitab autot koos selle valgustussüsteemiga.



Näidatud on tüüpiline juhtmestik, kus iga pirn on otse ühendatud mõne lüliti või piduripedaali kontaktiga.



Nüüd näidatakse sarnast funktsionaalsust CAN-siini tehnoloogia abil. Ees ja taga valgustusseadmedühendatud juhtmoodulitega. Juhtmoodulid on paralleelselt ühendatud samade siinijuhtmetega.



See väike näide näitab, et elektrijuhtmete arv väheneb. Lisaks suudavad juhtmoodulid tuvastada läbipõlenud lambid ja teavitada sellest juhti.

Näidatud vaates olev auto sisaldab nelja juhtimismoodulit ja peegeldab selgelt CANBASIC treeningsüsteemi (plaadi) ehitust.



Ülaltoodud on neli siinisõlme (CAN-sõlme).

Esimoodul juhib esitulesid.

Signalisatsiooniseade võimaldab kontrollida sõiduki sisemust.

Peamine juhtmoodul ühendab diagnostikaks kõik sõidukisüsteemid.

Tagumine koost juhib tagatulesid.

CANBASICu treeningplaadil näete kolme signaali marsruutimist (asukohta): "Power", "CAN-Hi" ja "ground", mis ühendatakse juhtmoodulis.



Enamuses sõidukid Peamise juhtmooduli ühendamiseks arvutiga diagnostikatarkvara abil vajate OBD-USB muundurit.



CANBASIC-plaadil on juba OBD-USB-muundur ja seda saab otse arvutiga ühendada.

Plaati toidab USB-liides, seega pole vaja täiendavaid kaableid.



Siini juhtmeid kasutatakse mitmesuguste andmete edastamiseks. Kuidas see toimib?

Kuidas CAN-siin töötab?

Neid andmeid edastatakse järjestikku. Siin on näide.

Lambiga mees, saatja, tahab teleskoobiga mehele mingit infot saata, vastuvõtjat (vastuvõtjat). Ta tahab andmeid üle kanda.



Selleks leppisid nad kokku, et saaja kontrollib lambi olekut iga 10 sekundi järel.



See näeb välja selline:







80 sekundi pärast:



Nüüd on 8 bitti andmeid edastatud kiirusega 0,1 bitti sekundis (st 1 bitt iga 10 sekundi järel). Seda nimetatakse jadaandmete edastamiseks.



Selle lähenemisviisi kasutamiseks autotööstuses vähendatakse ajavahemikku 10 sekundilt 0,000006 sekundini. Teabe edastamiseks andmesiini pingetaseme muutmisega.



Ostsilloskoopi kasutatakse CAN-siini elektriliste signaalide mõõtmiseks. Kaks mõõtepadja CANBASIC plaadil võimaldavad seda signaali mõõta.



Täieliku CAN-teate kuvamiseks vähendatakse ostsilloskoobi eraldusvõimet.



Selle tulemusena ei saa üksikuid CAN-bitte enam ära tunda. Selle probleemi lahendamiseks on CANBASIC moodul varustatud digitaalse salvestusostsilloskoobiga.

Sisestame CANBASIC-mooduli vabasse USB-pistikusse, misjärel see tuvastatakse automaatselt. Tarkvara CANBASIC saab kohe käivitada.



Näete tarkvara ostsilloskoobi vaadet koos lisatud bitiväärtustega. Punane näitab eelmises näites edastatud andmeid.

CAN-sõnumi muude osade selgitamiseks värvime CAN-raami ja lisame sellele kirjeldused.



Iga CAN-teate värviline osa vastab sama värvi sisestusväljale. Punasega tähistatud ala sisaldab kasutajaandmete teavet, mida saab määrata bittide, näppude või kuueteistkümnendsüsteemi vormingus.

Kollane ala määrab kasutajaandmete hulga. Rohelisse tsooni saab määrata kordumatu identifikaatori.

Sinine ala võimaldab teil määrata kaugpäringu jaoks CAN-teate. See tähendab, et oodatakse vastust teiselt CAN-sõlmelt. (Süsteemi arendajad ise soovitavad mitte kasutada kaugpäringuid mitmel põhjusel, mis põhjustavad süsteemi tõrkeid, kuid seda arutatakse teises artiklis.)

Paljud CAN siinisüsteemid on häirete eest kaitstud andmeedastuseks teise CAN-LO kanaliga, mis on CAN-HI signaali suhtes inverteeritud (s.t. saadetakse sama signaal, ainult vastupidise märgiga).



Kuus järjestikust sama tasemega bitti määravad CAN-kaadri lõpu.



Juhtumisi võivad CAN-kaadri teised osad sisaldada rohkem kui viit järjestikust sama tasemega bitti.



Selle bitimärgi vältimiseks sisestatakse CAN-kaadri lõppu, kui ilmub viis järjestikust sama taseme bitti. Neid bitte nimetatakse personali bittideks (prügi bittideks). CAN-vastuvõtjad (signaali vastuvõtjad) ignoreerivad neid bitte.



Sisestusväljade abil saab määrata kõik CAN-kaadri andmed ja seega saata iga CAN-teate.

Sisestatud andmed uuendatakse kohe CAN-kaadris, antud näites muudetakse andmete pikkust ühelt baidilt 8-le ja nihutatakse ühe baidi võrra tagasi.



Kirjeldustekst näitab, et suunatuld juhitakse ID "2C1" ja andmebittide 0 ja 1 abil. Kõik andmebitid lähtestatakse 0-le.



Identifikaatoriks on seatud väärtus ""2С1". Suunatule aktiveerimiseks tuleb andmebitt seada 0 kuni 1.



Interjöörirežiimis saate kogu moodulit juhtida lihtsate hiireklõpsudega. CAN-andmed seadistatakse automaatselt vastavalt soovitud toimingule.

Suunatuled saab seadistada lähituledele, et need toimiksid DRL-idena. Heledust juhitakse vastavalt kaasaegse diooditehnoloogia võimalustele impulsi laiuse modulatsiooniga (PWM).

Nüüd saame aktiveerida lähituled, udutuled, pidurituled ja sõidutuled.



Kui lähituled on välja lülitatud, kustuvad ka udutuled. CANBASIC valgustussüsteemi juhtimisloogika vastab Volkswageni sõidukitele. Kaasatud on ka süüte ja "koju naasmise" funktsioonid.

Signaalisõlmega saate lugeda anduri signaali pärast kaugpäringu algatamist.

Kaugpäringu režiimis võetakse vastu teine ​​CAN-kaader ja see kuvatakse saadetud CAN-kaadri all.



CAN-andmebait sisaldab nüüd anduri mõõtmistulemust. Kui liigutate sõrme andurile lähemale, saate mõõdetud väärtust muuta.



Pausiklahv külmutab praeguse CAN-kaadri ja võimaldab täpset analüüsi.

Nagu juba näidatud, saab CAN-raami erinevaid osi peita.



Lisaks toetatakse iga biti peitmist CAN-kaadris.

See on väga kasulik, kui soovite kasutada CAN-kaadri esitust oma dokumentides, näiteks harjutuste lehel.

Pardaelektroonikasüsteemid kaasaegsetes sõiduautodes ja veoautod on tohutult palju lisaseadmed ja täiturmehhanismid. Selleks, et infovahetus kõikide seadmete vahel oleks võimalikult tõhus, peab autol olema töökindel sidevõrk. 20. sajandi 80ndate alguses pakkusid Bosch ja arendaja Intel välja uue võrguliidese - Controller Area Network, mida rahvasuus nimetatakse Can-busiks.

1 CAN-siini võrguliidese tööpõhimõttest

Autos olev can-bus on loodud ühenduse loomiseks kõigi elektrooniliste seadmetega, mis on võimelised teatud teavet edastama ja vastu võtma. Seega on andmed tehniline seisukord süsteemid ja juhtsignaalid liiguvad üle keerdpaarkaablite digitaalsel kujul. See skeem võimaldas vähendada negatiivne mõju väliseid elektromagnetvälju ja suurendavad oluliselt andmeedastuse kiirust protokolli kaudu (reeglid, mille järgi on erinevate süsteemide juhtplokid võimelised infot vahetama).

Pealegi, erinevaid süsteeme oma kätega auto tegemine on muutunud lihtsamaks. Tänu sellise süsteemi kasutamisele osana pardavõrk auto on vabastanud teatud arvu juhte, mis on võimelised suhtlema erinevate protokollide kaudu, näiteks mootori juhtploki ja diagnostikaseadmete, signalisatsiooni vahel. Just Kan-busi olemasolu autos võimaldab omanikul spetsiaalse seadme abil oma kätega kontrolleri tõrkeid ja vigu tuvastada. diagnostikaseadmed.

CAN-bussSee on spetsiaalne võrk, mille kaudu edastatakse ja vahetatakse andmeid erinevate juhtsõlmede vahel. Iga sõlm koosneb mikroprotsessorist (CPU) ja CAN-kontrollerist, mille abil realiseeritakse käivitatav protokoll ning tagatakse interaktsioon sõidukivõrguga. Kan-siinil on vähemalt kaks paari juhtmeid - CAN_L ja CAN_H, mille kaudu edastatakse signaale transiiverite kaudu - transiiverid, mis on võimelised võrgu juhtimisseadmete signaali võimendama. Lisaks täidavad transiiverid järgmisi funktsioone:

  • andmeedastuskiiruse reguleerimine, suurendades või vähendades praegust pakkumist;
  • voolu piiramine, et vältida anduri kahjustamist või ülekandeliinide lühistamist;
  • termiline kaitse.

Tänapäeval tunnustatakse kahte tüüpi transiivereid - kiire ja tõrketaluvusega. Esimene tüüp on kõige levinum ja vastab standardile (ISO 11898-2), see võimaldab teil andmeid edastada kiirusega kuni 1 MB sekundis. Teist tüüpi transiiverid võimaldavad luua energiasäästliku võrgu edastuskiirusega kuni 120 Kb/sek, samas ei ole sellised saatjad tundlikud siini enda kahjustuste suhtes.

2 Võrgu omadused

Tuleb mõista, et andmeid edastatakse CAN-võrgu kaudu kaadrite kujul. Olulisemad neist on identifikaatoriväli (Identifire) ja andmesüsteem (Data). Kanbusis kõige sagedamini kasutatav sõnumitüüp on Data Frame. Seda tüüpi andmeedastus koosneb nn arbitraaživäljast ja määrab prioriteedi andmeedastuse juhuks, kui mitu süsteemisõlme edastavad andmeid samaaegselt CAN-siinile.

Igal siiniga ühendatud juhtseadmel on oma sisendtakistus ja kogukoormus arvutatakse kõigi siiniga ühendatud käivitatavate plokkide summast. Keskmiselt on CAN-siiniga ühendatud mootori juhtimissüsteemide sisendtakistus 68-70 oomi ning info- ja käsusüsteemi takistus võib olla kuni 3-4 oomi.

3 CAN-liides ja süsteemi diagnostika

CAN-juhtimissüsteemidel pole mitte ainult erinev koormustakistus, vaid ka erinevad sõnumiedastuskiirused. See asjaolu raskendab sarnaste teadete töötlemist rongisiseses võrgus. Diagnostika lihtsustamiseks kasutatakse kaasaegsetes autodes lüüsiliidest (takistuse muundurit), mis on kas disainitud eraldi juhtseadmena või ehitatud auto mootori ECU-sse.

Selline muundur on ette nähtud ka teatud diagnostilise teabe sisestamiseks või väljastamiseks K-liini juhtme kaudu, mis ühendatakse diagnostika või võrgu tööparameetrite muutmise ajal kas diagnostikapistikusse või otse muundurisse.

Oluline on märkida, et praegu ei ole Can-võrgupistikutele konkreetseid standardeid. Seetõttu määrab iga protokoll sõltuvalt koormusest ja muudest parameetritest CAN-siinil oma tüüpi pistikud.

Seega kasutatakse oma kätega diagnostikatööde tegemisel ühtset OBD1 või OBD2 tüüpi pistikut, mida võib leida enamikel kaasaegsetel välismaistel autodel ja kodumaised autod. Mõned automudelid, nt. Volkswagen Golf 5V, Audi S4, neil pole lüüsi. Lisaks on juhtplokkide ja CAN siini paigutus iga automargi ja mudeli puhul individuaalne. CAN-süsteemi oma kätega diagnoosimiseks kasutate spetsiaalset varustust, mis koosneb ostsilloskoobist, CAN-analüsaatorist ja digitaalsest multimeetrist.

Veaotsingu töö algab võrgupinge eemaldamisega (aku negatiivse klemmi eemaldamisega). Järgmisena määratakse siini juhtmete vahelise takistuse muutus. Kõige levinumad CAN-siini rikete tüübid autos on lühis või liinikatkestus, koormustakistite rike ja võrguelementide vahelise sõnumiedastuse taseme langus. Mõnel juhul ei ole võimalik riket tuvastada ilma Can analüsaatorit kasutamata.