Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Интерфейс USB в современных нестандандартных периферийных устройствах - Слизовский Е.В

..pdf
Скачиваний:
136
Добавлен:
24.05.2014
Размер:
1.07 Mб
Скачать

1.3.3 Типы передач данных

Спецификация шины определяет четыре типа передач данных для конечных точек:

управляющие передачи (Control Transfers) – используются хостом для конфигурирования устройства во время подключения, для управления устройством и получения информации о его состоянии в процессе работы. Длина поля данных управляющей посылки не может превышать 64 байт на полной скорости и 8 байт на низкой. Для таких посылок хост гарантированно выделяет 10% полосы пропускания

передачи массивов данных (Bulk Data Transfers) – применяются при необходимости обеспечения гарантированной доставки данных от хоста к функции или от функции к хосту, время доставки не ограничено. Такая передача занимает всю полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет у таких передач самый низкий, и они могут приостанавливаться при большой загрузке шины. Допускаются только в полноскоростном режиме.

передачи по прерываниям (Interrupt Transfers) – используются в том случае, когда требуется передавать одиночные пакеты данных небольшого размера. Каждый пакет требуется передать за ограниченное время. Операции передачи носят спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Поле данных может содержать до 64 байт на полной скорости и до 8 байт на низкой. Предел времени обслуживания устанавливается в диапазоне 1-255 мс для полной скорости и 10-255 мс для низкой.

изохронные передачи (Isochronous Transfers) – применяются для обмена данных в реальном времени, когда на каждом временном интервале требуется передавать строго определённое количество данных, но доставка информации не гарантируется из-за невозможности повторения пакетов при сбое. Такие передачи занимают предварительно согласованную часть пропускной способности шины и имеют заданную задержку доставки.

Изохронные передачи разделяются по способу синхронизации конечных точек – источников или получателей данных с системой: различают асинхронный, синхронный и адаптивный классы устройств, каждому из которых соответствует свой тип канала USB. Более подробную информацию о синхронизации при изохронной передаче можно найти в

[1,18,19] .

Описания кадров, каналов, пакетов и алгоритм подсчёта контрольной суммы автор не считает обязательным приводить в данном исследовании, поскольку существует достаточное количество литературы по данной тематике, тем более, что объём исследовательской работы не позволяет приводить здесь все эти сведения.

21

1.4 Внутренняя организация периферийных устройств.

Все USB-устройства принимают запросы от хост-контроллера и отвечают на них через основной канал сообщений. Запросы выполняются при помощи управляющих посылок.

Запрос и его параметры передаются устройству в конфигурационном пакете (Setup Packet). Конфигурационный пакет имеет размер 8 байт. Структура конфигурационного пакета на языке Pascal показана в листинге 1.1 (Далее все листинги выполнены на языке Pascal, если не указано иначе).

Дескриптор устройства (device descriptor) – это структура данных, или форматированный блок информации, который позволяет хосту получить описание устройства. Каждый дескриптор содержит информацию либо об устройстве в целом, либо о его части.

Все USB-устройства должны передавать хабу свои дескрипторы в ответ на стандартный запрос. Это означает, что любое периферийное устройство должно делать две вещи: вопервых, хранить информацию о своих дескрипторах и, во-вторых, пересылать эту информацию в ответ на запрос хаба в определённом формате. Описание стандартного дескриптора устройства показано в листинге 1.2

Уточняющий дескриптор устройства (Device Qualifier Description) содержит дополнительную информацию о HS-устройстве при его работе на другой скорости.

Стандартный дескриптор конфигурации (Standard Configuration Descriptor) содержит информацию об одной из возможных конфигураций устройства. Описание дескриптора конфигурации приведено в листинге 1.3

Стандартный дескриптор интерфейса (standard Interface Descriptor) содержит информацию об одном из интерфейсов, доступных при определенной конфигурации устройства. Структура дескриптора интерфейса показана в листинге 1.4

Стандартный дескриптор конечной точки (Standard Endpoint Descriptor) содержит информацию об одной из конечных точек, доступных при использовании определённого интерфейса. Структура дескриптора конечной точки показана в листинге 1.5

Дескриптор строки (UNICODE String Descriptor) содержит текст в формате UNICODE. Строка не ограничивается нулём, а длина строки вычисляется вычитанием 2 из размера дескриптора. Структура дескриптора строки показана в листинге 1.5.

Порядок получения дескрипторов. В процессе нумерации хост запрашивает дескрипторы от устройства в следующей последовательности:

дескриптор устройства

дескрипторы конфигураций

дескрипторы интерфейсов для конфигурации

дескрипторы интерфейсов всех конечных точек

22

Часть 2

2.1 Применение модульного принципа при разработке USB-устройств.

При разработке устройств цифровой техники уже давно используется модульный метод. Заключается он в создании устройства из «кубиков» - модулей, каждый из которых выполняет определённые функции. У этого метода есть несколько существенных достоинств:

простота сборки и отладки

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

Присущи этому методу и некоторые недостатки:

большое количество различных соединителей приводит к уменьшению надежности

громоздкость устройства

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

Применение модульного принципа при разработке простого USB-устройства, по мнению автора, оказалось оправданным. Всё устройство было разбито на три функциональных модуля:

1)преобразователь интерфейса USB-SPI. Данный модуль пришлось применить изза того, что в семействе «Тесей» нет МК со встроенным USB, а MK PIC16С745 (С765) фирмы «Microchip» имеет однократно программируемую память команд, что для экспериментирования абсолютно неприемлемо.

2)Вычислительный модуль. Поскольку автор уже имел некоторый опыт программирования МК КР1878ВЕ1, то вычислительный модуль было решено сделать на нём.

3)Датчик. Для демонстрации возможностей интерфейса USB желательно

передавать большой поток данных в режиме «реального» времени. Устройством, создающим такой поток данных, был выбран акселерометр ADXL2020JE.

Каждый модуль содержит необходимые для автономного функционирования элементы. Модуль преобразователя интерфейса представляет из себя законченный блок, в котором объединены БИС преобразователя интерфейса, ИС ЭСППЗУ для хранения дескрипторов устройства, необходимые внешние элементы, кварцевый резонатор, разъёмы для подключения к шине USB и другим модулям. Вычислительный модуль содержит МК КР1878ВЕ1, кварцевый резонатор, цепи сброса и генерации тактовой частоты и разъёмы для подключения других модулей. Модуль датчика содержит собственно датчик, цепи генерации тактовой частоты датчика и разъём для подключения к вычислительному модулю. Модули между собой соединяются ленточными кабелями с разъёмами.

23

2.2 USB-периферия

В данном разделе приводятся общие сведения об основных микросхемах, используемых для организации USBинтерфейса. Микросхемы можно разделить на следующие группы:

Преобразователи интерфейсов

Микроконтроллеры с встроенным USB-интерфейсом

Микросхемы хабов

2.2.1 Микросхемы фирмы Atmel

Корпорация Atmel в настоящее время производит микроконтроллеры с ядром MSC-51 и AVR. В семействе МК этой фирмы есть несколько МК с встроенным USB. Для ядра MSC-51 это AT89C5131 (40МГц, 6 тактов/инструкция, EUART, три 16-разрядных таймера, 256 байт СОЗУ, 32 Кбайт встроенного ЭСППЗУ, 4Кбайт ЭСППЗу для загрузочного сектора, 1 Кбайт расширенного ОЗУ, USB 2.0, ШИМ, сторожевой таймер, 34 линии В/В, 4 уровня прерываний), а для ядра AVR- AT76C711 (24МГц, UART, USB 2.0, SRAM 2+128 Кбит).

Также корпорацией Atmel выпускаются контроллеры хабов AT43301 и AT43312A, а также МП-хабы с ядром AVR: AT43320A, AT43321, AT43324, AT43355.

2.2.2 Микросхем фирмы Intel

Нынешняя линейка микросхем USB от фирмы Intel представлена, в основном, следующими м/с: 8x931Ax (MSC-51, USB LS/FS, 256 байт ОЗУ, до 8 Кбайт ПЗУ, 8х4 РОН, 32

В/В, 3 USB endpoint), 8x931Hx (MSC-51, USB 2.0, 4 port hub LS/FS, 256 Байт ОЗУ, до 8 Кбайт ПЗУ, 8х4 РОН, 32 В/В, UART, интерфейс клавиатуры, 3 USB endpoint), 8x930Ax(MSC-251, USB LS/FS, 1 Кбайт ОЗУ, 0-16 Кбайт ПЗУ, 40 РОН, 32 В/В, UART, 4(6) USB endpoint), 8x930Hx (MSC-251, USB LS/FS, 4 port hub, 1 Кбайт ОЗУ, 0-16 Кбайт ПЗУ, 40 РОН, 32 В/В, UART, 4 USB endpoint).

2.2.3 Микросхемы фирмы Microchip

Компания Microchip в настоящее время производит несколько PIC-микроконтроллеров с встроенным интерфейсом USB: PIC16C745 (USB-LS, 256 Байт ОЗУ, 14336 Байт ПЗУ, 22 В/В, 5х8Бит АЦП), PIC16C765 (USB-LS, 256 Байт ОЗУ, 14336 Байт ПЗУ, 33 В/В, 8х8Бит АЦП), PIC18F2450 (USB LS/FS, 1536 Байт ОЗУ, 32768 Байт ПЗУ, 19 В/В, UART, SPI, 5x10 АЦП, 8 USB endpoint), PIC18F2550 (USB LS/FS, 1536 Байт ОЗУ, 32768 Байт ПЗУ, 19 В/В, UART, SPI, CAN, 5x10 АЦП, 8 USB endpoint), PIC18F4450 (USB LS/FS, 1536 Байт ОЗУ, 16384 Байт ПЗУ, 34 В/В, UART, SPI, 8x10 АЦП, 8 USB endpoint), PIC18F4550 (USB LS/FS, 1536 Байт ОЗУ, 32768 Байт ПЗУ, 19 В/В, UART, SPI, CAN, 8x10 АЦП, 8 USB endpoint)

2.2.4 Микросхемы фирмы Motorola

Микросхемы USB производства компании Motorola представляют собой достаточно специализированные периферийные микросхемы: RD68HC08USBHKEYBD-интерфейс клавиатуры с встроенным хабом, RD68HC908DDCICP- интерфейс DDC-интерфейса (VGAпортов мониторов), RD68HC908USB-интерфейс принтеров, сканеров, сканеров штрих-кодов и т.п., RD68HC908USBMKEYBD-интерфейс USB-PS/2 клавиатуры, RD68HC908USBMSE-

интерфейс оптической USB-мыши, RD68HC908USBSKEY-интерфейс защитного ключа, RD68HC908WOMK- интерфейс оптической USB-мыши и мультимедийной клавиатуры.

24

2.2.5 Микросхемы фирмы FTDI

Компания Future Technologies International (FTDI) менее известна, чем такие гиганты,

как Intel, Atmel, что не мешает ей производить конкурентоспособные микросхемыпреобразователи интерфейсов (USB-UART, USB-FIFO), а также программное обеспечение к ним. Основной продукцией этой фирмы сейчас являются микросхемы FT232AM(BM)- преобразователь интерфейсов RS232-USB, FT245AM(BM)-преобразователь USB-FIFO, FT8U100AX-хаб, FT2232Cмногофункциональный преобразователь USB-FIFO/USB-RS232.

Следует отметить, что среди всех перечисленных микросхем именно микросхемы FTDI оказались наиболее доступными.

Из ассортимента микросхем FTDI была выбрана FT245BM (по каким критериям, объяснено ниже). На рисунке 2.1 изображена упрощённая блок-схема данной ИМС. FT245BM обладает следующими характеристиками:

режим работыFull Speed, полностью удовлетворяет требованиям USB2.0

возможность подключения ЭСППЗУ

FIFO - буферы приёма и передачи.

●12-проводной параллельный интерфейс, пропускная способность – 8МБит/сек

Рис 2.1 упрощённая блок-схема ИМС FT245BM

На рисунке 2.2 и 2.3 изображены диаграммы циклов чтения и записи соответственно. В таблице 2.1 указаны минимальные и максимальные значения временных интервалов параллельного интерфейса ИМС FT245BM. Обозначения в таблице 2.2 соответствуют обозначениям на рисунках 2.2 и 2.3.

25

Рис.2.2. Временная диаграмма цикла чтения.

Рис.2.3. Временная диаграмма цикла записи.

26

Таблица 2.1.

Время

Описание

Min, нс

Max, нс

T1

Длина импульса чтения

50

-

T2

Время между импульсами чтения

50

-

T3

Время между спадом RD# и данными

-

30

T4

Время удержания данных после фронта RD#

10

-

T5

Время перехода RXF# в пассивное состояние после фронта RD#

5

25

T6

Время пассивного состояния RXF# после цикла чтения

80

-

T7

Длина импульса записи

50

-

T8

Время между импульсами записи

50

-

T9

Время установления данных перед спадом WR

-

20

T10

Время удержания данных после спада WR

10

-

T11

Время перехода TXE# в пассивное состояние после спада WR

5

25

T12

Время пассивного состояния TXE# после цикла записи

80

-

2.2.6 Какую микросхему выбрать? Основные критерии отбора.

При выборе подходящих периферийных микросхем автор остановился на микросхеме FT245BM. Основными критериями отбора стали:

доступность

наличие статей на русском языке [20]

большое количество документации на английском языке [8-14]

возможность использования МК, опыт программирования которого уже имеется.

наличие фирменных драйверов и примеров их использования [10].

наличие бесплатных утилит для программирования и верификации ЭСППЗУ

27

2.3 Какой микроконтроллер выбрать?

2.3.1 КР1878ВЕ1 «ЗА» и «ПРОТИВ».

Уже больше 6 лет назад ОАО «Ангстрем» разработало свой 8-разрядный RISCмикроконтроллер на основе ядра «Тесей». Отличительными особенностями данного МК стали тактовая частота до 8 МГц, выполнение любой команды за 2 такта при двухступенчатом конвейере команд (рис 2.4), развитая система прерываний. По количеству и назначению выводов КР1878ВЕ1 является аналогом PIC16F84 компании Microchip. Не менее весомыми аргументами в пользу КР1878ВЕ1 является простота программатора и наличие бесплатного компилятора, отладчика и программы поддержки программатора.

Несмотря на все достоинства МК, автору пришлось довольно долго колебаться при выборе МК. С одной стороны были его достоинства, а с другой, как ни странно, политика (вернее, её отсутствие) ОАО «Ангстрем» в области маркетинга и качества.

Рис 2.4. Временные диаграммы выполнения команд и совмещение по времени различных фаз выполнения команды.

28

2.3.2 Общие сведения о МК КР18787ВЕ1

КР1878ВЕ1 представляет собой 8-разрядный микроконтроллер RISCархитектуры с ядром ТЕСЕЙ. МК имеет следующие параметры:

ЭСППЗУ команд 1Кх16 бит

ЭСППЗУ данных 64х8 бит

ОЗУ данных 128х8 бит

52 команды, 2 периода тактовой частоты/команда

Тактовая частота от 32 КГц до 8 МГц. Возможно использование внутреннего тактового генератора, кварцевого резонатора или RC-цепочки в качестве тактового генератора.

7 Прерываний (Начальный пуск/сброс, системная ошибка, сторожевой таймер, порт А, порт В, таймер, конец записи ЭСППЗУ данных.). Время реакции на прерывание-3 такта (750 нс при частоте 8 МГц).

16-разрядный таймер с возможностью использования генератора тактовой частоты МК или внешнего источника счётных импульсов. Содержит 3-х битный предделитель частоты.

Сторожевой таймер с автономным генератором и 2-х битным предделителем частоты.

Структурная схема МК приведена на рис.2.5

Рис 2.5. структурная схема МК

Архитектура процессора МК КР1878ВЕ1 характеризуется разделённой памятью команд и данных. Это позволяет совместить процессы выборки команд и выборки операндов из памяти. Система команд процессора – симметричная, т.е. имеются команды, работающие одновременно с двумя операндами. Выборка операндов для двухоперандных команд производится одновременно по двум различным шинам – данных операнда SRC и данных операнда DST с отдельными шинами адресов. Для

29

Обеспечения механизмов переходов к подпрограммам и прерываний программ в процессоре имеется отдельный аппаратный стек данных глубиной в 16 байт. Обращения к регистрам периферийных устройств происходят по тем же принципам, что и к оперативной памяти. Структурная схема центрального процессора показана на рис. 2.6

Рис 2.6 структурная схема центрального процессора.

КР1878ВЕ1 отличается от других МК своего класса системой адресации операндов. Все операнды команд находятся в едином адресном пространстве памяти данных. Размерность этого пространства в КР1878ВЕ1 – 256 байт. Распределение памяти данных приведено в таблице 2.1

Команда имеет одновременный доступ к 32 байтам этого адресного пространства через четыре сегмента адресации (A,B,C,D) размерностью 8 байт. Каждому сегменту соответствует регистр адреса сегмента, значение которого определяет местонахождение данного сегмента в пространстве адресации памяти данных. Регистры адресов сегментов принадлежат к категории служебных регистров процессора SR. Всего имеется восемь (SR0-SR7) служебных регистров, обращение к которым производится специальными командами процессора. Значения этих регистров могут быть сохранены в отдельном аппаратном стеке данных и восстанавливать из него с помощью соответствующих команд. Список служебных регистров и их формат приведён в таблице 2.2

30