Обяснение на CAN шината: как контролерите, системите за управление на батериите (BMS) и дисплеите комуникират помежду си
В един модерен електрически уред, компонентите вече не просто обменят мощност: те обменят информация. Контролерът трябва да знае състоянието на батерията, дисплеят – скоростта и температурите, а втори контролер – зададените параметри на първия. Най-разпространеният начин за това идва от автомобилната индустрия: CAN шината. Това ръководство обяснява как работи тя и как да я свържете правилно.
Същественото
- CAN (Controller Area Network) свързва множество устройства, използвайки двойка усукани проводници, наречени CAN high и CAN low.
- Необходима е резистора с номинал 120 ома на всеки от двата края на шината, и само на краищата.
- Всяко съобщение има уникален идентификатор, който служи и като приоритет: най-важните съобщения се обработват винаги първи.
- Всички устройства трябва да използват една и съща скорост на комуникация.
Автобус, а не връзка
Една класическа серийна връзка свързва две устройства. CAN, от друга страна, е шина: всички устройства са свързани към същите два проводника и всяко може да комуникира с всички останали. За да добавите устройство, просто го свързвате към шината, без да е необходимо да прокарвате нов кабел до контролера. Това е причината, поради която CAN се използва широко в автомобилната индустрия, където десетки контролери споделят няколко двойки проводници.
При леките електрически превозни средства обикновено се намират един или няколко контролера, системата за управление на батерията (BMS), дисплей, модул за телеметрия или зарядно устройство.
Два кабела, една разлика
CAN използва двойка проводници: CAN high и CAN low. Информацията не се предава чрез напрежението на един проводник спрямо масата, а чрез разликата между двата:
- В състояние на покой (когато битът е "рецесивен"), двата проводника имат еднакво напрежение, приблизително половината от захранващото напрежение на веригата;
- За да изпрати "доминиращ" бит, предавателят разделя двата проводника: горният проводник се издига, а долният – се спуска.
Електрически смущения, като тези, причинени от контролер, който подава стотици ампери, засягат и двата проводника по един и същ начин. Разликата между тях обаче остава непроменена. Именно това прави комуникационната шина CAN толкова устойчива в среда с много електрически шум, при условие че двата проводника са усукани заедно.
Резисторите за терминализация
Един CAN шин трябва да има резистор с номинална стойност 120 ома между линиите CAN High и CAN Low на всеки от двата си физически края. Тези резистори предотвратяват отразяването на сигналите в края на кабелите и връщат шината в състояние на покой.
- Шина: Измерването между CAN high и CAN low, при изключени устройства, показва приблизително 60 ома (което е еквивалентно на две съпротивимости от 120 ома, свързани паралелно).
- Приблизително 120 ома: липсва терминатор.
- Стойност значително по-ниска от 60 ома: това означава, че има твърде много активни терминали, което често се случва, когато няколко устройства имат активирани своите терминали.
Липсваща или излишна връзка е основната причина за нестабилна комуникация.
Идентификатори и приоритет
Всеки CAN сигнал носи идентификатор, номер, който указва за какво се отнася (например "състояние на батерията" или "желана скорост на мотора"). Устройствата четат всички сигнали и запазват само тези, които са им необходими.
Когато две устройства започнат да излъчват едновременно, те сравняват своите идентификатори бит по бит, по същия кабел. Доминиращ бит заменя рецесивен бит: устройството, което излъчва рецесивен бит и чете доминиращ бит, разбира, че е загубило и престава да излъчва. Най-малкият идентификатор винаги печели, без да бъдат повредени никакви съобщения. Това се нарича арбитраж: критичните съобщения получават най-малките идентификатори.
Вградена надеждност
- Всяко съобщение съдържа код за проверка: ако съобщението е повредено, то се открива и се предава отново.
- Всеки приемник потвърждава успешното приемане със специален бит за потвърждение.
- Устройство, което натрупва грешки, автоматично се изключва, за да не блокира цялата система.
Скоростта на шината
Всички устройства, свързани към един шин, трябва да използват една и съща скорост. Най-често срещаните стойности са 250 и 500 килобита в секунда, понякога 1 мегабит. Колкото по-бърз е шинът, толкова по-къса е максималната му дължина. Въпреки това, при леки превозни средства, чиято дължина е обикновено няколко метра, дължината рядко е ограничаващ фактор. По-нова версия, наречена CAN FD, пренася повече данни във всяко съобщение и при по-висока скорост.
Пример: два контролера, свързани
При електрически тротинетки с два мотора, два контролера, свързани чрез CAN, функционират като един: този, който получава сигнала от газта, го предава на другия, и само един софтуер за настройка вижда и двата. Това е принципът, на който работят контролерите VESC, представен в нашето ръководство VESC – обяснено просто.
Съвет за сервиз.
Винаги свързвайте заедно CAN високо и CAN ниско, дръжте ги далеч от фазовите кабели и проверете съпротивлението от 60 ома с мултиметър, преди първото включване. Пет минути проверка могат да ви спестят часове търсене на прекъсвания в комуникацията.
Често задавани въпроси
Предава ли CAN шината електрически ток за захранване на устройствата?
Не, двойката CAN предава само информация. Устройствата имат собствено захранване, което понякога се осигурява от други проводници в същия кабел.
Защо комуникацията ми по CAN шината работи прекъснато?
Най-честите причини са липсваща или излишна връзка, неоплетени кабели, които минават близо до захранващите кабели, износен конектор или два устройства, които не работят със същата скорост на шината.
Възможно ли е да се свържат произволни устройства, използващи протокола CAN, помежду си?
Електрически, да, ако споделят скоростта на комуникационния канал. Но за да могат да взаимодействат, те трябва да използват един и същ "език": едни и същи идентификатори и едно и също съдържание на съобщенията. Две различни марки не могат да си взаимодействат без адаптация.