Обратная разработка устройств настройки топливных карт двигателя
Одно время я пытался создать альтернативу эмулятора памяти 29C256. Но под всякими предлогами я пока на это забил, сюда я выкладываю информацию что я накопал за это время. Данная разработка поможет увеличить скорость и качество настройки мозга.
Обычная чиповка мозга имеет проблему, долгая настройка “не на лету”. Не нравится? выключили, сняли память, поместили в программатор, изменили данные, записали, установили обратно. Пару простых комбинаций отнимают до 5 минут времени. В обычной стоковой прошивке 2 таблицы зажигания, и 2 топливные таблицы (это, Если VTEC) а без VTEC таблицы 2, но другие 2 повторные. В каждой таблице 230 значений (RPM x MAP).
Строить их, большая рутина. Хитрые японцы, конечно, имеют средство для настройки. Ну а простым ребятам приходится исхитряться. Самые первые и, наверное, громкозаявившие о себе были Hondata, они создали контроллер, в котором имелась память с таблицами, микроконтроллер эмулятора памяти 29C256, который так же поддерживал USB связь с компьютером и осуществлял программирование на лету чипа. Все это отлаживалось годами, и выросло в целую индустрию, которая состоит из 3х основных устройств, созданных на одной мысленной базе.
Для создания такого устройство нужно:
- эмулировать память 29C256, а именно создать доступ к ячейкам памяти в 70нс или быстрей
- уметь программировать память на лету
- обеспечить удобный интерфейс общения с пользователем
- поставить полезные и нужные удобства типа даталога и интерфейса ????
- PROFIT!!!
Микросхема памяти имеет всего один “путь” для чтения данных это шина адреса (где лежит нужные данные) и шина данных (что лежит по этому адресу). Как вы понимаете эту шину, задействует процессор мозга. Как сделать так чтобы в нее одновременно записывать данные, а также считывать? У микросхемы 29c256 28 ног, и они все задействованы. Ответить можно несколькими путями, но все равно все сводится к одному и тому же. Нам нужен некий цифровой блок, у которого не один вход и выход, а как минимум два. Самое простое это запрограммировать микроконтроллер, у которого в оперативной памяти будет полная программа данных. Плюс контролер работал бы чуть быстрей, чем это нужно основному процессору.
Напомню, что по Даташиту 29C256 Доступ к ячейки памяти происходит за 70нс, то есть это критическое для нас время, что бы мозг Honda Civic работал исправно, можно быстрей, медленней нельзя. Итак, 70нс, это 14285714,3 считываний в секунду след за следом, представляете? Большая цифра, но если ее перевести в привычную нам тактовую частоту процессора, то получится всего 14.3 МГц. По сегодняшним мерками это мало, но для 92 года (это первые года выпуска мозгов Honda с процессором OKI MSM66207), это было очень не плохо. Кстати скажу по секрету, что данный чип в основном поставлялся в бытовую технику, а именно принтеры.
Кстати и сейчас данная фирма OKI производит принтеры. В общем, нужно сделать эмулятор памяти для OKI и программатор этой памяти одновременно. Либо используем внутреннею RAM память, либо ставим внешнюю Энергозависимую память типа NVRAM, FRAM или микросхему DRAM. почему нельзя сделать все в одной схеме? все просто, доступные для широкого потребления микросхемы имеют мало оперативной памяти. Например, 4кб, а нам нужно 32. Там есть еще грабли с постраничной записью но это оставим. Процесс работы программы простой, на контроллер внешний процессор “стучится” по адресу, контроллер смотрит, что за адрес и быстро спрашивает внешнюю (Внутреннюю) память. И выдает обратно. Если же этот адрес мы хотим изменить то мы делаем переменную, и подменяем при следующем обращение его. Вот и все. Далее идет навесное оборудование.
Во первых чтобы можно было с микроконтроллером общаться ставится USB протокол обмена. USB сейчас есть на всех ноутбуках. Но конечно это не чистый USB, дешевых микроконтроллеров на базе AVR с USB мало, зато на его борту есть UART(USART). Это привет из прошлого под названием COM порт подобное общение. Около контроллера ставить небольшая микросхема, типа MAX3232, которая конвертирует UART в USB (TTL-COM-USB). А в некоторых случаях можно подсадить и на Bluetooth и общаться через модный Apple.
Далее, нам кроме общения с микроконтроллером нужно следить за показаниями автомобиля. Как вы знаете на борту OBD1 платы есть Datalog. Если на микроконтроллере есть 2 порта UART, то через один идет обмен информацией с пользователем на скорости 1200-115200 (самые нормальные 9600 и 38400), а другой без дополнительной обвязки подключается к Datalog.
Конечно еще бы круто подключить широкополосную лямбду, но обычно ее подключают мимо контроллера что бы ни забивать и того узкий канал UART (USB работает не на всю мощность как вы понимаете), но ее подключают к другому порту USB ноутбука где уже программа типа E-Ctune, SManager, CROME, NEPTUNE и суммирует показания даталога, эмулятора памяти и лямбда зонда в одну картину. Теперь все это ваше и вы можете управлять и настраивать свое авто.
Кстати, например автор Хондаверта, как и авторы Moates Demon использовали ПЛИС. Которая позволяет увеличить скорость работы системы в разы. Ну, если по опыту ПЛИС легко справляется с сигналами СВЧ, то с такой мелочью как 14.3 МГц она справится очень легко. И в ней как раз таки есть мультидоступ к памяти.
Продолжим ковырять железо. Как вы понимаете, для того что бы настроить готовый авто вам нужно несколько железок и программ. Во первых Широкополосный лямбда зонд, который не просто высвечивает АФР но еще и отправляет по USB значение. Во вторых сам эмулятор памяти, который вставляется в плату Honda Civic. Ну и самое хитрое, это программное обеспеченье, которое работает только с “нужными” железками. То есть у них есть свой протокол общения (Neptune RTP).
Я прибрел себе для настройки MTX-L Wideband O2 за 200$, очень “нужная” и крутая штука специально для настройки. Во первых она называется широкополосной тк в отличие от стока она меряет от 10 до 22 единиц АФР, стоковая 14-15. Как я и предполагал ко мне приедет изделие из USA которое не стоит своих денег, если рассматривать с практической точки зрения, Лямбда состоит из самого кислородного датчика с подогревом и контроллера с дисплеем. Суть простая, померить напряжение датчика показать красивую цифру на экране отправить по проводу на USB. Внимательно посмотрев на все это безобразие, я понял, что центром брендовый INNOVATE является датчик, BOSCH # 0258007057, который ставиться почти на всю линейку VAG (Volkswagen Group) стоимостью 100$. Остальные 100$ составляет круглый корпус для 6 светодиодов и 2х панелей жк с самым дешевым микроконтроллером который может через делитель на 12вольт сказать, что находится на АЦП входе, и отправить пару байт на другой порт. При изготовление с нуля, вы потратите от силы 30$ а при повторном производстве уже 15$. А если вы отбросите посылку по портам, то это можно сделать на одной схеме стоимостью около 1-2 долларов. Слова к поиску “самодельный альфаметр” на базе LM3914. Самодельный Альфаметр
- D1 — LM3914
- VD1 — КД209А
- VD2-VD11 — АЛ307
- C1 — K50-16 50мкф/50в.
- R1 — МЛТ 0,25 1мОм
- R2,R3 — СП3-38а 4,7кОм
Я пытался создать свой эмулятор памяти, но слишком большие отрывы от работы и множество других работ по проекту сильно тормозят разработку. Мне не жалко делится открытой в интернете информацией с вами, зная, что я, зная все это мог бы сделать свой девайс и продавать его за копейки. Если у кого получится я буду только рад. Пока на рынке только барыги.
Пока я прорабатывал идеи, я подсматривал идеи уже готовых устройств. Первым кто мне попался это Moates Demon. У них сделано все четко как я написал выше. Смотрите фотографии сами. Интернет наше все.
Элементная база
- Плис Xilinx
- Приемопередатчик 8-битный SN74LVC4245A
- микроконтроллер ATMEGA128-16Ai
- Кварц 14.7FSCP
- CY62148BLL-ZXI, не точно но этой фирмы SRAM память
Главная фотография верхней части платы, на которой видно сразу микроконтроллер ATMEGA128, от которого идут 2 светодиода указывающих на работу самой работы (питания) и активности соединения с компьютером. Ну, я думаю, что это так, рядом установлена АКБ BR2330A, которая необходима для энергозависимой, но быстрой память, что находится рядом. Микросхема под аккумулятором это SRAM TWN 70NS CY62148BLL подобная оперативная память компании Cypress Semiconductor.
Виден разъем USB через который происходит управление, разъем соединен с небольшой 6 ногой микросхемой, скорее всего предназначенной для конвертации TTL-USB. Разбросаны конденсаторы для подавления шумов по питанию. В самом низу расположен разъем для подключения даталога, очень похож на старый разъем на аудиокартах для соединения с CD проигрывателем. В левом углу зияют 4 дыры для подключения адаптера BLUETOOTH.
Верху имеется 2 не пропаянных места под разъемы, судя по маске рядом с ним с надписью AUX я предполагаю, что это разъемы для еще каких то добавлений. Обычно для микросхем типа AVR используется коннектор в 10 ног, из которых 6 задействованы для программирования ISP. То есть я могу взять программатор и подключится к любому микропроцессору. В Moates Demon ребята пошли чуть дальше и просто сделали свой разъем для программирования, его видно в правом верхнем углу, там просто 2х сторонняя контактная площадка. да чуть не забыл, чуть выше от черного разъема даталога стоит микросхема сдвигово регистра. Ну, это чтобы данные ровно приходили, а то вдруг какой бит запоздает.
Эту фотографию я так и не нашел в нормальном качестве, но в теории она мне не очень то и нужна. Видна кроватка на 28 ног, 2 микросхемы LJ245A , стабилизатор напряжения на 5 (или 3.3) вольт (с 9-15). Посереди я думаю что это либо второй контролер, либо ПЛИС Xilinx, я видел, что разработчики Moates используют именно ее.
Задняя часть, фото чуть лучше. Видно обозначение кварца 14.7FSCP. На микросхемах под кроваткой видно обозначение LJ245A (SN74LVC4245A OCTAL BUS TRANSCEIVER AND 3.3-V TO 5-V SHIFTER WITH 3-STATE OUTPUTS) 8-разрядный приемопередатчик шины с выходами в трех состояниях и разно номинальным питанием.
тут все просто, верхняя часть, просто под другим углом, уже видно часть надписи памяти SRAM TWN 70NS CY62148BLL подобная оперативная память компании Cypress Semiconductor, надпись не явна выраженна но данную память Moates использовали раньше поэтому для экономия средств и времени разработки я предположу что микросхема SRAM таже.
Прошивка Moates
На просторах интернета я нашел прошивку для Moates Demon, в архиве лежит утилита MoatesFirmwareUpdater для заливки сама прошивка
Хондаверт, Vitaprog 1.1
Один разработчик из Санкт Петербурга, решил что процесс настройки нужно улучшить, паять даталог и покупать RTP логгер было нудно. Поэтому он решил изготовить свой эмулятор памяти. Эпопея началась в примерно 2007 году. Vitat изготовил первую плату на базе ПЛИС ALTERA, назвал все это VitaProg 1.0. Фотографии устройства и платы были выставленны на обозрение на некоторых ресурсах типа PGMFI.org. Далее спустя какое то время вышла версия 1.1 которая претерпела несоклько изменений и уже начала иметь название Хондаверт. Данное изделие продается через форум RedLiners, стоимостью около 250-300$. Позиционируется как “эмулятор S300”, а значит работает с SManager, и CROME. Схема работы примерно таже самая, впринцепе что там еще можно изменить. При работе с CROME стоит выбрать скорость в 115200 кбод и эмуляция Moates Ostrich на OBD1. Проблема в сложности приобретения, тк изготовления данного девайса имеет характер “очередности” и ручного труда. Автора зовут Виталий, ник Vitat.
Элементная база
- Плис Altera EPM7128SLC84-15N
- Dallas powercap DS9034PCX
- USB интерфейс FT2232
- микроконтроллер ATMEGA162 (163?)