Show pending Diagnostic Trouble Codes, detected during current or last driving cycle (с англ. – «показать диагностические коды И запускаем функцию check_engine_errors_F(), которая возвращает количество найденных диагностических кодов неисправностей в ЭБУ автомобиля.


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
Студент


/

Игнатьев К.Е/




Факультет



ИВТ

Группа

ИП
-
212



Руководитель




/
Солодов П.С./













Федеральное агентство связи

Фе
де
ральное государственное бюджетное обр
азовательное

учреждение

высшего образования

«Сибирский государственный университет телекоммуникаций и информатики»

(СибГУТИ)


ВЫПУСКНАЯ
КВАЛИФИКАЦИОННАЯ РАБОТА
БАКАЛАВРА

Разработка программно
-
аппаратного комплекса для
контроля текущего состояния функциональных узлов
автомобиля


Пояснительная записка






Кафедра
РТС

Допустить к защите

зав. кафедрой:

доцент
,
к
.т.н.


___________
___________

Воробьева С.В.

Н
овосибирск 2016 г.


2


Содержание:


ВВЕДЕНИЕ

................................
................................
................................
................................
...........
3

1

ОБЗОР РЫНКА БОРТОВЫХ КОМПЬЮТЕРОВ
................................
................................
............
6

1.1

История развития бортовых систем

................................
................................
............................
6

1.2

Область применения
................................
................................
................................
...................
7

1.3

Сравнение характеристик различных моделей БК

................................
................................
......
9

1.3.1

Технические характеристики

................................
................................
................................

10

1.3.2

Функциональные возможности
................................
................................
.............................

10

2

ИНТЕРФЕЙС
OBD
-
II
................................
................................
................................
...................

13

2.1

История возникновения и развития

................................
................................
..........................

13

2.2

Протоколы стандарта
OBD
-
II

................................
................................
................................
...

14

2.3

Разъем
OBD
-
II

................................
................................
................................
..........................

17

2.4

Диагно
стические возможности
................................
................................
................................
.

19

3

РАЗРАБОТКА БОРТОВОГО КОМПЬЮТЕРА

................................
................................
............

26

3.1

Описание технических характеристик

................................
................................
......................

26

3.2

Элементная база для сборки бортового компьютера

................................
................................

27

3.2.1

ELM
327

................................
................................
................................
................................

27

3.2.2

Arduino

Uno

R
3

................................
................................
................................
.....................

31

3.2.3

HC
-
05
................................
................................
................................
................................
....

33

3.2.4

LCD
-
2004
................................
................................
................................
..............................

36

3.3

Схема подключения

................................
................................
................................
.................

38

3.4

Описание исходного кода

................................
................................
................................
.........

39

ЗАКЛЮЧЕНИЕ

................................
................................
................................
................................
...

46

СПИСОК ЛИТЕРАТУРЫ

................................
................................
................................
....................

47















3


В
ВЕДЕНИЕ


Бортовой компьютер



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


Существует два основных вида бортовых компьютеров: универсальные и
модельные. Первые работают практически со всеми автомобилями, вторые же
имеют ограничения и работают только

с определенными моделями автомобилей.

По своей сути БК является потомк
ом персонального компьютера

и схемы
их работы весьма схожи. Автомобиль состоит из большого количества систем
управления, датчиков и т.д., а бортовой компьютер включается в электрически
е
цепи этих датчиков, позволяя таким образом получить больше информации о
работе автомобиля. Таким образом, БК получает входную информацию от
внешних устройств (блока управления, датчиков).

Затем, полученную информацию бортовой компьютер обрабатывает. Тут
прослеживается полная аналогия с обычным ПК. В памяти автомобильного
бортового компьютера заложена программа, которая обрабатывает входные
данные. Например, показания, полученные с датчика расхода воздуха, можно
поделить на число 14,
7

(
в 14.7 весовых частя
х воздуха содержится ровно столько
кислорода, с
колько необходимо для сгорания одной

части топлива
) и получить
количество литров топлива, которое тратится моментально. Таким образом, если
иметь данные об остатке топлива в баке, можно спрогнозировать пробег
на нем,
ведь у нас есть посчитанный расход. Аналогично, можно подсчитать другие
параметры.

После этого, бортовой компьютер выводит информацию на дисплей,
совсем как ПК. Но, в отличие от персонального компьютера, БК имеет узкую
ориентированность, направленн
ость, в первую очередь, на расчет параметров
движения, диагностику и сигнализирование о неисправностях.

Ни один современный автомобиль уже не обходится без бортового
компьютера. Автопроизводители постоянно разрабатывают

всё

новые
и новые
электронные системы, контролирующие
правильность работы основных
функциональных узлов (двигатель внутреннего сгорания, коробка переключения
передач) и дополнительных
устройств
автомобиля.
Эти электронные системы
имеют огромное множество параметров, многие
из которых было бы полезно
знать автолюбителю, для того чтобы следить за состоянием своего автомобиля.
Для сбора и вывода этих параметров и предназначен бортовой компьютер в
машине.

В добавок к этому,
большинство
м
оделей

бортовых компьютеров

имеют
возможн
ость расчета

маршрутных параметров

(расход топлива, пройденное
расстояние, время в пути и т.д.)
. Если бортовой компьютер имеет информацию с
различных датчиков автомобиля, то почему бы не упростить жизнь
автовладельцу, выводя на дисплей информацию, например
, о том, что топлива
хватит только на ближайшие 100 километров. Функции маршрутного
4


компьютера есть в подавляющем большинстве заводских бортовых
компьютеров, то есть тех,
которые
устанавливаются
непосредственно
автопроизводителем
. В настоящее время даже в
самые бюджетные машины
устанавливаются БК. Чего не скажешь об автомобилях более ранних годов
выпуска. Примерно до 2005
-
ого года заводской стационарный БК в автомобиле
был редкостью. Именно для владельцев таких автомобилей и существует
решение в виде бортов
ого компьютера стороннего производителя.
Но зачастую,
хороший бортовой компьютер с широким функционалом

имеет очень высокую
стоимость.

Помимо стоимости, возникает проблема с этим самым широким
функционалом.
Если
автолюбителю
нужен

БК, имеющий функции маршр
утного
компьютера, диагностического сканера и аварийного сигнализатора, то чаще
всего в этом устро
йстве будут абсолютно не нужные ему
функции таксометра,
бортового самописца, возможность установить парктроники


весь этот набор
функций уже включен в стоимо
сть, а найти устройство с нужными функциями и
по доступной цене крайне сложно.

Более дешевые же модели могут, например, не иметь
режима диагностики
неисправностей

вообще. Смысл такого устройства не понятен


лучше и дешевле
будет приобрести обычный маршр
утный компьютер, ведь функционал у этих
устройств в таком случае будет примерно одинаков.

При выборе бортового компьютера также нужно обратить внимание на
следующий факт: есть ли
у данного конкретного прибора
возможность
внести
корректировки

в полученные данные с блока управления.
Ведь всегда есть
погрешность при производстве любых деталей

или при установленных
нестандартных деталях
:



Т
опливные форсунки

одного
конкретного
автомобиля имеют разную
производительность, следовательно, количество т
оплива,
проходящее через форсунки будет разным
;



Г
енераторы
тактовых импульсов
, определяющие

время открытия
форсунок

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




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

Таким образом
, информация
с
двух абсолютно одинаковых автомобилей
одной

модели
несколько различается
,

имеются погрешности датчиков,
некоторые параметры зависят

от установленных комплектующих и т.п.

Поэтому,
если
в
БК нет
функции
корректировки
показаний по расчету скоро
сти, расхода
5


топлива, пробегу

и т.д.
, то

есть вероятность, что информация,
получаемая с
бортового компьютера будет недостоверна.

Исходя из
всего
выше описанного
, я поставил цель


разработать
универсальный бортовой компьютер, обладающий подходящим под мои
нужды
функционалом.

Для того, чтобы разработать такое устройство, я поставил следующие
задачи:

1.

Проанализироват
ь существующие на рынке системы;

2.

Выбрать наиболее подходящую элементную

базу для разработки
устройства;

3.

Разрабо
тать алгоритмы обработки данных;

4.

Разработ
ать человеко
-
машинный интерфейс;

5.

Реализовать разработанные алгоритмы и интерфейс.

Предмет исследования


программно
-
аппаратный комплекс для контроля
текущего состояния функциональных узлов автомобиля
.

Объект исследования


бортовые автомобильные ко
мпьютеры
.


































6


1

О
БЗОР РЫНКА БОРТОВЫХ КОМПЬЮТЕРОВ

1.1

История развития бортовых систем


В последние годы оснащенность автомобилей электронными бортовыми
системами выросла во много раз. Из узконаправленного прибора бортовой
компьютер превратился в многофункциональную систему, которая отвечает за
многие процессы в автомобиле, и стал привычным для любого автомобилиста.

Как известно, толчком к применению компьютеров в любых отраслях
стало появление транзистора в 1947
-
ом году. Ег
о использование помогло очень
сильно уменьшить размеры компьютеров, вытеснив из всех устройств
электронные лампы. К концу 1960
-
х электронные системы стали достаточно
надежны, чтобы начать их использовать в автомобилях.

Первое применение электронной систем
ы в автопроизводстве:
специалисты компании
Volkswagen

в 1968
-
ом году разработали и установили
систему электронного впрыска топлива на модель 1600
E
. Система создавалась
для точного определения количества впрыскиваемого топлива в двигатель и
благодаря этой
системе был сокращен расход топлива, а также увеличилась
мощность двигателя. Через шесть лет, в 1974
-
ом году, автомобили стали
оснащать электронным бесконтактным зажиганием. Так электроника начала
проникать в автомобилестроение.

Уже в 1977
-
ом году первый б
ортовой компьютер в автомобиле
BMW

7
series

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

Спустя всего один год, специалисты
Daimler

и
Bosch

представили миру
антиблокировочную тормозную систему. Управлялась она электроник
ой


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

Производители стали разделять функции бортовых компьютеров, таким
образом, в современном авто есть как м
инимум три типа электронных систем.

1.

Управляющий компьютер
.

Впервые в мире, в 1981
-
ом году специалисты компании
BMW
,
совместно с
IBM
, разработали электронный блок управления.

Такой
блок в современном автомобиле принимает информацию с датчиков,
обрабатывает её, и отсылает команды на различные системы, такие как:
впрыск топлива, зажигание, управление фазами газораспределения,
управление температурой охлаждающей жидкости, анализ
выхл
опных
газов, и т.д;

2.

Сервисный компьютер
.

Этот тип электронной системы автомобиля предназначен для
выявления неисправностей, а также представляет из себя некий
бортовой самописец, подобие «черного ящика» в самолетах. Фиксирует
все возникающие неисправно
сти и показания датчиков автомобиля

в
момент возникновения поломки;

3.

Маршрутный компьютер
.

7


Данный тип компьютеров берет начало в автоспорте. Такие
системы впервые начали применяться в раллийных автомобилях в 1970
-
х годах. Серийно маршрутные компьютеры стали

устанавливаться в
1990
-
х годах. Основная информация, которую может предоставить
маршрутный компьютер: с
редняя скорость движения
, средний расход
топлива, время в пути, пройденный путь и т.д.
В современном
автопроизводстве маршрутный компьютер всё чаще
стали объединять с
системой спутниковой навигации.


Развитие бортовых систем происходит всё быстрее и быстрее,
современные бортовые компьютеры становятся сетевыми. Всё чаще можно
встретить серийные автомобили, компьютеры которых могут выйти в Интернет.
Это

делается не только для удобства пассажиров, но и для возможности удаленно
диагностировать автомобиль производителем. Если автомобиль попал в ДТП, то
его компьютер может самостоятельно передать информацию в службу спасения.
Но уже сейчас автопроизводители
утверждают, что следующий этап развития
бортовых систем


возможность полностью избежать ДТП. Автомобили будут
передавать друг другу информацию, предупреждать об опасных ситуациях. Всё
развитие стремится к полностью автономным автомобилям


они смогут
пере
двигаться без участия человека. Беспилотные автомобили уже
разрабатываются такими компаниями как
Google
,
Tesla

Motors

и др. Существуют
уже действующие прототипы. Элон Маск, основатель американской компании
Tesla

Motors
, заявил, что автомобили
Tesla

получат

«автопилот» к 2020
-
ому году.


1.2

Область применения


Есть несколько назначений работы бортового компьютера. Конечно не все
БК поддерживают именно этот функционал, дорогие модели могут иметь более
широкий спектр функций, дешевые же наоборот, могут не имет
ь некоторых
ролей даже из основного набора функций. Рассмотрим основные назначения
бортового компьютера:



Расчет маршрутных параметров
.

Такой режим работы есть практически у всех БК. Можно
сказать, что это основной режим работы бортового компьютера, ведь
БК

-

это по сути маршрутный компьютер с расширенным
функционалом.

Основные маршрутные параметры:

o

Остаток топлива в баке
;

o

Прогнозируемый пробег на остатке топлива
;

o

Пройденное расстояние за поездку
;


o

Средний расход топлива;

o

Расход топлива за поездку
;

o

Средняя
скорость движения
;

o

Время поездки
;

o

Стоимость поездки
.

8




Диагностика
.

Наличие такого режима означает, что бортовой компьютер
может работать в качестве диагностического тестера систем
автомобиля. Конечно, функционал профессионального
диагностического сканера в
разы превышает функционал бортового
компьютера в режиме диагностики, но как минимум наличие
диагностических кодов неисправностей работы основных систем
автомобиля БК может показать, и очень часто к кодам прилагается
ра
сшифровка данных неисправностей;



Опред
еление мгновенных
параметров.

Если БК может работать в режиме диагностики, то как правило
у такого устройства есть функция для вывода параметров работы
агрегатов автомобиля в режиме реального времени. Основные
мгновенные параметры, определяемые бортовыми к
омпьютерами:

o

Температура охлаждающей жидкости
;

o

Напряжение бортовой сети
;

o

Частота вращения коленчатого вала (количество оборотов
двигателя в минуту)
;

o

Положение дроссельной заслонки
;

o

Массовый расход воздуха
;

o

Угол опережения зажигания
;

o

Положение регулятора хо
лостого хода
;

o

Скорость транспортного средства
.



Аварийный сигнализатор
.

Наличие такого режима также нередко связано с наличием
режима диагностики. Бортовой компьютер может визуально или
звуком оповестить водителя о нештатной ситуации, например,
перегрев дви
гателя, падение/превышение напряжения в бортовой
электрической сети, п
ревышение порога скорости и т.д;



Дополнительные функции
.

Чаще всего это возможность установить сроки
техобслуживания автомобиля и дату окончания полиса
обязательного страхования.

Однако
, продвинутые устройства иногда позволяют провести
такие процедуры, как прогрев/прожиг свечей зажигания, изменение
порога включения вентилятора охлаждения. Но такие
автопроизводители очень редко делают возможность управления
такими функциями из вне.

Также
возможна поддержка голосового управления
устройством.

Таким образом, можно подвести итог, применение прибора под названием
бортовой компьютер заключает в себе следующие преимущества:

1.

Удобство эксплуатации транспортного средства.

9


Бортовой компьютер
подскажет водителю, например, о том,
что произошла ошибка в работе системы охлаждения двигателя,
нужно заехать на заправку в ближайшие 50 километров, нужно
заменить воздушный фильтр через 2300 километров, купить через
две недели новый полис ОСАГО и т.д.

Во
дителю больше не нужно следить за количества топлива в
баке и интервалами между техническим обслуживанием, такую

работу будет делать за него БК;


2.

Удобоисполнимый контроль за текущими параметрами систем
автомобиля.

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

3.

Диагностика электронных систем автомобиля на предмет ошибок.

Водитель может самостоятельно определить неисправность и
выполнить ремонт своими силами, сэкономив де
ньги на
профессиональной диагностике в автосервисе. Если произойдет
неисправность, вызвавшая включение аварийной лампы на панели
приборов автомобиля, то бортовой компьютер может с легкостью
определить в цепи какой системы произошла
ошибка и каков
характер
поломки.

Как видим, установка бортового компьютера существенно облегчает
жизнь любого автомобилиста, экономя его денежные средства и время.


1.3

Сравнение характеристик

различных моделей БК



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

В процессе анализа рынка

выяснилось, что сейчас подключение бортового
компьютера к любому автомобилю определяет наличие у такого устройства
интерфейса
OBD
-
II

для связи с электронным блоком управления автомобиля. То
есть, любой бортовой компьютер, использующий протоколы стандарта
OBD
-
II

может установить связь с практически любым современным автомобилем.

На основании выше написанного, к сравнению я выбрал только
универсальные бортовые компьютеры, имеющие интерфейс
OBD
-
II
. В
настоящее время

на российском рынке бортовых компьютеров мо
жно выделить
10


три основных конкурирующих фирмы
-
производителя:
Multitronics
,
Prestige

и
ОРИОН.


1
.3.1

Технические характеристики




Сравним т
ехнические характеристики
флагманских

моде
лей от
фирм
-
п
роизводителей
Multitronics
,
Prestige

и ОРИОН, данные характеристики
приведены в таблице 1.1.


Таблица 1
.1


Технические

характеристик
и

моделей бортовых компьютеров

Фирма
-
производитель

Prestige

Орион

Multitronics

Модель

V55
-
CAN Plus

БК
-
135

RC
-
700

Технические характеристики

Рабочее
напряжение
,
В

7
-
16

7,5
-
18

9
-
16

Потребляемый ток
,
мА

200

200

350

Рабочая те
мператур
а
,

C


о
т минус
25
до
плюс
60

от
минус
2
5

до
плюс
4
0

от
минус
20
до
плюс
45

Дискретность отображения информации

Скорость
, км/ч

1

1

1

Пробег
, км

0,1

0,1

0,1

Температура
,

C

1

1

1

Уровень топлива
, л

1

1

1

Расход топлива
, л

0,1

0,2

0,1

Обороты двигателя
, об/мин

10

10

от 1 до
40

Реализованные протоколы универсального разъема
OBD
-
II

SAE J1850 VPW

нет

да

да

SAE J1850 PWM

нет

да

нет

ISO 9141
-
2

да

да

да

ISO 14230

да

да

да

ISO 15765 CAN

да

да

да


Как видно из представленных данных, технические характеристики
практически не отличаются. Отличия есть в реализации протоколов для связи с
электронным блоком управления автомобиля. Но и тут отличие не столь важное,
так как
не реализованными чаще всего остаются устаревшие протоколы.


1.3.2

Функциональные

возможност
и


Теперь сравним функционал выбранных моделей бортовых компьютеров
(таблица 1.2).



11


Таблица 1.2


Ф
ункциональны
е

возможност
и

моделей
бортовых компьютеров

Фирма
-
производитель

Prestige

Орион

Multitronics

Модель

V55
-
CAN Plus

БК
-
135

RC
-
700

Маршрутный компьютер

Удельный расход топлива (л/час)

да

да

да

Расход топлива (л/100 км)

да

да

да

Пройденный путь (за поездку)

да

да

да

Пройденный путь (весь)

нет

да

да

Потраченное топливо (за поездку)

да

да

да

Потраченное топливо (за всё время)

нет

да

да

Полный средний расход топлива (весь
путь /
всё потраченное топлива)

нет

да

да

Мгновенные параметры

Температура охлаждающей жидкости

да

да

да

Обороты двигателя

да

да

да

Скорость автомобиля

да

да

да

Напряжение бортовой сети

да

да

да

Уровень топлива

да

да

да

Нагрузка на двигатель

да

да

да

Положение дроссельной заслонки

да

да

да

Давление во впускном коллекторе

да

да

да

Угол опережения зажигания

да

да

да

Температура воздуха на впуске

да

да

да

Напряжение на датчиках кислорода

да

да

да

Краткосрочная и долгосрочная
топливные корректировки

да

нет

да

Давление в топливной магистрали

да

нет

нет

Массовый расход воздуха

да

да

да

Температура масла

да

нет

нет

Диагностический сканер

Чтение данных стоп
-
кадра на момент
появления неисправности

да

нет

да

Чтение и сброс кодов
неисправностей


да

да

да

Расшифровка кодов неисправностей

да

нет

нет

Дополнительные возможности

Аварийный сигнализатор

да

да

да

Бортовой
самописец

да

да

нет

Возможность подключить парктроник

нет

нет

да


Из полученных данных видно, что различные модели бортовых
компьютеров поддерживают вывод большинства основных параметров работы
функциональных узлов автомобиля. Одни модели могут показать немного
12


больше параметров, другие


меньше, но в целом, функционал п
рактически
идентичен.

Отмечу также стоимость этих моделей:



Prestige V55
-
CAN Plus


5515
рублей

[2]
;



Орион БК
-
135


5500 рублей

[1]
;



Multitronics

RC
-
700



8830 рублей

[7]
.

Причем, самый дешевый универсальный бортовой компьютер,
работающий с
OBD
-
II
, который я
нашел
на российском рынке


это
Multitronics

UX
-
7
, его стоимость составляет 1580 рублей.

Такой бортовой компьютер
размером с обычную кнопку в автомобиле, представляет собой трех
значный
светодиодный дисплей

с двумя кнопками (рисунок 1.1).



Рисунок 1.1


Бортовой компьютер
Multitronics

UX
-
7



За эту стоимость, этот бортовой компьютер, естественно, имеет куда более
скудный функционал, чем у флагманских

моделей
. Во многом функциональные
возможности этой модели ограничены его размерами, ведь
даже простые
параметры не очень наглядно выводить на трехзначном дисплее.




















13


2

ИНТЕРФЕЙС

OBD
-
II



Итак, я выяснил, что в современных автомобилях на законодательном
уровне обеспечена установка интерфейса
OBD
-
II
. Теперь нужно понять


что
это
за интерфейс

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

диагностики.


2
.1

История возникновения и развития


OBD
-
II (англ.
On
-
Board

Diagnostics



«
бортовая диагностика
»
)


стандарт, предоставляющий

полный контроль за
агрегатами автомобиля, был
разработан в середине 1990
-
х годов
. Позволяет
в режиме реального вре
мени
производить наблюдения за показателями двигателя, коробки переключения
передач

(КПП)
,

частей кузова и дополнительных
устройств, а также
диагностировать

электрическую
сеть
автомобиля
. В
этом

стандарте
авто
производители применяют
несколько различных
пр
отоколов для

соединения с
блоками управления автомобиля.

Подавляющее большинство новых автомобилей оснащается
ECU

(англ.
Electronic

Control

Unit



«электронный блок управления»
), который собирает и
анализирует в режиме реального времени данные о работе дв
игателя и других
компонентов автомобиля. OBD
-
II автомобиля
-

это технология диагностики ЭБУ
с помощью компьютера или специального диагностического сканера.
Задание на
спецификацию было выдано в 1988 году, а первые авто, соответствующие
требованиям этой спе
цификации выпущены в 1994

году
.

Разрабатывался данный
стандарт организацией под названием

SAE (англ. Society
of

Automotive Engineers


«
С
ообщество
А
втомобильных
И
нженеров»)

и
был принят как обязательный
для всех легковых и легких коммерческих автомобилей

в

США
,

выпускающихся
с 1996 года. Изначально
она предназначалась
для контроля параметров
,

имеющих отношение к
экологии, что ограничивает

возможности для контроля и
ди
а
гностирования
всех

параметров современного автомобиля, но обусловило ее
широкое распространение в виду
той самой
«экологической
ориентированности».

В 90
-
х годах уже существовало и использовалось три протокола:

1.

SAE J1850 VPW
-

General Motors;

2.

SAE J
1850 PWM


Ford;

3.

ISO
9141
-
2


протокол, который использовало большинство
европейских и японских производителей автомобилей
.

В связи с этим, Сообщество Автомобильных Инженеров
включило

в
стандарт OBD
-
II все три протокола. Затем появился ISO 14230
-
4 протокол
(другое название KWP2000)
, который был ничем иным, как
усовершенствованной версией ISO 9141
-
2.

14


Также, еще в 80
-
х годах, фирмой
Bosch

был предложен

стандарт

CAN (англ.
Controlled Area Network


«
контролируемая сеть
»
)
.

Этот стандарт появился

в
автомобилях
в 2003 году
.

В
Евросоюз
е

принял
и

другой
вариант автодиагностики

под названием
EOBD, основывающийся на OBD
-
II. Этот стандарт стал
обязателен для всех
производителей Европы, начиная
с января 2001 года.
ЕС даже оштрафовал
Peugeot за несоответствие стандарту EOBD после 2001 года.

Т
а
кже
существует и
японский стандарт


JOBD.
Д
о OBD
-
II
японские
производители применяли версию

OBD
-
I
, которая начинала свой путь от 1989
года, но так и не получившая широкого распространения
.

Версию
OBD
-
III

сейчас дорабатывают инженеры
.
С 2008
-
ого года в
се
автопроизводители должны использовать только
CAN
-
протокол для связи
ЭБУ
с двигателем, КПП, дополнительными устройствами и контролерами различных
исполнительных механизмов и системы безопасности. То есть, все
производители автомобилей движутся к единому про
токолу, что позволит
облегчить проблему диагностики автомобилей разных марок.


2
.2

Протоколы стандарта
OBD
-
II


В настоящее время в
OBD
-
II

используются следующие протоколы:

1.

SAE J1850. Существует два типа этого протокола

[13]
:

o

SAE J1850 PWM (англ.
Pulse

Width

Modulation



«модуляция
ширины импульса»
)
.


Основные характеристики:



Скорость


41.6 Кб
айт

;



Используемые контакты разъема:

o

Контакт

2:
Шина

+ (Bus positive Line)
;

o

Контакт

10:
Шина

-

(Bus negative Line)
.



Д
лина

сообщения



12
байт
.




SAE

J
1850
VPW

(
англ.
Variable

Pulse

Width



«
переменная
широтно
-
импульсная модуляция
»
).


Основные характеристики:



Скорость


10
.4

/

41.6 Кб
айт

;



Используемые контакты разъема:

o

Контакт

2:
Шина

+ (Bus positive Line)
.



Длина
сообщения


12 байт.

Таблица 2.1 схематично
представляет собой формат
сообщений данных протоколов
;







15


Таблица 2.1


Формат сообщения протоколов
SAE

J
1850
PWM
/
VPW

SOF

Header

Field

Data

Field

CRC

EOF

(англ.
Start

Of

Frame



«начало
кадра»
)


Высокий
импульс на 200
мкс)

Поле
заголовка





1 байт

Поле
данных






(
англ
. Cyclic
Redundancy Check


«
циклический

избыточный

код
»



1
байт

(
англ
. End Of
Frame


«
конец

кадра
»
)


Высокий
импульс на 200
мкс)


2.

ISO 9141
-
2 и ISO 14230 (KWP2000)


идентичны на физическом
уровне, но
ISO

14230 более медленный.
Разработаны
ISO

(англ.
International

Organization

for

Standardization



«международная
организация по стандартизации»
)

[11].


o

ISO 9141
-
2
;

Основные характеристики:



С
корость


10 К
б
айт/с
;




Используемые контакты разъема:

o

Контакт 7:
K
-
Line
;

o

Контакт 15: L
-
Line
(опционально)
.



Длина сообщения
-

12 байт.

o

ISO 14230
.

Основные характеристики:



Скорость


10 Кбайт/с;



Используемые контакты разъема:

o

Контакт

7: K
-
Line
;

o

Контакт 15: L
-
Line (опционально)
.



Сообщение может содержать до 255 байт в поле данных.

K
-
Line

передает данные в обе стороны, т.е. двунаправленна.
L
-
Line

однонаправленна и используется только для установки
соединения ЭБУ и сканера, после этого
L
-
линия переходит в
состояние логи
ческой единицы. Процесс передачи данных по этим
п
ротоколам описан на рис
унке 2.1;



