logo

CAN (Controller Area Network) -protokolla

CAN tarkoittaa Ohjaimen alueverkko protokollaa. Se on protokolla, jonka on kehittänyt Robert Bosch noin vuonna 1986. CAN-protokolla on standardi, joka on suunniteltu mahdollistamaan mikro-ohjain ja muut laitteet viestimään keskenään ilman isäntätietokonetta. Ominaisuus, joka tekee CAN-protokollasta ainutlaatuisen muiden viestintäprotokollien joukossa, on väylän yleislähetystyyppi. Tässä yleislähetys tarkoittaa, että tiedot välitetään kaikille solmuille. Solmu voi olla anturi, mikro-ohjain tai yhdyskäytävä, jonka avulla tietokone voi kommunikoida verkon yli USB-kaapelin tai Ethernet-portin kautta. CAN on sanomapohjainen protokolla, mikä tarkoittaa, että viesti kuljettaa viestin tunnisteen ja sen perusteella päätetään prioriteetti. CAN-verkossa ei tarvita solmutunnistetta, joten sen lisääminen tai poistaminen verkosta on erittäin helppoa. Se on sarjamuotoinen puolidupleksi ja asynkroninen tiedonsiirtoprotokolla. CAN on kaksijohtiminen tiedonsiirtoprotokolla, koska CAN-verkko on kytketty kaksijohtimiseen väylän kautta. Johdot ovat kierrettyjä pareja, joiden ominaisuuksien impedanssi on 120 Ω, jotka on kytketty molempiin päihin. Alun perin se suunniteltiin pääasiassa ajoneuvojen sisäistä viestintää varten, mutta nyt sitä käytetään monissa muissa yhteyksissä. UDS:n ja KWP 2000:n tavoin Voidaan käyttää myös sisäiseen diagnostiikkaan.

Miksi CAN?

Keskitetyn standardikommunikaatioprotokollan tarve johtui elektronisten laitteiden määrän kasvusta. Esimerkiksi nykyaikaisessa ajoneuvossa voi olla yli 7 TCU:ta erilaisille alajärjestelmille, kuten kojelauta, vaihteiston ohjaus, moottorin ohjausyksikkö ja monet muut. Jos kaikki solmut yhdistetään yksitellen, tiedonsiirron nopeus olisi erittäin korkea, mutta johtojen monimutkaisuus ja hinta olisivat erittäin korkeat. Yllä olevassa esimerkissä yksi kojelauta vaatii 8 liitintä, joten tämän ongelman ratkaisemiseksi CAN esiteltiin keskitettynä ratkaisuna, joka vaatii kaksi johtoa, eli CAN high ja CAN low. Ratkaisu käyttää CAN-protokollaa on varsin tehokas sanomapriorisoinnin ansiosta ja joustava, koska solmu voidaan lisätä tai poistaa verkkoon vaikuttamatta.

CAN-protokollan sovellukset

Alun perin CAN-protokolla suunniteltiin kohdistamaan ajoneuvoissa esiintyviin viestintäongelmiin. Mutta myöhemmin sen tarjoamien ominaisuuksien vuoksi sitä käytetään useilla muilla aloilla. Seuraavat ovat CAN-protokollan sovelluksia:

  • Autot (henkilöautot, kuorma-autot, linja-autot)
  • Elektroniset laitteet ilmailuun ja navigointiin
  • Teollisuusautomaatio ja mekaaninen ohjaus
  • Hissi ja liukuportaat
  • Rakennusautomaatio
  • Lääketieteelliset instrumentit ja laitteet
  • Meri, lääketiede, teollisuus, lääketiede

CAN-kerroksinen arkkitehtuuri

Kuten tiedämme, että OSI malli jakaa viestintäjärjestelmän 7 eri kerrokseen. Mutta CAN-kerrosarkkitehtuuri koostuu kahdesta kerroksesta, ts.

gimp-fonttiluettelo

Ymmärretään molemmat kerrokset.

  • Tietolinkkikerros: Tämä kerros vastaa tiedonsiirrosta solmusta solmuun. Sen avulla voit muodostaa ja katkaista yhteyden. Se on myös vastuussa fyysisellä kerroksella mahdollisesti ilmenevien virheiden havaitsemisesta ja korjaamisesta. Tietolinkkikerros on jaettu kahteen alakerrokseen:
      MAC:MAC tulee sanoista Media Access Control. Se määrittää, kuinka verkon laitteet saavat pääsyn tietovälineeseen. Se tarjoaa tietojen kapseloinnin ja kapseloinnin purkamisen, virheiden havaitsemisen ja signaloinnin.
  • LLC:LLC tulee sanoista Logical link control. Se vastaa kehysten hyväksyntäsuodatuksesta, ylikuormitusilmoituksesta ja palautuksen hallinnasta.
  • Fyysinen kerros: Fyysinen kerros vastaa raakatiedon lähettämisestä. Se määrittelee parametrit, kuten jännitetason, ajoituksen, tiedonsiirtonopeudet ja liittimen.

CAN-määritykset määrittelevät CAN-protokollan ja CAN-fyysisen kerroksen, jotka on määritelty CAN-standardissa ISO 11898. ISO 11898 sisältää kolme osaa:

  • ISO 11898-1: Tämä osa sisältää tietolinkkikerroksen ja fyysisen signaalilinkin määrittelyn.
  • ISO 11898-2: Tämä osa tulee CAN-fyysisen kerroksen alaisena nopealle CAN:lle. Nopea CAN mahdollistaa jopa 1 Mbps:n tiedonsiirtonopeuden käytettäväksi voimansiirrossa ja ajoneuvon latausalueella.
  • ISO 11898-3: Tämä osa tulee myös CAN-fyysisen kerroksen alle hitaalle CAN:lle. Se sallii tiedonsiirtonopeuden jopa 125 kbps, ja hidasta CAN:ia käytetään silloin, kun tiedonsiirron nopeus ei ole kriittinen tekijä.

CiA DS-102: CiA:n täysi muoto on automaatiossa CAN, joka määrittelee CAN-liittimen tekniset tiedot.

Toteutuksen osalta CAN-ohjain ja CAN-lähetin-vastaanotin on toteutettu ohjelmistossa sovelluksen, käyttöjärjestelmän ja verkonhallintatoimintojen avulla.

CAN-kehystys

Ymmärretään CAN-kehyksen rakenne.

CAN-protokolla
    SOF:SOF tarkoittaa kehyksen alkua, mikä osoittaa, että uusi kehys on syötetty verkkoon. Se on 1-bittinen.Tunniste:CAN 2.0 A -spesifikaatiossa määritelty standarditietomuoto käyttää 11-bittistä viestitunnistetta sovitteluun. Periaatteessa tämä viestitunniste asettaa datakehyksen prioriteetin.RTR:RTR on lyhenne sanoista Remote Transmission Request, joka määrittää kehystyypin, olipa kyseessä datakehys vai etäkehys. Se on 1-bittinen.Ohjauskenttä:Siinä on käyttäjän määrittämiä toimintoja.
      MENNÄ:IDE-bitti ohjauskentässä tarkoittaa tunnisteen laajennusta. Dominoiva IDE-bitti määrittää 11-bittisen vakiotunnisteen, kun taas resessiivinen IDE-bitti määrittää 29-bittisen laajennetun tunnisteen.DLC:DLC on lyhenne sanoista Data Length Code, joka määrittää datakentän pituuden. Se on 4-bittinen.Tietokenttä:Tietokenttä voi sisältää enintään 8 tavua.
    CRC-kenttä:Tietokehys sisältää myös 15-bitin syklisen redundanssin tarkistuskentän, jota käytetään korruption havaitsemiseen, jos se tapahtuu lähetysaikana. Lähettäjä laskee CRC:n ennen datakehyksen lähettämistä, ja vastaanottaja laskee myös CRC:n ja vertaa sitten laskettua CRC:tä lähettäjältä saatuun CRC:hen. Jos CRC ei täsmää, vastaanotin luo virheen.ACK-kenttä:Tämä on vastaanottajan tunnustus. Muissa protokollissa erillinen kuittauspaketti lähetetään kaikkien pakettien vastaanottamisen jälkeen, mutta CAN-protokollan tapauksessa erillistä pakettia ei lähetetä kuittausta varten.EOF:EOF tarkoittaa kehyksen loppua. Se sisältää 7 peräkkäistä resessiivistä bittiä, jotka tunnetaan kehyksen loppu.

Nyt näemme kuinka tietoja siirretään CAN-verkon kautta.

CAN-protokolla

CAN-verkko koostuu useista CAN-solmuista. Yllä olevassa tapauksessa olemme tarkastelleet kolmea CAN-solmua ja nimenneet ne solmuksi A, solmuksi B ja solmuksi C. CAN-solmu koostuu kolmesta elementistä, jotka on annettu alla:

npm välimuisti puhdas
  • Isäntä
    Isäntä on mikro-ohjain tai mikroprosessori, joka käyttää jotakin sovellusta tietyn työn suorittamiseksi. Isäntä päättää, mitä vastaanotettu viesti tarkoittaa ja minkä viestin se lähettää seuraavaksi.
  • CAN-ohjain
    CAN-ohjain käsittelee CAN-protokollan kuvaamia viestintätoimintoja. Se laukaisee myös CAN-viestien lähetyksen tai vastaanoton.
  • CAN lähetin-vastaanotin
    CAN-lähetin-vastaanotin vastaa tiedon lähettämisestä tai vastaanottamisesta CAN-väylällä. Se muuntaa datasignaalin CAN-väylältä kerätyksi tietovirraksi, jota CAN-ohjain ymmärtää.

Yllä olevassa kaaviossa tietojen lähettämiseen tai vastaanottamiseen käytetään suojaamatonta kierrettyä parikaapelia. Se tunnetaan myös nimellä CAN-väylä, ja CAN-väylä koostuu kahdesta linjasta, eli CAN-matalasta ja CAN-ylälinjasta, jotka tunnetaan myös nimellä CANH ja CANL. Siirto tapahtuu näihin linjoihin kohdistetun differentiaalisen jännitteen vuoksi. CAN käyttää kierrettyä parikaapelia ja erojännitettä ympäristönsä vuoksi. Esimerkiksi autossa, moottori, sytytysjärjestelmä ja monet muut laitteet voivat aiheuttaa tietojen menetyksen ja tietojen vioittumisen melun vuoksi. Kahden viivan kiertyminen vähentää myös magneettikenttää. Väylän molemmissa päissä on 120Ω resistanssi.

CAN-ominaisuudet

CAN-protokolla

Erojännitteen avulla määritetään kuinka 0 ja 1 välitetään CAN-väylän kautta. Yllä oleva kuva on jännitekaavio, joka näyttää jännitetason CAN low ja CAN high. CAN-terminologiassa logiikan 1 sanotaan olevan resessiivinen, kun taas logiikka 0 on hallitseva. Kun CAN high line ja CAN low line syötetään 2,5 voltilla, todellinen erojännite olisi nolla volttia. CAN-väylällä olevan nolla voltin lukee CAN-lähetin-vastaanotin resessiivisenä tai logiikkana 1. Nolla voltti CAN-väylällä on väylän ihanteellinen tila. Kun CAN-ylälinja vedetään 3,5 volttiin ja CAN-matala linja vedetään alas 1,5 volttiin, väylän todellinen erojännite on 2 volttia. CAN-lähetin-vastaanotin käsittelee sitä hallitsevana bittinä tai logiikkana 0. Jos väylätila saavutetaan dominoivaan tai logiikkaan 0, niin minkään muun solmun siirtyminen resessiiviseen tilaan tulisi mahdottomaksi.

CAN-ominaisuuksista opitut keskeiset kohdat

  • Logiikka 1 on resessiivinen tila. Lähettääksesi 1 CAN-väylällä, sekä CAN high että CAN low tulee käyttää 2.5V jännitteellä.
  • Logiikka 0 on hallitseva tila. Nollan lähettämiseksi CAN-väylällä, CAN high tulee käyttää 3,5 V:ssa ja CAN low - 1,5 V.
  • Bussin ihanteellinen tila on resessiivinen.
  • Jos solmu saavuttaa hallitsevan tilan, se ei voi siirtyä takaisin resessiiviseen tilaan millään muulla solmulla.

CAN-väylän logiikka

CAN-protokolla
CAN-protokolla

Yllä olevasta skenaariosta saamme tietää, että hallitseva tila korvaa resessiivisen tilan. Kun solmu lähettää dominoivan ja resessiivisen bitin samanaikaisesti, väylä pysyy hallitsevana. Resessiivinen taso esiintyy vain, kun kaikki solmut lähettävät resessiivisen bitin. Tällaista logiikkaa kutsutaan AND-logiikaksi, ja se on fyysisesti toteutettu avoimena kollektoripiirinä.

CAN-viestintäperiaate

Kuten tiedämme, viesti lähetetään sovittelukentässä asetetun prioriteetin perusteella. Vakiokehyksessä viestin tunniste on 11-bittinen, kun taas laajennetussa kehyksessä viestin tunniste on 29-bittinen. Sen avulla järjestelmän suunnittelija voi suunnitella viestin tunnisteen itse suunnittelussa. Mitä pienempi viestin tunniste on, sitä korkeampi olisi viestin prioriteetti.

Ymmärretään, kuinka välimiesmenettely toimii vuokaavion avulla.

CAN (Controller Area Network) -protokolla

Lähettäjä haluaa lähettää viestin ja odottaa CAN-väylän siirtymistä vapaaksi. Jos CAN-väylä on vapaana, niin lähettäjä lähettää SOF:n tai hallitsevan bitin väylän pääsyä varten. Sitten se lähettää viestin tunnistebitin merkittävimmässä bitissä. Jos solmu havaitsee hallitsevan bitin väylällä, kun se on lähettänyt resessiivisen bitin, se tarkoittaa, että solmu on menettänyt sovittelun ja lopettaa lisäbittien lähettämisen. Lähettäjä odottaa ja lähettää viestin uudelleen, kun bussi on vapaa.

Esimerkki CAN-välitysmenettelystä

CAN-protokolla

Jos tarkastellaan kolmea solmua, eli solmu 1, solmu 2 ja solmu 3, näiden solmujen viestitunnisteet ovat 0x7F3, 0x6B3 ja 0x6D9, vastaavasti.

CAN-protokolla

Kaikkien kolmen solmun lähetys merkittävimmällä bitillä on esitetty yllä olevassa kaaviossa.

yksitoistathbitti: Koska kaikki kolme solmubittiä ovat resessiivisiä, väyläbitti pysyy myös resessiivisenä.

mylivericket

10thbitti: Kaikilla solmuilla on 10. bitti resessiivisenä, joten väylä pysyy myös resessiivisenä.

9thbitti: Solmussa 1 on resessiivinen bitti, kun taas muissa solmuissa on hallitseva bitti, joten väylä pysyy myös hallitsevana. Tässä tapauksessa solmu 1 on menettänyt sovittelun, joten se lopettaa bittien lähettämisen.

8thbitti: Sekä solmu 2 että solmu 3 lähettävät resessiivistä bittiä, joten väylän tila pysyy resessiivisenä.

7thbitti: Solmu 2 lähettää hallitsevan bitin, kun taas solmu 3 on lähettänyt resessiivisen bitin, joten väylätila pysyy hallitsevana. Tässä tapauksessa solmu 3 on menettänyt sovittelun, joten se lopettaa viestin lähettämisen, vaikka solmu 2 on voittanut sovittelun, mikä tarkoittaa, että se jatkaa väylän ylläpitoa, kunnes sanoma on vastaanotettu.