Опис шини CAN. CAN-шина в промислових мережах

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

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

Канальний та фізичний рівніCAN

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

Структура вузла мережіCAN

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

Рисунок 1 – Вузол мережі CAN

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




Рисунок 2 – Логічні рівні на CAN-шині

Шина CAN дозволяє передавати дані зі швидкістю 1 Мбіт/c при довжині кабелю не більше 40 м. У навчальній літературі написано, що при зниженні швидкості передачі до 10кбіт/с можна досягти довжини мережі 1.5км.

Пакет повідомленняCAN

Формат повідомлення CAN показаний малюнку 3.




Малюнок 3 – Пакет повідомлення CAN

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

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

Арбітраж на шиніCAN

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

Налаштування швидкості передачі даних по шиніCAN

Швидкість передачі даних CAN шині налаштовується за рахунок формування квантів часу, а не як у багатьох інших протоколах послідовної передачі даних за рахунок дільника швидкості. У більшості випадків використовуються швидкості 10Кбіт/c, 20Кбіт/c, 50Кбіт/c, 100Кбіт/c, 125Кбіт/c, 500Кбіт/c, 800Кбіт/c, 1MBaud та налаштування для цих швидкостей вже пораховані. На малюнку 4 зображено вікно вибору швидкості у програмі PcanView.



Рисунок 4 – Вибір швидкості передачі даних у програмі PcanView

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




Рисунок 5 – Час передачі одного біта

Перший сегмент завжди фіксований і дорівнює одному кванту. Далі йде два сегменти Tseg1 і Tseg2 і кількість квантів у кожному сегменті визначається користувачем і може бути від 8 до 25. Точка вибірки знаходиться між Tseg1 і Tseg2, тобто. наприкінці першого та на початку другого сегмента. Також користувач може визначити ширину стрибка синхронізації (Synchronization Jump Width - SJW) для підстроювання бітової швидкості приймаючого пристрою, який може бути в діапазоні 1 - 4 квантів часу.

Тепер наведемо формулу розрахунку швидкості (Приклад розрахунку швидкості для CAN контролера SJA1000):

BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))

BTR – швидкість передачі,

Pclk – частота роботи CAN контролера,

BRP – значення розподільника частоти генератора швидкості передачі

Tseg1 – перший сегмент

Tseg2 – Другий сегмент

Для перевірки візьмемо вже пораховану швидкість 125Кбіт/c та спробуємо отримати налаштування вручну. Pclk візьмемо 16 МГц.

BRP = 16МГц / (125K * (1 + Tseg1 + Tseg2))

Потім підбираємо інтервал передачі біта, що знаходиться в діапазоні від 8 до 25 квантів часу, так що вийшло б ціле значення BRP. У разі якщо взяти (1 + Tseg1 + Tseg2) = 16, то BRP дорівнюватиме 30.

SP = ((1 + Tseg1 + Tseg2) * 70)/100

Підставляємо значення і отримуємо 16*0.7 = 11.2, що відповідає співвідношенню Tseg1 = 10, Tseg2 = 5, тобто. 1 + 10 + 5 = 16. Далі дивимося якщо Tseg2> = 5, то SJW = 4, якщо Tseg2< 5, то SJW = (Tseg2 – 1). В нашем случае SJW = 4.

Для отримання швидкості 125Кбіт/c необхідно в параметрах вказати, BRP = 30, Tseg1 = 10, Tseg2 = 5, SJW = 4.

P.S. Конфігурація baud rate значно відрізняється між старими модулями USB-CANmodul (GW-001 та GW-002) з контролером SJA1000 та новими модулями sysWORXX з контролером AT91SAM7A3. У статті описує роботу з бортовим CAN автомобіля на швидкості 83кбіт/c наведено розрахунок швидкості для контролера AT91SAM7A3.


Приклад отримання та передачі даних поCAN-інтерфейсу

У прикладі будемо використовувати CAN-адаптер із програмою PcanView від SYSTEC і підключимося до салонного CAN автомобіля, що працює зі швидкістю 125Кбіт/с. Розглянутий нами автомобіль оснащений кріслами з електроприводом і тому досліджуємо дані крісел, що відповідають за положення, і постараємося змінити положення спинки підмінивши пакет за допомогою комп'ютера.

Для початку на схемі автомобіля знаходимо найзручніше розташований роз'єм з лініями CANH і CANL і підключаємо до нього наш адаптер. Якщо роз'єм і дроти знайти не вийшло, то можна підлізти до блоку керування крісла, знайти там два скручені між собою дроти і акуратно надрізавши дроти підключити адаптер. Якщо після підключення та налаштування адаптера повідомлення не надходять, то в першу чергу спробуйте поміняти між собою CANH CANL і перевірити чи увімкнено запалювання.
Далі запускаємо програму PcanView, у вікні налаштувань встановлюємо Baudrate = 125Кбіт/c і натискаємо ОК (рисунок 4). У наступному вікні встановлюємо Message filter = Standard, діапазон адрес від 000 до 7FF та натискаємо ОК (рисунок 6).



Рисунок 6 – Налаштування CAN фільтра

Якщо все зроблено правильно, ми побачимо повідомлення від крісел (рисунок 7), а при натисканні кнопки нахилу спинки на пульті управління ми побачимо ще одне повідомлення з адресою 1F4 йде від пульта до крісла (рисунок 8).



Малюнок 7 – CAN повідомлення від крісла з електроприводом


Рисунок 8 – CAN повідомлення від крісла з електроприводом та повідомлення від пульта керування до крісла

Тепер ми знаємо які повинні бути адреса, довжина та дані в CAN пакеті для імітації натискання кнопки зміни положення спинки. У вкладці Transmit натискаємо NEW і у вікні створюємо копію пакета 1F4, тобто. ID = 1F4, Length = 3, Data = 40 80 00. Period можна залишити 0 ms, тоді повідомлення будуть надсилатись за фактом натискання кнопки пробіл (рисунок 9).



Малюнок 9 – Створення CAN повідомлення

На малюнку 10 відображено поле Transmit головного вікна, що містить всі повідомлення, що відправляються в CAN і інформацію про них. При виділенні повідомлення та натисканні кнопки пробіл відбудеться відправка пакета в CAN мережу і крісло трохи зрушить у потрібному напрямку.



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

Підсумок

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

Мережевий інтерфейс CAN (Controller Area Network) було розроблено 1987г. (версія 1.0) фірмами BOSCH та INTEL для створення бортових мультипроцесорних систем реального часу. Остання специфікація інтерфейсу 2.0, розроблена фірмою BOSCH 1992 р., є доповненням попередньої версії. У міжнародній організації зі стандартизації зареєстровано ISO 11898 (для високошвидкісних додатків) та ISO 11519-2 (для низькошвидкісних додатків).

Принцип роботи

CAN є високоінтегрованим мережевим інтерфейсом передачі зі швидкістю до 1 Мбіт/сек. Пристрої в CAN-системі з'єднуються по шині, що складається з 3-х дротів (2 сигнальні та один загальний) (див. рис.).

Повідомлення даних, передані з будь-якого вузла по CAN-шині, можуть містити від 1 до 8 байт. Кожне повідомлення позначене ідентифікатором, який у мережі є унікальним (наприклад: "Нагрів до 240", "Відмова нагріву", "Бункер завантажений" тощо). При надсиланні інші вузли мережі отримують повідомлення і кожен з них перевіряє ідентифікатор. Якщо повідомлення має відношення до цього вузла, воно обробляється, інакше - ігнорується. CAN-контролер кожного пристрою може обробляти одночасно кілька ідентифікаторів (наприклад, контролери SIEMENS і INTEL можуть обробляти до 15). Таким чином, у кожному пристрої можна легко організувати кілька "віртуальних" каналів обміну інформацією з різними пристроями, включаючи канали одночасного отримання повідомлень.

Мал. 1. З'єднання пристроїв по CAN-шині

Ідентифікатори

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

Фізична шина

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

Висока надійність

Для забезпечення безвідмовної роботи у важких умовах за стандартом ISO11898 CAN-контролер забезпечує роботу в мережі у таких випадках:

  • будь-який з 3-х проводів у шині обірваний,
  • будь-який провід - закорочен на харчування,
  • будь-який провід - закорочені на загальний провід.

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

Мережева гнучкість та легкість розширення

Ухвалена в CAN-мережі схема передачі повідомлень забезпечує великі можливості при створенні, розширенні та модернізації систем.

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

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

Арбітраж CAN-шини

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

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

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

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

Мал. 2. З'єднання пристроїв по CAN-шині

Виявлення помилок

CAN містить 5-ступінчастий механізм виявлення помилок:

  • циклічний контроль надмірності (CRC),
  • контроль поля бітів, що передається,
  • контроль сигналу "Підтвердження Прийому",
  • поточний контроль логічного рівня бітів,
  • контроль наповнення бітів.

Циклічний контроль надмірності (CRC)

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

Поточний контроль логічного рівня бітів

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

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

Контроль поля бітів, що передається.

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

Контроль заповнення бітів

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

Контроль сигналу "Підтвердження прийому"

Кожне надіслане повідомлення підтверджується приймачем, і якщо цього не сталося, тоді встановлюється прапор помилки підтвердження прийому.

Прапор помилки

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

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

Формат CAN-повідомлення

Стандартний протокол CAN (версія 2.0A) підтримує формат повідомлення з 11-розрядними ідентифікаторами (Стандартне повідомлення).

Розширений CAN-протокол (версія 2.0B) підтримує 11-бітовий та 29-бітовий формати ідентифікаторів (Розширене повідомлення).

Більшість контролерів версії 2.0A передають та приймають лише повідомлення стандартного формату, хоча частина з них можуть лише отримувати повідомлення розширеного формату.

Контролери версії 2.0B можуть надсилати та отримувати повідомлення в обох форматах.

Відмінності форматів

У версії 2.0B поле бітів ідентифікатора складається із двох частин.

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

Для розрізнення форматів використовуються біти Identifier Extension (IDE) та Substitute Remote Request (SRR) у Полі Арбітражу.

Інтерфейс CAN був розроблений наприкінці 80-х років фірмою Bosch для зв'язку електронних пристроїв, які застосовуються в автомобілях.

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

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

На рис. наведено структуру CAN-мережі. Як контролер зазвичай використовується мікроконтролер, що має CAN-модуль, який має вихід передавача TxD послідовного коду і вхід приймача RxD коду. Трансивер перетворює логічні сигнали, тобто логічні 0 і 1, диференціальна напруга, що надходить на два дроти шини, позначені CAN_H і CAN_L.

Відповідно до стандарту лінія повинна мати хвильовий опір у межах 108-132 Ом. Для зменшення відбитків сигналів кожному кінці шини повинні бути підключені узгоджувальні резистори RС опором 120 Ом. Для підвищення надійності передачі і підвищення стійкості до перешкод іноді використовують третій провід – загальний, що позначається як GND. Напруга живлення UCC (або UDD) за стандартом дорівнює +5 В щодо GND.

Для абстрагування від фізичного середовища передачі специфікація CAN визначає два логічні стани (тобто логічні 0 і 1) як рецесивний (recessive) і домінантний (dominant). У цьому передбачається, що з передачі одним вузлом мережі рецесивного біта, іншим домінантного, прийнятий буде домінантний біт.

У рецесивному стані (тобто логічна 1 на вході TxD трансівера) диференційна напруга UDIFF = UCANH – UCANL менше мінімального порога (0,5 на вході приймача або 0,05 на виході передавача).

У домінантному стані (тобто логічний 0 на вході TxD трансівера) диференціальна напруга UDIFF більша за мінімальний поріг (0,9 В на вході приймача або 1,5 В на виході передавача).

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

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

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

1) кадр даних, що використовується для передачі даних;

2) кадр запиту даних, що використовується для дистанційного запиту даних від віддаленого вузла;

3) кадр помилки, коли виявляються помилки на шині;

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

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

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

    Поле арбітражу містить 11-бітний ідентифікатор ID та біт RTR – (запит передачі). Для кадру даних цей біт повинен мати домінантний рівень.

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

    Поле даних містить від нуля до восьми байтів даних.

    Поле контрольної суми включає контрольну суму повідомлення (15 біт) і біт-розділювач рецесивного рівня.

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

    Поле кінця кадру складається із семи бітів рецесивного рівня.

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

Багато мережевих протоколів описуються за допомогою семирівневої моделі взаємодії відкритих систем OSI ( Open System Interconnection), як показано на Мал. 1. Протокол CAN ( Controller Area Network – контролерна локальна мережа) визначає канальний рівень ( Data Link Layer) та частина фізичного рівня ( Physical Layer). Частина фізичного рівня, що залишилася, і всі інші вищележачі рівні не входять у специфікацію CAN і можуть або визначатися розробником системи, або реалізовуватися за допомогою існуючих високорівневих протоколів ( Higher Layer Protocols - HLPs) та фізичних рівнів.

Як зазначено вище, канальний рівень визначається специфікацією CAN. Підрівень управління логічним зв'язком ( Logical Link Control - LLC) забезпечує управління перевантаженням та повідомлення про неї, фільтрацію повідомлень та функції управління відновленням. Підрівень керування доступом до середовища ( Medium Access Control - MAC) виконує інкапсуляцію/декапсуляцію (розформування) даних, виявлення помилок та захист від них, бітстаффінг/дестафінг (бітове наповнення/видалення наповнюючого біта), функції перетворення у послідовну форму і назад.

Підрівні сполуки з фізичним середовищем ( Physical Medium Attachment - PMA) та середовище-залежного інтерфейсу ( Medium Dependent Interface - MDI) - дві частини фізичного рівня, які не визначені в CAN. Підрівень фізичної сигналізації ( Physical Signaling - PS), навпаки, визначено у специфікації CAN. Розробник може вибрати будь-який драйвер/приймач та середовище передачі, якщо вони відповідають вимогам PS-підрівня.

Міжнародна організація зі стандартизації ( International Standards Organization - ISO) визначила стандарт, який включає специфікацію CAN як фізичний рівень. Стандарт ISO-11898 був створений для високошвидкісного зв'язку в транспортних засобах, що використовує CAN. ISO-11898 визначає фізичний рівень для забезпечення сумісності між приймачами CAN.

Контролер CAN зазвичай реалізує всю специфікацію CAN апаратно, як показано на Мал. 1. PMA-підрівень не визначається CAN, однак він визначений в ISO-11898. Даний приклад застосування розглядає приймач CAN MCP2551 і те, наскільки він задовольняє вимогам специфікації ISO-11898.

Мал. 1. CAN та модель OSI

Короткий огляд ISO11898-2

ISO11898 – міжнародний стандарт для високошвидкісного зв'язку CAN, що застосовується у транспортних засобах. ISO-11898-2 визначає PMA та MDI рівні фізичного рівня. Загальне представлення вузлів та шини CAN, описане в ISO-11898, наведено на Мал. 3.

Рівні шини

CAN визначає два логічні стани: рецесивне ( recessive) та домінантне ( dominant). ISO-11898 визначає диференціальну напругу для представлення рецесивного та домінантного станів (або бітів), як показано на Мал. 2.

У рецесивному стані (тобто логічна "1" на вході TXD MCP2551) диференціальна напруга на CANH і CANL менша за мінімальний поріг (Рис. 4).

У домінантному стані (тобто логічний "0" на вході TXD MCP2551) диференціальна напруга на CANH і CANL більша за мінімальний поріг. Домінантний біт перекриває рецесивний біт на шині для досягнення поразрядного арбітражу, що неруйнує.

Мал. 2.Диференційна шина

Роз'єми та дроти

В ISO-11898-2 не визначені механічні дроти та роз'єми. Однак специфікація вимагає, щоб дроти та роз'єми відповідали електротехнічним вимогам.

Специфікація також потребує резисторів-термінаторів номіналом 120 Ом на кожному кінці шини. на Мал. 3показаний приклад шини CAN, що базується на ISO-11898.

Мал. 3.Шина CAN

Мал. 4.Номінальні рівні шини ISO-11898

Перешкодостійкість

Специфікація ISO11898-2 вимагає, щоб приймач, відповідний специфікації або сумісний з нею, відповідав ряду електротехнічних вимог. Деякі з цих вимог передбачені, щоб гарантувати, що приймач зможе витримати жорсткі електричні умови, таким чином захищаючи вузол CAN. Входи приймача повинні витримувати напругу від -3 до +32 В і короткочасний вплив напруги від -150 до +100 В. Таблиця 1показує основні електричні вимоги ISO11898-2 проти специфікацією MCP2551.

Таблиця 1.Порівняння специфікацій MCP2551 та ISO11898-2.

ПараметрISO-11898-4MCP2551Одиниця виміруКоментарі
мінімуммаксимуммінімуммаксимум
Постійна напруга на CANH та CANL-3 +32 -40 +40 УПеревищує ISO-11898
Короткочасний вплив напруги на CANH і CANL-150 +100 -250 +250 УПеревищує ISO-11898
Напруга синфазного сигналу шини-2.0 +7.0 -12 +12 УПеревищує ISO-11898
Вихідна напруга шини в рецесивному стані+2.0 +3.0 +2.0 +3.0 УВідповідає ISO-11898
Диференційна вихідна напруга рецесивного стану-500 +50 -500 +50 мВВідповідає ISO-11898
Внутрішній опір10 100 20 100 комуВідповідає ISO-11898
Вхідний опір5.0 50 5.0 50 комуВідповідає ISO-11898
Диференціальна вихідна напруга домінантного стану+1.5 +3.0 +1.5 +3.0 УВідповідає ISO-11898
Вихідна напруга домінантного стану на CANH+2.75 +4.50 +2.75 +4.50 УВідповідає ISO-11898
Вихідна напруга домінантного стану на CANL+0.50 +2.25 +0.50 +2.25 УВідповідає ISO-11898
Виявлення постійного домінанта (драйвер)Не вимагається1.25 - мс
Скидання при включенні живлення (POR) та виявлення короткочасного падіння напруги (BOD)Не вимагаєтьсяТак-

Довжина шини

ISO11898 визначає, що приймач повинен бути здатний керувати шиною довжиною 40 м на швидкості 1 Мбіт/с. Велика довжина шини досягається зменшення швидкості передачі даних. Найбільше обмеження на довжину шини накладає затримка розповсюдження приймача.

Затримка розповсюдження

Протокол CAN визначає рецесивний (логічний "1") та домінантний (логічний "0") стан для реалізації схеми порозрядного неруйнівного арбітражу. Саме на цю методологію арбітражу найбільше впливають затримки розповсюдження. Кожен вузол, залучений в арбітраж, повинен бути здатний здійснювати вибірку рівня кожного біта в межах одного й того часу передачі біта. Наприклад, якщо два вузли на протилежних кінцях шини почали передавати повідомлення в той самий час, вони повинні виконати арбітраж для захоплення керування шиною. Арбітраж буде ефективний, тільки якщо обидва вузли здатні зробити вибірку протягом одного й того часу передачі біта. на Мал. 5показано односторонню затримку поширення між двома вузлами. Надмірні затримки поширення (поза точкою вибірки) призведуть до помилкового арбітражу. Це означає, що довжина шини обмежена заданої швидкості передачі.

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

t PROP= 2·( t BUS + t CMP + t DRV).

Мал. 5.Одностороння затримка розповсюдження

MCP2551 - приймач CAN

Мікросхема MCP2551 - приймач CAN, який реалізує фізичний рівень, описаний у специфікації ISO-11898-2. Він підтримує швидкість передачі даних до 1 Мбіт/с і підходить для систем з напругою живлення 12 В і 24 В. MCP2551 забезпечує захист від короткого замикання до ±40 В та захист від короткочасної напруги до ±250 В.

Додатково, сумісний з ISO-11898-2, MCP2551 забезпечує скидання при включенні живлення ( power-on reset - POR) та захист від короткочасного падіння напруги ( brown-out protection), а також виявлення постійного домінанта ( permanent dominant detection), щоб гарантувати, що знеструмлений або несправний вузол не заважатиме роботі шини. Пристрій реалізує похиле регулювання посилення, що настроюється ( slope control) на висновках шини для зменшення випромінювання радіоперешкод ( RFI). на Мал. 6представлено блок-схему MCP2551.

Мал. 6.Блок-схема MCP2551

Основна робота MCP2551

Передача

Контролер протоколу CAN видає потік послідовних даних логічний вхід TXD MCP2551. Відповідний рецесивний чи домінантний стан видається на висновки CANH та CANL.

Прийом

MCP2551 приймає домінантний або рецесивний стан на ті ж висновки CANH і CANL, з яких здійснюється передача. Ці стани видаються як відповідних логічних рівнів на висновок RXD, щоб контролер протоколу CAN прийняв кадр CAN.

Рецесивний стан

Логічна "1" на вході TXD відключає драйвери від вводів CANH і CANL, і висновки "підтягуються" до номіналу 2.5 через резистори зсуву.

Домінантний стан

Логічний "0" на вході TXD включає драйвери висновків CANH та CANL. На CANH подається на ~1 В більше, ніж номінал рецесивного стану 2.5, таким чином збільшуючи напругу до ~3.5 В. На CANL подається на ~1 В менше, ніж номінал рецесивного стану, таким чином зменшуючи напругу до ~1.5 В.

Режими роботи

Існує три режими роботи, які керуються ззовні через виведення RS:
1. Високошвидкісний режим.
2. Режим похилого регулювання посилення.
3. Режим очікування ( Standby)

Високошвидкісний режим

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

Режим похилого регулювання посилення

Якщо потрібно зменшити електромагнітні перешкоди, що випромінюються драйвером, MCP2551 можна встановити в режим похилого регулювання посилення підключенням резистора (R EXT) від виведення RS на загальний мінус. У режимі похилого регулювання посилення швидкість наростання вихідної напруги на одному дроті (CANH або CANL) в основному пропорційна вихідному струму на виводі RS. Струм повинен бути в діапазоні від 10 мкА Зменшення швидкості наростання вихідної напруги призводить до зменшення швидкості передачі даних CAN при заданій довжині шини або скорочення довжини шини при заданій швидкості передачі даних.

Режим очікування

Режим очікування (або режим сну ( sleep)) встановлюється підключенням виведення RS до V DD . У сплячому режимі передавач вимкнено, а приймач працює у режимі зниженого енергоспоживання. Приймаючий висновок (RXD), як і раніше, функціонує, але на більш низькій швидкості.

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

Виявлення постійного домінанта на передавачі

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

Драйвери відключаються, якщо низький рівень присутній на TXD протягом більш ніж ~1.25 мс (мінімум) (див. мал. 7).

Драйвери залишаються вимкненими весь час, доки на TXD залишається низький рівень. Поява фронту, що наростає, на TXD скине логіку таймера і включить драйвер.

Мал. 7.Виявлення постійного домінанта на TXD

Скидання при включенні живлення та захист від короткочасного зниження живлення

MCP2551 має здатність скидання при включенні живлення ( Power-On Reset - POR) та виявлення короткочасного зниження напруги живлення ( Brown-Out Detection - BOD) (див. Мал. 8).

Скидання при включенні живлення (POR)

Коли на MCP2551 подається харчування, висновки CANH і CANL залишаються у високоімпедансному стані до тих пір, поки VDD не досягне високої напруги POR ( POR high voltage - VPORH). Крім того, якщо при включенні живлення на виводі TXD низький рівень, висновки CANH і CANL залишаються у високоімпедансному стані доти, доки на TXD не встановиться високий рівень. Після цього драйвер буде працювати нормально.

Виявлення короткочасного зниження напруги живлення (BOD)

BOD відбувається, коли VDD опускається нижче низької напруги скидання при включенні живлення ( power-on reset low voltage - VPORL). У цій точці висновки CANH і CANL входять у високоімпедансний стан і залишаються в ньому, доки не буде досягнуто напруги VPORH.

Мал. 8.Скидання при включенні живлення та виявлення короткочасного зниження напруги живлення

Зміщення землі

Оскільки не потрібно забезпечувати спільну землю між вузлами, можливо виникнення зсувів землі між ними. Тобто кожен вузол може спостерігати різні однопровідні напруги шини (напруги синфазного сигналу шини), водночас підтримуючи однакову диференціальну напругу. У той час як MCP2551 передбачений для управління зміщеннями землі від -12 до +12 В, специфікація ISO-11898 вимагає тільки від -2 до +7 В. На Мал. 9і 10 показано, як між вузлами виникають усунення землі.

Мал. 9показує передавальний вузол з позитивним зміщенням землі щодо вузла, що приймає. Приймач MCP2551 може працювати з CANH = +12 В. Максимальна вихідна напруга домінанта CAN (V O (CANH)) від передавального вузла становить 4.5 В. Віднімання цього максимуму дає зміщення землі (щодо приймаючого вузла) в 7.5 В для передавального вузла. У рецесивному стані кожен вузол намагається притягнути висновки CANH і CANL до основних рівнів (зазвичай 2.5 У). Однак результуюча напруга синфазного сигналу в рецесивному стані приймає значення 6.25 для приймаючого вузла і -1.25 для передаючого.

Мал. 10показує передавальний вузол з негативним зміщенням землі щодо вузла, що приймає. Приймач MCP2551 може працювати з CANL = -12 В. Мінімальна вихідна напруга домінанта CAN (V O (CANL)) з передавального вузла становить 0.5 В. Віднімання цього мінімуму дає фактичне зміщення землі щодо приймаючого вузла -12.5 В. Напруга синфазного сигналу для рецесивного стану становить -6.25 для приймаючого вузла і 6.25 для передаючого.

Оскільки всі вузли працюють як передавачі для частини кожного повідомлення (тобто кожен приймач повинен підтверджувати (ACK) правильні повідомлення протягом тимчасового інтервалу ACK), найбільше зміщення землі між вузлами становить 7.5 В, як показано на Мал. 9.

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

Мал. 9.Земля приймаючого вузла нижче землі, що передає

Мал. 10.Земля приймаючого вузла вище землі передає

Кінцеве навантаження шини

) використовується для мінімізації відображення сигналу у шині. ISO-11898 вимагає, щоб шина CAN мала номінальну характеристику вхідного повного опору лінії передачі 120 Ом. Тому звичайне значення резистора для кожного кінця шини становить 120 Ом. Є кілька різних способів реалізації кінцевого навантаження, що використовуються для збільшення електромагнітної сумісності ( EMC) (див. Мал. 11):

1. Стандартне кінцеве навантаження.
2. Розділене кінцеве навантаження.
3. Зміщене розділене кінцеве навантаження.

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

Стандартне кінцеве навантаження

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

Розділене кінцеве навантаження

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

Зміщене розділене кінцеве навантаження

Цей метод кінцевого навантаження використовується для підтримки напруги синфазного рецесивного сигналу на постійному значенні, таким чином збільшуючи EMC. Ця схема аналогічна схемі розділеного кінцевого навантаження, але додано додаткову схему дільника напруги для досягнення напруги V DD /2 між двома резисторами по 60 Ом (див. Мал. 11).

Примітка: Номінали резисторів усунення Мал. 11, так само як і резисторів розділеного кінцевого навантаження, повинні якнайменше відрізнятися один від одного.

Мал. 11.Схеми кінцевого навантаження

CAN (Controller Area Network - "область, охоплена мережею контролерів") є комплексом стандартів для побудови розподілених промислових мереж, який використовує послідовну передачу даних у реальному часі з дуже високим ступенем надійності та захищеності. Центральне місце у CAN займає протокол канального рівня моделі OSI. Спочатку CAN був розроблений для автомобільної промисловості, але в даний час швидко впроваджується в галузі промислової автоматизації. Це добре продуманий, сучасний та перспективний мережевий протокол. Початок розвитку CAN було покладено компанією Bosch в 1983 р., перші мікросхеми CAN контролерів були випущені фірмами Intel і Philips в 1987 році, в даний час контролери і трансівери CAN випускаються багатьма фірмами, зокрема Analog Devices, Inc., Atmel Corp. Cast, Dallas Semiconductor, Freescale, Infineon, Inicore Inc., Intel, Linear Technology, Maxim Integrated Products, Melexis, Microchip, Національний Semiconductor, NXP, OKI, Renesas Technology Corp., STMicroelectronics, Yamar Electronics, Texas Instruments.

У Росії інтерес до CAN за останні роки сильно зріс, проте контролерного обладнання для CAN у Росії вкрай мало, у десятки чи сотні разів менше, ніж для Modbus чи Profibus. Серед протоколів прикладного рівня для роботи з CAN найбільшого поширення в Росії набули CANopen та DeviceNet.

В даний час CAN підтримується 11 стандартами ISO, в тому числі [ISO - Diagnostics].

CAN охоплює два моделі OSI: фізичний і канальний (табл. 2.7). Стандарт не передбачає жодного протоколу прикладного (7-го) рівня моделі OSI. Тому для його втілення різні фірми розробили кілька таких протоколів: CANopen(організації CiA), SDS(Фірми Honeywell Micro Switch Division), CAN Kingdom(фірми Kvaser), DeviceNet(фірми Allen-Bradley, що став Європейським стандартом у 2002 р.) та ряд інших [Грибанов - Третьяков].

CAN характеризується такими основними властивостями:

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

До недоліків можна віднести порівняно високу вартість CAN-пристроїв, відсутність єдиного протоколу прикладного рівня, а також надмірну складність та заплутаність протоколів канального та прикладного рівня, викладених у стандартах організації CAN in Automation(CiA).

2.6.1. Фізичний рівень

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

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

Для електричного з'єднання пристроїв із CAN інтерфейсом стандарт передбачає два варіанти. Перший варіант полягає у застосуванні Т-подібних розгалужувачів, які складаються з трьох 9-штиркових роз'ємів D-sub, розташованих в одному корпусі, однойменні контакти яких з'єднані між собою. Розгалужувачі мають один роз'єм зі штирьками і два - з гніздами.

Другий варіант вимагає наявності в кожному пристрої CAN двох роз'ємів. Для включення пристрою в мережу кабель розрізають і на його кінцях встановлюють частини роз'ємів у відповідь. Пристрій включається буквально у розрив лінії передачі. Такий підхід дозволяє нарощувати кількість пристроїв та змінювати топологію мережі шляхом додавання у розрив кабелю нових пристроїв та кабелю з роз'ємами на кінцях. Один із роз'ємів має бути зі штирьками, другий - із гніздами. Підключення пристроїв до шин без роз'ємів не допускається. Узгоджуючий резистор повинен розташовуватись усередині роз'єму, який підключається до кінця кабелю. Для приєднання модулів до CAN-шини повинен використовуватися 9-штирковий роз'єм типу D-Sub. На модулі встановлюється роз'єм з гніздами, на кабелі, що з'єднує, - зі штирьками. Цоколівка рознімань показана в табл. 2.8.

Застосування роз'ємів із штирьками або гніздами визначається наступним правилом: при "гарячій" заміні модулів живлення повинне залишатися тільки на роз'ємах із гніздами; це дозволяє уникнути випадкового короткого замикання.

Зазначимо, що в заснованому на CAN стандарті CANopen передбачено набагато більшу різноманітність варіантів роз'ємів, у тому числі для плоского кабелю, RJ-10, RJ45, гвинтовий рознімний клемник, і ще близько десяти варіантів спеціальної конструкції [Cabling]. Допускається застосування інших роз'ємів.

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

Висновок на рис. 2.20 дозволяє встановити граничну напругу для входу та рівень синфазної напруги в лінії, коли вона знаходиться в рецесивному стані. Зазвичай = 2,5 У. Щоб встановити рівень синфазного напруги лінії, термінальні опору ділять на два по 60 Ом, з'єднують їх послідовно, а точці з'єднання підключають висновок . При симетричній формі імпульсів і щодо рецесивного стану зменшується рівень випромінюваних перешкод, оскільки збільшення струмів у кожному з проводів крученої пари при перемиканні логічних рівнів (див. рис. 2.21) виявляються рівними за величиною, але зворотними за знаком і тому компенсують один одного.

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

Мал. 2.21. Пояснення понять рецесивного та домінантного стану

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

Стандартом передбачена можливість підключення до мережі CAN будь-якої кількості пристроїв, проте практично воно обмежується здатністю навантаження передавачів (100...200) або затримкою в повторювачах.

У CAN-трансівери є генератор синхроімпульсів з частотою 16 МГц ±0,1%. Ширина одного біта програмно встановлюється величиною від 8 до 25 імпульсів синхрогенератора, зазвичай 8 імпульсів при швидкості передачі 1 Мбіт/с та 16 імпульсів при 20 кбіт/с. Синхронізація всіх вузлів мережі відбувається протягом першого такту синхронізації. Процедура обробки бітів у приймачі забезпечує програмовану затримку імпульсів синхронізації, необхідну для компенсації часу затримки проходження сигналу лінії зв'язку і зсуву фази внаслідок дрейфу частоти тактового генератора.

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

Для визначення логічного стану шини рівні сигналів, що приймаються, вимірюються на відстані 6-ти тактів синхрогенератора від переднього фронту імпульсу (біта) при швидкості 1 Мбіт/с і на відстані 14-ти тактів при швидкості 20 кбіт/с [CAN ] (для порівняння вкажемо, що у стандартних UART відліки беруться посередині імпульсу). Кількість відліків може бути 1 чи 3 (встановлюється програмно). CAN використовує синхронну передачу бітів. Це підвищує пропускну здатність каналу зв'язку, але потребує ускладненого процесу синхронізації.

Канальний рівень CAN, розглянутий вище, практично неможливо використовувати у SCADA-пакетах, оскільки він оперує бітами, кадрами, полями. Для написання прикладних програм потрібно використовувати поняття: змінна, масив, подія, клієнт, сервер, ім'я пристрою і т.п.

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

Вводиться поняття сервісного примітива , Який являє собою засіб (мовну конструкцію), за допомогою якого програмний додаток взаємодіє з прикладним рівнем. У CANopen існує чотири різних примітиви:

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