|
|
  |
PIC32MX USB HOST, Возможно ли применить PIC для решения задачи? |
|
|
|
Oct 12 2009, 19:37
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(DiMonstr @ Oct 12 2009, 22:07)  Возможно ли решить такую задачу с программной точки зрения на контроллере PIC? Нет. Есть несколько путей решения вашей задачи: 1. Поставить FPGA, которая будет парсить поток между хостом и хабом (или, как вариант, сама являться хабом). 2. Поставить МК с хостом, который будет проверять VID/PID устройства перед подключением к "настоящему" хосту. 3. Следить за VID/PID программно со стороны хоста. ИМХО, если нужно именно аппаратное решение, то вариант 2 является наиболее простым.
|
|
|
|
|
Oct 13 2009, 06:39
|

Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266

|
Цитата(aaarrr @ Oct 12 2009, 23:37)  Нет... Почему бы нет? PIC32MX440F128H (в режиме HOST) и есть МК с хостом.
--------------------
УЭР
|
|
|
|
|
Oct 13 2009, 08:33
|
Частый гость
 
Группа: Свой
Сообщений: 81
Регистрация: 26-10-06
Из: Россия, Пенза
Пользователь №: 21 706

|
Цитата(aaarrr @ Oct 12 2009, 23:37)  ...ИМХО, если нужно именно аппаратное решение, то вариант 2 является наиболее простым. Почему нет??? К варианту №2 и подходит контроллер PIC32MX440F128H. Получится организовать транзитную передачу пакетов??? Одним из первых вариантов было применение контроллера USB фирмы Cypress семейства EZ-HOSTс двумя модулями SIE. Там можно было закольцевать обмен транзакциями между SIE1 и SIE2. Первый настроить как Device, а второй как Host. Но не судьба - их очень тяжело купить  (( Кто-нибудь работал с этим каменем?
Сообщение отредактировал DiMonstr - Oct 13 2009, 08:33
|
|
|
|
|
Oct 13 2009, 16:30
|
Частый гость
 
Группа: Свой
Сообщений: 81
Регистрация: 26-10-06
Из: Россия, Пенза
Пользователь №: 21 706

|
Цитата(aaarrr @ Oct 13 2009, 15:03)  Спецификацию почитали бы что-ли. Ну как Вы собираетесь девайсом хаб изображать, а? Да Вы не поняли. В качестве хаба будет отдельный полностью аппаратный хаб контроллер (например, ISP1520). Восходящий порт предполагается подключить к контроллеру PIC32MX440F128H в режиме хост. К ПК предполагается подключить второй контроллер PIC32MX440F128H в режиме функция. Два контроллера потому, что сложно достать контроллер с двумя портами USB, настраиваемых либо как хост либо функция или OTG. Ну а дальше не буду повторяться. Этот механизм называется "виртуализация". Цитата(aaarrr @ Oct 13 2009, 15:03)  Вариант 2 предполагает использование аналоговых ключей для коммутации, а не "транзитную передачу пакетов" силами контроллера. И да, любой МК с хостом в этом случае годится, в т.ч. PIC. А каким образом Вы предлагаете применить аналоговый ключ? Что будет представлять из себя логика работы устройства?
Сообщение отредактировал DiMonstr - Oct 13 2009, 16:33
|
|
|
|
|
Oct 13 2009, 16:51
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(DiMonstr @ Oct 13 2009, 20:30)  Этот механизм называется "виртуализация". И Вы готовы наворотить гору весьма сложного софта для контроллеров и драйверов со стороны хоста? Цитата(DiMonstr @ Oct 13 2009, 20:30)  А каким образом Вы предлагаете применить аналоговый ключ? Что будет представлять из себя логика работы устройства? Устройство получается очень простое: Ставим стандартную ИС хаба, внешние разъемы через мультиплексоры могут быть подключены либо к соответствующим портам хаба, либо к порту микроконтроллера. При подключении нового устройства сначала при помощи МК смотрим VID/PID, затем, если они относятся к числу разрешенных, коммутируем устройство на хаб.
|
|
|
|
|
Oct 13 2009, 19:22
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
PIC-и никак не пойдут. А вот это устройство сможет сделать то что вам надо. http://www.alylab.eu/OpenProjects/ARMUltimator2/ARMU2.htmВ i.MX27 есть специальный режим на USB прозрачного перенаправления с одного USB порта на другой и при этом процессор может слушать обмен. В случае чего запрещенного берет и глушит обмен. Ну и FPGA на крайний случай может помочь. Простым контроллером USB-дивайса никакого процессора очевидно не сделать чисто эмуляцию восходящего порта хаба. И потому что в шине USB часто валит полный поток даже когда никто из дивайсов ничего не передает. И потому что контроллер процессора чтобы понять что ему передают должен принять пакет т.е. в USB от него всегда уйдет ACK, а очень часто надо и NAK передавать, и это еще не касаясь синхронизации и прочих жестких таймингов. Цитата(DiMonstr @ Oct 12 2009, 21:07)  Дайте пожалуйста консультацию по применению 32-разрядного контроллера MICROCHIP с поддержкой USB 2.0 OTG.
|
|
|
|
|
Oct 14 2009, 11:03
|
Частый гость
 
Группа: Свой
Сообщений: 81
Регистрация: 26-10-06
Из: Россия, Пенза
Пользователь №: 21 706

|
Цитата(aaarrr @ Oct 13 2009, 20:51)  И Вы готовы наворотить гору весьма сложного софта для контроллеров и драйверов со стороны хоста? Конечно нет! Поэтому и ищу другие варианты решения этой задачи. Цитата Устройство получается очень простое... Я накидал структурную схемку на бумажке. Что получилось - на фотке во вложении. Правильно ли я думаю, что в этом случае необходимо будет реализовать следующие функции: 1) управление мультиплексорами; 2) контроллер должен определять к какому порту USB подключили (отключили) девайс и подключать его к себе управляя двумя мультиплексорами. Тут два варианта: либо с помощью хаба, либо дополнительной микросхемы; 3) контроллер должен уметь запрашивать дескриптор устройства и дескриптор серийного номера; Если это так, то получается действительно очень просто
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 14 2009, 11:20
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(DiMonstr @ Oct 14 2009, 15:03)  2) контроллер должен определять к какому порту USB подключили (отключили) девайс и подключать его к себе управляя двумя мультиплексорами. Тут два варианта: либо с помощью хаба, либо дополнительной микросхемы; Достаточно и одного мультиплексора - выходы, идущие к контроллеру, вполне можно и запараллелить. Управлять однозначно от контроллера, плюс от хаба нужно будет получать статус подключения устройства. Цитата(DiMonstr @ Oct 14 2009, 15:03)  Если это так, то получается действительно очень просто  Ну, как мы знаем, дьявол скрывается в деталях.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|