![]() |
Вложений: 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 Роутилось автоматически. Получилось весьма компактненько. Однако мне совершенно не понятно, на сколько такая плата готова, например, к отправке в фирму, печатающую платы? Не понятно, как наносить контуры элементов, надписи, чтобы они были напечатаны. В аттаче даташиты и исходники З.Ы. как сделать, чтобы картинки в миниатюрах не дублировались? |
Если ты решил изготавливать плату, то почему бы не повторить тот же самый Can-Hacker, только заменить в нем CAN-драйвер на нужный. Это будет более предсказуемый результат чем с переходником.
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Вернуть на место (оставить в воздухе) мне не позволила программа - говорит, что это 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] (не знаю как лучше снять видео, в котором участвует яркий монитор. Но смею заверить, что слева - магнитола :smile2: ) А также собран небольшой набор инструментов, потребность в которых возникла в процессе: - canhacker commands monitor - can frame filter & monitor - can message filter & monitor Вопросы: 1. Как принято определять, какие пакеты являются мультифреймовыми? В данный момент я хардово вписал, что сообщения 0x125 - мультифрейм, но, наверное, есть правильный способ? Было предположил, что вообще все сообщения ходят по ISO 15765-2, но, например, сообщение с VIN кодом противоречит этому. 2. Изучать формат сообщений было конечно интересно, но все-таки очень хотелось бы разыскать какой-нибудь reference manual, где бы они были хотя бы перечислены. Но гугл почему-то не помог мне в этом. Не подскажете? Вот тут начал складировать инфу по CAN сообщениям А вот тут сорцы java (не пинайте - первый java экспириенс) |
Цитата:
Слушай, а платки ты будешь делать? Если не затруднит одну для меня? Соответственно с меня..) Буду признателен |
Сначала на соплях соберу, посмотрим, заработает ли в принципе. Ну а коли да, так и платку непременно надо будет сделать. Минимальный тираж так или иначе сделает "пару" лишних копий.
Но это все не скоро - когда из поднебесной все придет - одному богу известно |
Ну мне не к спеху, год лежит, ещё подождёт.)
Может видел? К сожалению только схема расположения, но грамотно, что терминальные можно менять. http://savepic.ru/4854478.jpg |
Вложений: 2
Подумалось попробовать самый обычный ELM327 с bluetooth (какой был под рукой) запустить в роли can-adapter'a.
Вроде соединил всё: low, high, +12 и 2xGND, а он даже лампочкой не моргнул. Может ему ещё что-то особенное надо? На распиновке OBDII ничего не вижу. Не подскажете? |
Никак не пойму, а в чём проблема? Не присоединить, или присоединить но не работает?
|
Присоединил, но оно не включается. В автомобиле оно сразу лампочками мигать начинает и bluetooth-девайс светится
|
Тогда не понял следующее, а к чему его сейчас подключаешь?
|
К описанному выше комплекту магнитола + дисплей
|
Аааа.., ясно. Тогда не знаю. Вернее так, не подключал к магнитоле, но скрещивал для проверки каннахер и ELM. В общем после некоторых танцев с бубнами получил что-то и всё, большего и не надо было. Но у меня USB, и светик питание по крайней мере загорался сразу.
|
autowp, в твоей машине есть штатные парктроники?
|
есть
|
Хочу подключить нештатный парктроник, чтобы работал как штатный (звук с динамиков, изображение на дисплее), в дальнейшем рассматриваю вариант замены дисплея на планшет с андройдом. Для этого спаял для arduino can-bus шилд на mcp2515+mcp2551. Проверил на столе: две ардуины по can благополучно обмениваются сообщениями. Когда же подключил к can в машине - приборная панель стала показывать --- , на центральном дисплее пропали все значения, короче can-info вырубилась полностью. После отключения моего девайса, слава богу, все заработало. Что я делаю не так? Машина citroen c4 2012 года.
|
Почитайте тему с самого начала...возможно это тот же случай
|
Не-не, он завалил сетку. Выглядит абсолютно также, как я однажды нечаянно кинул землю за CAN-L или CAN-H в peugeot - сеть умерла, стрелки приборной панели "легли на ноль" и т.п.
|
Такая же хрень - если во время передачи по сети подключить к ней доп. устройство. Если подключать при вытащенном из замка зажигания ключе, то пакеты проходят нормально. Правда я подключаюсь уже после приемо-передатчика.
|
Подключал по 3-м проводам: CAN-H, CAN-L, GND. Сейчас замерил сопротивление на шилде: Между CAN-H и CAN-L 50 кОм, с землей CAN-H и CAN-L около 15 мОм.
|
скорость на твоем кан нужно выставить такую, как и в сети автомобиля и будет счастье
|
В мануалах на этой шине указана скорость 125Кбит/с, такую же указал в скетче.
|
Цитата:
|
Я извиняюсь, наверное непонятно написал. Скорость в шине моего автомобиля (125Кбит/с) я узнал из официальной документации для сервисных центров. Сопротивления, конечно же, не ставил. Точки подключения к шине определил по электрическим схемам из той же документации.
|
Цитата:
|
Спасибо за советы, еще хотел уточнить: обязательно ли подключать "землю"? или достаточно CAN-H и CAN-L?
|
Цитата:
|
autowp, не мог бы ты отловить пакеты относящиеся к парктронику? Скорее всего в наших авто системы одинаковы.
|
В целом - это одна из целей, но в данный момент у меня машины нет под рукой, будет только после нового года.
Так что, отловлю-то обязательно, но когда - не знаю |
Отлично! буду следить за темой. На какой скорости подключаешься к can-шине? а то я после постов linoobs1 начал сомневаться.
|
125 на магнитоле, 500 на OBD разъеме
|
Вложений: 1
Цитата:
Тоже пробовал его подключить, только нифига он у меня не сниферит. На выходе mcp2551 данные есть, но как их вывести в терминал не понял. Правда у меня can шина в которой гуляют 4 однобайтовых посылки с левыми id. Скорость - 125 В терминале > at cs T:00 R:00 |
Цитата:
Если поставить скорость в сети 500 кбит и настроить адаптер на ISO 15765-4 CAN (11 BIT ID, 500 Kbaud) - команда "AT SP 6" и че-нибудь послать, то адаптер отсылает в сеть 8 байтовое сообщение с id - 0x7DF. Если я правильно понял то со скоростью 125 он работать не будет. |
Там есть CAN USER1 (125)
AT SP B Только с параметрами надо поиграться согласно табличке: как минимум 11bit выставить, переменную длину пакета, отключить множитель 8/7, ... ( PP 2C SV XX, PP 2C ON ) http://elmelectronics.com/DSheets/ELM327DS.pdf 58 страница Возможно ещё error checking отключить ( PP 2A SV XX, PP 2A ON ) |
Цитата:
up: поставил - pp 2c sv c0 - отсылается кол-во байт как посылаешь в терминале. Как поменять идентификатор? |
Цитата:
заголовок сообщения (идентификатор) - AT SH XXX текущий протокол - AT DP вывод всех сообщений в терминал - AT MA показывать идентификатор - AT H1 фильтр по идентификатору - АT CRA XXX |
ууууууууу.... давно я на форуме не был!
Делаю аналогичную фигню только для Ниссан - Инфинити. У меня проблема - показания климат-контроля показываются только на ЖК экране. такой же кан читалкой я смог найти команды, но не могу никак перехватить абсолютные значения (только приращения). Как ты нашел эти мультиплексоры и что это? :-) я методом проб и ошибок работаю :-( мало че понимаю. Но уже кое-че добился. |
>> но не могу никак перехватить абсолютные значения (только приращения)
Ну их может и нет. Зачем бы дублировать в виде абсолютных и приращений. Очевидно, при включении (зажигания/дисплея) отправляется исходное значение, а дальше только приращения. Найти будет не просто. Да ещё всякие шуточки встречаются: не знаю как у инфинити, но у французов, например, шкалы баланса/басы/высокие/фронт на дисплее пронумерованы от -9 до 9, что соответствует сигналам на CAN: 36-3F,40-48 -9 36 -8 37 -7 38 -6 39 -5 3A -4 3B -3 3C -2 3D -1 3E 0 3F +1 40 +2 41 +3 42 +4 43 +5 44 +6 45 +7 46 +8 47 +9 48 Хотя казалось бы чего проще эти цифры так и посылать F7...09 >> Как ты нашел эти мультиплексоры и что это? :-) Мультиплексоры? |
Цитата:
Допустим с градусами все просто. Есть проблема с направлением потока - в лицо, на окно, в ноги. Цифры - можно открутить в одну сторону до упора - климат регулируется от 18 до 32 (или 34) градусов. Так можно провести калибровку. А вот направление обдува циклическое :-( Хотя надо попробовать что бывает, если нажать режим Auto, а потом тыкнуть в переключение режима. Это нужно на случай, если комп принял значение, а климат контроль глюканул и моно было перекалибровать все. Управляющую фигульку можно на Kivy/Python написать :-) Цитата:
|
Цитата:
Может есть где-нибудь на просторах и-нета хоть какое-то описание CAN фреймов по Ниссанам? |
Часовой пояс GMT +4, время: 09:37. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot