реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> LPC2468 USB HOST, Есть ли в природе готовый стек (драйвер) для композитных устройств?
haker_fox
сообщение Jul 5 2011, 05:07
Сообщение #1


Познающий...
******

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



Здравствуйте, уважаемые коллеги!
Мной поставлена очередная сложная цель - подключить CDMA модем (AnyDATA ADU-300A) к указанному МК.
В Windows данный девайс представлен двумя последовательным портами. Один более менее стандартный (не все AT-команды проходят), второй - для управления модемом вроде бы. По крайней мере сниффер зарегистрировал активность на первом порте при выходе в сеть (веб), а на втором - при отправке СМС, дозвоне не городские и мобильные номера, аутентификации через ПИН-код и т.п.. Я даже, используя терминал, брал пакеты и самостоятельно "звонил", отправлял СМС с модем без использования фирменного софта.

Собственно вопросы: есть ли в природе готовый стек для USB HOST, поддерживающий составные устройства? Если нет, то реально ли допилить USB HOST LITE (www.nxp.com)?

Опыта работы с USB достаточно мало, можно сказать совсем нет.

Если дело плохо, можно порекомендовать недорогой модем с последовательным портом, способный звонить, отправлят/принимать SMS? Если он и Интернет способен организовывать, то вообще здорово! laughing.gif

Однако, хочется использовать имеющееся оборудования. А CDMA модем у меня есть...

Может быть я не все четко изложил, если требуется дополнительная информация, я сообщу.

Подобные темы на форуме нашел, но они мне мало помогли. Возможно не все нашел.

Заранее благодарен за любую помощь!!!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 5 2011, 06:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(haker_fox @ Jul 5 2011, 08:07) *
Заранее благодарен за любую помощь!!!


Допилить можно, и самому с нуля написать тоже можно. Но это долго и трудно (месяца три ухлопаете, в лучшем случае). А Linux в качестве альтернативы не рассматривали ?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 5 2011, 07:55
Сообщение #3


Познающий...
******

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



QUOTE (kovigor @ Jul 5 2011, 15:54) *
Допилить можно, и самому с нуля написать тоже можно. Но это долго и трудно (месяца три ухлопаете, в лучшем случае). А Linux в качестве альтернативы не рассматривали ?

Поскольку LPC2468 не снабжен MMU, рассматривал в качестве альтернативы ucLinux. Но как-то осел на RTX (RL-ARM). А там все только для usb device(
Хотя может быть вытащить что-то из ucLinux можно? Или любого другого полноценного линукса, FreeBSD?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 5 2011, 09:20
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(haker_fox @ Jul 5 2011, 11:55) *
Хотя может быть вытащить что-то из ucLinux можно? Или любого другого полноценного линукса, FreeBSD?

Вытащить-то можно откуда угодно, но без опыта работы с USB все равно придется ухлопать пару месяцев, наверное.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 5 2011, 09:34
Сообщение #5


Познающий...
******

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



QUOTE (aaarrr @ Jul 5 2011, 18:20) *
Вытащить-то можно откуда угодно, но без опыта работы с USB все равно придется ухлопать пару месяцев, наверное.

Да уж. Поставил я себе задачку. Может быть, как этап, можно потренироваться в написании драйвера для Windows/DOS?

Вот тут красивая весчь) Но дорого(

Можно еще вопрос, мой модем попадает в класс CDC? Он же два последовательных порта предполагает...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 5 2011, 09:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 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? Он же два последовательных порта предполагает...

А вы дескрипторы его посмотрите - все станет ясно.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 5 2011, 10:02
Сообщение #7


Познающий...
******

Группа: Свой
Сообщений: 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


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jul 5 2011, 10:03
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 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.php

P.S.
Самостоятельное написание ПО хоста с нуля - вещь достаточно сложная и требующая опыта и знаний о том, как работает шина. С нуля такая задача практически неподъемна. Советую сначала сделать парочку дивайсов, а уже потом браться за хост. "Выдирание" нужных вам блоков из Линукса или любой другой ОС - задача еще в несколько раз более сложная, чем написание своего хоста с нуля. Хотя бы уже потому, что на незнание принципов работы шины накладывается необходимость разбирательства в чужом ПО, вообще говоря, для новичка потрясающе сложном. Так что решайте, что вам больше подходит ...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 5 2011, 10:19
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 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 может оказаться проще для освоения с нуля, нежели честный хост-контроллер.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 5 2011, 10:33
Сообщение #10


Познающий...
******

Группа: Свой
Сообщений: 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 может оказаться проще для освоения с нуля, нежели честный хост-контроллер.

Стоп! rolleyes.gif А OTG это что-то несколько другое, а не хост USB? Я думал, что эта технология просто позволяет хост и устройство "комбинировать на одном устройстве": т.е., например, коммуникатор может выступать в роли хоста, если к нему подключен принтер, и в роли устройства - если коммуникатор подключен к компьютеру.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 5 2011, 11:12
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(haker_fox @ Jul 5 2011, 14:33) *
Стоп! rolleyes.gif А OTG это что-то несколько другое, а не хост USB?

Обычно OTG-контроллер является сильно упрощенным хостом, а не "полноценным", который сделан в соответствии со спецификациями OHCI/EHCI.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 5 2011, 11:58
Сообщение #12


Познающий...
******

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



QUOTE (aaarrr @ Jul 5 2011, 20:12) *
Обычно OTG-контроллер является сильно упрощенным хостом, а не "полноценным", который сделан в соответствии со спецификациями OHCI/EHCI.

Спасибо! Буду копать это направление.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
yakub_EZ
сообщение Jul 5 2011, 12:20
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 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.

Может можно два порта ужать в один?

Ой, понял что не то подсказал sad.gif
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 5 2011, 12:53
Сообщение #14


Познающий...
******

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



QUOTE (yakub_EZ @ Jul 5 2011, 21:20) *
Ой, понял что не то подсказал sad.gif

Да ничего страшного, yakub_EZ rolleyes.gif
Действительно, почему так много реализаций CDC-device, но мало хостов? Скажем так, для ARM я вообще CDC HOST не нашел. Для пика есть, но там свои библиотеки + графический конфигуратор...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 6 2011, 09:47
Сообщение #15


Познающий...
******

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



Нечаянно увидел сегодня вот это, и задумался "а надо ли ARM мучать?" И USB и сеть, и другие полезные вещи есть. А при наличии линукса и драйвера. Куча возможностей.
Хотя это наверно эмоции.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01495 секунд с 7
ELECTRONIX ©2004-2016