Вы же заканчивали медицинский и так разбираться в электронике'контроллерах это хобби?
Всегда хотел помогать и приносить пользу людям. Медицина очень нравится, т.к. работаю с людьми и вижу результаты своего труда в улыбках и побежденных недугах. Бывает человек лечится в течение 5 лет, ничего не помогает. Но приходит ко мне и разложив проблемму по полочкам, понимаешь куда дальше двигаться и что делать. Это анализ ситуации! Так и в электронике - тот же анализ и алгоритмы. Человек похож на компьютер/робота. Есть питание(пищеварение), есть провода(нервы, сосуды), есть двигатели(мышцы), есть каркас(кости), ну и процессор(мозг)...
Увлечение медициной и электроникой шло параллельно, но в проф плане победила медицина. Электроникой занимался сам, ничего не оканчивал, читал, смотрел, использовал метод "НАУЧНОГО ТЫКА". да и раньше когда сложно было что-нить починить для знакомых, брался и на этом практиковался.
Сейчас на электронику времени мало остается - мое отделение реабилитации разрастается, надо решать много вопросов на уровне района города (оборудование, помещения, персонал, страховые компании...), а отчетность это просто пипец - всегда надо вчера сдавать =).
Это все лирика... по делу выкладываю логи снятые с машины при посыле запроса.
Сканирование всех данных из шины CAN -
drPopov.spb.ru/imagesceed/CANBUSSNIFER/ALL_PID_CAN_KIA.txtДанные с шины CAN в момент сканирования PID программой Torque -
drPopov.spb.ru/imagesceed/CANBUSSNIFER/scan_PID_torque.txtДанные только запроса от программы Torque -
drPopov.spb.ru/imagesceed/CANBUSSNIFER/tolko_zapros.txt Данные запроса с ответом машины в программу Torque -
drPopov.spb.ru/imagesceed/CANBUSSNIFER/zapros_s_otvetom.txt Пример
- 7E0, это PID запроса, 02-количество байт в запросе, 21 02 - параметры запроса к мозгам (дополнительный PID). тут и надо понять какой пид за что отвечает.
доп PIDмогут быть 2101,2102,2103 и т.д.
- ответ с PID 7E8. многострочный. строки я пронумеровал ниже. 10-строка-0, 21-строка1, 22-строка2 и т.д.
в строке 0 34 это сколько бит содержится в ответе 34 HEX в десятичной систме = 52 DEC (52 бита информации ответа)
61 показывает, что ответ от мозгов (значение 6) и от запроса 21 (значение 1).
Дальше пошел счет битов: A-значение А3, B- значение 2F, C- значение 00 и т.д. Пример расстановки битов ниже в тексте.
Наш запрос/ответ:
15:36:37.648 7E0 02
21 02 00 00 00 00 00
0: 15:36:37.652 7E8 10 34 61 02 A3 2F 00 00
15:36:37.656 7E0 30 00 00 00 00 00 00 00
1: 15:36:37.661 7E8 21 35 00 60 00 00 00 00
2: 15:36:37.665 7E8 22 00 00 F4 03 00 00 00
3: 15:36:37.669 7E8 23 00 00 00 00 04 00 04
4: 15:36:37.673 7E8 24 00 04 00 04 00 00 00
5: 15:36:37.678 7E8 25 00 00 00 00 00 00 00
6: 15:36:37.683 7E8 26 00 00 00 00 00 00 00
7: 15:36:37.689 7E8 27 00 00 00 00 55 55 55
В формулах есть значения "A", "B" и иногда "C".
На некоторых машинах (Субару и Тойота) в ответ на запрос 2101 приходит ответ с данными о температуре масла.
и расчет по формуле AC-40 = темп масла.
Command: 2101 response: 01F
A B C D
0:61 01 00 00 00 00
E F G H I J K
1:55 61 60 42 6B 85 00
L M N O P Q R
2:00 00 00 00 08 26 50
S T U V W X Y
3:21 21 00 20 05 F5 07
Z AA AB AC
4:43 2F 9B 7B 00 00 00
Смотрим байт AC, он равен 7B, переводим из HEX в DEC и получаем 123. Далее по формуле:
123-40 = 83 градуса масло двигателя.
Задача наша понять какой дополнительный PID (2100,2101 и т.д.) отвечает за какой параметр и по какой формуле считать.
варианты формул для стандартных запросов OBD (думаю мало чем отличаются и можно подставлять значения):
(A*100)/255
A-40
((A-128)*100)/128
A*3
((A*256)+B)/4
A/2-64
((A*256)+B)/100
(A*256)+B
((A*256)+B)*0,079
((A*256)+B)*10
((A*256)+B)/4
((A*256)+B)*0.05
A-125
(A*50)/100
A-B-40
(((A*256)+B)/100)-40
Вот. Теперь надо ломать ответы.