VW Scanner - портативный сканер для VAG небольшой отчетец

  • Автор темы Pasha@VR6
  • Дата начала
  • Ответы 348
  • Просмотры 232К

Pasha@VR6

2b || !2b
Сообщения
2 025
Реакции
739
Город
г. Минск, РБ
Авто
Шаран продан! Да зравствует Шаран!
В начале хочу напомнить о том, что первая версия VW-сканера была разработана в 2003 году Георгием Гайдаренко, и конструкция сканера была описана на сайте http://www.vw-scaner.narod.ru/

Мини сканер умеет: считывать информацию о контроллере (название конроллера и номер по VAG'у), считывать ошибки из памяти контроллера, удалять ошибки и показывать значения блоков измерений.

Фактически, это портативный, сильно упрощенный VAG1551 B)

Устройство собрано:








В результате работ, проведенных Павлом Лавровичем (aka Cyber_RAT), функциональные возможности сканера значительно расширены.

На той же самой элементной базе (ЖКИ-индикатор в 2 строки по 16 символов, MCU AT90S8515 (atmega8515), 4 кнопки и еще кое-какие копеечные мелочи) сканер теперь:
  • Осуществляет через K-L-Line интерфейс обмен данными с блоками ECU по протоколу KWP1281 на скоростях 1200, 2400, 4800, 9600 и 10400 бит/сек. Желаемую скорость соединения можно указать предварительно. Если соединения на указанной скорости не произойдет, то сканер автоматически предпримет попытки установить соединение на всех других доступных ему скоростях. Значение скорости, на которой установлено последнее соединение с каким-либо ECU, будет сохранено в памяти сканера и следующее соединение будет автоматически начато на этой же скорости. Это особенно удобно, если Вы отлаживаете неисправность в какой-то определенной системе автомобиля и неоднократно устанавливаете связь с ECU этой системы;
  • Не имеет ограничения по типам поддерживаемых ECU. Наиболее распространенные и чаще всего необходимые (по мнению авторов…) типы ECU вынесены в начало списка типов систем (двигатель, трансмиссия, АБС). Далее в списке типов систем имеется пункт, позволяющий вводить адрес ECU в десятичном формате;
  • Имеет улучшенные функции разбора данных, поступающих от ECU. Человеческим (хотя и английским… как кажется разработчикам…) языком выводится сообщение об отсутствии ошибок, если ECU об этом сообщает. Столь же человеческим и столь же английским языком транслируются сообщения ECU о том, что ECU не поддерживает определенные сервисы (например, АБС Teves MK04 не поддерживает работу с блоками данных);
  • Имеет более дружественное меню – в частности, все «линейные» меню преобразованы в «кольца».
  • Добавлен просмотр 000 блока измерений.
  • Добавлена возможность перемещаться по блокам измерений как +/- 1, так и +/- 10 (enter + up/down)
  • Добавлена возможность адаптации ДЗ (пока только для тех, у кого адаптация идет по 01, 60 или 98 адресу)
Без каких-либо проблем в сканере можно применить MCU ATMEGA8515 – надо только при программировании указать необходимость работы MCU в режиме эмуляции AT90S8515.

Уважаемые последователи! Если Вы заметите какие-то баги/глюки сканера, или захотите поделиться своими идеями/предложениями по улучшению сканера – пожалуйста, пишите в этой ветке форума или в P.M.
Дмитрий Орлов (ака EgaleB3)


Предупреждаю тех, кто в танке: Все посты о целесообразноти изготовления применения данного девайса будут бежалостно уничтожаться из этой ветки. Свое мнение что лучше: КПК, Ноут или данный сканер оставляйте при себе или создавайте тему в болталке. Здесь обсуждаются технические вопросы ТОЛЬКО по этому прибору. Его дальнейшему усовершенствованию и развитию. (Pasha@VR6)


