Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: От COM к USB  (Прочитано 24639 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mouse
Молодой специалист

ru
Offline Offline

« : 15-12-2003 12:17 » 

У меня есть написанная прога для обмена информацией через COM порт. Надо ее модифицировать, чтобы она работала с USB. Кое-кто говорит, что принципы одни и те же, вот только по тому же принципу что-то не работает. Итак, вопрос вот в чем: как с наименьшими потерями времени следует модифицировать код?
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #1 : 15-12-2003 12:33 » 

Archangel, А что за USB устройство?
И как оно себя опознает в PC? Если оно делает виртуальный COM порт, то тебе надо только номер порта поменять Улыбаюсь. А если у нее собственный протокол, то тебе нужен драйвер и уже общаться через драйвер. А это не сильно на COM  порт похоже.
Записан

Megabyte be with you!
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #2 : 15-12-2003 12:46 » 

Надо наладить связь между КПК (собственно, USB устройство) и ПК. А насчет виртуального COM порта - это я без понятия. Насчет номер поменять я уже пробовал, вот только что-то не работает. А где узнать можно насчет виртуального COM порта?
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #3 : 15-12-2003 13:10 » 

Цитата

 А где узнать можно насчет виртуального COM порта?


После втыкания устройства появляется ли еще один COM порт в системе? В WinNT/2k/XP/2k3 это можно проверить посмотрев на ключик в реестре HKLM/Hardware/Devicemap/SerialComm сколько у тебя там портов прописано.
Записан
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #4 : 15-12-2003 13:33 » 

не-а, ничего там не меняется...  Жаль Что, придется драйвер, что ли, писать? Мож у кого хоть примеры есть на это дело? Я уже смотрел кое-что про USB pipe-ы. Это то, или копать надо в другом направлении?
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #5 : 15-12-2003 14:24 » 

Цитата

не-а, ничего там не меняется...  


Значит скорее всего нет виртуального COM порта. Случай, когда он есть, но не сделана ссылка на него не рассматриваю, это значит что он не предназначен для использования из приложений.

Цитата

Что, придется драйвер, что ли, писать?



Угу :?
Если девайс не относится к стандартным- USBSTOR, HIDUSB, USBSCAN, USBPRINT.

Цитата

Я уже смотрел кое-что про USB pipe-ы. Это то, или копать надо в другом направлении?


Это то. Только тебе еще надо смотреть какой интерфейс реализуют драйверы контроллеров в операционной системе. Ты же с контроллером будешь работать- а уже он будет пакеты на твой девайс слать.
Записан
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #6 : 15-12-2003 14:39 » 

To SlavaI:
Цитата

Если девайс не относится к стандартным- USBSTOR, HIDUSB, USBSCAN, USBPRINT.

USBSTOR - UsbStorage, USBSCAN и USBPRINT - тоже понятно. А что такое HIDUSB?
И не знаешь, есть ли где примеры по поводу USB pipe, если уж все равно придется с этим разбираться? В книгах все описано неплохо, вот только примеров нет, а без них как-то тоскливо...  Ага
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #7 : 15-12-2003 14:58 » 

Цитата

А что такое HIDUSB?


Human Interface Device- мышки, клавиатуры, джойстики.

Цитата

И не знаешь, есть ли где примеры по поводу USB pipe


Если для Windows- то в штуке под названием DDK- Driver Development Kit, есть на этом сайте, только в нем очень много мегабайт.
Записан
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #8 : 15-12-2003 15:03 » 

Да у меня у самого DDK есть... Ладно, спасибо за совет, буду копать в DDK!
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #9 : 15-12-2003 15:04 » 

Archangel, смотри bulkusb.
Пример конечно кривой, но для начала пойдет.
Записан

Megabyte be with you!
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #10 : 17-12-2003 11:58 » 

Слушайте, а кто-нибудь сам занимался этой задачей? Я накопал одну книжку, но там как обычно - написано много и малопонятно. Так что хотелось бы выслушать мнение опытного бойца.
И еще одно: можно ли как-то свести эту задачу к пресловутому COM порту? Просто странно: COM - последовательный порт, USB - вообще serial по определению, так что должны же быть какие-то пути взаимодействия! Объясните, пожалуйста, кто знает!
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #11 : 17-12-2003 12:08 » 

Archangel, USB - universal serial BUS. чуешь разницу.
А раз она шина, то и управление ей на порядок сложнее.
Свести все к com порту можно только если твой КПК умеет прикидываться com портом на usb.
Записан

Megabyte be with you!
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #12 : 17-12-2003 12:28 » 

Да, разницу почуял. Насчет того, что управление на порядок сложнее - это точно. По USB pipe документации на 40 страниц!  Я шокирован! Вот сейчас буду разбираться... А мой КПК прикидываться COM портом не умеет, проверял.  Жаль
Lex, а ты сам написанием драйверов не баловался?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #13 : 17-12-2003 12:46 » 

Archangel, Общего у них только то, что биты бегут по одному проводу друг за дружкой. Ага  Поэтому и serial. А в остальном это небо и земля. Хотя бы в том, что в USB используются "настоящие" протоколы передачи данных. А в COM используется handshake (рукопожатие) электрических сигналов.

Так что халявы не будет эт точно. Сам я USB дрова не писал, но был непосредственным пользователем. По теории сначала надо сконфигурировать USB устройство. Потом открыть end point (pipe) предназначенную для записи (чтения). Причём надо учитывать протокол с которым она может работать в твоём случае это будет скорее всего BULK, который тебе Lex посоветовал. После этого только можно приниматься за запись (чтение) данных.

Потом, ещё раз хочу поставить акцент на стандартных USB классах, про которые говорил SlavaI. Если у тебя стандартный USB девайс, то можно надыбать в инете команды управления им. Я бы начал с этого. Для анализа можно взять дёмку универсального драйвера USB, чтоб вытащить дескрипторы.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #14 : 17-12-2003 12:56 » 

USBSTOR, HIDUSB, USBSCAN, USBPRINT - ни к одному из этих классов это отношения не имеет. К несчастью. Я и сам поначалу хотел халявы, но увы!..
Ладно, пока не смотрите ничего больше - я попробую сам разобраться. Сейчас статьи неплохие накопал, а если будут еще вопросы по существу - сразу к Вам...  Ага
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #15 : 17-12-2003 12:58 » 

Archangel, полноценный драйвер для USB не писал, только правил bulkusb. Я писал firmware для USB девайса. В твоем случае надо узнать какие дескрипторы отдает девайс. Это можно сделать с помощью унивнрсального USB драйвера  или поставить себе USB Complaint test с usb.org. Он умеет запрашивать любые дескрипторы с девайса. После этого можно садиться за написание своего драйвера.
Записан

Megabyte be with you!
xelos
Гость
« Ответ #16 : 19-12-2003 22:47 » 

www.beyondlogic.org смотрите, там сжато и четко описано про USB устройства. Если разрабатывается собственное USB устройство, то советую обратить внимание на микроконтроллеры от Cypress - они идут с USB интерфейсом и готовыми дровами под винду.
Записан
NeilPryde
Гость
« Ответ #17 : 26-12-2003 11:18 » 

Цитата: Archangel
У меня есть написанная прога для обмена информацией через COM порт. Надо ее модифицировать, чтобы она работала с USB. Кое-кто говорит, что принципы одни и те же, вот только по тому же принципу что-то не работает. Итак, вопрос вот в чем: как с наименьшими потерями времени следует модифицировать код?

А если попробовать общаться через преобразователь USB в RS232? Продаются ведь такие! Почти халява.
Записан
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #18 : 26-12-2003 14:34 » 

To NeilPryde
Идея неплохая, но вот в чем завес: к настольному компу я переходник подключу, а вот с КПК уже не получиться. Там USB намертво вделан к крэдл + еще на современных моделях RS232 вообще нет... Да Бог с ним, наваяю драйвер - лишний повод разобраться!  Улыбаюсь
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #19 : 26-12-2003 14:56 » 

Archangel, мобуть ты еще и статейку напишешь на эту тему. Лично меня тоже интересует эта штука только мне интересент USB-LPT даже не LPT а просто восьми битный паралельный. штучка дома напаянная валяется ЖК экранчик 20 символов 2 строки на него можно всякую чушь выводить пипа загрузки прочессора сетевой статисти и даже песен от винампа только он к LPT подключен мене это не нравится в силу того что питание беру из системника а могбы вся зделать красиво тоненький кабелёк и маленькая коробочка положилбы перед монитором и крысата.  Отлично
Записан

Странно всё это....
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #20 : 26-12-2003 19:33 » 

Archangel, по делу о драйверах - лучше в форум по драйверам обращайся - немного ниже по главной странице...

Думаю тебе смогут помочь.
Записан

А птичку нашу прошу не обижать!!!
Mouse
Молодой специалист

ru
Offline Offline

« Ответ #21 : 27-12-2003 22:41 » new

LogRus, обязательно напишу, как разбирусь!  Улыбаюсь Просто у меня сейчас сессия начинается и до 24 я практически выпаду из жизни: на работе отпуск дадут да и здесь скорее всего нерегулярно появляться буду...
Гром, здесь ты как всегда прав, но у меня уже достаточно материала - после сессии буду сам разбираться.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines