PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Рабочий журнал (http://pccar.ru/forumdisplay.php?f=25)
-   -   Mark II + ... USB HID (http://pccar.ru/showthread.php?t=20621)

fyodor_e 06.04.2014 13:02

Mark II + ... USB HID
 
Вложений: 4
Решил потихоньку добавить в свой автомобиль CarPC.
Пока до завершения проекта еще оооочень далеко, но уже есть некоторые наработки.

Что имеется.
Toyota MarkII 2003 г с мультидисплеем, японской навигацией и камерой заднего хода.
Все это объединено по шине AVC-LAN и RGB.
В инете есть достаточно информации о том, как подключить CarPC к такому дисплею и готовых устройств для этого.
Но есть два НО! :rolleyes2: - функционал и цена (здесь я имею в виду всевозможные адаптеры для подключения ПК к штатному монитору).
Во-первых, стоят они 6000+, что дороговато для одного только блока, а во-вторых зачастую эти блоки могут только подключиться к одной AVC-LAN (а эта шина связывает между собой много устройств, поэтому возможно мне захочется подключиться еще куда-нибудь, например между дисплеем (головой) и аудиосистемой).
Также в машине кроме AVC-LAN есть еще одна шина - BEAN, по которой обмениваются данными ECU двигателя, панель приборов, климат-контроль и др. К этой шине тоже интересно подключиться (пока не знаю для чего :rolleyes2:, но аппетит приходит во время еды).

Одним словом решено делать все самостоятельно (кроме самого ПК конечно :rolleyes2:).

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

Итак, первое с чего я начал, это сборка 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 байта на отправку.
Что именно грузить и как обрабатывать входящие/исходящие данные - решать вам :rolleyes2:

Теперь код для ПК (SVRmeter.zip).
Это код для Visual Studio 2013.
Весь код - две кнопки Button1 и BootLoader
...

Окончу описание чуть позже...


Часовой пояс GMT +4, время: 12:15.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot