Chevrolet Niva, Контролер пару персонального комп’ютера з бортовою системою самодіагностики

Контролер сполучення персонального комп'ютера з бортовою системою самодіагностики OBD II за протоколами стандартів SAE (PWM та VPW) та ISO 9141-2

Стандарту VPW відповідають моделі виробництва компанії GM, стандарту PWM – Ford, стандарту ISO 9141-2 – азіатські та європейські моделі.

Цей пристрій являє собою мікроконтролер, виконаний за технологією КМОП (CMOS).

Контролер не призначений для підключення до бортових систем самодіагностики першого покоління (OBD I)!

Пристрій виконує роль найпростішого сканера і призначений для зчитування діагностичних кодів і даних системи OBD II (обороти двигуна, температура охолоджуючої рідини і повітря, що всмоктується, навантажувальні характеристики, витрата повітря, що надходить у двигун тощо) в рамках стандарту SAE J1979 через шину будь-якого виконання (PWM, VPW та ISO 9141-2).

Для підключення до комп'ютера достатньо 3-жильного дроту, підключення до діагностичного роз'єму здійснюється 6-жильним дротом. Напруга живлення подається на контролер через 16-контактний діагностичний роз'єм OBD. Принципова схема контролера представлена ​​нижче.

Схема контролера сполучення персонального комп'ютера з бортовою системою самодіагностики OBD II

Рекомендації щодо застосування

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

Кабель для підключення до порту комп'ютера також може бути неекранованим. Пристрій стабільно працює з кабелем довжиною до 9 м. При значно більшій довжині кабелю слід використовувати потужніший комунікатор RS 232.

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

Безкоштовне програмне забезпечення (броузер) для зчитування кодів та даних може бути завантажене з сайтів виробників, або сайту нашого видавництваhttp://arus.spb.ru, і призначене для використання під 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 повинен власними силами проводити обробку даних, що надходять з метою вичленування окремих кадрів шляхом аналізу заголовних байтів.

Відповіді більшість запитів складаються з єдиного кадру.

Модифікації, зроблені в інтерфейсних контролерах останніх версій

Усі інформаційні байти передаються у 16-річному форматі.

Символом XX є невизначений, зарезервований або невідомий байт.

Порядок встановлення з'єднання не змінився: