Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нештатная информация на штатный дисплей
Международный форум любителей Мазда5/Премаси (Семейный автомобиль, минивэн) > ТЕХНИЧЕСКИЙ РАЗДЕЛ > ТЮНИНГ И ДОПОЛНИТЕЛЬНОЕ ОБОРУДОВАНИЕ > Электрические компоненты
Страницы: 1, 2, 3, 4, 5, 6, 7
ustas
Собственно, началось с того, что когда-то давно кто-то уже делал вывод информаци с нештатного парктроника на штатный дисплей.
Был бы проект жив - просто купил бы и не парился.. но тот проект умер - пришлось все изучать самостоятельно.

На текущий момент:
1. уже "препарирован" и довольно хорошо изучен протокол парктроника Parkmaster (одного из недорогих) - уверенно получаю и интерпретирую данные с него.
2. влез в среднескоростную шину CAN на своей машинке - умею управлять дисплеем (пока не идеально, но процесс идет).
3. сделан первый прототип "промежуточной" железки (устанавливается между парктроником и can-шиной) и протестирован (на базовые функции).

Моя "железка" дополнительно содержит часы реального времени (RTC) - и теперь на машине появился календарь (был очень сильно удивлен, узнав, что штатно календаря вообще нет).
Выглядит сейчас вот таким образом:

Нажмите для просмотра прикрепленного файла

Если будет интересно - продолжу повествование.
Сеттер
Останавливаться нельзя не только в разработках, но и в повествованиях. Любые телодвижения в изменении (улучшении) функциональности машины только приветствуются. Молодец, так деожать.
annik
Здорово получается, а возможно выудить расход топлива из CAN-шины и вывести на дисплей? Просто праворукие собратья изначально идут без этой функции, а так хочется...
vitalson8
молодец,а по подробнее
_Michail_
Да, интересная тема, хотелось бы продолжения smile.gif
ustas
ок, тогда буду писать дальше.. подскажите, на что лучше обратить внимание при повествовании? на технические детали реализации или на что-то другое?

вообще, из CAN-шины можно выудить абсолютно все, что там есть.. т.е. вывести какие-то показатели дрыгателя на экран - без проблем. Тут только встает вопрос в расшифровке данных (надо понять адреса и дешифровать соответствующие сообщения).

К примеру, дисплей - это как минимум два разных адреса (первый - это адрес для "печати" первых 7 символов, а второй - для вторых 6 символов). Еще, похоже, собственными адресами обладают следующие части экрана: "вехрняя часть" (DISK IN, AF и т.п.), маршрутный комп (левая часть - там где часы), климат (правая часть).

Пока мои интересы заканчиваются основной строкой.

Дешифровка для основной строки не вызвала никаких проблем - используются стандартные ASCII-коды (так что о кириллице можно забыть - ее там просто нет).

Из текущих сложностей: оказалось, что не смотря на всю элементарность работы с дисплеем (вывести что-то на дисплей очень просто - достаточно отправить по нужным адресам соответствующие символам байты) - вылезли неприятные "грабли" в виде разработчиков штатной системы: они по какой-то причине текущие надписи на дисплей отправляют не один раз (по факту изменения надписи - как бы я это реализовывал), а постоянно "флудят" в шину с сообщениями о том, что же дисплей должен отображать. Тем самым - перетирают то, что отправляет мой девайс...

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

Надо проверить пару гипотез - как это можно обойти.

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

Есть мысль подключить свою разработку несколько глубже (как это было сделано в первоначальном варианте у "исходного" проекта) - врезаться в шину между машиной и дисплеем и когда нужно выводить "свое" - просто отключать дисплей от шины машины и рулить им самостоятельно. Вариант - 100% эффективный, но надо будет немного разбирать салон, чтобы добраться до дисплея.

P.S. кстати, можно писать какие-то предложения по тому, для чего можно использовать штатный дисплей и вообще шину...
лично мне еще хочется узнать, можно ли, например, выловить на шине текущую скорость (это можно - 100%) и при превышении, например, 7км/ч - автоматически закрывать замки дверей (такая фича была штатно в предыдущем пыжике). Конечно, это к дисплею не относится, но шина, к которой я подключаюсь (это среднескоростная шина, она же "шина комфорта") по идее, содержит много интересного - там гуляют команды (и параметры) климата, света, ... сейчас посмотрел - есть данные по скорости, средней скорости, текущему и среднему расходу (т.е. маршрутник сделать - вообще ничего сложного)

