06.04.2014, 13:02 | #1 |
Новый Пользователь
Регистрация: 21.06.2012
Возраст: 42
Регион: 27
Сообщений: 12
|
Mark II + ... USB HID
Решил потихоньку добавить в свой автомобиль CarPC.
Пока до завершения проекта еще оооочень далеко, но уже есть некоторые наработки. Что имеется. Toyota MarkII 2003 г с мультидисплеем, японской навигацией и камерой заднего хода. Все это объединено по шине AVC-LAN и RGB. В инете есть достаточно информации о том, как подключить CarPC к такому дисплею и готовых устройств для этого. Но есть два НО! - функционал и цена (здесь я имею в виду всевозможные адаптеры для подключения ПК к штатному монитору). Во-первых, стоят они 6000+, что дороговато для одного только блока, а во-вторых зачастую эти блоки могут только подключиться к одной AVC-LAN (а эта шина связывает между собой много устройств, поэтому возможно мне захочется подключиться еще куда-нибудь, например между дисплеем (головой) и аудиосистемой). Также в машине кроме AVC-LAN есть еще одна шина - BEAN, по которой обмениваются данными ECU двигателя, панель приборов, климат-контроль и др. К этой шине тоже интересно подключиться (пока не знаю для чего , но аппетит приходит во время еды). Одним словом решено делать все самостоятельно (кроме самого ПК конечно ). Решил описывать этапы проекта максимально подробно, т.к. большинство посетителей сайта (по моему мнению) хорошо владеют паяльником и языками программирования, чтобы сделать что-то под себя. Поэтому думаю описание отдельных блоков будет полезно гораздо больше, чем фото готового изделия. Итак, первое с чего я начал, это сборка USB устройства на базе pic18F4550 и подключения его к ПК. В будущем, это устройство будет отвечать за взаимодействие между ПК и др системами авто (подключение к AVC-LAN, возможно к BEAN и OBD-II, управление какими-нить реле и пр.). Т.е. с ПК идет команда по USB, PIC18 ее отрабатывает и отчитывается. Скорости USB 2.0 более чем достаточно для взаимодействия с низкоскоростными шинами авто. Пока собрана тестовая плата по схеме usbp18f4550-pccar.zip (схема в формате DipTrace). Печатную плату не привожу, т.к. эта схема скорее прототип для старта. Микросхему P18F4550 я установил в панельку, чтобы не выпаивать ее, когда буду собирать уже рабочий вариант. Также прикладываю прошивку (P18USB.X.zip) для MPLAB.x и компилятора mplabc18-v3.47 (компилятор устаревший, но код генерит нормальный :-)) Прошивка пока делает две вещи: 1. PIC18 определяется как HID устройство в Windows 2. Позволяет обращаться через команды ввода-вывода Windows. Для работы прошивки потребуется: 1. Скачать Microchip Libraries for Applications версия 2013-06-15 (в более новой не работает...) 2. Добавить в проект в MPLAB (P18USB -> Source Files -> USB, правой кнопкой "Add Existing Item") C:\microchip_solutions_v2013-06-15\Microchip\USB\usb_device.c и C:\microchip_solutions_v2013-06-15\Microchip\USB\HID Device Driver\usb_function_hid.c. Файлы с такими же именами, которые уже есть в проекте удалить. Это делается для того, чтобы компилятор знал откуда брать эти файлы. 3. Добавить каталог C:\microchip_solutions_v2013-06-15\Microchip\Include в "Include Directories" (см mcc18-include.jpg). 4. В файле newmail.c в самом начале найти строку #pragma config PLLDIV = 2 и установить правильное значение, соотв вашему кристаллу (2 соответствует кристаллу на 8 МГц). Далее компилируем и прошиваем. В панели управления в разделе "Устройства и принтеры" должно полявится устр-во "AVC-LAN-test + SVR-meter" (Название устр-ва редактируется в файле "НrdwareProfile - PICDEM FSUSB.h". Там же и др параметры, вроде VID, PID и пр.). В функции ProcessIO после в блоке switch можно описывать взаимодействие с ПК. Там все просто. Мы получаем ReceivedDataBuffer, в котором содержаться 64 байта, отправленные нам ПК. В ToSendDataBuffer можно загрузить 64 байта на отправку. Что именно грузить и как обрабатывать входящие/исходящие данные - решать вам Теперь код для ПК (SVRmeter.zip). Это код для Visual Studio 2013. Весь код - две кнопки Button1 и BootLoader ... Окончу описание чуть позже... |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|