КАН-шина в автомобілі – що це за така технологія? Вимірювання та діагностика шини CAN Схема кан шини

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

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

Абревіатура CAN розшифровується як Controller Area Network, тобто мережа контролерів. Відповідно, CAN-шина - це пристрій, що приймає інформацію від пристроїв і передає між ними. Цей стандарт було розроблено та впроваджено понад 30 років тому компанією Robert Bosch GmbH. Зараз його використовуються в автомобілебудуванні, промисловій автоматизації та сфері проектування об'єктів, що позначаються «розумними», наприклад, будинків.

Як працює CAN шина

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

Для передачі різної інформації повідомлення включаються ідентифікатори. Вони унікальні та повідомляють, наприклад, що в конкретний момент часу автомобіль їде зі швидкістю 60 км/год. Серія повідомлення надсилається на всі пристрої, але завдяки індивідуальним ідентифікаторам вони обробляють лише ті, що призначаються саме для них. Ідентифікатори CAN-шини можуть мати довжину від 11 до 29 біт.

Залежно від призначення КАН шини поділяються на кілька категорій:

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

Для чого CAN шина в автомобілі

Поширення інтерфейсу КАН в автомобільній сфері пов'язане з тим, що він виконує низку важливих функцій:

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

У сучасному автомобілі цифрова шина забезпечує роботу наступних компонентів та систем:

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

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

Плюси та мінуси CAN шини

Фахівці з автомобільної електроніки, висловлюючись на користь використання CAN-інтерфейсу, відзначають такі переваги:

  • простий канал обміну даними;
  • швидкість передачі;
  • широка сумісність з робітниками та діагностичними приладами;
  • більш проста схема установки автосигналізації;
  • багаторівневий моніторинг та контроль інтерфейсів;
  • автоматичний розподіл швидкості передачі з пріоритетом на користь основних систем та вузлів.

Але є у CAN-шини та функціональні недоліки:

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

Можливі проблеми з CAN шиною

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

  • індикація знака питання на приладовій панелі;
  • одночасне світіння декількох лампочок, наприклад, CHECK ENGINE та ABS;
  • зникнення показників рівня палива, оборотів двигуна, швидкості на панелі приладів.

Такі проблеми виникають з різних причин, пов'язаних із харчуванням або порушенням електроланцюжка. Це може бути замикання на масу або акумулятор, обрив ланцюга, пошкодження перемичок, падіння напруги через проблеми з генератором або розряд АКБ.

Перший захід перевірки шини – комп'ютерна діагностика всіх систем. Якщо вона показує шину, необхідно виміряти напругу на висновках H і L (має бути ~4V) і вивчити форму сигналу на осцилограф під запалюванням. Якщо сигналу немає або він відповідає напруги мережі, є замикання або обрив.

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

Завдання:Отримати доступ до показань штатних датчиків автомобіля без встановлення додаткових.
Рішення:Зчитування даних із автомобіля.

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

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

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

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

  • оберти двигуна;
  • рівень палива у баку;
  • пробіг автомобіля;
  • температура охолоджуючої рідини двигуна ТС;
  • і т.д.

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

. Що таке ?

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


. Звідки постало завдання зчитування даних з CAN-шини?

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

Відповідно до типових запитів замовників, автомобілі та спецтехніка оснащуються системою супутникового ГЛОНАСС або GPS моніторингу та системою контролю обороту палива (на базі занурювальних або ультразвукових датчиків рівня палива).

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

Саме таким рішенням стало отримання інформації із CAN-шини. Адже воно має цілу низку переваг:

1. Економія на додаткових пристроях

Не потрібно нести значних витрат на придбання та встановлення різних датчиків та пристроїв.

2. Збереження гарантії на автомобіль

Виявлення виробником стороннього втручання у конструкцію чи електрику автомобіля загрожує фактично гарантованим зняттям тс з гарантії. А це явно не входить до сфери інтересів автовласників.

3. Отримання доступу до інформації зі штатно встановлених електронних пристроїв та датчиків.



Залежно від електронної системи в автомобілі може бути штатно реалізовано певний набір функцій. До всіх цих функцій, теоретично, ми можемо отримати доступ через шину CAN. Це може бути пробіг, рівень палива в бензобаку, датчики відкриття/закриття дверей, температура за бортом та в салоні, обороти двигуна, швидкість руху, і т.д.

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



. Які переваги та недоліки тягне за собою рішення зі зчитуванням даних із CAN-шини?

Переваги:

Можливість роботи у режимі жорсткого реального часу.
. Простота реалізації та мінімальні витрати на використання.
. Висока стійкість до перешкод.
. Надійний контроль помилок передачі та прийому.
. Широкий діапазон швидкостей роботи.
. Велике поширення технології, наявність широкого асортименту продуктів різних постачальників.

Недоліки:

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

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

Відомі приклади передачі звуку та зображення по шині CAN. Відомий випадок створення системи аварійного зв'язку вздовж автодороги завдовжки кілька десятків кілометрів (Німеччина). (У першому випадку потрібна була велика швидкість передачі та невелика довжина лінії, у другому випадку – навпаки).

Виробники зазвичай не афішують, як саме вони використовують корисні байти в пакеті. Тому FMS прилад не завжди може розшифрувати дані, які віддає CAN-шина. Крім того, не всі марки автомобілів мають CAN-шину. І навіть не всі автомобілі однієї марки та моделі можуть видавати однакову інформацію.


Приклад реалізації рішення:

Нещодавно компанією Скайсім спільно з партнером був реалізований великий проект з моніторингу автотранспорту. У парку були різні вантажні автомобілі іноземного виробництва. Зокрема вантажні автомобілі Scania p340.


Для того, щоб проаналізувати процес отримання даних з CAN-шини, ми, за згасанням із замовником, провели відповідні дослідження на трьох автомобілях Scania p340: один 2008 року випуску, другий початку 2009 і третій кінця 2009 року.


Результати виявилися такими:

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


На малюнку відображено фрагмент повідомлення з інформаційної системи Wialon, де:
Fuel_level – рівень палива в баку в %;
Temp_aqua - температура охолоджуючої рідини в градусах Цельсія;
Taho - Дані з тахометра (об/хв).

Регламент реалізації рішення був наступним:

1. Навігаційний прилад Galileo ГЛОНАСС/GPS був підключений до CAN-шини вантажівок.
Ця модель автотрекера була обрана через оптимальне поєднання функціоналу, надійності та вартості. З іншого боку, вона підтримує FMS (Fuel Monitoring System) - систему, що дозволяє реєструвати і контролювати основні параметри використання транспортного засобу, тобто. підходить для підключення до CAN-шини.

Схему підключення до CAN-шини приладу Galileo можна знайти в посібнику користувача. Для підключення з боку автомобіля необхідно, в першу чергу, знайти повну пару проводів, що підходить до діагностичного роз'єму. Діагностичний роз'єм завжди доступний і розташовується поблизу рульової колонки. У 16-контактному роз'ємі за стандартом OBD II це 6-CAN high, 14-CAN low. Зверніть увагу, що у проводів High напруга приблизно 2,6-2,7В, у проводів Low воно, як правило, на 0,2В менше.


_________________________________________________________________________

Ще одним унікальним рішенням, яке було використане для зняття даних із CAN-шини, став безконтактний зчитувач даних CAN Crocodile (виробництво СП Технотон, м. Мінськ). Він підходить для роботи з приладами Galileo.


Переваги технології CAN Crocodile:

CAN Crocodile дозволяє отримувати дані про роботу автомобіля із шини CAN без втручання у цілісність самої шини.

Зчитування даних відбувається без механічного та електричного контакту з проводами.

CAN Crocodile застосовується для підключення до шини CAN систем GPS/ГЛОНАСС моніторингу, які отримують інформацію про режими роботи двигуна, стан датчиків, наявність несправностей і т.д.

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

Застосування CAN Crocodile є абсолютно безпечним для автомобіля, непомітним для роботи бортового комп'ютера, діагностичного сканера та інших електронних систем. Особливо актуальним є застосування CAN Crocodile для гарантійних автомобілів, в яких підключення будь-яких електронних пристроїв до шини CAN часто є приводом для зняття з гарантії.



2. Якщо дроти виявлені та ідентифіковані правильно, можна приступати до запуску CAN-сканера в приладі Galileo.

3. Вибирається стандарт FMS, швидкість більшості автомобілів 250 000.

4. Запускається сканування.

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

6. Якщо нічого, крім "end scan" Ви не побачили, тут є кілька варіантів. Або було неправильно здійснено підключення, або автомобіль з якихось причин не видає дані, або невідомий приладу шифр даної CAN-шини. Як було зазначено, таке трапляється досить часто, оскільки поки що немає єдиного стандарту передачі даних та його обробки по CAN. На жаль, як показує практика, отримати повні дані із CAN-шини не завжди вдається.


Але є ще один момент, який важливо торкнутися.

Найчастіше основною метою клієнтів є контроль рівня та витрати палива.

  • Навіть якщо дані зі штатних датчиків будуть успішно отримані з CAN-шини, яка їхня практична цінність?

Справа в тому, що основне призначення штатних датчиків рівня палива - дати оцінку з тим ступенем точності, який видається правильним виробнику ТЗ. Ця точність не може бути ставна з точністю, яку дає занурювальний датчик рівня палива (ДУТ) виробництва. Омнікоммабо, наприклад, Технотон.

Одне з головних завдань, яке вирішує штатний ДУТ, - щоб паливо раптово не закінчилося, і водій розумів загальну ситуацію з рівнем палива в баку. Від простого пристрою штатного поплавкового датчика складно очікувати великої точності. Крім того, трапляються випадки, коли штатний датчик спотворює дані (наприклад, коли транспорт розташовується на схилі).

Висновки


З ряду вищеназваних причин, ми рекомендуємо не покладатися на показання штатних датчиків рівня палива, а розглядати кожну ситуацію індивідуально. Як правило, відповідне рішення може бути знайдено лише спільно з технічними фахівцями. У різних виробників ТЗ різна точність показань. У всіх замовників також різні завдання. І лише під конкретне завдання доцільно підбирати засоби рішення. Комусь цілком підійде рішення з отриманням даних із CAN-шини, оскільки воно в рази дешевше і не потребує жодних змін паливної системи ТЗ. А ось замовникам з високими вимогами точно розумно розглядати варіант з занурювальним ДУТом.

Поява цифрових шин в автомобілях відбулася пізніше, ніж у них почали широко впроваджуватись електронні блоки. Тоді цифровий «вихід» їм був потрібен лише для «спілкування» з діагностичним обладнанням – для цього вистачало низькошвидкісних послідовних інтерфейсів на кшталт ISO 9141-2 (K-Line). Однак ускладнення бортової електроніки, що здається, з переходом на CAN-архітектуру стало її спрощенням.

Справді, навіщо мати окремий датчик швидкості, якщо блок АБС має інформацію про швидкість обертання кожного колеса? Достатньо передавати цю інформацію на панель приладів і в блок управління двигуном. Для систем безпеки це ще важливіше: так, контролер подушок безпеки вже стає здатний самостійно заглушити двигун при зіткненні, надіславши відповідну команду на ЕБУ двигуна, і знеструмити максимум бортових ланцюгів, передавши команду на блок управління живленням. Раніше ж доводилося для безпеки застосовувати ненадійні заходи на кшталт інерційних вимикачів та піропатронів на клемі акумулятора (власники BMW з його «глюками» вже добре знайомі).

Однак на старих принципах реалізувати повноцінне спілкування блоків управління було неможливо. На порядок зросли обсяг даних та їх важливість, тобто була потрібна шина, яка не тільки здатна працювати з високою швидкістю та захищена від перешкод, а й забезпечує мінімальні затримки при передачі. Для машини, що рухається на високій швидкості, навіть мілісекунди вже можуть грати критичну роль. Рішення, яке задовольняє такі запити, вже існувало в промисловості – йдеться про CAN BUS (Controller Area Network).

Суть CAN-шини

Цифрова CAN-шина – це конкретний фізичний протокол. Принцип роботи CAN-шини, розроблений Bosch ще у вісімдесятих роках, дозволяє реалізувати її з будь-яким типом передачі - хоч по дротах, хоч по оптоволокну, хоч по радіоканалу. КАН-шина працює з апаратною підтримкою пріоритетів блоків та можливістю «важливішого» перебивати передачу «менш важливого».

Для цього введено поняття домінантного та рецесивного бітів: спрощено кажучи, протокол CAN дозволить будь-якому блоку в потрібний момент вийти на зв'язок, зупинивши передачу даних від менш важливих систем простою передачею домінантного біта під час наявності на рецесивній шині. Це відбувається суто фізично - наприклад, якщо "плюс" на дроті означає "одиницю" (домінантний біт), а відсутність сигналу - "нуль" (рецесивний біт), то передача "одиниці" однозначно придушить "нуль".

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

Для чого це потрібно? Щоб важливі дані були передані з мінімумом затримок навіть ціною того, що неважливі дані не будуть передані на шину (це відрізняє CAN шину від знайомого всім комп'ютерам Ethernet). У разі аварії можливість ЕБУ впорскування отримати інформацію про це від контролера SRS незрівнянно важливіше, ніж панелі приладів отримати черговий пакет даних про швидкість руху.

У сучасних автомобілях вже стало нормою фізичне розмежування низького та високого пріоритетів. У них використовуються дві і навіть більш фізичні шини низької та високої швидкості - зазвичай це "моторна" CAN-шина і "кузовна", потоки даних між ними не перетинаються. До всіх одразу підключено лише контролер CAN-шини, який дає можливість «спілкуватися» з усіма блоками через один роз'єм.

Наприклад, технічна документація Volkswagen визначає три типи CAN-шин, що застосовуються:

  • Швидка шина, що працює на швидкості 500 кілобіт в секунду, об'єднує блоки управління двигуном, ABS, SRS і трансмісією.
  • Повільна функціонує на швидкості 100 кбіт/с і об'єднує блоки системи Комфорт (центральний замок, склопідйомники і так далі).
  • Третя працює на тій самій швидкості, але передає інформацію лише між навігацією, вбудованим телефоном тощо. На старих машинах (наприклад, Golf IV) інформаційна шина та шина "комфорт" були об'єднані фізично.

Цікавий факт: на Renault Logan другого покоління та його "соплатформенниках" також фізично дві шини, але друга з'єднує виключно мультимедійну систему з CAN-контролером, на другій одночасно присутні і ЕБУ двигуна, і контролер ABS, і подушки безпеки, і ЦЕКБС.

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

Але в кручений парі на обох проводах значення ЕРС перешкоди буде однаковим, так що різниця напруг залишиться незмінною. Тому, щоб знайти CAN-шину в автомобілі, шукайте кручену пару проводів - головне не переплутати її з проводкою датчиків ABS, які так само для захисту від перешкод прокладаються всередині машини кручений парою.

Діагностичний роз'єм CAN-шини не стали вигадувати заново: дроти вивели на вільні піни вже стандартизованою в колодки, в ній CAN-шина знаходиться на контактах 6 (CAN-H) та 14 (CAN-L).

Оскільки CAN-шин на автомобілі може бути кілька, часто практикується використання кожної різних фізичних рівнів сигналів. Знову для прикладу звернемося до документації Volkswagen. Так виглядає передача даних у моторній шині:

Коли на шині не передаються дані або передається рецесивний біт, на обох проводах кручений пари вольтметр покаже по 2,5 відносно "маси" (різниця сигналів дорівнює нулю). У момент передачі домінантного біта на дроті CAN-High напруга піднімається до 3,5, тоді як на CAN-Low опускається до півтора. Різниця в 2 вольти і означає «одиницю».

На шині "Комфорт" все виглядає інакше:

Тут "нуль" - це, навпаки, 5 вольт різниці, причому напруга на дроті Low вище, ніж на дроті High. «Одиниця» ж - це зміна різниці напруги до 2,2 В.

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

"Розшифрування" CAN-шини автомобіля також ведеться спеціалізованим приладом - аналізатором. Він дозволяє виводити пакети даних із шини у тому вигляді, як вони передаються.

Самі розумієте, що діагностика шини CAN на «аматорському» рівні без відповідного обладнання та знань не має сенсу та й банально неможлива. Максимум, що можна зробити «підручними» засобами, щоб перевірити каншину – це виміряти напругу та опір на проводах, порівнявши їх з еталонними для конкретного автомобіля та конкретної шини. Це важливо – ми вище навмисно навели приклад того, що навіть на одному автомобілі між шинами може бути серйозна різниця.

Несправності

Хоча інтерфейс CAN та добре захищений від перешкод, електричні несправності стали для нього серйозною проблемою. Об'єднання блоків у єдину мережу зробило її вразливою. КАН-інтерфейс на автомобілях став справжнім кошмаром малокваліфікованих автоелектриків вже за однією своєю особливістю: сильні стрибки напруги (наприклад, зимовий) здатні не тільки «повісити» помилку CAN-шини, що виявляється, але й заповнити пам'ять контролерів спорадичними помилками, випадкового характеру.

У результаті на панелі приладів спалахує ціла «гірлянда» індикаторів. І, поки новачок в шоці чухатиме голову: «та що ж це таке?», грамотний діагност насамперед поставить нормальний акумулятор.

Чисто електричні проблеми - це обриви проводів шини, їх замикання на масу або плюс. Принцип диференціальної передачі при обриві будь-якого з дротів або «неправильному» сигналі на ньому стає нереалізованим. Найстрашніше замикання дроту, оскільки воно «паралізує» всю шину.

Уявіть собі просту моторну шину у вигляді дроту, на якому сидять в ряд кілька блоків - контролер двигуна, контролер АБС, приладова панель і діагностичний роз'єм. Обрив у роз'єму автомобілю не страшний – всі блоки продовжать передавати інформацію один одному в штатному режимі, неможливою буде лише діагностика. Якщо обірвати провід між контролером АБС та панеллю, ми зможемо побачити сканером на шині тільки її, ні швидкість, ні оберти двигуна вона не показуватиме.

А ось при обриві між ЕБУ двигуна та АБС машина, швидше за все, вже не заведеться: блок, не «бачачи» потрібний йому контролер (інформація про швидкість враховується при розрахунку часу упорскування та кута випередження запалення), піде в аварійний режим.

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

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

Шина CAN – Вступ

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

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

Протокол CAN

Протокол CAN описаний у стандарті ISO 11898-1 і може бути коротко охарактеризований таким чином:

Фізичний рівень використовує диференціальну передачу даних по кручений парі;

Для керування доступом до шини використовується неруйнівний bit-wise дозвіл конфліктів;

Повідомлення мають малі розміри (здебільшого 8 байт даних) та захищені контрольною сумою;

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

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

Протоколи вищих рівнів

Сам по собі протокол CAN визначає лише, як малі пакети даних можна безпечно перемістити з точки A до точки B за допомогою комунікаційного середовища. Він, як і слід очікувати, нічого не говорить про те, як керувати потоком; передавати велику кількість даних, ніж міститься в 8-байтне повідомлення; ні про адреси вузлів; встановлення з'єднання тощо. Ці пункти визначаються протоколом вищого рівня (Higher Layer Protocol, HLP). Термін HLP походить з моделі OSI та її семи рівнів.

Протоколи вищого рівня використовуються для:

Стандартизація процедури запуску, включаючи вибір швидкості передачі даних;

Розподіл адрес серед взаємодіючих вузлів або типів повідомлень;

Визначення розмітки повідомлень;
забезпечення порядку обробки помилок лише на рівні системи.

Користувальницькі групи тощо.

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

Продукти CAN

На низькому рівні принципово розрізняють два типи продуктів CAN, доступних на ринку – мікросхеми CAN і інструменти розробки CAN. На вищому рівні – два інші продукти: модулі CAN та інструменти проектування CAN. Широкий спектр цих продуктів доступний на відкритому ринку.

Патенти в галузі CAN

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

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

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

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

Повідомлення CAN

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

Адресація повідомлень CAN

CAN використовує відносно короткі повідомлення – максимальна довжина інформаційного поля становить 94 біти. У повідомленнях відсутня явна адреса, їх можна назвати контентно-адресованими: вміст повідомлення імпліцитно (неявно) визначає адресата.

Типи повідомлень

Існує 4 типи повідомлень (або кадрів), що передаються по шині CAN:

кадр даних (Data Frame);

Віддалений кадр (Remote Frame);

кадр помилки (Error Frame);

Кадр навантаження (Overload Frame).

Кадр даних

Коротко: "Усім привіт, є дані з маркуванням X, сподіваюся вам сподобаються!"
Кадр даних – найпоширеніший тип повідомлення. Він містить у собі такі основні частини (деякі деталі не розглядаються для стислості):

Поле арбітражу (Arbitration Field), яке визначає черговість повідомлення в тому випадку, коли за шину борються два або більше вузлів. Поле арбітражу містить:

У випадку CAN 2.0A, 11-бітний ідентифікатор і один біт, біт RTR який є визначальним для кадрів даних.

У випадку CAN 2.0B, 29-бітний ідентифікатор (який також містить два рецесивні біти: SRR та IDE) та біт RTR.

Поле даних (Data Field), що містить від 0 до 8 байт даних.

Поле CRC (CRC Field), що містить 15-бітну контрольну суму, пораховану більшості частин повідомлення. Ця контрольна сума використовується виявлення помилок.

Слот розпізнавання (Acknowledgement Slot). Кожен контролер CAN, здатний коректно отримати повідомлення, посилає біт розпізнавання (Acknowledgement bit) наприкінці кожного повідомлення. Приймач перевіряє наявність біта розпізнавання і, якщо такий не виявляється, надсилає повідомлення повторно.

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

Примітка 2: Ідентифікатор у полі арбітражу, незважаючи на назву, необов'язково ідентифікує вміст повідомлення.

Кадр даних CAN 2.0B (стандартний CAN).

Кадр даних CAN 2.0B ("розширений CAN").

Віддалений кадр

Коротко: «Усім привіт, хтось може зробити дані з маркуванням X?»
Віддалений кадр дуже схожий на кадр даних, але з двома важливими відмінностями:

Він явно позначений як віддалений кадр (біт RTR у полі арбітражу є рецесивним), і

Відсутнє поле даних.

Основним завданням віддаленого кадру є запит на надсилання належного кадру даних. Якщо, скажімо, вузол A пересилає віддалений кадр з параметром поля арбітражу рівним 234, то вузол B, якщо він належним чином ініціалізований, повинен надіслати у відповідь кадр даних з параметром поля арбітражу також рівним 234.

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

Є один прийом, пов'язаний з віддаленим кадром: код довжини даних (Data Length Code) повинен бути встановлений довжині очікуваного повідомлення у відповідь. Інакше вирішення конфліктів не працюватиме.

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

Кадр помилки (Error Frame)

Коротко (всі разом, голосно): «О, ДОРОГОЮ, ДАВАЙ СПРОБУЄМО ЩЕ РОЗОК»
Кадр помилки (Error Frame) – це спеціальне повідомлення, яке порушує правила формування кадрів повідомлення CAN. Він посилається, коли вузол виявляє збій і допомагає іншим вузлам виявити збій – і вони теж надсилатимуть кадри помилок. Передавач автоматично спробує надіслати повідомлення повторно. Існує продумана схема лічильників помилок, що гарантує, що вузол не зможе порушити передачу даних по шині шляхом відсилання кадрів помилки, що повторюється.

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

Кадр навантаження (Overload Frame)

Коротко: Я дуже зайнятий 82526 маленький, не могли б ви почекати хвилиночку?
Кадр навантаження згадується тут лише повноти картини. За форматом він дуже схожий на кадр помилки та передається зайнятим вузлом. Кадр навантаження використовується нечасто, т.к. сучасні контролери CAN досить продуктивні, щоб не використовувати. Фактично, єдиний контролер, який генеруватиме кадри навантаження – це застарілий 82526.

Стандартний та розширений CAN

Спочатку стандарт CAN встановив довжину ідентифікатора в полі арбітражу, що дорівнює 11 бітам. Пізніше, на вимогу покупців, стандарт було розширено. Новий формат часто називають розширеним CAN (Extended CAN), він дозволяє використовувати щонайменше 29 біт в ідентифікаторі. Для розрізнення двох типів кадрів використовується зарезервований біт полі управління Control Field.

Формально стандарти називаються так –

2.0A – лише з 11-бітними ідентифікаторами;
2.0B – розширена версія з 29-бітними або 11-бітовими ідентифікаторами (їх можна змішувати). Вузол 2.0B може бути

2.0B active (активним), тобто. здатним передавати та отримувати розширені кадри, або

2.0B passive (пасивним), тобто. він мовчки скидатиме отримані розширені кадри (але, дивіться нижче).

1.x - відноситься до оргінальної специфікації та її ревізій.

В даний час нові контролери CAN зазвичай належать до типу 2.0B. Контролер типу 1.x або 2.0A збентежиться, отримавши повідомлення з 29 бітами арбітражу. Контролер 2.0B пасивного типу прийме їх, упізнає, якщо вони вірні і потім скине; a контролер 2.0B активного типу зможе і передавати, і отримувати повідомлення.

Контролери 2.0B і 2.0A (як і 1.x) сумісні. Можна використовувати їх усі на одній шині доти, доки контролери 2.0B утримуватимуться від розсилки розширених кадрів.

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

Основний CAN (Basic CAN) та повний CAN (Full CAN)

Терміни Basic CAN і Full CAN беруть початок у дитинстві CAN. Колись існував CAN-контролер Intel 82526, що надавав програмісту інтерфейс у стилі DPRAM. Потім з'явився Philips з моделлю 82C200, в якому застосовувалася FIFO-орієнтована модель програмування та обмежені можливості фільтрації. Для позначення різницю між двома моделями програмування, люди почали називати спосіб Intel – Full CAN, а спосіб Philips – Basic CAN. Сьогодні більшість контролерів CAN підтримують обидві моделі програмування, тому немає сенсу у використанні термінів Full CAN і Basic CAN – фактично, ці терміни можуть викликати плутанину і варто утриматися від їх вживання.

Насправді контролер Full CAN може взаємодіяти з контролером Basic CAN і навпаки. Проблеми із сумісністю відсутні.

Вирішення конфліктів на шині та пріоритет повідомлення

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

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

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

Оскільки CAN-шина є шиною з приєднанням пристроїв на кшталт «монтажне І» (wired-AND) і домінантний біт (Dominant bit) є логічним 0, отже повідомлення з найнижчим у чисельному вираженні полем арбітражу виграє у вирішенні конфлікту.

Питання: Що станеться у випадку, якщо єдиний вузол шини спробує надіслати повідомлення?

Відповідь: Вузол, зрозуміло, виграє у вирішенні конфлікту та успішно проведе передачу повідомлення. Але коли настане час розпізнавання ... жоден вузол не відправить домінантний біт області розпізнавання, тому передавач визначить помилку розпізнавання, надішле прапор помилки, підвищить значення свого лічильника помилок передачі на 8 і почне повторну передачу. Цей цикл повториться 16 разів, потім передавач перейде у статус пасивної помилки. Відповідно до спеціального правила в алгоритмі обмеження помилок, значення лічильника помилок передачі більше не підвищуватиметься, якщо вузол має статус пасивної помилки і помилка є помилкою розпізнавання. Тому вузол здійснюватиме передачу вічно, до тих пір, поки хтось не розпізнає повідомлення.

Адресація та ідентифікація повідомлення

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

Фактично, у протоколі CAN немає поняття адреси повідомлення. Натомість вміст повідомлення визначається ідентифікатором, який знаходиться десь у повідомленні. Повідомлення CAN можна назвати «контентно-адресованими».

Певна адреса працює так: Це повідомлення для вузла X. Контентно-адресоване повідомлення можна описати так: "Це повідомлення містить дані з маркуванням X". Різниця між цими двома концепціями мала, але суттєва.

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

Стандарт не каже, що поле арбітражу неодмінно має використовуватися як ідентифікатор повідомлення. Проте це дуже поширений варіант використання.

Примітка про значення ідентифікатора

Ми говорили, що ідентифікатор доступні 11 (CAN 2.0A) або 29 (CAN 2.0B) біт. Це не зовсім правильно. Для сумісності з певним старим контролером CAN (вгадайте яким?), ідентифікатори не повинні мати 7 старших біт встановлених в логічну одиницю, тому 11-бітним ідентифікаторам доступні значення 0..2031, а користувачі 29-бітних ідентифікаторів можуть використовувати 632.

Зауважте, що решта контролерів CAN приймають «неправильні» ідентифікатори, у сучасних системах CAN ідентифікатори 2032..2047 можуть використовуватися без обмежень.

Фізичні рівні CAN

Шина CAN

Шина CAN використовує код без повернення до нуля (NRZ) із вставкою бітів. Існують два різні стани сигналу: домінантний (логічний 0) і рецесивний (логічний 1). Вони відповідають певним електричним рівням, що залежать від фізичного рівня (їх кілька). Модулі підключені до шини за схемою «монтажне І» (wired-AND): якщо хоча б один вузол переводить шину в домінантний стан, то вся шина знаходиться в цьому стані, незалежно від того, скільки вузлів передають рецесивний стан.

Різні фізичні рівні

Фізичний рівеньвизначає електричні рівні та схему передачі сигналів по шині, повний опір кабелю тощо.

Існує кілька різних версій фізичних рівнів: Найбільш поширеним є варіант, визначений стандартом CAN, частина ISO 11898-2, і є двопровідною збалансованою сигнальною схемою. Він також іноді називається high-speed CAN.

Інша частина того ж стандарту ISO 11898-3 описує іншу двопровідну збалансовану сигнальну схему для менш швидкісної шини. Вона стійка до збоїв, тому передача сигналів може продовжуватись навіть у тому випадку, коли один із проводів буде перерізаний, замкнутий на «землю» або в стані Vbat. Іноді така схема називається low-speed CAN.

SAE J2411 визначає однопровідний (плюс «земля», очевидно) фізичний рівень. Він використовується в основному в автомобілях, наприклад GM-LAN.

Існує кілька пропрієтарних фізичних рівнів.

У минулі часи, коли драйверів CAN не існувало, використовувалися модифікації RS485.

Різні фізичні рівні зазвичай не можуть взаємодіяти між собою. Деякі комбінації можуть працювати (або здаватиметься, що вони працюють) у добрих умовах. Наприклад, приймачі high-speed і low-speed можуть працювати на одній шині лише іноді.

Абсолютна більшість мікросхем приймачів CAN вироблено компанією Philips; до інших виробників входять Bosch, Infineon, Siliconix і Unitrode.

Найбільш поширений приймач 82C250, в якому реалізований фізичний рівень, що описується стандартом ISO 11898. Удосконалена версія - 82C251.

Поширений приймач для «low-speed CAN» - Philips TJA1054.

Максимальна швидкість передачі даних по шині

Максимальна швидкість передачі даних по шині CAN, відповідно до стандарту, дорівнює 1 Мбіт/с. Однак, деякі контролери CAN підтримують швидкості вище 1 Мбіт/с і можуть бути використані в спеціалізованих додатках.

Low-speed CAN (ISO 11898-3, див. вище) працює на швидкостях до 125 кбіт/с.

Однопровідна шина CAN у стандартному режимі може передавати дані зі швидкістю близько 50 кбіт/с, а у спеціальному високошвидкісному режимі, наприклад для програмування ЕБУ (ECU), близько 100 кбіт/с.

Мінімальна швидкість передачі даних по шині

Майте на увазі, що деякі приймачі не дозволять вам вибрати швидкість нижче певного значення. Наприклад, при використанні 82C250 або 82C251 ви можете без проблем встановити швидкість 10 кбіт/с, але якщо ви використовуєте TJA1050, то не зможете встановити швидкість нижче 50 кбіт/с. Звіряйтесь зі специфікацією.

Максимальна довжина кабелю

При швидкості передачі даних 1 Мбіт/с, максимальна довжина кабелю, що використовується, може становити близько 40 метрів. Це пов'язано з вимогою схеми вирішення конфліктів, згідно з яким фронт хвилі сигналу повинен мати можливість дійти до найдальшого вузла і повернутися назад перш ніж біт буде рахований. Іншими словами, довжина кабелю обмежена швидкістю світла. Пропозиції щодо збільшення швидкості світла розглядалися, але були відкинуті через міжгалактичні проблеми.

Інші максимальні довжини кабелю (приблизні значення):

100 метрів за 500 кбіт/с;

200 метрів за 250 кбіт/с;

500 метрів за 125 кбіт/с;
6 кілометрів за 10 кбіт/с.

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

Кінцеве переривання шини

Шина CAN стандарту ISO 11898 має закінчуватися термінатором. Це досягається шляхом встановлення резистора опором 120 Ом кожному кінці шини. Термінування служить двом цілям:

1. Забрати відображення сигналу на кінці шини.

2. Переконайтеся, що ви отримуєте коректні рівні постійного струму (DC).

Шина CAN стандарту ISO 11898 обов'язково має термінуватися незалежно від її швидкості. Я повторю: шина CAN стандарту ISO 11898 обов'язково повинна термінуватись незалежно від її швидкості. Для лабораторної роботи може вистачити одного термінатора. Якщо ваша шина CAN працює навіть за відсутності термінаторів – ви просто щасливчик.

Зауважте, що інші фізичні рівні, такі як low-speed CAN, однопровідна шина CAN та інші можуть вимагати, а можуть і не вимагати наявності кінцевого термінатора шини. Але ваша високошвидкісна шина CAN стандарту ISO 11898 завжди вимагатиме наявності хоча б одного термінатора.

Кабель

Стандарт ISO 11898 наказує, що хвильовий опір кабелю номінально повинен дорівнювати 120 Ом, проте допускається інтервал значень опору Ом.

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

ISO 11898 описує кручену пару, екрановану або неекрановану. Триває робота над стандартом однопровідного кабелю SAE J2411.

На даний момент практично кожен сучасний автомобіль укомплектовується бортовими комп'ютерами, EBD, електросклопідйомниками та багатьма іншими електронними приладами. Нині така техніка може керувати не лише механічними, а й пневматичними, а також гідравлічними системами машини. І навіть двигун не може обійтися без електроніки. У ньому встановлено спеціальний прилад – CAN-шина. Саме про нього йтиметься сьогодні мова.

Історія виникнення

Вперше поняття CAN-шина з'явилося у 80-х роках минулого століття. Тоді відома німецька компанія «БОШ» спільно з фірмою «Інтел» розробила новий цифровий пристрій для передачі даних, який називався

Що вона може?

Дана шина може з'єднати між собою всі датчики, блоки та контролери, що знаходяться в автомобілі. CAN може з'єднуватися з іммоблайзером, системою SRS, ESP, електронним блоком керування двигуном, коробкою передач та навіть подушками безпеки. Крім цього, шина контактує з датчиками підвіски та клімат-контролю. Поєднуються всі ці механізми в дуплексному режимі з до 1 Мбіт/с.

CAN-шина: опис та особливості приладу

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

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

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

Функціональність та швидкодія

Щоб підвищити швидкодію даного пристрою, виробники часто вкорочують довжину проводів. Якщо сумарна довжина шини становитиме менше 10 метрів, швидкість передачі зросте до 2 мегабіт за секунду. Зазвичай на такій швидкості механізм передає дані з 64 електронних датчиків та контролерів. Якщо до шини підключено більшу кількість пристроїв, створюється кілька ланцюгів для прийому та передачі інформації.