Здравейте,Интересуват ме следните неща за EDC15:1) Двата пина на буксата за дисгностика са Rx и Tx (тоест приемане и предаване на данни) ?2) Baud rate, stop bits, контрол по четност.3) Как мога да комуникирам с ECU-то ? Тук не говорим за ELM интерфейс.Ако някой може да поговори, нека сподели.
Реклама
Collapse
Съобщение
Collapse
No announcement yet.
Fiat Live Data Reader [Bosch EDC15 ECU протокол ?]
Collapse
X
-
emzo написа:K линия само, няма тука Рх и Тх, това да не ти е газова уредба В буксата имаш К линия двупосочна и маса (GND)Какво искаш точно да направиш ?04/2000 Fiat Brava 1.9 JTD 105+
Коментар
-
Ето тук http://www.blafusel.de/obd/obd2lcd_d.html#1 един немец го е направил, но не дава кода на програмата.04/2000 Fiat Brava 1.9 JTD 105+
Коментар
-
vgeorgiev написа:Здравейте, "Бордовия компютър" е почти завършен хардуерно.Остава да започна да работя по комуникацията.A20DTH ЖТД ама не баш
1NZ−FXE ; 182A8.000 Брава
Х... 330XD, Мултипла, Мареа, Либра, Пунто; 166; Брава; 146; Тема; 145; Типо; Панда
Коментар
-
Здравейте,След голямо търсене, най-накрая открих, че протокола е ISO 14230-2. Още наречен KPW2000.По - долу има два документа по въпроса.Открих една библиотека, която ми помогна да имплементирам комуникацията.За сега вързах борд компа с терминална програма и изкарах началното съобщение.Остана да вържа кабелите с колата. http://kwp2000.hit.bg/fiat_kwp2000.pdfhttp://kwp2000.hit.bg/K-line_communi...%29%5B1%5D.pdfЕто и схемата http://kwp2000.hit.bg/AVR-ISO_Interface_Iss.B.pdf04/2000 Fiat Brava 1.9 JTD 105+
Коментар
-
Здравейте колеги,Имам малък напредък с проекта.1. Поправих кода така, че да се компилира.2. Направих хардуерната част.3. Извиках инициализиращата функция.Опитах да се свържа с ECU-то.... Без успех.Бързата комуникация се инициира по следния начин:1. 25ms ниско ниво на линията.2. 25ms високо ниво на линията.3. 10400bps се изпраща 0xC1, 0x33, 0xF1, 0x81където: C1 - формат байт33 - адреса на ECU-тоF1 - адреса на тестера81 - рекуест за старт на комуникациятаНакрая се праща чек сума. В случая 66След голямо ровене установих, че адреса на моето еку е 0А.Пробвах да инициирам комуникация с 0xC1, 0x0А, 0xF1, 0x81 3D е чек сумата в този случай.От ECU-то трябва да получа: 0x83, 0xF1, 0x0A, 0xC1, 0xYY, 0xZZ, 0xCS, където YY и ZZ са ключови думи, а CS е чек сумата.Отново неуспех.Изнервих се и вързах устройствто към един USB-TTL адаптер и пуснах терминала да видя какво ще получа.Получавам 0xC1, 0x0А, 0xF1, 0x81, 0x3D, което е правилната комбинация, но понякога получавам: 0xC1, 0x0А, 0xF1, 0x81, 0xBD.Имам проблем с последния байт, а именно чек сумата (само с него).Каквото и да подам чек сумата мърда понякога с 0x10000000.Като се има в предвид, че LSB се предава първи, а MSB последен си мисля, че понякога последняи предаден бит е грешен.Някой занимавал ли се е с подобен проект ?Нека помогне.04/2000 Fiat Brava 1.9 JTD 105+
Коментар
-
vgeorgiev написа:Оказа се, че Unidiaga изпраща 0x81 [ECU] [Tester] 0x81 0xCS След всеки байт, чака за ехо от линията.Много документи описват rt Communication Message-а, като: 0XC1 [ECU] [Tester] 0x81 0xCS Объркан съм. Някой знае ли кое е вярното и защо ?
Коментар
-
Здравейте,Свързах го!!! Най - накрая.Правилната комбинация се оказа 0x81, 0x0А, 0xF1, 0x81, 0xBD.Това го видях от дебъг лога на unidiaga.Пусках тази последователност и пак не стана. Най-накрая пак с осцилоскопа и видях, че между байтовете нямам никакви паузи. Един байт се предава като:1. един старт бит.2. 8 дита3. стоп битОбщо 10 бита.При скорост 10400kbs това прави 10/10400 ~ 1ms.Ето какво изкарва Unidiaga като го "затапя" (TxD<->RxD):Код:Log file Iso9141Thread 7:00:52 PM0 COM port: COM5 set229 COM port: COM5 opened229 COM port: COM5 timeouts set231 COM port: COM5 RTS and DTR set/cleared296 baudrate switched to: 10400296 25ms pulse fast init start321 25ms pulse fast init stop347 send: 81348 echo: 81 OK354 send: 0A355 echo: 0A OK361 send: F1362 echo: F1 OK368 send: 81369 echo: 81 OK375 send: FD376 echo: FD OK Error Wait_timeout rcv7032 rcvd: nothing/errorStartTester: error 7034 COM port closed
todorakiggg написа:vgeorgiev написа:Оказа се, че Unidiaga изпраща 0x81 [ECU] [Tester] 0x81 0xCS След всеки байт, чака за ехо от линията.Много документи описват rt Communication Message-а, като: 0XC1 [ECU] [Tester] 0x81 0xCS Объркан съм. Някой знае ли кое е вярното и защо ?04/2000 Fiat Brava 1.9 JTD 105+
Коментар
-
Разбрах формата на съобщението.Има много изключения от правилото, но ще обясня, това, което сеизползва от EDC17 и Unidiag-a.[Format byte] [Target] [Source] [Data]...[Data] [CS]Където: Format byte: битове XXLL LLLL. Ако XX = 10 -> физически адрес (използваният от нас) Ако XX = 11 -> функционален адрес LLLLLL определя дължината на данние и/или дали ще има байтза дължина на данните. Ако LLLLLL = 000000 - тогава имаме байт за дължина(това не е нашия случай). Ако LLLLLL е различно от 000000 тогава това числоопределя броя на байтовете с данни. Target: 0x0A адреса на ECU-то. Source: 0xF1 адреса на тест устройството. Data: данните, които предаваме, или приемаме CS: Чек сума. Смята се като сума на всички байтве с данни и отполученото число се взимат последните 8 бита.Пример за инициализация:1) 25ms ниско ниво2) 25ms високо ниво Това е еднократно (освен ако няма тайм аут от 5 сек.) 1) може да се постигне ако се прати 0x00 на 360bps.3) 0x81 0x0A 0xF1 0x81 0xFD0x81: 1000 0001. Имаме физическо адресиране и един байт данни0x0A: адреса на еку-то0xF1: адреса на тестера0x81: Start Communication Request0xFD: чек сума.Еку-то трябва да отговори с:0x83 0xF1 0x0A C1 0xYY oxZZ 0xCS0x83 от тук се вижда, че байтовете са три.0xF1 и 0x0A са съответно адресите на тестера и еку-то.0xC1 е подтвърждение на рекуеста 0x81.0xXX , 0xYY са ключовата дума.С това инициализацията приключва.04/2000 Fiat Brava 1.9 JTD 105+
Коментар
-
Здравейте, Успях да получа данни от ЕКУ-то.Интерфейса е 99% както на ELM327.След инициализацията трябва да се поиска startDiagnosticSession .Тук хватката е да се diagnostic mode = fa или по-фолямо число. Това са дисгностични режими на Фиат. Тук бях ударил на камък. Но всичко си го пише в документа, няколко поста по-нагоре.изпращам: 82 0a f1 10 faполучавам: 7F 10 12 . Това според документа е отказ за диагностика: subFunctionNotSupportedСлед това може да се изискат данни от ЕКУ-то:Километраж:От Unidiag def файла: RDBLI_2000, 0x21, 0x03, "Odometer", 1, "Odometer", 1, "#scaling unsigned 3 X*1 km";изпращам: 82 0a f1 21 03получавам: 61 03 68 80 6E. 61 03 е отговора на 21 03 заявката. 68 80 6Е са данние.Това е 6848622 десетично число. Въпроса е как да го сметна ??? километража в момента е на 198997км."scaling unsigned 3" scaled числата са мащабирани. Тоест би трябвало да го разделя на 3 или на 10^3, не съм сигурен, но и по двата начина не става.Напрежение на акумулатора:От Unidiag def файла: RDBLI_2000, 0x21, 0x43, "Battery voltage", 1, "Battery voltage", 1, "#scaling unsigned 2 (X*20.372 + 700)/1000 Volt";изпращам: 820af12143получавам: 61 43 02 44 61 43 е отговора на 21 43 заявката. 02 44 са данние.Това дава 580 десетично число. (580 *20.372 + 700)/1000 Volt = 12,51VТова е напрежение е ОК, обаче километража не е ОК.04/2000 Fiat Brava 1.9 JTD 105+
Коментар
Реклама
Collapse
Коментар