CAN (kopne)

thumb|300px|''CAN'' tehnoloģiju plaši pielieto automašīnās
***CAN*** (***Controller Area Network***) ir transportlīdzekļu sistēmu kopnes standarts. Tas mikrokontrolieriem un citām ierīcēm ļauj sazināties sava starpā bez centralizēta datora starpniecības. *CAN* ir uz ziņojumiem bāzēts virknes datu pārraides protokols.

*CAN* 1980. gados izstrādāja uzņēmums *[[Robert Bosch|Robert Bosch GmbH]]* autotransporta sistēmu integrācijai. Protokolu ir standartizējusi Starptautiskā standartizācijas organizācija (*ISO 11898* un *ISO 16845*). *CAN* tehnoloģiju izmanto arī citās jomās, piemēram, aviācijā, kuģniecībā, rūpnieciskajā automatizācijā, ēku automatizācijā.

*CAN* ir viens no pieciem protokoliem, ko izmanto iebūvētās diagnostikas *OBD-II* (Eiropā *EOBD*) transportlīdzekļu diagnostikas standarts.

## Vēsture
Darbu pie *CAN* kopnes *Robert Bosch GmbH* sāka 1983. gadā. Protokols oficiāli izlaists 1986. gadā. Pirmo *CAN* kontroliera mikroshēmu, kuru izstrādāja *[[Intel]]* un *[[Philips]]*, izlaida 1987. gadā.

*Bosch* izlaida vairākas *CAN* specifikācijas, un pēdējā *CAN 2.0* publicēta 1991. gadā.

1993. gadā Starptautiskā standartizācijas organizācija apstiprināja *CAN* standartu kā *ISO 11898*.

2012. gadā *Bosch* izlaida paplašinājumu *CAN FD 1.0* (*CAN with Flexible Data-Rate*). Šī specifikācija izmanto dažādus kadra formātus, kas ļauj veidot dažādus datu garumus, kā arī pārslēgties uz ātrāku datu pārraides ātrumu pēc tam, kad to atļāvusi arbitrāža.

## Standarts
*CAN* tehnoloģija ir aprakstīta standartā *ISO 11898*, ko Starptautiskā standartizācijas organizācija pieņēma 1993. gadā. Vēlāk tas tika sadalīts divās daļās. *ISO 11898-1* formulē datu posma slāni. *ISO 11898-2* definē ātrdarbīgā *CAN* fizikālo slāni. *ISO 11898-3* izlaists vēlāk un apraksta zema ātruma *CAN*, noturīgu pret kļūdām. Fizikālā slāņa standarti *ISO 11898-2* un *ISO 11898-3* nav *Bosch CAN 2.0* specifikācijā, tie ir jāiegādājas no *ISO*.

## Arhitektūra
*CAN* ir vairāku vedēju vedējsekotājkopnes standarts, lai savienotu elektroniskās vadības ierīces jeb mezglus. Mezgli pēc sarežģītības var būt sākot ar vienkāršām ievades vai izvades ierīcēm līdz pat iegultiem datoriem. Mezgls var būt arī vārteja, kas ļauj standarta datoram ar USB vai *[[Ethernet]]* saskarni sazināties ar *CAN* kopnes ierīcēm.

Visi mezgli savā starpā savienoti ar divu vadu kopni. Tās galos jābūt 120 Ω rezistoru terminatoriem.

## ''OSI'' slāņu realizācija

### Fizikālais slānis
thumb|right|240px|''CAN'' kopnes topoloģija ar terminatoru rezistoriem
thumb|160px|''DE-9'' vīrišķā savienotāja (spraudņa) kontaktu izvietojums
*CAN* kopni (*ISO 11898-1*) sākotnēji aprakstīja datu posma slāņa protokolu ar abstraktām fizikālā slāņa prasībām. Fizikālā slāņa elektriskie aspekti (spriegums, strāva, vadu skaits) tika definēti standartā *ISO 11898-2*.

Mehāniskie aspekti (savienotāja tips un skaits, krāsas, marķējums, kontaktu izvietojums) tomēr nav standartizēti. Tādējādi dažādu ražotāju automašīnu elektroniskās vadības ierīces tiek saslēgtas ar dažādu veidu savienotājiem un kabeļiem, kuros divas dzīslas ir *CAN* kopnes līnijas. Ir tomēr radušies vairāki *[[de facto]]* standarti mehāniskajai realizācijai, no kuriem plašāk izmantotais ir *[[D-sub]]* veida 9 kontaktu savienotājs ar šādu kontaktu izvietojumu:
* 2. kontakts: *CAN-Low* (*CAN−*)
* 3. kontakts: *GND* (zeme)
* 7. kontakts: *CAN-High* (*CAN+*)
* 9. kontakts: *CAN V+* (barošana)

Trokšņnoturība *ISO 11898-2* standartā tiek panākta, kopnē uzturot diferenciālu impedanci zemā līmenī ar  rezistoriem katrā kopnes galā. Šāda zemas impendances kopne gaidīšanas režīmā tomēr patērē vairāk enerģijas nekā cita veida kopnes.

*CAN* kopnes sistēmās līdzsvarotas līnijas operācijas, kur strāva vienā signāla līnijā tiek precīzi balansēta ar pretēja virziena strāvu otrā signāla līnijā, nodrošina neatkarīgu, stabilu  etalonu uztvērējiem. Labā prakse nosaka, ka *CAN* kopnes balansētā pāra signāli tiek pārvadīti ekranētā vītā pāra kabelī, lai minimizētu elektromagnētisko izstarojumu un samazinātu interferences uzņēmību transportlīdzekļa jau tā elektromagnētisko traucējumu piesātinātajā vidē.

*CAN* kopne nodrošina elektrobarošanu visiem mezgliem. Barošanas sprieguma līmenis nav formāli noteikts, un tas katrai realizācijai var būt atšķirīgs; parasti tas ir no 7 līdz 30 V. Mezglu konstrukcijas vispārējā prakse ir tāda, ka katra mezglam ir raiduztvērējs, un tas ir optiski izolēts no mezgla.  lineāri regulētu spriegumu raiduztvērējs iegūstot no kopnes universālās barošanas līnijas.

Recesīvā stāvoklī signāla līnijas un rezistori paliek augstā impedances stāvoklī. *CAN−* un *CAN+* spriegumi (vāji) tiecas uz vidējo vērtību starp robežlielumiem. Recesīvais stāvoklis kopnē ir tikai tad, kad neviens no raidītājiem neatrodas dominējošajā stāvoklī.

Dominējošā stāvokļa laikā signāla līnijas un rezistori pāriet zemā impedances stāvoklī, strāvai plūstot caur rezistoru. *CAN+* spriegums tiecas uz , un *CAN-* tiecas uz .

Neatkarīgi no signāla stāvokļa, signāla līnijas vienmēr ir zemā impedances stāvoklī attiecībā vienai pret otru, pateicoties terminālrezistoriem kopnes galos.

Šāda signālu organizācija būtiski atšķiras no citām līdzsvarotu līniju pārraides tehnoloģijām, piemēram, *[[RS-422]]/3*, *[[RS-485]]*, kas izmanto signalizācijas sistēmu, balstītu uz diferenciālā režīma spriegumu, līdzsvarotai līnijai šķērsojot nosacīto.

### Datu posma slānis
*CAN* datu posma slānis ir aprakstīts standartā *ISO 11898-1*. Tas ir formulēts divos protokolos: klasiskais (lēnais) *CAN* (izlaists 1986. gadā) un ātrais *CAN FD* (izlaists 2012. gadā, starptautiski standartizēts 2015. gadā).

Abu datu posma slāņa protokoliem ir kopējas pazīmes. Jebkuram mezglam ir ļauts jebkurā brīdī pieprasīt pārraidīšanas tiesības. Lai novērstu pārraidīšanas konfliktus, arbitrāžas metodē kadri ar augstāko identifikatoru iegūst piekļuvi kopnei bez kavēšanās. Visi kadru tipi tiek pārraidīti apraidē.

Viena no unikālākajām *CAN* datu posma slāņa īpašībām ir tā, ka tiek atklātas visas viena bita kļūdas. Vairāku bitu kļūdas tiek konstatētas ar augstu varbūtību. Lai nodrošinātu datu saskaņu visos mezglos, lokālās kļūdas tiek globalizētas. 

Klasiskais *CAN* protokols izmanto tikai vienu bitu arbitrāžai un datu fāzei. Pārraides ātrums ir ierobežots līdz 1 Mbit/s nelieliem tīkliem (teorētiski līdz 40 m). Reālais bitu pārraides ātrums atkarīgs no tīkla garuma un fizikālā slāņa elementiem (kabeļi, savienotāji, raiduztvērēji); praktiski tas ir no 40 līdz 125 kBit/s. Vērtums (datu lauks) ir ierobežots līdz 8 baitiem.

*CAN FD* atļauj vērtumus līdz 64 baitiem. Bez tam tas atbalsta neobligātu otro bitu pārraides ātrumu datu fāzei. Ātruma ierobežojums arbitrāžas fāzē ir tāds pats kā klasiskajā *CAN*. Datu fāzē ātrums ir ierobežots ar raiduztvērēja raksturlielumiem, svārstību ģeneratora pielaidēm un topoloģijas. Datu fāzē bitu pārraides ātrums var būt līdz 8 Mbit/s, ja izmanto kopnes topoloģiju ar ļoti īsiem, neterminētiem atzarojumiem. Praktiski *CAN FD* ātrums ir līdz 1 Mbit/s.

## Atsauces

## Ārējās saites
* CAN Specification Version 2.0 BOSCH