Загальні відомості
На сучасних автомобілях застосовуються кілька мережевих шин обміну даними CAN (Controller Area Network) між модулями/блоками керування різних систем та контролерами виконавчих пристроїв автомобіля.
Порядок обміну даними по шині CAN
В – Датчик 1; CAN - Шина обміну даними; М - Виконавчі елементи І-ІІІ (сервомеханізми); N - Блоки керування/контролери IV
Шина є повнодуплексною (або просто дуплексною), тобто. будь-який підключений до неї пристрій може одночасно приймати та надсилати повідомлення.
Сигнал з чутливого елемента відповідного інформаційного (датчика) надходить до найближчого блоку управління, який обробляє його і передає на шину обміну даними CAN.
Будь-який блок управління, підключений до шини даних CAN, може зчитувати цей сигнал, обчислювати на його основі параметри впливу, що управляє, і контролювати функціонування відповідного виконавчого сервомеханізму.
Переваги
При звичайному кабельному з'єднанні електричних та електронних пристроїв здійснюється пряме з'єднання кожного блоку управління з усіма датчиками та виконавчими елементами, від яких він отримує результати вимірювань або якими керує.
Ускладнення системи управління призводить до надмірної довжини чи численності кабельних ліній.
У порівнянні зі стандартним кабельним розведенням шина даних забезпечує:
- Зменшення кількості кабелів. Провід від датчиків тягнуться тільки до найближчого блоку управління, який перетворює вимірювані значення пакет даних і передає останній в шину CAN;
- Керувати виконавчим механізмом може будь-який блок управління, який по шині CAN отримує відповідний пакет даних, і на його основі розраховує значення впливу, що управляє;
- Поліпшення електромагнітної сумісності;
- Зменшення кількості штекерних з'єднань та зменшення кількості контактних висновків на блоках управління;
- Зниження ваги;
- Зменшення кількості датчиків, т.к. сигнали одного датчика (наприклад, з датчика температури охолоджувальної рідини) можуть бути використані різними системами;
- Поліпшення можливостей діагностування. Т.к. сигнали одного датчика (наприклад, сигнал швидкості) використовуються різними системами, то у випадку, якщо повідомлення про несправність видають всі системи, що використовують даний сигнал, несправним є, як правило, датчик або блок управління, що обробляє його сигнали. Якщо ж повідомлення про несправність надходить тільки від однієї системи, хоча даний сигнал використовується й іншими системами, то причина несправності найчастіше укладена в обробному блоці управління або сервомеханізм;
- Висока швидкість передачі - можлива до 1 Мбіт/с при максимальній довжині лінії 40 м. В даний час на а/м Mercedes-Benz швидкість передачі даних становить від 83 Кбіт/с до 500 Кбіт/с;
- Декілька повідомлень можуть по черзі передаватися по одній і тій же лінії.
Шина даних CAN складається з двожильного дроту, виконаного у вигляді кручений пари. До цієї лінії підключено всі пристрої (блоки керування пристроями).
Передача даних здійснюється з дублюванням по обох проводах, причому логічні рівні шини даних мають дзеркальне відображення (тобто, якщо по одному дроту передається рівень логічного нуля (0), то з іншого дроту - рівень логічної одиниці (1), і навпаки).
Двопровідна схема передачі використовується з двох причин: контролю помилок і як основа надійності.
Якщо пік напруги виникає тільки на одному дроті, - наприклад, внаслідок проблем, пов'язаних із електромагнітною сумісністю (ЕМС), - то блоки-приймачі можуть ідентифікувати це як помилку та проігнорувати цей пік.
У разі короткого замикання або обриву одного з двох проводів шини 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), що маркує кадр як Data Frame (кадр даних) або як Remote Frame (кадр віддаленого запиту);
- Control Field (керуючі біти): 6-бітне поле управління містить визначальний IDE-біт (Identifier Extension Bit), що використовується для розпізнавання типу формату, що використовується (стандартний чи розширений), Резервний біт для подальших розширень і, - в останніх 4 бітах, - інформація про кількість байтів даних, закладених у Data Field (див. далі);
- 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 зумовило виникнення помилки, також починає повторну передачу свого повідомлення (функція Automatic Repeat Request).
Типи шин CAN
Для різних областей управління використовуються різні шини CAN. Вони відрізняються одна від одної швидкістю передачі.
Швидкість передачі по шині даних CAN області «двигун та ходова частина» (CAN-C) складає 125 Кбіт/с, а шина даних CAN «Салон» (CAN-B) внаслідок меншої кількості особливо термінових повідомлень розрахована на швидкість передачі лише 83 Кбіт/с.
Обмін даними між двома шинними системами здійснюється через так звані «міжмережеві шлюзи», тобто. блоки керування, підключені до обох шин даних.
Оптоволоконна шина D2B (Digital Daten-Bus) даних застосована для області «Аудіо/комунікації/навігація». Оптоволоконний кабель може передавати значно більший обсяг інформації, ніж шина з мідним кабелем.
CAN-C - шина «Двигун та ходова частина»
В кінцевому блоці управління з кожної сторони встановлений так званий резистор шини даних, що узгоджує, з опором 120 Ом, підключений між обома проводами шини даних.
Шина даних CAN рухового відсіку активована лише при включеному запалюванні.
До шини CAN-С може бути підключено понад 7 блоків керування.
CAN-B – шина «Салон»
Деякі блоки керування, підключені до шини даних CAN салону, активуються незалежно від включення запалювання (наприклад: система єдиного замку).
Тому шина даних CAN салону повинна бути в режимі функціональної готовності навіть при вимкненому запаленні, це означає, що можливість передачі пакетів даних повинна бути забезпечена навіть при вимкненому запаленні.
З метою максимально можливого зниження споживаного струму спокою, шина даних CAN, за відсутності необхідних передачі даних, переходить в режим пасивного очікування, і активується знову тільки при наступному зверненні до неї.
Якщо в режимі пасивного очікування шини даних CAN салону будь-який блок управління (наприклад, модуль управління єдиного замку) передає по ній повідомлення, його приймає лише головний системний модуль (електронний замок запалювання, EZS/EIS). Модуль EZS зберігає це повідомлення у пам'яті та посилає сигнал активації (Wake-up) на всі блоки керування, підключені до шини CAN-В.
При активації EZS перевіряє наявність всіх користувачів шини даних CAN, після чого передає збережене до цього повідомлення.
До шини CAN-В може бути підключено понад 20 блоків керування.