Для версии сканера с индикатором от телефона Nokia 3310 дописана процедура расшифровки ошибок.
работает так:
смотрим ошибки в цифровом виде, если хочется расшифровки - жмем Enter (связь с блоком разрываем, ибо поиск в ПЗУ по I2C шине идет долго) и листаем ошибки в расшифрованном виде кнопками up/down - например:
° ДМРВ
° ОБРЫВ/К.З. на+
°
° ЛЯМБДА
° НЕТ СИГНАЛА
° и тд.
° В пзу (24дс64) внесено уже 134 ошибки по двигателю, абс и подушкам безопасности.. (не заполнено и половины пзушки - которую можно расширить до 64 кб без изменения схемы, и с небольшими изменениями программы).
Шить контроллер необходимо в следующей последовательности.
eepromw.hex заливаем в контроллер, включаем и ждем пока не напишет save complete. после этого заливаем в контроллер scaner.hex. Работаем.

Программирование пзушки идет самим контроллером, в него шьется прошивка eepromw.hex - которая заполняет пзу и строит таблицу адресов соответствия...

Изменения в новой версии: (3.2b) (индикатор 16х2)

Добавлено:
  1. Доработана еще немного процедура связи (ABS Teves04, в частности, есть
    разный, должен теперь видеть любой).
  2. Ввод вдреса теперь идет так: up +1 down +10... нажимаем esc. UP -1, Down
    -10. (при нажатии ESC текст на экране меняется - и видно декремент или
    инкремент адреса идет).
  3. Номер блока измерений при переходе от блока к блоку - восстановлен
    (оказалось в at90s81515 нету комманды call (а в atmega8515 есть)).
  4. еще мелкие багфиксы.
Вариант блока интерфейсов портативного сканера на специализированной микросхеме:



Т.к. некоторые ссылки на сайте автора уже не работают, я буду выкладывать в этом топике полный "пакет" для сборки (схема, печатка, прошивка) сканера на индикаторе 16х2.


Для тех у кого проблемы с паяльником, микроконтроллерами и т.п.

https://vwts.ru/vw_doc/vw_scaner_3.2b_16x2_full_.zip
 
Cyber_RAT

Обновление прошивок (пока только для версии с LCD 3310). изменения:
  1. добавлена коррекция ошибок приема-передачи. (максимальная длительность
    полтора часа - ни одного дисконекта).
  2. небольшие изменения в отображении параметров в режиме измерения.
    (УОЗ, RPM и тд.)
  3. в базовые можно перейти в 001, 060, 098 блоках (адаптация моей ДЗ
    проходит без проблем). переход осуществляется в режиме измерений
    нажатием enter+esc.
  4. добавлена работа с АБС Tevec 04 (некоторых ее модификаций, ибо как
    оказалось - они встречаются разные. Спасибо Vaxa20 за тесты & Hounddog
    за нахождения причин).
p.s. проверенно на motronic MP 9.0., monomotronic 1.2.3., ABS Teves-04, ABS ITTAE 20GI V00, Airbag (21 адрес) (на 2 машинах)... все ок.
p.p.s. в архиве прошивки под 4 и 3.6864 кварцы и прошивка для записи расшифровок ошибок в at24lc64.
p.p.p.s. постараюсь до нового года процедуру связи перенести и в прошивку на индикаторе 16х2

https://vwts.ru/vw_doc/scannokia3310_12.03.2008.zip
 
Заработал ли девайс?
скачал схему и прошивки - завтра пройдусь дизасемблером... (лежит почти готовый бортовой комп на МК и 4 кб памяти в нем еще свободно - может встрою в него чтение ошибок из блоков...)
если высе получится - выложу на сайт
 
Девайс изначально был рабочий только, работает он не стабильно, подвисает и интерфейс (отображения)вообще не какой! Со схемкой на мс33290 работает лучше! Я сколько не пытался с кем нибудь договорится чтобы подправили прошивку не кто не берется! Я считаю что сначало надо отладить модуль двигателя чтобы оаботал нормально а потом можно будет уже добавить и остальные блоки! В прошиве кстати уже заложено диагностика трансмисии только проверить работает ли она не удалось у меня механика! Если девайс этот довести до ума то не нужен будет вагком, в большенстве своих случаев, я как раз с помощью только этого дивайса и смог отловить неисправность ДПДЗ!
Неужеле нету у нас на форуме програмистов которые могут подправить прошиву вить нужная вещь! :) Ребят давайте сообразим что нибудь!!! :drinks:
 
чтобы править прошивку - нужны исходники... декомпилять и править чужой код сложно - больше ошибок добавится...
сейчас разбираюсь с протоколом и дорабатываю свой бортовой комп для возможности читать ошибки из ЭБУ... там можно будет и скооперироваться и сбацать мегадевайс :)
 
Cyber_RAT написал(а):
чтобы править прошивку - нужны исходники...  декомпилять и править чужой код сложно - больше ошибок добавится...
сейчас разбираюсь с протоколом и дорабатываю свой бортовой комп для возможности читать ошибки из ЭБУ... там можно будет и скооперироваться и сбацать мегадевайс :)

Насчет бортового компа - не уверен в идеологической правильности. Интерфейс разработчиками VAG сделан для диагностики. Что можно намерять, как намерять - это очень индивидуально для каждого ECU в отдельности. Например, у Digifant 2 моментальный расход выдается в 3-й зоне 4-го блока (это "с потолка", только для примера). А у двигателя AAM? А у двигателя ABU? А у двигателя ...? А что покажет этот маршрутный комп? Это раз.

А что если Ваш маршрутный компьютер чуть-чуть сбойнет и загонит движок в режим базовых установок? Причем (по закону подлости) именно тогда, когда надо газануть, чтобы закончить обгон или убраться с ж/д переезда? Конечно, Ваш комп никогда не откажет... Но... Это два.

Знаете, гораздо правильнее (на мой взгляд) было бы взять имеющийся сигнал с ДХ, с форсунок и пусть даже на том же контроллере диагноста посчитать все эти маршрутные заморочки. Кстати, такой дивайс есть, сделать его не трудно. Автору - респект. Ссылка: http://kazus.ru/forum/topics/5717.html .

Cyber_RAT, я получил твое письмо, и исходники обязательно вышлю - сорри, всю неделю руки не доходят...

Вот, уже выслал. Если что-то не доехало - пиши!
 
гм... бортовой у меня и пашет от датчика хола и сигнала с ЭБУ для MFA о расходе топлива, но в нем еще куча места - хочу сделать режим чтения ошибок с ЭБУ... вообще конечно сбойнуть все может - а почему на там же обгоне не может порваться ГРМ или развалится какой-нить подшипник ? ;)

исходники получил - спасибо большое... уже колупаю - высматриваю что да как
 
Cyber_RAT написал(а):
конечно сбойнуть все может - а почему на там же обгоне не может порваться ГРМ или развалится какой-нить подшипник ? ;)

На этом самом обгоне может даже метеором накрыть. Возьмет и упадет - есть вероятность, отличная от нуля. Не в этом суть.

Не следует собственными руками уменьшать надежность системы, даже если вероятность проявления отказа мала.
 
Есть предложение сделать по подобию вот такого тестера, я его собирал правда его начальную версию еще без расшифровки ошибок он мне очень понравился Сюда первая схема!
И еще можно ли этот тестер ВАГ который переделать прошивку под другой Кварц очень трудно найти такой, скажем на 4мГц??? И вид отображения информации мне показался удобный! В принцепе если интерестно у меня он собраный есть могу сфоткать вид отображения информации! Этот же микротестер уж больно все как то в кучу и не понятно что от куда темболее если не представляешь Ваг Ком!
С автором тестера для ваза я разговаривал он не захотел поправить свою прошиву под ваг, сослался что нету исходников, у меня на тот момент их и не было попробую с ним еще поговорить незнаю что получится!
 
Vaxa20 написал(а):
Есть предложение сделать по подобию вот такого тестера, я его собирал правда его начальную версию еще без расшифровки ошибок он мне очень понравился Сюда первая схема!
С автором тестера для ваза я разговаривал он не захотел поправить свою прошиву под ваг, сослался что нету исходников, у меня на тот момент их и не было попробую с ним еще поговорить незнаю что получится!
"Имею возможность купить козу, но не имею желания.
Имею желание купить дом, но не имею возможности!..." (с) "Кавказская пленница".

Насколько я понимаю, основная беда не в том, что нет исходников, а в том, что интерпретировать блоки данных от разных VAGовских ECU он не сможет. Жестко зашитый формат телеграммы, в которой нет информации о том, к какому параметру относятся данные. Только их вид - вольты, градусы и т.п. Параметр приписан к определенному полю определенного блока.
То есть у одного ECU в поле 2 блока 4 лежит лямбда-фактор, а у другого - величина предварительного открытия термостата. И что покажет этот ВАЗовский тестер? И кто станет возиться с перешивкой тестера под конкретный блок?

И вид отображения информации мне показался удобный! В принцепе если интерестно у меня он собраный есть могу сфоткать вид отображения информации!
Когда точно знаешь где что лежит, и когда меряешь один только ECU двигателя (и двигатель тот всего один, а версий ECU - примерно три, но точных сведений об этом не имею и этого не утверждаю, так что на слове ловить меня не надо, pls...) - его можно и херувимами с майскими розами разукрасить. :rolleyes:

Этот же микротестер уж больно все как то в кучу и не понятно что от куда темболее если не представляешь Ваг Ком!
Конечно! В первую очередь - потому, что VAG не закладывал таких возможностей в протокол обмена. Все жестко регламентировано - смотрим в ELSA, там написано какое поле какого блока надо изучать (в случае данного конкретного ECU) и в каких пределах должен болтаться параметр. Дальше лезем в VAG1551. И смотрим только и именно этот блок.
Как ты думаешь, почему тот же VAG-COM работает через LBL-файл? И почему темы типа "Ищу LBL-файл для блока ХХХ" на этом форуме столь популярны?

Вот кабы телеграмма несла в себе заголовок - что за параметр содержится в поле! Но увы. Зато сервисы VAG имеют прочный кусок хлеба даже при нормо-часе $50...

Есть предложение сделать по подобию вот такого тестера, я его собирал правда его начальную версию еще без расшифровки ошибок он мне очень понравился
"Пацаны не возражают!" (с) анекдот. Исходник дать? Он на ассемблере...
Условие прежнее - открыть результаты разработки.

И еще можно ли этот тестер ВАГ который переделать прошивку под другой Кварц очень трудно найти такой, скажем на 4мГц??? И вид отображения информации мне показался удобный! В принцепе если интерестно у меня он собраный есть могу сфоткать вид отображения информации!
Переделать под кварц 4 МГц можно, но не нужно. Будет плохо. Дело в ошибках при работе по последовательному протоколу. При кварце 3,6864 МГц (или 7,3728 или 11,059) погрешность 0%, при кварце 4 МГц - ошибка = 0,2%. При какой ошибке откажется работать ECU - неизвестно. ECU некоторых двигателей VAG отказываются работать даже с профессиональными тестерами третьих производителей. Из-за всяких тонкостей протокола. А с нашей-то игрушкой...

Так что лучше уж постарайся найти кварц 3,6864 - это весьма распространенная вещь, правда-правда.

На крайняк - у меня дача в Балабаново, буквально рядом с тамошним постом ГАИ; или подъедь, или по дороге пересечемся. Пиши в P.M., если что.
 
EagleB3 написал(а):
То есть у одного ECU в поле 2 блока 4 лежит лямбда-фактор, а у другого - величина предварительного открытия термостата. И что покажет этот ВАЗовский тестер? И кто станет возиться с перешивкой тестера под конкретный блок?

Ну так автоматизируйте процесс перепрошивки, чтобы возится не приходилось. Точнее сделайте загрузку метаданных конкретного ECU с компа (в том числе и домашнего) при помощи большой красной кнопки. Я помню, когда возился с микропроцессорными девайсами, коммуникация с PC была must have для калибровки, конфигурирования, вычитывания репортов и т.д.

Само собой прыгать с одного ECU на другой все равно будет менее удобно чем в компьютерном сканере, но возможно приемлемо, особенно для любителя а не сервисмена.
 
Впринципе можно повесить внешную память, в которую прошивать, по мере накопления информации, известные блоки, и приделать меню на входе "Выбор ECU", причем если не хош этого - 1 блок зашит в контроллере по умолчанию, хош - ставишь пзу и работаешь с разными ЭБУ.
ИМХО!.

p.s.. жду когда приедет заказанные контроллеры
p.p.s. насчет кварца - работать будет и на 4 мгц - константы поправить надо, но вот помехоустойчивость я думаю от этого не выйграет... (если сигнал уже с отклонением - отклонить его еще больше уже проще...)
 
Cyber_RAT написал(а):
Впринципе можно повесить внешную память, в которую прошивать, по мере накопления информации, известные блоки, и приделать меню на входе "Выбор ECU", причем если не хош этого - 1 блок зашит в контроллере по умолчанию, хош - ставишь пзу и работаешь с разными ЭБУ.
ИМХО!

Вариантов - куча.
Есть только два больших "НО":
1) аналог LBL-файла (описание данных) будет иметь переменный объем, зависящий от ECU. То есть не будет возможности даже сказать: с такого-то адреса начинается движок, с такого-то АКПП, а с такого-то - иммобилайзер.
2) это надо скомпилировать и прошить. Далеко не все смогут это сделать, даже если рядом будет положен AVRASM2.exe, AVREAL и схема программатора.

Кстати, не мог бы ты что-нибудь такое дописать в тот исходник, чтобы он стал поддерживать 5 скоростей? 1200, 2400, 4800, 9600 и 10400?
 
Hounddog написал(а):
Ну так автоматизируйте процесс перепрошивки, чтобы возится не приходилось. Точнее сделайте загрузку метаданных конкретного ECU с компа (в том числе и домашнего) при помощи большой красной кнопки.

" - Нарежьте мне 400 грамм колбасы!
- Пождалуйста! Давайте сюда Вашу колбасу..." (с) анекдот застойных времен.

Нету этих данных. На уровне "практически вообще". А если сумел их достать - то посмотреть назначение блока с бумажки практически не напрягает.
Равно как и посмотреть на бумажке описание ошибки по коду.

Нет, я не идиот, я понимаю, что оно бы хорошо бы. Но геморрой трудозатрат не сопоставим с достигаемым в результате удобством.

Для начала нужно добиться качественной работы ДАННОГО дивайса (или его аналога), на различных скоростях, с различными ECU различных типов (я не имею в виду двигатель, я имею в виду АБС/комфорт и т.д.). Он еще сырой. Не к чему еще пока привязывать розочки и бантики. Надо сперва померять, а уж потом - думать как покрасивее отображать.
 
Ребяты, вы поймите, что назначение этого устройства - валяться где-то между домкратом, огнетушителем и отверткой. И тестировать им надо СВОЮ машину, и еще, может быть, машины двух или трех ближайших друзей. Для этого достаточно иметь сам дивайс и пяток распечатанных листочков бумаги. Полная шиза использовать его на автосервисе - не имея возможности запоминать данные, строить графики и по-человечески их отображать. На сервисе - это комп с VAG-COM (с LBL-файлами) и ELSA.

Себестомость дивайса - примерно $30 "as is". За те же $30 (ну, за $50) сегодня уже можно купить пусть и зачуханный, но ноут, на который можно поставить тот же VAG-COM, и собрать переходник еще за $3.

За $100 (или даже меньше) уже можно взять поюзанный палм, и поставить на него VAG-Check...

Соотношение "результат/геморрой" должно быть всяко больше единицы... :rolleyes:
 
Нету этих данных. На уровне "практически вообще". А если сумел их достать - то посмотреть назначение блока с бумажки практически не напрягает.
Равно как и посмотреть на бумажке описание ошибки по коду.

Не догнал. Данные есть. В ELSA в виде текста, в VAG-COM label files в своем формате и т.д. И передать их в микроконтроллерный девайс при помощи компа без гемора для пользователья не большая проблема. Прога на компе парсит label file или свой файл со своим форматом с описанием ECU и передает его в девайс по нажатию кнопки по тому же RS232 без всяких программаторов ассемблеров / компитяторв, т.к прога девайса умеет общаться не только с ECU но и с компом - стандартная ситуация. И показывает или использует девайс эти данные, которые отсутсвуют в потоке от ECU и гемора не много. Ну, естественно нужно будет поставить энергонезависимую память, если таковой еще нет.
 
Hounddog написал(а):
Не догнал. Данные есть. В ELSA в виде текста, в VAG-COM label files в своем формате и т.д. И передать их в микроконтроллерный девайс при помощи компа без гемора для пользователья не большая проблема. Прога на компе парсит label file или свой файл со своим форматом с описанием ECU и передает его в девайс по нажатию кнопки по тому же RS232 без всяких программаторов ассемблеров / компитяторв, т.к прога девайса умеет общаться не только с ECU но и с компом - стандартная ситуация. И показывает или использует девайс эти данные, которые отсутсвуют в потоке от ECU и гемора не много. Ну, естественно нужно будет поставить энергонезависимую память, если таковой еще нет.

Теперь я не догнал.

Если есть ELSA или VAG-COM на компе, с которым дивайс для обозначения блоков поддерживает on-line связь - дивайс не нужен.
Если имеется в виду самопрограммирование EEPROM данными, полученными с компа - тут другие грабли:
Если про данные из VAG-COM - то не всем данным можно верить. Выпуклый пример: для ECU Digifant LBL-файл соответсвует Digifant-1 (двиг. PG). Для Digifant-2 (двиг. 2E) данные совсем другие.
Для того же Digifant-2 (двиг. 2E) в ELSA описаны 16 полей. Я считываю 24. Что лежит в блоках 5 и 6 неизвестно. Блок 7 и дальше повторяют блок 1, но это в ELSA не документировано.

Ну хорошо, пусть ELSA. Данные можно вычитать в ELSA, и записать их в каком-то файле, который "всосет" дивайс (или ручками переделать LBL под тот же формат), но:
- ELSA (VAG-COM) есть не у всех;
- даже если всосал, будут проблемы где и что лежит и что откуда брать - объем данных по разным ECU различный. По одному ECU двигателя - 16 полей, по другому - 28. Откуда начинать читать поля АКПП? Откуда начинать читать поля АБС, если есть АКПП? А откуда начинать читать поля АБС, если нет АКПП?

Помнить в дивайсе несколько ECU двигателя/АБС и т.п. одновременно (чтобы диагностировать машины свою/папы/жены/друга), да еще чтобы автоматически переключать это отображение - технически решаемо. Но через такой гемор, что, КМК, проще обзавестись ноутом.
 
не успел ответит на пост Hounddog: %)
Оно то конечно и так можно, но вот как показывает практика данный девайс будет юзаться только на своей (ну и в лучшем случае - соседа или друга) машине... имхо 1 раз переделать табличку и прошить контроллер проще, чем писать парсер, и прошивку на все случаи жизни (некоторые параметры есть только в определенных двигах...)

p.s. а теперь по делу : в исходниках 1 частотой связи стоит 10472 а не 9600 а вот пишет что 9600... а 23 - что соответствуе 9600 вообще нету, это глюк исходников или они не соответствуют готовой прошивке? (просьба не пинать сильно если не прав, но:
Код:
  mov  tmp, baud_rate
  
  cpi  tmp, 0
  brne	uart_init_1

  ldi  tmp, 21                <-- 21 при кварце 36864 дает 10472 
  rjmp	uart_init_begin
Для тактирования приемопередатчика UART AVR-микроконтроллеры содержат специализированный программно управляемый тактовый генератор, который является делителем системной тактовой частоты и задает скорость обмена в соответствии со следующим уравнением:
BAUD = fck / (16(UBRR+1)),
где: BAUD - скорость обмена, бод; fck - частота тактового генератора микроконтроллера, МГц; UBRR - содержимое 8-битного доступного для записи регистра UBRR (0 - 255).
 
Если есть ELSA или VAG-COM на компе, с которым дивайс для обозначения блоков поддерживает on-line связь - дивайс не нужен.
Если имеется в виду самопрограммирование EEPROM данными, полученными с компа - тут другие грабли:

Конечно, имеется ввиду не постоянная on-line связь. Конечно, имеется ввиду залил дома с компа в энергонезависимую память (EEPROM) девайса описание своего (своих) ECU и побежал к машине кататься.

Откуда брать описание ECU (из VAG-COM, ELSA) и в каком формате – не принципиально же.

- даже если всосал, будут проблемы где и что лежит и что откуда брать - объем данных по разным ECU различный. По одному ECU двигателя - 16 полей, по другому - 28. Откуда начинать читать поля АКПП? Откуда начинать читать поля АБС, если есть АКПП? А откуда начинать читать поля АБС, если нет АКПП?

Не будет такой проблемы. Объем то данных различен, но структура данных по всем ECU одинакова т.к. все один и тот же протокол юзают. Структуры данных с динамической длиной по всюду и такие вопросы решаются на ура, в том числе и на микроконтроллерах.

проще обзавестись ноутом.

Само собой. Но люди же хотят нацепить супер бортовой комп на приборную доску, ехать и следить за нагрузкой на двигатель или мгновенным расходом как за скоростью на спидометре. Какой уж тут ноут...

EagleB3, ты жаловался на то что в потоке от ECU отсутствуют метаданные и, соответственно, микроконтроллерный сканер сосет. Я говорю, что эта проблема приемлемо решается путем добавления в девайс коммуникации (второй) с компом.
 
Hounddog написал(а):
Не будет такой проблемы. Объем то данных различен, но структура данных по всем ECU одинакова т.к. все один и тот же протокол юзают. Структуры данных с динамической длиной по всюду и такие вопросы решаются на ура, в том числе и на микроконтроллерах.

EagleB3, ты жаловался на то что в потоке от ECU отсутствуют метаданные и, соответственно, микроконтроллерный сканер сосет.
Я плачу не о переменной длине телеграммы, а о том, что от одного ECU двигателя надо обрабатывать 5 блоков по 4 поля (итого 20 полей данных, и ID блоков в запросе 01..05), а от другого ECU двигателя же - 9 блоков по 4 поля (итого 36 полей данных, и ID блоков в запросе 01..06 + 131..133). А уж данным по каждому таком блоку соответствует телеграмма переменной длины. Как разбираться с телеграммой - известно.

Но (если я правильно понял идею) где-то в EEPROM MCU или во внешней EEPROM надо разместить для первого случая 20 заголовков к данным, а для второго - 36.
Тогда в начале должна идти разметочная таблица:
"количество ECU"/"адрес начала описания ECU 1"/.../"адрес начала начала описания ECU N"
Каждое описание ECU имеет структуру:
"Запросный ID ECU"/"Длина описания ECU"/"Описание ECU"/"Длина номера p/n"/"p/n"/"количество блоков"/"запросный ID блока 1"/"адрес метаданных блока 1"/.../"запросный ID блока M"/"адрес метаданных блока M"/
Каждый блок метаданных имеет структуру:
"Адрес метаданных поля 1"/"Длина метаданных поля 1"/..."Адрес метаданных поля 4"/"Длина метаданных поля 4"
"Метаданные поля 1"/.../"Метаданные поля 4"

Все поля, кроме "Описание ECU" (Двиг., АКПП, АБС и т.п.), "p/n" и собственно полей метаданных имеют фиксированную длину.

М-дя... Ну, надергать данные из ELSA и вбить их в какую-то структуру (MS Excel?) - надо иметь ELSA, умение с ней работать и читать на ненашем языке с хорошим инженерным уровнем.
Подготовить такой блок данных (по тому, что вбито в какой-то структуре) - нужна программа. Надо быть хотя бы средней руки программером на дельфях или чем-то подобном. Написать софт для MCU, который будет сам вс себя заливать ЭТО с расстановкой актуальных адресов, а потом искать/парсить - это надо быть КРУУУТЫМ эмбеддером и большим энтузиастом.

Я не крутой. Я любитель. :unknw:
И еще замечу только, что пока этого не сделал даже сам VAG для своих VAG1551/VAG1552, хотя ему, казалось бы, по определению положено.
 
Назад
Сверху Снизу