P.P.S. если кто-то поделится информацией по соответствию идентификаторов сообщений, длинны сообщений, правил декодирования - буду очень признателен
al4630z
Браво!
Вот она победа над пустым дисплеем при нештатной балалайке.
Кто последний за девайсом? Никто!? Тогда я первый.
С нетерпением жду. Удачи в работе.
Дисплей снять не проблема, темы есть соответствующие. Как только сдёрнешь магнитолу останется два шурупа, верхнюю нахлобучку с дисплеем на себя и в верх. 15 минут работы.
Со скоростью - неплохое предложение. Неплохо бы вольтметр.Парктроники тоже . А со светом что можно замутиь?
ustas
При пустом дисплее (нештатной балалайке) подключение - просто в диагностический разъем (и не надо решать проблему "штатных" и "нештатных" сообщений).

Могу изготовить небольшую партию для желающих (с нештатной балалайкой).

Можно замутить маршрутный комп.

Данные на шине (касающиеся маршрутника):
- текущая скорость
- средняя скорость
- текущий расход
- средний расход

можно добавить календарь (чтобы выводилась дата, как у меня)

что еще хочется? Какую информацию выводить?

кто готов стать "подопытным"?

Еще нужно придумать, по какому алгоритму переключать данные (портить салон "колхозными" кнопками, имхо, не лучший вариант). Можно просто в цикле данные крутить...

Есть идеи?

Ну и надо понимать - каков вообще спрос на подобное? Сколько желающих?
Гоша
wacko.gif У кого то руки золотые, а у кого то мозг blink.gif Понял что ничего не понял biggrin.gif
!Lnur
Цитата(ustas @ 24.10.2014, 18:53) *
Есть мысль подключить свою разработку несколько глубже (как это было сделано в первоначальном варианте у "исходного" проекта) - врезаться в шину между машиной и дисплеем и когда нужно выводить "свое" - просто отключать дисплей от шины машины и рулить им самостоятельно.

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

Кстати когда балалайка выключена, конфликт сигналов не возникает? мерцание пропадает?

З.Ы.: Я раньше тоже электроникой увлекался, а сейчас ленивый стал: купил в диагностический разъём блютус-заглушку, она из смартфона делает простой бортовой компьютер )))
ustas
!Lnur, не совсем понял... т.е. перед выводом сообщения гасить штатную балалайку?

Тогда будет как минимум странно: ... играет музыка, потом вырубается - на экране то, что нужно - врубаем музыку... а если это в цикле (сейчас у меня 10 секунд показывается "штатное" сообщение, а потом - 2 секунды - дата).

Или я чего-то не догоняю?

Кстати, использовать одну из незадейстованных кнопок - в принципе, идея неплохая, но.... вроде как все кнопки в каком-либо из режимов все-таки задействуются (т.е. абсолютно незадействованной кнопки - нет). Если я неправ - скажите, какая это кнопка?

Ну и подключение к этой кнопке хотелось бы сделать "безболезненным" (в идеале было бы просто шикарно, если бы магнитола сама сообщала (или сообщает???) о нажатой кнопке) - тогда это событие можно было бы отлавливать и делать по нему свои действия какие-то..
Делать "жесткое" подключение, имхо, неправильно - да и возни слишком много: разобрать магнитолу, посмотреть потенциалы на кнопках - подпаять проводочки... мало кто на это вообще пойдет...

Кстати, не пробовал вырубать штатную балалайку, но, думаю, при этом мерцания не будет (или будет, если магнитола шлет "пробелы" на пустой дисплей). Попробую завтра - сейчас выходить из дома не очень хочется...
_Michail_
Какой контроллер используется на текущий момент? Может есть смысл сменить на более быстродействующий?
!Lnur
Если штатный дисплей использовать, например, в качестве индикатора парктроника (как раз то с чего ты начал разрабатывать идею), то кратковременное выключение магнитолы для изменения режима индикации, думаю, возражений не вызовет. Естественно для индикации календаря такой вариант не применим, но извини, я не вижу необходимости постоянной индикации календаря на дисплее, мне достаточно один раз узнать дату и всё )))

Неиспользуемая кнопка балалайки - это, например, кнопка МЕДИА, естественно у кого она есть и не используется по назначению.
Я могу ошибаться, но думаю при нажатии на неё на соответствующем разъёме балалайки (разъеме для CD-ченжера) должен появиться сигнал включения,
и скорей всего появляется соответствующая команда и по шине.
Кстати на резъёме для ченжера есть сигналы шины управления (M-BUS) может с неё удастся сигнал взять?
ustas
Сходил-таки в машину.

Если штатную балалайку выключить, то она шлет "пробелы" на экран. Т.о. "промаргивания" - остались.

Чуть больше деталей по реализации:
1. Сейчас моя платка выглядит следующим образом:
Нажмите для просмотра прикрепленного файла
2. МК - atmega328p (работает на 16МГц)
3. модуль RTC - DS1307
4. Интерфейс OBD2 реализован на MCP2515+MCP2551
5. Для питания платы распаян USB-разъем (исключительно питание)
6. Большой черный разъем - для подключения парктроника (просто был готовый обжатый кабель на момент установки парктроника - его и проложил сразу для своих нужд).
7. На плате присутствует резервная батарейка (для часового модуля)
8. Имеется "пищалка" (поскольку у парктроника она встроена в дисплей, от которого я планирую отказаться)

Делал из того, что было под рукой. Выбор МК - "выбираю из того, с чем умею работать".

"Хитрая форма" платы обусловлена тем, что делалась под имеющийся корпус:
Нажмите для просмотра прикрепленного файла

Это корпус от "обходчика иммобилайзера".
_Michail_
Понятно. Буду думать.
ustas
Цитата(!Lnur @ 24.10.2014, 21:44) *
Если штатный дисплей использовать, например, в качестве индикатора парктроника (как раз то с чего ты начал разрабатывать идею), то кратковременное выключение магнитолы для изменения режима индикации, думаю, возражений не вызовет. Естественно для индикации календаря такой вариант не применим, но извини, я не вижу необходимости постоянной индикации календаря на дисплее, мне достаточно один раз узнать дату и всё )))

Да, для парктроника так и есть - вырубание музыки дополнительно позволяет убрать "отвлекающие моменты".
Дата постоянно не нужна - это точно.. но вот тот момент, когда мне это понадобилось - неизвестен. Если нужно что-то ткнуть - так я уж до телефона доберусь... поэтому пока включил "динамическую индикацию" (когда дата периодически появляется на дисплее и пропадает).

Цитата(!Lnur @ 24.10.2014, 21:44) *
Неиспользуемая кнопка балалайки - это, например, кнопка МЕДИА, естественно у кого она есть и не используется по назначению.
Я могу ошибаться, но думаю при нажатии на неё на соответствующем разъёме балалайки (разъеме для CD-ченжера) должен появиться сигнал включения,
и скорей всего появляется соответствующая команда и по шине.
Кстати на резъёме для ченжера есть сигналы шины управления (M-BUS) может с неё удастся сигнал взять?


MEDIA я как раз использую - поставил "на постоянное жительство" блютус-модуль музыкальный и активно юзаю.

"Сигнал включения" в нашем случае - это уже какая-то команда на шине, а не просто "высокий(низкий) потенциал" на каком-то пине разъема.

Кстати, есть некоторое подозрение, что нажатие некоторых кнопок - транслируются в шину (вроде как есть кнопки "громкость+", "громкость-", "mute" - по крайней мере встречалась подобная информация при гуглении). Но тут нужно или снифер шины городить (хотя он уже фактически есть в моей платке) и анализировать данные (вот это занимает больше всего времени) или где-то найти доку по адресам, сообщениям и их кодированию (но что-то мне кажется, что такого документа просто нет).

P.S. наверняка моя плата сразу заработает на мазда3... (купил на разборке дисплей от мазда3 - подключил его 4 проводками к диагностическому разъему и увидел ровно те же надписи, что и на дисплее моей машины). Возможно, заработает на мазда6 (и других маздах) - но тут попробовать надо.
!Lnur
Цитата(ustas @ 24.10.2014, 23:18) *
Кстати, есть некоторое подозрение, что нажатие некоторых кнопок - транслируются в шину (вроде как есть кнопки "громкость+", "громкость-", "mute" - по крайней мере встречалась подобная информация при гуглении)

Подозрения небезосновательны, вспомни кнопки на руле - как раз громкость+/громкость-, mute, канал+, канал-. ;-)
ustas
о.. точно.. тогда еще интереснее может быть.

На руле точно есть кнопки, которыми я не пользуюсь - можно их отлавливать.

И теперь для себя нашел еще одно применение штатного дисплея: на пыжике при включении круиза на приборке можно было выставить требуемую скорость (она выводилась в явном виде)..

Тут же приходится "угадывать" (или нажимать на SET тогда, когда требуемая скорость уже набрана). Если отлавливать нажатия (ну и еще все-таки послушать, что же в шине еще "гуляет") - то, возможно, получится выводить на дисплей задаваемую скорость круиза.
Сеттер
Вот это мне по душе - хорошая темка получается.
ПиСь. Давненько не было - соскучились, да и руки чешутся.
поиск
Интересная тема, сам рассматривал готовый вариант,вот такой гаджет, но побоялся что лобовое стекло далеко на пятке и будет плохо видно.
al4630z
Я готов быть подопытным но между нами более тысячи вёрст(Если есть предлложения готов обсудить).
Я вижу ты головастый Есть тема по питанию мультимедиа, никто не хочет её реализовать(всмысле мастера). Вличку как нибудь закину, а пока давай эту развивать.
Диагностический разъём у многих занят ВТадаптором да и до дисплея добраться несложно, это какбы моё мнение.
Что минимально хотелосьбы мне:
1 Напряжение сети(На чиная с режима АСС и секунд 10 после пуска двигателя)

2 Отображение работы парктроников (вообщебы к ним допприблуду чтобы автоматом переключала задние и передние, допустим после выключения задней передачи секунд на 5-10 включались передние , да ещёбы объеденить это с камерами - вообще круто)

3 Отображение скорости круиза(хорошая функция)

4 И какую нибуть постоянно висящую надпись (впринципе и календарь сойдёт)

Я так понимаю Такой набор сможет работать и без допкнопок:
Включили АСС показывает напряжение сети( Тем самым контролируем степень разряда батареи при включенных потребителях и музыки, а также зимой хватит ли напряжения для пуска двигателя), Пустили двигатель - втечении 10с. наблюдаем напряжение заряда, после этого времени появляется дежурная надпись(Пускай будет календарь). При включении ЗХ календарь сменяется на парктроники и обратно, при круизе
информация о скорости.
Покрайней мере мне этого будет достаточно.
поиск
На диагностику разветвители продаются.Стоит не много, зато глубоко копать не нужно.
al4630z
Невстречал. Но если так то замечательно. Нишша с верху всёравно пустует пусть уж хотябы такие приблуды там пропишутся(нелюблю лишних соплей из проводов в салоне angry.gif ).
jouri
Цитата(поиск @ 25.10.2014, 5:59) *
сам рассматривал готовый вариант

братаны китайцы предлагают head up display system obd от US $ 35
http://ru.aliexpress.com/wholesale?SearchT..._20141024221923
al4630z
Ну это как бы не совсем то. Тема заставить штатный дисплей выводить нештатную информацию. Так сказать по Феншую без лишних проводов поверх интерьера.
ustas
Точно-точно.. идея имено "по феншую" реализовать - все в рамках "штатного" функционала.

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

В общем, придумалось, как обойти проблему "моргающего" дисплея:
1. "врезаться" надо между машиной и дисплеем (как можно ближе к дисплею)
2. контроллеров CAN шины нужно два: первый - будет "смотреть" в сторону машины и слушать все, что нужно (параметры дрыгателя/движения/сообщения на экран), второй - будет передавать "нужные" сообщения от машины на дисплей и "свои" (нештатные) сообщения.
3. контроллерами CAN будет рулить обычный микроконтроллер (МК) (тут уже 328p и его быстродействия хватит спокойно (при нормальной реализации, конечно)). Этот МК будет решать, какие сообщения от машины требуется передать на дисплей и давать команды на вывод "своих" и "нештатных" сообщений. Он же будет "слушать" парктроник, измерять напряжение и т.п.

Процесс "врезки" может быть предельно простым (если удастся найти соответствующие разъемы): достаточно будет отключить шлейф дисплея от соответствующего разъема. Мою железку подключить на ее место, а дисплей - к моей "поделке".
При этом система получит питание (в шлейфе оно есть - в т.ч. и для функций контроля напряжения) и полную коммуникацию с шиной и дисплеем.

Я как чувствовал, что мой прототип будет претерпевать некоторые изменения (перед "финальным" этапом) - вывел дополнительные пины на разъемы.. теперь сделаю "дочернюю" платку, которая будет устанавливаться на мой модуль "вторым этажом" и будет реализовывать второй CAN-интерфейс.

Поясню, почему хочу сделать именно так (а не тупо "релюхой" отрубать дисплей от шины машины и отправлять туда "свои данные"): хочу ПОЛНОСТЬЮ сохранить функциональность машины (к примеру, при изменении громкости - должно выводиться сообщение об этом, даже если выводится "нештатное" сообщение), а для этого надо одновременно контролировать то, что приходит от машины и выводить что-то на дисплей. Потом, есть такая мысль, что при включении парктроника (чтобы было лучше слышно "пищалку" - автоматически понижать громкость играющей музыки), а для этого - надо отправлять в шину машины соответствующую команду (это еще требует проработки).

В общем, мой подход следующий: полностью сохраняем то, что есть, но добавляем собственный функционал.

Кстати, в режиме MEDIA на магнитоле получается очень много "незадействованных" кнопок.. если при их нажатии в шину идут соответствующие команды - то можно их "отлавливать" и с их помощью реализовать переключение режимов отображения и настройку. Т.е. если все пойдет хорошо - то без "колхоза" можно будет настраивать работу модуля.

И еще обнаружился первый факап в моем прототипе: в качестве резервной батарейки для модуля часов используется литиевая батарейка CR2032. Сегодня она просто замерзла.. часы перестали "тикать" - дата осталась вчерашняя. В общем, надо подобрать другой источник резервного питания.


P.S. сегодня возвращался домой уже поздно - включил "ночной" режим света (ближний + подсветка приборов)... и понял, что меня "слегка напрягает" красная подсветка кнопок на руле (ставил кнопки от mazda6 при добавлении круиза). Может кто-то подскажет, какие светики нужны, чтобы перепаять на зеленую подсветку? (типоразмер я нашел, но слишком большой выбор среди "зеленых" - различная яркость и различная длина волны). Желательно точную модель.
al4630z
Юстасу от Алекса
цитата:
Кстати, в режиме MEDIA на магнитоле получается очень много "незадействованных" кнопок.. если при их нажатии в шину идут соответствующие команды - то можно их "отлавливать" и с их помощью реализовать переключение режимов отображения и настройку. Т.е. если все пойдет хорошо - то без "колхоза" можно будет настраивать работу модуля.

В таком случае владельцы нештатаных штаток и я в их числе курим в сторонке sad.gif
поиск
Цитата(ustas @ 25.10.2014, 22:18) *
P.S. сегодня возвращался домой уже поздно - включил "ночной" режим света (ближний + подсветка приборов)... и понял, что меня "слегка напрягает" красная подсветка кнопок на руле (ставил кнопки от mazda6 при добавлении круиза). Может кто-то подскажет, какие светики нужны, чтобы перепаять на зеленую подсветку? (типоразмер я нашел, но слишком большой выбор среди "зеленых" - различная яркость и различная длина волны). Желательно точную модель.

Тут посмотри , было и про кнопки на руле.
ustas
Цитата(al4630z @ 26.10.2014, 10:08) *
В таком случае владельцы нештатаных штаток и я в их числе курим в сторонке sad.gif

ну.. это пока только мысли.. кнопки на руле-то остаются smile.gif можно будет с их помощью что-то настраивать (использование незадействованных кнопок штатной магнитолы пока откладываю)
ustas
Цитата(поиск @ 26.10.2014, 10:35) *
Тут посмотри , было и про кнопки на руле.

к сожалению, там было про изменение подсветки (указаны белые светодиоды), а для штатных приводились только основные вещи (размер светиков), но вот конкретной модели - нет sad.gif даже параметров нет sad.gif.
поиск
Есть там инфа на первой же странице, но скупая:
Цитата
Сколько и какие светодиоды понадобились для замены подсветки.

SMD 3.5х2.8мм
Приборка – 11шт.
ГУ – 30шт.
Дисплей(дорестаил) – 2шт. (кнопки cloск, info ), 12шт. - подсветка дисплея (менять не пришлось)
Кнопки упровления аудео на руле – 7шт.
(Я использовал светодиоды ARL-1210UWC 1300мкд, угол свечения 120град. яркий)

