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

Вернуться   PCCar.ru - Ваш автомобильный компьютер > Всё Остальное > Проекты > Рабочий журнал

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2014, 13:02   #1
fyodor_e
Новый Пользователь
 
Регистрация: 21.06.2012
Возраст: 42
Регион: 27
Сообщений: 12
fyodor_e is on a distinguished road
По умолчанию 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
...

Окончу описание чуть позже...
Миниатюры
Нажмите на изображение для увеличения
Название: mcc18-Include.jpg
Просмотров: 903
Размер:	119.9 Кб
ID:	35537  
Вложения
Тип файла: zip usbp18f4550-pccar.zip (8.5 Кб, 343 просмотров)
Тип файла: zip P18USB.X.zip (36.1 Кб, 359 просмотров)
Тип файла: zip SVRmeterMFC.zip (139.9 Кб, 329 просмотров)
fyodor_e вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



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


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