Перейти к содержанию
17-й ежегодный слет Корандоводов 2024 - Сибирь!

Программа для включения круиза и прочих настроек для Тагаза, под ELM327 и Андроид


Рекомендуемые сообщения

8 часов назад, Valera_Che сказал:

Это тот самый "правильный" адаптер с PIC18F25K80 ?

Не знаю какой там чип. Не вскрывал. Не заказывал нигде. В соседних гаражах нашёл.

Ссылка на комментарий

Посмотрел что в адаптере который НЕ связывается с ЭБУ.

По аппаратной части там всё круто. Даже слишком круто. Блютус модуль BK3231 со встроенным ARM9 + CAN контроллер MCP2515 в паре с приёмопередатчиком TJA1050.

То есть, аппаратно- там более чем достаточно. Вся беда в ПО. Может так оказаться что ISO 14320 там реализован, но AT команды не совместимы с ELM327. Где взять инфу- я пока ХЗ. Это пичалька номер раз.

Пичалька номер дваз. Внедрить туда оригинальную ELM не выйдет. Ибо общение блютусни с CAN-контроллером идёт по SPI, а не RS232 под который заточен ELM. Алгоритмы протоколов вшиты в блютуз модуль.

Ссылка на комментарий
1 час назад, Lynx сказал:

Вся беда в ПО.

Значит там не прошивка, а паршивка. Об этом и речь.

 

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

Пятый, он потому, что идет в даташите на ЕЛМ, идет под номером пять.

Нормальный ЕЛМ, должен работать со следующими протоколами.

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

-> ATSP_(вместо черточки, номер протокола, об этом ниже).

0 - Automatic
1 - SAE J1850 PWM (41.6 Kbaud)
2 - SAE J1850 VPW (10.4 Kbaud)
3 - ISO 9141-2 (5 baud init, 10.4 Kbaud)
4 - ISO 14230-4 KWP (5 baud init, 10.4 Kbaud)
5 - ISO 14230-4 KWP (fast init, 10.4 Kbaud)
6 - ISO 15765-4 CAN (11 bit ID, 500 Kbaud)
7 - ISO 15765-4 CAN (29 bit ID, 500 Kbaud)
8 - ISO 15765-4 CAN (11 bit ID, 250 Kbaud)
9 - ISO 15765-4 CAN (29 bit ID, 250 Kbaud)
A - SAE J1939 CAN (29 bit ID, 250* Kbaud)
B - USER1 CAN (11* bit ID, 125* Kbaud)
C - USER2 CAN (11* bit ID, 50* Kbaud)

*****************************************************

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

Это есть инициализация ЕЛМ, подготовка его для работы с 5ым протоколом.

 

-> ATZ
<- >
<- 
<- ELM327 v1.5
<- 

Придет ответ о версии прошивки ЕЛМ, и возможно какие то детали о нем, в том числе и не верные, они не важны. Главное, произойдет сброс прибора, но ранее пред установленный протокол, не измениться.

_____________________________

-> ATSP5
<- >ATSP5
<- OK
<-

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

_______________________________

-> atal
<- >atal
<- OK
<-

Разрешить длинные сообщения
Стандартным протоколом OBDII ограничено количество байт данных в сообщении  до семи,  ELM327 обычно столько и посылает,  (для передачи и приема). Если набрать AL, то ELM327 позволит  отправлять ,восемь байт данных)и получать длинные, (неограниченные )сообщения. AL По умолчанию эта опция отключена.            
 

Набирается эта команда, для проверки поддержки ельмом собственно ее.

На дальнейший диалог с ЭБУ, она не повлияет.

_________________________________________

-> ath1
<- >ath1
<- OK
<- 

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

На дальнейший диалог с ЭБУ, она не повлияет.

_______________________________________

-> ate0
<- >ate0
<- OK
<- 

Отключаем эхо, что бы не было двойных сообщений.

На дальнейший диалог с ЭБУ, она не повлияет.

_______________________________

-> atsh8101f1
<- >OK
<- 

Пред устанавливаем заголовок, для связи ЕЛМ с ЭБУ двигателя, он у нас улетит в ЭБУ, после следующей команды.

______________________________

Далее уже пойдут команды, которые будут посланы в ЭБУ. Никакого вреда, Блоку они не нанесут, даже, если будут не верными. Зажигание должно быть уже включено.

_______________________________

-> 81

Запрос на связь.

 Мы не увидим (увидим в последствии, в ответе), но он уйдет, с данными, из выше описанной команды ( будет подставлен набранный заголовок).

ожидаемый ответ.

 

<- >BUS INIT: OK
<- 83 F1 01 C1 E9 8F AE

Означает связь установлена.

Если придет типа

>ATSH 81 01 F1
OK

>81
SEARCHING...
UNABLE TO CONNECT

То не включили зажигание.

Если 

>ATSH 81 01 F1
OK

>81
BUS INIT: ... ERROR

То ЭБУ вам не хочет отвечать.

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

>81

Не делая инициализацию ЕЛМ заново.

_______________________________________

Если блок ответил, можно отправить любую команду предусмотренную стандартом ISO-14230

Например

-> 2190

Получим ответ
<- >93 F1 01 61 90 4B 50 2D 52 35 41 31 36 50 39 4D 30 30 32 31 34 38 72 

Это  кусок ВИН кода вашего АВТО, и если вставить его в ASCII редактор (или перевести в уме, как это делают на передаче "Удивительные люди"), то получим следующий результат.

“сaђKP-R5A16P9M002148r

Код зашитый в ЭБУ конкретного двигателя ТаГаз, не совпадает с реальностью.

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

Впрочем не трудно далее домыслить самому.

 

 

Изменено пользователем Azovsky
  • +1 1
Ссылка на комментарий
38 минут назад, Azovsky сказал:

Значит там не прошивка, а паршивка. Об этом и речь.

Видимо.

В общем, ждём новую версию. В ручном режиме связь есть. В "автомате" связи нет.

Ссылка на комментарий
4 часа назад, Lynx сказал:

В ручном режиме связь появилась.

Почти ура.

Вот лог.

Не понятна причина появления жирных строк.  У предидущего адаптера не было этих строчек. ХЗ, мож и не влияет ни на что.

"*Disconnect*
*Disconnect*
*Connected(1)*
State=1
State=2


ELM327 v1.5

>+CONNECTING<<36:1?

>NNECTED
?

>ATZ

ATZ


ELM327 v1.5

>ATSP5

ATSP5
OK

>ATE0

ATE0
OK

>ATAL

OK

>ATH1

OK

>ATSH8101F1

OK

>81

BUS INIT: OK
83 F1 01 C1 E9 8F AE 

>2190

93 F1 01 61 90 4B 50 2D 52 35 41 31 36 50 38 4D 30 30 30 32 33 35 6C 

>"

 

 

Вот это хорошая новость.

Жирная строка действительно не понятная. 

Посмотрю в программе, не может-ли там где-то мусор попадать.

Ссылка на комментарий
16 часов назад, Azovsky сказал:

...Если набрать AL, то ELM327 позволит  отправлять ,восемь байт данных)...

...и тут нас ждут веселые приключения. Для отправки блока конфигурационных данных нужно 12 байт, не считая заголовка. Мой ELM v1.5 отправлял 8, забивая последние 4 байта белибердой. После чего ЭБУ вылетал с ошибкой "недопустимое кодирование". Из этого состояния его получалось вывести только дилерским сканером. 

 

Ссылка на комментарий

Неон, да пусть поиграются, не мешай. Тебе же потом на хлеб с маслом больше достанется:)

Для всех. Вот в этой теме есть и фоты, и схемы, и описания существующих адаптеров. 

После прочтения многое станет понятным.

Ссылка на комментарий
8 часов назад, neon416 сказал:

...и тут нас ждут веселые приключения. Для отправки блока конфигурационных данных нужно 12 байт, не считая заголовка. Мой ELM v1.5 отправлял 8, забивая последние 4 байта белибердой. После чего ЭБУ вылетал с ошибкой "недопустимое кодирование". Из этого состояния его получалось вывести только дилерским сканером. 

 

Спасибо за предупреждение. 

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

2 байта команды + 8 байт данных = 10 байт.

 

Пакет отправляемый ЭБУ при записи Variant Coding 

8A 01 F1 - заголовок из команды ATSH

3B A0  - команда

2B 82 80 03 00 53 01 55 - данные 8 байт

30 - контрольная сумма, ее вычисляет и передает ельм

 

 

Будет печально если окажется что ельмом только читать ошибки можно.

Ссылка на комментарий
1 час назад, maks1978 сказал:

Неон, да пусть поиграются, не мешай. Тебе же потом на хлеб с маслом больше достанется:)

Он со своим супердевайсом и без моей помощи запас масла имеет :biggrin:

Ссылка на комментарий

Три байта в хедере не в счет. 8A 01 F1

Десять байт в дате - перебор. 3B A0 2B 82 80 03 00 53 01 55

checksum, не в счет 30.

BlueTooth адаптер K-Line

 

 

 

 

Ссылка на комментарий

:( Тоска-печаль. Читать можем, а записать нет.

По ссылке, идея хорошая, но существует в единственном экземпляре.

Тогда проще K-Line и обычный компьютер. А хотелось-то с телефона.

 

Ссылка на комментарий
Только что, AndreyA100 сказал:

Тогда проще K-Line и обычный компьютер. А хотелось-то с телефона

А такое предложение было. 

Тема как я понимаю закрыта.

 

Ссылка на комментарий

Было, было, но хотелось-то по модному.

Получилось как в том анекдоте "не догоню, так согреюсь".

Какой-то опыт в андроидном программировании приобрел, исходники может еще где-то пригодятся.

 

Ссылка на комментарий

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

Вот прога на смартфон, по проверке ЕЛМ.

Это состояние ГУД. Видно, что  целиком поддержка версий ПО до 1.4

61346ds-960.jpg

А Это БЭД.

4ab146ds-960.jpg

Ссылка на комментарий
4 часа назад, AndreyA100 сказал:

По ссылке, идея хорошая, но существует в единственном экземпляре.

Тогда проще K-Line и обычный компьютер. А хотелось-то с телефона.

Кто мешает написать прогу на андроиде не под ЕЛМ, а под обычный (прямой) БТ-Клайн?

4 часа назад, AndreyA100 сказал:

Читать можем, а записать нет.

Можно обойти если ЕЛМ способен передавать по 1 байту.

Ссылка на комментарий
3 часа назад, Lynx сказал:

Кто мешает написать прогу на андроиде не под ЕЛМ, а под обычный (прямой) БТ-Клайн?

Можно обойти если ЕЛМ способен передавать по 1 байту.

Ни что не мешает, только не существует в природе широко продаваемого и дешевого адаптера БТ-Клайн.

Можно теоретически под DS150E написать, но он стоит не бюджетно и писать под него намного сложнее.

Не умеет ельм передавать по одному байту.

Изменено пользователем AndreyA100
Ссылка на комментарий
В 15.10.2018 в 21:46, AndreyA100 сказал:

не существует в природе широко продаваемого и дешевого адаптера БТ-Клайн.

"правильный" ELM327, на пик 16f и есть прямой БТ-Клайн. Там с блютус модуля выходит RX-TX, которые надо перебросить на выходные буферы минуя саму микруху ЕЛМ. И всё. Теперь имеем прямой БТ-Клайн без АТ комант. Весь протокол можно писать в андроид софте.

Грубо говоря- надо вставить 1 переключатель в адаптер и хард готов.

Вот схема КЛ-адаптера с К и Л линиями:

71a89cs-960.jpg

Если Л-линия не нужна, то схема ещё прощще:

41bf89cs-960.jpg

Вместо микрухи FT232RL у нас блютус модуль от ЕЛМ, а вместо L9637 у нас выходные буфера ЕЛМ.

Изменено пользователем Lynx
Ссылка на комментарий
36 минут назад, Lynx сказал:

Там с блютус модуля выходит RX-TX, которые надо перебросить на выходные буферы минуя саму микруху ЕЛМ. И всё. Теперь имеем прямой БТ-Клайн без АТ комант.

И который будет работать только на той скорости на которую настроен выход BT модуля.

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

Если не веришь полистай описание протокола ISO14230

 https://yadi.sk/d/e5Pgqvpz3UhxPi

Ссылка на комментарий
45 минут назад, AndreyA100 сказал:

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

Если не веришь полистай описание протокола ISO14230

Почему не верю. Просто не знал...

Полистал...10400- действительно, не стандарт. Однако 9600 очень близок к нему. И. Судя по тому что у "некоторых" всё работает по RS-232 или USB- которые тоже не имеют 10400 битрейта в спецификации, это не есть проблема. На сколько помню, все мои адаптеры работали на скорости 9600 и связь с машинами была.

45 минут назад, AndreyA100 сказал:

И который будет работать только на той скорости на которую настроен выход BT модуля.

Сомневаюсь что он не настраивается, ибо БТ модули стандартны и как правило поддерживают все стандартные скорости. По сути, это просто беспроводной COM порт. И сомневаюсь что К-Лайн не будет работать на 9600.

Скорее всего 9600 и 10400 это одно и то же, только 9600 это без учёта передачи служебных бит, а 10400 с учётом.

Опять же. Все К-лайн адаптеры, которые доводилось использовать(РС-232 и УСБ) в настройках порта использовали скорость 9600.

PS. Судя по использованию ISO 14320-4 fast init. Скорее всего танцы с бубнами вокруг скоростей не понадобятся. ЭБУ жестко сидит на 10400 и никаких синхронизаций скорости обмена(как в 5-baud init)- не нужно.

Изменено пользователем Lynx
Ссылка на комментарий

Ага. Со скоростями всё немножечко не так... НО. 

Принцип настройки СОМ девайса на нестандартную скорость описан тут: https://masterkit.ru/zip/BM9213_10400_bod.pdf

 

Ссылка на комментарий
37 минут назад, Lynx сказал:

Скорее всего 9600 и 10400 это одно и то же, только 9600 это без учёта передачи служебных бит, а 10400 с учётом.

 

9600 и 10400 бит в секунду, разница есть?

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

Про задание скорости ВТ модулей почитать можно тут

http://robotclass.ru/articles/bluetooth-hc-05-06/

 http://robotclass.ru/wp-content/uploads/2015/04/AT_HC05.pdf

Вроде и можно запрограммировать, но скорости 10400 там нет.

 

Изменено пользователем AndreyA100
Ссылка на комментарий
8 минут назад, AndreyA100 сказал:

9600 и 10400 бит в секунду, разница есть?

Есть есть. Просто иногда по разному считают эти самые биты. 

Да. Почитал немножко ещё, действительно, в KWP2000 имеется в виду реальные 10400, как 9600, только 10400. 

10 минут назад, AndreyA100 сказал:

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

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

Короче засада. 

Получается что единственный вариант который в принципе может настроиться на 10400- это усб-клайн. Теоретически его можно прицепить к андроиду, но всё упирается в драйвер для андроида. Так что скорее всего ПК или ноут.

Ссылка на комментарий
2 минуты назад, Lynx сказал:

Теоретически его можно прицепить к андроиду, но всё упирается в драйвер для андроида. Так что скорее всего ПК или ноут.

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

Обмен в пользовательской программе через bluetoth в андроиде реализован хорошо, а вот с usb все намного сложнее. По usb работают только стандартные устройства (мышки, флешки, модемы) и то не все и из программы прямого доступа к ним нет.

 

Ссылка на комментарий

Есть некий девайс...

http://bezkz.su/publ/300296-11-1-0-296.html

Прямой БТ-Клайн. Скорость обмена с ЭБУ задаётся тинькой адаптера. Т.е. полученные по БТ команды буферизуются в тиньке на стандартной скорости и передаются в ЭБУ на скорости ЭБУ. То что нужно... Но... это только если самому собирать. Пока изучаю, вроде ПО открытое и есть исходник. Можно попытаться переделать прогу под ПИК16F и просто перешить адаптер ЕЛМ в "прямой".

PS. Искать и не сдаваться! Найти и перепрятать! ;) 

Изменено пользователем Lynx
Ссылка на комментарий
8 минут назад, Lynx сказал:

перешить адаптер ЕЛМ в "прямой".

И тогда обратной дороги не будет,  ELM уже не воскресить.

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

Разбить, обработать, послать в блок, это не для БТ скоростей.

Пока, народ делает это по CAN шине, и на проводных ELM, не наш вариант.

14 минут назад, Lynx сказал:

Есть некий девайс..

Ссылку я эту уже давал, почитай посты выше.

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

П. С.

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

 

 

Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...