Перейти к содержанию
    

USB с чего начать

Народ, может кто знает где найти доступную(с подробним описанием) литературу которая поможет

с освоением USB интерфейса.

В наличии есть плата с AT91SAM7S256 и желание разобраться :help: .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, может кто знает где найти доступную(с подробним описанием) литературу которая поможет

с освоением USB интерфейса.

В наличии есть плата с AT91SAM7S256 и желание разобраться :help: .

 

 

Книга "Практика программирования USB" Павел Агуров

 

А если речь идёт об обмене между ПК и Вашим устройством и большие скорости не нужны , вообще ни в чём разбиратся не нужно, так как есть микросхемы FTDI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для начала рекомендую: Агуров Интерфейс USB Практика использования и программирования

У меня есть в электронном виде + диск( [email protected] )

Все излошено лучше, чем в спецификации...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Странно мне кажется книга не удачная. Информация разрознена. Куски кода где-то для делфи где-то для си. Хотя к спецификации не обращался. Но для начала наверно книга все таки пойдет. У меня плата AT91SAM7S64, в свобоодное от работы время тоже хочу освоить USB. Пока нахожусь на стадии освоения самого контроллера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Предлагаю сюда выкладывать свои нароботки, мысли, коментарии по поводу начальной инициализации

USB до обмена данными с ПК.

Тема я думаю актуальная и многим пригодится.

Информации по USB хватает но ничего конкретного и доступного для понимая я не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Работал с USB в своё время. Агуров хорош для начала, но спецификация конечно надёжней. Ещё есть замечательная книга на английском языке "USB System Architecture (USB 2.0).pdf"

Изменено пользователем altlogic

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Далее, чтобы не писать под Винду USB-драйвер собственноручно, берите готовый. WinDriver8.11 и выше найти можно. Я его пользовал. Вещь достойная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Информации по USB хватает но ничего конкретного и доступного для понимая я не нашел.

Посмотрите даташиты на Cypess'овские EzUSB - у них в свое время было очень доступное и качественное описание работы USB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неплохая книга Addison Wesley - USB System Architecture, 2nd edition.

Еще залил Axelson J.USB Complete.Everything you need to develop custom USB peripherals

Залил в /upload/DOCs/Books/USB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я извиняюсь - а автора не хочет уточнить с какой стороны он хочет изучить USB - с электрической или программной? Если читать USB System Architecture то можно много чего нового узнать. Но это теория. Если автору действительно хочется понять программный принцип взамодействия между USB устройствами, то надо брать исходники Linux ядра или какие-нибудь библиотеки и смотреть как там всё устроено. Ну может ядро Линукса сразу сложно будет, а вот скажем MyUSB библиотека очень простая и понятная. Тем более, в ней есть ряд реализованных устройств (CDC, mouse, kbd..). Затем покупаешь плату Olimex AVR-USB-162 за 1т.р. и моргаешь лампочками, цепляешь устройства и прочее..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 фреймов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я извиняюсь - а автора не хочет уточнить с какой стороны он хочет изучить USB - с электрической или программной?

 

Нужно разобраться с программной реализацией. Разобраться с тем что посылает хост устройству и что нужно ему отвечать, ну и как организувать обмен данными.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужно разобраться с программной реализацией. Разобраться с тем что посылает хост устройству и что нужно ему отвечать, ну и как организувать обмен данными.

Ну если надо разбираться с хостом, то как тут АРМ7 поможет? У него же только функция device реализована. Или вы хотите смотреть как к устройству приходят пакеты? Ну тогда еще раз прошу обратить внимание на библиотеку MyUSB к которой есть описание функций, документация. Лежит тут: http://www.fourwalledcubicle.com/MyUSB.php

Еще проще - тяжело придумать. Если хотите могу заслать книжку USB Complete, но там в основном рассказывают как со стороны Виндов работает USB-host. Для понимания можно почитать. Полегче будет, чем USB System Arch..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну если надо разбираться с хостом, то как тут АРМ7 поможет? У него же только функция device реализована.

Боюсь показаться занудой, но ARM7 - это ядро. Процессоры с ядром ARM7 и USB host'ом среди периферии в природе тоже встречаются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...