PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Общение с машиной (http://pccar.ru/forumdisplay.php?f=14)
-   -   Blaupunkt RD4 + CANhacker (http://pccar.ru/showthread.php?t=19853)

autowp 23.11.2013 02:01

Вложений: 6
Бес вселился.

Решил-таки попробовать собрать "конвертер" CAN сигнала по приведенной схеме.
Заказал в поднебесной микросхемы и начал прикидывать что да как.

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

Сформулировал некоторые требования:
- не трогать canhacker
- коннектор переходника должен быть 1в1 как у canhacker
- переходник должен оставить возможность питаться от +12V
- переходник должен уметь питаться от canhacker (через USB)

Два последних пункта возможны только через небольшой колхоз: на выходном разъеме canhacker питания нет, однако есть дополнительный разъем для программирования платы,

на котором есть +5V. Им-то и решено было воспользоваться для подачи питания.

Вариант с размещением собственного стабилизатора на +5V не устраивает тем, что требует обязательного питания "от машины"

В качестве инструмента для создания схемы выбрал Eagle CAD. Управление в программе ужасное, нетипичное для программ в принципе. Да что там говорить: это первая в моей жизни программа, для которой я нашел ролик "How to copy and paste"

Нужных мне элементов в стандартной библиотеке не нашлось, поэтому обе микросхемы пришлось рисовать с нуля. Благо корпус у них достаточно простой (SOIC) и не вызывает вопросов.

Пассивные компоненты брал совершенно без какого-либо понимания, ориентируясь только лишь на маленький корпус. Думаю, что это не принципиально и что-нибудь так или иначе найду.

Итак, принципиальная схема:

http://pccar.ru/attachment.php?attac...1&d=1385154692

Почти полностью повторяет то, что было приведено в этом посте выше, с небольшими доработками (разъемы, WAKEUP для TJA).

Но до конца дело довести не удалось:
- Осталось совершенно непонятным назначение VREF на MCP.
- Полное непонимание зачем и как использовать VCC и BAT на TJA. Правильно ли я понимаю, что без +12 на BAT драйвер будет выключен?

Если вразумите - буду благодарен.


Однако это не помешало мне ради экспириенса натыкать элементы на виртуальную плату и зароутить по имеющейся схеме:

http://pccar.ru/attachment.php?attac...1&d=1385154692

Роутилось автоматически. Получилось весьма компактненько.
Однако мне совершенно не понятно, на сколько такая плата готова, например, к отправке в фирму, печатающую платы?
Не понятно, как наносить контуры элементов, надписи, чтобы они были напечатаны.

В аттаче даташиты и исходники

З.Ы. как сделать, чтобы картинки в миниатюрах не дублировались?

Vic26 25.11.2013 17:27

Если ты решил изготавливать плату, то почему бы не повторить тот же самый Can-Hacker, только заменить в нем CAN-драйвер на нужный. Это будет более предсказуемый результат чем с переходником.

fmy1 25.11.2013 20:59

Цитата:

Сообщение от autowp (Сообщение 278271)
Бес вселился.

уважаю! )
Цитата:

Сообщение от autowp (Сообщение 278271)
....WAKEUP для TJA).

Зря брат, верни на место, или ещё лучше через 100к. на +
Цитата:

Сообщение от autowp (Сообщение 278271)
- Осталось совершенно непонятным назначение VREF на MCP.

Не бери в голову. Оставь в покое и не парься.) Это просто референсное напряжение, никакого значения в данном случае не имеющее.
Цитата:

Сообщение от Vic26 (Сообщение 278541)
Если ты решил изготавливать плату, то почему бы не повторить тот же самый Can-Hacker, только заменить в нем CAN-драйвер на нужный. Это будет более предсказуемый результат чем с переходником.

Вот это точно

autowp 01.12.2013 19:06

Цитата:

Сообщение от Vic26 (Сообщение 278541)
Если ты решил изготавливать плату, то почему бы не повторить тот же самый Can-Hacker, только заменить в нем CAN-драйвер на нужный. Это будет более предсказуемый результат чем с переходником.

Мысль здравая, но я побаиваюсь большей сложности схемы: большее поле для ошибок.

Цитата:

Зря брат, верни на место, или ещё лучше через 100к. на +
Почему? Он же инверсный (low - проснись)
Вернуть на место (оставить в воздухе) мне не позволила программа - говорит, что это bad idea оставлять висящие input'ы


_________________________

Тем временем продолжил discovering RD4.
Решил, что надо начать с того, чтобы сделать мало-мальски удобный инструмент для анализа данных, а раз уж сам анализ для меня в новинку, то требуется какая-то микрозадача для решения.

Показалось, что не слишком сложным и одновременно ёмким будет эмуляция меню выбора CD-треков. Думаю, что не ошибся с выбором.

Для тех, кто не знаком с магнитолой: splash screen с линейным списком названий треков (cd-text), навигация вверх/вниз и, собственно всё.

