Mis on san shina? CAN-buss – kuidas elektroonika tänapäevastes autodes töötab? Standardne ja laiendatud CAN

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 maht on vähenenud. 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 kõik sõiduki süsteemid diagnostikaks.

Tagumine koost juhib tagatulesid.

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



Enamuses Sõiduk 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 töötab?

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 auto rakendus Ajavahemikku vähendatakse 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 CANBASICut 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 (st 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 kontrollitakse impulsi laiuse modulatsioon(PWM), vastavalt kaasaegse diooditehnoloogia võimalustele.

Nüüd saame aktiveerida lähituled, udutuled, pidurituled ja kaugtuled.



Kui lähituled on välja lülitatud, kustuvad ka udutuled. CANBASIC valgustussüsteemi juhtimisloogika ühtib autodega Volkswageni kaubamärk. 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.

Diagnostika ja remont: CAN siin

21.02.2006

Täpselt selline see "rehv" välja näeb (enamasti) SAAB ", millega peame viimasel ajal üha enam kokku puutuma:

foto 1

See on tavaline kahejuhtmeline kaabel nimega keerdpaar .
Fotol 1 on näidatud juhtmed CAN Kõrge ja CAN Low jõuseade.
Need juhtmed teostavad andmevahetust juhtseadmete vahel, nad võivad edastada teavet sõiduki kiiruse ja pöörlemiskiiruse kohta väntvõll, süüte ajastus ja nii edasi.
Pange tähele, et üks juhtmetest on lisaks märgistatud musta triibuga. Nii on traat märgistatud ja visuaalselt tuvastatud CAN Kõrge (oranž-must).
Traadi värv
CAN-Low - oranžikaspruun.
Rehvi põhivärvi jaoks
SAAB oranž värv on aktsepteeritud.

Piltidel ja joonistel on tavaks kujutada siini juhtmete värve SAAB muud värvid, nimelt:

foto 2

CAN-Kõrge - kollane
CAN-Low - roheline

Rehve on mitut tüüpi SAAB , mille määravad funktsioonid, mida nad täidavad:
Jõuülekande CAN siin(kiire kanal) .
Ta lubab
edastab infot kiirusega 500 kbit/s ja seda kasutatakse juhtseadmete vaheliseks suhtluseks (mootor - käigukast)
Comfort CAN buss(aeglane kanal) .
Ta lubab
edastab teavet kiirusega 100 kbit/s ja seda kasutatakse Comfort-süsteemi kuuluvate juhtseadmete vaheliseks suhtluseks.
Info- ja käsusüsteem CAN andmesiini(aeglane kanal), võimaldades andmeedastust kiirusega 100 kBit/s. Pakub suhtlemist erinevate teenindussüsteemide vahel (näiteks telefoni- ja navigatsioonisüsteemid).

Uued automudelid sarnanevad üha enam lennukitega – ohutuse, mugavuse ja keskkonnasõbralikkuse deklareeritud funktsioonide arvu poolest. Juhtseadmeid tuleb aina juurde ja igast juhtmekimbust “tõmbamine” on ebareaalne.
Seega lisaks rehvile SAAB On juba teisi rehve nimega:
- LIN-siin (ühejuhtmeline siin)
- MOST siin (fiiberoptiline siin)
- Bluetooth juhtmevaba siin

Kuid ärgem "mõtetega puu otsas uitama", keskendugem praegu ühele konkreetsele rehvile: SAAB (korporatsiooni seisukohtade järgi BOSCH).

Kasutades näitena CAN siini toiteplokk, saate vaadata signaali kuju:

3. foto

Kui on High CAN siinil domineeriv olek, tõuseb juhtme pinge 3,5 volti.
Retsessiivses olekus on mõlema juhtme pinge 2,5 volti.
Kui liinil
Madal domineeriv olek, pinge langeb 1,5 volti.
("Dominant" on nähtus, mis domineerib, domineerib või domineerib mis tahes valdkonnas, sõnaraamatutest).

Andmeedastuse usaldusväärsuse tõstmiseks on siin SAAB diferentsiaalne meetod signaalide edastamiseks kahe juhtme kaudu, mida nimetatakse Keerdpaar . Ja juhtmeid, mis selle paari moodustavad, nimetatakse CAN High ja CAN Low .
Siini algolekus on mõlemad juhtmed toetatud pidev rõhk teatud (põhi)tasemel. Bussi jaoks
SAAB toiteallika pinge on umbes 2,5 volti.
Seda algseisundit nimetatakse "puhkeolekuks" või "retsessiivseks olekuks".

Kuidas signaale edastatakse ja teisendatakse? CAN-buss?

Iga juhtseade on ühendatud SAAB siin läbi eraldi seadme, mida nimetatakse transiiveriks ja millel on signaali vastuvõtja, mis on signaali sisendisse paigaldatud diferentsiaalvõimendi:

foto 4

Tuleb traati mööda Kõrge ja madal Signaalid sisenevad diferentsiaalvõimendisse, töödeldakse ja saadetakse juhtseadme sisendisse.
Need signaalid esindavad pinget diferentsiaalvõimendi väljundis.
Diferentsiaalvõimendi genereerib selle väljundpinge CAN-siini kõrge ja madala juhtmete pingete erinevusena.
See välistab baaspinge (toiteploki CAN siini puhul on see 2,5 V) või mistahes pinge, mis on põhjustatud näiteks välisest mürast.

Muide, segamise kohta. Nagu öeldakse: "rehv SAAB See on häiretele üsna vastupidav, mistõttu seda nii laialdaselt kasutatakse."
Proovime selle välja mõelda.

CAN siini juhtmed toiteplokk asuvad mootoriruum ja neid võivad mõjutada mitmesugused häired, näiteks süütesüsteemi häired.

Alates CAN siinist koosneb kahest traadist, mis on kokku keeratud, siis mõjutavad häired korraga kahte juhet:

Ülaltoodud jooniselt näete, mis juhtub järgmisena: diferentsiaalvõimendis on madala juhtme pinge (1,5 V - " Lk ") lahutatakse pingest
kõrgel juhtmel (3,5 V - "
Lk ") ja töödeldud signaalis ei esine häireid (" Pp" - interferents).


Märkus: Sõltuvalt aja olemasolust võib artiklit jätkata - palju jääb "kulisside taha".



Kucher V.P.
© Legion-Avtodata

Samuti võite olla huvitatud:

Mis on CAN-buss?

CAN-i ajalugu algas eelmise sajandi 80ndate keskel. Bosch on koos Inteliga välja töötanud andmeedastuseks uue digitaalse liidese – Controller Area Network (CAN).

Analooghäireühendus (ilma CAN-siinita)

Miks on autosse CAN-bussi vaja?

CAN-siin võimaldab ühendada mis tahes arvu andureid, kontrollereid, täiturmehhanisme ja muid autos asuvaid seadmeid (näiteks: ABS, SRS AIRBAG, ESP süsteemid, immobilisaator, mootori juhtseade, kliimaseade, käigukast, kesklukustus, valgus, ripats, armatuurlaud jne...) dupleksrežiimis (andmete vastuvõtmine ja edastamine) kiirusel kuni 1 Mbit/s. Samal ajal koosneb purgibuss ise ainult kahest traadist (keerdpaar). Varem tuli plokkide ühendamiseks kasutada sadu juhtmeid, sest... Teabeühiku edastamine plokist plokki toimus eraldi juhtme kaudu.

Signaali paigaldamine CAN siini kaudu

Autosignalisatsioonid CAN mooduliga.

CAN moodul

Kaasaegsed autosignalisatsioonid on toodetud integreeritud CAN mooduliga, mis võimaldab ühendada auto signalisatsioon otse digibuss sõiduki CAN. Autoalarm võtab vastu digitaalne vorm info piirlülitite, lukkude, süüte, käsipiduri, tahhomeetri jms oleku kohta. ja saab juhtida ka uste lukke, elektrilisi aknaid, katuseluuki, standardset signalisatsiooni ja mõningaid muid sõidukisüsteeme. võimaldab oluliselt vähendada häireid tavalistes elektrijuhtmetes (ühendused tehakse ainult 6-8 juhtmega, mitte 15-20 juhtmega versioonis, kus ei kasutata purgisiini) ja väldib probleeme auto elektriseadmete garantiiga.

Kaasaegne auto pole mitte ainult transpordivahend, vaid ka täiustatud vidin, millel on multimeediumifunktsioonid ja elektrooniline süsteem juhtplokid ja hunnik andureid. Paljud autotootjad pakuvad liiklusassistendi, parkimisabi, auto jälgimise ja juhtimise funktsioone telefonist. See on võimalik tänu kasutamisele auto CAN siin, millega on ühendatud kõik süsteemid: mootor, pidurisüsteem, rool, multimeedia, kliima jne.

Minu auto Skoda Octavia 2011. aastal ei paku teie telefonist juhtimisvõimalusi, seega otsustasin selle puuduse parandada ja samal ajal lisada hääljuhtimise funktsiooni. Lüüsina CAN siini ja telefoni vahel kasutan CAN BUS varjestusega Raspberry Pi ja TP-Link WiFi ruuterit. Autoüksuste vaheline sideprotokoll on suletud ja Volkswagen keeldus kõikidele minu kirjadele protokollidokumentatsiooni andmast. Sellepärast ainus viis Et teada saada, kuidas autos olevad seadmed suhtlevad, ja õppida neid juhtima, on VW CAN siini protokolli pöördprojekteerimine.

Tegutsesin samm-sammult:

  1. Ühendamine auto CAN siiniga
  2. Hääljuhtimine Homekiti ja Siriga
Video lõpus on elektriakna hääljuhtimine.

Raspberry Pi jaoks CAN-kaitse väljatöötamine

Varjestusahela võtsin siit lnxpps.de/rpie, seal on ka kontaktide kirjeldus, CAN-iga suhtlemiseks kasutatakse 2 mikrolülitust MCP2515 ja MCP2551. Varjestusega on ühendatud 2 juhet CAN-High ja CAN-Low. Panin tahvli paika SprintLayout 6-s, ehk on kellelegi CANBoardRPi.lay kasulik (pealkirjafotol kilbi prototüüp leivalaual).

Tarkvara installimine CAN-siiniga töötamiseks

Raspbianis 2 aastat tagasi pidin CAN-toe lisamiseks paika panema bcm2708.c (võib-olla pole seda praegu vaja). CAN-siiniga töötamiseks peate installima utiliidipaketi can-utils saidilt github.com/linux-can/can-utils, seejärel laadima moodulid ja tõstma üles can-liidese:

# insmod insmod spi-bcm2708 lähtestamine insmod can insmod can-dev insmod can-raw insmod can-bcm insmod mcp251x # Maerklin Gleisbox (60112 ja 60113) kasutab 250000 # loopback režiimi testimiseks ip link set set loop0 can0 back on0 bitrate can0 can0 type can5 bit0 up
Kontrollime, kas CAN-liides on käsuga korras ifconfig:

Saate kontrollida, kas kõik töötab, saates käsu ja saate selle vastu.

Ühes terminalis kuulame:

Root@raspberrypi ~ # candump any,0:0,#FFFFFFFF
Teises terminalis saadame:

Root@raspberrypi ~ # cansand can0 123 # deadbeef
Rohkem üksikasjalik protsess Installimist kirjeldatakse siin lnxpps.de/rpie.

Ühendamine auto CAN siiniga

Uurides veidi VW CAN bussi avatud dokumentatsiooni, sain teada, et kasutan 2 bussi.

Jõuülekande CAN siin, mis edastab andmeid kiirusega 500 kbit/s, ühendab kõik seda seadet teenindavad juhtseadmed.

Näiteks saab toiteploki CAN-siiniga ühendada järgmised seadmed:

  • mootori juhtseade,
  • ABS juhtseade,
  • vahetuskursi stabiliseerimissüsteemi juhtseade,
  • käigukasti juhtseade,
  • turvapadja juhtseade,
  • instrumentide klaster.
Comfort süsteemi CAN-siin ja infokäskluste süsteem, mis võimaldab andmeedastust kiirusega 100 kbit/s neid süsteeme teenindavate juhtseadmete vahel.

Näiteks Comfort süsteemi CAN siinile ja infole<командной системы могут быть
Ühendatud on järgmised seadmed:

  • Climatronic-süsteemi või kliimaseadme juhtseade,
  • juhtseadmed auto ustes,
  • Comfort süsteemi juhtseade,
  • ekraaniga juhtseade raadio ja navigatsioonisüsteemi jaoks.
Olles saanud juurdepääsu esimesele, saate liikumist juhtida (minu versioonis mehaanika puhul saate vähemalt kiirushoidikut juhtida), teisele pääsedes saate juhtida raadiot, kliimaseadet, kesklukku, elektriaknaid , esituled jne.

Mõlemad bussid on ühendatud läbi lüüsi, mis asub rooli all ning lüüsiga on ühendatud ka diagnostiline OBD2 pistik Kahjuks ei saa mõlemast bussist liiklust kuulata läbi OBD2 pistiku, saab ainult saata käsk ja oleku küsimine. Otsustasin, et töötan ainult “Comfort” bussiga ja kõige mugavam koht bussiga ühenduse loomiseks oli juhiukses olev pistik.

Nüüd saan kuulata kõike, mis Comfort CAN siinis toimub ja käsklusi saata.

Nuusutaja väljatöötamine ja CAN siini protokolli uurimine


Kui mul on juurdepääs CAN-siini kuulamiseks, pean dešifreerima, kes mida kellele edastab. CAN-paketi vorming on näidatud joonisel.

Kõik can-utils komplekti utiliidid saavad CAN-pakette ise sõeluda ja pakkuda ainult kasulikku teavet, nimelt:

  • Identifikaator
  • Andmete pikkus
  • Andmed
Andmed edastatakse krüptimata, mis hõlbustas protokolli õppimist. Raspberry Pi-le kirjutasin väikese serveri, mis suunab andmed candumpist ümber TCP/IP-le, et arvutis olevat andmevoogu sõeluda ja ilusti kuvada.

MacOS-i jaoks kirjutasin lihtsa rakenduse, mis lisab iga seadme aadressi jaoks tabelisse lahtri ja selles lahtris on juba näha, millised andmed muutuvad.

Vajutasin elektriakna nuppu, leidsin lahtri, milles andmed muutuvad, seejärel tegin kindlaks, millised käsud vastavad alla vajutamisele, üles vajutamisele, üleval hoidmisele, all hoidmisele.

Käsu toimimist saate kontrollida, saates terminalist näiteks käsu tõsta vasak klaas üles:

Saate saata purk0 181#0200
Käsud, mis edastavad seadmeid CAN-siini kaudu VAG-autodes (Skoda Octavia 2011), mis on saadud pöördprojekteerimise abil:

... Alla 181#0008 // Tagumine Parem Klaas Üles 181#0020 // Tagumine Parem Klaas Alla 181#0080 // Kesklukk Ava 291#09AA020000 // Kesklukk Sulge 291#0955040000 // Uuenda keskluku tule olekut käsk ava/sulge lukk, siis ei muuda luku juhtnupul olev LED olekut, nii et see näitab keskluku tegelikku olekut, tuleb saata uuenduskäsk) 291#0900000000
Olin liiga laisk, et kõiki teisi seadmeid uurida, nii et selles loendis on ainult see, mis mulle huvi pakkus.

Telefonirakenduste arendus

Saadud käskluste abil kirjutasin iPhone'ile rakenduse, mis avab/sulgeb aknad ja juhib kesklukku.

Raspberry Pi-l käivitasin 2 väikest serverit, millest esimene saadab andmeid candumpist TCP/IP-le, teine ​​saab iPhone'ilt käsklusi ja saadab need saatma.


IOS-i autojuhtimisrakenduse allikad

// // FirstViewController.m // Autojuhtimine // // Loodud Vitaliy Yurkin 05.17.15. // Autoriõigus (c) 2015 Vitaliy Yurkin. Kõik õigused kaitstud. // #import "FirstViewController.h" #import "DataConnection.h" #import "CommandConnection.h" @liides FirstViewController () @omadus (mitteatoomiline, tugev) DataConnection *andmeühendus; @omadus (mitteatoomiline, tugev) CommandConnection *commandConnection; @omadus (nõrk, mitteatomiline) IBOoutlet UILabel *Uks_1; @omadus (nõrk, mitteatomiline) IBOoutlet UILabel *Uks_2; @omadus (nõrk, mitteatomiline) IBOoutlet UILabel *Uks_3; @omadus (nõrk, mitteatomiline) IBOoutlet UILabel *Uks_4; @omadus (nõrk, mitteatomiline) IBOoutlet UIBupp *CentralLock; - (IBAction)lockUnlock:(UIButton *)saatja; @end @implementation FirstViewController - (void)viewDidLoad ( self.dataConnection = ; self.dataConnection.delegate = ise; ; self.commandConnection = ; ; ) - (void)didReceiveMemoryWarning ( ; // Visake ära kõik ressursid, mida saab uuesti luua. ) - (void)door StatusMuudetud:(char)väärtus ( /* 1 - Vasak eesmine uks 2 - Parem eesmine uks 4 - Taga vasak uks 8 - Tagumine parem uks 3 - Eesmine vasak ja parem uks = 1 + 3 5 - Esi- ja tagumine vasak uks = 1 + 4 */ // Vasak eesmine uks if (väärtus & 1) ( self.Door_1.backgroundColor = ; self.Door_1.text = @"Open"; NSLog(@"1"); ) else ( self.Door_1. backgroundColor = ; self.Door_1.text = @"Suletud" ) // Parem eesmine uks if (väärtus & 2) ( self.Door_2.backgroundColor = ; self.Door_2.text = @"Avatud"; NSLog(@"2); "); ) else ( self.Door_2.backgroundColor = ; self.Door_2.text = @"Closed"; ) // Tagasi vasakuks uks if (väärtus & 4) ( self.Door_3.backgroundColor = ; self.Door_3.text = @"Open"; NSLog(@"4") else (self.Door_3.backgroundColor = ; self.Door_3.text = @"Suletud"; ) // Taga parempoolne uks if (väärtus & 8) ( self.Door_4.backgroundColor = ; self.Door_4.text = @"Open"; NSLog(@"8"); ) else ( self.Door_4.backgroundColor = ; self .Door_4.text = @"Suletud"; ) ) BOOL firstStatusChange = JAH; BOOL lastStatus; -(void) centralLockStatusChanged:(BOOL)status ( // Esimeste olekumuudatuste korral määrake muutuja lastStatus if (firstStatusChange) ( firstStatusChange = NO; // Inverteeri olek, järgmise testi läbimiseks lastStatus = !status; ) // Muuda luku pilti ainult siis, kui olek muudetud if (!(lastStatus == olek)) ( // Kontrolli olekut if (status) ( forState:UIControlStateNormal]; ) else ( forState:UIControlStateNormal]; ) lastStatus = staatus; ) ) // Eesmine vasak klaas - (IBAction)frontLeftUp:(UIButton *)saatja ( ; ) - (IBAction)frontLeftDown:(id)saatja ( ; ) // Esi parempoolne klaas - (IBAction)frontRightUp:(UIButton *)saatja ( ; ) - (IBAction)frontRightDown :(id)saatja ( ; ) // Tagumine vasak klaas - (IBAction)backRightUp:(UIButton *)saatja ( ; ) - (IBAction)backLeftDown:(id)sender ( ; ) // Parem tagumine klaas - (IBAction)backRightUp :(UIButton *)sender ( ; ) - (IBAction)backtRightDown:(id)sender ( ; ) - (IBAction)lockUnlock:(UIButton *)saatja ( // Kui kesklukk on suletud, kui (lastStatus) ( // Ava ; int64_t delayInSeconds = 1; // 1 s dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void)( ; )); ) else ( // Close ; int64_t delayInSeconds = 1; // 1 s dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get)()_main ; ^(vo)id)


Telefonile on võimalus mitte oma rakendust kirjutada, vaid selleks, et kasutada nutikodude maailmast juba valmis, tuleb Raspberry Pi-le lihtsalt paigaldada automaatikasüsteem

Kaasaegne auto on varustatud erinevate süsteemide elektrooniliste juhtseadmetega: mootor, mitteblokeeruv pidurisüsteem, kere ja teised. Põhimõtteliselt on need seadmed mikroarvutid.

Et aru saada, mis on autos CAN-siin, kujutage ette, et autos on organiseeritud lokaalne võrk, millega need mikroarvutid on ühendatud – nii et nad töötavad koos.

See sarnaneb sellega, kuidas kontoriarvutid ühendatakse võrku, et töötajad saaksid üksteiselt lihtsalt infot võtta ning ülemusel on võimalus kontoritöötajate tööd kiiresti jälgida.

Pardaarvuti ja diagnostikasüsteem toimivad autos bossina.

Controller Area Networki arendamise ja ühendamise ajalugu

Eelmise sajandi 80ndatel automatiseerimise valdkonnas uuringuid läbi viiv ettevõte BOSCH pakkus välja mikrokontrolleri kommunikatsioonistandardi, mida saaks kasutada autotööstuses.

CAN-standard ei piirdu ainult autodega. Praegu kasutatakse seda “targa kodu” kontseptsioonis, tööstusautomaatikas jne.

Autotehnoloogia puhul on CAN (Controller Area Network) standard kohandatud füüsilise kihiga siinile. See on korraldatud keerdpaari abil, mida mööda liiguvad erineva polaarsusega signaalipaketid.

See standard on saanud rahvusvahelise klassifikatsiooni ISO 11898. Kaader (pakett) sisaldab 11-bitist infosignaali (või laiendatud režiimis 29-bitist).

Üldiselt ei saa CAN-siini tingimata rakendada keerdpaarjuhtmete abil. See võib olla kas optiline kiud või raadiokanal.

Võib oletada, et mehitamata sõidukite kasutuselevõtuga muudetakse CAN-siin info edastamiseks mõeldud mobiilseks liideseks ühele ja võib-olla ka autokompleksile.

Auto CAN-buss: mis see on ja selle tööpõhimõte

Siin on kohtvõrk, mille kaudu toimub infovahetus erinevate sõidukisüsteemide juhtplokkide vahel. Seega eeldab näiteks automootori juhtseade lisaks mootorit teenindavale peamisele mikrokontrollerile CAN-kontrolleri olemasolu, mis genereerib impulsse mööda kahte siini: CAN-high ja CAN-low (H ja L). ).

Need signaalid edastatakse juhtmete (keerdpaar) kaudu transiiveri abil. Transiiverid või transiiverid on mõeldud:

  • signaali võimendamine,
  • edastatud impulsside mürakindluse tagamine;
  • digitaalse voo edastuskiiruse reguleerimine;
  • liinikaitse CAN siini kahjustuse korral.

Nüüd kasutatakse autotehnoloogias järgmist tüüpi transiivereid - kiire ja tõrketaluvus. Kiire saatja tagab suhteliselt suure teabeedastuskiiruse - kuni 1 megabit sekundis. Teist tüüpi saatjatel on väiksem infoedastuskiirus – kuni 120 kilobitti sekundis. Kuid see on CAN-siini kvaliteedi suhtes vähem tundlik (vigade suhtes taluv) ja võimaldab selle parameetrites kõrvalekaldeid.

Andmevahetuse korraldusskeem

Erinevate sõidukiüksuste CAN-siiniga ühendamise struktuuriskeemi saab kujutada järgmiselt:

Kõigi seadmete koordineerimiseks ehk optimaalsete vastuvõtu- ja edastamistingimuste ning -kiiruse korraldamiseks peavad saatjate väljundtakistused olema ligikaudu samad.

Kui mõni sõidukisüsteemide juhtplokk on lahti ühendatud või kahjustatud, muutub siini takistus, katkeb takistuse sobitamine, mis toob kaasa teabeedastuskiiruse olulise vähenemise mööda siini. Sellised rikkumised võivad põhjustada CAN-siini kaudu side täieliku katkemise.

Mõnel sõidukil kasutatakse CAN-teabe sünkroonimisega seotud probleemide kõrvaldamiseks eraldi lüüsimoodulit.

Igal CAN-siini kaudu edastataval teatel on oma identifikaator, näiteks "jahutusvedeliku temperatuur" ja selle väärtusele vastav kood, näiteks "98,7 kraadi Celsiuse järgi". Need ei pruugi olla absoluutväärtused, enamasti on need suhtelised kahendühikud, mis teisendatakse edasi juht- ja seiresignaalideks.

Diagnoositööriistad kasutavad samu andmeid sõiduki peamiste süsteemide teabe jälgimiseks ja töötlemiseks.

CAN-siini peamised töörežiimid:

  • aktiivne (süüde sees);
  • magamine (väljalülitatud süüte korral);
  • ärkamine ja uinumine (süüte sisse- ja väljalülitamisel).

Puhkerežiimis on siini voolutarve minimaalne. Kuid samal ajal edastatakse siini kaudu (madalama sagedusega) signaale uste ja akende avanemise ning muude auto turvafunktsioonidega seotud süsteemide kohta.

Enamik kaasaegseid diagnostikaseadmeid pakuvad režiimi vigade diagnoosimiseks CAN-siini kaudu. Tehniliselt korraldatakse see juhtide otsese ühendamise teel diagnostikapistikuga.

CAN-siini kasutamise eelised ja puudused autos

Alustuseks, kui CAN-standardit poleks eelmise sajandi 80ndatel välja pakutud, oleks selle asemele tulnud teist tüüpi sõidukisüsteemide vaheline interaktsioon.

Loomulikult on võimalik paigutada kõik sõiduki süsteemide juhtplokid ühte superplokki, milles on tarkvaraliselt võimalik tagada erinevate süsteemide koostoime. Prantsuse tootjad on teinud sarnaseid katseid. Funktsionaalsuse ja jõudluse suurenedes suureneb aga oluliselt rikete tõenäosus. Rikked, näiteks klaasipuhastite puhul, võivad põhjustada mootori käivitamise ebaõnnestumise.

CAN-siini kasutamise peamised eelised:

  • operatiivjuhtimise teostamise võimalus ja;
  • infovoogude ühendamine ühes mürakindlas kanalis;
  • mitmekülgsus, mis hõlbustab diagnostiliste protsesside ühendamist;
  • võimalus ühendada turvasüsteeme CAN-siini kaudu (pole vaja juhtmeid iga juhtelemendi külge vedada).

CAN-siini puudused:

  • madal töökindlus;
  • Ühe juhtseadme kahjustus võib põhjustada CAN-ühenduse täieliku töövõimetuse.

Veaotsing

Sõiduki armatuurlaual puudub CAN-vea märgutuli. Saate otsustada, et CAN-siini jõudlust kahjustavad kaudsed indikaatorid:

  • armatuurlaual süttib korraga mitu vea indikaatorit;
  • jahutusvedeliku temperatuur ja kütusetase kadusid;

Kõigepealt peaksite läbi viima diagnoosi. Kui see viitab CAN-siini talitlushäirele, peaksite alustama probleemi lahendamisega.

Tööde järjekord:

  1. Leidke keerdpaarbussi juhid. Sageli on need mustad (kõrged) ja oranžikaspruunid (madalad).
  2. Kontrollige multimeetri abil juhtmete pinget, kui süüde on sisse lülitatud. Tase ei tohiks olla 0 või üle 11 volti (tavaliselt umbes 4,5 volti).
  3. Lülitage süüde välja ja ühendage aku klemm lahti. Mõõtke juhtide vahelist takistust. Kui see kipub nulli, tähendab see, et siinis on lühis, kui see läheneb lõpmatusele, on katkestus.
  4. Hakake otsima avatud vooluahelat või lühist.
  5. Kui on kahtlus, et siin on mõne juhtseadme rikke tõttu suletud, saate juhtplokid järjest välja lülitada ning jälgida siini takistust ja jõudlust.

CAN-siini rike on sõiduki elektriseadmete kompleksne rike. Kui autoomanikul puuduvad vajalikud elektriremondi oskused, siis on parem kasutada spetsialisti teenuseid.