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