Fast-forward: Java-приложение (во имя crossplatform), rxtx library, написание canhacker commands layer, поверх него canframe layer

Первым делом нужно было определить круг сообщений, отвечающих за это меню. Под это дело была сделана табличка с фильтром по id сообщений.
С её помощью не сложно было установить, что за это меню отвечают сообщения с arbitrationID = 0x125

7-и и 2-х байтовые фреймы, не сложный формат данных, show/hide и up/down заработали быстро.

И тут я вставил диск с CD-text'ом...
Оказалось, что по 0x125 идёт мультифрейм (ISO 15765-2).
Пришлось проложить ещё один layer CanMessage, собирающий мультифреймы в одно сообщение.

Названия треков в latin-1 (привет, кириллица). 20 байт на исполнителя и 20 на название трека и формат 0x125ых команд полностью собран.

Код:

125 6 01110000 TTTTTTTT AAAAAAAA 0SXEBBBB MMMMMMMM 00000000 [[JJJJJJJJ x20] [HHHHHHHH x20] x0-4]       
Показать меню списка треков.
TTTTTTTT - количество треков,
AAAAAAAA - offset экрана списка треков,
S - флаг "покажи список треков"
E - флаг "список треков сдвинулся" на 1 позицию выше или ниже за пределы 4х видимых в данный момент. Направление сдвига определяется по BBBB
BBBB - offset выбранного трека внутри экрана списка треков
MMMMMMMM - дескриптор текстовых данных, идущих далее.
каждая пара бит соответствует наличию исполнителя и названия трека, идущих далее пакетами по 20 байт в соответствующем порядке.
Позиции соответствуют позициям на экране, кроме ситуации наличия флага E
[JJJJJJJJ x20] - 20 байт имени исполнителя
[HHHHHHHH x20] - 20 байт названия трека

125 1 00000000 Спрятать меню списка треков. (Нажатие на OK после выбора трека в LIST, нажатие на ESC, по таймаут)

Пруфпикча

(не знаю как лучше снять видео, в котором участвует яркий монитор. Но смею заверить, что слева - магнитола :smile2: )


А также собран небольшой набор инструментов, потребность в которых возникла в процессе:
- canhacker commands monitor
- can frame filter & monitor
- can message filter & monitor


Вопросы:
1. Как принято определять, какие пакеты являются мультифреймовыми?
В данный момент я хардово вписал, что сообщения 0x125 - мультифрейм, но, наверное, есть правильный способ?
Было предположил, что вообще все сообщения ходят по ISO 15765-2, но, например, сообщение с VIN кодом противоречит этому.

2. Изучать формат сообщений было конечно интересно, но все-таки очень хотелось бы разыскать какой-нибудь reference manual, где бы они были хотя бы перечислены. Но гугл почему-то не помог мне в этом. Не подскажете?



Вот тут начал складировать инфу по CAN сообщениям
А вот тут сорцы java (не пинайте - первый java экспириенс)

fmy1 01.12.2013 22:02

Цитата:

Сообщение от autowp (Сообщение 279220)

Почему? Он же инверсный (low - проснись)
Вернуть на место (оставить в воздухе) мне не позволила программа - говорит, что это bad idea оставлять висящие input'ы

Когда STB и EN на +,он не играет значения. Судя по даташиту : To prevent a false local wake-up during an open wire at pin WAKE, this pin has a weak pull-up current source towards VBAT. However, in order to prevent EMC issues, it is recommended to connect a not used pin WAKE to pin BAT. Но это правда для Low power modes. Ну и по схемам магнитол, там на +, одна схема кстати от твоей.) НО!!! На моей магнитоле оказалось на 0.))) Специально влез и глянул(схемы то нет). Во как!. Так что поменял мнение, видимо можно и так и так.)
Слушай, а платки ты будешь делать? Если не затруднит одну для меня? Соответственно с меня..) Буду признателен

autowp 01.12.2013 22:11

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

fmy1 01.12.2013 22:31

Ну мне не к спеху, год лежит, ещё подождёт.)
Может видел? К сожалению только схема расположения, но грамотно, что терминальные можно менять.
http://savepic.ru/4854478.jpg

autowp 04.12.2013 01:24

Вложений: 2
Подумалось попробовать самый обычный ELM327 с bluetooth (какой был под рукой) запустить в роли can-adapter'a.

Вроде соединил всё: low, high, +12 и 2xGND, а он даже лампочкой не моргнул.

Может ему ещё что-то особенное надо? На распиновке OBDII ничего не вижу. Не подскажете?

fmy1 06.12.2013 23:58

Никак не пойму, а в чём проблема? Не присоединить, или присоединить но не работает?

autowp 07.12.2013 00:00

Присоединил, но оно не включается. В автомобиле оно сразу лампочками мигать начинает и bluetooth-девайс светится


Часовой пояс GMT +4, время: 22:12.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot