Съдържание: Предимства ↓ Формат на пакета данни ↓ Приоритети ↓ Пример ↓ Разпознаване на грешки ↓ Механизми на ниво рамка на данни ↓ Механизми на битово ниво ↓ Отстраняване на неизправности ↓ Типове CAN шини ↓
Превозното средство използва няколко CAN мрежови шини за обмен на данни (Controller Area Network) между управляващи блокове (модули) на различни системи и контролери на изпълнителни механизми на превозни средства.
Индивидуалните контролни блокове са свързани помежду си в обща мрежа и могат да обменят данни.
Автобусът е двупосочен, т.е. Всяко свързано към него устройство може да получава и предава съобщения.
Сигналът от чувствителния елемент (сензор) се изпраща до най-близкия контролен блок, който го обработва и предава на CAN шината за данни.
Всяко управляващо устройство, свързано към CAN шината за данни, може да прочете този сигнал, да изчисли стойността на управляващото действие въз основа на него и да управлява сервото на задвижването.
Обмен на данни чрез CAN шина

- B — Сензор 1
- CAN - Шина за данни
- M - Изпълнителни елементи I-III (сервомеханизми)
- N — Блокове за управление (контролери) I-V
Предимства
С конвенционална кабелна връзка на електрически и електронни устройства се осъществява директна връзка между всеки контролен блок и всички сензори и изпълнителни механизми, от които той получава резултати от измерванията или които управлява.
Усложняването на системата за управление води до прекомерна дължина или брой кабелни линии.
В сравнение със стандартното окабеляване, шината за данни осигурява:
- Намаляване на броя на кабелите. Проводниците от сензорите се удължават само до най-близкия контролен блок, който преобразува измерените стойности в пакет от данни и ги предава към CAN шината.
- Актуаторът може да се управлява от всеки управляващ блок, който получава съответния пакет данни през CAN шината и въз основа на него изчислява стойността на управляващото въздействие върху сервомеханизма.
- Подобряване на електромагнитната съвместимост.
- Намаляване на броя на щепселните връзки и намаляване на броя на контактните клеми на блоковете за управление.
- Загуба на тегло.
- Намаляване на броя на сензорите, т.к сигнали от един сензор (например от сензора за температура на охлаждащата течност) може да се използва от различни системи.
- Подобряване на диагностичните възможности. защото сигнали от един сензор (например сигнал за скорост) се използват от различни системи, тогава ако се генерира съобщение за повреда от всички системи, използващи този сигнал, дефектният обикновено е сензорът или контролният блок, който обработва неговите сигнали. Ако съобщението за грешка идва само от една система, въпреки че този сигнал се използва и от други системи, тогава причината за грешката най-често е в блока за управление на обработката или сервомеханизма.
- Висока скорост на трансфер на данни - възможна е до 1 Mbit/s при максимална дължина на линията от 40 m. В момента скоростта на трансфер на данни на автомобил е от 83 Kbit/s до 500 Kbit/s.
- По една и съща линия могат да се предават последователно няколко съобщения.
Шината за данни CAN се състои от двужилен кабел, направен под формата на усукана двойка. Всички устройства са свързани към тази линия (блокове за управление на устройството).
Предаването на данни се извършва с дублиране на двата проводника, а логическите нива на шината за данни имат огледален образ (тоест, ако ниво на логическа нула се предава по един проводник, тогава ниво на логическа единица се предава по другия проводник и обратно).
Схемата за двупроводно предаване се използва по две причини: за откриване на грешки и като основа за надеждност.
Ако се появи пик на напрежението само на един проводник (например поради проблеми с EMC (електромагнитна съвместимост)), тогава приемащите устройства могат да идентифицират това като грешка и да игнорират този пик на напрежението.
Ако възникне късо съединение или прекъсване в един от двата проводника на CAN шината за данни, тогава благодарение на интегрираната софтуерна и хардуерна система за надеждност ще настъпи превключване към режим на работа с един проводник. Повреденият електропровод няма да се използва.
Редът и форматът на данните, предавани и получавани от потребителите (абонати) съобщенията са дефинирани в протокола за обмен на данни.
Основна отличителна черта на CAN шината за данни в сравнение с други шинни системи, базирани на принципа на адресиране на абонати, е адресирането, свързано със съобщенията.
Това означава, че на всяко съобщение по CAN шината за данни се присвоява собствен постоянен адрес (идентификатор), маркиране на съдържанието на това съобщение (например: температура на охлаждащата течност). Протоколът на CAN шина за данни позволява предаването на до 2048 различни съобщения, като адреси от 3 до 2048 са постоянно присвоени.
Обемът на данните в едно съобщение по CAN шината за данни е 8 байта.
Блокът на приемника обработва само тези съобщения (пакети данни), които се съхраняват в неговия списък с получени CAN съобщения през шината за данни (контрол на приемливостта).
Пакетите данни могат да се предават само ако CAN шината за данни е свободна (т.е., ако след последния пакет данни е имало 3-битов интервал и нито едно от управляващите устройства не започне да предава съобщение).
В този случай логическото ниво на шината за данни трябва да е рецесивно (логическа "1").
Ако няколко контролни блока започнат да предават съобщения едновременно, принципът на приоритета влиза в сила, според който съобщението на CAN шината за данни с най-висок приоритет ще бъде предадено първо без загуба на време или битове (арбитраж на заявки за достъп до споделената шина за данни).
Всяко управляващо устройство, което загуби правото си на арбитраж, автоматично превключва към приемане и се опитва да изпрати съобщението си отново, веднага щом CAN шината за данни отново се освободи.
В допълнение към пакетите данни има и пакет заявка за конкретно съобщение по CAN шината за данни.
В този случай контролното устройство, което може да предостави искания пакет данни, отговаря на това искане.
Формат на пакета данни

В нормален режим на предаване пакетите данни имат следните блокови конфигурации (рамки):
- Data Frame (рамка на съобщение) за предаване на съобщения през CAN шината за данни (например: температура на охлаждащата течност).
- Remote Frame (рамка за заявка) за да поискате съобщения през CAN шината за данни от друго управляващо устройство.
- Error Frame (рамка за грешка) всички свързани управляващи блокове се уведомяват, че е възникнала грешка и последното съобщение по CAN шината за данни е невалидно.
Протоколът на CAN шина за данни поддържа два различни формати на съобщения на CAN шина за данни, които се различават само по дължината на идентификатора:
- стандартен формат;
- разширен формат.
В момента се използва стандартният формат.
Пакетът данни за предаване на съобщения през CAN шината за данни се състои от седем последователни полета:
- Start of Frame (начален бит): Маркира началото на съобщение и синхронизира всички модули.
- Arbitration Field (идентификатор и заявка): Това поле се състои от 11-битов идентификатор (адрес) и 1 контролен бит (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"). Ако доминиращ бит се предава от поне един модул, тогава рецесивните битове, предавани от други модули, се презаписват.
Пример

Ако няколко контролни блока едновременно започнат да предават данни, конфликтът за достъп до общата шина за данни се разрешава чрез "битов арбитраж на общи заявки за ресурси", като се използват съответните идентификатори.
При предаване на полето за идентификатор, предавателят след всеки бит проверява дали все още има право да предава или друг контролен блок вече предава съобщение с по-висок приоритет по CAN шината за данни.
Ако рецесивният бит, предаден от първия предавателен блок, бъде презаписан от доминиращия бит на друг предавателен блок, тогава първият предавателен блок губи правото си да предава (арбитраж) и става приемащ блок.
Първият контролен блок (NI) губи арбитраж от бит 3.
Третият контролен блок (N III) губи арбитраж от 7-ия бит.
Второто управляващо устройство (N II) запазва правата за достъп до CAN шината за данни и може да предава своето съобщение.
Други контролни модули ще се опитат да предадат своите съобщения през CAN шината за данни едва след като тя отново е свободна. В този случай правото на прехвърляне отново ще бъде предоставено в съответствие с приоритета на съобщението по CAN шината за данни.
Разпознаване на грешки
Смущенията могат да причинят грешки при предаването на данни. Такива грешки, които възникват по време на предаване, трябва да бъдат разпознати и коригирани. Протоколът на CAN шина за данни прави разлика между две нива на разпознаване на грешки:
- механизми на ниво Data Frame (рамка на съобщение);
- механизми на битово ниво.
Механизми на ниво рамка на данни
Cyclic-Redundancy-Check:
Въз основа на съобщението, предадено по CAN шината за данни, предавателят изчислява контролни битове, които се предават заедно с пакета данни в полето "CRC поле" (контролни суми). Приемникът преизчислява тези контролни битове въз основа на съобщението, получено през CAN шината за данни, и ги сравнява с контролните битове, получени с това съобщение.
Frame Check:
Този механизъм проверява структурата на предавания блок (кадър), т.е. препроверяват се битовите полета с даден фиксиран формат и дължината на кадъра.
Грешките, открити от функцията за проверка на рамката, се маркират като грешки във форматирането.
Механизми на битово ниво
Мониторинг:
Всеки модул следи логическото ниво на CAN шината за данни при предаване на съобщение и определя разликите между предадените и получените битове. Това гарантира надеждно разпознаване на глобални и локални битови грешки, възникващи в предавателното устройство.
Bit Stuffing:
Във всеки пакет данни между полето "Start of Frame" и краят на полето "CRC Field" трябва да бъде не повече от 5 последователни бита с еднаква полярност.
След всяка последователност от 5 идентични бита, блоковият предавател добавя един бит с обратна полярност към битовия поток.
Приемниците изчистват тези битове след получаване на съобщение по CAN шината за данни.
Отстраняване на неизправности
Ако някой модул на CAN шина за данни открие грешка, той прекъсва текущия процес на пренос на данни, като изпраща съобщение за грешка. Съобщението за грешка се състои от 6 доминиращи бита.
Благодарение на съобщението за грешка, всички управляващи устройства, свързани към CAN шината за данни, се уведомяват за възникналата локална грешка и съответно игнорират предварително предаденото съобщение.
След кратка пауза всички управляващи блокове отново ще могат да предават съобщения през CAN шината за данни, като първо се изпраща отново съобщението с най-висок приоритет.
Блокът за управление, чието съобщение на CAN шина за данни е причинило грешката, също започва да препредава своето съобщение (функция за автоматично повторение).
Типове CAN шини
За различни зони на управление се използват различни CAN шини. Те се различават един от друг по скоростта на пренос на данни.
Скоростта на предаване на CAN шина за данни в зоната "двигател и шаси" (CAN-C) е 125 kbit/s, докато CAN шина за данни "Interior" (CAN-B) е проектирана за скорост на предаване на данни от само 83 kbit/s поради по-малкия брой особено спешни съобщения.
Обменът на данни между две шинни системи се осъществява чрез така наречените "интернетрежови шлюзове", т.е. контролни блокове, свързани към двете шини за данни.
D2B оптична шина (Digital Daten-Bus) данни, приложени към областта "Аудио/Комуникации/Навигация". Оптичният кабел може да предава значително повече информация от медната кабелна шина.
