Схема контролера сполучення персонального комп'ютера з бортовою системою самодіагностики OBD II
Примітка. Стандарту VPW відповідають моделі виробництва компанії GM, стандарту PWM – Ford, стандарту ISO 9141-2 – азіатські та європейські моделі.
Загальні дані
Цей пристрій являє собою мікроконтролер, виконаний за технологією КМОП (CMOS).
Увага! Контролер не призначений для підключення до бортових систем самодіагностики першого покоління (OBD I)!
Пристрій виконує роль найпростішого сканера та призначений для зчитування діагностичних кодів та даних системи OBD II (обороти двигуна, температура охолоджуючої рідини і повітря, що всмоктується, навантажувальні характеристики, витрата надходить в двигун повітря і т.п.) в рамках стандарту SAE J1979 через шину будь-якого виконання (PWM, VPW та ISO 9141-2).
Основне призначення
Для підключення до комп'ютера достатньо 3-жильного дроту, підключення до діагностичного роз'єму здійснюється 6-жильним дротом. Напруга живлення подається на контролер через 16-контактний діагностичний роз'єм OBD. Принципова схема контролера представлена ілюстрації.
Рекомендації щодо застосування
Для підключення пристрою до автомобіля може бути використаний неекранований кабель завдовжки не більше 1.2 м, що має особливе значення при використанні протоколу PWM. У разі використання кабелю більшої довжини слід зменшити опір резисторів на вході пристрою (R8 та R9 або R15). При використанні екранованого кабелю екран слід вимкнути з метою зниження ємності.
Кабель для підключення до порту комп'ютера також може бути неекранованим. Пристрій стабільно працює з кабелем довжиною до 9 м. При значно більшій довжині кабелю слід використовувати потужніший комунікатор RS 232.
Топологія електричних з'єднань є довільною. При підвищеній вологості застосовуйте додаткові конденсатори, що шунтують.
Безкоштовне програмне забезпечення (броузер) для зчитування кодів та даних може бути завантажено з сайтів виробників та призначено для використання під DOS. Незначний розмір програмної програми у варіанті «під DOS» дозволяє вмістити його на завантажувальну дискету DOS і використовувати навіть комп'ютерах, оснащених несумісним з DOS програмним забезпеченням. Необов'язковою умовою є наявність у комп'ютері жорсткого диска.
Загальні принципи обміну даними
Примітка. Якщо неприємне не обумовлено особливо, всі числа наведені у 16-річному форматі (hex).
Десятковий формат позначається міткою dec.
Обмін даними йде по трипровідному послідовному з'єднанню, без застосування ініціалізаційного обміну службовими повідомленнями (handshaking). Пристрій прослуховує канал на наявність повідомлень, виконує команди, що приймаються, і передає результати на персональний комп'ютер (PC), після чого негайно повертається до режиму прослуховування. Вхідні в контролер і вихідні з нього дані організовані у вигляді ланцюжка байтів, що послідовно йдуть один за одним, перший з яких є контрольним. Зазвичай контрольний байт є числом від 0 до 15 dec (або 0-F hex), що описує кількість наступних інформаційних байтів. Так, наприклад, 3-байтна команда виглядатиме так: 03 (контрольний байт), 1-й байт, 2-й байт, 3-й байт. Подібний формат використовується як для команд, що входять на опитування бортової системи самодіагностики, так і для вихідних повідомлень, що містять запитану інформацію. Слід зазначити, що в контрольному байті використовуються лише чотири молодші біти, - старші біти зарезервовані під деякі спеціальні команди і можуть бути використані PC при ініціалізації з'єднання з контролером та узгодження протоколу передачі даних, а також контролером для контролю помилок передачі. Зокрема, у разі помилки при передачі, контролер проводить установку старшого біта (MSB) контрольного байта на одиницю. При успішній передачі всі чотири старші біти встановлюються в нуль.
Примітка. Існують окремі винятки із правил використання контрольного байта.
Ініціалізація контролера та бортової системи самодіагностики
Для початку обміну даними PC повинен зробити встановлення з'єднання з контролером, потім ініціалізувати контролер і канал даних OBD II.
Встановлення з'єднання
Після під'єднання контролера до PC та діагностичного роз'єму OBD повинна бути зроблена його ініціалізація з метою запобігання «зависань», пов'язаних з шумами в послідовних лініях, якщо їх підключення було здійснено до включення живлення контролера. Одночасно проводиться найпростіша перевірка активності інтерфейсу. В першу чергу надсилається однобайтовий сигнал 20 (hex), що сприймається контролером як команда на встановлення з'єднання. У відповідь контролер замість контрольного надсилає єдиний байт FF hex (255 dec) та переходить у режим очікування прийому даних. Тепер ПК може переходити до ініціалізації каналу даних.
Примітка. Даний випадок є одним із небагатьох, коли контролер не використовує контрольний байт.
Ініціалізація
На цьому етапі проводиться ініціалізація протоколу, яким буде здійснюватися обмін даними, а разі протоколу ISO – ініціалізація бортової системи. Обмін даними проводиться за одним із трьох протоколів: VPW (General Motors), PWM (Ford) та ISO 9141-02 (азіатські/європейські виробники).
Примітка. Існує безліч винятків: наприклад, при опитуванні деяких моделей автомобілів Mazda може використовуватися фордовський протокол PWM. Отже, у разі проблем передачі слід насамперед спробувати скористатися будь-яким іншим протоколом. Вибір протоколу здійснюється передачею комбінації, що складається з контрольного байта 41 (16-річний.) і наступного за ним байта, що визначає тип протоколу: 0 = VPW, 1 = PWM, 2 = ISO 9141. Так, наприклад, за командою 41 (hex) 02 (hex) провадиться ініціалізація протоколу ISO 9141.
У відповідь контролер надсилає контрольний байт і байт стану. Установка MSB контрольного байта говорить про наявність проблем, при цьому наступний за ним байт стану міститиме відповідну інформацію. При успішній ініціалізації надсилається контрольний байт 01 (hex), що вказує на те, що далі слідує верифікаційний байт стану. У разі протоколів VPW і PWM верифікаційний байт є простою луною байта вибору протоколу (0 або 1, відповідно), при ініціалізації протоколу ISO 9141 це буде цифровий ключ, що повертається бортовим процесором OBD і визначальний, яка саме з двох версій протоколу, що незначно відрізняються одна від одної, буде використовуватися.
Примітка. Цифровий ключ має суто інформаційне призначення. Слід зазначити, що ініціалізація протоколів VPW і PWM відбувається значно швидше, оскільки потребує лише передачі відповідної інформації контролеру. На моделях, що відповідають стандарту ISO, ініціалізація займає близько 5 секунд, що витрачаються на обмін контролера інформацією з бортовим процесором, що виробляється зі швидкістю 5 бод. Слід звернути увагу читача, що на деяких моделях автомобілів сімейства ISO 9141 ініціалізація протоколу припиняється, якщо запит на видачу даних не буде переданий протягом 5-секундного інтервалу, - сказане означає, що PC повинен робити автоматичну видачу запитів кожні кілька секунд, навіть у холостому режимі.
Після встановлення з'єднання та ініціалізації протоколу починається штатний обмін даними, що складаються з запитів, що надходять від PC і видаються контролером відповідей.
Порядок обміну даними
Функціонування контролера при використанні протоколів сімейства ISO 9141-2 та SAE (VPW та PWM) відбувається за різними сценаріями.
Обмін протоколами SAE (VPW та PWM)
При обміні даними за даними протоколами відбувається буферизація лише одного кадру даних, що означає необхідність конкретизації підлягає захопленню чи поверненню кадру. В деяких (рідкісних) випадках бортовий процесор може передавати пакети, що складаються з більш ніж одного кадру. У такій ситуації запит має повторюватися доти, доки всі кадри пакета не будуть прийняті.
Запит завжди формується таким чином: [Контрольний байт], [Запит за стандартом SAE], [Номер кадру]. Як згадувалося вище, контрольний байт зазвичай є число, рівне повної кількості наступних його байтів. Запит оформляється відповідно до специфікацій SAE J1950 і J1979 і складається з заголовка (3 байти), послідовності інформаційних байтів та байта контролю помилки (CRC) . Зауважимо, що в той час як інформація на запит формується у суворій відповідності зі Специфікаціями SAE, споживачем контрольного байта та номера кадру є інтерфейсний чіп.
При успішному завершенні процедури повідомлення у відповідь завжди має такий формат: [Контрольний байт], [Відповідь за стандартом SAE]. Контрольний байт, як і раніше, визначає кількість наступних за ним інформаційних байтів. Відповідь відповідно до вимог стандарту SAE складається із заголовка (3 байти), ланцюжки інформаційних байтів та байта CRC.
При збої надсилається 2-байтне повідомлення у відповідь: [Контрольний байт], [Байт стану]. При цьому в контрольному байті проводиться установка MSB. Чотири молодших біта формують число 001, що свідчить про те, що за контрольним слідує єдиний байт, - байт стану. Ця ситуація може виникати досить часто, оскільки Специфікації допускають можливість невидачі бортовим процесором даних, а також передачу невірних даних у випадку, коли запит не відповідає стандарту, що підтримується виробниками автомобіля. Можлива також ситуація, коли дані, що запитуються, відсутні в оперативній пам'яті процесора в поточний момент часу. Коли чіп не отримує очікуваної відповіді, або отримує пошкоджені дані, проводиться установка MSB контрольного байта, а за контрольним видається байт стану.
При колізіях у шині інтерфейс виробляє єдиний байт 40 (hex), є контрольним байтом з обнуленим молодшим бітом. Подібна ситуація може виникати досить часто при завантаженні автомобільної шини повідомленнями вищого ніж діагностичні дані пріоритету, - обчислювальний пристрій повинен повторити вихідний запит.
Обмін протоколами ISO 9141-2
Стандарт ISO 9141-2 використовується більшістю азіатських та європейських виробників автомобільної техніки. Структура формованого PC запиту мало чим відрізняється від використовуваної в стандартах SAE з тією різницею, що чіп не потребує інформації про номер кадру і відповідна інформація бути присутньою в пакеті не повинна. Таким чином, запит завжди складається з контрольного байта і наступного за ним ланцюжка інформаційних байтів, що включають контрольну суму. Як повідомлення у відповідь чіп просто ретранслює сформовані бортовим процесором сигнали. Контрольний байт у повідомленні у відповідь відсутній, тому PC сприймає надходить інформацію безперервно до тих пір, поки ланцюжок не переривається паузою довжиною 55 мілісекунд, повідомляє про завершення інформаційного пакета. Таким чином, повідомлення у відповідь може складатися з одного або більше кадрів відповідно до вимог Специфікацій SAE J1979. Чіп не здійснює аналіз кадрів, не відкидає недіагностичні кадри і т.д. PC повинен власними силами проводити обробку даних, що надходять з метою вичленування окремих кадрів шляхом аналізу заголовних байтів.
Примітка. Відповіді більшість запитів складаються з єдиного кадру.
Модифікації, зроблені в інтерфейсних контролерах останніх версій
Нижче наведено основні відмінності процесу передачі даних протоколами SAE і ISO 9141, характерні для інтерфейсних контролерів останніх версій, а також порядок передачі даних протоколу ISO 14230:
- 1) Стандарт ISO 9141: Додано адресний байт;
- 2) Стандарт ISO 9141: Здійснюється повернення одного, а обох ключових байтів; (додатковий байт повертається також у режимах SAE, проте тут він не використовується).
- 3) Додано підтримку протоколу ISO 14230.
Примітка. Усі інформаційні байти передаються у 16-річному форматі.
Символом XX є невизначений, зарезервований або невідомий байт.
Встановлення з'єднання
Порядок встановлення з'єднання не змінився:
- Відправлення: 20
- Прийом: FF
Вибір протоколу
VPW:
- Відправлення: 41, 00
- Прийом: 02, 01, XX
PWM:
- Відправлення: 41, 01
- Прийом: 02, 01, XX
ISO 9141:
- Відправлення: 42, 02, adr де: adr - адресний байт (зазвичай 33 hex)
- Прийом: 02, К1, К2, де К1, К2 – ключові байти ISO
- Або: 82, XX, XX (помилка ініціалізації ISO 9141)
ISO 14230 (швидка ініціалізація):
- Відправлення: 46, 03, R1, R2, R3, R4, R5, де: R1 ÷ R5 - повідомлення про початок запиту ISO 14230 на встановлення з'єднання, зазвичай R1 ÷ R5 = С1, 33, F1, 81, 66
- Прийом: S1, S2, ………, де S1, S2, ……… - повідомлення про початок відповіді ISO 14230 на встановлення з'єднання
Примітка. Можуть послідовно передаватися більше одного ECU. Як відповідь можна використовувати негативний код відповіді.
Типова позитивна відповідь виглядає так: S1, S2, ……. = 83, F1, 10, С1, Е9, 8F, BD
ISO 14230 (повільна ініціалізація): Аналогічно ISO 9141
Зауваження та коментарі
Якщо планується використання контролера передачі даних лише з якомусь одному чи двом з протоколів, зайві компоненти може бути виключені. Наприклад, під час організації схеми під протокол VPW (GM) у дроті підключення контролера до автомобіля знадобляться лише три жили електропроводки (клеми 16, 5 та 2).
Якщо протокол PWM не використовується, можуть бути виключені елементи R4, R6, R7, R8, R9, R10, Т1, Т2 і D1.
При відмові від обміну протоколом ISO винятку підлягають елементи: R15, R16, R17, R18, R19, R21, Т4 і Т5.
Відмова від використання протоколу VPW дозволяє виключити такі елементи: R13, R14, R23, R24, D2, D3 та Т3.
Застосовано вугільно-плівкові резистори з 5-відсотковим допуском опору.
Зверніть увагу на відсутність кнопки аварійного перезавантаження (RESET), у разі потреби таке перезавантаження може бути здійснено шляхом від'єднання контролера від автомобільного роз'єму (перезавантаження інтерфейсного процесора відбудеться автоматично). Перезапуск програмного забезпечення на ПК призводить до нової ініціалізації інтерфейсу.