|
|
  |
USB с чего начать |
|
|
|
Jun 23 2008, 20:18
|

Частый гость
 
Группа: Участник
Сообщений: 178
Регистрация: 31-10-06
Из: Яблунець
Пользователь №: 21 821

|
Народ, может кто знает где найти доступную(с подробним описанием) литературу которая поможет с освоением USB интерфейса. В наличии есть плата с AT91SAM7S256 и желание разобраться  .
|
|
|
|
|
Jun 24 2008, 03:20
|

Гуру
     
Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702

|
Цитата(Alex_1811 @ Jun 24 2008, 00:18)  Народ, может кто знает где найти доступную(с подробним описанием) литературу которая поможет с освоением USB интерфейса. В наличии есть плата с AT91SAM7S256 и желание разобраться  . Книга "Практика программирования USB" Павел Агуров А если речь идёт об обмене между ПК и Вашим устройством и большие скорости не нужны , вообще ни в чём разбиратся не нужно, так как есть микросхемы FTDI
--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
|
|
|
|
|
Jun 24 2008, 21:07
|

Группа: Участник
Сообщений: 13
Регистрация: 27-05-08
Из: Россия, Краснодарский край, г. Геленджик
Пользователь №: 37 848

|
Для начала рекомендую: Агуров Интерфейс USB Практика использования и программирования У меня есть в электронном виде + диск( martrob@yandex.ru ) Все излошено лучше, чем в спецификации...
--------------------
Per Aspera Ad Astra!!!
|
|
|
|
|
Jun 25 2008, 07:13
|
Участник

Группа: Свой
Сообщений: 72
Регистрация: 4-02-05
Пользователь №: 2 424

|
Да, по поводу разрозненности информации в книге, это точно. Но для того, чтобы хотябы понять как происходит обмен, она мне кажется пойдёт. Я делал девайс с USB, разбирался в начале по книге, потом смотрел в спецификации. Делал тоже на AT91SAM7. Можно посмотреть в примерах IAR и Keil. В IAR по моему без прерываний пример, а у Кейла есть пример с прерываниями.
|
|
|
|
|
Jun 29 2008, 01:53
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
USB - достаточно сложная система, в двух словах ее не объяснишь и с наскоку не освоишь. Именно поэтому книги и описания кажутся маловразумительными. Однако несколько слов скажу на тему, которая как правило мало акцентирована в описаниях и потому ускользает от восприятия начинающими.
Все обмены в USB организованы в фреймы. Для Full Speed длительность фрейма равна 1 мс. В течении этого периода хост контроллер производит обмены со всеми (или почти всеми) устройствами. Это значит, что у хоста есть список устройств, в этом списке обозначен и тип устройства, и его текущее состояние, и надо/не надо с ним сейчас общаться (в зависимости от запросов драйверов), и т.п.
Внутри фрейма хост ведет обмен в определенном порядке: сначала идет обмен по Control Pipes, потом - по изохронным пайпам и пайпам прерывания, в конце, "по остаточному принципу" - по Bulk Pipes. Это задает и приоритет пайпов: Control Pipes - самые важные, Bulk Pipes - самые неважные, если нет времени общаться в текущем фрейме, обмен по Bulk Pipes может подождать до какого-то из следующих фреймов, когда траффик будет поменьше.
Все периферийные устройства обязаны уметь разговаривать по Control Pipe 0. Все остальные пайпы - факультативные, необязательные. При подключении устройства оно докладывает хосту о себе через Control Pipe 0: что за тип устройства, кто изготовитель, сколько тока питания от USB ему требуется, какие у устройства есть пайпы помимо Control Pipe 0, и т.п. Хост ищет драйвер для вновь подключенного устройства, выделяет ему бюджет питания (если есть достаточно тока), планирует обмены по заявленным устройством пайпам (если есть такая возможность), и т.п.
Так что USB радикально отличается от простых интерфейсов, таких как RS232 и пр. И хотя USB может до какой-то степени имитировать функциональность RS232, в реальности обмен по USB сильно отличается, и не все протоколы RS232 хорошо ложатся поверх "эмулированного RS232". Важная особенность - наличие в USB фреймов.
|
|
|
|
|
Jun 29 2008, 17:18
|

Частый гость
 
Группа: Участник
Сообщений: 178
Регистрация: 31-10-06
Из: Яблунець
Пользователь №: 21 821

|
Цитата(hwdev @ Jun 28 2008, 22:34)  Я извиняюсь - а автора не хочет уточнить с какой стороны он хочет изучить USB - с электрической или программной? Нужно разобраться с программной реализацией. Разобраться с тем что посылает хост устройству и что нужно ему отвечать, ну и как организувать обмен данными.
|
|
|
|
|
Jun 29 2008, 19:41
|
Местный
  
Группа: Свой
Сообщений: 334
Регистрация: 1-09-06
Из: Москва
Пользователь №: 20 008

|
Цитата(Alex_1811 @ Jun 29 2008, 21:18)  Нужно разобраться с программной реализацией. Разобраться с тем что посылает хост устройству и что нужно ему отвечать, ну и как организувать обмен данными. Ну если надо разбираться с хостом, то как тут АРМ7 поможет? У него же только функция device реализована. Или вы хотите смотреть как к устройству приходят пакеты? Ну тогда еще раз прошу обратить внимание на библиотеку MyUSB к которой есть описание функций, документация. Лежит тут: http://www.fourwalledcubicle.com/MyUSB.phpЕще проще - тяжело придумать. Если хотите могу заслать книжку USB Complete, но там в основном рассказывают как со стороны Виндов работает USB-host. Для понимания можно почитать. Полегче будет, чем USB System Arch..
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|