CyrilTipo155 писал(а):Вчера говорил с Трусовым и разглядывал его турбомонстра уже засунутого в машину. Он тоже подтверждает что при попытке поговорить с мотроником по К-лайну движок принудительно глохнет. Как тебе-то это удалось? Или ты правил прошивку?
Ну вы блин дайоте! Ну прошивку я конечно меняю и экспериментирую с ней постоянно, но сам протокол обмена не затрагивал пока. Затрагивал только скорость передачи данных. По этому работать все должно на неперешитых мозгах 100% Тем более я на неперешитых и начинал экспериментировать кстати так же как и ты - 3 года назад

.
Ладно если действительно интересно стало могу подсказать:
1.необходимо иметь нормальный девайс K-Line <-> COM Port. Лучше на специализированной микрухе дабы избежать багов при приеме \ передаче.
2.Обмен происходит в режиме полудуплекса, и никак иначе в формате:
<идентификатор> Запрс[..] - <идентификатор> Положительный ответ[..]
<идентификатор> Запрс[..] - <идентификатор> Отрицательный ответ[..]
еще возможен вариант если ECU тормоз, или нет ответа на данный момент тогда
конструкция будет выглядеть так:
<идентификатор> Запрс - <идентификатор> Отрицательный ответ [запрос правильный, задержка ответа]
<идентификатор> Отрицательный ответ[запрос правильный, задержка ответа]
<идентификатор> Положительный ответ[Yes

]
--
2.Временные характеристики передачи пакетов запрос - ответ нарушать нельзя,
иначе может произойти конец связи. По временным характеристикам, их 4, значения привожу в мсек:
1.Межбайтовый интервал для ответа ECU - min 0 мах 20
2.Время между запросом девайса и ответом ECU- min 25 max 50
3.Время между окончанием ответа ECU и началом следующего запроса- min 100 max 5000
4.Межбайтовый интервал для запроса твоего девайса min 0 max 20
---
Формат пакета сообщения:
1.Заголовок сообщения 3 или 4 байта (при 4-х байтном заголовке последний байт
определяет длинну сообщения), при 3 байтном заголвке максимальная длинна
сообщения 63 байта, при 4 сответственно 255 байт. Первый байт заголовка
определяет формат сообщения, второй адрес приемника, третий адрес источника.
Адреса Приемника и источника фиксированы стандартом и имеют значения для
ECU - 10h, для диагностического тестера F1h для иммобилайзера C0h.
2.Данные. Первый байт - тип передаваемых данных, далее сами данные.
3.Контрольная сумма пакета 1 байт.
Ну и приведу пример :
Для начала нам необходимо установить связь с блоком для чего существует
сообщение startCommunication код 81h параметров нет. В ответ на него
мы должны получить сообщение с кодом C1 и двумя параметрами определяющими
тип заголовка и поддерживаемыми парамптрами обмена скорее всего это будет
слово 6B8F.
Итак формируем пакет запроса:
первый байт - байт формата -2 последних бита определяют режим адресации
(всегда 10 - физический), шесть бит определяют длинну поля данных
(для 3 байтного заголовка 63 байта макс.)
второй байт адрес приемника 10h, третий адрес источника F1h а не С0h

Теперь данные - команда STC - 81h. Контрольная сумма всего
Получаем:
4110F1 - заголовок
81h данные
04h - чексумма
Весь пакет запроса 4110F18104
ответ должен выглядеть так:
43F110C16B8F06
где 43h F1h 10h - заголовок
C1h 6Bh 8Fh -ответ блока.
06h- чексумма.
Все. Мотор не должен глохнуть. Если все получится скажу что дальше делать.
Я уже не помню, честно говоря, чего я делал, это почти 3 года назад было. Нашел где-то в интернете хау-ту про К-лайн, сварганил фигню на параллельный порт для ноутбука и попытался поговорить.