Рис
унок

2.1



Схема передачи данных в протоколах
ISO

9141
-
2,
ISO

14230


16


3.

ISO 15765 CAN

-

с
амый ск
оростной и совершенный протокол.
И
спользуется на большинстве современных авто и является
обязательным для новых автомобилей, проектируемых с
2008
-
ого
года.

Основные характеристики

[10]
:



Скорость


20 Кбит/
с


1 Мбит/с
;



Используемые контакты разъема:

o

Контакт 6:
CAN High
;

o

Контакт 14:
CAN

Low
.

Таблица 2.2 схематично представля
ет собой формат
сообщений данного протокола
.


Таблица 2.
2



Формат сообщения протокола
ISO

15765
CAN

[6]

SOF

(англ.
Start

Of

Frame



«начало кадра»)


Содержит 1 доминирующий бит

RTR

Бит запроса передачи.


Кадр данных = "0".

Кадр удаленного запроса = "1"

DLC

Код размера поля данных

Data Field

Поле данных


0


8 байт

CRC

(
англ
. Cyclic Redundancy Check


«
циклический

избыточный

код
»


15 бит

ACK

Поле подтверждения

EOF

(
англ
. End Of Frame


«
конец

кадра
»
)


Состоит из 7 рецессивных бит


Конечно же
, диагносту

абсолютно
не
н
ужно

знать, в чем
разница между
этими протоколами. Самое важное заключается в том, чтобы используемый
сканер имел функцию автоматического определения протокола,
поддерживаемого электронным блоком управления автомобиля. И, естественно,
сканер должен
корректно
обмениваться со
общениями
с
ЭБУ по этому
протоколу
.


Поэтому
,

логично предположить
, что
требования к диагностическому
оборудованию, работающему с
OBD
-
II
, также были унифицированы
. Базовые

требования

содержатся
в
спецификации
SAE

J1978.
Прибор, соответствующий
17


этому стан
дарту, называется

GST (
англ.
Generic

Scan

Tool


«универсальный
инструмент сканирования»
).
В роли

такого сканера
может
быть
любой
универсальный прибор, если
на нем присутствует соответствующее
программное

обеспечение

[15]
.


Главное достижение этого

стандарта


единая идеология

самодиагностики.
Появилось огромное множество различных датчиков, никак не связанных,
например, с обеспечением правильной работы двигателя или коробки передач.
Теперь н
а
электронный
блок управления возлагается
большое количест
во
специальных функций,

которые тщательно контролируют все системы
автомобиля
.




2
.3

Разъем
OBD
-
II


SAE был
а
предложена
спецификация
J
1962, которая определяет
назначение контактов р
азъема OBD
-
II и его конструкцию.

Стандарт
SAE

J
1962 предусматривает
стандартизированный аппаратный
интерфейс
, представляющий из себя

колодку DLC (
англ.

Diagnostic

Link

Connector


«
диагностический разъём
»
)
, с 16
-
ю контактами (2

ряда по
8

штырьков
) типа «розетка», в форме трапеции, для подключения
диагностического оборудован
ия к автомобилю

[14]
.

Расположение выводов разъема
OBD
-
II

представлено на рисунке 2.2.


Рисунок 2.2


Д
иагностический разъем

OBD
-
II


В отличи
и от других стандартов диагностических разъемов, которые

иногда встречается под капотом
автомобиля, разъём OBD
-
II

обязательно должен

быть в районе рулевого колеса

или в пределах
расстояния

в 0,6 метра
от

него.

Назначение контактов разъема
OBD
-
II

описано в таблице 2.3.











18


Таблица 2.
3



Назначение контактов разъема
OBD
-
II

Контакт

Предназначение

Контакт

Предназначение

1

На усмотрение
производителя

9

На усмотрение
производителя

2

Шина
+

(Bus positive Line)

10

Шина


(
Bus

negative

Line
)

3

На усмотрение
производителя

11

На усмотрение
производителя

4

Заземление кузова

12

На усмотрение
производителя

5

Сигнальное заземление

13

На усмотрение
производителя

6

Линия
CAN
-
High

высокоскоростной шины
CAN

Highspeed

14

Линия
CAN
-
Low

высокоскоростной шины
CAN

Highspeed

7

K
-
Line

15

L
-
Line

8

На усмотрение
производителя

16

Питание +12В от АКБ.


Иног
да разъем
OBD
-
II устанавливался

на автомобили, вообще не
поддерживающие ни один из OBD
-
II
-
протоколов. В таких случаях необходимо
использовать специализированный сканер для работы с
OEM
-
протоколами
(англ.
Original

Equipment

Manufacturer



«оригинальный производитель
оборудования»)
конкретной марки автомобиля.

Б
ывают
и
обратные ситуации
:

в

автомобиле установлен разъем,

к которому
подходят только специальный сканеры для данной марки авто, но поддержка
одного из диагностических протоколов стан
дарта
OBD
-
II

в этом разъеме также
реализована.

Чтобы определить, поддерживает ли автомобиль хоть какой
-
нибудь из
протоколов стандарта
OBD
-
II
, нужно найти этот разъем в автомобиле и
визуально определить
, какие
контакты
в нем при
сутствуют. Сопоставить
наличи
е контактов и используемый протокол можно по таблице 2.4.


Таблица 2.4.


Контакты разъема
OBD
-
II

и соответствие им протоколов
связи

Протокол

Контакт

№2

№6

№7

№10

№14

№15

ISO 9141
-
2

/
ISO 14230



+



опционально

SAE J1850 PWM

+



+



SAE J1850 VPW

+






ISO 15765 CAN


+



+



19


2
.4

Диагностические возможности


Какую информацию можно получить, подключив диагностическое
оборудование к автомобилю через разъем
OBD
-
II
? На этот вопрос отвечает
документ
SAE

J
1979. В нем определены диагностические режимы,
которые
должны поддерживать как блок управления, находящийся в авто, так и сканер
или другое диагностическое оборудование.

Автопроизводители не обязаны поддерживать все режимы работы, а также
они могут вводить свои режимы работы с порядковым номером, выше
09. Но,
п
равильное понимание назначения и всех особенностей режимов поможет
понять принцип работы системы
OBD
-
II
, поэтому рассмотрим
список
режим
ов
стандарта
SAE

J
1979

подробно

[16]
:

0
x
01.
Show

current

data

(с англ.


«показать текущие данные»)


считывани
е параметров системы управления в режиме реального времени.

В этом режиме выводятся текущие параметры
электронного
блока
управления. Эти параметры делятся на три группы:

1.

С
татусы мониторов
.

Монитор, в данном случае,
-

специальная подпрограмма, которая
отвечает
за запуск и выполнение различных

диагностических

тестов, а
статус


просто показатель состояния, который может выглядеть как
один из четырех вариантов: «поддерживается», «не поддерживае
тся»,
«завершен», «не завершен».

Такие показатели и отображаются на
дисплее сканера.

Есть
два типа мониторов
:

п
остоянные

и непостоянные.
Постоянные

мониторы

воспроизводятся
блоком постоянно, сразу
же
после пуска двигателя. Непостоянные
запускаются

только п
ри
определенных усло
виях и режимах работы двигателя.
Именно работа
подпрограмм

в блоке управления

во многом
влечет за собой
мощные
диагностические возможности
сканеров
нового поколения.
Однако,

наличие тех или иных мониторов сильно зависит от конкретной мо
дели
автомобиля, то есть некоторые мониторы
могут отсутствовать
;

2.

PIDs

(англ.
P
arameter
I
dentification
D
ata



«
параметр

идентификации

данных
»
)
.

Это основные параметры

работы датчиков и величины, которыми
характеризуются управляющие сигналы.

Стандарт SAE J2012
определяет список
этих
кодов, но производители вправе добавлять свои
специфические коды.

Итак, обязательный минимум показателей,
которые должен предоставить блок управления

[17]
:



Температура охлаждающей жидкости
;



Температура всасываемого

воздуха
;



Рас
ход воздуха и/или а
бсолютное давление во впускном
коллекторе
;



П
оложение дроссельной заслонки
;



Угол опережения зажигания
;

20




Расчётная нагрузка двигателя
;



Частота вращения коленчатого вала
;



Скорость автомобиля
;



Напряжение на датчиках

кислорода до катализатора
;



Напряжение
на
датчик
ах
кислорода после катализатора
;



Показатели

топливной коррекции
;



Показатели

топливной адаптации
;



Статусы
контур
ов
лямбда
.

Конечно, если посмотреть сколько параметров на самом деле знает
блок управления, то да
нный список показателей в стандарте
OBD
-
II

не
впечатляет. Такое м
алое количество параметров
реального времени


один из недостатков данного стандарта
.
Но чаще всего достаточно и
этого минимума
.

Важно знать, что все параметры уже интерпретированы
электронн
ым блоком управления (кроме сигналов датчиков кислорода),
то есть в
этом
списке нет параметров,

которые

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

сканер
от
образит именно значение температуры. Это удобно, потому что чаще
всего п
оказатели в заводских протоколах представлены в очень
малоинформативной форме.
Тогда как использование протокола OBD
-
II
позволяет получить
преимущество в виде интерпретации данных с
да
тчиков
;

3.

Текущая команда ЭБУ на лампу
Check

Engine

(с англ.


«проверьте
двигатель»
)
.

Всего один параметр, причем показывает только состояние, то
есть он не цифровой. Показывает информацию о том, какую команду
послал блок на включение/выключение этой лампы. Как и в России,
Американские специалисты научились обманывать людей таким
способом:
лампу
Check

Engine

подключают п
араллельно
лампе

давления
масла.

Так делают для того, чтобы скрыть горящую лампу «проверьте
двигатель», но не оставить никаких следов, ведь когда поворачивают
ключ зажигания


все лампы должны загореться, в том числе и
Check

Engine
. А когда двигатель запустился


все лампы должны погаснуть.
Таким образом,
Check

Engine

гаснет одновременно с лампой аварийного
давления масла и создается видимость того, что ошибок в ЭБУ нет, а
значит с автомобилем всё в порядке.


Л
ампа
Check

Engine

загорается при обнаружении отклонений или
неисправностей,
которые приводят к
увеличению вредных выбросов
более чем в 1,5 раза по сравнению с допустимыми. При этом
в память
запис
ываются соответствующие коды неисправности.
[4]

0
x
02.
Show

freeze

frame

data

(с англ.


«показать данные стоп
-
кадра»)


вывод сохраненного кадра текущих

параметров блока управления на момент
возникновения кодов неисправностей.

21


Обращаться к этому режиму есть смысл только когда в памяти ЭБУ
хранятся какие
-
то коды неисправностей.

В таком случае сканер отобразит
сохраненный кадр параметров того момента, когда был зафиксирован код
неисправности.
Иначе говоря, моментальные данные из режима 0
x
01 во время
возникновения неисправности.

Это полезная функция, которая поможет отыскать неис
правность, ведь с её
помощью можно понять условия возникновения этой самой неисправности.
Но
самое главное заключается в том, что данные «замороженного» кадра нужны для
как можно более точного воспроизведения этих условий при тестовой поездке,
когда всю ди
агностическую работу выполняет сам блок управления, активируя
уже упомянутые выше мониторы.

Кодов неисправности в памяти может быть много, а вот «
стоп
-
кадр»


как
правило, только один (так поступает большинство
авто
производителей). Номер
кода неисправност
и
, соответствующий сохраненному
кадр
у

можно найти в
этом
кадре, обычно он
в самом начале списка
.

0
x
03.
Show

stored

Diagnostic

Trouble

Codes

(с англ.


«
показать
записанные диагностические коды неисправностей»
)


вывод кодов
неисправности из памяти ЭБУ.

Диа
гностическое оборудование запрашивает считывание кодов
неисправностей, а блок управления либо эти коды отправляет, либо посылает
соо
бщение, что неисправностей нет. В
стандарте
SAE

J
2012
заложена крайне
информативная система кодов неисправностей ЭБУ. Эту систему приняло
абсолютное большинство производителей автомобилей, как для
OBD
-
II
-
протоколов, так и для собственных,
OEM
-
протоколов.

Первый символ


альфа
-
указатель
DTC
. Он указывает в как
ом компоненте
автомобиля возникла неисправность.


Второй символ


показывает, какой код определен. Код «0» («P0»)


открытый код неисправности, определенный
SAE
. Код «1» («P1»)


OEM
-
код, то
есть определяется производителем. Код Р0ххх означает одну и ту же

неисправность для любой марки автомобиля, поддерживающего требования
OBD
-
II. Однако, расширенные коды (Р1ххх, Р2ххх) расшифровываются по
-
разному для каждого автопроизводителя. Это, естественно, создает проблемы
для диагностики, ведь расшифровка ОЕМ
-
кодов
под силу только самым
продвинутым OBD
-
II сканерам, и даже самые лучшие приборы могут не
справиться с этой задачей (дилерские приборы конечно же не в счет).

Третий символ


обозначает систему, в которой обнаружена
неисправность.

Четвертый и пятый символы
рассматривают совместно. Это сам код
ошибки, то есть порядковый номер. Чаще всего эти коды соответствуют
ошибкам из старого стандарта
OBD
-
I
.

Схематичный разбор диагностического кода неисправности представлен
на рисунке 2.3.

22



Рисунок

2.3



Расшифровка диагностического кода неисправности

[5]

0
x
04.

Clear

Diagnostic

Trouble

Codes

and

stored

values

(с англ.


«очистить диагностические коды неисправностей и сохраненные значения»
)


стирание кодов неисправностей, стоп
-
кадров текущих параметров,

результатов
тестирования лямбда
-
зондов (датчиков кислорода), сброс статусов тестовых
мониторов.

В этом режиме доступна функция очистки памяти блока управления.
Сканер стирает даже те коды, которые не может расшифровать. Но есть
проблема. С одной стороны,
некоторые неисправности блокирую
воспроизведение тестовых мониторов, это значит, что если не погасить лампу
Check

Engine

стерев коды неисправностей, то некоторые мониторы никогда не
запустятся и никогда не завершатся.

С другой стороны, при
стирании памяти
ЭБУ
,
кроме кодов ошибок стираются и «замороженные» кадры
,
и вся
информация
, накоп
ленная при работе мониторов. Другими словами
,
обнуляются
и заново инициализируются мониторы
. А чтобы все мониторы
снова стали
«завершенными
»,
нужно воспроизвести
сложные
ездовые

цикл
ы
.

0
x
05.

Test

results
,
oxygen

sensor

monitoring

(с англ.


«результаты теста,
мониторинг датчика кислорода»
)


считывание и вывод результатов теста
датчиков кислорода.

Только не для
CAN
-
шины.

Этот режим позволяет узнать почти всю информацию о
работе датчиков
кислорода: амплитуду значения напряжения на датчиках, время переключения с
одного уровня на другой, уровни напряжений перехода и т.д. Информация будет
доступна только после того, как данный монитор отработает полный цикл и
получит статус «з
авершен».

P

0

1

2

3

B

(с англ.
Body



«корпус»
)


кузов

C

(с англ.
Chassis



«шасси»
)


ходовая
часть

P

(
с англ.
Powertrain



«силовой агрегат»
)



код

двигатель/КПП

U



межблочная
шина обмена данных

0


Общий для
OBD
-
II

код

1


OEM
-
код

2


OEM
-
код

3


резерв
ный код

Индивидуальный код
ошибки

Тип неисправности:


1, 2


топливная система и
подача воздуха

3


система зажигания

4


вспомогательный
контроль

5


холостой ход

6


ЭБУ и его цепи

7, 8
-

трансмиссия

23


Функции режима 0
x
05 многие производители переняли и используют в том
или ином виде в
OEM
-
протоколах. Недостаток этого режима в том, что далеко
не все производители выводят информацию в том объеме, в каком она приходит
из блока управления. Пользу
ясь тем, что производителям необязательно
реализовать абсолютно все режимы в ЭБУ своих автомобилей, они
предпочитают выводить результаты монитора
датчиков кислорода
в режиме
0
x
06, в котором будет уже совершенно другая информация.

0
x
06.

Test

results
,
other

component
/
system

monitoring

(с англ.


«результаты теста, мониторинг другого компонента/системы»
)


считывание
и вывод результатов мониторинга непостоянно тестируемых систем: система
рециркуляции выхлопных газов, система вентиляции топливного бака.
Только
для
CAN

шины: с
читывание и вывод результатов теста датчиков кислорода.

Данный режим предоставляет доступ к результатам мониторинга (не к
статусам мониторов, как в режиме 0
x
01) для непостоянно тестируемых систем.
К таким системам относятся: катализатор, сис
темы поглощения топливных
испарений (абсорбер), система рециркуляции выхлопных газов, датчики
кислорода, подогрев датчиков кислорода, система кондиционирования воздуха,
а также термостат системы охлаждения и клапан системы вентиляции картера.

Из названия
режима ясно, что работают эти мониторы не всегда, а только
при определенных условиях. Чтобы они обрели статус «завершенных», нужно
провести сложные ездовые циклы. Параметры таких циклов различаются даже у
разных моделей одной и той же марки. Однако, сущест
вует диаграмма
«типового» ездового цикла, проведение которого чаще всего позволяет
активировать большинство таких мониторов.

В целом
, этот режим используется довольно редко.

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

В настоящее время,
результаты выводят
ся с помощью специальных
идентификаторов:



Идентификатор TID

(англ.
Test

Identifier



«идентификатор
теста»
)

соотв
етствует
номеру выполняемого теста
;



И
дентификатор CID
(англ.
Component

Identifier



«идентификатор
компонента»
)


определе
нному компоненту, который тестируется в
данном
TID
.

0
x
07.

Show

pending

Diagnostic

Trouble

Codes
,

detected

during

current

or

last

driving

cycle

(с англ.


«показать диагностические коды неисправностей,
обнаруженные в ходе текущего или последнего ездового цикла»
)


вывод
результатов мониторинга постоянно тестируемых систем, пока выполняются
условия проведения те
ста.

В этом режиме выводятся результаты мониторов постоянно тестируемых
систем. Эти мониторы осуществляются постоянно, с момента пуска двигателя и
до его остановки. Таких мониторов всего три: монитор компонентов, монито
р
24


системы топливной коррекции/
адапта
ции и монитор обнаружения пропусков
воспламенения смеси.

Результат

таких мониторов выводи
тся в виде
диагностических
кодов
неисправностей, но только если эти коды зарегистрированы в течение одного
ездового цикла (или цикла прогрева).
Т
акие
коды называются
«незавершенными».

Если 40

60 ездовых циклов
подряд
код не подтверждается,

то

он
стирается
из памяти
ЭБУ
. Если же
код снова зарегистрирован
,

то
он
перестает быть «незавершенным» и
сохраняется в памяти блока, тем самым, код
неисправности можно узнать,
исполь
зуя режим 0
x
03.

0
x
08.

Control

operation

of

on
-
board

component
/
system

(с англ.


«операции управления бортовыми компонентами/системами»
)


управление
бортовыми системами, исполнительными компонентами.

Активировав данный режим, сканер имеет возможность
управлять
различными исполнительными компонентами. Такие функции почти всегда
поддерживаются любыми заводскими протоколами. Разница заключается в том,
что в протоколе OBD
-
II этот режим ориентирован на системы уменьшения
токсичности, например, такие как кла
пан системы рециркуляции выхлопных
газов, клапан продувки адсорбера и т.п. Это нужно для того, чтобы быстро
проверить функционирование диагностируемой системы, не проводя тестовые
поездки и мониторинг. Но чаще всего эти проверки во требуют дополнительного
оборудования и
/или

специальной информации. Поэтому
режим 0
x
08
пока
широкого распространения не получил.

0
x
09.

Request

vehicle

information

(с англ.


«запросить информацию
транспортного средства»)


запрос идентификационных параметров
диагностируемого автом
обиля:
VIN
-
код, калибровочные данные.

В данном режиме выводятся такие параметры как:
VIN
-
код автомобиля,
код калибровки, загруженной в
постоянное запоминающее устройство
,
контрольная сумма этой калибровки.

Такая информация может быть нужна по
двум причинам:

1.

Оперативно отследить устаревшие или проблемные версии

ПО и
заменить

их на более совершенные
/новые
;

2.

Проконтролировать

блок
на предмет вмешательства в калибровки.
Подсчет контрольной суммы осуществляется
Э
БУ
каждый раз, после
включения зажигания.


Добавлять данный режим в свои блоки управления автопроизводители не
торопятся.
Даже на
новых машинах
американского рынка

информация
о
идентификационных параметрах
может поддерживаться не в полном объеме

или
не по
ддерживаться вообще
.


Таким образом, д
аже когда протокол
автопроизводителя
работает на
диагностическом оборудование вполне
корректно,

всегда

есть смысл обратиться
к
электронному
блоку
управления
автомобиля
через протокол
ы

OBD
-
II.
В
о
многих случаях
можно
р
ассчитывать на
дополнительную информацию
,
которой
нет
в
OEM
-
протоколе

или она просто не доступна
.
А в целом, интерфейс
OBD
-
II

25


существенно расширил доступ
простому автолюбителю к

легкой и удобной
диагностике

систем автомобиля.


Процесс диагностики
, в
общем
,

является процессом ан
ализа информации.
Чем шире и раз
ностороннее собранная информация
, тем больше вероятность
принять правильное решение по ремонту автомобиля, а э
то и есть главный
результат.






































26


3

РАЗРАБОТКА БОРТОВОГО
КОМПЬЮТЕРА

3.1

Описание технических характеристик


Основной целью
разработки

является микропроцессорная система,
к
оторая будет обрабатывать информацию о состоянии

функциональных узлов
автомобиля, получаемую с электронного блока управления
.

Устройство
должно выполнять следующие функции:



Расчет и вывод маршрутных параметров:

1.

Удельны
й расход топлива (литров в час)
;

2.

Р
асход топлива на 100 километров;

3.

Пройденный путь с момента запуска

двигателя;

4.

Пройденный путь за всё время;

5.

Количество потраченного топл
ива с

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

6.

Количество по
траченного топлива за всё время;

7.

Полный средний расход топлива (пройденный путь за всё время
поделить на количество потраченного топлива за
всё время);

8.

Время с момента включения бортового компьютера.



Получение и выв
од мгновенных параметров:

1.

Основные параметры работы автомобиля:

а.

Т
емпература охлаждающей жидкости;

б.

Обороты двигателя;

в.

Скорость автомобиля;

г.

Напряжение в бортовой сети;

д.

Уровень топлива.

2.

Дополнительные параметры (для диагностики систем
автомобиля):

а.

Нагрузка на

двигатель;

б.

Положение дроссельной заслонки

в.

Давление во впускном коллекторе;

г.

Угол опережения зажигания;

д.

Температура воздуха на впуске;

е.

Н
апряжение на датчиках кислорода;

ж.

Краткосрочная и долго
срочная топливные корректировки;

з.

Давление в топливной магистрали;

и.

М
ассовый расход воздуха;

к.

Температура масла.



Получение и вывод информации о диагностических кодах
неисправностей:

1.

Список обнаруженных кодов неисправностей
;

2.

Сигнализирование о возникшей поломке
;

3.

Пройденное расстояния с момента последней очистки ошибок
;

4.

Пройденное расстояние с горящей лампой неисправности
.

27


Взаимодействие с пользователем должно осуществляться при помощи
дисплея, подачи звуковых сигналов и кнопок устройства.


3
.2

Элементная база

для сборки бортового компьютера



Для того, чтобы приступить к

разработке программно
-
аппаратного
комплекса для контроля текущего состояния функциональных узлов
автомобиля, необходимо было
определить
, из каких электронных компонентов
будет состоять данное устройство.


3.
2.
1

ELM
327


Первая проблема, которая возникла передо мной


как считывать и
передавать информацию от электронного блока управления автомобиля.

Так как в
сем новым автомобилям по закону требуется интерфейс
OBD
-
II,
с помощью которого диагностическое оборудование может по
лучать
информацию

о параметрах работы автомобиля, то было решено разрабатывать
бортовой компьютер, используя данный разъем. С помощью
OBD
-
II

бортовой
компьютер станет по
-
настоящему универсальны
м
, так как к любому автомобилю
можно
будет
подключиться через э
тот интерфейс.

Таким образом, мне потребуется передатчик данных от интерфейса
OBD
-
II

в автомобиле до конечного устройства.
В качестве такого передатчика был
выбран адаптер
ELM
327
. Данное устройство является уникальным на рынке (не
считая китайские копии).



Рисунок 3.1


Адаптер
ELM
327


Название адаптера наследуется от названия микросхемы


ELM
327
представляет

собой
pic
-
контроллер

(англ.
Peripheral

Interface

Controller



«контроллер интерфейса периферии»
)

PIC
18
F
2480
от
фирмы «
Microchip
» с
проши
вкой от

канадской компании «
ELM

Electronics
»
,

предназначен для работы
в качестве
преобразователя
между
бортовым
диагно
стическим порт
о
м
OBD
-
II

и
стандартным
портом
RS
-
232

персонального компьютера
.

RS
-
232


стандарт физического уровня для асинхронного интерфейса,
р
азработанный
EIA

(англ.
Electronic

Industrial

Alliance



«Ассоциация
28


Электронной Промышленности»
). Также известен как последовательный порт
ПК или
COM
-
порт (англ.
Communication

Port



«порт связи»
).

ELM
327


микросхема, которая
может автоматически пон
имать

и
конвертировать

наиболее распространенные протоколы, используемые

сегодня

для связи электросети автомобиля и диагностического сканера
.

Конечно
ELM
327 требует
некоторые внешние

компоненты
,
для того чтобы получить
полный функционал

[8]
.


На рисунке 3.1 схе
матично изображена микросхема
ELM
327
.



Рис
унок

3
.
2



Выводы микросхемы
ELM
327


MCLR

(
Контакт

1)

Кратковременно поданн
ый

(>2 мкс)
на этот вход
логический
ноль

сбросит
ELM
327. Если

вывод

не используется,
то он
должен быть

подключен к
VDD

(логическая единица)
.

Vmeasure

(Контакт 2)

Аналоговый вход, используется для измерения сигнала, который приходит
на него, от 0 до 5. Необходимо соблюдать осторожность, если подать
напряжение, превышающее 5В, то может произойти повреждение. Если вывод
не и
спользуется, то он должен быть связан либо с
VDD
, либо с
VSS
.

J
1850
Volts

(Контакт 3)

Выход используется для контроля напряжения питания на выводе
J
1850
Bus
+. Контакт выдает логическую единицу, когда требуется номинал 8
V

(для
J
1850
VPW
), а логический ноль,

когда необходимо 5В (для
J
1850
PWM
). Если
этот вывод не требуется, то его можно оставить разомкнутым.

J
1850
Bus
+
(
Контакт

4)

Этот активный высокий выход используется для приведения
положительной шины
J
1850 к активному уровню.

Memory

(
Контакт

5)

Данный вход контролирует состояние памяти. Если подать на него
логическую единицу
во время включения

питания или
сброса
, то функция
памяти будет включена по умолчанию. Если логический ноль, то функция
29


памяти будет отключена по умолчанию. Функцией памяти вс
егда может
управлять с помощью
AT
-
команд
M
0 и
M
1.

Baud

Rate

(
Контакт

6)

Этот вход контролирует скорость передачи данных через
RS
-
232
интерфейс. Если подать логическую единицу
во время включения
питания или

сброса
,

то

скорость передачи данных будет установлено в 38400

бод.

Если
логический ноль
, то

с
корость 9600
бод
.

LFmode

(Контакт 7)

Этот вход используется для выбора режима перехода на новую строку,
который будет использоваться после включения питания или сброса систе
мы.
Логическая единица, поданная на этот вход, означает, что сообщение,
отправленное
ELM
327, будет завершено возвратом каретки и символом перевода
строки. Логически ноль


сообщения будут заканчиваться только возвратом
каретки. Поведение можно изменить
AT
-
командами

L
0 и
L
1.

VSS

(
Контакты 8,

19)

Общая цепь
должна быть подключена к этим выводам.

XT
1

и
XT
2

(
Контакт 9 и
10)

Кварцевый генератор 4 МГц подключается между двумя этими
контактами.
Конденсаторы, в соответствии с требованиями кристалла
(обычно
27
пФ

каждый) также должны быть

подсоединенный между каждым из этих
выводов

и заземлением
VSS
.

VPW

In

(
Контакт

11)

Активный высокий вход для
J
1850
VPW

данных. Должен быть на низком
уровне в состоянии покоя (шина бездействует).

ISO

In

(Контакт 12)

Это активный н
изкий вход для
ISO

9141 и
ISO

14230 данных. Должен быть
на высоком уровне в состоянии покоя (шина бездействует).

PWM

In

(Контакт 13)

Это активный низкий вход для
J
1850
PWM

данных. Должен быть на
высоком уровне в состоянии покоя (шина бездействует).

J
1850

Bus
-

(Контакт 14)

Этот активный высокий выход используется для приведения
отрицательной шины
J
1850 к активному уровню. Если не используется, то
можно оставить вывод разомкнутым.

RTS

(Контакт 15)

Активны
й низкий вход «запрос передачи», используется
для обработки
прерываний, чтобы послать новую команду.

Busy

(Контакт 16)

Активный высокий выход, показывает текущее состояние
ELM
327. Если
он находится на низком уровне, то процессор готов к приему команд или
ASCII
-
символов. Если на высоком


команды обрабатываются.

RS
232
Tx

(
Контакт

17)

Выход передачи данных
RS
-
232. Уровень сигнала совместим с
большинством интерфейсных микросхем.

30


RS
232
Rx

(Контакт 18)

Это вход получения данных
RS
-
232. Уровень сигнала совместим с
большинством интерфейсов микро
схем, а также может быть использован и с
другими интерфейсами, так как на входе стоит триггер Шмитта.

VDD

(Контакт 20)

Вывод является положительным контактом питания.

ISO

K

и
ISO

L

(Контакт 21 и 22)

Активные высокие выходные сигналы, которые используется
для
управления ISO 9141 и ISO 14230 шинами. Многие новые автомобили не
требуют L
-
Line, поэтому можно оставить контакт 22 разомкнутым.

CAN

Tx

и
CAN

Rx

(
Контакт 23 и 24
)

Вход и выход
CAN
-
интерфейсных

сигналов
.

Если не используются, то
контакт 24 должен быть соединен с
VDD
.

RS232 Rx LED
, RS232 Tx LED,

OBD Rx LED,

OBD Tx LED

(
Контакты

25
-
28)

Эти четыре выхода обычно в высоком уровне. Переходят в низкий уровень
во время передачи или приема данных
ELM
327. Выходы
пригодны для
управления непосредственно самими светодиодами через токоограничивающие
резисторы, или при помощи другой логики для отчетов о состоянии. Если не
используются, эти выводы следует оставить разомкнутым.

Преимущества

использования

микросхемы
ELM
32
7:



Автоматическое определение диагностического протокола
;



Низкое энергопотребление
;



Есть р
ежим ожидания
;



Скорость передачи по RS
-
232 до 500 Кбит/с
.

Но, несмотря на то, что
ELM
327 широко распространен,
профессиональные диагностические сканеры работают по др
угим схемам, но не
с этим адаптером. Такая ситуация из
-
за следующих недостатков данной
микросхемы:



Настрой
ка осуществляется AT
-
командами
;

В списке команд есть абсолютно бесполезные команды, такие
как настройка скорости передачи между адаптером и ПК.
Но
при

этом отсутствуют некоторые необходимые

команды,
например, нет
возможности Fast
-
инициализации
протокола ISO
-
9141.
Из
-
за такой
проблемы некоторые ЭБУ
просто не
смогут связаться со сканером
.



Отсутствует возможность работы по K

и
L
-
линиям с протоколами,
от
лич
ными от ISO
-
9141 и ISO
-
14230;



Пр
и работе по протоколам ISO
-
9141 и
ISO
-
14230
очень
ограничен
размер пакета
данных


всего восемь байт;



В
протоколе
ISO
-
15765 возможна передача информации более 8
-
ми
байт.

Но в
ELM
327 поддержка приема информации по этому
протоколу реализована, а передача


нет.

В настоящее время на рынке уже редко встречаются адаптеры с
COM
-
выходом. Обычно
ELM
327 имеет
для связи
с персональным компьютером
один
31


следующих
интерфейсов
:
USB
, BlueTooth или
Wi
-
Fi
. Таким образом, адаптер
ELM
327
к
роме микроконтроллера
имеет какую
-
либо из микросхем
-
преобразователей

для нужного интерфейса. Я выбрал
BlueTooth
-
адаптер
ELM
327
, по

следующим причинам:

1.

BlueTooth

поможет избавиться от проводного соединения;

2.

Проще настраивать и устанавливать соединение между
устройствами, нежели используя
Wi
-
Fi
;

3.

Из всех адаптеров, если классифицировать по типу связи, этот тип
самый дешевый.

Таким образом, средство для получения информации из электронного
блока управления
автомобиля выбрано.




3.2.
2

Arduino

Uno

R
3



Следующая возникшая проблема


как обрабатывать полученную
информацию. Решением этой проблемы стала платформа
Arduino
. Такой выбор
бы
л сделан по нескольким причинам:

1.

Платформа очень популярна во всем мире из
-
за

удобства в
использовании и простого языка программирования
;

2.

Открытая архитектура и программный код
;

3.

Программируется через
USB

без программаторов.

Существует несколько версий платформ Arduino
, и выбор был сделан в
сторону
Arduino

Uno

R
3
, так как это самая
часто используемая модель, имеющая
достаточное число контактов для моих целей, а также имеет низкую стоимость.



Рисунок 3.3


Arduino

Uno

R
3


Платформа Arduino Uno сконструирована на базе микроконтроллера
ATmega
328
. Что есть на платформе
Uno

R
3

[3]
:



Цифровые входы/выходы
;



Аналоговые входы
;



К
варцевый генератор
;



Р
азъем
USB
;



С
иловой разъем питания
;

32




П
оследовательный внутрисхемный интерфейс программирования
;



Кнопка

перезагрузки
.

Для связи по
USB

используется микроконтроллер
ATmega
8
U
2.

Характеристики платформы
Arduino

Uno

R
3
представлены в таблице
3.1.


Таблица 3.1


Технические характеристики
Arduino

Uno

R
3

Характеристика

Значение

Рабочее напряжение, В

5

Входное напряжение (рекомендуемое), В

от 7 до 12

Входное напряжение
(предельное), В

от 6 до 20

Постоянный ток через вход/выход, мА

40

Постоянный ток для вывода 3.3В, мА

50

Флеш
-
память, Кб

32

Оперативная память, Кб

2

Энергонезависимая память, Кб

1

Тактовая частота, МГц

16

Количество цифровых входов/выходов, шт

14

Количество аналоговых входов, шт

6


Питание на
Uno

R
3

можно подать двумя способами:

1.

Внешний источник питания.

Питание подается ч
ерез преобразователь напряжения
AC
/
DC

(блок питания) или аккумуляторной батареей. Подключение
происходит в разъем 2,1 мм с центральным положительным
полюсом
;

2.

Питание через
интерфейс
USB.


Силовые выводы:



VIN



Вход для подачи питания от внеш
него источника;



5
V



Регулируемый источник напряжения. Используется для
питания
микроконтроллера и
компонентов на плате
;



3
V
3



Источник напряжения 3,3 В. Генерируется встроенным
регулятором на плате. Максимальное потребление тока 50 мА.


Некоторые из 14 цифровых выводов име
ют особые функции:



Последовательная шина:
выводы
0 (
RX
)

и
1 (
TX
)

используются для
получения и передачи
TTL
-
данных
;



Внешнее прерывание: выводы
2

и
3

можно сконф
игурировать на
вызов прерывания;



ШИМ: выводы
3
,
5
,
6
,
9
,
10
,
11

обесп
ечивают ШИМ с разрешением
8
бит;



SPI
:
посредством выводов
10 (
SS
)
,

11 (
MOSI
)
,

12 (
MISO
)
,

13 (
SCK
)

осуществляется
SPI
-
связь;



LED
: к выводу
13

подключен встроенный светодиод. Если значение
на выводе имеет высокий потенциал, то светодиод горит.

33


Два из шести аналоговых выводов т
акже

имею
т особую функцию:

посредством выводов
A
4

и
A
5

осуществляется I2C
-
связь (
TWI
)
.

Дополнительные выводы платформы
Arduino

Uno

R
3:



AREF



опорное напряжение для аналоговых входов
;



RESET
.

Низкий уровень сигнала перезагружает микроконтроллер.

Платформа
Arduino

Uno

имеет несколько устройств для осуществления
связи с компьютером, другими устройствами
Arduino

и микроконтроллерами.
Микроконтроллер
ATmega
328
поддерживает последовательный интерфейс
UART

TTL
.
Микроконтроллер
ATmega
8
U
2
направляет данный интерфейс через
USB

для связи платы с ПК.

Платформа программируется с помощью ПО
Arduino
.

ATmega
328
поставляется с записанным загрузчиком, что облегчает запись новых программ,
не нужно использовать внешние программаторы.

Имеется возможность не использовать загрузчик, а з
апрограммировать
микроконтроллер посредством внутрисхемного программирования (вывод
ICSP
).

Библиотека
SoftwareSerial

по
зволяет создать последовательный прием или
передачу данных через любой цифровой вывод платформы
Arduino
. Данная
возможность


решение следующей моей проблемы, ведь данные с автомобиля
будут поступать посредством
BlueTooth
-
интерфейса, и их нужно как
-
то
принимать на
Arduino
.

Их присутствие обязательно в любой программе на C++ для Arduino. Они
могут ничего и н
е делать, как в нашем случае, но должны быть написаны. Иначе
на стадии компиляции вы получите ошибку.

Есть две обязательно присутствующих функции в любой программе для
Arduino
.

Это функции
setup

и
loop
.
Они могут ничего не делать, но должны быть
написаны.
Иначе на стадии компиляции
будет ошибка
.

Функция setup() вызывается, когда стартует скетч. Используется для
инициализации переменных, определения режимов работы выводов, запуска
используемых библиотек и т.д. Функция setup запускает только один раз, после
к
аждой подачи питания или сброса платы Arduino.

После вызова функции setup(), которая инициализирует и устанавливает
первоначальные значения, функция loop() делает точь
-
в
-
точь то, что означает её
название, и крутится в цикле, позволяя вашей программе соверш
ать вычисления
и реагировать на них. Используйте её для активного управления платой Arduino.



3.
2
.
3

HC
-
05



Для приема данных с автомобиля на плату
Arduino

Uno

R
3
нужен
BlueTooth
-
модуль,
специально разработанный для
Arduino
,
чтобы было проще
установить связь между этими устройствами, а также модуль должен иметь
способность
раб
отать в ведущем режиме.


34



Для
Arduino

существует множество различных
BlueTooth
-
модулей, но я
выбрал модуль
HC
-
05
, так как это достаточно современная версия модуля (новее
только версия
HC
-
06
),
HC
-
05
распространен в продаже, имеет низкую стоимость,
а также легко подключается и настраивается. Я не стал брать саму
ю

новую
версию, так как возможно, что это еще сырой проду
кт и будут сбои в
подключении.



Рисунок 3.4


BlueTooth
-
модуль
HC
-
05.



Чаще всего такие модули поставляются на дополнительной плате, где уже
разведены основные выводы на штырьковые контакты, а также добавлена
кнопка
RESET
, которая перезагружает модуль.

Именно такой вариант
устройства был приобретен мною.



Рисунок 3.5


BlueTooth
-
модуль
HC
-
05
с расширяющей платой



Назначение и работа основных выводов модуля

[9]
:



TX



выход данных
UART;



RX



вход данных
UART;



RESET



вывод сброса модуля. Сброс осуществляется подачей
логического нуля. Данный вывод можно закоротить, либо
подключить через резистор 10 кОм к выводу
VCC
;



VCC



на этот вывод подается напряжение питания 3,3 В
;



13
,
21
,
22



тоже, что и
GND



заземление
;



KEY



выбор режима работы модуля.
Если подать на этот контакт
логический ноль, то модуль будет устанавливать связь и находиться
в режиме обмена данными.
Если подать единицу


модуль входит в
режим
AT
-
команд;



LED
1



индикатор рабочего режима. Частота мигания 1 Гц говорит
о том, что модуль находится в режиме
AT
-
команд. Частота мигания
2 Гц


в режиме обмена данными.

Для того, чтобы получать данные с
ELM
327, нужно настроить модуль
HC
-
05
в роли ведущего (мастера). Перед
этим, требуется подключить модуль к
Arduino

таким образом, как показано на рисунке 3.6.

35



Рисунок 3.6


Схема подключения модуля
HC
-
05 к
Arduino

Uno

R
3

для настройки


Итак, подключаем HC
-
05 для настройки:



TX модуля в 6 вывод
Arduino

(TX в TX


в данном
случае это не
ошибка
)
;



RX модуля в 7
вывод

Arduino

(
RX

в
RX



аналогично, не ошибка
)
;



VCC и KEY модуля к 3V3

Arduino
;



GND модуля к GND
Arduino
.

Теперь, когда модуль подключен и готов к настройке, нужно загрузить в
Arduino

скетч, представленный в листинге 1
.1
.


Листинг 1.1


Скетч для настройки модуля
HC
-
05

SoftwareSerial BlueTooth = SoftwareSerial(txPin, rxPin);

void setup()

{


pinMode(rxPin, INPUT);


pinMode(txPin, OUTPUT);


Serial.begin(9600);


Serial.println("Instruction:");


BlueTooth.begin(38400);

}

void loop()

{


if (BlueTooth.available())

Serial.write(BlueTooth.read());


if (Serial.available())

BlueTooth.write(Serial.read());

}


Перед выполнением этого кода
выполняются следующие действия:



Подключаем

библиотеку
SoftwareSerial
;



Назначаем выводы для передачи и приема данных по
последовательному интерфейсу
;



Создаем

новый объект т
ипа SoftwareSerial и присваиваем

его
переменной

BlueTooth
.

36


Setup()
:



Функция
pinMode
()

задает режим работы вывода
;



О
ткрываем последовательны
й порт, задаем
скорость передачи
данных в бит/сек (бод) последовательного порта
.

Loop():



Если модуль что
-
то отвечает, то пишем в консоли его ответ
;



Если что
-
то отправили из консоли, то передаем
эту
команду модулю
.

Чтобы

сделать
модуль

ведущим, нужно прописать следующие команды:



Пров
еряем доступность

конфигурирования через AT
-
команды:
«
AT
»
;



Задаем имя модулю:
«
AT+NAME=HC
-
05
»
;



Сбра
с
ываем предыдущие настройки
:
«
AT+ORGL
»
;



Сбра
с
ываем спаренные
устройств
а
:
«
AT+RMAAD
»
;



Включаем режим

ведущего:
«
AT+ROLE=1
»
;



Перезапускаем модуль

после смены роли:
«
AT+RESET
»
;



Устанавливаем пароль

ведомого

(пароль адаптера
ELM
327)
:
«
AT+PSWD=1234
»
;



Связываем с конкретным адресом

(
MAC
-
адрес адаптера
ELM
327)
:
«
AT+BIND=0000,00,110142
»
;



Запрещаем соединяться с другими адресами:
«
AT+CMODE=0
»
.

На все команды модуль должен ответить «ОК». Если это так, то т
еперь
модуль связан с ведомым
, то есть с
ELM
327
, и при каждом включении будет
пытаться с ним соединиться.

После настройки, выводы для прие
ма и передачи данных подключаются
по
-
другому:



TX

модуля в

7
Pin

(
Rx
)
Arduino
;



RX

модуля

в
8
Pin

(
Tx
)
Arduino
;




KEY

модуля отпаиваем и оставляем закороченным.


3.
2
.
4

LCD
-
2004



Для
отображения параметров
,
р
ешено было приобрести дисплей на
четыре строки по
20 символов каждая, чтобы на экран вошло как минимум
четыре параметра одновременно.



Рисунок 3.7


Дисплей
LCD
-
2004

37


Подключение в
ы
водов

дисплея
LCD
-
2004

[12]
:



VSS



заземление



к
GND

Arduino
;



VDD



напряжение питания


к 5
V

Arduino
;



V
0


регулировка
контрастности



к
центральному

выводу
подстроечного резистора 10 кОм
;



RS



выбор регистра



к 12
Pin

Arduino
;



RW



чтение/запись



к
GND

Arduino
;



E



включение дисплея



к 11
Pin

Arduino
;



D
0
-
D
3


младшие биты интерфейса



не подключаем
;



D
4
-
D
7


старшие
биты интерфейса



к 5
-
2
Pin

Arduino

соответственно
;



A



анод подсветки дисплея



к
5
V

Arduino
;



K



катод подсветки дисплея



к
GND

Arduino
.



Рисунок 3.8


Схема подключения
LCD
-
2004 к
Arduino

Uno

R
3



Конечная стоимость устройства складывается из всех
приобретенных
мною компонентов, которые представлены в таблице 3.2.





38


Таблица 3.2


Стоимость компонентов для сборки бортового компьютера

Компонент

Стоимость, рубли

Плата
Arduino

Uno

R
3

+ провод
USB

382

Адаптер
ELM
327

206

Дисплей
LCD2004

286

BlueTooth
-
модуль
HC
-
05

212

Провода
-
перемычки, 40 шт

69

Подстроечный резистор 10 кОм

20

Пластиковый корпус

190

Итого:

1365




Как видим, стоимость готового устройства получилась даже меньшей, чем
стоимость самого дешевого бортового компьютера


1365 против 1580 рублей.
Причем, этот бортовой компьютер от производителя не очень нагляден в плане
отображения информации.

Тем самым, с
обрав такое устройство, я получаю функционал,
ограниченный только
моим программным кодом и возможностями
OBD
-
II
, за
меньшую цену, чем функционал бортового компьютера от производителя,
заложенный в устройство окончательно, без возможности расширить его.


3.3

Схем
а

подключения



Окончательное подключение элементов

устройства
:



Дисплей
LCD
-
2004
п
одключается также, как описано в главе 3.2.4;



BlueTooth
-
модуль
HC
-
05
п
одключается также, как описано в главе
3.2.2;



Любая из двух крайних лапок подстроечного резистора на 10 кОм
подключается к
GND

Arduino
;



Динамик:

o

Один контакт к
GND

Arduino
;

o

Второй контакт к 13
Pin

Arduino
.



Также нам понадобятся две
двух
контактные кнопки

без фиксации
:

o

Один из контактов каждой кнопки подключим к
GND

Arduino
;

o

Вторые контакты кнопок к 9 и 10
Pin

Arduino

соответственно.

На рисунке 3.9 изображена полная схема окончательного
подключения элементов устройства.


39



Рисунок 3.9


Схема подключения элементов устро
йства


3.4

Описание исходного кода


Рассмотрим основные блоки программы, написанной в
Arduino

IDE
,

для
схемы подключения элементов устройства (рисунок 3.9).

Для начала объявляем переменные

(листинг 1.2)
,
которые будем
использовать
для корректировки
различных данных, например, полученных от
ЭБУ автомобиля.


Листинг

1.2


Переменные для корректировки значений

double time_correct_V = 1.0
27
;

double speed_correct_V = 1.0
75
;

double efficiency_correct_V = 1.0;

double volume_V = 2.362;

byte delay_V =
65;



time
_
correct
_
V



переменная для корректировки времени. Скорее всего,
Arduino

будет не верно считать секунды с помощью функции
millis
()
, так как
кварцевый генератор может быть неточным или установлен с небольшой
погрешностью в длине ножек, которыми он припаивается к плате


это влияет на
частоту,
выдаваемую

генератор
ом
, а тем самым
на время, подсчитываемое

функцией
millis
()
.

Для
того, чтобы это исправить, введем поправочный
40


коэффициент
time
_
correct
_
V
. Запускаем
Arduino
, переходим на экран со
временем, и одновременно с этим засекаем 1000 секунд. По окончанию этого
времени, значение на

экране получилось 1027. Значит, коэффициент
time
_
correct
_
V

= 1027 / 1000 = 1.027.

Такая корректировка нужна для
любой

платы
Arduino
.

speed
_
correct
_
V



переменная
для корректировки скорости. Скорость
автомобиля, отображаемая на спидометре (а чаще всего, то

что отображается на
спидометре


это и есть данные из ЭБУ), зависит от такого фактора, как размер
колес. Чтобы спидометр не занижал значение скорости, его рассчитывают под
максимально допустимый размер резины и радиус диска на данную модель
автомобиля. К
этой погрешности добавляется технологическая погрешность
спидометра, которая всегда представляет собой завышение показаний, что
является своеобразной защитой завода
-
изготовителя спидометров от судебных
исков автовладельцев, которые превысили скорость.

Запу
скаем
Arduino

в
автомобиле, подключаем
ELM
327
, трогаемся. Разгоняемся, например, до 100
км/ч (по спидометру), одновременно с этим замеряем скорость на устройстве с
GPS
, которое показывает скорость равную
93
км
/
ч
.
Таким

образом
,
speed
_
correct
_
V

= 100 / 93 = 1.075.


efficiency
_
correct
_
V



переменная для корректировки объемного
коэффициента полезного действия двигателя автомобиля.
Объемный КПД
-

э
то
процентное соотношение количества рабочей среды, фактически всасываемой в
цилиндр, к объёму самого

цилиндра
. Данная корректировка нужна для каждого
двигателя, потому что уже с завода,
новый двигатель будет иметь погрешность
относительно рассчитанного объемного КПД, так как все детали имеют хоть
мизерную, но неточность в изготовлении, тем самым, все параметры двигателя
немного отличаются от расчетных. Параметр объемного КПД мне нужен для

подсчета
MAF

(потребление воздуха двигателем), что в свою очередь нужно для
подсчета расхода топлива сначала в граммах в секунду, затем в литрах в секунду,
а после


литрах в час. Это видно на листинге 1.3.


Листинг 1.3


Подсчет расхода топлива

IMAP =
double(RPM_V * air_pressure_V) / double(air_temperature_V +
273.15);

MAF = double(IMAP / 120.0) * double(double(efficiency * efficiency_correct_V)
/ 100.0) * volume_V * 28.9644 / 8.314472;

grams_per_sec_V = double(MAF / air_to_fuel_ratio_V) * fuel_co
rrect_factor_V;

liters_per_sec_V = grams_per_sec_V / density_V;

liters_per_hour_V = liters_per_sec_V * 3600.0;



Проще всего ск
орректировать объемный КПД

так: на прогретом двигателе
установить такой коэффициент, чтобы м
гновенный расход (литров в час) был
равен примерно половине от объема двигателя.

volume
_
V



объем двигателя внутреннего сгорания литрах, но с полной
точностью. Исторически так сложилось, что объем двигателя из кубических
41


сантиметров переводят в литры и ок
ругляют в большую сторону. Например, для
объема двигателя 2,4 литра
volume
_
V

=
2.362.

delay_V


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

Можно установить задержку
побольше, тогда не будет никаких проблем с любым автомобилем. Установим
delay
_
V

= 330.


Используемые константы представлены в листинге 1.4.


Листинг 1.4


Константы, не требующие корректировки

byte displays_number = 20;

byte key1 = 10, key2 = 9;

int RPM_run_V = 400;

double air_to_fuel_ratio_V = 14.70;

double density_V = 750.0;



displays
_
nuber



задает количество экранов устройства, на которых будут
выводиться параметры.


key
1
и
key
2


используются для обозначения номеров контактов
Arduino
, к
которым подключены кнопки.


RPM
_
run
_
V



обороты двигателя,

при которых можно считать, что он
заведен, то есть, работает в штатном режиме.


air
_
to
_
fuel
_
ratio
_
V



соотношение расхода воздуха к расходу топлива.



density
_
V



плотность бензина.


Рассмотрим некоторые блоки функции
setup
() (
листинги 1.5 и 1.6).


Листинг 1.5


Блок проверки входа в режим
R
ecovery

key1_V = digitalRead(key1);

if (key1_V

==

LOW) {


displays_number

=

displays_number

+

3;


LCD.clear();


LCD.setCursor(2,1);


LCD.print("Recovery mode ON"
);


t
one(13, 3000, 500);


delay(2000);


key
1_
V

=
digitalRead
(
key
1);


if (key1_V==LOW) {


OFF=false;




LCD.clear();


LCD.setCursor(3,1);


LCD
.
print
("
ELM
327
is

OFF
");


tone(13, 3000, 500);




delay(2000);


}

42


}

LCD.clear();

de
lay(1000);

BTserial.flush();

BTserial.begin(38400);

delay(delay_V);

BTserial.println("ATZ");

delay(900);

BTserial.println("ATSP0");

delay(100);

LCD.clear();

check_engine_errors_F();



Проверяем, нажата ли кнопка «Вперед» во время включения устройства.
Если да, то заходим в режим
Recovery
.
В этом режиме добавляется три
технологических экрана. Далее опять проверяем, нажата ли эта же кнопка, и если
это так, то отключаем функцию
REPLY
_
F
, ко
торая выдает данные из
ELM
327
.


Если же кнопка не была нажата во время включения устройства, то
устанавливаем соединение с
ELM
327

со скорость 38400 бод. Посылаем команду
reset
, а также устанавливаем используемый протокол
ATSP
0


автоматически.


И

запускаем

функцию

check
_
engine
_
errors
_
F
(), которая
возвращает
количество найденных диагностических кодов неисправностей в ЭБУ
автомобиля.


Листинг 1.6


Блок проверки ошибок двигателя

if (check_engine_errors_V � 0) {


tone(13, 3000, 10000);


LCD.clear();


LCD.setCursor(3,0);


LCD.print("Count of Check");


LCD.setCursor(3,1);


LCD.print("Engine errors:");


LCD.setCursor(9,3);


LCD.print(check_engine_errors_V);


delay(delay_V);


BTserial.flush();


BTserial.print("03");


BTseri
al.print("
\
r");


REPLY_F();


REPLY_F();


if (strtol(&rxData[0],

0,

16)

==

67) {


LCD.setCursor(0,3);


LCD.print("Kod: P");


LCD.setCursor(7,3);


LCD.print(&rxData[3]);

43



LCD.setCursor(9,3);




LCD.print(&rxData[
6]);


}


delay(10000);


LCD.clear();


}




Если найдены диагностические коды неисправностей, то выводится их
количество и
первый код

на экран.



Листинг 1.7


Блок подсчета времени и записи данных в энергонезависимую память

speed_F();

if (time_old == 0)

time_old = millis();


time_new = millis();

time = (double(time_new
-

time_old) / 1000.0) * time_correct_V;

if (time � 10)


time = 0;

time_old = time_new;

if (speed_V � 0) {


odometer_add = double((double(speed_V *
1000.0) / 3600.0) * time) / 1000.0;


o
dometer = odometer + odometer_add;

}

fuel_add = liters_per_sec_V * time;

total_fuel_consumption = total_fuel_consumption + fuel_add;

if (((speed_V � 1) and (speed_V 10) and ((time_new
-

time_old_journal) �
30000)) or ((speed_V == 0) and ((time_new
-

time_old_journal) � 10000))) {


double odometer_eeprom = EEPROM_R(111) + odometer_add_journal +
odometer_add;


double
fuel
_eeprom = EEPROM_R(122) + fuel_add_journal + fuel_add;


EEPROM_W(111, (odometer_e
eprom));


EEPROM_W(122, (
fuel
_eeprom));


odometer_add_journal = 0;


fuel_add_journal = 0;


time_old_journal = time_new;

}

else {


odometer_add_journal = odometer_add_journal + odometer_add;


fuel_add_journal = fuel_add_journal +

fuel_add;

}

if (odometer � 0)



liters_per_100km_V = (total_fuel_consump
tion / odometer) * 100.0;


double full_odometer_journal = EEPROM_R(111);



double total_fuel_journal = EEPRO
M_R(122);



Запускаем функцию
speed
_
F
() для получения данных о скорости
автомобиля.

44



time
_
old

=
millis
() сработает один раз, при появлении оборотов двигателя,
то есть, когда автомобиль заведется
. Затем идет подсчет времени со старта
программы, в миллисекундах.


odometer
_
add



подсчитывает расстояние, которое
проходит машина в
секунду

и конвертирует в километры.
odometer

-

обший

пробег

в

километрах.


fuel
_
add



количество топлива, затрачиваемое в
о времени, в литрах.
total
_
fuel
_
consumption

-

общий расход в литрах
.


Далее,
записываем в энергонезависимую память расстояние

и потраченное
топливо с помощью функции
EEPROM
_
W
()
.


Если одометр не пуст, то считаем расход бензина на 100 километров.


Пролисты
вание экранов устройства выполнено с помощью конструкции
switch
-
case
.
Пример того, как задан какой
-
либо из экранов устройства отображен
в листинге 1.8.



Листинг 1.
8



Третий экран устройства

case 3:


coolant_temperature_F();


LCD.clear();


LCD.setCursor(0,0);


LCD.print("Coolant temperature:");


LCD.setCursor(0,3);


LCD.print(coolant_temperature_V);


LCD.print("
\
1");


LCD.print("C");


break;



Сначала вызываем функцию,
присваивающую

параметры

глобальной
переменной, которая буде
т выводиться на экране. В данном случае это функция
coolant
_
temperature
_
F
()


температура
охлаждающей жидкости двигателя.


Затем выводим на экран нужный нам текст, и выводим глобальную
переменную
coolant
_
temperature
_
V
,
которая содержит значение текущей
температуры охлаждающей жидкости.


Пример

того, как задана какая
-
либо функция, показан в листинге 1.9.



Листинг

1.9


Функция

coolant_temperature_F()

void coolant_temperature_F(void) {


delay(delay_V);


BTserial.flush();


BTserial.print("0105");


BTserial.print("
\
r");


REPLY_F();


REPLY_F();


if ((strtol(&rxData[0], 0, 16) == 65) and (strtol(&rxData[3], 0, 16) == 5))


coolant_temperature_V = strtol(&rxData[6], 0, 16)
-

40;

}

45




flush()


о
жидает окончания передачи исходящих данных.

Затем
посылаются команды: «0105»


для получения данных из ЭБУ о температуре
охлаждающей жидкости и «
\
r
»


возврат каретки в начало строки. Далее,
функции
REPLY
_
F
()
возвращает ответ ЭБУ, данное значение преобразо
вываем
и записываем в глобальную переменную
coolant
_
temperature
_
V
.


Рассмотрим теперь функцию получения данных из ЭБУ


REPLY
_
F
()
(листинг 1.9).


Листинг 1.9


Функция
REPLY_F()

void REPLY_F(void) {


char inChar = 0;


if (OFF) {


while(inChar != '
\
r') {


if(BTserial.available() � 0) {


if(BTserial.peek() == '
\
r') {


inChar = BTserial.read();


rxData[rxIndex] = '
\
0';


rxIndex = 0;


}


else {


inChar = BTserial.read()
;


rxData[rxIndex++] = inChar;


}}}}}



available
()
определяет количество байт, доступных для чтения, если есть
что считать, то далее функцией
peek
()
определяем, символ возврата каретки это
или нет («
\
r
»).

Затем считываем данные в буфер с помощью функцией
read
().


Полный код программы представлен в приложении
Б
.


Таким образом,
собран

бортовой компьютер, по представленной мною
схеме, и написа
на скетч
-
прошивка

для платы
Arduino

Uno

R
3.

Данное устройство
разр
аботано с учетом всех имеющихся к нему требований, а также обладает
необходимым функционалом. Разработанный бортовой компьютер имеет
меньшую стоимость, чем у самого дешевого бортового компьютера,
представленного на российском рынке, а также, при необходимо
сти, всегда
можно расширить функционал этого устройства, путем добавления блоков
программного кода в прошивку платы
Arduino
.








46


ЗАКЛЮЧЕНИЕ


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

В рамках р
ешения первой задачи был проведен обзор

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


это высокая стоимость и излишние функциональные возможности.

В рамках решения
второй

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

следующие

проблемы:
счи
тывание и передача информации от
электронного блока управления автомобиля;
приём и обработка
этой
информации; вывод
обработанной
информации для взаимодействия с
пользователем
.

В рамках решения
третьей
задачи
написан скетч
-
прошивка платы
Arduino

для обработ
ки данных.
Решение этой задачи позволяет обрабатывать
полученные данные из электронного блока управления автомобиля, производить
вычисления на основе этих данных, и отправлять информацию на вывод.

В рамках решения четвертой задачи разработан интерфейс для

взаимодействия пользователя с устройством. Интерфейс включает в себя кнопки
«Вперед» и «Назад», которыми
переключаются
экраны устройства, динамик для
звукового оповещения и дисплей для отображения информации.

В рамках решения пятой задачи
были реализованы

алгоритм обработки
информации и человеко
-
машинный интерфейс
, что позволило собрать
устройство и испытать его
на
реальном автомобиле
.

Таким образом, все поставленные задачи решены в полном объеме, цель
работы


разработка программно
-
аппаратного комплекса для контроля текущего
состояния функциональных узлов автомобиля
достигнута.

Результаты, изложенные последовательно по каждой задаче, позволяют
оценить законченность и полноту проведенного исследования.


Данное устройство было испытано на реальном автомобиле


Toyota

Ipsum

2002
года выпуска и проявило себя как полноценный бортовой компьютер, все
параметры работы автомобиля фиксировались и отображались в полной мере и
соответствовали действительности.


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




47


СПИСОК ЛИТЕРАТУРЫ


1.

Авто
мобильный бортовой компьютер БК
-
135.
Руководство

по эксплуатации.
СПб., ОРИОН, 2015.

2.

Автомобильный компьютер
Prestige
-
V
55
. Руководство по эксплуатации.
Н.Новгород, Микро Лайн
,

2015.



3.

Аппаратная

платформа

Arduino

[
Электронный

ресурс
] //
Контроллеры

Arduino

//
Uno



Режим

доступа
:
http
://
arduino
.
ru

4.

Газетин С.
OBD

II

Руководство пользователя. Журнал «12
V
. Диагностика &
гаражное оборудование»; №2 (69), 2005.

5.

Газетин С.
OBD

II

Руководство пользователя. Журнал «12
V
. Диагностика &
гаражное оборудование»; №3 (70),
2005.

6.

Карпенко Е. Возможности
CAN
-
протокола. Журнал «СТА» («Современные
технологии автоматизации»);
№4,
1998.

7.

Маршрутный компьютер
Multitronics

RC
-
700. Руководство по эксплуатации.

М., Multitronics, 2016.

8.

ELM
327
OBD

to

RS
232
Interpreter
.

Technical
description
.

Elm Electronics,
2005
.

9.

HC
-
05


Bluetooth to Serial Port Module.
Technical description.

Shenzhen
,

ITead
Studio,
2010.

10.


ISO 15765. Road Vehicles


Diagnostics on Controller Area Networks (CAN).



Geneva: I.S.O.
, 2004.

11.


ISO 9141
-
2 / ISO 14230. In
itializing Communication to Vehicle OBD II System
.


Sozopol: Electronics, 2005.

12.


LCD
-
2004
HWv
1
datasheet
. Technical description.
Embedded

Adventures
,

2013.

13.


SAE J1850.
Class B Data Communications Network Interface
.


Warrendale, PA:
S.A.E., 1994.

14.


SAE J1962.
Diagnostic Connector.


Warrendale, PA
: S.A.E., 2002.

15.


SAE J1978. OBD II Scan Tool.


Warrendale, PA
: S.A.E., 2002.

16.


SAE J1979.
E/E Diagnostic Test Modes.


Warrendale, PA:

S.A.E., 2006.

17.


SAE J2012.
Diagnostic Trouble Code Definitions.


Warrend
ale, PA
: S.A.E.,
2007.















Приложенные файлы

  • pdf 7735532
    Размер файла: 1 MB Загрузок: 0

Добавить комментарий