|
CAN (Controller Area Network) tinklas sukurtas Robert Bosch GmbH
firmos 1986 metais. Jo pagrindinė paskirtis - automobilių
pramonė. Pagrindinis tikslas buvo padaryti automobilius
patikimesnius, saugesnius ir ekonomiškesnius tuo pat metu
sumažinant jungiamųjų laidų kiekį ir elektros grandinių
sudėtingumą. CAN protokolas labai išpopuliarėjo ne tik
automobilių ir sunkvežimių pramonėje bet ir kitose srityse
(laivuose, traukiniuose, pramoninėje automatikoje, medicinos
technikoje ir kt.).
Europos automobilių ir sunkvežimių gamintojai CAN'a pradėjo
naudoti daugiau nei prieš 10 metų. Pagrindiniai CAN protokolo
privalumai yra aukštas patikimumas ir didelis duomenų perdavimo
greitis (iki 1 Mbit/s). Tačiau dėl specifinės aplinkos ir
patikimumo padidinimo, automobiliuose naudojamas maksimalus
greitis 500kbit/s.
Automobilių pramonėje siekiant užtikrinti skirtingų gamintojų
įrangos suderinamumą, apie 1993 metus buvo sukurti ISO
(International Standards Organization) ir SAE (International
Standards Organization and Society of Automotive Engineers)
standartai:
|
 |
ISO 11898
- didelio greičio (High-Speed) CAN standartas |
 |
ISO 11519
- mažo greičio (Low-Speed) CAN standartas |
 |
SAE J2284
- didelio greičio CAN standartas (High Speed CAN (HSC)
for Vehicle Applications at 125 Kbps) |
|
 |
SAE J1939
- CAN standartas kroviniams automobiliams ir autobusams |
|
Yra dvi CAN protokolo specifikacijos 2.0A ir 2.0B. Pirmojoje
naudojami 11 bitų identifikavimo adresas, antrojoje - 29 bitų.
Automobilių pramonėje CAN tinklo pagalba sujungiami variklio
valdymo, papildomos įrangos, oro kondicionavimo, apšvietimo ir
kitos įrangos blokai tarpusavyje. Jau apie 10 metu dauguma
Europietiškų automobilių gamintojų naudoja CAN tinklus įrangos
sujungimui. Amerikietiškų ir azietiškų automobilių gamintojai
CAN'a pradėjo naudoti gerokai vėliau. Pirmasis automobilis su
CAN tinklu buvo Mercedes-Benz S - klasės1991 metais, jame buvo
sujungta prietaisų skydelis, variklio ir transmisijos valdymo
blokai.
Dažnai automobiliuose yra keletas CAN tinklų dirbančių
skirtingais greičiais. Variklio valdymo, ABS sistemos jungiamos
"High-Speed" tinklu, o papildomos įrangos tinklai dirba "Low
Speed". Kai kurie Amerikeitiškų automobilių gamintojai naudoja
vieno laido (single-wire arba GMLAN) CAN tinklų atmainą.
|
|
|
|
CAN
diagnostika
|
|
Daugumoje naujų
automobilų yra įdiegta (EOBD) diagnostika CAN protokolu.
Šis
diagnostikos
interfeisas yra standartizuotas ISO
15765 standarto (Diagnostics on CAN). Pirmieji
automobiliai pasirodę rinkoje su
CAN diagnostika buvo 2002 metais Ford Fiesta, Opel Vectra ir
Mazda 6. Šiandien CAN diagnostika yra daugumoje naujų Ford,
Jaguar, Mazda, Mercedes, Nissan, Toyota, Lexus, Renault,
Peugeot, Chrysler, Opel, WV, Audi, Porsche, Volvo, Saab ir kt.
automobilių. Daugumoje atvejų nesunkiai galima nustatyti ar
automobilis turi diagnostiką per CAN. Tam reikia pažiūrėti ar
yra atitinkami kontaktai automobilio
OBD-II jungtyje.
|
|
Šiuo metu automobilių
diagnostikai yra naudojami 4 skirtingi ISO15765 protokolo
variantai:
|
 |
ISO 11898
- didelio greičio (High-Speed) CAN standartas |
 |
ISO 11519
- mažo greičio (Low-Speed) CAN standartas |
 |
SAE J2284
- didelio greičio CAN standartas (High Speed CAN (HSC)
for Vehicle Applications at 125 Kbps) |
|
 |
SAE J1939
- CAN standartas kroviniams automobiliams ir autobusams |
|
Pagal CAN 2.0A specifikaciją naudojamas 11 bitų identifikavimas
- toks variantas kartais vadinamas kaip Basic arba
Standard CAN,o
pagal CAN 2.0B specifikaciją naudojamas 29 bitų identifikavimas
- kartais vadinamas kaip Full arba Extended Frame CAN
|
|
CAN tinklo
struktūra
|
|
Tipinis CAN tinklas
automobiliuose yra sudarytas iš diferencialinės linijos (du
laidai susukti tarpusavyje ir kiekviename linijos gale prijungta
apkrovos varža). |
|

|
|
Automobilių
elektroninėje įrangoje apkrovos varžos yra įmontuotos valdymo
blokuose. Sujungtų į CAN tinklą valdymo blokų gali būti keletas,
tačiau apkrovos varžos bus tik 2 iš jų (dažniausiai variklio
valdymo ir pavarų dėžės kompiuteriuose). Standartiškai apkrovos
varža RT=124 W.
|
|

Tipinė tinklo struktūra (ISO11898).
|
|
Gali būti naudojamos ir
kitokios CAN tinklo struktūros. Žemiau pateikta schema yra
atsparesnė trukdžiams.
|
|
|
|
Taip pat kartais gali
būti sutinkami žvaigždės tipo CAN tinklai. Tokiuose tinkluose
naudojamos daugiau nei 2 apkrovos varžos:
|
|

Žvaigždės tipo tinklo schema
|
|
Nepriklausomai nuo
tinklo struktūros bendra linijos varža yra RT/2=
62 W.
Informacijos perdavimas
diferencialine linija yra daug patikimesnis ir atsparesnis
trukdžiams. Vienu linijos laidu yra perduodama ta pati
informacija kaip ir kitu, tik invertuota. Pavyzdžiui jei ant
linijos CAN_H yra "0", tai ant CAN_L yra "1". Valdymo blokas
visada priima abu signalus ir mato įtampos skirtumą tarp jų.
Kadangi signalas perduodamas dviem laidas, tai trukdžiai abu
juos veikia vienu metu, o skirtumas tarp CAN_H ir CAN_L išlieka
tas pats.
|
|

|
|
Dažniausiai signalo
amlitudė yra apie 1.25 V. CAN_H signalas yra tarp 2.5 ir 3.75 V,
o CAN_L tarp 1.25 ir 2.5V.
Duomenys per CAN'a perduodami paketais. Paketo ilgis nėra
fiksuotas, tačiau negali būti didesnis, nei apibrėžta standarto.
Tarp duomenų paketų yra tarpai, kurių metu bet kuris į tinklą
pajungtas prietaisas gali pradėti siuntimą.
|
|
|
|
CAN sistemų
gedimai
|
|
Dažnai automobiliuose
atsiranda gedimai pakeitus sugedusį valdymo bloką kitu. Valdymo
blokai yra sujungti tarpusavyje per CAN tinklą ir visi turi savo
identifikavimo adresą (11 arba 29 bitų). Pakeitus valdymo bloką
kitu, kuris lyg ir niekuom nesiskiria nuo sugedusio, jis gali
netikti dėl programinės versijos nesutapimo, identifikavimo ir
kt. Taip pat pasitaiko gedimai dėl CAN tinklo laidų pažeidimų,
ar paties bloko gedimų. CAN duomenų perdavimo laidai, būtinai
turi būti susukti tarpusavyje, jeigu laidai eina atskirai 10 cm
ar daugiau, tai labai didelė tikimybė kad tinklas veiks
nepatikimai, arba visai neveiks. Taip pat ,taisant laidų
pažeidimus nepatartina daryti laidų sujungimus, nes kiekviena
laidų sujungime atsiranda signalo atspindžiai. O tai gali
įtakoti duomenų perdavimo kokybei ir patikimumui. Dauguma
sistemų bendraujančių per CAN tinklą, atsiradus vieno laido
pažeidimams, gali dirbti avariniu rėžimu ir per vieną laidą.
|
 |
NORMALUS SIGNALAS
Čia pavaizduotas komforto CAN tinklo signalas. Jame
perduodamas 2 durų ir centrinio modulio signalai. 3
skirtingi duomenų paketai nesunkiai matosi, tačiau
norint detaliau pamatyti šiuos signalus reikia gan
greito oscilogtrafo.
|
 |
CAN_L GEDIMAS
Oscilogramoje matosi signalo sutrikimai CAN_L linijoje.
Šiuo atveju gali būti vieno iš kontrolerių gedimas.
Kontroleris nesugeba duomenų perduoti per CAN_L liniją,
dėl vidinio gedimo. Nes kaip matosi iš oscilogramos,
kitų kontrolerių duomenys perduodami per abi linijas.
|
 |
CAN_H GEDIMAS
Oscilogramoje matosi signalo sutrikimai CAN_H linijoje.
Šiuo atveju gali būti vieno iš kontrolerių gedimas.
Kontroleris nesugeba duomenų perduoti per CAN_H liniją,
dėl vidinio gedimo. Nes kaip matosi iš oscilogramos,
kitų kontrolerių duomenys perduodami per abi linijas.
|
 |
CAN_L užtrumpintas į žemę.
Šiuo atveju CAN_L linijoje nėra jokio signalo. Tai gali
būti tiek dėl valdymo bloko, tiek dėl laidų pažeidimų.
Tokiu atveju reikėtų patikrinti ar CAN_L laidas nėra
užsitrumpinęs į korpusą ar nutrūkęs. O jei tai bloko
gedimas, nustatyti kurio, galima atjungiant po vieną
visus blokus prijungtus prie CAN tinklo.
|
 |
CAN_L užtrumpintas į +12v.
Šiuo atveju CAN_L linijoje nėra jokio signalo. Tai gali
būti tiek dėl valdymo bloko, tiek dėl laidų pažeidimų.
Tokiu atveju reikėtų patikrinti ar CAN_L laidas nėra
užsitrumpinęs į +12V ar nutrūkęs. O jei tai bloko
gedimas, nustatyti kurio, galima atjungiant po vieną
visus blokus prijungtus prie CAN tinklo.
|
 |
CAN_L GEDIMAS
Šiuo atveju kai kurių duomenų paketų CAN_L linijoje yra
per maža signalo amplitudė. Kadangi ne visų paketų, o
tik kai kurių signalas yra blogas, tai reiškia kad yra
kažkurio bloko gedimas. Būtent šis gedimas yra iššauktas
dirbtinai - pajungus CAN_L signalą į vieną iš blokų per
300 omų varžą. Toks gedimas realiai galėtų atsirasti dėl
blogų kontaktų jungtyse, ar laidų oksidacijos.
|
|
|
|