|
LPC2468 USB HOST, Есть ли в природе готовый стек (драйвер) для композитных устройств? |
|
|
|
Jul 5 2011, 05:07
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Здравствуйте, уважаемые коллеги! Мной поставлена очередная сложная цель - подключить CDMA модем (AnyDATA ADU-300A) к указанному МК. В Windows данный девайс представлен двумя последовательным портами. Один более менее стандартный (не все AT-команды проходят), второй - для управления модемом вроде бы. По крайней мере сниффер зарегистрировал активность на первом порте при выходе в сеть (веб), а на втором - при отправке СМС, дозвоне не городские и мобильные номера, аутентификации через ПИН-код и т.п.. Я даже, используя терминал, брал пакеты и самостоятельно "звонил", отправлял СМС с модем без использования фирменного софта. Собственно вопросы: есть ли в природе готовый стек для USB HOST, поддерживающий составные устройства? Если нет, то реально ли допилить USB HOST LITE (www.nxp.com)? Опыта работы с USB достаточно мало, можно сказать совсем нет. Если дело плохо, можно порекомендовать недорогой модем с последовательным портом, способный звонить, отправлят/принимать SMS? Если он и Интернет способен организовывать, то вообще здорово! Однако, хочется использовать имеющееся оборудования. А CDMA модем у меня есть... Может быть я не все четко изложил, если требуется дополнительная информация, я сообщу. Подобные темы на форуме нашел, но они мне мало помогли. Возможно не все нашел. Заранее благодарен за любую помощь!!!
--------------------
Выбор.
|
|
|
|
|
Jul 5 2011, 09:34
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (aaarrr @ Jul 5 2011, 18:20)  Вытащить-то можно откуда угодно, но без опыта работы с USB все равно придется ухлопать пару месяцев, наверное. Да уж. Поставил я себе задачку. Может быть, как этап, можно потренироваться в написании драйвера для Windows/DOS? Вот тут красивая весчь) Но дорого( Можно еще вопрос, мой модем попадает в класс CDC? Он же два последовательных порта предполагает...
--------------------
Выбор.
|
|
|
|
|
Jul 5 2011, 09:43
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(haker_fox @ Jul 5 2011, 13:34)  Да уж. Поставил я себе задачку. Может быть, как этап, можно потренироваться в написании драйвера для Windows/DOS? А чем OHCI-драйвер для PC будет отличаться от аналогичного для МК? То есть можно, конечно, но это не этап, а точно такая же задача. Цитата(haker_fox @ Jul 5 2011, 13:34)  Можно еще вопрос, мой модем попадает в класс CDC? Он же два последовательных порта предполагает... А вы дескрипторы его посмотрите - все станет ясно.
|
|
|
|
|
Jul 5 2011, 10:02
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (aaarrr @ Jul 5 2011, 18:43)  А чем OHCI-драйвер для PC будет отличаться от аналогичного для МК? То есть можно, конечно, но это не этап, а точно такая же задача. Может быть не писать драйвер, а просто программу, которая захватывает USB-контроллер. И сама, без драйверов, работает с устройством. Это несколько проще, чем разбираться в структуре драйверов WIN. Ну и программу для IBM PC проще отлаживать, чем ARM перепрошивать. Ресурс FLASH ограничен( QUOTE (aaarrr @ Jul 5 2011, 18:43)  А вы дескрипторы его посмотрите - все станет ясно. USBView показывает следующую информацию CODE evice Descriptor: bcdUSB: 0x0110 bDeviceClass: 0x00 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x40 (64) idVendor: 0x16D5 idProduct: 0x6501 bcdDevice: 0x0000 iManufacturer: 0x01 0x0409: "AnyDATA Corporation" iProduct: 0x02 0x0409: "AnyDATA CDMA Products" iSerialNumber: 0x00 bNumConfigurations: 0x01 Что интересно, для флешки класс, подкласс устройства тоже нулевые CODE evice Descriptor: bcdUSB: 0x0200 bDeviceClass: 0x00 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00
--------------------
Выбор.
|
|
|
|
|
Jul 5 2011, 10:03
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(haker_fox @ Jul 5 2011, 10:55)  Поскольку LPC2468 не снабжен MMU Возьмите МК с MMU, тот же ARM9 вроде AT91SAM9xxx. купите девкит, там уже стоит Linux, и пробуйте. Например: http://www.starterkit.ru/html/index.phpP.S. Самостоятельное написание ПО хоста с нуля - вещь достаточно сложная и требующая опыта и знаний о том, как работает шина. С нуля такая задача практически неподъемна. Советую сначала сделать парочку дивайсов, а уже потом браться за хост. "Выдирание" нужных вам блоков из Линукса или любой другой ОС - задача еще в несколько раз более сложная, чем написание своего хоста с нуля. Хотя бы уже потому, что на незнание принципов работы шины накладывается необходимость разбирательства в чужом ПО, вообще говоря, для новичка потрясающе сложном. Так что решайте, что вам больше подходит ...
|
|
|
|
|
Jul 5 2011, 10:19
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(haker_fox @ Jul 5 2011, 14:02)  Ну и программу для IBM PC проще отлаживать, чем ARM перепрошивать. Ресурс FLASH ограничен( При работе с железом, ИМХО, отнюдь не проще. А ресурса флеш точно хватит, не беспокойтесь. Цитата(haker_fox @ Jul 5 2011, 14:02)  USBView показывает следующую информацию ... Что интересно, для флешки класс, подкласс устройства тоже нулевые Нулевое значение класса в device descriptor указывает на необходимость получения информации о классе из interface descriptors. Тянуть более толстый процессор и линукс только ради USB не стоит. Даже на атмегах вполне себе работают люди с периферией через OTG. Кстати, тоже вариант: OTG может оказаться проще для освоения с нуля, нежели честный хост-контроллер.
|
|
|
|
|
Jul 5 2011, 10:33
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (kovigor @ Jul 5 2011, 19:03)  Возьмите МК с MMU, тот же ARM9 вроде AT91SAM9xxx. купите девкит, там уже стоит Linux, и пробуйте. Например: http://www.starterkit.ru/html/index.phpХотел купить вот эту плату. Но в стартерките народ в отпуске. Отгрузить платку могут только через несколько недель. У дилеров этой плат. Более дорогие я не потяну( QUOTE (aaarrr @ Jul 5 2011, 19:19)  А ресурса флеш точно хватит, не беспокойтесь. Это уже радует) QUOTE (aaarrr @ Jul 5 2011, 19:19)  Нулевое значение класса в device descriptor указывает на необходимость получения информации о классе из interface descriptors. Понятно. QUOTE (aaarrr @ Jul 5 2011, 19:19)  Тянуть более толстый процессор и линукс только ради USB не стоит. Даже на атмегах вполне себе работают люди с периферией через OTG. Кстати, тоже вариант: OTG может оказаться проще для освоения с нуля, нежели честный хост-контроллер. Стоп!  А OTG это что-то несколько другое, а не хост USB? Я думал, что эта технология просто позволяет хост и устройство "комбинировать на одном устройстве": т.е., например, коммуникатор может выступать в роли хоста, если к нему подключен принтер, и в роли устройства - если коммуникатор подключен к компьютеру.
--------------------
Выбор.
|
|
|
|
|
Jul 5 2011, 12:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252

|
В примерах Кейла вроде есть виртуальный юсби-ком порт, или это не то? c:\Keil\ARM\Boards\Keil\MCB2300\USBCDC\ Цитата The Virtual COM port project is a demo program for the LPC2378 using Keil MCB2300 board. Может можно два порта ужать в один? Ой, понял что не то подсказал
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|