Светодиоды круглые d=3мм[
Блок климата - 8шт.
ustas
Цитата(поиск @ 26.10.2014, 13:08) *
Есть там инфа на первой же странице, но скупая:

Не.. там как раз скупого - только размер светика (это я тоже замерил).
А указанный светик (модель) - он белого цвета свечения (http://www.transistor.ru/catalog/reference/010930/)
ustas
Сегодня особо некогда было заниматься проектом sad.gif

Успел только развести вторую дополнительную платку с CAN-интерфейсом, сделать плату и распаять ее.

Получилось как-то так:

Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла

Теперь надо пописать код.

Кстати, теперь можно будет сразу подключить еще и "дополнительный" дисплей... таким образом, можно будет видеть одновременно, что на "штатном" дисплее, а что - уже после "корректировки".

Когда будет что показать - запишу видео и выложу ссылочку.
Сеттер
Ребята, в памяти всплыло: давненько "Polin" выкладывал подключение через какую-то приблуду к САН-шине мультимедии - показывал все параметры автомобиля: от напряжений до оборотов и скоростей, выкладывал фотки дисплея. (поищите поиском - может поможет),
!Lnur
ustas, всё-таки ответь, почему ты не хочешь вставить свою приблуду между балалайкой и машиной?

Зачем тебе отлавливать и транслировать все сигналы идущие на дисплей от машины (ЭБУ, климат)?

Тебе ведь только текстовый сектор в серединке дисплея нужен, а туда только балалайка флудит, так борись только с ней!
Kaimynas33
Вся CAN шина соедена в одну кучу. Так что все модули видит все сообщения, но показывает и принимает только свои. Вот схема 17, 19 страницы.
ustas
!Lnur, вообще тут особой разницы нет (спасибо Kaimynas33 и схемам).

Почему между дисплеем и шиной хочу врезаться - просто потому, что мне исключительно на текущий момент так проще подключаться (я всего-то подключаюсь в диагностический разъем и мой "прибор" как раз оказывается между "машиной" и "дисплеем" (в моем случае - "лишним" дисплеем, который я купил на разборке от мазда3)).

И есть еще один довод, почему так удобнее (он аппаратный): я смогу настроить обработку прерываний и получать ВСЕ сообщения (с помощью обработки прерывани от контроллера шины), которые падают от машины (включая полезные параметры, которые пригодятся для работы "маршрутного компьютера" и других вещей)... другой же контроллер can-шины будет только передавать те команды на дисплей, которые требуются.

Вроде как (в случае отсутствия штатной балалайки) - было бы просто подключить мой девайс просто к шине (даже в тот разъем, в который втыкалась штатная балалайка) - и нужен был бы только один контроллер CAN-шины (его хватит и для чтения параметров машины и для того, чтобы отправить данные на дисплей).

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

При этом софт для разных версий будет практически идентичным (только в случае с нештатной балалайкой - попроще: нужно будет выкинуть кое-какую часть кода по обработке данных).

Поэтому пока буду прорабатывать более сложный вариант (выборосить кусок всегда проще, чем "нарастить").
_Michail_
Интересно, а можно поколдовать с контроллером самого дисплея? Ведь все коды от узлов и агригатов гуляют по can-шине, вот только контроллер дисплея всю эту инфу фильтрует. Может кто видел на просторах попытки копания в прошивке?
SEREGA FRG
http://www.madox.net/blog/projects/mazda-can-bus/
Может это поможет как то
ustas
SEREGA FRG, спасибо! Эта информация у меня уже была, но сохранить ссылки - всегда полезно.

Теперь еще небольшие траблы (точнее, пока непонятки).

На текущий момент в железе сделано так, что один МК рулит двумя CAN-интерфейсами. (пару-тройку постов выше писал и приводил фото). Оба интерфейса работают.

Проверял следующим образом: сделал отправку в один интерфейс строки "Hello car", в другой: "Hello disp"

Теперь если в диагностический разъем подключать один или второй интерфейс - выводятся на дисплей разные сообщения (т.е. аппаратно - все работает).

Но вот фокус, который хотелось сделать - чтобы мой девайс был "в разрыв" между машиной и дисплеем - не очень пока увенчался успехом:
Со стороны машины все работает, как хотелось...
А вот дисплей, подключенный к интерфейсу (любому интерфейсу моей платы) - молчит, как партизан. Видимо, просто MCP2551 недостаточно, чтобы оно "взлетело" (в машине есть что-то "шинообразующее").

с кабелем и подключением дисплея (внешнего) - все точно в порядке - если его напрямую подоткнуть к диагностическому разъему - он тут же начинает принимать сообщения машины и отображать ровно то же самое, что "штатный".

Нажмите для просмотра прикрепленного файла

Может, кто-то уже сталкивался с этим? Может требуется куда-то подтянуть MS_CAN_L и MS_CAN_V?

В общем, хочется сделать дома "макет" шины машины: чтобы можно было к моей плате подключить дисплей и в комфортных условиях вести разработку прошивки.
_Michail_
У меня тоже есть вопрос, есть ли команда для, дисплея или другого устройства, типа брейк и адрес устройства, чтобы дисплей перестал выводить информацию на определенное время, ото всех устройств кроме необходимого? Если такое есть, то городить два кан-порта и ненужно будет
ustas
к сожалению, такой команды по логам не видно.

На адреса дисплея валятся только сообщения о том, что выводить...
SEREGA FRG
Мужики посмотрите у матрёхиных рулевых
Там больше инфы
http://mazda3.ru/board/
ustas
Тот форум я уже изучил (все, что касается информационного дисплея). К сожалению, там технической информации очень мало - в общем-то, только распиновку и цвета проводов получил... Остальное (адреса, формат пакетов и т.п.) - частично из ссылок выше и кое-что - из логов того, что валится в CAN шину.
ustas
Есть подозрение, что проблема "изолированного от машины стенда" состоит в том, что "новосозданная" шина (состоящая всего из двух "узлов": моей платы и дисплея) не обладает необходимым сопротивлением. В разных источниках указывается, что шина должна быть обязательно "терминирована" с каждой стороны резистором в 120Ом. Т.е. "нормальное" сопротивление шины - около 60Ом.

Измерил сопротивление между CAN_L и CAN_H дисплея - около 50кОм, сопротивление между CAN_L и CAN_H на моей плате - тоже около 50кОм. Попробовал тупо воткнуть между проводниками шины резистор на 60Ом - не завелось.... еще погуглил - http://www.carflood.ru/div-techdocs/div-te...mon/91-can.html - тут говорится о том, что для шины комфорта нормальное сопротивление от 2 до 3.5кОм... пробовал резистор 2к4 - тоже не завелось.

Надо, видимо, в машину идти и измерять сопротивление на шине... тогда уже пробовать дальше. Похоже, я просто "лабораторную" CAN-шину недоделал...
ustas
Надо, конечно, ложиться спать ... но пока не забыл, вот что нашел:

You can send the 3 frames with the following IDs:
0x28F: LCD settings and probably some other settings (you just send the same data you receive in a normal 0x28f frame).
0x290: 0xC0 (first byte) followed by first 5 alfanum signs
0x291: 0x85 (first byte) followed by the next 7 alfanum signs

all of them, just after you receive the 0x291 frame id sent by the HU. This will make your text being visible with almost no flicker at all.
The reason for sending the 0x28F is that it is required for displaying the 0x290 and 0x291 text, otherwise the LCD seems to simply ignore the 0x290 and 0x291.
Another method would be to set a timer with a 150ms interrupt and send the 3 frames described above.

...

0x28F frame content that I have used:
hex: D1 00 00 00 80 00 00 01


щас быстренько пытался что-то делать по полученным данным:
1. адрес 28F, насколько понял - отвечает за надписи DISK IN, ST, AF и т.п.
2. шину надо чинить smile.gif (в какой-то момент дисплей моргнул и показал строку, которую должен был выводить)
_Michail_
Судя по картинки нужно делать именно так:



То что ставилось одно сопротивление на 60ом это несколько не та схема включения smile.gif

Что касается сопротивления согласования:



То оно должно быть уже на плате устройства.
_Michail_
И все таки есть что-то типа брейка smile.gif
bus arbitration
арбитраж шины
Процедура арбитража необходима для разрешения ситуаций, когда
несколько узлов пытаются получить одновременный доступ к шине.
После ее выполнения доступом к шине обладает лишь один узел. В
CAN протоколе используется алгоритм арбитража CMSA/CD
(множественный доступ с обнаружением несущей / детектирование
коллизий) совместно с AMP (арбитраж по приоритету сообщения).
Этот протокол позволяет проводить арбитраж без разрушения
сообщений.

Вот отсюда:

http://www.can-cia.de/fileadmin/cia/pdfs/C...onary-v2_ru.pdf
_Michail_
Воооо что надумал smile.gif Можно ли сделать так:

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

По идее дисплей должен показать принятые данные от вашего устройства, а после вернуть данные которые шлет балалайка smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.