Добро пожаловать на форум по автодиагностике, автосканерам! Чтобы общаться на форуме и получить доступ к информации, пожалуйста, зарегистрируйтесь!









Автосканеры, оборудование для диагностики


Вернуться   Форум по автодиагностике, автосканерам, ремонту, обслуживанию и эксплуатации автомобилей > Оборудование для автосервисов > Мультимарочные диагностические сканеры
Расширенный поиск

Мультимарочные диагностические сканеры Всё по работе с автосканерами Launch, AutoCom, Барс, Bosch KTS, Autoboss, Carman scan и др.

Где взять описания CAN-протоколов для разных марок?..


Like Tree34Likes

Ответ
 
LinkBack Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2015, 12:35   #1 (permalink)
Новичок
 
Регистрация: 30.01.2015
Сообщений: 66
Вы сказали Спасибо: 12
Поблагодарили 5 раз(а) в 5 сообщениях
Сказал(а) Фууу!: 0
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: Беларусь, Минск
Авто: Hyundai i30 (FD), MАЗ 544069
По умолчанию

ddk_f, еще раз спрашиваю, где я написал про транспортный?

Меня интересовала инкапсуляция пакетов протокола более высокого уровня. Она найдена. Что Вы пытаетесь доказать?

Для новичков Ваша информация будет полезна.

PS. Ничего личного. Но если и это сообщение не донесет до Вас смысл происходящего, тогда и не знаю, как быть. Считаю дальнейшие препирательства на данную тему нецелесобразными.
ghost_gluck вне форума   Ответить с цитированием
Старый 19.03.2015, 09:56   #2 (permalink)
Участник тусовки
 
Регистрация: 05.01.2014
Сообщений: 111
Вы сказали Спасибо: 1
Поблагодарили 63 раз(а) в 21 сообщениях
Сказал(а) Фууу!: 0
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: Земля
По умолчанию //

Ещё раз - удалось связаться с шиной (то есть, каким-то образом увидели, что данные идут и(или) записываются), - значит, "транспортно - стандартный" уровень CAN преодолели. Далее - надо думать, как интерпретировать полученные данные. Это все равно, что получил я, к примеру (пример, кстати, реальный, - из того времени, когда изучал ОБД и у меня на авто как раз периодически высвечивался чек), в 4-м и 5-м байте ответа на запрос 0x7DF 01 03 00 00 00 00 00 00 (идентификатор и 8 байт данных) получил ответное сообщение 0x7E8 04 43 01 08 33 AA AA AA (здесь в принятой форме 16-ричной записи (0x) я указал только для идентификаторов сообщений, хотя данные представлены также в 16-ричной форме) Теперь надо понять, какая информация тут представлена. Для этого берем открытое описание OBD и интерпретируем: "0x7DF" - это идентификатор запроса на диагностику по ОБД стандарту (об этом я прочитал ранее, причем в разных местах, в Вики, на буржуйских сайтах и форумах канхакеров и т.д. и уже знал, с каким идетификатором должно быть это сообщение. Далее нулевой байт этого сообщения имеет значение "01". Этим я сообщаю системе диагностики, опять же по стандарту ОБД, что "далее следует 1 байт с данными, а после него - можно байты не читать, - все равно в них не содержится никакой информации". То есть, нулевой байт определяет длину поля со значащими данными. Следующий (первый) байт имеет значение "03". По стандарту ОБД - это служба, отвечающая за хранение и предоставление по запросу действующих на настоящий момент ошибках. Теперь ответное сообщение: "0x7E8" - идентификатор стандартного ответного сообщения. "04" - то же самое - количество следующих байт с полезной информацией "43" - байт, получаемый суммированием 16-ричных 03 (которое я посылал в запросе) и 40 (40 прибавляется всегда в ответном сообщении если все нормально и запрос корректный и принят) - тем самым подсистема диагностки авто как бы дает понять, что она принимает и обрабатывает запросы. Дальше - непосредственно данные: "01" - количество сообщений, содержащих данные об ошибках (ведь их может быть и не одна) В данном случае - ошибка одна и она вполне вместилась в это же сообщение, так как на код каждой ошибки тратится 2 байта. (Видимо, поместится и две ошибки, просто, соответственно, в нулевом байте будет указана длина поля со значащими данными не 4 а 6.) "08" и "33" - непосредственно код ошибки. Не буду долго расписывать, как он декодируется (можно посмотреть в Вики), скажу только, что прикольно - визуально в 16-ричной системе можно сразу сказать без "особой тренировки", что код ошибки P0833. Далее - по-крайней мере в моем Кобальте незначащие байты заполняются именно АА (может, видимо, быть по другому, однако это не интересует - по нулевому байту можно точно сказать, сколько байт рассматривать). А вот далее - по коду ошибки узнаем, что эта ошибка - датчика положения педали сцепления.. Так вот, все эти "описания" как интерпретировать все данные (получаемые, отсылаемые) и проч. и описаны в открытом протоколе обмена ОБД.

----------

Вот реальный принт-скрин лога в момент, когда я посылал запрос и получал ответ как раз для вышесказанного:

Вообще, сообщения делятся на два вида - постоянно "висящие" в шине - это служебные, которой обмениваются блоки как раз по протоколу производителя, некоторая информация из которых понятна, о чем я писал ранее.
В данном случае, во фрагмент кадра попали несколько сообщений между моим запросом и ответом системы.
По времени получения кадра видно, что ответ на запрос пришел примерно через 1 мс.
Интересно, что постоянные служебные сообщения посылаются с периодом менее 1 мс. Это очень быстро - учитывая скорость обмена - 500 кбит/с.
Для эмуляторов это говорит о том, что дешевенькие простенькие контроллеры, допустим ELM327 не справятся с задачей полной эмуляции...

----------

Добавлю - это выполнено при помощи универсального CAN-USB адаптера Marathon.
Можно было, конечно, настроить его аппаратный фильтр для пропуска только интересующих сообщений (настраивается как для одиночного сообщения, так и для группы идентификаторов - по диапазону). Фильтры чаще всего и применяются в подобных случаях - когда в сети много сообщений (сеть сильно загружена), и, чтобы не тратить процессорное время контроллера адаптера и программно-процессорное время непосредственно обрабатывающей системы (например, компа с соответствующей ОС и ПО), и премяняются фильтры.
Как правило, при разработке протоколов обмена стараются скомпоновать сообщения по их идентификаторам наряду с приоритетностью, принадлежностью к тем или иным группам и проч. ещё и из соображений простоты и удобства пользования аппаратной фильтрацией.
Так например, в случае с ОБД при снятии марафоном, - я устанавливаю фильтр (на самом деле в аппаратной фильтрации всегда два параметра - MASK и CODE) и маску и код фильтра в 0x7E0, и адаптер начинает пропускать на обработку сообщения только с идентификаторами из диапазона ОБД.
В том примере, что на рисунке, я аппаратной фильтрацией не пользовался - там мне было интересно, как это все будет коррелировать с другими (служебными) сообщениями...

----------

Так вот - самое главное - реверс - инжениринг и предполагает разобраться во всех этих служебных протоколах конкретного производителя, как это я показал на примере открытого протокола ОБД.
У меня уже есть дешевенькие кан-сканеры vag-com, op-com.
Интересует для GM. Что можно приобрести по цене не выше 5 килорублей?
4еснок likes this.
Alexo вне форума   Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Alexo за сообщение:
4еснок (19.03.2015), ra4pou (25.11.2018), Ufv32 (03.12.2018), Алексей 76 (16.06.2015)
Старый 19.03.2015, 10:59   #3 (permalink)
Участник тусовки
 
Регистрация: 10.06.2014
Сообщений: 226
Вы сказали Спасибо: 0
Поблагодарили 63 раз(а) в 48 сообщениях
Сказал(а) Фууу!: 0
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: Украина
Авто: L405, L550MY17
По умолчанию

[QUOTE=Alexo;275580]Для этого берем открытое описание OBD и интерпретируем: "0x7DF" - это идентификатор запроса на диагностику по ОБД стандарту (об этом я прочитал ранее, причем в разных местах, в Вики, на буржуйских сайтах и форумах канхакеров и т.д. и уже знал, с каким идетификатором должно быть это сообщение. Далее нулевой байт этого сообщения имеет значение "01"./QUOTE]

В протоколе "UDS" адрес "0x7DF" для общих команд, к примеру если подать команду вытереть ошибки "14" то откликнутся все блоки на исполнение этой команды.

В пакете первый байт не нулевой а количество байтов , если первая цифра 1Х то пакет длинный , пример 07 - это семь байт а есле 10 08 то это уже 8-мь байт так как он в транспотный КАН не влезает передают его в несколько КАН-посылок. 1F F8 - это передача FF8 hex байт.

В конце данных пустые места заполняются по разному и это зависет от производителя , по стандарту при передачи заполнять нужно 55 а при приеме АА но иногда идут нули а иногда ленятся и кеш оперативки.
ddk_f вне форума   Ответить с цитированием
Сказал Спасибо ddk_f за это сообщение:
aduard (20.02.2020)
Старый 19.03.2015, 11:09   #4 (permalink)
Участник тусовки
 
Регистрация: 05.01.2014
Сообщений: 111
Вы сказали Спасибо: 1
Поблагодарили 63 раз(а) в 21 сообщениях
Сказал(а) Фууу!: 0
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: Земля
По умолчанию

Цитата:
Сообщение от ddk_f Посмотреть сообщение
В пакете первый байт не нулевой а количество байтов...
"Нулевой" - в смысле по счету - это для обывателей счет байтов начинается с 1-го по 8-й, для программистов же это ОБЯЗАТЕЛЬНО с 0-го по 7-ой (так же как и биты). Это важно, так как внутреннее представление определенных байтов и бит в контроллере происходит именно так.
С остальным согласен - в стандарте ОБД все расписано, думаю более детально разжевывать смысла нет...
Alexo вне форума   Ответить с цитированием
Старый 19.03.2015, 15:03   #5 (permalink)
Абориген
 
Аватар для GASCHE
 
Регистрация: 20.07.2013
Сообщений: 875
Вы сказали Спасибо: 58
Поблагодарили 182 раз(а) в 126 сообщениях
Сказал(а) Фууу!: 2
Сказали Фууу! 2 раз(а) в 2 сообщениях
Откуда: Москва, Троицк
По умолчанию

Цитата:
Сообщение от Alexo Посмотреть сообщение
в 4-м и 5-м байте ответа на запрос 0x7DF
Как то все натянуто, обычно ответ с ID 00 00 07 E8 приходит на запрос ID 00 00 07 E0.
GASCHE вне форума   Ответить с цитированием
Старый 19.03.2015, 15:09   #6 (permalink)
Участник тусовки
 
Регистрация: 05.01.2014
Сообщений: 111
Вы сказали Спасибо: 1
Поблагодарили 63 раз(а) в 21 сообщениях
Сказал(а) Фууу!: 0
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: Земля
По умолчанию

Цитата:
Сообщение от GASCHE Посмотреть сообщение
Как то все натянуто, обычно ответ с ID 00 00 07 E8 приходит на запрос ID 00 00 07 E0.
На что "натянуто"?.. Что значит "обычно"? А бывает и не приходят?
На 7E0 ТОЖЕ придет аналогичный ответ.

P.S. А чего это обозначение идентификатора с кучей нулей (не лень нули писать), или имелись ввиду 29-битные идентификаторы?..
Alexo вне форума   Ответить с цитированием
Старый 19.03.2015, 15:48   #7 (permalink)
Абориген
 
Аватар для GASCHE
 
Регистрация: 20.07.2013
Сообщений: 875
Вы сказали Спасибо: 58
Поблагодарили 182 раз(а) в 126 сообщениях
Сказал(а) Фууу!: 2
Сказали Фууу! 2 раз(а) в 2 сообщениях
Откуда: Москва, Троицк
По умолчанию

Цитата:
Сообщение от Alexo Посмотреть сообщение
Что значит "обычно"?
Значит, что адрес запроса и ответа отличается на 8.
Цитата:
Сообщение от Alexo Посмотреть сообщение
(не лень нули писать)
не лень, ID передается 4 битами.
GASCHE вне форума   Ответить с цитированием
Старый 19.03.2015, 16:05   #8 (permalink)
Участник тусовки
 
Регистрация: 05.01.2014
Сообщений: 111
Вы сказали Спасибо: 1
Поблагодарили 63 раз(а) в 21 сообщениях
Сказал(а) Фууу!: 0
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: Земля
По умолчанию

Цитата:
Сообщение от GASCHE Посмотреть сообщение
Значит, что адрес запроса и ответа отличается на 8.
Вы вообще представляете предмет, о котором пишите с такой уверенностью?
Вот ещё отдельный запрос и ответ, если не понятен пример, приведенный выше:

Ну и сложите 7DF с 8, если получите в сумме 7E8 - получите премию математического института Клэя.
Вообще - моя прога использует только 7DF - запросы и прекрасно получает 7E8 - ответы по всему ОБД-протоколу.
Насчет - "не лень" - у каждого свои причуды..

Последний раз редактировалось Alexo; 19.03.2015 в 16:09..
Alexo вне форума   Ответить с цитированием
Старый 19.03.2015, 18:49   #9 (permalink)
Новичок
 
Регистрация: 30.01.2015
Сообщений: 66
Вы сказали Спасибо: 12
Поблагодарили 5 раз(а) в 5 сообщениях
Сказал(а) Фууу!: 0
Сказали Фууу! 0 раз(а) в 0 сообщениях
Откуда: Беларусь, Минск
Авто: Hyundai i30 (FD), MАЗ 544069
По умолчанию

Alexo, все правильно пишет GASCHE. 7DF, как писал
Цитата:
Сообщение от ddk_f Посмотреть сообщение
В протоколе "UDS" адрес "0x7DF" для общих команд
Да вы тоже читали это.
Но есть еще 8 адресов, для каждого из 8 блоков. Т.е. 0x7E0:0x7E8 - пара request/response для первого ECU. Т.е. команды шлем на 0x7E0, а ответ получаем от 0x7E8. И так для каждого последующего ECU.
Например, у меня на посыл команды сброса всех ошибок в 0x7DF - приходит ответ c ID 0x7DC.
Список команд диагностики - см. ISO 15765-3. Chapter 9. Diagnostic service implementation. Посмотрите таблицы 59,60 главы 10.4.2 этого же документа.
Адреса, про которые я писал, вы найдете в ISO 15765-4. Глава 11bit CAN Identifiers.

----------

Сегодня к МАЗу подключиться не удалось, т.к. переходник, которым я пользовался, от Autocom. Других разъемов у меня нет, а автокомовский - литой, раздербанить можно, но не стоит.
Попробую сделать отдельный шнур для МАЗа с пинами и еще разподключиться.

----------

Цитата:
Сообщение от Alexo Посмотреть сообщение
Вообще - моя прога использует только 7DF - запросы и прекрасно получает 7E8 - ответы по всему ОБД-протоколу.
Такое лучше не делать не зная комманд. Не зная номера блока ECU можно нарваться на ECU SRS. Ну и послав что-то не то, могут стрельнуть подушки (тут я утрирую, но все-таки предостережение).
IMHO, Если команда предназначена какому-то блоку единолично, то лучше слать по request ID этого блока.
Как поступать дальше - решать Вам.
ghost_gluck вне форума   Ответить с цитированием
Старый 19.03.2015, 22:25   #10 (permalink)
Абориген
 
Аватар для GASCHE
 
Регистрация: 20.07.2013
Сообщений: 875
Вы сказали Спасибо: 58
Поблагодарили 182 раз(а) в 126 сообщениях
Сказал(а) Фууу!: 2
Сказали Фууу! 2 раз(а) в 2 сообщениях
Откуда: Москва, Троицк
По умолчанию

Цитата:
Сообщение от Alexo Посмотреть сообщение
Более того - я тоже где-то читал, что в некоторых случаях прибавляется 8-ка.
Смотрим ISO 15765-4 First edition 2005-01-15

6.3.2.2 11 bit CAN identifiers
Table 3 specifies the 11 bit CAN identifiers for legislated OBD, based on the defined mapping of the
diagnostic addresses.

Table 3 — 11 bit legislated-OBD CAN identifiers
CAN identifier Description
(hex)
7DF CAN identifier for functionally addressed request messages sent by external test equipment
7E0 Physical request CAN identifier from external test equipment to ECU #1
7E8 Physical response CAN identifier from ECU #1 to external test equipment
7E1 Physical request CAN identifier from external test equipment to ECU #2
7E9 Physical response CAN identifier from ECU #2 to external test equipment
7E2 Physical request CAN identifier from external test equipment to ECU #3
7EA Physical response CAN identifier from ECU #3 to external test equipment
7E3 Physical request CAN identifier from external test equipment to ECU #4
7EB Physical response CAN identifier ECU #4 to the external test equipment
7E4 Physical request CAN identifier from external test equipment to ECU #5
7EC Physical response CAN identifier from ECU #5 to external test equipment
7E5 Physical request CAN identifier from external test equipment to ECU #6
7ED Physical response CAN identifier from ECU #6 to external test equipment
7E6 Physical request CAN identifier from external test equipment to ECU #7
7EE Physical response CAN identifier from ECU #7 to external test equipment
7E7 Physical request CAN identifier from external test equipment to ECU #8
7EF Physical response CAN identifier from ECU #8 to external test equipment
-----------------------------------------------------
While not required for current implementations, it is strongly recommended (and may be required by applicable
legislation) that for future implementations the following 11-bit CAN identifier assignments be used:
7E0/7E8 for ECM (engine control module);
7E1/7E9 for TCM (transmission control module).
Заметьте что читал не где-то. Поэтому думаю вопрос
Цитата:
Сообщение от Alexo Посмотреть сообщение
Вы вообще представляете предмет, о котором пишите с такой уверенностью?
вы должны задать в первую очередь себе
GASCHE вне форума   Ответить с цитированием
Ответ






Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Текущее время: 08:23. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод:
zCarot
Автодиагностика и автосканеры.