Съдържание: Обща информация ↡ Предимства ↡ Формат за предаване на данни ↡ Приоритети ↡ Разпознаване на грешки ↡ Механизми на ниво Data Frame ↡ Механизми на битово ниво ↡ Отстраняване на неизправности ↡ Видове CAN шина ↡
Обща информация
Съвременните автомобили използват няколко CAN мрежови шини за обмен на данни (Controller Area Network) между модули/блокове за управление на различни системи и контролери на изпълнителни механизми на превозни средства.
Редът за обмен на данни чрез CAN шината
B - Сензор 1; CAN - Комуникационна шина за данни; M - Изпълнителни механизми I-III (сервомеханизми); N - Контролни блокове/контролери IV
Автобусът е пълен дуплекс (или просто дуплекс), т.е. всяко свързано към него устройство може едновременно да получава и предава съобщения.
Сигналът от чувствителния елемент на съответната информация (сензор) постъпва в най-близкия контролен блок, който го обработва и предава на CAN шината за обмен на данни.
Всеки управляващ блок, свързан към CAN шината за данни, може да прочете този сигнал, да изчисли управляващите параметри въз основа на него и да контролира функционирането на съответния изпълнителен механизъм.
Предимства
С конвенционалното окабеляване на електрически и електронни устройства, всеки контролен блок е директно свързан към всички сензори и изпълнителни механизми, от които получава измервания или ги управлява.
Нарастващата сложност на системата за управление води до прекомерна дължина или множество кабелни линии.
В сравнение със стандартното окабеляване, шината за данни осигурява:
- Намаляване на броя на кабелите. Проводниците от сензорите се простират само до най-близкия контролен блок, който преобразува измерените стойности в пакет данни и ги предава на CAN шината;
- Актуаторът може да се управлява от всеки управляващ блок, който получава съответния пакет данни през CAN шината и въз основа на него изчислява стойността на управляващото действие;
- Подобряване на електромагнитната съвместимост;
- Намаляване на броя на щепселните връзки и намаляване на броя на контактните щифтове на контролните блокове;
- Загуба на тегло;
- Намаляване на броя на сензорите, т.к сигнали от един сензор (например от сензора за температура на охлаждащата течност) може да се използва от различни системи;
- Подобрени диагностични възможности. защото сигнали от един сензор (например сигнал за скорост) се използват от различни системи, тогава ако съобщение за грешка се издаде от всички системи, използващи даден сигнал, обикновено сензорът или управляващият блок, който обработва сигналите, е повреден. Ако съобщение за неизправност идва само от една система, въпреки че този сигнал се използва и от други системи, тогава причината за неизправността най-често се крие в блока за управление на обработката или сервомеханизма;
- Висока скорост на трансфер на данни - възможна е до 1 Mbit/s с максимална дължина на линията от 40 m. В момента скоростта на трансфер на данни варира от 83 Kbit/s до 500 Kbit/s;
- Няколко съобщения могат да се предават последователно по една и съща линия.
Шината за данни CAN се състои от двужилен проводник, направен под формата на усукана двойка. Всички устройства са свързани към тази линия (блокове за управление на устройството).
Предаването на данни се извършва с дублиране на двата проводника, а логическите нива на шината за данни имат огледален образ (тоест, ако по един проводник се предава ниво на логическа нула (0), тогава ниво на логическа единица (1) е предавани по другия проводник и обратно).
Двупроводната схема на предаване се използва по две причини: за контрол на грешки и като основа за надеждност.
Ако скок на напрежението възникне само на един проводник - например поради проблеми с електромагнитната съвместимост (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 байта данни, - предаването на 0 байтови съобщения през CAN шината се използва за синхронизиране на разпределени процеси;
- 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"). Ако доминиращ бит се предава от поне един модул, тогава рецесивните битове, предавани от други модули, се презаписват.
Пример
Пример за организиране на арбитраж
Първият контролен блок (NI) губи арбитраж от 3-тия бит
Третият контролен блок (N III) губи арбитраж от 7-ия бит
Вторият блок за управление (N II) запазва достъп до CAN шината за данни и може да предава своето съобщение
Ако няколко контролни блока едновременно започнат да предават данни, конфликтът за достъп до общата шина за данни се разрешава чрез "битово базиран арбитраж на заявки за споделени ресурси", като се използват съответните идентификатори.
При предаване на поле за идентификатор предавателното устройство проверява след всеки бит дали все още има право да предава или друго управляващо устройство вече предава съобщение с по-висок приоритет спрямо шината.
Ако рецесивният бит, предаден от първия предавателен блок, се презапише от доминиращия бит на друг предавателен блок, тогава първият предавателен блок губи правото си на предаване (арбитраж) и се превръща в приемен блок.
Други управляващи блокове ще се опитат да предадат своите съобщения през CAN шината за данни само след като тя отново е свободна. В този случай правото на предаване отново ще бъде дадено в съответствие с приоритета на съобщението по CAN шината за данни.
Разпознаване на грешки
Смущенията могат да доведат до грешки при предаването на данни. Такива грешки при предаване трябва да се разпознават и коригират. Протоколът на CAN шина за данни разграничава две нива на откриване на грешки:
- Механизми на ниво Data Frame (рамка с данни);
- Механизми на битово ниво.
Механизми на ниво Data Frame
Cyclic-Redundancy-Check
Въз основа на съобщението, предадено през CAN шината за данни, предавателят изчислява контролни битове, които се предават заедно с пакета данни в полето "CRC поле" (контролни суми). Приемникът преизчислява тези контролни битове въз основа на съобщението, получено по CAN шината за данни, и ги сравнява с контролните битове, получени заедно с това съобщение.
[Статия, получена от този портал: Mercedesman.ru]
Frame Check
Този механизъм проверява структурата на предавания блок (кадър), т.е. битовите полета с даден фиксиран формат и дължина на кадъра се проверяват отново.
Грешките, открити от Frame Check, се маркират като грешки във форматирането.
Механизми на битово ниво
Мониторинг
Всеки модул при предаване на съобщение следи логическото ниво на CAN шината за данни и определя разликите между предадените и получените битове. Това гарантира надеждно разпознаване на глобални и локални битови грешки, възникващи в предавателното устройство.
Bit Stuffing
Във всеки кадър с данни между полето "Start of Frame" и краят на "CRC полето" трябва да бъде не повече от 5 последователни бита с еднаква полярност.
След всяка последователност от 5 идентични бита предавателният блок добавя един бит с противоположна полярност към битовия поток.
Приемниците изчистват тези битове след получаване на съобщение по CAN шината за данни.
Отстраняване на неизправности
Ако някой модул на CAN шина за данни открие грешка, той прекъсва текущия процес на пренос на данни, като изпраща съобщение за грешка. Съобщението за грешка се състои от 6 доминиращи бита.
Благодарение на съобщението за грешка, всички управляващи устройства, свързани към CAN шината за данни, се уведомяват за локална грешка и следователно игнорират предварително предаденото съобщение.
След кратка пауза всички управляващи блокове отново ще могат да изпращат съобщения през CAN шината за данни, като първо се изпраща отново съобщението с най-висок приоритет.
Блокът за управление, чието съобщение по CAN шината за данни е причинило грешката, също започва да препредава своето съобщение (функция за автоматично повторение).
Видове CAN шина
За различни зони на управление се използват различни CAN шини. Те се различават един от друг по скоростта на пренос на данни.
Скоростта на предаване на CAN шината за данни на двигателя и шасито (CAN-C) е 125 kbit/s, докато вътрешната CAN шина за данни (CAN-B) е проектирана за скорост на предаване от само 83 kbit/s поради по-малкия брой на особено спешни съобщения /С.
Обменът на данни между две шинни системи се осъществява чрез така наречените "шлюзове", т.е. контролни блокове, свързани към двете шини за данни.
Оптична шина D2B (Digital Daten-Bus) данни, приложени към областта "Аудио/Комуникации/Навигация". Оптичният кабел може да предаде значително повече информация от шина с меден кабел.
CAN-C - автобус "Двигател и шаси"
В блока за управление на терминала, от всяка страна има така наречения терминиращ резистор на шината за данни със съпротивление 120 ома, свързан между двата проводника на шината за данни.
CAN шината за данни на двигателното отделение се активира само при включено запалване.
Повече от 7 контролни блока могат да бъдат свързани към CAN-C шината.
CAN-B - автобус "Салон"
Някои контролни блокове, свързани към вътрешната CAN шина за данни, се активират независимо от включеното запалване (например: система с едно заключване).
Следователно вътрешната CAN шина за данни трябва да бъде в режим на функционална готовност дори когато запалването е изключено, което означава, че трябва да се осигури възможност за предаване на пакети данни дори когато запалването е изключено.
За да се намали максимално потреблението на ток на покой, CAN шината за данни, при липса на данни, необходими за предаване, преминава в пасивен режим на готовност и се активира отново само при следващия достъп до нея.
Ако в пасивен режим на готовност на вътрешната CAN шина за данни всеки контролен блок (напр. модул за управление на едно заключване) предава съобщение по него, то се получава само от основния системен модул (електронен ключ за запалване, EZS/EIS). EZS модулът съхранява това съобщение в паметта и изпраща сигнал за събуждане до всички управляващи устройства, свързани към CAN-B шината.
Когато е активиран, EZS проверява присъствието на всички потребители на CAN шина за данни и след това предава съобщението, което преди това е съхранено в паметта.
Повече от 20 контролни блока могат да бъдат свързани към CAN-B шината.
