Главна информация
Съвременните превозни средства използват няколко CAN шини (Controller Area Network) между модули / блокове за управление на различни системи и контролери на изпълнителните механизми на автомобила.
CAN процедура за комуникация
B - Сензор 1; CAN - Шина за данни; M - Изпълнителни елементи I-III (серво механизми); N - Контролни блокове/контролери IV
Автобусът е пълен дуплекс (или просто дуплекс), т.е. всяко свързано към него устройство може едновременно да получава и предава съобщения.
Сигналът от чувствителния елемент на съответната информация (сензор) влиза в най-близкия блок за управление, който го обработва и прехвърля към CAN шината за данни.
Всеки управляващ блок, свързан към CAN шината за данни, може да прочете този сигнал, да изчисли параметрите на управляващото действие въз основа на него и да контролира функционирането на съответния изпълнителен механизъм.
Предимства
С обичайното кабелно свързване на електрически и електронни устройства, всеки управляващ блок е директно свързан към всички сензори и изпълнителни механизми, от които получава измервания или които управлява.
Усложняването на системата за управление води до прекомерна дължина или множество кабелни линии.
В сравнение със стандартното окабеляване, шината за данни осигурява:
- Намаляване на броя на кабелите. Проводниците от сензорите се изтеглят само до най-близкия контролен блок, който преобразува измерените стойности в пакет от данни и ги прехвърля към CAN шината;
- Всеки управляващ блок може да управлява изпълнителния механизъм, който получава съответния пакет данни през CAN шината и на негова база изчислява стойността на управляващото действие;
- Подобряване на електромагнитната съвместимост;
- Намаляване на броя на щепселните връзки и намаляване на броя на контактните изходи на блоковете за управление;
- Отслабване;
- Намаляване на броя на сензорите, т.к единични сензорни сигнали (например от сензора за температура на охлаждащата течност) може да се използва от различни системи;
- Подобряване на диагностичните възможности. защото единични сензорни сигнали (например сигнал за скорост) се използват от различни системи, тогава ако се издаде съобщение за повреда от всички системи, използващи този сигнал, сензорът или контролният блок, който обработва неговите сигнали, обикновено е повреден. Ако съобщението за грешка идва само от една система, въпреки че този сигнал се използва от други системи, тогава причината за неизправността най-често е в блока за управление на обработката или сервомеханизма;
- Висока скорост на предаване на данни - възможна е до 1 Mbit/s с максимална дължина на линията 40 м. Понастоящем автомобилите Mercedes-Benz имат скорости на трансфер на данни от 83 Kbit/s до 500 Kbit/s;
- Няколко съобщения могат да се предават последователно на една и съща линия.
Шината за данни CAN се състои от двужилен проводник, направен под формата на усукана двойка. Всички устройства, свързани към тази линия (блокове за управление на устройството).
Преносът на данни се извършва с дублиране по двата проводника, а логическите нива на шината за данни са огледални (това е, ако ниво на логическа нула се предава по един проводник (0), след това на другия проводник - нивото на логическа единица (1), и обратно).
Схемата за двупроводно предаване се използва по две причини: за контрол на грешки и като основа за надеждност.
Ако възникне пик на напрежението само на един проводник, например поради проблеми с EMC (EMC), тогава приемниците могат да идентифицират това като грешка и да игнорират този пик.
В случай на късо съединение или прекъсване на един от двата проводника на CAN шината, благодарение на интегрираната софтуерна и хардуерна система за надеждност, се извършва превключване към еднопроводен режим на работа. Повреден електропровод вече не се използва.
Ред и формат, предавани и получавани от потребителите (абонати) съобщения е дефинирано в комуникационния протокол.
Основната отличителна черта на CAN шината за данни в сравнение с други шинни системи, базирани на принципа на адресиране на абонати, е адресирането, свързано със съобщенията.
Това означава, че на всяко съобщение, предадено по шината, се присвоява постоянен адрес (идентификатор), маркирайки съдържанието на това съобщение (например: температура на охлаждащата течност). Протоколът на CAN шина за данни позволява да се предават до 2048 различни съобщения, като адресите от 2033 до 2048 са постоянно присвоени.
Количеството данни в едно съобщение по CAN шината е 8 байта.
Приемникът обработва само онези съобщения, които са съхранени в неговия собствен идентификационен списък (приемен контрол).
Пакетите данни могат да се предават само ако CAN шината за обмен е свободна (т.е., ако след последния пакет последва интервал от 3 бита и нито едно от управляващите устройства не започне да предава следващото съобщение). В този случай логическото ниво на шината за данни трябва да е рецесивно (логично «1»).
Ако няколко контролни блока започнат да предават съобщения едновременно, тогава влиза в сила принципът на приоритета, според който съобщението с най-висок приоритет ще бъде предадено първо без загуба на време или битове (арбитраж на заявки за достъп до общата шина за данни).
Всеки контролен блок, който губи правото на арбитраж, автоматично ще превключи към получаване и ще се опита отново да изпрати съобщението си веднага щом шината за данни отново се освободи.
В допълнение към пакетите данни, при обмен на информация се използват и пакети от заявки за определени съобщения по CAN шината за данни - контролният блок, който е в състояние да предостави исканата информация, отговаря на такава заявка.
Формат за пренос на данни
В нормален режим на трансфер се използват пакети със следните конфигурации:
- Data Frame (рамка на съобщение) за предаване на съобщения по CAN шината за данни (например: температура на охлаждащата течност);
- Remote Frame (рамка за заявка) да изисква съобщения по CAN шината за данни от друго управляващо устройство;
- Error Frame (рамка за грешка), - всички свързани управляващи блокове се уведомяват, че е възникнала грешка и последното съобщение по CAN шината за данни е невалидно.
Протоколът на CAN шина за данни поддържа два различни формата на рамката на съобщението, които се различават само по дължината на идентификатора: стандартен и разширен.
Понастоящем комуникационните системи на Daimler Chrysler използват само стандартния формат.
Формат на рамката
Всеки кадър от съобщения, предавани по CAN шината, се състои от седем последователни полета:
- Start of Frame (начален бит): Маркира началото на съобщението и синхронизира всички модули;
- Arbitration Field (арбитражно поле): Това поле се състои от 11-битов идентификатор (адреси) в и един контролен бит (Remote Transmission Request-Bit), маркирайки рамката като рамка с данни (рамка с данни) или като отдалечена рамка (рамка за отдалечена заявка);
- Control Field (контролни битове): 6-битовото контролно поле съдържа дефиниращия IDE бит (Identifier Extension Bit), използвани за разпознаване на вида на използвания формат (стандартен или разширен), запазен бит за последващи разширения и - в последните 4 бита - информация за броя на байтовете данни, вградени в полето за данни (виж отдолу);
- Data Field (данни): Полето за данни може да съдържа от 0 до 8 байта данни, - предаване на съобщения по CAN шината с дължина 0 байта се използва за синхронизиране на разпределени процеси;
- CRC Field (контролно поле): CRC поле (Cyclic-Redundancy-Check Field) съдържа 16 бита и служи за контролно разпознаване на грешки при предаване;
- ACK Field (потвърждение за получаване): ACK поле (Acknowledgement Field) съдържа сигнал за потвърждение за всички приемни модули, получили съобщение през CAN шината без грешки;
- End of Frame (край на рамката): Маркира края на рамката;
- Intermission (интервал): Интервал между два съседни кадъра с данни. Дължината на интервала трябва да бъде най-малко 3 бита, след което всяко от управляващите устройства може да започне да предава следващия пакет;
- IDLE (режим на почивка): Ако нито едно управляващо устройство не предава съобщения, тогава CAN шината остава в неактивен режим (очаквания) до началото на следващия пакет.
Приоритети
За да се обработват данни в реално време, трябва да е възможно бързото им прехвърляне.
Това не само изисква връзка с висока физическа скорост на предаване на данни, но също така изисква бързо осигуряване на обща CAN шина, ако няколко контролни блока трябва да изпращат съобщения едновременно.
За да се разграничат съобщенията, предавани по CAN шината за данни според степента на спешност, са предвидени различни приоритети за отделните съобщения.
Моментът на запалване например е с най-висок приоритет, стойностите на приплъзване са средни, а температурата на външния въздух е най-ниска.
Приоритетът, с който се предава съобщение по CAN шината, се определя от идентификатора (адресно поле) съответното съобщение.
Идентификатор, съответстващ на по-малко двоично число, има по-висок приоритет и обратно.
Протоколът на CAN шината за данни се основава на две логически състояния: Битовете са или «рецесивен» (логично «1»), или «доминантен» (логично «0»). Ако доминиращ бит се предава от поне един модул, тогава рецесивните битове, предавани от други модули, се презаписват.
Пример
Пример за арбитраж
Първи блок за управление (N I) губи арбитраж от 3-тия бит
Трети блок за управление (N III) губи арбитраж от 7-ия бит
Втори блок за управление (N II) запазва правото на достъп до CAN шината за данни и може да предава своето съобщение
Ако няколко контролни блока започнат едновременно прехвърляне на данни, тогава конфликтът на достъп до общата шина за данни се разрешава от «побитов арбитраж на заявки за споделен ресурс» със съответните идентификатори.
При предаване на полето за идентификатор трансмитерът проверява след всеки бит дали все още има право да предава или друг контролен блок вече предава съобщение с по-висок приоритет по шината.
Ако рецесивният бит, предаден от първия предавател, бъде презаписан от доминиращия бит на друг предавател, тогава първият предавател губи правото си да предава (арбитраж) и става приемен блок.
Други управляващи устройства ще се опитат да предадат своите съобщения по CAN шината за данни само когато тя отново е свободна. В този случай правото за предаване отново ще бъде предоставено в съответствие с приоритета на съобщението по CAN шината за данни.
Разпознаване на грешки
Смущенията могат да доведат до грешки при предаването на данни. Такива грешки при предаване трябва да се разпознават и коригират. Протоколът на CAN шина за данни прави разлика между две нива на разпознаване на грешки:
- Механизми на ниво Data Frame (рамка с данни);
- Механизми на битово ниво.
Механизми на ниво Data Frame
Cyclic-Redundancy-Check
Въз основа на съобщението, предадено през CAN шината за данни, предавателят изчислява контролните битове, които се предават заедно с пакета данни в полето «CRC Field» (контролни суми). Приемното устройство преизчислява тези контролни битове на базата на съобщението, получено по CAN шината за данни, и ги сравнява с контролните битове, получени с това съобщение.
Frame Check
Този механизъм проверява структурата на предавания блок (кадър), тоест битови полета с даден фиксиран формат и дължина на рамката се проверяват отново.
Грешките, открити от Frame Check, се маркират като грешки във форматирането.
Механизми на битово ниво
Мониторинг
Всеки модул при предаване на съобщение следи логическото ниво на CAN шината за данни и определя разликите между предадените и получените битове. Това гарантира надеждно разпознаване на глобални и локални битови грешки, които възникват в предавателя.
Bit Stuffing
Във всеки кадър от данни между полето «Start of Frame» и края на терена «CRC Field» не трябва да има повече от 5 последователни бита с еднаква полярност.
След всяка последователност от 5 идентични бита, блоковият предавател добавя един бит с обратна полярност към битовия поток.
Приемниците изчистват тези битове след получаване на съобщение по CAN шината за данни.
Отстраняване на неизправности
Ако някой модул на CAN шина за данни открие грешка, той прекъсва текущия процес на пренос на данни, като изпраща съобщение за грешка. Съобщението за грешка се състои от 6 доминиращи бита.
Благодарение на съобщението за грешка, всички управляващи устройства, свързани към CAN шината за данни, се уведомяват за възникнала локална грешка и съответно игнорират предварително предаденото съобщение.
След кратка пауза всички управляващи блокове отново ще могат да изпращат съобщения по CAN шината за данни, като първо отново се изпраща съобщението с най-висок приоритет.
Блокът за управление, чието съобщение по CAN шината за данни е причинило грешката, също започва да препредава своето съобщение (функция за автоматично повторение).
Типове CAN шини
За различни зони на управление се използват различни CAN шини. Те се различават един от друг по скоростта на пренос на данни.
CAN зона за скорост на предаване «двигател и ходова част» (CAN-C) е 125 Kbps, а CAN шината за данни «Салон» (CAN-B) поради по-малкия брой особено спешни съобщения, той е проектиран за скорост на трансфер на данни от само 83 Kbps.
Обменът на данни между двете шинни системи се осъществява чрез т.нар «шлюзове», т.е. контролни блокове, свързани към двете шини за данни.
Оптично влакно D2B (Digital Daten-Bus) данни, приложени към област «Аудио/Комуникация/Навигация». Оптичният кабел може да предаде значително по-голямо количество информация от шина с меден кабел.
CAN-C автобус «Двигател и шаси»
Така нареченият терминален резистор на шина за данни със съпротивление от 120 Ω е монтиран от всяка страна на блока за управление на терминала и е свързан между двата проводника на шина за данни.
CAN шината за данни на двигателното отделение е активна само при включено запалване.
Повече от 7 контролни блока могат да бъдат свързани към CAN-C шината.
CAN-B автобус «Салон»
Някои контролни блокове, свързани към CAN шината за данни на купето, се активират независимо от включеното запалване (например система с единично заключване).
Следователно CAN шината за данни на купето трябва да работи дори при изключено запалване, което означава, че трябва да се осигури възможност за предаване на пакети данни дори при изключено запалване.
За да се намали максимално потреблението на ток на покой, CAN шината за данни, при липса на данни, необходими за предаване, превключва в пасивен режим на готовност и се активира отново само при следващия достъп до нея.
Ако е в пасивен режим на готовност на CAN шината за данни на купето, който и да е блок за управление (например единичен контролен модул за заключване) предава съобщение през него, тогава само основният системен модул го получава (електронен ключ за запалване, EZS/EIS). Модулът EZS съхранява това съобщение в паметта и изпраща сигнал за активиране (Wake-up) към всички управляващи блокове, свързани към CAN-B шината.
Когато е активиран, EZS проверява за всички потребители на CAN шина данни и след това предава предварително съхраненото съобщение.
Повече от 20 контролни блока могат да бъдат свързани към CAN-B шината.