regulationssexy
  • Blog
  • Blog

Can Hacker Инструкция

5/27/2017

0 Comments

 
Can Hacker Инструкция

Разработка коммерческого электронного устройства с нуля / Хабрахабр. Приветствую! Хочу поделиться собственным опытом разработки электронного устройства.

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

Изначально мы занимались разработкой программного обеспечения для чип- тюнинга. Одна из основных задач которого — считать прошивку из ЭБУ (электронный блок управления двигателем) и записать ее обратно. Понятное дело, что для этих целей нужно каким- то образом связать компьютер и ЭБУ при помощи адаптера. Когда раньше подавляющее количество ЭБУ использовало простейший способ приема- передачи данных, достаточно было использовать простейший адаптер на транзисторах или специализированной микросхеме. Однако на сегодняшний день большинство автомобилей для «общения» своих компонентов со внешней средой используют CAN шину.

Программа CANHacker может работать в режиме монитора (monitor) и трейсера (tracer). Имеется коробочка USB-to-CAN адаптер от vscom (www.vscom.de/usb-can.htm). К этой коробочке шла программа CANHacker v2.00.01. CAN Hacker (анализатор) CAN шины в корпусе OBD-II. Видео инструкция по работе с CANHacker V2.00.01 - здесь.

Адаптер для CAN шины на транзисторах уже не соберешь, и тут однозначно нужен процессор, который будет управлять всем по определенной программе. Для того, чтобы не изобретать велосипед выбор сделан на использовании готового адаптера, который работает по стандарту J2.

Видеоурок по работе с CAN Hacker. Софт и прошивки: CAN-Control.zip - Софт CAN-Control V1.0b6, V1.0b8 + SourceCode CANHacker.zip - Софт CANHacker V1.01.02, V1.02.00, V1.02.01, V1.99.07, V2.00.00, V2.00.01 Driver.zip - Драйвер. Вот подскажите есть практическая польза от логеров/анализаторов CAN шины кроме отраслей изготовления подмотчиков и установки сигнализаций? Оборудование для работы с CAN, LIN и другими сетями автомобиля. CAN-HACKER, AVR, STM32, Arduino, печатные платы. Подмотки, Намотки, Подкрутки, Can намотки, Can прошивка, Can схема, Смотка пробега километража и многое другое на сайте podmotki.net.

Для тех, кто не в курсе, стандарт J2. ЭБУ посредством компьютера. Разработали его американцы. Основной причиной его разработки стало законодательное закрепление возможности обновление прошивки ЭБУ не специализированным дилерским сервисом, а любым желающим. Собственно, если каждый желающий может обновить прошивку на своем телефоне, то почему он не может это сделать со своим автомобилем.

Самый доступный импортный аналог стоит в районе 2. Как впоследствии оказалось, два одинаковых устройства, удовлетворяющие стандарту J2. Поэтому изначально пришлось привязаться к конкретному производителю и его устройству. Эксперименты. Те функции, которые нам нужны были в «железе», присутствовали в распространенном адаптере для диагностики ELM3. Осталось только написать драйвер J2.

DLL, которая служит прослойкой между программой на компьютере и самим устройством). Предварительно связался с разработчиками ELM3. ELM3. 27. Предварительно мной был написан такой драйвер, который поддерживал только протокол ISO 1. CAN). Однако тут меня ждало разочарование. При скорости CAN 1. Мб/с ELM3. 27 попросту не успевает принимать такое большое количество пакетов, постоянно выбивая ошибку по переполнению внутреннего буфера сообщений. Кроме того, протокол обмена между компьютером и ELM3.

ASCII сообщениями (чтобы в терминале удобно было работать). Соответственно вместо передачи одного байта данных передается три (два байта — отображение символов плюс разделяющий пробел). Получалось, что большая часть USB трафика тратилась впустую. А учитывая то, что максимальная скорость работы с ELM3. USB — 3 Мб/с, то с такой организацией обмена принять 1 Мб/с по CAN шине не представляется возможным.

Никогда не любил зависеть от кого- либо, поэтому, мысль создать свой J2. Первые шаги. Надо бы тут сказать, что до разработки своего J2. Первоначально были попытки найти исполнителей, которые смогли бы создать «под ключ» такое устройство, но они не увенчались успехом.

Потому было принято решение начать заниматься этим самостоятельно. В первую очередь нужно было определиться с процессором. Выбор пал на ARM процессор от ST — STM3. F1. 05. Критерием выбора процессора были распостраненность, цена, наличие сторонних специалистов, которые помогли бы решить возникшие проблемы в кратчайшие сроки.

Для передачи данных по КАН шине достаточно двух проводов, или иными словами одна витая пара. Подробности работы CAN шины описаны неоднократно.

На сайте представлены CAN Scanner - CAN Hacker для исследования CAN шины стандарта ISO-11898, CAN подмотка спидометра автомобиля, коннектор.

Can Hacker Инструкция

В качестве макетной платы была приобретена макетная плата от Olimex. С ее помощью успешно были выполнены «лабораторные работы» для освоения процессора: мигание светодиодом, пищание звуком, отображение на LCD экране, работа с UART.

Очень понравилась IDE от Coo. Cox. Были также пробы и с Keil, но, как говорится — «не пошло».

Рабочий процесс. Как я уже писал выше, были попытки найти исполнителей, которые сделают все «под ключ», но они не увенчались успехом. Растягивать разработку на длительное время и разбираться во всем самому также не хотелось. Поэтому было принято решение разбить задачу на независимые части, и некоторые из них поручить разработчикам, у которых был опыт в подобных вещах.

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

Остальные работы, связанные с разработкой окончательной схемы, печатной платы и заказом на производстве уже было кому поручить. Для тех, кто пойдет моим путем скажу, что фрилансер во всем этом процессе — это не панацея и после него еще придется заниматься оптимизацией кода, для того, чтобы этот код не просто работал, а был качественным и расширяемым. Исполнитель сразу предложил мне использовать в этом проекте RTOS вместо стандартной библиотеки от STM3. Честно говоря, был озадачен.

С RTOS дела никогда не имел, да и мой компаньон был категорически против использования RTOS для данного проекта. В итоге я все- таки согласился на использование RTOS и в последствии об этом не пожалел. Поначалу проблем особо не возникало и благополучно были сделаны отдельные «кирпичики», которые отвечают за обмен между адаптером и компьютером посредством USB, работа с UART, разработка своего бутлоадера, с помощью которого можно осуществлять обновление прошивки устройства посредством USB.

Проблемы начались с CAN. Стандартные драйверы для работы с CAN Chibi. OS (именно на этой RTOS я остановился) используют для хранения полученных сообщений аппаратные слоты процессора. Их всего три, поэтому, если не успевать выбирать сообщения оттуда, они попросту потеряются. Пока сообщения шли «неспешно» — они благополучно принимались, но как только количество CAN сообщений в секунду превысило тысячи — начались проблемы.

Размер такого программного буфера составил 2. CAN сообщений и этого оказалось вполне достаточно. Разбираться с написанием этого драйвера пришлось самостоятельно, т. Но все- что не делается — делается к лучшему, и благодаря самостоятельной разработке драйвера для Chibi. OS удалось хорошо погрузиться в ее изучение.

После этого ряд частей проекта было решено делать самостоятельно, без привлечения стороннего исполнителя. Часть времени ушла на изучение протоколов ISO 1. CAN), ISO 9. 14. 1- 2.

Надо бы сказать, что быстро разобраться с ними помогли реальные ЭБУ — достаточно было «прослушать» обмен ЭБУ. Первый образец. Первый образец устройства существовал в виде макетной платы с STM3. F1. 05 и макетной платы с интерфейсными L9. D и TJA1. 05. 0. Так выглядел первый лабораторный образец. И вот так с другой стороны: В лабораторных условиях, на заданных тестовых программах все работало великолепно.

Однако прежде чем создавать плату уже под серийное производство, было решено сделать тестовые некоммерческие образцы, которые будут розданы людям, готовые принять участие в тестировании. Первоначально хотели сделать платы при помощи ЛУТа, но в последствии заказали 1. Такое тестирование конечно же дало свои плоды.

Даже не столько багов было найдено в самой прошивке устройства, сколько пришлось адаптирировать устройство под программы различных производителей, которые используют в качестве адаптера J2. Заключительные этапы. По результатам тестирования было уже принято решение в создании платы, которая пойдет в серию. Окончательную схему устройства сделал мой компаньон, разводку плату поручили стороннему исполнителю. На схеме устройства изначально не экономили — все что можно было защитить и сделать максимально отказоустойчивым — делали. Отдельной темой можно выделить корпус устройства.

Это тема отдельного топика. Поэтому скажу, что в данный момент я остановился на заводском изготовлении корпуса из акрила, и этим корпусом мы на днях планируем комплектовать наши устройства.

Первоначально мы поставляли устройство в обтянутом прозрачном кембрике, а саму плату покрывали лаком. Итоги. Приведу немного хронологии, для того, чтобы можно было понять что это стоило. STM3. 2июнь 2. 01.

Следует также сказать, что это не единственный проект, который делался в эти временные рамки. Что использовалось при создании проекта: RTOS Chibi. OSSublime Text. 2GCC (Code. Sourcery)Вспомагательное железо для создания проекта: CAN Hacker. Saleae Logic Analyzers. USB- UART converter.

В итоге получили J2. Поддержка следующих протоколов: ISO 1. CAN) до 1. Mb/s. ISO 1. CAN)ISO 1. 42. 30- 4 (Keyword Protocol 2. ISO 9. 14. 1- 2. В виду того, что ряд функций, описанных в стандарте J2. В частности, это поддержка протоколов J1. PWM/VPW). Возможно, когда будет время, я подтяну и эти протоколы в устройство, чтобы получить 1.

0 Comments



Leave a Reply.

    Author

    Write something about yourself. No need to be fancy, just an overview.

    Archives

    May 2017

    Categories

    All

    RSS Feed

Powered by Create your own unique website with customizable templates.