Спасибо за рекомендации.
Сразу скажу, у меня есть опыт работы с языком C и С++ а также в реализации разных протоколов на других языках, есть общее представление о протоколе K Line и его работе.
У меня есть конкретные вопросы, а не общего характера.
Мне нужна отправная точка в конкретной реализации, конкретных компонентов.
Насколько я понимаю есть проблема в том что коммуникация происходит через интерфейс SPI и у ардуино in/out рассчитан на уровни напряжения до 5v, а в линии K Line они могут выйти за пределы 12v.
Отсюда есть аппаратная потребность в средствах согласования логических уровней.
Для этого вроде как могут быть использованы L9637D или LM393.
Здесь же момент с обьединением RX TХ с K Line линией, как может быть реализована прием передача?
По итогу коннекта, возможно кто то может поделится простыми отправными примерами или наработками в плане формирования валидных тестовых данных от ECU.
Отсюда у меня идея что возможно придется реализовать некое подобие сниффера.
Вообщем интересуют какие то наводки чтобы хотя бы понять примерные затраты по времени для реализации такой отправной точки.
,а чем mc 33290 не устроил, там и rx и tx есть
Зачем организовывать снифер, когда есть кучка програм, в том числе и платные, но за месяц много наснифить можно )))
@rkit
Что у вас значит Нет?
Чего Нет?
Почему?
Можете дать более развернутый ответ?
Вы мое предложение прочитали полностью?
Вы знаете что такое согласование логических уровней по напряжению?
,а чем mc 33290 не устроил, там и rx и tx есть Зачем организовывать снифер, когда есть кучка програм, в том числе и платные, но за месяц много наснифить можно )))
вот описание вашего протокола. Рекомендую начать все же с обратной стороны , т.е. с подключения ардуиной к готовому ЭБУ , в этой теме рассматривалось, ищите
Добрый день, подниму старую тему, так как у меня судя по всему похожий блок. Подскажите, у меня ауди а6 с5, подключаюсь к эбу (на столе) с помощью переходника Si9243 он же L9637d. Пробую скетч #107 , при скорости 9600 выдает Rx: B5 Rx: 81 Rx: CA Rx: B5 Rx: 81 Rx: CA, если ставлю скорость 10400 то
---KWP 5 baud init
bit0=0 startbit
bit1=1
bit2=0
bit3=0
bit4=0
bit5=0
bit6=0
bit7=0
bit8=0 parity
bit9=1 stopbit
Rx: 55 Rx: 1 Rx: 8A Tx: 75 Rx: F Tx: F0 Rx: 1 Tx: FE Rx: F6 Tx: 9 Rx: 34 Tx: CB Rx: 42 Tx: BD Rx: 30 Tx: CF Rx: 39 Tx: C6 Rx: 30 Tx: CF Rx: 36 Tx: C9 Rx: 30 Tx: CF Rx: 31 Tx: CE Rx: 38 Tx: C7 Rx: 41 Tx: BE Rx: 41 Tx: BE Rx: 20 Tx: DF Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Rx: 3 Tx: FC Tx: 3 END of ID_1
Rx: 3 Rx: FC Tx: 2 Rx: FD Tx: 9 Rx: F6 Tx: 3 END of Present_1
Rx: FC Tx: 3 Rx: FC Tx: 3 Rx: 4 Tx: FB Rx: FD Tx: 2 Rx: A Tx: F5 Rx: FD Tx: 2 Rx: 3 Tx: 3 END of ID_2
Rx: FC Tx: 4 Rx: FB Tx: 9 Rx: F6 Tx: 3 END of Present_2
Rx: 17 Tx: E8 Rx: 5 Tx: FA Rx: F6 Tx: 9 Rx: 31 Tx: CE Rx: 2E Tx: D1 Rx: 38 Tx: C7 Rx: 4C Tx: B3 Rx: 20 Tx: DF Rx: 52 Tx: AD Rx: 34 Tx: CB Rx: 2F Tx: D0 Rx: 35 Tx: CA Rx: 56 Tx: A9 Rx: 54 Tx: AB Rx: 20 Tx: DF Rx: 20 Tx: DF Rx: 20 Tx: DF Rx: 20 Tx: DF Rx: 20 Tx: DF Rx: 20 Tx: DF Rx: 20 Tx: DF Rx: 20 Tx: DF Rx: 20 Tx: DF Rx: 3 Tx: 3 END of ID_3
Tx: FC Rx: FC Tx: 6 Rx: F9 Tx: 9 Rx: F6 Tx: 3 END of Present_3
Rx: 7 Tx: F8 Rx: 7 Rx: 7
48:52,4 0,0000043 UP 0 .
48:52,4 0,0000022 UP 0 .
48:52,4 0,0000021 UP 0 .
48:52,7 0,0000021 UP 55 U
48:52,7 0,000002 UP 1 .
48:52,7 0,0000025 UP 8a .
48:52,7 0,0371366 DOWN 75 u
48:52,7 0,0000035 UP 75 u
48:52,8 0,0000043 UP 0f .
48:52,8 0,0006192 DOWN f0 .
48:52,8 0,0000034 UP f0 .
48:52,8 0,0000015 UP 1 .
48:52,8 0,0006083 DOWN fe .
48:52,8 0,0000016 UP fe .
48:52,8 0,0000016 UP f6 .
48:52,8 0,0006064 DOWN 9 .
48:52,8 0,0000014 UP 9 .
48:52,8 0,0000014 UP 34 4
48:52,8 0,0006061 DOWN cb .
48:52,8 0,0000014 UP cb .
48:52,8 0,0000021 UP 42 B
48:52,8 0,0006101 DOWN bd .
48:52,8 0,0000016 UP bd .
48:52,8 0,0000015 UP 30 0
48:52,8 0,0006061 DOWN cf .
48:52,8 0,0000014 UP cf .
48:52,8 0,0000014 UP 39 9
48:52,8 0,0006056 DOWN c6 .
48:52,8 0,000002 UP c6 .
48:52,8 0,0000018 UP 30 0
48:52,8 0,0006095 DOWN cf .
48:52,8 0,0000016 UP cf .
48:52,8 0,0000018 UP 36 6
48:52,8 0,0006089 DOWN c9 .
48:52,8 0,0000018 UP c9 .
48:52,8 0,000002 UP 30 0
48:52,8 0,0006103 DOWN cf .
48:52,9 0,0000017 UP cf .
48:52,9 0,0000019 UP 31 1
48:52,9 0,0006081 DOWN ce .
48:52,9 0,0000017 UP ce .
48:52,9 0,0000014 UP 38 8
48:52,9 0,000606 DOWN c7 .
48:52,9 0,0000017 UP c7 .
48:52,9 0,0000016 UP 41 A
48:52,9 0,0006061 DOWN be .
48:52,9 0,0000015 UP be .
48:52,9 0,0000024 UP 41 A
48:52,9 0,000615 DOWN be .
48:52,9 0,0000019 UP be .
48:52,9 0,0000022 UP 20
48:52,9 0,000611 DOWN df .
48:52,9 0,0000017 UP df .
48:52,9 0,0000021 UP 3 .
48:53,0 0,056807 DOWN 3 .
48:53,0 0,0000028 UP 3 .
48:53,0 0,0000024 UP fc .
48:53,0 0,001012 DOWN 2 .
48:53,0 0,0000015 UP 2 .
48:53,0 0,0000017 UP fd .
48:53,0 0,0010144 DOWN 9 .
48:53,0 0,0000016 UP 9 .
48:53,0 0,000002 UP f6 .
48:53,0 0,0010101 DOWN 3 .
48:53,0 0,0000016 UP 3 .
48:53,1 0,0000024 UP 17 .
48:53,1 0,0006066 DOWN e8 .
48:53,1 0,0000017 UP e8 .
48:53,1 0,000002 UP 3 .
48:53,1 0,0006101 DOWN fc .
48:53,1 0,000002 UP fc .
48:53,1 0,0000018 UP f6 .
48:53,1 0,0006101 DOWN 9 .
48:53,1 0,0000016 UP 9 .
48:53,1 0,0000016 UP 31 1
48:53,1 0,0006056 DOWN ce .
48:53,1 0,0000017 UP ce .
48:53,1 0,0000025 UP 2e .
48:53,1 0,0006108 DOWN d1 .
48:53,1 0,0000015 UP d1 .
48:53,1 0,0000016 UP 38 8
48:53,1 0,0006062 DOWN c7 .
48:53,1 0,0000016 UP c7 .
48:53,1 0,0000024 UP 4c L
48:53,1 0,0006112 DOWN b3 .
48:53,1 0,000002 UP b3 .
48:53,1 0,0000015 UP 20
48:53,1 0,0006061 DOWN df .
48:53,2 0,0000021 UP df .
48:53,2 0,0000018 UP 52 R
48:53,2 0,0006104 DOWN ad .
48:53,2 0,0000016 UP ad .
48:53,2 0,0000017 UP 34 4
48:53,2 0,0006101 DOWN cb .
48:53,2 0,0000019 UP cb .
48:53,2 0,0000019 UP 2f /
48:53,2 0,0006096 DOWN d0 .
48:53,2 0,0000016 UP d0 .
48:53,2 0,0000018 UP 35 5
48:53,2 0,0006058 DOWN ca .
48:53,2 0,0000017 UP ca .
48:53,2 0,0000041 UP 56 V
48:53,2 0,0006068 DOWN a9 .
48:53,2 0,0000022 UP a9 .
48:53,2 0,0000016 UP 54 T
48:53,2 0,000606 DOWN ab .
48:53,2 0,0000016 UP ab .
48:53,2 0,0000014 UP 20
48:53,2 0,0006061 DOWN df .
48:53,2 0,0000016 UP df .
48:53,2 0,0000017 UP 20
48:53,2 0,0006114 DOWN df .
48:53,2 0,0000014 UP df .
48:53,2 0,0000013 UP 20
48:53,2 0,0006056 DOWN df .
48:53,2 0,0000014 UP df .
48:53,2 0,0000017 UP 20
48:53,3 0,0006081 DOWN df .
48:53,3 0,0000017 UP df .
48:53,3 0,0000019 UP 20
48:53,3 0,0006106 DOWN df .
48:53,3 0,0000015 UP df .
48:53,3 0,0000017 UP 20
48:53,3 0,0006062 DOWN df .
48:53,3 0,000004 UP df .
48:53,3 0,0000029 UP 20
48:53,3 0,0006106 DOWN df .
48:53,3 0,0000025 UP df .
48:53,3 0,0000027 UP 20
48:53,3 0,0006094 DOWN df .
48:53,3 0,0000016 UP df .
48:53,3 0,000002 UP 20
48:53,3 0,0006105 DOWN df .
48:53,3 0,0000019 UP df .
48:53,3 0,0000021 UP 3 .
48:53,4 0,0648529 DOWN 3 .
48:53,4 0,0000036 UP 3 .
48:53,4 0,0000038 UP fc .
48:53,4 0,0010214 DOWN 4 .
48:53,4 0,0000032 UP 4 .
48:53,4 0,0000023 UP fb .
48:53,4 0,0010196 DOWN 9 .
48:53,4 0,0000021 UP 9 .
48:53,4 0,000002 UP f6 .
48:53,4 0,001011 DOWN 3 .
48:53,4 0,0000021 UP 3 .
48:53,5 0,0000027 UP 7 .
48:53,5 0,0006107 DOWN f8 .
48:53,5 0,0000016 UP f8 .
48:53,5 0,0000013 UP 5 .
48:53,5 0,0006086 DOWN fa .
48:53,5 0,0000015 UP fa .
48:53,5 0,0000015 UP f6 .
48:53,5 0,0006081 DOWN 9 .
48:53,5 0,0000019 UP 9 .
48:53,5 0,0000038 UP 30 0
48:53,5 0,0006067 DOWN cf .
48:53,5 0,0000017 UP cf .
48:53,5 0,000002 UP 30 0
48:53,5 0,0006104 DOWN cf .
48:53,5 0,0000016 UP cf .
48:53,5 0,0000024 UP 30 0
48:53,5 0,0006109 DOWN cf .
48:53,5 0,0000019 UP cf .
48:53,5 0,0000028 UP 36 6
48:53,5 0,0006106 DOWN c9 .
48:53,5 0,0000021 UP c9 .
48:53,5 0,000002 UP 3 .
48:53,6 0,0649815 DOWN 3 .
48:53,6 0,0000034 UP 3 .
48:53,6 0,0000038 UP fc .
48:53,6 0,0010223 DOWN 6 .
48:53,6 0,0000032 UP 6 .
48:53,6 0,000004 UP f9 .
48:53,6 0,0010225 DOWN 9 .
48:53,6 0,0000035 UP 9 .
48:53,6 0,0000035 UP f6 .
48:53,6 0,0010193 DOWN 3 .
48:53,7 0,0000036 UP 3 .
48:53,7 0,0000021 UP 8 .
48:53,7 0,0006112 DOWN f7 .
48:53,7 0,0000017 UP f7 .
48:53,7 0,0000015 UP 7 .
48:53,7 0,0006059 DOWN f8 .
48:53,7 0,0000016 UP f8 .
48:53,7 0,0000016 UP f6 .
48:53,7 0,0006056 DOWN 9 .
48:53,7 0,0000017 UP 9 .
48:53,7 0,000002 UP 0 .
48:53,7 0,0006103 DOWN ff .
48:53,7 0,0000019 UP ff .
48:53,7 0,0000016 UP 20
48:53,7 0,0006056 DOWN df .
48:53,7 0,0000015 UP df .
48:53,7 0,0000015 UP d4 .
48:53,7 0,0006057 DOWN 2b +
48:53,7 0,0000017 UP 2b +
48:53,7 0,0000018 UP 9 .
48:53,7 0,0006098 DOWN f6 .
48:53,7 0,0000016 UP f6 .
48:53,7 0,0000015 UP 15 .
48:53,7 0,0006058 DOWN ea .
48:53,8 0,0000016 UP ea .
48:53,8 0,0000017 UP 3 .
48:53,9 0,1339295 DOWN 3 .
48:53,9 0,0000026 UP 3 .
48:53,9 0,0000015 UP fc .
48:53,9 0,0010078 DOWN 8 .
48:53,9 0,0000019 UP 8 .
48:53,9 0,0000018 UP f7 .
48:53,9 0,0010159 DOWN 9 .
48:53,9 0,0000016 UP 9 .
48:53,9 0,0000016 UP f6 .
48:53,9 0,0010064 DOWN 3 .
48:53,9 0,0000016 UP 3 .
48:53,9 0,0000015 UP 3 .
48:53,9 0,0006061 DOWN fc .
48:53,9 0,0000017 UP fc .
48:53,9 0,0000016 UP 9 .
48:53,9 0,0006061 DOWN f6 .
48:54,0 0,0000016 UP f6 .
48:54,0 0,0000019 UP 9 .
48:54,0 0,0006102 DOWN f6 .
48:54,0 0,0000017 UP f6 .
48:54,0 0,0000019 UP 3 .
48:54,0 0,0679803 DOWN 3 .
48:54,0 0,0000044 UP 3 .
48:54,0 0,0000038 UP fc .
48:54,0 0,0010208 DOWN 0a .
48:54,1 0,0000037 UP 0a .
48:54,1 0,0000024 UP f5 .
48:54,1 0,0010115 DOWN 9 .
48:54,1 0,0000034 UP 9 .
48:54,1 0,0000024 UP f6 .
48:54,1 0,0010178 DOWN 3 .
48:54,1 0,000002 UP 3 .
48:54,1 0,0000033 UP 3 .
48:54,1 0,000612 DOWN fc .
48:54,1 0,0000019 UP fc .
48:54,1 0,0000015 UP 0b .
48:54,1 0,0006058 DOWN f4 .
48:54,1 0,0000017 UP f4 .
48:54,1 0,0000018 UP 9 .
48:54,1 0,00061 DOWN f6 .
48:54,1 0,0000017 UP f6 .
48:54,1 0,0000021 UP 3 .
48:54,2 0,0654035 DOWN 3 .
48:54,2 0,0000046 UP 3 .
48:54,2 0,0000108 UP fc .
48:54,2 0,001023 DOWN 0c .
48:54,2 0,0000037 UP 0c .
48:54,2 0,0000043 UP f3 .
48:54,2 0,0010212 DOWN 9 .
48:54,2 0,0000031 UP 9 .
48:54,2 0,0000017 UP f6 .
48:54,2 0,0010076 DOWN 3 .
48:54,2 0,0000015 UP 3 .
48:54,2 0,0000017 UP 3 .
48:54,2 0,0006088 DOWN fc .
48:54,2 0,0000017 UP fc .
48:54,2 0,0000021 UP 0d .
48:54,2 0,0006111 DOWN f2 .
48:54,2 0,0000016 UP f2 .
48:54,2 0,0000019 UP 9 .
48:54,2 0,0006095 DOWN f6 .
48:54,2 0,0000015 UP f6 .
48:54,2 0,0000014 UP 3 .
48:54,3 0,0677606 DOWN 3 .
48:54,3 0,000005 UP 3 .
48:54,3 0,0000037 UP fc .
48:54,3 0,0010311 DOWN 0e .
48:54,3 0,0000041 UP 0e .
48:54,3 0,0000034 UP f1 .
48:54,3 0,0010193 DOWN 9 .
48:54,3 0,000004 UP 9 .
48:54,3 0,0000037 UP f6 .
48:54,3 0,0010202 DOWN 3 .
48:54,4 0,0000033 UP 3 .
48:54,4 0,0000022 UP 3 .
48:54,4 0,0006122 DOWN fc .
48:54,4 0,000002 UP fc .
48:54,4 0,0000236 UP 0f .
48:54,4 0,0006117 DOWN f0 .
48:54,4 0,0000017 UP f0 .
48:54,4 0,0000017 UP 9 .
48:54,4 0,0006096 DOWN f6 .
48:54,4 0,000002 UP f6 .
48:54,4 0,0000014 UP 3 .
48:54,5 0,0683807 DOWN 3 .
48:54,5 0,0000037 UP 3 .
48:54,5 0,0000031 UP fc .
48:54,5 0,0010134 DOWN 10 .
48:54,5 0,0000043 UP 10 .
48:54,5 0,000004 UP ef .
48:54,5 0,0010229 DOWN 9 .
48:54,5 0,0000035 UP 9 .
48:54,5 0,0000039 UP f6 .
48:54,5 0,0010174 DOWN 3 .
48:54,5 0,0000021 UP 3 .
48:54,5 0,0000024 UP 3 .
48:54,5 0,0006161 DOWN fc .
48:54,5 0,000002 UP fc .
48:54,5 0,0000014 UP 11 .
48:54,5 0,0006069 DOWN ee .
48:54,5 0,0000019 UP ee .
48:54,5 0,0000019 UP 9 .
48:54,5 0,0006092 DOWN f6 .
48:54,5 0,0000016 UP f6 .
48:54,5 0,0000015 UP 3 .
48:54,6 0,0673375 DOWN 3 .
48:54,6 0,0000025 UP 3 .
48:54,6 0,0000016 UP fc .
48:54,6 0,0010089 DOWN 12 .
48:54,6 0,0000019 UP 12 .
48:54,6 0,0000016 UP ed .
48:54,6 0,0010071 DOWN 9 .
48:54,6 0,0000035 UP 9 .
48:54,6 0,000002 UP f6 .
48:54,6 0,0010119 DOWN 3 .
48:54,6 0,000002 UP 3 .
48:54,6 0,0000016 UP 3 .
48:54,6 0,0006092 DOWN fc .
48:54,6 0,0000016 UP fc .
48:54,6 0,0000019 UP 13 .
48:54,6 0,0006103 DOWN ec .
48:54,7 0,0000017 UP ec .
48:54,7 0,0000022 UP 9 .
48:54,7 0,00061 DOWN f6 .
48:54,7 0,0000015 UP f6 .
48:54,7 0,0000015 UP 3 .
48:54,7 0,0665056 DOWN 3 .
48:54,7 0,0000045 UP 3 .
48:54,7 0,000004 UP fc .
48:54,7 0,0010251 DOWN 14 .
48:54,8 0,0000035 UP 14 .
48:54,8 0,000004 UP eb .
48:54,8 0,001022 DOWN 9 .
48:54,8 0,0000034 UP 9 .
48:54,8 0,0000045 UP f6 .
48:54,8 0,0010189 DOWN 3 .
48:54,8 0,0000034 UP 3 .
48:54,8 0,0000017 UP 3 .
48:54,8 0,0006067 DOWN fc .
48:54,8 0,0000018 UP fc .
48:54,8 0,0000016 UP 15 .
48:54,8 0,0006069 DOWN ea .
48:54,8 0,0000018 UP ea .
48:54,8 0,0000021 UP 9 .
48:54,8 0,0006115 DOWN f6 .
48:54,8 0,0000021 UP f6 .
48:54,8 0,0000015 UP 3 .
48:54,9 0,0673228 DOWN 3 .
48:54,9 0,0000034 UP 3 .
48:54,9 0,0000033 UP fc .
48:54,9 0,0010191 DOWN 16 .
48:54,9 0,0000034 UP 16 .
48:54,9 0,0000022 UP e9 .
48:54,9 0,0010181 DOWN 9 .
48:54,9 0,0000023 UP 9 .
48:54,9 0,0000026 UP f6 .
48:54,9 0,0010183 DOWN 3 .
48:54,9 0,000002 UP 3 .
48:54,9 0,0000025 UP 3 .
48:54,9 0,0006122 DOWN fc .
48:54,9 0,0000023 UP fc .
48:54,9 0,0000019 UP 17 .
48:54,9 0,0006099 DOWN e8 .
48:54,9 0,0000018 UP e8 .
48:54,9 0,000002 UP 9 .
48:54,9 0,0006092 DOWN f6 .
48:54,9 0,0000017 UP f6 .
48:54,9 0,0000017 UP 3 .
48:55,0 0,0664323 DOWN 3 .
48:55,0 0,0000036 UP 3 .
48:55,0 0,000003 UP fc .
48:55,0 0,0010178 DOWN 18 .
48:55,0 0,0000035 UP 18 .
48:55,0 0,0000033 UP e7 .
48:55,0 0,0010129 DOWN 9 .
48:55,0 0,0000037 UP 9 .
48:55,0 0,0000152 UP f6 .
48:55,0 0,0010197 DOWN 3 .
48:55,1 0,0000022 UP 3 .
А здесь во время запроса первой группы.
49:24,0 0,000612 DOWN 0x00000000 3e >
49:24,0 0,0000026 UP 0x00000000 3e >
49:24,0 0,0000044 UP 0x00000000 9 .
49:24,0 0,0006141 DOWN 0x00000000 f6 .
49:24,0 0,0000021 UP 0x00000000 f6 .
49:24,1 0,0000025 UP 0x00000000 3 .
49:24,1 0,0585917 DOWN 0x00000000 4 .
49:24,1 0,0000026 UP 0x00000000 4 .
49:24,1 0,0000023 UP 0x00000000 fb .
49:24,1 0,0010121 DOWN 0x00000000 c2 .
49:24,1 0,0000019 UP 0x00000000 c2 .
49:24,1 0,0000027 UP 0x00000000 3d =
49:24,1 0,0010129 DOWN 0x00000000 29 )
49:24,1 0,000002 UP 0x00000000 29 )
49:24,2 0,000003 UP 0x00000000 d6 .
49:24,2 0,0010132 DOWN 0x00000000 1 .
49:24,2 0,0000024 UP 0x00000000 1 .
49:24,2 0,0000021 UP 0x00000000 fe .
49:24,2 0,0010142 DOWN 0x00000000 3 .
49:24,2 0,0000021 UP 0x00000000 3 .
49:24,3 0,0000025 UP 0x00000000 0f .
49:24,3 0,0006107 DOWN 0x00000000 f0 .
49:24,3 0,000002 UP 0x00000000 f0 .
49:24,3 0,0000024 UP 0x00000000 c3 .
49:24,3 0,0006098 DOWN 0x00000000 3c <
49:24,3 0,0000037 UP 0x00000000 3c <
49:24,3 0,0000044 UP 0x00000000 e7 .
49:24,3 0,0006122 DOWN 0x00000000 18 .
49:24,3 0,0000018 UP 0x00000000 18 .
49:24,3 0,0000022 UP 0x00000000 1 .
49:24,3 0,0006098 DOWN 0x00000000 fe .
49:24,3 0,0000017 UP 0x00000000 fe .
49:24,3 0,0000022 UP 0x00000000 c8 .
49:24,3 0,0006104 DOWN 0x00000000 37 7
49:24,3 0,000002 UP 0x00000000 37 7
49:24,3 0,0000023 UP 0x00000000 0 .
49:24,3 0,0006099 DOWN 0x00000000 ff .
49:24,3 0,0000021 UP 0x00000000 ff .
49:24,3 0,0000022 UP 0x00000000 5 .
49:24,3 0,0006099 DOWN 0x00000000 fa .
49:24,3 0,000002 UP 0x00000000 fa .
49:24,3 0,0000022 UP 0x00000000 0a .
49:24,3 0,0006098 DOWN 0x00000000 f5 .
49:24,3 0,0000021 UP 0x00000000 f5 .
49:24,3 0,0000021 UP 0x00000000 34 4
49:24,3 0,0006096 DOWN 0x00000000 cb .
49:24,3 0,0000018 UP 0x00000000 cb .
49:24,4 0,0000022 UP 0x00000000 14 .
49:24,4 0,0006103 DOWN 0x00000000 eb .
49:24,4 0,0000017 UP 0x00000000 eb .
49:24,4 0,0000025 UP 0x00000000 64 d
49:24,4 0,0006101 DOWN 0x00000000 9b .
49:24,4 0,0000022 UP 0x00000000 9b .
49:24,4 0,0000022 UP 0x00000000 80 .
49:24,4 0,0006094 DOWN 0x00000000 7f
49:24,4 0,0000017 UP 0x00000000 7f
49:24,4 0,000002 UP 0x00000000 10 .
49:24,4 0,0006096 DOWN 0x00000000 ef .
49:24,4 0,0000018 UP 0x00000000 ef .
49:24,4 0,0000023 UP 0x00000000 ff .
49:24,4 0,0006104 DOWN 0x00000000 0 .
49:24,4 0,000002 UP 0x00000000 0 .
49:24,4 0,0000023 UP 0x00000000 32 2
49:24,4 0,0006098 DOWN 0x00000000 cd .
49:24,4 0,0000018 UP 0x00000000 cd .
49:24,4 0,0000022 UP 0x00000000 3 .
49:24,5 0,0526368 DOWN 0x00000000 4 .
49:24,5 0,0000022 UP 0x00000000 4 .
49:24,5 0,0000021 UP 0x00000000 fb .
49:24,5 0,0010202 DOWN 0x00000000 c4 .
49:24,5 0,0000018 UP 0x00000000 c4 .
49:24,5 0,0000023 UP 0x00000000 3b ;
49:24,5 0,0010113 DOWN 0x00000000 29 )
49:24,5 0,000002 UP 0x00000000 29 )
49:24,5 0,0000023 UP 0x00000000 d6 .
49:24,5 0,0010115 DOWN 0x00000000 1 .
49:24,5 0,0000021 UP 0x00000000 1 .
49:24,5 0,000002 UP 0x00000000 fe .
49:24,5 0,001011 DOWN 0x00000000 3 .
49:24,5 0,0000037 UP 0x00000000 3 .
49:24,6 0,0000021 UP 0x00000000 0f .
49:24,6 0,0006111 DOWN 0x00000000 f0 .
49:24,6 0,0000023 UP 0x00000000 f0 .
49:24,6 0,0000023 UP 0x00000000 c5 .
49:24,6 0,0006098 DOWN 0x00000000 3a :
49:24,6 0,0000019 UP 0x00000000 3a :
49:24,6 0,0000022 UP 0x00000000 e7 .
49:24,6 0,0006106 DOWN 0x00000000 18 .
49:24,6 0,0000018 UP 0x00000000 18 .
49:24,6 0,0000023 UP 0x00000000 1 .
49:24,6 0,0006098 DOWN 0x00000000 fe .
49:24,6 0,0000016 UP 0x00000000 fe .
49:24,6 0,0000022 UP 0x00000000 c8 .
49:24,6 0,0006107 DOWN 0x00000000 37 7
49:24,6 0,0000017 UP 0x00000000 37 7
49:24,6 0,0000025 UP 0x00000000 0 .
49:24,6 0,000609 DOWN 0x00000000 ff .
49:24,6 0,0000022 UP 0x00000000 ff .
49:24,6 0,0000022 UP 0x00000000 5 .
49:24,6 0,00061 DOWN 0x00000000 fa .
49:24,6 0,000002 UP 0x00000000 fa .
49:24,6 0,0000021 UP 0x00000000 0a .
49:24,6 0,000611 DOWN 0x00000000 f5 .
49:24,6 0,0000019 UP 0x00000000 f5 .
49:24,6 0,0000021 UP 0x00000000 34 4
49:24,6 0,0006096 DOWN 0x00000000 cb .
49:24,6 0,0000019 UP 0x00000000 cb .
49:24,7 0,0000023 UP 0x00000000 14 .
49:24,7 0,0006096 DOWN 0x00000000 eb .
49:24,7 0,0000016 UP 0x00000000 eb .
49:24,7 0,0000023 UP 0x00000000 64 d
49:24,7 0,0006096 DOWN 0x00000000 9b .
49:24,7 0,000004 UP 0x00000000 9b .
49:24,7 0,0000025 UP 0x00000000 80 .
49:24,7 0,0006117 DOWN 0x00000000 7f
49:24,7 0,0000019 UP 0x00000000 7f
49:24,7 0,0000021 UP 0x00000000 10 .
49:24,7 0,0006102 DOWN 0x00000000 ef .
49:24,7 0,0000022 UP 0x00000000 ef .
49:24,7 0,000002 UP 0x00000000 ff .
49:24,7 0,0006097 DOWN 0x00000000 0 .
49:24,7 0,0000019 UP 0x00000000 0 .
49:24,7 0,0000026 UP 0x00000000 32 2
49:24,7 0,0006099 DOWN 0x00000000 cd .
49:24,7 0,0000018 UP 0x00000000 cd .
49:24,7 0,0000024 UP 0x00000000 3 .
49:24,8 0,0687275 DOWN 0x00000000 4 .
49:24,8 0,0000021 UP 0x00000000 4 .
49:24,8 0,0000023 UP 0x00000000 fb .
49:24,8 0,0010103 DOWN 0x00000000 c6 .
49:24,8 0,0000019 UP 0x00000000 c6 .
49:24,8 0,0000022 UP 0x00000000 39 9
49:24,8 0,0010121 DOWN 0x00000000 29 )
49:24,8 0,0000019 UP 0x00000000 29 )
49:24,8 0,0000018 UP 0x00000000 d6 .
49:24,8 0,0010093 DOWN 0x00000000 1 .
49:24,8 0,0000015 UP 0x00000000 1 .
49:24,8 0,0000017 UP 0x00000000 fe .
49:24,8 0,0010079 DOWN 0x00000000 3 .
49:24,8 0,0000048 UP 0x00000000 3 .
49:24,9 0,0000023 UP 0x00000000 0f .
49:24,9 0,0006094 DOWN 0x00000000 f0 .
49:24,9 0,0000015 UP 0x00000000 f0 .
49:24,9 0,0000017 UP 0x00000000 c7 .
49:24,9 0,0006084 DOWN 0x00000000 38 8
49:24,9 0,0000016 UP 0x00000000 38 8
49:24,9 0,0000015 UP 0x00000000 e7 .
49:24,9 0,0006053 DOWN 0x00000000 18 .
49:24,9 0,0000015 UP 0x00000000 18 .
49:24,9 0,0000017 UP 0x00000000 1 .
49:24,9 0,0006071 DOWN 0x00000000 fe .
49:24,9 0,0000018 UP 0x00000000 fe .
49:24,9 0,0000017 UP 0x00000000 c8 .
49:24,9 0,0006092 DOWN 0x00000000 37 7
49:24,9 0,0000017 UP 0x00000000 37 7
49:24,9 0,0000015 UP 0x00000000 0 .
49:24,9 0,0006053 DOWN 0x00000000 ff .
49:24,9 0,0000014 UP 0x00000000 ff .
49:24,9 0,0000017 UP 0x00000000 5 .
49:24,9 0,0006089 DOWN 0x00000000 fa .
49:24,9 0,0000013 UP 0x00000000 fa .
49:24,9 0,0000017 UP 0x00000000 0a .
49:24,9 0,000609 DOWN 0x00000000 f5 .
49:24,9 0,0000014 UP 0x00000000 f5 .
49:24,9 0,0000014 UP 0x00000000 34 4
49:24,9 0,0006054 DOWN 0x00000000 cb .
49:24,9 0,0000014 UP 0x00000000 cb .
49:25,0 0,0000018 UP 0x00000000 14 .
49:25,0 0,0006088 DOWN 0x00000000 eb .
49:25,0 0,0000014 UP 0x00000000 eb .
49:25,0 0,0000014 UP 0x00000000 64 d
49:25,0 0,0006052 DOWN 0x00000000 9b .
49:25,0 0,0000015 UP 0x00000000 9b .
49:25,0 0,0000014 UP 0x00000000 80 .
49:25,0 0,0006064 DOWN 0x00000000 7f
49:25,0 0,0000015 UP 0x00000000 7f
49:25,0 0,0000016 UP 0x00000000 10 .
49:25,0 0,0006124 DOWN 0x00000000 ef .
49:25,0 0,0000016 UP 0x00000000 ef .
49:25,0 0,0000013 UP 0x00000000 ff .
49:25,0 0,0006053 DOWN 0x00000000 0 .
49:25,0 0,0000014 UP 0x00000000 0 .
49:25,0 0,0000024 UP 0x00000000 32 2
49:25,0 0,0006067 DOWN 0x00000000 cd .
49:25,0 0,0000012 UP 0x00000000 cd .
49:25,0 0,0000016 UP 0x00000000 3 .
49:25,1 0,0639817 DOWN 0x00000000 4 .
49:25,1 0,0000036 UP 0x00000000 4 .
49:25,1 0,0000038 UP 0x00000000 fb .
49:25,1 0,0010191 DOWN 0x00000000 c8 .
49:25,1 0,0000042 UP 0x00000000 c8 .
49:25,1 0,0000036 UP 0x00000000 37 7
49:25,1 0,0010215 DOWN 0x00000000 29 )
Извините, не знаю чем снять снифф в нужном формате...
Есть продвижения. Разобрался почему стопорится на ff. Наступил на свой же костыль так сказать, до этого писал условие чтобы обрезать первые два 0x00, а так как ff это инвертированый 00, видимо под него попадало. исправил приведя свой костыль к такому виду:
.... while ((recvcount == 0) || (recvcount != size)) {
while (obd.available()){
delay(1);
data = obdRead();
// delay(3);
// Serial.print(" Rx: ");
// Serial.print(data,HEX);
// if(xxx != 2 || data == 0x00 ){
if(xxx != 2){
xxx++;
} else {
s[recvcount] = data;
recvcount++;
if ((size == 0) && (recvcount == 1)) {
size = data + 1;
if (size > maxsize) {
Serial.println("ERROR: invalid maxsize");
return false;
} ......
Вроде решил проблему, скорость подключения к блоку поставил 10000, теперь все работает. Не понятно почему на 9600 (как у всех) вообще не подключается к блоку, а на 10400 периодически прерывается...
иногда влияет к-лайн висит на софт сериале или хард. Если на софт работаете, возможно как вариант из за этого со скоростями непонятки. По поводу добавления групп , выложите что рабочий скетч выдает . Группы выбрать возможно строки 627 628 последнего скетча
Но по такой формуле у меня расход на холостых 0.3-0.4 литра, чего не может быть. Может я не правильно понимаю? InjQua - это время впрыска RPM - обороты двигателя? А где здесь производительность форсунки?
Мой эбу в 15 группе вообще не выдает данных.(( Считаю по такому алгоритму, найденному на форумах:
Из мозгов двигателя для этой задачи мы можем вытащить:
- обороты двигателя;
- длительность впрыска;
- скорость движения.
Так же необходимо знать производительность форсунки (см3/мин). Где её взять? Впрыск у нас фазированный, поэтому имеем 2 впрыска на один оборот двигателя. Получается:
Расход = (обороты/60) * (2*длительность впрыска/1000) * (произв.форс./1000)/60 = л/сек.
где обороты выражены в об/сек, длительность впрыска в сек., производительность форсунок в л/сек (1 см3 = 0,001 л)
Умножив л/сек на 3600 сек получим л/час. Ну а зная скорость движения, мы можем вычислить за сколько часов/секунд мы проедем расстояние 100 км. V = S/t = км/час
@DetSimen Можете пожалуйста подсказать какую теорию и по каким книгам?
Про мультики на ютубе я ничего не писал :)
Для начала Керниган и Ритчи "Язык программирования Си"
Потом про саму шину чонить умное.
Спасибо за рекомендации.
Сразу скажу, у меня есть опыт работы с языком C и С++ а также в реализации разных протоколов на других языках, есть общее представление о протоколе K Line и его работе.
У меня есть конкретные вопросы, а не общего характера.
Мне нужна отправная точка в конкретной реализации, конкретных компонентов.
Насколько я понимаю есть проблема в том что коммуникация происходит через интерфейс SPI и у ардуино in/out рассчитан на уровни напряжения до 5v, а в линии K Line они могут выйти за пределы 12v.
Отсюда есть аппаратная потребность в средствах согласования логических уровней.
Для этого вроде как могут быть использованы L9637D или LM393.
Здесь же момент с обьединением RX TХ с K Line линией, как может быть реализована прием передача?
По итогу коннекта, возможно кто то может поделится простыми отправными примерами или наработками в плане формирования валидных тестовых данных от ECU.
Отсюда у меня идея что возможно придется реализовать некое подобие сниффера.
Вообщем интересуют какие то наводки чтобы хотя бы понять примерные затраты по времени для реализации такой отправной точки.
,а чем mc 33290 не устроил, там и rx и tx есть
Зачем организовывать снифер, когда есть кучка програм, в том числе и платные, но за месяц много наснифить можно )))
Насколько я понимаю есть проблема в том что коммуникация происходит через интерфейс SPI
Нет. Читай учебник по схемотехнике и цифровым интерфейсам, раз такие "понимания" в голову приходят.
@rkit
Что у вас значит Нет?
Чего Нет?
Почему?
Можете дать более развернутый ответ?
Вы мое предложение прочитали полностью?
Вы знаете что такое согласование логических уровней по напряжению?
@woodhousel
Можете пожалуйста привести конкретный пример насчет программы?
Нет, коммуникация не происходит через интерфейс SPI.
https://www.drive2.ru/l/490647993997853063/
Там в тексте есть ссылка на исходники
Нет, коммуникация не происходит через интерфейс SPI.
Согласен, не то написал по тексту) Там нету SPI
В голове был по другому проекту модуль CAN шины для ардуины через SPI =)
https://freedelivery.com.ua/arduino-100/moduli-137/modul-can-shiny-konve...
Извиняюсь за опечатку)
Спасибо! Посмотрю
Еще нашел такую библиотеку на гитхабе https://github.com/iwanders/OBD9141
и там вроде есть простой пример эмуляции
https://github.com/iwanders/OBD9141/blob/master/examples/simulator/simulator.ino
тынц
вот описание вашего протокола. Рекомендую начать все же с обратной стороны , т.е. с подключения ардуиной к готовому ЭБУ , в этой теме рассматривалось, ищите
Добрый день, подниму старую тему, так как у меня судя по всему похожий блок. Подскажите, у меня ауди а6 с5, подключаюсь к эбу (на столе) с помощью переходника Si9243 он же L9637d. Пробую скетч #107 , при скорости 9600 выдает Rx: B5 Rx: 81 Rx: CA Rx: B5 Rx: 81 Rx: CA, если ставлю скорость 10400 то
Помогите, что нужно поправить, чтоб успешно получать данные от эбу.
Bill1389 я перехватывал обмен со сканером и по нему уже смотрел скорости и байты инициализации
Я так понимаю со скетчем 107 инициализация проходит?
А со 111 нет, так как первые два байта 0 0 а потом уже идет то что нужно 55 01 8A ?
А у вас vag? все заработало?
У меня Subaru европейка - всё работает.
Поправил немного скетч #111, так чтобы отрезать первые 2 0x00, получил следующую картину:
т.е блок что-то отвечает, перевел в char - отвечает номер блока, объем и тд, т.е. тоже что и вася показывает:
не пойму, почему не идет дальше ---KWPReceive sz=0 blockCounter=7 на этом зависает и все.
Нужен сниф с Васи диагноста
Здесь момент подключения васей
А здесь во время запроса первой группы.
Извините, не знаю чем снять снифф в нужном формате...
Еще снял другим сниффером подключение к эбу и запрос первой группы.
Сниффер при запуске скетча 111
Доходит до 266 строки предыдущего сниффера с васей и шлет 08 вместо ff
Есть продвижения. Разобрался почему стопорится на ff. Наступил на свой же костыль так сказать, до этого писал условие чтобы обрезать первые два 0x00, а так как ff это инвертированый 00, видимо под него попадало. исправил приведя свой костыль к такому виду:
Теперь получаю следующий ответ:
Непонятно почему он теперь стопорится после первого прохода....
Вроде решил проблему, скорость подключения к блоку поставил 10000, теперь все работает. Не понятно почему на 9600 (как у всех) вообще не подключается к блоку, а на 10400 периодически прерывается...
Выложу, на всякий случай, рабочий скетч Александра, который заработал у меня, вдруг кому-то пригодится...
Если кто-то подскажет, как добавить группы, буду очень признателен. Интересует например 20, 114, 115 группы. Ну и чтение ошибок.
иногда влияет к-лайн висит на софт сериале или хард. Если на софт работаете, возможно как вариант из за этого со скоростями непонятки. По поводу добавления групп , выложите что рабочий скетч выдает . Группы выбрать возможно строки 627 628 последнего скетча
Выдает в консоль:
Блок на столе, поэтому данных нет.
пробуйте строчки ниже 628 со своими группами добавлять
Я предполагал, но не думал что так просто) Спасибо. Добавил - работает, во всяком случае что-то показывает, нужно на машине проверять...
Подскажите пожалуйста, как считать расход топлива по времени впрыска? Нашел такие формулы в соседней ветке про Зафиру:
1
LHor = (
float
)RPM* (
float
)InjQua*2.00/1000.00*60.00/1000.00/0.85;
2
3
L100 = (
float
)LHor*100.00/(
float
)Speed;
Но по такой формуле у меня расход на холостых 0.3-0.4 литра, чего не может быть. Может я не правильно понимаю? InjQua - это время впрыска RPM - обороты двигателя? А где здесь производительность форсунки?
Inj qua это количество топлива за такт. Через время впрыска трудно подсчитать, ищите в параметрах цикловую подачу топлива, должна быть
Так этот параметр есть готовый в ЭБУ. Или у Вас его нету?? Блок двигателя-15группа-2окно
Мой эбу в 15 группе вообще не выдает данных.(( Считаю по такому алгоритму, найденному на форумах:
Из мозгов двигателя для этой задачи мы можем вытащить:
- обороты двигателя;
- длительность впрыска;
- скорость движения.
Так же необходимо знать производительность форсунки (см3/мин). Где её взять? Впрыск у нас фазированный, поэтому имеем 2 впрыска на один оборот двигателя. Получается:
Расход = (обороты/60) * (2*длительность впрыска/1000) * (произв.форс./1000)/60 = л/сек.
где обороты выражены в об/сек, длительность впрыска в сек., производительность форсунок в л/сек (1 см3 = 0,001 л)
Умножив л/сек на 3600 сек получим л/час. Ну а зная скорость движения, мы можем вычислить за сколько часов/секунд мы проедем расстояние 100 км. V = S/t = км/час
Расход (л/100) = л/сек * ((100 км/скорость) / 3600) = л/100
https://www.blafusel.de/obd/obd2_kw1281.html
Это просматривали ?
неужели нет в параметрах цикловой подачи ?
Скорее всего нету, во всяком случае я не нашёл ни чего такого((