Коллеги, добрый день.
Так получилось, что у меня оказалось ГУ Alpine CDA-117Ri.
Установил я её, понравилось как играет, есть поддержка iPOD, USB, встроенный звуковой процессор. Все вроде бы хорошо, но подрулевое управления пропало, штатный экран показывает только время и температуру. «Погуглив» понял, что можно сделать адаптер для подключения «алпайна» к подрулевому джойстику и экрану автомобиля.
Вообще, история началась еще 2 года назад, когда ко мне попал сниффер шины CAN и путем анализа траффика я узнал как управлять штатным на ГУ на расстоянии.
Итак, как же устроена аудиосистема в Колеосе, да и почти в любой Реношке?
В машине есть две линии шины CAN. Одна автомобильная, вторая – мультимедийная. Скорость передачи данных по обеим – 500 килобит в секунду. Обе шины доступны через OBD разъем под приборной панелью.
Штатный экран, подключен к обеим шинам. С одной (автомбильной) он берет температуру наружного воздуха, а со второй читает и передает информацию от/на ГУ.
Штатный джойстик подключен к экрану. Схема джойстика – обычные кнопки, никаких резисторных схем.
Штатное ГУ подключено к экрану через мультимедийную шину CAN (желтый разъем mini ISO).
Как все это хозяйство работает.
При подаче питания на ГУ происходит инициализация ГУ и экрана (по мультимедийной шине идут служебные сообщения). После инициализации, по шине всегда передаются сигналы присутствия с частотой 500 миллисекунд. Если посылка прерывается на несколько секунд то нужно заново проводить инициализацию.
Экран «слушает» джойстик и как только происходит нажатие кнопки, экран формирует сообщение и отправляет его по мультимедийной шине. ГУ принимает сообщение и выполняет определенное действие. Доступных действий не так много: это все кнопки на джойстике (каждой соответствует свое сообщение), и кнопка включения/выключения ГУ (красненькая такая)
Текстовая информация на экран передается по мультимедийной шине от ГУ.
Замечу, когда играет МП3 диск с кириллическим тэгами, «русские» буквы «режутся» в самом ГУ, и в сообщения вместо букв закладывается пустышка (0х81). Почему так сделано? Все очень просто. Наш экран рисует все элементы меню псевдографикой, т.е. в том месте, где в ASCII таблице находятся кириллические символы, расположены «кусочки» меню
Именно поэтому, русский тест нельзя отображать на экране Колеоса. К сожалению, графического режима передачи я не обнаружил, а жаль
Что нужно сделать, чтобы заработало штатное управление с нештатным ГУ? Нужно сделать приемник/передатчик для шины CAN. Передатчик базируется на микроконтроллера AT90CAN128 от Amtel. Для отладки я использовал плату AVR-CAN от Olimex.
Самым простым оказалось сделать поддержку подрулевого управления. На просторах Интернета я нашел информацию по протоколу передачи в проводном управлении Alpine. Команды выглядят как последовательности битов, которые передаются с определенным интервалом. На основе полученной информации была написана программа, которая вылавливает из мультимедийной шины сообщения от джойстика и выдает сообщения на ГУ Alpine по отдельным двум проводкам.
Тут проблем не возникло
.
Остался вывод информации на штатный экран. У некоторых ГУ Apline есть вывод на OEM дисплей автомобиля. Называется он Vehicle Display Interface. Есть аналогичный вывод у Kenwood (KDC-W7534UY), Pioneer (DEH-88RS\RS-II).
Согласно Service manual для Alpine-9847r выводы в разъеме Vehicle Display Interface подписаны как SDA и SCL, а это есть ни что иное как шина i2с от Philips. Ура! Шина хорошо описана, можно делать устройство чтения данной шины. Начал писать программу. Не получается (знаний маловато
), ловлю сигналы Start и Stop, а дальше никак. Зовем на помощь друзей с осциллографом.
Lёhin, Алексей, спасибо огромное за помощь Прибор показал непонятно что. На i2c не похоже (разной ширины синхроимпульсы), хотя «старт» и «стоп» присутствуют. Если читать первый пакет данных, то становится ясно, что «алпайн» ждет сигнала от специализированного адаптера. Существую специальные адаптеры – переходники для подключения штатных элементов управления и индикации. Какой нужен сигнал ответа – не известно. Выручает авито.ру. Нахожу нужный адаптер для ранних моделей Рено (с 2005 года), с ГУ Update List. Код адаптера APF-d102RE (
http://www.alpine-club.ru/netcat_fil...163504ee61.jpg). Стоит 1 рубль (1 тыс). Беру.
Подключаю адаптер. Для передачи информации от ГУ используется два протокола передачи данных: ГУ – адаптер = i2c, адаптер – экран = CAN.
Решил, что надо сначала научить адаптер передавать информацию, а потом уже слушать шину i2c.
Слушаю шину CAN. Вижу, требуется инициализация. Просто так адаптер ничего не вещает. Т.к. адаптер подходит для меганов, сцеников, клио с update list, кидаю клич на нашем форуме. Люди которые отозвались, большое вам спасибо
Андрею aka Коляновод персональное спасибо за предоставленный автомобиль
Сниффером снимаю данные с шины при работающем алпайне с адаптером. Можно начинать писать программу для микроконтроллера. Очень сильно помог
Шахматов Александр (ник NiX) с megane2.ru Он мне прислал всю последовательность инициализации экрана и ГУ у мегана. Его информация очень помогла, но её было недостаточно.
И вот через две недели мытарств я увидел информацию от алпайна в терминальной программе.
Ура скажете вы, но… есть ложка дегтя (возможно, я что-то не знаю).
При приеме радио отображается частота, и информация RDS, но не вся, а только основная.
При проигрывании CD с MP3 не отображаются тэги и названия файлов (возможно не та версия тэга в mp3 файле)
При проигрывании mp3 с флэшки показывается только название песни, а вот об исполнителе умалчивается.
Истинный ужас я испытал когда подключил iPOD. Вместо названия я вижу отсчет времени проигрывания
В общем, лог работы сниффера шины:
Не по теме...
FM:
HU_msg: SEEK
HU_msg: FM 10300
HU_msg: SEEK
HU_msg: FM 10420
HU_msg: NRJ104,2
HU_msg: -ENERGY-
CD-DA:
HU_msg: DISC
HU_msg: EJECT
HU_msg: NO DISC
HU_msg: LOAD
HU_msg: READING
HU_msg: TRACK 1
HU_msg: TRACK 2
HU_msg: TRACK 3
CD-MP3:
HU_msg: NO DISC
HU_msg: LOAD
HU_msg: READING
HU_msg: F 1 T 1
HU_msg: F 1 T 2
HU_msg: F 1 T 3
Flash-MP3: (Видно как скроллится название, а потом замирает на первых 7 символах. Дальше скроллинга нет, или ждать придется долго. Само ГУ скроллит постоянно)
HU_msg: USB
HU_msg: SEARCH
HU_msg: F 1 T 1
HU_msg: Dance W
HU_msg: Dance Wi
HU_msg: ance Wit
HU_msg: nce With
HU_msg: ce With
HU_msg: e With Y
HU_msg: With Yo
HU_msg: With You
HU_msg: ith You
HU_msg: th You
HU_msg: h You
HU_msg: You
HU_msg: You
HU_msg: ou
HU_msg: u
HU_msg:
HU_msg: D
HU_msg: Da
HU_msg: Dan
HU_msg: Danc
HU_msg: Dance
HU_msg: Dance
HU_msg: Dance W
IPOD: (жесть и расстройство)
HU_msg: iPod
HU_msg: SEARCH
HU_msg:
HU_msg: 0:01
HU_msg: 0:02
HU_msg: 0:03
HU_msg: 0:04
HU_msg: 0:05
HU_msg: 0:06
HU_msg: 0:07
HU_msg: 0:08
HU_msg: 0:09
HU_msg: 0:10
HU_msg: 0:11
HU_msg: 0:12
HU_msg: 0:13
Как видно из логов не все так радужно как хотелось. Информация от ГУ поступает скудная.
Одна надежда на шину i2c. Возможно, там передается более полная информация, а адаптер ее режет…