Одно дело написать код и собрать плату для CAN адаптера и совсем другое его протестировать.
Первые адаптеры на двигатели VQ35 тестировались сразу на Газелях и как показала практика это оказалось неудобно, потому что если что-то вдруг не работало, то приходилось бегать туда-сюда между машиной и компьютером перезаливать исправленный код. И вот чтобы так больше не бегать и придумали эмулятор блоков эбу и акпп, который мы между собой называем EFI (как блок EFI у Тойоты). К тому же в планах было сделать адаптер для щитка приборов Теаны J32 и все это тоже нужно было как-то проверять на работоспособность.
У эмулятора было три главных функций:
1) прием пакетов от адаптера.
2) отправка по CAN шине изменяющихся параметров тахометра, спидометра, заднего хода (мы называем это режимами и их всего пять) и пакета с корректировками данных.
3) отображение параметров, ошибок по CAN шине и режимов.
Первая версия платы сделана методом ЛУТа, собрана на ATmega88p. Плата получилась максимально простая и свои функции выполняла несмотря на то, что выглядит страшненько.
Плата готова и следующим шагом была сборка простенькой проводки с фишками на адаптер, щиток Бизнеса (на тот момент был только он) и CAN Hacker.
Программа тоже получилась немудренной. Хотя некоторые моменты вызывали вопросы. Например, отображение ошибок по CAN шине. Нужно было сперва найти какие ошибки в адаптере появляются чаще других, а же потом добавлять их обработку в эмулятор.
Постепенно в режимы добавлялись всевозможные параметры. Изначально отправлялись данные по спидометру, тахометру, температуре и напряжению. Позже были добавлены PRND и педали акселератора.
Со временем имеющихся функций стало мало, а добавить новые для тестирования адаптеров с двумя CAN шинами не получалось из-за ограниченных возможностей платы и контроллера. Поэтому и разработали новую версию эмулятора, который уже работает и с щитком Бизнеса и Некста. Вторую версию сделали под ATmega64 и заказали в Китае.
И вот какие новые функция появились:
1) отправка в аналоге температуры, аварийного давления масла, уровня топлива.
2) отправка данных по CAN шине для работы с двигателями Тойоты, Хонды, ЗМЗ. Для Некста в дополнение отправлялся мгновенный расход и напряжение.
3) индикация входных сигналов спидометра, тахометра и температуры, но позже убрали т.к. не использовали эту функцию.
4) возможность тестировать адаптер спидометра и тахометра для Бизнеса.
Проводку сделали новую и даже пару раз переделывали, потому что поняли, что нужно добавить управление датчиком уровня газа и температуры; возможность тестировать адаптер спидометра и тахометра.
Как результат теперь полная проверка от запайки до кода и настройка CAN адаптера во всех возможных конфигурациях занимает не больше десяти минут. А если какая-то функция в адаптере не работает и эмулятор этого не отображает, то на помощь уже приходят CAN Hacker и осциллограф.
Здесь можно посмотреть как работает первый эмулятор.