You dont have javascript enabled! Please enable it!

CAN-шина

Предмети:

  • въведение
  • Няколко мрежи в една кола
  • CAN мрежа с възлите
  • Различни видове CAN скорости
  • Сигнали на CAN шина
  • Скорости и нива на напрежение
  • Структура на съобщението на CAN шината на (стандартен) 11-битов идентификатор
  • Структура на съобщението на CAN шината на (разширен) 28 битов идентификатор
  • Разпознаване на грешки с помощта на Bitstuffing и CRC & ACK разделители
  • Окабеляване с усукана двойка
  • Крайни резистори
  • Врата
  • Измерване по CAN шината

Предговор:
Съвременните автомобили са пълни с електроника. Блоковете за управление събират и обработват данни от сензори и управляващи изпълнителни механизми. Различните ECU често използват едни и същи данни: dСензорът за положение на педала на газта регистрира позицията на педала на газта. Този сигнал се изпраща директно към ECU на двигателя чрез окабеляването. ECU на двигателя не е единственото ECU, което използва този сигнал:

  • ECU на двигателя използва сигнала от сензора за положение на педала на газта, за да управлява дроселната клапа, когато ускорява, за обогатяване на ускорението чрез активиране на инжекторите за по-дълго време, регулиране на момента на запалване и, ако е необходимо. контрол на wastegate или VGT настройка на турбото;
  • ECU на автоматичната трансмисия използва позицията на педала на газта, за да определи времето за превключване на съединителите в автоматичната трансмисия. Ако педалът на газта се натисне леко, автоматичната трансмисия ще превключи на по-висока предавка с по-ниска скорост, отколкото когато педалът на газта е натиснат наполовина. При внезапно бързо натискане на педала на газта, ще се получи „ускоряване“ чрез превключване на по-ниска предавка и позволяване на двигателя да се върти повече;
  • Степента на ускорение в завой може да бъде причина ESP-ECU да накара ESP да се намеси, като намали мощността на двигателя и, ако е необходимо, за натискане на спирачката на въртящо се колело.

По време на намесата на ESP мощността на двигателя намалява чрез (частично) затваряне на дроселната клапа и впръскване на по-малко гориво. Светлинен индикатор също ще светне или мига на арматурното табло, за да предупреди водача, че ESP работи.

Горното ясно показва сътрудничеството между различните ECU. CAN шината гарантира, че ECU комуникират помежду си и следователно могат да обменят данни помежду си. CAN е съкращение от: Controller Area Network. 

ECU на двигателя
Вграден ECU на двигателя в двигателния отсек

През 80-те години автомобилите получават все повече и повече аксесоари и производителите започват да инсталират контролни устройства. Всяка функция имаше отделен проводник. Това доведе до рязко увеличаване на дебелината на проводника и броя на щепселните връзки.
Дебелите кабелни снопове имат недостатъка, че скриването им зад вътрешната облицовка е трудно и рискът от неизправности нараства значително.

С CAN шина ECU комуникират само с два проводника: CAN-висок и CAN-нисък. Цялата комуникация между ECU се осигурява чрез тези два проводника. азСледващите две изображения ясно показват, че броят на кабелите на една врата вече е значително намален при използване на CAN шина.

Десетки управляващи устройства могат да бъдат свързани към двата проводника на CAN шината на CAN шината. Всички свързани управляващи устройства могат да обменят данни помежду си.

 

Изображението по-долу показва превозно средство с единадесет контролни устройства (обозначени с червени блокове). Всички тези контролни устройства са свързани помежду си с два проводника; оранжев и зелен проводник. Тези проводници представляват CAN-висок и CAN-нисък. Всеки контролен блок има своя собствена функция и може да комуникира с всеки друг контролен блок в мрежата чрез CAN шина. По-подробна информация за контролните устройства можете да намерите на страницата устройства за управление.

1. Блок за управление на инсталацията на теглича
2. Блок за управление на врата RA
3. Блок за управление на врата RV
4. Шлюз
5. Устройство за контрол на комфорта
6. Блок за управление на алармената система
7. Арматурно табло
8. Блок за управление на електрониката на кормилната колона
9. Блок за управление на врата LV
10. Блок за управление на врата LA
11. Контролен блок за контрол на разстоянието при паркиране

С пристигането на CAN автобус също е възможно EOBD по-изчерпателна. EOBD означава Европейска бордова диагностика. EOBD има отношение към емисиите. Различни сензори в двигателя и изпускателната система предават информация към ECU. Ако има неправилни стойности (поради, например, лошо горене), MIL (Engine Indication Light) ще светне. Това е знак, че колата трябва да бъде разчетена. След това трябва да се свърже диагностичен тестер към OBD щепсела, за да се прочетат грешките. Въз основа на повредата, ECU е съхранило шестнадесетичен код за грешка, който се показва от диагностичния тестер като P код или грешка с текст (последното е по-специфично за марката). Щракнете тук за повече информация относно OBD1, OBD II и EOBD.

Няколко мрежи в кола:
В една кола може да има няколко мрежи. Изображението по-долу показва общ преглед с легенда на контролните блокове в множество мрежи на BMW 3-серия E90.

K-CAN, PT-CAN и F-CAN мрежите в горното изображение попадат в CAN шина. Разликите са в скоростите, нивата на напрежение и приложенията. Въпреки че PowerTrain-CAN и F-CAN имат едни и същи високоскоростни скорости и нива на напрежение, разликата е, че PT-CAN се използва за управление на двигателя и трансмисията, а F-CAN съдържа блоковете за управление на шасито.

CAN мрежа с контролните устройства
CAN bus мрежата се състои от контролни устройства, които са оборудвани с хардуер и софтуер за получаване, обработка и изпращане на съобщения. CAN-висок проводник и CAN-нисък проводник се използват за пренос на данни. На изображението по-долу CAN-High е оцветен в червено, а CAN-Low е оцветен в синьо.
Контролните устройства (наричани също контролни блокове или възли) са свързани към тези проводници. Всички управляващи устройства могат както да изпращат, така и да получават информация. Пример за мрежа е системата CAN bus в интериора на автомобила; Тук различни управляващи устройства могат да бъдат свързани към една шинна система.

Като пример вземаме камера за заден ход (възел 5), която е преоборудвана. Тази камера се монтира близо до държача или дръжката на регистрационния номер. CAN окабеляването е свързано навсякъде във вътрешността. Условието е възелът на камерата да съдържа правилния идентификатор (предварително програмиран от производителя), тъй като другите контролни устройства трябва да го разпознаят. Ако камерата е регистрирана на поддържаното радио, изображението се вижда веднага.
След програмиране на софтуера радиото получава сигнал от скоростната кутия, че е избрана задна предавка. В този момент радиото превключва на изображението на камерата за заден ход. В момента, в който се избере първа предавка (напред), изображението отново изгасва. Всичко това благодарение на преноса на данни на системата CAN bus.

Неподдържано оборудване (напр. с неправилен идентификатор) може да причини проблеми. Ако изпраща съобщения, които не се разпознават от други контролни устройства, ще се генерира съобщение за грешка. Този тип оборудване може също така да гарантира, че CAN шината остава активна след изключване на запалването. След това колата няма да премине в „режим на заспиване“, което би довело до бързо изтощаване на батерията. Тогава има един таен потребител.

Сигнали на CAN шина:
Системата CAN bus използва принципа на излъчване; предавател изпраща съобщение на CAN шината. Всеки възел на една и съща шина получава съобщението. Подателят обаче посочва в съобщението за кои възли е предназначено съобщението. Всички възли получават съобщението и предоставят обратна връзка (повече за това по-късно). Възлите, за които съобщението не е предназначено, разпознават това и го игнорират.

Сигналът на CAN шината се състои от CAN-високо и CAN-ниско напрежение. Изображението по-долу показва CAN-високо червено и CAN-ниско синьо. Високият и ниският сигнал са идентични, но огледално един от друг. Когато шината стане доминираща, напрежението на CAN-high се увеличава от 2,5 до 3,5 волта, а CAN-low намалява от 2,5 на 1,5 волта. В рецесивно състояние (в покой) и двете напрежения са 2,5 волта.

Изображението по-горе показва пример за измерване с осцилоскоп. Може ясно да се види, че и двете напрежения са еднакви едно с друго, само в огледален образ. В крайна сметка разликата в напрежението в активната (доминираща) област е 2 волта. Това се отнася до разликата между 1,5 и 3,5 волта. Разликата от 2 волта се счита за 0 (доминираща), а разликата от 0 волта се счита за 1 (рецесивна).

Ако (изпращащ) възел иска да изпрати двоичния код „0 0 1 0 1 1 0 1“, той ще приложи споменатите напрежения към CAN-High и CAN-Low (вижте примера по-горе). Получаващият възел отново ще види тези напрежения като двоичен код и след това ще ги преобразува в шестнадесетичен код. Споменатият двоичен код ще бъде преобразуван от шестнадесетичен в 2D.

За да преобразувате двоичен в шестнадесетичен е лесно да начертаете таблица от 8 кутии с дебела линия в средата. Назовете квадратчетата отдясно 1, 2, 4 и 8 (вижте червените числа на изображението). След това направете това и от лявата страна. Запишете числата с 1 в двоичния код над тях. Отляво е само 2, отдясно е 8, 4 и 1. Добавете всичко отдясно заедно (13) и направете същото отляво (2). Шестнадесетичната се променя от 10 на A, 11 = B, 12 = C, 13 = D. Това в крайна сметка прави 2D.

Повече информация за преобразуването от двоичен в (шестнадесетичен) десетичен и обратно можете да намерите на страницата Двоичен, десетичен и шестнадесетичен. Ясните примери са описани подробно тук.

Скорости и нива на напрежение:
В превозните средства можем да срещнем CAN bus мрежи с различни скорости:

  • Висока скорост: ECU, свързани със задвижването, включително електрониката на двигателя, трансмисията, ABS/ESP, EBS (търговски превозни средства);
  • Средна или ниска скорост: вътрешна електроника като арматурно табло, радио, климатроник, ръчна спирачка, теглич.

Двете изображения по-долу показват CAN-висок и CAN-нисък сигнал на високоскоростната CAN шина. В покой напрежението на двата сигнала е 2,5 волта. За да изпратите съобщение, CAN high се увеличава от 2,5 на 3,5 волта, а CAN low намалява от 2,5 на 1,5 волта.

CAN висока скорост (1)

По-долу можете отново да видите сигнала от високоскоростния CAN, който сега е увеличен (50 микросекунди на деление), където обхватът за горния сигнал е зададен на 200 микросекунди на деление.

CAN висока скорост (2)

В комфортната електроника високата скорост на комуникация е по-малко важна. Характеристики на CAN шината със средна или ниска скорост, нивата на напрежение в покой и при генериране на съобщение са както следва:

  • CAN-high е 5 волта в покой и пада до 1 волт;
  • CAN-low е 0 волта в покой и се повишава до 4 волта.

По време на измерването, при което нулевите линии на канали A и B са поставени на една и съща височина, може да се види, че напреженията са "плъзнали едно в друго". Това затруднява отчитането на чистотата на високите и ниските сигнали на CAN.

CAN ниска скорост (1)

За да се оцени чистотата на съобщенията, се препоръчва да се изместят нулевите линии. На изображението по-долу нулевата линия на канал А е изместена надолу, а на канал Б е изместена нагоре. Това означава, че изобразените сигнали са разделени и може да се види по-ясна прогресия на напреженията.

CAN ниска скорост (2)

Структура на съобщението на CAN шината на (стандартен) 11-битов идентификатор:
Структурата на съобщение на CAN шина винаги се базира на изображението по-долу. Има разлики в структурата; например полето ARB и CTRL на 11-битов идентификатор и 29-битов идентификатор са различни. Информацията по-долу се отнася за 11-битовия идентификатор. За ваша информация 29-битовият идентификатор има място за повече данни от 11-битовия. Повече за това по-късно.

Структурата на съобщението сега е просто обобщена и описана подробно по-късно:

SOF:
Всяко CAN съобщение започва със SOF (начало на рамката). Когато възел иска да изпрати съобщение, в шината ще бъде поставен доминиращ бит. CAN шината винаги е рецесивна в покой (1, така че и CAN-High, и CAN-Low са 2 волта). Доминиращият бит (0) показва, че другите възли трябва да изчакат да изпратят съобщение, докато не бъде публикувано цялото съобщение. Едва след IFS (Interframe Space) следващият възел има право да изпрати своето съобщение. Дори да е важно съобщение, то не може да бъде пропуснато.
Когато 2 възела искат да изпратят съобщение едновременно (което не знаят един за друг) и по този начин заедно да направят шината доминираща чрез поставяне на 0, ARB (арбитражът) определя кое съобщение има предимство.

Оттук нататък всяка част от съобщението на CAN шината, което се обсъжда, ще има тази част, добавена към това сиво изображение. По този начин се опитвам да поддържам общ преглед. Съобщението започна със SOF.

ARB:
Арбитражното поле на 11-битов идентификатор се състои от 2 части; идентификатора и RTR бита.
идентификационен номер:
Да предположим, че 2 възела едновременно правят CAN шината доминираща, тогава възелът с най-малко важното съобщение ще изчака, докато важното съобщение бъде публикувано (до след IFS). Идентификаторът на съобщението съдържа поредица от единици и нули. Тези номера са нарочно присвоени на съобщение от програмиста. Идентификаторът с 0 в съобщението (доминиращ) има по-висок приоритет от този с 1 в съобщението (рецесивен). Съобщението с 0 ще продължи, а съобщението с 1 ще трябва да изчака.

И двата идентификатора започват да публикуват съобщение от 11 бита. При SOF се поставя доминиращият бит. Тогава първите 5 бита на двата идентификатора са равни (0 1 1 0 1). Шестият бит е 6 за идентификатор номер 2 и 0 за първия идентификатор.Доминантният доминира, така че идентификатор 1 създава крайното CAN съобщение.
Идентификатор 1 постави 6 като 1-ти бит. Възелът, който изпраща идентификатора, разпознава, че 0 възела изпращат съобщение по едно и също време, когато друг възел постави 2 в шината. В този момент идентификатор 1 спира да предава и сега се държи като приемник. Въпреки че съобщението, започващо с 0 1 1 0 1, първоначално е предназначено да бъде съобщението, което този възел иска да изпрати, сега ще го третира като полученото съобщение. След това възелът слуша цялото съобщение и определя дали да направи нещо с него.

Сивото изображение на SOF вече е разширено с ARB, който се състои от 2 части, а именно идентификатора и RTR бита:

RTR бит:
Последният бит от 11-битовия идентификатор се нарича RTR; това е бит за заявка за дистанционно предаване. Този RTR бит показва дали е кадър с данни или отдалечен кадър.
0 = Рамка с данни
1 = Дистанционна рамка

Рамката с данни съдържа данни, които се препращат към възлите, които се нуждаят от информацията. Възел може също да поиска информация; например каква е температурата на охлаждащата течност в определен момент. След това възелът ще зададе 1 като RTR бит, защото иска данните.

CTRL:
Контролното поле се състои от IDE (разширение на идентификатора), R-бит и DLC. IDE битът показва дали е стандартен (11 бита) или разширен (29 бита) идентификатор:
0 = Стандартен идентификатор (11 бита)
1 = Разширен идентификатор (29 бита)

Битът R е запазен за бъдещето и сега винаги е рецесивен.

След това идва DLC: CAN bus мрежа може да изпрати максимум 8 байта. Има 1 бита в 8 байт, така че общо 64 бита могат да бъдат изпратени според стандартния протокол. Контролното поле показва колко данни се изпращат. Би било безсмислено да изпращате голямо съобщение с всички празни полета за данни за бит за потвърждение (1 за включване или 0 за изключване). Броят на байтовете е посочен в съответния DLC (Код за дължина на данните). DLC е функция в софтуера за програмиране и следователно е предварително зададена стойност от програмиста.
Да предположим, че 1 байт е посочен в DLC, след което се изпращат 8 бита. За кратки съобщения за потвърждение това е достатъчно.
За много обширни съобщения DLC ще съдържа стойност до 8 байта данни.

Примерът отново е разширен. IDE, R и DLC са добавени.

ДАННИ:
Крайните данни, които трябва да бъдат изпратени, се поставят в полето за данни. Размерът зависи от стойността на DLC (код за дължина на данните). Вече беше посочено, че DLC е максимум 8 байта. Всеки байт се състои от 8 бита, така че общо полето с данни може да се състои от 64 бита.

CRC:
Цикличната проверка на излишъка се състои от математическо изчисление, което се изпраща със съобщението. Изпращащият възел изчислява общото CAN съобщение до момента; SOF, ARB, CTRL и DATA. Така че CRC е изчислението. Когато приемащият възел получи съобщението до и включително CRC, той ще извърши математическото изчисление до DATA и ще го сравни с изчислението в CRC. Ако това не съвпада (поради лош бит/грешка), съобщението не се приема и се прави заявка за повторно изпращане на съобщението (с определен максимален брой опити). Примерът е разширен, за да включва CRC.

ACK:
Полето Потвърждение служи за потвърждение на получаването. Когато изпращачът изпрати съобщението до CRC, се вмъква вид пауза; предавателят прави шината рецесивна (с 0) и изчаква, докато един или повече възли направят шината доминираща (1). Няма значение дали един или повече възли са получили съобщението, защото ако един възел го е получил, то е изпратено успешно. След като шината стане доминираща с 1, предаването на съобщението се възобновява.

EDF:
Краят на рамката се състои от 7 рецесивни бита (1 1 1 1 1 1 1). Това е знак за всички управляващи блокове, че съобщението е приключило.

IFS:
За да се предотвратят прекъсвания, Inter Frame Space винаги се използва след EOF. IFS се състои от 11 рецесивни бита. Всички възли изчакват тези 11 рецесивни бита да преминат, преди да изпратят съобщение. След тези 11 рецесивни бита, например, 2 възела могат да изпратят съобщение едновременно. След това ARB (арбитраж) се преглежда отново, за да се определи кое съобщение има най-висок приоритет. След това целият цикъл започва отново.

Структура на съобщението на CAN шината на (разширен) 28 битов идентификатор:
11-битовият идентификатор е проектиран във време, когато автомобилите все още не са имали толкова много контролни устройства (възли). Програмистите скоро откриха, че 11-битовият идентификатор не им е достатъчен. Това има само (2^11) = 2048 възможности. От тях остават 2032 уникални комбинации на двоичния код. Съвременните автомобили вече използват много повече кодове благодарение на разширения 28-битов идентификатор. Това се нарича разширен идентификатор.
Това означава, че са възможни не по-малко от (2^29) = 536870912 комбинации. Това е повече от достатъчно за в бъдеще.
Редица неща ще се променят в съобщението на CAN шината. И двата идентификатора (стандартен и разширен) се използват взаимозаменяемо. Следователно CAN съобщението показва за кой вид се отнася, след което следва дълго съобщение.
Използва се основата на 11-битовия идентификатор и също така служи като подготовка преди да бъде прочетен; сега се показват само промените, които претърпява съобщението, когато е 29 битов идентификатор.
SOF (Start Of Frame) остава същият. Изпращащият възел го прави доминиращ, когато започне да изпраща съобщение.
Това е последвано от ARB и CTRL, където са разликите.

ARB:
По време на арбитраж първо се показва стандартен 11-битов идентификатор (т.е. част от 29-те бита). Битът RTR се премества (както е с 11-те бита) в края на ARB. RTR вече е заменен от SRR: (заместваща отдалечена заявка). Този бит винаги е рецесивен (1) за разширен идентификатор.
След бита SRR идва битът IDE, който е в 11-битовия идентификатор в CTRL (контролно поле). Това вече е премахнато от контролното поле и поставено зад бита SRR в разширения идентификатор.

За по-голяма яснота изображенията по-долу показват стандартните (11-битови) и разширените (29-битови) идентификатори.

Стандартен 11-битов идентификатор
Разширен 29-битов идентификатор

IDE битът означава разширение на идентификатора. IDE битът определя дали е стандартен или разширен идентификатор.
IDE 0 = Стандартен (11-битов ID)
IDE 1 = Разширен (29 бита ID)

След IDE бита идва останалата част от разширения идентификатор. 11 и 18 бита заедно правят 29. Те не могат да бъдат поставени като едно цяло в съобщението, тъй като CAN протоколът тогава вече не е правилен. По принцип IDE битът сега показва, че съобщението е разделено на две.

CTRL:
Следователно контролното поле е променено за разширения идентификатор. IDE битът е преместен в ARB.
IDE битът се заменя с R бит (резервен). Това е рецесивно по подразбиране. Това е последвано от R бит и DLC (код за дължина на данните), който показва от колко байта ще се състои съобщението.

Отново се показват контролните полета както на 11-битовия, така и на 29-битовия идентификатор.

CTRL от 11-битова IDE
CTRL от 29-битова IDE

Разпознаване на грешки с помощта на Bitstuffing и CRC & ACK разделители:
Пълнеж на битове:
За да се поддържа оптимална синхронизация между изпращащия и получаващия възли, се прилага битово пълнене. Bit stuffing означава, че след 5 еднакви бита се добавя противоположен бит. Не се променя битова стойност в първоначално изпратеното съобщение, но се добавя бит.
Приемникът разпознава това. След 5 еднакви бита, приемникът ще изчисти 6-тия бит (вижте изображението по-долу).

Изпраща се само едно оригинално съобщение, но изпращачът добавя 6 на всеки 0-ти бит. Дължината на съобщението се увеличава поради нулите (но тази дължина не се брои за DLC (код за дължина на данните). Получателят филтрира противоположните битове (нулите) и след това чете съобщението отново само с единици.

CRC и ACK разделители:
Разделителите се поставят след полето CRC и полето ACK. Това е бит с известна стойност както за подателя, така и за получателя. Ако възникне грешка в съобщението, тази стойност ще се различава. След това приемникът получава различна битова стойност от очакваната и маркира съобщението като грешно. Подателят ще изпрати съобщението отново.

Окабеляване с усукана двойка:
Като кабели за CAN шината се използват кабели с усукана двойка. След това кабелите CAN-High и CAN-Low се усукват заедно, както е показано на изображението. По този начин се избягва външна намеса; ако индукция от няколко десети от волта влезе в единия кабел, тя ще влезе и в другия. Въпреки това разликата в напрежението между високо и ниско CAN остава същата. По този начин повредата се отстранява и ECU не се засягат от нея.

Крайни резистори:
Крайните резистори се използват във всяка високоскоростна CAN шина. Те често са включени във възлите в края на линията на CAN шината (проводник) или в окабеляването. Всеки от тези резистори има съпротивление от 120Ω (Ohm). Съпротивлението на замяна се измерва като 60Ω при измерване на съпротивлението на проводниците.

Тези крайни резистори служат за потискане на смущенията; Ако ги нямаше, щеше да се появи отражение. Сигналът за напрежение преминава през кабела на CAN шината, достига до края и се връща обратно. Последното е предотвратено. Напрежението се записва в резистора. Отражението може да доведе до отскачане на сигналите за напрежение, което да повлияе на изпратените съобщения и впоследствие да причини неизправност на контролните устройства.

Шлюз:
Автомобилът е оборудван с мрежа от контролни устройства (възли). Шлюзът свързва различни CAN шинни мрежи (като интериора, двигателя/трансмисията и шасито), MOST шината и LIN шината, позволявайки на всички мрежи да комуникират една с друга. Така че всъщност е кръстовище между всички мрежи. Разликите в скоростта са маловажни при шлюз. Щракнете тук, за да отидете на страницата, където са описани работата и функциите на Gateway.

Измерване на CAN шината:
Хората често се питат дали е възможно да се измери CAN шината. Това със сигурност е възможно. Диагнозата може да бъде направена чрез измерване на нивата на напрежение на проводниците и проверка на дисплея за напрежение на осцилоскопа. Как могат да се правят измервания е описано на страницата измерване на системата CAN bus.

Свързана страница: