Перейти до вмісту
Майстерня: ремонт і досліди

Протоколи зв'язку в електроніці й автомобілі: UART, I²C, SPI, RS-485, D-Bus, CAN, LIN — огляд

Опубліковано 12.11.2026
Зміст статті 7
  1. Зведена таблиця
  2. Як вони різняться між собою
  3. Протоколи в межах плати й приладу
  4. Протоколи в автомобілі
  5. Як упізнати шину тестером
  6. Чим послухати
  7. Журнал змін статті

Огляд протоколів, якими спілкуються мікросхеми, плати й блоки — від двох мікросхем на одній платі до десятків блоків в автомобілі. Для кожного:

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

Окремо — шини побутової техніки (зокрема D-Bus у Bosch і Siemens) і автомобільні: CAN, LIN, K-Line, FlexRay, MOST, Ethernet і роз'єм OBD-II.

чернетка — огляд, доповнюємо

Зведена таблиця

ПротоколДроти (без землі)Швидкість, типовоВідстаньДе трапляється
UART2: TX і RX9600 – 115 200 біт/сдесятки смналагоджувальні виводи, модулі GPS, Bluetooth, GSM
RS-2322 і більшедо 115 200 біт/сдо ~15 мстарі ПК, ДБЖ, верстати, промислове обладнання
RS-4852: пара A і B9600 біт/с – 10 Мбіт/сдо ~1200 млічильники, промислова автоматика, Modbus
I²C2: SDA і SCL100 / 400 кбіт/с, 1 Мбіт/су межах платиEEPROM, датчики, годинники, дисплеї
SPI4: SCK, MOSI, MISO, CSодиниці – десятки МГцу межах платифлеш-пам'ять, АЦП, дисплеї, SD-картки
1-Wire1~16 кбіт/сдо десятків мдатчики температури DS18B20, ключі-таблетки
D-Bus (BSH)1 дріт даних + живлення9600 біт/су межах приладупосудомийки, пральні машини Bosch, Siemens
CAN2: пара CAN_H і CAN_L125 – 500 кбіт/с, до 1 Мбіт/сдесятки мавтомобілі, вантажівки, промислові контролери
CAN FD2: та сама парадані — до кількох Мбіт/сдесятки мновіші автомобілі
LIN1до 20 кбіт/сдо ~40 мсклопідйомники, дзеркала, датчики дощу в авто
K-Line110,4 кбіт/су межах автодіагностика старших автомобілів
FlexRay2 на канал (до 2 каналів)10 Мбіт/су межах автоходова й гальма в дорожчих авто
MOSTоптоволокно25 – 150 Мбіт/су межах автомультимедіа в старших авто преміум-класу
Automotive Ethernet1 пара100 Мбіт/с – 1 Гбіт/с~15 мкамери, мультимедіа, діагностика новіших авто

Цифри типові, а не граничні: кожен стандарт має варіанти, і швидкість завжди залежить від довжини дроту.

Як вони різняться між собою

Три питання майже повністю описують будь-яку шину:

  1. Один сигнал на дріт чи пара дротів. Несиметричні сигнали (UART, I²C, SPI, LIN) рахують напругу відносно спільної землі — це просто, але чутливо до завад, тож добре працює в межах плати чи приладу. Диференційні (RS-485, CAN, FlexRay, Ethernet) передають сигнал різницею напруг на парі скручених дротів: завада наводиться на обидва однаково й віднімається. Тому вони тягнуться на десятки й сотні метрів.
  2. Двоє чи багато. UART і RS-232 з'єднують рівно два пристрої. I²C, RS-485, CAN, LIN, D-Bus — шини: на одних дротах висить багато вузлів, і кожне повідомлення має адресу або ідентифікатор.
  3. Хто говорить. В I²C, SPI і LIN розмову завжди починає ведучий. У CAN говорити може будь-хто, а коли почали двоє одночасно, перемагає повідомлення з важливішим ідентифікатором — і без втрати даних. У FlexRay кожному вузлу заздалегідь виділено свій проміжок часу, тож час доставки завжди той самий.

Протоколи в межах плати й приладу

UART — послідовний порт

Найпростіший і найпоширеніший. Два сигнальні дроти — передача (TX) і прийом (RX), — з'єднуються навхрест: TX одного до RX другого. Окремого тактового сигналу немає, тому обидва боки мають заздалегідь домовитися про швидкість: 9600, 19 200, 115 200 біт/с. У спокої лінія тримає високий рівень — 3,3 чи 5 В.

На платах UART найчастіше трапляється як налагоджувальний вихід: три-чотири площадки поруч із підписами TX, RX, GND. Послухати — USB-перехідником на CH340, CP2102 чи FT232. ⚠ Рівень перехідника має збігатися з рівнем плати: 5 В на вході мікроконтролера на 3,3 В його може пошкодити.

RS-232 і RS-485

Це той самий UART, але з іншими рівнями напруги. RS-232 — старий COM-порт комп'ютера: ±3…±15 В, до приблизно 15 м. Перетворюється з UART мікросхемою на зразок MAX232 чи MAX3232. RS-485 — диференційна пара A і B: до приблизно 1200 м і десятків пристроїв на одній парі. Трапляється в лічильниках електроенергії, сонячних інверторах, промисловій автоматиці; найчастіше поверх нього працює протокол Modbus RTU. На кінцях довгої лінії ставлять резистори 120 Ом.

I²C

Два дроти: дані (SDA) і такт (SCL). Обидва підтягнуто резисторами до живлення, а пристрої лише притягують лінію до землі — тому на одних двох дротах уживаються десятки мікросхем. Кожна має свою адресу (зазвичай 7 біт). Швидкість — 100 або 400 кбіт/с, рідше 1 Мбіт/с. Типові мешканці: EEPROM на зразок 24C08, датчики температури й тиску, годинники реального часу, невеликі дисплеї.

Як упізнати тестером: дві лінії, кожна з'єднана резистором кілька кілоом (часто 4,7 кОм, маркування 472) з живленням. Саме так ми перевірили виводи EEPROM на платі посудомийки (перша частина).

SPI

Чотири дроти: такт (SCK), дані від ведучого (MOSI), дані до ведучого (MISO) і вибір пристрою (CS) — по одному на кожен пристрій. Адрес немає: з ким говорить ведучий, вирішує CS. Швидкість — від одиниць до десятків мегагерц, тому через SPI підключають флеш-пам'ять, швидкі АЦП, дисплеї, SD-картки. Мікросхеми флеш-пам'яті на 8 ніжках (25Q…) — майже завжди SPI.

1-Wire

Один дріт даних плюс земля; пристрій може навіть живитися від того самого дроту. Швидкість невисока, зате на один дріт можна повісити багато датчиків — у кожного свій заводський 64-бітний номер. Найвідоміший приклад — датчик температури DS18B20.

Шини побутової техніки: D-Bus у Bosch і Siemens

Великі виробники побутової техніки мають власні внутрішні шини; описані вони зазвичай не в документації, а в роботах ентузіастів. Найкраще розібрана — D-Bus концерну BSH (Bosch, Siemens, Neff, Gaggenau), за проєктом hn/bsh-home-appliances:

ЩоЯк
дротитри: земля, живлення вузлів, один дріт даних
хто на шиніплата керування, панель із кнопками, модулі Wi-Fi, проєктор часу на підлогу
обмінусі вузли по черзі передають на один дріт, як UART: 9600 біт/с, 8N1
повідомленнядовжина, адреса вузла, команда, дані, контрольна сума CRC16
підтвердженняна адресне повідомлення отримувач одразу відповідає одним байтом

⚠ Поруч із дротом даних (рівні 5 В) на тому самому роз\'ємі йде живлення вузлів: близько 13,5 В у посудомийках і 9 В у пральних машинах. Переплутаний контакт спалить перехідник на 3,3 В — спершу тестер.

По суті це UART, у якого передача й прийом зведені на один спільний дріт, плюс адреси й контрольна сума — тобто найпростіша шина на кілька вузлів. Як ми знайшли D-Bus у прошивці плати посудомийки — у третій частині статті про плату.

Не плутати з D-Bus у Linux — там так зветься обмін повідомленнями між програмами на одному комп'ютері.

Протоколи в автомобілі

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

CAN

Головна шина автомобіля з 1990-х. Диференційна пара CAN_H і CAN_L, зазвичай скручена. Повідомлення не має адреси отримувача — лише ідентифікатор того, що в ньому (11 або 29 біт), і до 8 байтів даних; кожен блок сам вирішує, які повідомлення йому цікаві. Що менший ідентифікатор, то важливіше повідомлення: при одночасному початку передачі воно перемагає без втрати даних.

ЩоЗначення
швидкістьу двигуні й ходовій — зазвичай 500 кбіт/с; у салоні — 100–125 кбіт/с
у спокоїCAN_H і CAN_L — обидва близько 2,5 В
при передачі «0»CAN_H ≈ 3,5 В, CAN_L ≈ 1,5 В
кінці шинипо резистору 120 Ом
на вимкненій машиніміж CAN_H і CAN_L тестер показує ≈ 60 Ом (два по 120 паралельно)

CAN FD — новіша версія: до 64 байтів у повідомленні, а дані передаються швидше, ніж заголовок, — до кількох мегабіт за секунду. Дроти ті самі.

LIN

Дешева однопровідна шина для простих вузлів: склопідйомників, дзеркал, датчиків дощу й світла, кнопок на кермі. Один ведучий блок опитує до 15 ведених; швидкість — до 20 кбіт/с. У спокої лінія тримає майже напругу акумулятора (~12 В). По суті це той самий UART, але з рівнями 12 В, тож ⚠ USB-перехідник UART напряму до LIN не під'єднувати — потрібна мікросхема-трансивер (TJA1020/TJA1021 тощо).

K-Line

Однопровідна діагностична лінія старших автомобілів (стандарти ISO 9141 і ISO 14230/KWP2000): 10,4 кбіт/с, рівні 12 В. У новіших авто діагностику перевели на CAN, але K-Line ще трапляється в машинах 2000-х і в мотоциклах.

FlexRay

Швидша й передбачуваніша за CAN шина для систем, де важливий гарантований час доставки: активна підвіска, гальма, кермо. До 10 Мбіт/с на канал, два канали для резерву, кожному блоку виділено свій проміжок часу. Трапляється в дорожчих авто, зокрема BMW й Audi.

MOST

Оптична шина-кільце для мультимедіа: звук, навігація, CD-чейнджер, підсилювач. Була поширена в преміальних авто 2000-х і 2010-х; тепер її витісняє Ethernet. Ознака на блоці — оптичний роз'єм із двома світловодами.

Automotive Ethernet

Звичайний Ethernet, але по одній скрученій парі (стандарти 100BASE-T1 і 1000BASE-T1) замість двох-чотирьох. Іде до камер, мультимедіа, систем допомоги водієві. Окремо від нього швидка діагностика й прошивка блоків у новіших машинах ідуть звичайним Ethernet (100BASE-TX) через роз'єм OBD — наприклад, у BMW F-серії.

Роз'єм OBD-II

Діагностичний роз'єм на 16 контактів під кермом. Обов'язковий у бензинових авто в ЄС з 2001 року, у дизельних — з 2004-го; у США — з 1996-го. Розкладка основних контактів однакова в усіх авто:

КонтактЩо
4земля кузова
5сигнальна земля
6CAN_H
14CAN_L
7K-Line
15L-Line (допоміжна лінія старих протоколів)
2, 10J1850 (старі американські авто)
16+12 В від акумулятора

Решту контактів виробник використовує на свій розсуд — для додаткових шин CAN, Ethernet чи сервісних ліній.

Як упізнати шину тестером

Перш ніж під'єднувати будь-що, варто з'ясувати, що за лінія перед вами. Усе нижче міряємо відносно землі, а опір — на вимкненому пристрої.

Що бачить тестерНайімовірніше
одна лінія, у спокої 3,3 або 5 В, під час обміну напруга «тремтить»TX у UART
дві лінії, кожна резистором кілька кОм до живленняI²C
пара, обидві лінії у спокої однаково близько 2,5 ВCAN
пара, у спокої A і B різні щонайменше на 0,2 ВRS-485
одна лінія близько 12 В у машині, до блоку дверей чи дзеркалаLIN (або K-Line, якщо це діагностична лінія)
вихід ПК чи старого приладу у спокої від −5 до −12 В відносно земліRS-232

Опір між лініями пари — 60 або 120 Ом — буває і в CAN, і в RS-485: залежить від того, скільки кінцевих резисторів на ділянці. Тому розрізняє їх саме напруга.

⚠ Висока напруга на лінії — 12 В у LIN і K-Line, до ±15 В у RS-232, 9–13,5 В на живленні D-Bus поруч із даними — пошкодить вхід мікроконтролера чи перехідника на 3,3 В. Спершу тестер, потім під'єднання.

Чим послухати

ІнструментЩо вміє
USB-перехідник UART (CH340, CP2102, FT232)UART; з трансивером — RS-485, LIN, D-Bus
логічний аналізатор на 8 каналів (~200 грн)бачить будь-яку низьковольтну лінію; програма сама розбирає UART, I²C, SPI, CAN
адаптер USB-CAN або плата на MCP2515слухати й надсилати повідомлення CAN
діагностичний адаптер ELM327діагностика через OBD-II: CAN, K-Line, J1850
ESP32 з трансиверомпостійне прослуховування й власна логіка: CAN (вбудований контролер), LIN, D-Bus

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

Журнал змін статті

  • 2026-11-11 — перша чернетка: зведена таблиця, відмінності, протоколи плати й приладу, D-Bus, автомобільні шини, OBD-II, як упізнати тестером, чим послухати.