Пояснительная записка (1231534), страница 9
Текст из файла (страница 9)
Этот счетчик имеет полный цикл в 2.048 сек;CRC5 - контрольная сумма полей ADDR,ENDP-вычисляется без учёта дополнительных синхробитов Stuffed Bitполученных в результате битстаффинга;-вычисляетсяпобитовойсверткойданныхсполиномом0x25(100101).Пакет SOF не получается низко скоростными устройствами.Handshake Packets (HP) -пакет квитирования.Этим пакетом обычно заканчивается транзакция между хостом иконечной точкой. В нем сообщается о результатах приёма пакета данных.Пакеты типа ACK, NACK, STALL не содержат никаких дополнительных полей.Preambule Packets (HP) - преамбула низкоскоростного пакета.Этот пакет предписывает хабу, работающему на полной скорости,передать следующий за преамбулой пакет на низкой скорости.После получения сигнала EOP в конце низкоскоростного пакета,хаб должен вернуться на полную скорость2.7.6 АдресТак как USB является сетью с возможностью подключения нескольких устройств, каждому из них при конфигурировании присваивается индивидуальный адрес, размерность которого составляет семь бит.56Нулевой адрес зарезервирован, следовательно сеть может единовременно обозначить до 127 устройств.
Поле адреса содержат только пакеты TP и DP.2.7.7 EndpointEndpoint - это своеобразный внутренний адрес устройств вустройстве, логическая адресация внутри устройства. Такая внутренняяадресация позволяет распределять потоки данных по разному функционалу внутри самого устройства.Поле endpoint - четырёхбитное, это позволяет организовать до 16endpoint, Каждый endpoint может независимо работать как приемный икак передающий, поэтому иногда их насчитывают 32. Поле endpoint содержится только в TP пакетах.При подключении устройства хаб отправляет запросы к устройству, в ответ на которые устройство обязано передать информацию озадействованных endpoint и их назначении.В момент подключения в рамках начального конфигурированияустройство обязано передать хосту информацию о задействованныхendpoint и их назначении.
Эта информация должна согласовываться ссоответствующими каналами данных программного драйвера устройства хоста. Обращение к незадействованному endpoint вызывает ответSTALL. Пакеты SETUP могут приходить только на нулевой endpoint.2.7.8 Запросы устройства (Device Requests)Спецификацией USB определены некоторые запросы, который хост отправляет устройству и в ответ на которые хост получает некие свойстваустройства, называемые дескрипторами.57С помощью запросов выполняются основные операции над устройствами определенные спецификацией:-Dynamic Attachment and Removal(Динамическое присоедине-ние и удаление устройств);-Address Assignment(Назначение адреса устройству);-Configuration(Конфигурация устройства);-Data Transfer(Передача данных);-Power Management(Управление питанием):a)Power Budgeting(Планирование мощности потребления);b)Remote Wakeup(Пробуждение устройства по команде хоста);-Request Processing(Выполнение запросов):a)Request Processing Timing(Контроль времени обработкизапросов);b)Reset/Resume Recovery Time(Возобновление работы посигналам Reset/Resume);c)Set Address Processing(Установка адреса устройства);d)Standard Device Requests(Стандартные запросы устройства);e)Class-specific Requests(Специфичные запросы классаустройств);-Request Error(Запрос об ошибке).Передаются запросы по нулевому каналу (то есть на нулевуюEndpoint) транзакциями SETUP и могут сопровождаться, если необходимо, передачей транзакций DATA (фаза данных).Если длина блока данных в байтах, передаваемая в фазе данных,т.е.
после транзакции SETUP, равна нулю, то фаза передачи данных отсутствует и запрос представлен только транзакцией SETUP.58Длина пакета DATA0 всегда равна 8 байт (в транзакции SETUP)Все биты байта передаются последовательно, начиная с нулевого.2.7.9 Дескрипторы устройствДескриптор - это определённая структура данных, которуюустройство использует для сообщения хосту своих атрибутов.Стандартом USB определены следующие дескрипторы:-дескриптор устройства (Device Descriptor) - описывает общуюинформацию устройства USB, применяется глобально и во всехконфигурациях. USB устройство имеет только один такой дескриптор;-дескриптор конфигурации (Configuration Descriptor) - описыва-ет информацию о конфигурации устройства. Устройство можетиметь несколько различных конфигураций, а следовательно и несколько таких дескрипторов;-дескриптор интерфейса (Interface Descriptor) - описываетнабор конечных точек, включенных в интерфейс для заданнойконфигурации.
Нулевая конечная точка никогда не включаетсяэтот набор;-дескриптор конечной точки (Endpoint Descriptor) - этот де-скриптор содержит требуемую хостом информацию, для определения требований по пропускной способности каждой конечнойточки. Нулевая точка не имеет дескриптора;-дескриптор строки (String Descriptor) - описывают характери-стики устройства текстовыми строками, удобными для человека.Устройство может их не поддерживать или не иметь вовсе.
Требуемый язык дескриптора определяется запрсчиком при его за59просе, используя ID (LANGID) определенный Microsoft WindowsUNICODE.Дескриптор конечной точки и интерфейса всегда возвращаютсякак часть дескриптора конфигурации.К ним нельзя непосредственно обращаться запросом Get или SetDescriptor.2.8 Контроллер AVR-USB-MEGA16Большинство производителей современных ПК отказываются отпараллельного порта в пользу последовательного USB порта, не говоряуже о laptop PC, в которых остаются лишь USB, HDMI, VGA и LAN. Поэтому целесообразно разрабатывать устройства, поддерживающие USBинтерфейс. Один из вариантов USB контроллера является такой, выполненный на микроконтроллере AT Mega16.Компания Objective Development [8] в свободном доступе (но естьи платные коммерческий лицензии стоимостью до 500$) распространяетбиблиотеку V-USB, которая помогает программно реализовать USB протокол low-speed USB устройства на базе AVR микроконтроллера, не используя дополнительных внешних чипов.Особенности V-USB:-полноценное USB 1.1 low-speed устройство, кроме обработкиошибок связи и электрических характеристик;-передача до 254 байт информации по умолчанию;-поставляется со свободно используемых идентификаторовUSB (пара Vendor-ID и Product-ID);-работает на любом AVR микроконтроллере с минимум 2 ки-лобайт Flash памяти, 128 байт RAM и тактовой частотой не меньше 12 МГц;60-может тактироваться 12 МГц, 15 МГц, 16 МГц, 18 МГц или 20МГц внешним кварцевым резонатором, или 12,8 МГц или 16,5 МГцвнутренним RC осциллятором;-имеет хорошо прокомментированные примеры на языке C;-из аппаратных ресурсов микроконтроллера для реализациипротокола USB используется только прерывание INT0;-занимает до 1400 байт Flash памяти контроллера.Библтотека V-USB предназначена для создания прошивок микроконтроллеров, поддерживающих программно реализованный протоколUSB, но для общения с таким контроллером с ОС понадобится такназываемое ПО хоста.
В его создании для упрощения работы программиста помогает другая библиотека libusb-win32 версия 1.2.5.0. Есть иболее новые версии, но и этой, для создания ПО хоста AVR-USBMEGA16 контроллера вполне достаточно. Так же эта библиотека существует для пользователей MAC OS и Linux.Аппаратная часть USB-контроллера представлена на листе 4графического материала.Конденсатор C1 ёмкостью 22 мкФ предназначен для сглаживаниявысокочастотных помех в линии питания USB хоста и расположен междушиной +5 В и землёй. Параллельно ему расположен ещё один конденсатор C6 номиналом 0,22 мкФ, его предназначение схоже с C1, но ужедля низкочастотных помех, на плате его стараются располагать какможно ближе ножкам питания контроллера.Так как на дифференциальной линии D+, D- протоколом USB требуется напряжение не выше +3,6 В, а на выходе контроллера мы получаем все +5 В, стоят два стабилитрона VD1 и VD2.Для распознавания системой низкоскоростного USB устройствопротоколом USB принято устанавливать подтяжку на питание через резистор 1,5 кОм дифференциальной линии D-, роль которого на данной61схеме выполняет резистор R4.
Резисторы R2, R3 номиналом по 68 Омявляются согласующими. R5 и R6 имеет такие же номиналы, как и R2,R3, но установлены в RC контур цепи опорного напряжения AVRмикроконтроллерадляправильнойработыканаловАналогово-Цифрового Преобразователя (АЦП), находящегося в составе архитектуры самого контроллера, в паре с конденсаторами C4, C5, номиналом0,22 мкФ.Через резистор R7, номиналом 10 кОм, подаётся уровень логической единицы на вход RESET микроконтроллера.Для тактирования предназначен внешний осциллятор на базекварцевого резонатора G1, частотой 16 МГц и двух конденсаторов C2,C3 ёмкостью по 22 пкФ.Все порты микроконтроллера ATmega16 могут работать не толькона ввод/вывод информации.
Они также могут нести дополнительныефункции, привязанные к внутренней архитектуре ядра AVR. Стоит отметить, что PB5..PB7 – используются для реализации SPI протокола,PC3..PC5 – для JTAG (Joint Test Action Group) отладчика, PD2,PD4 – дляданных интерфейса USB. В таблице 2.5 представлено краткое описаниеэтих функций [9].Таблица 2.5 – Дополнительные функции контроллера AVR MEGA 16ИмяпортаPA0PA1PA2PA3PA4PA5PA6PA7Описание возможностейADC0 - эта ножка может работать как входной канал 0 АЦП. КаналыADC1..ADC7 несут аналогичную функциюADC1 - входной канал 1 АЦПADC2 - входной канал 2 АЦПADC3 - входной канал 3 АЦПADC4 - входной канал 4 АЦПADC5 - входной канал 5 АЦПADC6 - входной канал 6 АЦПADC7 - входной канал 7 АЦП62Продолжение таблицы 2.5ИмяпортаPB1PB2PB3PB4PC0PC1PC6PC7PD0PD1PD3PD5PD6PD7PB0Описание возможностейT1 - эта ножка может работать как тактовый вход для таймера/счетчика 1(Timer/Counter1 External Counter Input) для измерения и подсчета импульсовAIN0, INT2.