Окремі блоки управління об'єднані один з одним у спільну мережу та можуть обмінюватися даними.
Шина є двоспрямованою, тобто. будь-який підключений до неї пристрій може приймати та надсилати повідомлення.
Сигнал з чутливого елемента (датчика) надходить до найближчого блоку управління, який обробляє його і передає на шину даних CAN.
Будь-який блок управління, підключений до шини даних CAN, може зчитувати цей сигнал, обчислювати на його основі значення впливу, що управляє, і управляти виконавчим сервомеханізмом.
Обмін даними по шині CAN
- B - Датчик 1
- CAN — Шина даних
- М — Виконавчі елементи I-III (сервомеханізми)
- N — Блоки керування (контролери) IV
Переваги
При звичайному кабельному з'єднанні електричних та електронних пристроїв здійснюється пряме з'єднання кожного блоку управління з усіма датчиками та виконавчими елементами, від яких він отримує результати вимірювань або якими керує.
Ускладнення системи управління призводить до надмірної довжини чи численності кабельних ліній.
У порівнянні зі стандартним кабельним розведенням шина даних забезпечує:
- Зменшення кількості кабелів. Провід від датчиків тягнуться тільки до найближчого блоку управління, який перетворює виміряні значення пакет даних і передає його в шину CAN.
- Керувати виконавчим механізмом може будь-який блок управління, який по шині CAN отримує відповідний пакет даних, і на його основі розраховує значення керуючого на сервомеханізм.
- Поліпшення електромагнітної сумісності.
- Зменшення кількості штекерних з'єднань та зменшення кількості контактних висновків на блоках керування.
- Зниження ваги.
- Зменшення кількості датчиків, т.к. сигнали одного датчика (наприклад, датчика температури охолоджуючої рідини) можуть бути використані різними системами.
- Поліпшення можливостей діагностування. Т.к. сигнали одного датчика (наприклад, сигнал швидкості) використовуються різними системами, то у випадку, якщо повідомлення про несправність видають всі системи, що використовують даний сигнал, несправним є, як правило, датчик або блок управління, що обробляє його сигнали. Якщо ж повідомлення про несправність надходить тільки від однієї системи, хоча даний сигнал використовується й іншими системами, то причина несправності найчастіше укладена в обробному блоці управління або сервомеханізм.
- Висока швидкість передачі даних – можлива до 1Мбіт/с при максимальній довжині лінії 40 м. В даний час на а/м швидкість передачі даних становить від 83 Кбіт/с до 500 Кбіт/с.
- Кілька повідомлень можуть по черзі передаватися по одній лінії.
Шина даних CAN складається з двожильного дроту, виконаного у вигляді кручений пари. До цієї лінії підключено всі пристрої (блоки керування пристроями).
Передача даних здійснюється з дублюванням по обох проводах, причому логічні рівні шини даних мають дзеркальне відображення (тобто, якщо по одному дроту передається рівень логічного нуля, то по іншому дроту передається рівень логічної одиниці, і навпаки).
Двопровідна схема передачі використовується з двох причин: виявлення помилок як основа надійності.
Якщо пік напруги виникає тільки одному проводі (наприклад, внаслідок проблем з ЭМС (электромагнитная сумісність)), то блоки-приемники можуть ідентифікувати це як помилку і проігнорувати цей пік напруги.
Якщо ж відбудеться коротке замикання або обрив одного з двох дротів шини даних 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). Цей контрольний біт маркує пакет як 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). Якщо домінантний біт передається щонайменше одним модулем, то рецесивні біти, що передаються іншими модулями, перезаписуються.
Приклад
Якщо кілька блоків управління одночасно починають передачу даних, то конфлікт доступу до загальної шини даних дозволяється за допомогою побітового арбітражу запитів загального ресурсу за допомогою відповідних ідентифікаторів.
При передачі поля ідентифікатора блок-передавач після кожного біта перевіряє, чи має він ще право передачі, чи вже інший блок управління передає по шині даних CAN повідомлення з вищим пріоритетом.
Якщо рецесивний біт, що передається першим блоком-передавачем, перезаписується домінантним бітом іншого блоку-передавача, то перший блок-передавач втрачає своє право передачі (арбітраж) і стає блоком-приймачем.
Перший блок управління (NI) втрачає арбітраж із 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) даних застосована для області Аудіо/комунікації/навігація. Оптоволоконний кабель може передавати значно більший обсяг інформації, ніж шина з мідним кабелем.
Коментарі відвідувачів