Ford focus, цифрова шина даних can, форд фокус

Цифрова шина даних CAN

На автомобілі застосовані кілька мережевих шин обміну даними CAN (Controller Area Network) між блоками (модулями) управління різних систем і контролерами виконавчих пристроїв автомобіля.

Окремі блоки управління об'єднані між собою в загальну мережу і можуть обмінюватися даними.

Шина у двох напрямках, тобто будь-який підключений до неї пристрій може приймати і передавати повідомлення.

Сигнал з чутливого елемента (датчика) надходить в найближчий блок управління, який обробляє його і передає на шину даних CAN.

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


Обмін даними по шині CAN

B - Датчик 1
CAN - Шина даних

М - Виконавчі елементи I - III (сервомеханізми)
N - Блоки управління (контролери) I - V

При звичайному кабельному з'єднанні електричних та електронних пристроїв здійснюється пряме з'єднання кожного блоку управління з усіма датчиками і виконавчими елементами, від яких він отримує результати вимірювань або якими керує.

Ускладнення системи управління призводить до надмірної довжині або численності кабельних ліній.

У порівнянні зі стандартною кабельної розводкою шина даних забезпечує:
  • Зменшення кількості кабелів. Провід від датчиків тягнуться тільки до найближчого блоку управління, який перетворює виміряні значення в пакет даних і передає його в шину CAN.
  • Управляти виконавчим механізмом може будь-який блок управління, який по шині CAN отримує відповідний пакет даних, і на його основі розраховує значення керуючого впливу на сервомеханизм.
  • Поліпшення електромагнітної сумісності.
  • Зменшення кількості штекерних з'єднань і зменшення кількості контактних висновків на блоках управління.
  • Зниження ваги.
  • Зменшення кількості датчиків, тому що сигнали одного датчика (наприклад, з датчика температури охолоджуючої рідини) можуть бути використані різними системами.
  • Поліпшення можливостей діагностування. Оскільки сигнали одного датчика (наприклад, сигнал швидкості) використовуються різними системами, то в разі, якщо повідомлення про несправності видають все використовують даний сигнал системи, несправним є, як правило, датчик або блок управління, що обробляє його сигнали. Якщо ж повідомлення про несправності надходить тільки від однієї системи, хоча даний сигнал використовується і іншими системами, то причина несправності, найчастіше, укладена в обробному блоці управління або сервомеханізм.
  • Висока швидкість передачі даних - можлива до 1 Мбіт / с при максимальній довжині лінії 40 м. В даний час на а / м швидкість передачі даних складає від 83 Кбіт / с до 500 Кбіт / с.
  • Кілька повідомлень можуть по черзі передаватися по одній і тій же лінії.

Шина даних CAN складається з двожильного дроти, виконаного у вигляді витої пари. До цієї лінії підключені всі пристрої (блоки управління пристроями).

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

Двухпроводная схема передачі використовується з двох причин: для виявлення помилок і як основа надійності.

Якщо пік напруги виникає тільки на одному дроті (наприклад, внаслідок проблем з ЕМС (електромагнітна сумісність)), то блоки-приймачі можуть ідентифікувати це як помилку і проігнорувати цей пік напруги.

Якщо ж станеться коротке замикання або обрив одного з двох проводів шини даних CAN, то завдяки інтегрованій програмно-апаратної системі надійності відбудеться перемикання в режим роботи за однопровідною схемою. Пошкоджена передає лінія використовуватися не буде.

Порядок і формат переданих і прийнятих користувачами (абонентами) повідомлень визначений в протоколі обміну даними.

Обсяг даних в одному повідомленні по шині даних CAN становить 8 байт.

Блок-приймач обробляє тільки ті повідомлення (пакети даних), які збережені в його списку прийнятих по шині даних CAN повідомлень (контроль прийнятності).

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

При цьому логічний рівень шини даних повинен бути рецесивним (логічна «1»).

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

Кожен блок управління, втрачаючи право арбітражу, автоматично перемикається на прийом і повторює спробу відправити своє повідомлення, як тільки шина даних CAN знову звільниться.

Крім пакетів даних існує також пакет запиту певного повідомлення по шині даних CAN.

У цьому випадку блок керування, який може надати запитуваний пакет даних, реагує на даний запит.

Формат пакета даних


У звичайному режимі передачі пакети даних мають наступні конфігурації блоків (фрейми):

• Data Frame (фрейм повідомлення) для передачі повідомлень по шині даних CAN (наприклад: температура охолоджуючої рідини).

• Remote Frame (фрейм запиту) для запиту повідомлень по шині даних CAN від іншого блоку управління.

• Error Frame (фрейм помилки) всі підключені блоки управління повідомляються про те, що виникла помилка і останні повідомлення по шині даних CAN є недійсним.

Протокол шини даних CAN підтримує два різних формату фреймів повідомлення по шині даних CAN, які розрізняються лише по довжині ідентифікатора:
  • стандартний формат;
  • розширений формат.

В даний час використовується стандартний формат.

Пакет даних для передачі повідомлень по шині даних CAN складається з семи послідовних полів:

• Start of 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 грунтується на двох логічних станах: Біти є або «рецесивними» (логічна «1»), або «домінантними» (логічний «0»). Якщо домінантний біт передається як мінімум одним модулем, то рецесивні біти, що передаються іншими модулями, перезаписувати.


Якщо кілька блоків управління одночасно починають передачу даних, то конфлікт доступу до загальної шини даних дозволяється за допомогою «побітового арбітражу запитів загального ресурсу» за допомогою відповідних ідентифікаторів.

При передачі поля ідентифікатора блок-передавач після кожного біта перевіряє, чи володіє він ще правом передачі, або вже інший блок управління передає по шині даних CAN повідомлення з більш високим пріоритетом.

Якщо передається першим блоком-передавачем рецесивний біт перезаписується домінантним бітом іншого блоку-передавача, то перший блок-передавач втрачає своє право передачі (арбітраж) і стає блоком-приймачем.

Перший блок управління (N I) втрачає арбітраж з 3-го біта.

Третій блок управління (N III) втрачає арбітраж з 7-го біта.

Другий блок управління (N II) зберігає право доступу до шини даних CAN і може передавати своє повідомлення.

Інші блоки управління спробують передати свої повідомлення по шині даних CAN тільки після того, як вона знову звільниться. При цьому право передачі знову буде надаватися відповідно до пріоритетністю повідомлення по шині даних CAN.

Перешкоди можуть призводити до помилок в передачі даних. Такі, що виникають при передачі, помилки слід розпізнавати і усувати. Протокол шини даних CAN розрізняє два рівня розпізнавання помилок:
  • механізми на рівні Data Frame (фрейм повідомлення);
  • механізми на рівні бітів.

Механізми на рівні Data Frame

На основі переданого по шині даних CAN повідомлення блок-передавач розраховує контрольні біти, які передаються разом з пакетом даних в поле «CRC Field» (контрольні суми). Блок-приймач заново обчислює ці контрольні біти на основі прийнятого по шині даних CAN повідомлення і порівнює їх з контрольними бітами, отриманими разом з цим повідомленням.

Цей механізм перевіряє структуру переданого блоку (фрейма), тобто перевіряються бітові поля з заданим фіксованим форматом і довжина фрейму.

Розпізнані функцією Frame Check помилки маркуються як помилки формату.

Механізми на рівні бітів

Кожен модуль при передачі повідомлення відстежує логічний рівень шини даних CAN і визначає при цьому відмінності між переданим і прийнятим бітом. Завдяки цьому забезпечується надійне розпізнавання глобальних і виникають в блоці-передавачі локальних помилок по бітам.

У кожному пакеті даних між полем «Start of Frame» і кінцем поля «CRC Field» має бути не більше 5 наступних один за одним бітів з однаковою полярністю.

Після кожної послідовності з 5 однакових бітів блок-передавач додає в потік бітів один біт з протилежного полярністю.

Блоки-приймачі видаляють ці біти після прийому повідомлення по шині даних CAN.

Якщо який-небудь модуль шини даних CAN розпізнає помилку, то він перериває поточний процес передачі даних, відправляючи повідомлення про помилку. Повідомлення про помилку складається з 6 домінантних бітів.

Завдяки повідомленням про помилку все підключені до шини даних CAN блоки управління сповіщаються про виниклу локальної помилку і відповідно ігнорують передане до цього повідомлення.

Після короткої паузи всі блоки управління знову зможуть передавати повідомлення по шині даних CAN, причому першим знову буде відправлено повідомлення з найвищим пріоритетом.

Блок управління, чиє повідомлення по шині даних CAN зумовило виникнення помилки, також починає повторну передачу свого повідомлення (функція Automatic Repeat Request).

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

Швидкість передачі по шині даних CAN області «двигун і ходова частина» (CAN-C) становить 125 Кбіт / с, а шина даних CAN «Салон» (CAN-B) внаслідок меншої кількості особливо термінових повідомлень розрахована на швидкість передачі даних тільки 83 Кбіт / с.

Обмін даними між двома шинними системами здійснюється через так звані «міжмережеві шлюзи», тобто блоки управління, підключені до обох шинам даних.

Оптоволоконная шина D2B (Digital Daten-Bus) даних застосована для області «Аудіо / комунікації / навігація». Оптоволоконний кабель може передавати істотно більший обсяг інформації, ніж шина з мідним кабелем.

Схожі статті