08.03.2013, 16:16 | #1 |
Старший Пользователь
Регистрация: 18.02.2013
Возраст: 42
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
|
BMW IBUS to USB Keyboard
Начну уже, пожалуй, тему.
И так, много народу сталкивается с необходимостью подключить кнопки на руле своего автомобиля к carpc. Среди них, в том числе, и владельцы BMW. В BMW нажатия кнопок на руле (и многие другие данные связанные с мультимедиа и приборной панелью) передаются по шине, называемой IBUS (по крайней мере, в e46 и в соседних по модельному ряду). Физически она представляет собой, так называемую, K-Line диагностическую линию связи, по которой данные передаются в одном общем проводе. Передаются они так же, как и в последовательном интерфейсе RS-232, более известном как COM порт, на скорости 9600 бит/с, по 8 бит в байте, с одним стоп-битом, без контроля четности (как на этой картинке). Это если описывать шину в двух словах, интересующиеся техническими деталями смогут найти их на необъятных просторах Интернета. Задача: «отлавливать» на шине нажатия кнопок на руле и передавать эти нажатия в carpc, эмулируя нажатия кнопок на обычной клавиатуре. Для этого собирается адаптер по вот такой схеме: (схема во вложении) Это пока черновик, еще не собранный. Все узлы ранее проверялись по отдельности. Я сейчас в процессе написания прошивки. Уже готова часть, эмулирующая клавиатуру. Изучены посылки, которые передаются по шине при нажатии кнопок. Осталось научить контроллер распознавать эти посылки и при их обнаружении посылать в компьютер код одной из клавиш клавиатуры. Для каждой кнопки на руле свой код клавиши. Это могут быть горячие клавиши WinAMP’а или любые другие произвольные клавиши. Я это делаю для Android, который понимает клавиатуры с мультимедиа кнопками, и собираюсь эмулировать мультимедиа кнопки управления звуком и переключения треков. Проект уже близок к финишной прямой. Начинаю тему здесь заранее, чтобы перед воплощением в железе услышать пожелания по дополнительному функционалу, который возможно будет включен в проект. Схема, печатная плата и прошивка контроллера будут выложены тут. Если кому есть что сказать, высказывайтесь. |
08.03.2013, 22:46 | #2 |
Старший Пользователь
Регистрация: 29.09.2009
Возраст: 42
Регион: 77, 97, 99, 177
Машина: BMW Z4 Coupe
Сообщений: 183
|
А когда примерно будет готов и сколько будет стоить ?
|
09.03.2013, 13:24 | #3 |
Старший Пользователь
Регистрация: 18.02.2013
Возраст: 42
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
|
Первый вариант работоспособной прошивки, если пройдет полевые испытания, то сегодня или завтра будет готов.
Купив вот такую плату, микросхему MC33290, пару керамических конденсаторов на 0,1мкФ и такой винтовой клемник вполне можно самостоятельно изготовить работоспособный девайс уже сейчас. Я же буду еще дорабатывать схему, разрабатывать свою печатную плату, в которую собираюсь добавить контроллер питания carpc и только потом можно будет говорить об изготовлении девайса. Надеюсь закончить работу в течении этого месяца. |
11.03.2013, 13:17 | #4 |
Старший Пользователь
Регистрация: 18.02.2013
Возраст: 42
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
|
Полевые испытания пока не пройдены, в микроконтроллер не попадают все байты с шины. При более внимательном прочтении datasheet'а на mc33290 обнаружил, что забыл резистор на 510..560 Ом между первой (vbb) и четвертой (iso) ногой микросхемы. Надеюсь вечером получить положительный результат.
Зато, теперь в прошивку включен еще CDC Class Device (COM-Порт), т.е. теперь адаптер представляется компьютеру составным устройством: USB-клавиатурой и USB-COM-портом. В COM-порт попадает всё, что "пролетает" по шине. Его можно открыть, например, в HyperTerminal'е и смотреть данные, "летающие" по шине. В финальной версии данные можно будет отправлять на шину, для тех, кто хочет не только слушать, но и управлять устройствами автомобиля. Однако, для этого легче купить BM9213 готовый адаптер, если конечно не нужна эмуляция нажатия клавиш клавиатуры. |
11.03.2013, 13:37 | #5 |
Старший Пользователь
Регистрация: 29.09.2009
Возраст: 42
Регион: 77, 97, 99, 177
Машина: BMW Z4 Coupe
Сообщений: 183
|
ждем, удачи
|
11.03.2013, 20:18 | #6 |
Старший Пользователь
Регистрация: 18.02.2013
Возраст: 42
Город: Санкт-Петербург
Регион: 78, 98
Машина: e46
Сообщений: 163
|
И так, всё работает. Правда видео не очень получилось.
Дело было не в забытом резисторе, а в том, что в протоколе используется контроль четности, а я его не включил. Т.е. скорость шины не 9600 8n1, а 9600 8e1. Итого, девайс можно собрать на таком контроллере, используя приложенную к данному сообщению прошивку. Только контроллер нужно дополнить микросхемой MC33290, например навесным монтажом, как на фотках. Я для пробы собирал всё это на том, что было под рукой. В качестве контроллера бывший программатор, "допиленный" немного под данную задачу. Далее, уже не спеша, буду дооснащать это дело другими, нужными, мне функциями, а так же делать свою печатную плату. Контроллер можно запрограммировать на эмуляцию нажатия любых клавиш, сейчас он эмулирует "+", "-", ".", ",". Он точно будет работать на e46 с аудиосистемой bmw business. С другими аудиосистемами не тестировалось, в них, возможно, будут другие коды назначения. Однако, если кто соберет и работать не будет именно по причине других кодов, то нужно будет записать лог с com-порта, выложить сюда, я поправлю. .inf файл в архиве - это драйвер com-порта, который понадобится. В контроллере из 3-го поста стоит кварц 8МГц, а нужен 16МГц, поэтому, если возьмёте тот контроллер, то берите и кварц на 16МГц, его нужно будет перепаять. |
11.03.2013, 20:31 | #7 |
Старший Пользователь
Регистрация: 29.09.2009
Возраст: 42
Регион: 77, 97, 99, 177
Машина: BMW Z4 Coupe
Сообщений: 183
|
Я так понял, что к Андроиду просто так подключить не получится?
|
11.03.2013, 21:33 | #8 |
Гуру
Регистрация: 19.09.2009
Возраст: 46
Город: Мелитополь
Регион: Украина
Сообщений: 2,022
|
Автор написал, что это будет составное устройство, тобиш одновременно COM порт и HID клава. В ведроиде должна сразу завестись как внешняя клава, только нужно освоить в ведре как переназначать коды клавиш.
|
11.03.2013, 21:40 | #9 |
Старший Пользователь
Регистрация: 29.09.2009
Возраст: 42
Регион: 77, 97, 99, 177
Машина: BMW Z4 Coupe
Сообщений: 183
|
|
11.03.2013, 21:50 | #10 |
Больной. Диагноз "Car PC"
Регистрация: 01.09.2005
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: 08\Acura\MDX •••• 07\Honda\Civic 4D
Сообщений: 4,379
|
Просто так ничего в этом мире не делается
Чтобы переназначить кнопки USB клавы нужно править конфиг. Ничего сложного там нет - не боги горшки обжигают Вот статейка с хабра, там все расписано. А с другой стороны - зачем переназначать коды клавиш HID клавы, если можно поправить прошивку девайса?
__________________
Старый проект Honda Accord RHD Теперь будет Acura MDX 2008 и Honda Civic 4D 2007 и Mitsubishi Outlander XL 2011 |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|