Влязохте в колата си, натиснахте бутона за стартиране и двигателят оживя за нула време, но как колата ви реши дали трябва да запали или не?

Е, за да запали колата, няколко антени и електронни контролни блокове комуникираха с ключа. Протоколът Controller Area Network (CAN) гарантира, че комуникацията между вашия ключодържател, антени и ECU се осъществява по подходящ начин във вашия автомобил.

И така, какво представлява CAN протоколът и как той помага на устройствата в системите на вашия автомобил да работят заедно? Е, нека разберем.

Какво представлява CAN протоколът и защо е необходим?

Навремето колите нямаха много електроника. Всъщност, ако искате да запалите автомобила си в началото на 1900 г., трябваше да излезете от автомобила си и да завъртите двигателя на ръка.

Днешните автомобили, напротив, имат няколко електронни сензора, а електронните устройства следят всичко - от температурата в купето до оборотите на коляновия вал.

Въпреки това данните, получени от тези сензори, нямат стойност, докато не бъдат обработени. Тази обработка на данни се извършва от изчислителни устройства, известни като електронни контролни модули (ECU).

instagram viewer

Кредити за изображения: SenseiAlan/Flickr

За разлика от компютър с един процесор, автомобилът има няколко ECU, всяко от които отговаря за изпълнението на определена задача. Въпреки че тези ECU могат да изпълняват една задача ефективно, те трябва да работят заедно, за да осигурят функции като коремни мускули и ESC работи правилно.

Поради това всички ECU на автомобила трябва да бъдат свързани. Човек може да използва топология от точка до точка, за да направи тези връзки, където всеки ECU е свързан директно към всеки друг ECU. Тази архитектура обаче би направила системата сложна. Всъщност едно модерно превозно средство има над 70 ECU и свързването им по начин едно към едно би увеличило теглото на окабеляването експоненциално.

За да разреши този проблем, Bosch, заедно с Mercedes-Benz и Intel, създават протокола Controller Area Network през 1986 г. Този протокол позволи на ECU да комуникират едно с друго, използвайки споделена шина за данни, известна като CAN шина.

Как работи CAN?

CAN протоколът е методология за комуникация, базирана на съобщения, която разчита на набор от кабели с усукана двойка за предаване на данни. Тези кабели са известни като CAN high и CAN low.

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

Кредит за изображение: Spinningspark/Wikimedia

За предаване на логическа единица по CAN шината, напрежението на двете линии е настроено на 2,5 волта. Това състояние е известно също като рецесивно състояние, което означава, че CAN шината е достъпна за използване от всяко ECU.

Напротив, логическата 0 се предава по CAN шината, когато CAN високата линия е при напрежение от 3,5 волта, а CAN ниската линия е при 1,5 волта. Това състояние на шината е известно също като доминиращо състояние, което казва на всяко ECU в системата, че друго ECU предава, така че те трябва да изчакат, докато предаването приключи, преди да започнат да предават своето съобщение.

За да се активират тези промени в напрежението, ECU-тата на автомобила са свързани към CAN шината чрез CAN трансивър и CAN контролер. Трансивърът е отговорен за преобразуването на нивата на напрежение на CAN шината до нива, които ECU може да разбере. Контролерът, от друга страна, се използва за управление на получените данни и гарантиране, че изискванията на протокола са изпълнени.

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

Разбиране на структурата на съобщението на CAN протокола

Всеки път, когато две ECU искат да комуникират, съобщения със структурата по-долу се предават по CAN шината.

Тези съобщения се прехвърлят чрез промяна на нивата на напрежение на CAN шината, а дизайнът на усуканата двойка на CAN проводниците предотвратява повреда на данните по време на предаване.

  • SOF: Съкратено от Start Of Frame, битът SOF е един доминиращ битов кадър с данни. Този бит се предава от възел, когато иска да изпрати данни по CAN шината.
  • Идентификатор: Идентификаторът на CAN протокола може да бъде с размер 11 или 29 бита. Размерът на идентификатора се основава на версията на използвания CAN протокол. Ако се използва разширената версия на CAN, тогава размерът на идентификатора е 29 бита, а в други случаи размерът на идентификатора е 11 бита. Основната цел на идентификатора е да идентифицира приоритета на съобщението.
  • RTR: Заявката за отдалечено предаване или RTR се използва от възел, когато трябва да се поискат данни от друг възел. За да направи това, възелът, който иска данните, изпраща съобщение с рецесивен бит в RTR рамката до желания възел.
  • DLC: Кодът за дължина на данните определя размера на данните, които се предават в полето за данни.
  • Поле за данни: Това поле съдържа полезния товар на данните. Размерът на този полезен товар е 8 байта, но по-новите протоколи като CAN FD увеличават размера на този полезен товар до 64 байта.
  • CRC: Съкращение от Cyclic Redundancy Check, CRC полето е рамка за проверка на грешки. Същото е с размер 15 бита и се изчислява както от приемника, така и от предавателя. Предавателният възел създава CRC за данните, когато се предават. При получаване на данните, приемникът изчислява CRC за получените данни. Ако и двата CRC съвпадат, целостта на данните се потвърждава. Ако не, данните съдържат грешки.
  • Поле за потвърждение: След като данните бъдат получени и нямат грешки, приемащият възел подава доминиращ бит в рамката за потвърждение и го изпраща обратно към предавателя. Това казва на предавателя, че данните са получени и нямат грешки.
  • Край на рамката: След като предаването на данни приключи, се предават седем последователни рецесивни бита. Това гарантира, че всички възли знаят, че даден възел е завършил предаването на данни и могат да предават данни по шината.

В допълнение към битовете по-горе, CAN протоколът има няколко бита, запазени за бъдеща употреба.

Опростяване на CAN чрез пример

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

За простота, нека кажем, че нашата кола има 3 ECU: възел 1, възел 2 и възел 3. От 3-те ECU, възел 1 и възел 2 искат да комуникират с възел 3.

Нека да видим как CAN протоколът помага да се осигури комуникация в такъв сценарий.

  • Откриване на състоянието на шината: Всички ECU на автомобила са свързани към CAN шината. В случая с нашия пример възел 1 и възел 2 искат да изпратят данни към друго ECU; преди да направите това, двете ECU трябва да проверят състоянието на CAN шината. Ако шината е в доминиращо състояние, тогава ECU не могат да предават данни, тъй като шината се използва. От друга страна, ако шината е в рецесивно състояние, ECU могат да предават данни.
  • Изпращане на началото на рамката: Ако диференциалното напрежение на CAN шината е нула, възел 1 и възел 2 променят състоянието на шината на доминиращо. За да направите това, напрежението на CAN high се повишава до 3,5 волта, а напрежението на CAN low се намалява до 1,5 волта.
  • Решаване кой възел има достъп до шината: След като SOF бъде изпратен, двата възела се конкурират за достъп до CAN шината. CAN шината използва протокола Carrier Sense Multiple Access/Collision Detection (CSMA/CD), за да реши кой възел да получи достъп. Този протокол сравнява идентификаторите, предавани от двата възела, и дава достъп до този с по-висок приоритет.
  • Изпращане на данни: След като възелът има достъп до шината, полето с данни, заедно с CRC, се изпраща до приемника.
  • Проверка и прекратяване на комуникацията: При получаване на данните, възел 3 проверява CRC на получените данни. Ако няма грешки, възел 3 изпраща CAN съобщение до предавателния възел с доминиращ бит в рамката за потвърждение заедно с EOF, за да прекрати комуникацията.

Различни видове CAN

Въпреки че структурата на съобщенията, използвана от CAN протокола, остава същата, скоростта на предаване на данни и размерът на битовете данни се променят, за да се прехвърлят данни с по-висока честотна лента.

Поради тези разлики, CAN протоколът има различни версии и преглед на същия е даден по-долу:

  • Високоскоростен CAN: Данните по CAN кабелите се предават последователно и това предаване може да се извърши с различни скорости. За високоскоростен CAN тази скорост е 1 Mbps. Поради тази висока скорост на предаване на данни, високата скорост може да се използва за ECU, които управляват задвижването и системите за безопасност.
  • CAN с ниска скорост: В случай на нискоскоростен CAN, скоростта, с която се предават данните, е намалена до 125 kbps. Тъй като ниската скорост може да предложи по-ниски скорости на данни, тя се използва за свързване на ECU, които управляват комфорта на пътниците, като климатика или системата за информация и развлечения.
  • Може ли FD: Съкратено от CAN flexible data rate, CAN FD е най-новата версия на CAN протокола. Той увеличава размера на кадъра с данни до 64 байта и позволява на ECU да предават данни със скорости, вариращи от 1 Mbps до 8 Mbps. Тази скорост на предаване на данни може да се управлява от ECU в реално време въз основа на системните изисквания, което позволява данните да се прехвърлят с по-високи скорости.

Какво е бъдещето на автомобилната комуникация?

CAN протоколът позволява на няколко ECU да комуникират едно с друго. Тази комуникация позволява функции за безопасност като електронен контрол на стабилността и усъвършенствани системи за подпомагане на водача като откриване на мъртва зона и адаптивен круиз контрол.

Въпреки това, с появата на усъвършенствани функции като автономно шофиране, количеството данни, предавани от CAN шината, нараства експоненциално. За да се активират тези функции, по-нови версии на CAN протокола, като CAN FD, навлизат на пазара.