You dont have javascript enabled! Please enable it!

CAN-шина

Предмети:

  • Вступ
  • Кілька мереж в одному автомобілі
  • CAN мережа з вузлами
  • Різні типи швидкостей CAN
  • Сигнали шини CAN
  • Швидкості та рівні напруги
  • Структура повідомлення шини CAN (стандартного) 11-бітного ідентифікатора
  • Структура повідомлення шини CAN (розширеного) 28-бітного ідентифікатора
  • Розпізнавання помилок за допомогою Bitstuffing і роздільників CRC & ACK
  • Вита пара
  • Кінцеві резистори
  • Шлюз
  • Вимірювання по шині CAN

Вступ:
Сучасні автомобілі напхані електронікою. Блоки управління збирають і обробляють дані від датчиків і виконавчих механізмів. Різні ECU часто використовують однакові дані: dДатчик положення педалі акселератора реєструє положення педалі акселератора. Цей сигнал надсилається безпосередньо до ЕБУ двигуна через проводку. ЕБУ двигуна – не єдиний ЕБУ, який використовує цей сигнал:

  • ЕБУ двигуна використовує сигнал від датчика положення педалі акселератора для керування дросельною заслінкою під час прискорення для збагачення прискорення шляхом активації форсунок на більш тривалий час, регулювання моменту запалювання та, якщо необхідно. контроль вестгейта або регулювання VGT турбо;
  • ЕБУ автоматичної коробки передач використовує положення педалі акселератора для визначення часу перемикання зчеплень автоматичної коробки передач. Якщо педаль акселератора натиснути злегка, автоматична коробка передач буде перемикатися на нижчу швидкість, ніж коли педаль акселератора натиснута наполовину. При раптовому швидкому натисканні на педаль акселератора відбудеться «кік-даун» шляхом перемикання на нижчу передачу та збільшення обертів двигуна;
  • Ступінь прискорення в повороті може бути причиною для ESP-ECU, щоб ESP втрутився, зменшивши потужність двигуна та, якщо необхідно, застосувати гальмо на прядці.

Під час втручання ESP потужність двигуна зменшується через (часткове) закриття дросельної заслінки та впорскування меншої кількості палива. Індикатор також засвітиться або блимає на панелі приладів, щоб попередити водія про роботу ESP.

Вищенаведене чітко демонструє співпрацю між різними ECU. Шина CAN забезпечує взаємодію ECU між собою та обмін даними між собою. CAN є абревіатурою: Controller Area Network. 

ЕБУ двигуна
Вбудований ЕБУ двигуна в моторному відсіку

У 80-х роках автомобілі отримували все більше аксесуарів і виробники почали встановлювати контрольні пристрої. Кожна функція мала окремий потік. Це призвело до різкого збільшення товщини дроту та кількості штекерних з’єднань.
Недоліком товстих джгутів є те, що їх важко приховати за внутрішньою обшивкою, і ризик несправностей значно зростає.

За допомогою шини CAN ЕБУ зв’язуються лише за двома проводами: CAN-високий і CAN-низький. Увесь зв’язок між блоками управління здійснюється через ці два дроти. яНаступні два зображення чітко показують, що кількість проводів на одних дверях вже значно зменшується при використанні шини CAN.

До двох проводів шини CAN на шині CAN можна підключити десятки пристроїв керування. Всі підключені пристрої управління можуть обмінюватися даними один з одним.

 

На зображенні нижче показано автомобіль з одинадцятьма пристроями керування (позначеними червоними блоками). Усі ці пристрої керування з’єднані один з одним двома проводами; помаранчевий і зелений дроти. Ці дроти представляють CAN-високий і CAN-низький. Кожен блок керування має власну функцію та може спілкуватися з будь-яким іншим блоком керування в мережі через шину CAN. Більш детальну інформацію про пристрої керування можна знайти на сторінці пристрої контролю.

1. Блок управління установкою фаркопа
2. Блок керування дверима RA
3. Блок керування дверима RV
4. Шлюз
5. Пристрій контролю комфорту
6. Блок управління сигналізацією
7. Панель приладів
8. Блок управління електронікою рульової колонки
9. Блок керування дверима LV
10. Блок керування дверима LA
11. Блок керування Park Distance Control

З приходом автобуса CAN це також можливо EOBD більш комплексний. EOBD розшифровується як European On Board Diagnosis. EOBD має справу з викидами. Різні датчики в двигуні та вихлопі передають інформацію в ECU. Якщо є неправильні значення (через, наприклад, погане згоряння), засвітиться MIL (індикатор двигуна). Це ознака того, що автомобіль потрібно прочитати. Потім необхідно під’єднати діагностичний тестер до роз’єму OBD, щоб зчитувати помилки. Базуючись на несправності, ECU зберігає шістнадцятковий код помилки, який відображається діагностичним тестером як P-код або текст несправності (останнє більше залежить від марки). Натисніть тут, щоб дізнатися більше про OBD1, OBD II та EOBD.

Кілька мереж в автомобілі:
В автомобілі може бути кілька мереж. На зображенні нижче наведено огляд із позначеннями блоків керування в кількох мережах BMW 3-ї серії E90.

Мережі K-CAN, PT-CAN і F-CAN на зображенні вище належать до шини CAN. Відмінності полягають у швидкості, рівнях напруги та програмах. Хоча шини PowerTrain-CAN і F-CAN мають однакові високошвидкісні рівні швидкості та напруги, різниця полягає в тому, що PT-CAN використовується для керування двигуном і трансмісією, а F-CAN містить блоки керування шасі.

Мережа CAN з пристроями керування
Мережа шини CAN складається з пристроїв керування, які оснащені апаратним і програмним забезпеченням для отримання, обробки та надсилання повідомлень. Для передачі даних використовуються дріт CAN-high і CAN-low. На зображенні нижче CAN-High позначено червоним кольором, а CAN-Low — синім.
До цих проводів підключаються пристрої керування (також звані блоками керування або вузлами). Всі пристрої управління можуть як відправляти, так і отримувати інформацію. Прикладом мережі є система шини CAN у салоні автомобіля; Тут різні пристрої керування можуть бути підключені до однієї шинної системи.

Як приклад візьмемо камеру заднього виду (вузол 5), яка переобладнана. Ця камера встановлюється біля тримача номерного знака або ручки. Електропроводка CAN підключається будь-де в салоні. Умова полягає в тому, що вузол камери містить правильний ідентифікатор (попередньо запрограмований виробником), оскільки інші пристрої керування повинні його розпізнати. Якщо камера зареєстрована на підтримуваній радіостанції, зображення буде видно одразу.
Після програмування програмного забезпечення магнітола отримує сигнал від коробки передач про те, що була вибрана передача заднього ходу. У цей момент радіо перемикається на зображення камери заднього виду. У момент вибору першої передачі (вперед) зображення знову вимикається. Все це завдяки передачі даних по системі шини CAN.

Непідтримуване обладнання (наприклад, з неправильним ідентифікатором) може спричинити проблеми. Якщо він надсилає повідомлення, які не розпізнаються іншими пристроями керування, буде згенеровано повідомлення про помилку. Цей тип обладнання також може гарантувати, що шина CAN залишається активною після вимкнення запалювання. Після цього автомобіль не перейде в «сплячий режим», що призведе до швидкої розрядки акумулятора. Тоді є один таємний споживач.

Сигнали шини CAN:
Система шини CAN використовує принцип трансляції; передавач надсилає повідомлення на шину CAN. Кожен вузол на одній шині отримує повідомлення. Однак відправник вказує в повідомленні, для яких вузлів призначене повідомлення. Усі вузли отримують повідомлення та надають зворотній зв’язок (про це пізніше). Вузли, для яких повідомлення не призначене, визнають це та ігнорують.

Сигнал шини CAN складається з високої та низької напруги CAN. На зображенні нижче показано CAN-високий червоний і CAN-низький синій. Високий і низький сигнали ідентичні, але дзеркально відображені один від одного. Коли шина стає домінуючою, напруга CAN-high зростає з 2,5 до 3,5 вольт, а CAN-low знижується з 2,5 до 1,5 вольт. У рецесивному стані (у спокої) обидві напруги становлять 2,5 вольта.

На зображенні вище показано приклад вимірювання за допомогою осцилографа. Чітко видно, що обидві напруги ідентичні один одному, тільки в дзеркальному відображенні. В кінцевому підсумку різниця напруг в активній (домінантній) області становить 2 вольта. Це стосується різниці між 1,5 і 3,5 вольтами. Різниця в 2 вольта вважається 0 (домінантною), а різниця в 0 вольт вважається 1 (рецесивною).

Якщо вузол (відправник) хоче надіслати двійковий код «0 0 1 0 1 1 0 1», він застосовуватиме згадані напруги до CAN-High і CAN-Low (див. приклад вище). Приймаючий вузол знову побачить ці напруги як двійковий код, а потім перетворить їх у шістнадцятковий код. Зазначений двійковий код буде перетворено з шістнадцяткового у 2D.

Щоб перетворити двійкову систему в шістнадцяткову, легко намалювати таблицю з 8 прямокутників із товстою лінією посередині. Назвіть клітинки праворуч 1, 2, 4 і 8 (див. червоні цифри на зображенні). Потім зробіть це також з лівого боку. Запишіть числа з 1 у двійковому коді над ними. Ліворуч лише 2, праворуч 8, 4 і 1. Додайте разом усе праворуч (13) і зробіть те ж саме зліва (2). Шістнадцяткове число змінюється з 10 на A, 11 = B, 12 = C, 13 = D. Це в кінцевому підсумку робить 2D.

Більше інформації про конвертацію з двійкової системи в (шістнадцяткову) і навпаки можна знайти на сторінці Двійкова, десяткова та шістнадцяткова система. Яскраві приклади докладно описані тут.

Швидкості та рівні напруги:
У транспортних засобах ми можемо зустріти мережі шин CAN з різною швидкістю:

  • Висока швидкість: ЕБУ, пов’язані з приводом, включаючи електроніку двигуна, трансмісію, ABS/ESP, EBS (комерційні автомобілі);
  • Середня або низька швидкість: електроніка салону, така як панель приладів, радіо, клімат-контроль, стоянкове гальмо, фаркоп.

Два зображення нижче показують CAN-високий і CAN-низький сигнали високошвидкісної шини CAN. У стані спокою напруга обох сигналів становить 2,5 вольта. Щоб надіслати повідомлення, високий рівень CAN збільшується з 2,5 до 3,5 вольт, а низький рівень CAN зменшується з 2,5 до 1,5 вольт.

CAN висока швидкість (1)

Нижче ви знову можете побачити сигнал із високошвидкісного CAN, який тепер було збільшено (50 мікросекунд на поділку), де діапазон для вищезгаданого сигналу було встановлено на 200 мікросекунд на поділку.

CAN висока швидкість (2)

У комфортній електроніці висока швидкість зв'язку менш важлива. Характеристика шини CAN із середньою або низькою швидкістю, рівні напруги в стані спокою та під час генерування повідомлення наступні:

  • CAN-high становить 5 вольт у стані спокою і падає до 1 вольта;
  • CAN-low становить 0 вольт у спокої та підвищується до 4 вольт.

Під час вимірювання, в якому нульові лінії каналів A і B встановлені на однаковій висоті, можна побачити, що напруги «ковзали одна в одну». Це ускладнює зчитування високого та низького сигналів CAN.

CAN низька швидкість (1)

Щоб оцінити чистоту повідомлень, рекомендується зсунути нульові рядки. На зображенні нижче нульова лінія каналу A зміщена вниз, а каналу B — вгору. Це означає, що зображені сигнали були розділені, і можна побачити більш чітку прогресію напруг.

CAN низька швидкість (2)

Структура повідомлення шини CAN (стандартного) 11-бітного ідентифікатора:
Структура повідомлення шини CAN завжди базується на зображенні нижче. Є відмінності в структурі; наприклад, поля ARB і CTRL 11-бітного ідентифікатора та 29-бітового ідентифікатора відрізняються. Інформація нижче стосується 11-бітного ідентифікатора. Для вашої інформації, 29-бітний ідентифікатор містить більше даних, ніж 11-бітний ідентифікатор. Про це пізніше.

Структура повідомлення тепер просто підсумована та описана детально пізніше:

SOF:
Кожне повідомлення CAN починається з SOF (початок кадру). Коли вузол хоче надіслати повідомлення, домінантний біт буде розміщено на шині. Шина CAN завжди рецесивна в стані спокою (1, тому і CAN-High, і CAN-Low дорівнюють 2 В). Домінуючий біт (0) вказує, що інші вузли повинні чекати надсилання повідомлення, поки не буде опубліковано все повідомлення. Лише після IFS (міжкадровий простір) наступному вузлу дозволяється надіслати своє повідомлення. Навіть якщо це важливе повідомлення, його не можна пропустити.
Коли 2 вузли хочуть надіслати повідомлення одночасно (про яке вони не знають один про одного) і, таким чином, разом зробити шину домінуючою, поставивши 0, ARB (арбітраж) визначає, яке повідомлення має перевагу.

З цього моменту кожна частина обговорюваного повідомлення шини CAN буде додаватися до цього сірого зображення. Таким чином я намагаюся зберегти огляд. Повідомлення почалося з SOF.

ARB:
Арбітражне поле 11-бітового ідентифікатора складається з 2 частин; ідентифікатор і біт RTR.
Ідентифікатор:
Припустімо, що 2 вузли одночасно роблять шину CAN домінуючою, тоді вузол із найменш важливим повідомленням чекатиме, доки важливе повідомлення не буде опубліковано (доки після IFS). Ідентифікатор повідомлення містить ряд одиниць і нулів. Ці номери програміст навмисно присвоює повідомленню. Ідентифікатор із 0 у повідомленні (домінантний) має вищий пріоритет, ніж ідентифікатор із 1 у повідомленні (рецесивний). Повідомлення з 0 буде продовжено, а повідомлення з 1 доведеться чекати.

Обидва ідентифікатори починають надсилати повідомлення з 11 біт. З SOF розміщується домінуючий біт. Тоді перші 5 бітів обох ідентифікаторів рівні (0 1 1 0 1). Шостий біт – це 6 для ідентифікатора під номером 2 і 0 для першого ідентифікатора. Домінант домінує, тому ідентифікатор 1 створює остаточне повідомлення CAN.
Ідентифікатор 1 розмістив 6 як 1-й біт. Вузол, який надсилає ідентифікатор, розпізнає, що 0 вузли надсилають повідомлення одночасно, коли інший вузол розміщує 2 на шині. У цей момент ідентифікатор 1 припиняє передачу і тепер поводиться як приймач. Хоча повідомлення, що починається з 0 1 1 0 1, спочатку мало бути повідомленням, яке цей вузол хотів надіслати, тепер він розглядатиме його як отримане повідомлення. Потім вузол прослуховує все повідомлення й визначає, чи потрібно з ним щось робити.

Сіре зображення SOF тепер розширено ARB, який складається з 2 частин, а саме ідентифікатора та біта RTR:

Біт RTR:
Останній біт 11-бітового ідентифікатора називається RTR; це біт запиту на віддалену передачу. Цей біт RTR вказує, чи є це кадр даних чи віддалений кадр.
0 = кадр даних
1 = віддалена рамка

Кадр даних містить дані, які пересилаються до вузлів, яким потрібна інформація. Вузол також може запитувати інформацію; наприклад, яка температура охолоджуючої рідини в певний час. Потім вузол встановить 1 як біт RTR, оскільки він запитує дані.

CTRL:
Поле керування складається з IDE (розширення ідентифікатора), R-біта та DLC. Біт IDE вказує, чи є це стандартним (11 біт) чи розширеним (29 біт) ідентифікатором:
0 = стандартний ідентифікатор (11 біт)
1 = розширений ідентифікатор (29 біт)

Біт R зарезервований на майбутнє і тепер завжди рецесивний.

Потім йде DLC: мережа шини CAN може надсилати максимум 8 байт. В 1 байті 8 біт, тому загалом можна надіслати 64 біти відповідно до стандартного протоколу. Поле керування вказує, скільки даних надсилається. Було б безглуздо надсилати велике повідомлення з усіма порожніми полями даних для біту підтвердження (1 для ввімкнення або 0 для вимкнення). Кількість байтів вказано у відповідному DLC (код довжини даних). DLC є функцією програмного забезпечення для програмування, а отже, є попередньо визначеним програмістом значенням.
Припустимо, що в DLC вказано 1 байт, тоді надсилається 8 біт. Для коротких повідомлень підтвердження цього достатньо.
Для дуже великих повідомлень DLC міститиме значення до 8 байтів даних.

Приклад знову розширено. Додано IDE, R і DLC.

ДАНІ:
Остаточні дані, які необхідно надіслати, розміщуються в полі даних. Розмір залежить від значення DLC (код довжини даних). Вище вже було зазначено, що DLC має максимум 8 байт. Кожен байт складається з 8 бітів, тому загалом поле даних може складатися з 64 бітів.

CRC:
Циклічна перевірка надмірності складається з математичних розрахунків, які надсилаються разом із повідомленням. Вузол-відправник обчислює загальну кількість повідомлень CAN на даний момент; SOF, ARB, CTRL і DATA. Таким чином, CRC є розрахунком. Коли приймаючий вузол отримав повідомлення до CRC включно, він виконає математичне обчислення до DATA та порівнює його з обчисленням у CRC. Якщо це не збігається (через неправильний біт/помилку), повідомлення не приймається, і робиться запит на повторне надсилання повідомлення (з певною максимальною кількістю спроб). Приклад було розширено, щоб включити CRC.

ACK:
Поле «Підтвердити» служить для підтвердження отримання. Коли відправник надсилає повідомлення до CRC, вставляється свого роду пауза; передавач робить шину рецесивною (з 0) і чекає, поки один або кілька вузлів зроблять шину домінантною (1). Немає значення, один або кілька вузлів отримали повідомлення, оскільки якщо один вузол отримав його, воно було надіслано успішно. Після того, як шина стане домінуючою за допомогою 1, передача повідомлення відновлюється.

EDF:
Кінець кадру складається з 7 рецесивних бітів (1 1 1 1 1 1 1). Це знак для всіх блоків керування, що повідомлення закінчилося.

IFS:
Щоб запобігти збоям, міжкадровий простір завжди використовується після EDF. IFS складається з 11 рецесивних бітів. Усі вузли чекають, поки ці 11 рецесивних бітів пройдуть перед тим, як відправити повідомлення. Після цих 11 рецесивних бітів, наприклад, 2 вузли можуть надсилати повідомлення одночасно. Потім знову переглядається ARB (арбітраж), щоб визначити, яке повідомлення має найвищий пріоритет. Потім весь цикл починається знову.

Структура повідомлення шини CAN (розширеного) 28-бітного ідентифікатора:
11-бітний ідентифікатор був розроблений в той час, коли автомобілі ще не мали такої кількості контрольних пристроїв (вузлів). Незабаром програмісти виявили, що 11-бітного ідентифікатора їм недостатньо. Це має лише (2^11) = 2048 можливостей. З них залишилося 2032 унікальних комбінації двійкового коду. Сучасні автомобілі тепер використовують набагато більше кодів завдяки розширеному 28-бітному ідентифікатору. Це називається розширеним ідентифікатором.
Це означає, що можливо не менше ніж (2^29) = 536870912 комбінацій. Цього більш ніж достатньо на майбутнє.
У повідомленні шини CAN зміниться ряд речей. Обидва ідентифікатори (стандартний і розширений) використовуються як взаємозамінні. Таким чином, повідомлення CAN вказує, якого виду воно стосується, після чого слідує довге повідомлення.
Використовується основа 11-бітного ідентифікатора, яка також служить для підготовки перед його зчитуванням; тепер вказуються лише зміни, яких зазнає повідомлення, коли воно є 29-бітним ідентифікатором.
SOF (початок кадру) залишається незмінним. Вузол-відправник робить його домінуючим, коли починає надсилати повідомлення.
Далі йдуть ARB і CTRL, де є відмінності.

ARB:
Під час арбітражу спочатку відображається стандартний 11-бітний ідентифікатор (тобто частина з 29 бітів). Біт RTR переміщується (як і з 11 бітами) у кінець ARB. RTR тепер замінено на SRR: (замінний віддалений запит). Цей біт завжди рецесивний (1) для розширеного ідентифікатора.
Після біта SRR йде біт IDE, який знаходиться в 11-бітному ідентифікаторі в CTRL (поле керування). Тепер це видалено з контрольного поля та розміщено за бітом SRR у розширеному ідентифікаторі.

Для ясності на зображеннях нижче показано стандартний (11-бітний) і розширений (29-бітний) ідентифікатори.

Стандартний 11-бітний ідентифікатор
Розширений 29-бітний ідентифікатор

Біт IDE означає розширення ідентифікатора. Біт IDE визначає, чи є він стандартним чи розширеним ідентифікатором.
IDE 0 = стандартний (11-бітний ідентифікатор)
IDE 1 = Розширений (29-бітний ідентифікатор)

Після біта IDE йде решта розширеного ідентифікатора. 11 і 18 бітів разом складають 29. Вони не можуть бути розміщені як одне ціле в повідомленні, тому що протокол CAN у цьому випадку більше не є правильним. В основному біт IDE тепер вказує, що повідомлення було розділене на дві частини.

CTRL:
Тому контрольне поле було змінено для розширеного ідентифікатора. Біт IDE перенесено до ARB.
Біт IDE замінюється бітом R (запасним). За замовчуванням це рецесивно. Далі йде біт R і DLC (код довжини даних), який вказує, скільки байтів буде складатися з повідомлення.

Знову відображаються контрольні поля як 11-бітного, так і 29-бітового ідентифікаторів.

CTRL з 11-бітної IDE
CTRL з 29-бітної IDE

Розпізнавання помилок за допомогою Bitstuffing і роздільників CRC & ACK:
Бітова начинка:
Щоб підтримувати оптимальну синхронізацію між вузлами-відправниками та приймачами, застосовується бітова вставка. Вставка бітів означає, що після 5 однакових бітів додається протилежний біт. У початково надісланому повідомленні значення біта не змінюється, але додається біт.
Приймач розпізнає це. Після 5 ідентичних бітів приймач очистить 6-й біт (див. зображення нижче).

Надсилається вихідне повідомлення лише з одиниць, але відправник додає 6 на кожному 0-му біті. Довжина повідомлення збільшується через нулі (але ця довжина не враховується для DLC (код довжини даних). Одержувач відфільтровує протилежні біти (нулі), а потім знову читає повідомлення лише з одиницями.

Роздільники CRC і ACK:
Роздільники розміщуються після полів CRC і полів ACK. Це біт із відомим значенням як для відправника, так і для одержувача. Якщо в повідомленні виникає помилка, це значення буде іншим. Потім одержувач отримує значення біта, відмінне від очікуваного, і позначає повідомлення як помилкове. Відправник повторно надішле повідомлення.

Вита пара:
Для розводки CAN-шини використовується кабель вита пара. Потім кабелі CAN-High і CAN-Low скручуються разом, як показано на зображенні. Таким чином уникають втручання ззовні; якщо індукція в кілька десятих вольта потрапляє в один кабель, вона також потраплятиме в інший. Однак різниця напруги між високим і низьким рівнем CAN залишається незмінною. Таким чином несправність усувається, і вона не впливає на ECU.

Кінцеві резистори:
Кінцеві резистори використовуються в кожній мережі високошвидкісної шини CAN. Вони часто вбудовуються у вузли наприкінці лінії (дроту) шини CAN або в електропроводку. Кожен із цих резисторів має опір 120 Ом (Ом). Опір заміни вимірюється як 60 Ом під час вимірювання опору проводів.

Ці кінцеві резистори служать для придушення перешкод; Якби їх не було, відбулася б рефлексія. Сигнал напруги проходить через дріт шини CAN, досягає кінця і повертається назад. Останньому запобігають. На резисторі записується напруга. Відображення може призвести до відскоку сигналів напруги, що вплине на повідомлення, що надсилаються, і згодом призведе до несправності пристроїв керування.

Шлюз:
Автомобіль обладнаний мережею контрольних приладів (вузлів). Шлюз з’єднує різні мережі шини CAN (наприклад, салон, двигун/трансмісія та шасі), шину MOST і шину LIN, дозволяючи всім мережам спілкуватися одна з одною. Тож це фактично стик між усіма мережами. Різниця у швидкості неважлива для шлюзу. Натисніть тут, щоб перейти на сторінку, де описано роботу та функції шлюзу.

Вимірювання на шині CAN:
Часто запитують, чи можна виміряти шину CAN. Це, звичайно, можливо. Діагноз можна поставити, вимірявши рівні напруги на проводах і перевіривши напругу на осцилографі. Як можна проводити вимірювання, описано на сторінці вимірювання в системі шини CAN.

Пов'язана сторінка: