Микроконтроллеры фирмы Intel с портом USB
Гребнев В.В.
        
Универсальная последовательная шина (Universal Serial Bus, USB) предназначена для
подключения к персональному компьютеру различных внешних устройств. Для управления внешними
устройствами и подключения их к шине используются микроконтроллеры с портом USB, входящие в
состав внешних устройств.
        
Современный персональный компьютер (ПК) имеет один или два порта USB, при этом к нему
могут быть подключены до 127 внешних устройств (ВУ), каждое из которых может иметь до 16-ти
адресуемых точек ввода-вывода. Увеличение числа подключаемых ВУ выполняется за счет
разветвления шины. Разветвляющее устройство (hub, концентратор) может быть конструктивно
объединено с контроллером внешнего устройства. Такое объединенное устройство содержит один
входной порт для подключения к ПК и несколько выходных портов, к которым подключаются другие
внешние устройства или концентраторы.
        
Шина, соединяющая порты USB, содержит четыре провода, два из которых (Dр и Dm)
используются для передачи данных, а два других (+5 В и GND) могут быть использованы для подачи в
ВУ напряжения питания. Подключение к шине внешних устройств может производиться в процессе
работы системы без выключения напряжения питания.
        
Обмен данными между ПК и ВУ выполняется всегда по инициативе ПК. Передача ведется в
полудуплексном режиме со скоростью 12 Мбит/с (полная скорость) или 1,5 Мбит/с (низкая скорость), при
этом к шине могут быть одновременно подключены устройства, работающие с полной и с низкой
скоростью.
        
Один акт обмена данными между ПК и ВУ (транзакция) содержит пересылки трех пакетов -
пакета-маркера из ПК в ВУ, пакета данных из источника в приемник и пакета подтверждения из
приемника в источник. Пакет-маркер (32 бита) определяет направление и тип пересылки. Он содержит
адресное поле (11 бит), в котором 7 бит определяют номер внешнего устройства и 4 бита - номер точки
ввода-вывода в данном устройстве. Пакет данных может содержать до 1023 байтов данных.
        
Фирма Intel выпускает микроконтроллеры с портом USB, входящие в состав двух семейств - 930
и 931. Микроконтроллеры семейства 930 выполнены на базе микроконтроллера семейства MCS-251, а
микроконтроллеры семейства 931 - на базе микроконтроллера семейства MCS-51. В оба семейства
входят микроконтроллеры, выполняющие только функции контроллера ВУ и микроконтроллеры,
выполняющие кроме того функции концентратора с разветвлением шины на 4 направления. Входящие в
оба семейства микроконтроллеры различаются емкостью внутреннего постоянного запоминающего
устройства (IROM), предназначенного для хранения команд программы и констант.
        
В табл. 1 приведены обозначения типа микроконтроллеров, указана емкость IROM и отмечено
наличие или отсутствие концентратора.
Таблица 1.
Семейство
|
Тип МК
|
IROM
|
Концентратор
|
930 |
80930AD |
--- |
нет |
83930AD |
8Кх8 |
нет |
83930AE |
16Кх8 |
нет |
80930HD |
--- |
есть |
83930HD |
8Кх8 |
есть |
83930HE |
16Кх8 |
есть |
931 |
80931AA |
--- |
нет |
83931AA |
8Кх8 |
нет |
80931HA |
--- |
есть |
83931HA |
8Kx8 |
есть |
        
Микроконтроллеры всех типов обоих семейств выпускаются в корпусе PLCC68.
        
Микроконтроллеры с концентратором работают только при полной скорости обмена.
        
Микроконтроллер типа 8X931YA (X=0,3; Y=A,H) по своим характеристикам наиболее близок к
микроконтроллеру типа 8XC32/52 фирмы Intel. Он имеет систему команд MCS-51, содержащую 111
команд. В состав микроконтроллера входит внутреннее оперативное запоминающее устройство для
хранения данных (IRAM) емкостью 256 х 8 бит. Первые 32 ячейки IRAM могут использоваться как
регистры общего назначения, которые объединены в 4 регистровых банка. К микроконтроллеру могут
подключаться внешнее постоянное запоминающее устройство для хранения команд программы и
констант (EROM) и внешнее оперативное запоминающее устройство для хранения данных (ERAM)
емкостью до 64K х 8 бит каждое.
        
В группу периферийных устройств входят 4 восьмиразрядных параллельных порта ввода-вывода
(P0, P1, P2, P3), усовершенствованный последовательный порт (ESP), три таймера-счетчика (Т/С0, Т/С1,
Т/С2) и входной порт USB. Микроконтроллер имеет 4 выхода для непосредственного подключения
светодиодов. Микроконтроллер типа 8Х931НА, кроме того, содержит блок концентратора и 4 выходных
порта USB.
        
Входной порт USB имеет 3 адресуемых точки ввода-вывода, с каждой из которых связана пара
стеков типа FIFO. Один стек в паре используется при вводе байтов, другой - при выводе. Стеки в двух
парах имеют емкость 8 х 8 бит, а в третьей паре - 16 х 8 бит. Одна точка ввода-вывода (Э0)
используется для ввода управляющей информации и вывода информации о состоянии внешнего
устройства, а две другие точки - для ввода-вывода данных. В блоке концентратора имеется
дополнительная пара стеков типа FIFO емкостью 8 х 8 бит.
        
Микроконтроллеры типа 83931YA могут использоваться в качестве контроллера клавиатуры,
имеющего 20 выходов и 8 входов для сигналов сканирования клавиатуры. Выходами являются выводы
портов Р1, Р2 и четыре вывода порта Р3, а входами - выводы порта Р0.
        
Микроконтроллеры семейства 931 могут работать с кварцевым резонатором с частотой 12 МГц
или 6 МГц (только при низкой скорости передачи), при этом тактовая частота работы микроконтроллера
может быть установлена равной 6 МГц или 3 МГц.
        
Ток потребления зависит от тактовой частоты. В рабочем режиме он имеет величину 70 мА и 50
мА соответственно. Микроконтроллер может быть переведен в режим холостого хода с током
потребления 40 мА и 30 мА соответственно и в режим пониженного энергопотребления с током
потребления 150 мкА.
        
Микроконтроллер типа 8Х930YZ (X=0,3; Y=A,H; Z=D,E) по своим характеристикам наиболее
близок к микроконтроллеру типа 8ХС251SA/SB фирмы Intel. Он имеет систему команд MCS-251,
содержащую все 111 команд системы команд MCS-51 и 157 новых команд. По новым командам могут
выполняться арифметические, логические и пересылочные операции с данными, имеющими формат 8
бит, 16 бит и 32 бита, при этом в качестве источников операндов и приемников результатов
используются регистры, пары регистров и четверки регистров. Предусмотрен режим работы, в котором
программы, содержащие только команды системы MCS-51, могут выполняться без внесения каких-либо
изменений.
        
В состав микроконтроллера входит регистровое запоминающее устройство (RRAM), содержащее
54 восьмиразрядных регистра общего назначения. В него входят 32 регистра, образующих 4 регистровых
банка. Для обращения к регистрам в RRAM и к некоторым другим регистрам (А, В, DP, SP) используются
адреса, образующие в совокупности регистровый файл объемом 40 адресов для восьмиразрядных
регистров.
        
Микроконтроллер имеет внутреннее оперативное запоминающее устройство для хранения
данных (IRAM), емкостью 1K х 8 бит. Регистры, образующие регистровые банки, в состав IRAM не
входят. К микроконтроллеру могут подключаться внешние запоминающие устройства общей емкостью
до (4 х 64K- 1056) х 8 бит.
        
В группу периферийных устройств входят четыре параллельных восьмиразрядных порта ввода-
вывода (Р0, Р1, Р2, Р3), усовершенствованный последовательный порт (ESP), три таймера-счетчика
(Т/С0, Т/С1, Т/С2), программируемый счетный блок (РСА), сторожевой таймер (WDT) и входной порт
USB. Микроконтроллер типа 8Х930HZ, кроме того, имеет блок концентратора и 4 выходных порта USB.
        
Программируемый счетный блок содержит счетчик и пять счетных модулей, каждый из которых
может работать в режиме захвата, программного таймера, быстрого ввода и широтно-импульсного
модулятора, а один из модулей, кроме того, - в режиме программного сторожевого таймера.
        
Порт USB имеет четыре адресуемых точки ввода-вывода, с каждой из которых связана пара
стеков типа FIFO. Стеки в трех парах имеют емкость 16 х 8 бит, а в одной паре стеки могут иметь
емкость до 1K х 8 бит. Выпускается модификация микроконтроллера с шестью адресуемыми точками
ввода-вывода и стеками емкостью 16 х 8 в двух парах, 32 х 8 в трех парах и 256 х 8 в одной паре.
        
В микроконтроллерах семейства 930 (MCS-251) обращение к IROM выполняется за 2 такта, при
этом одновременно считываются 2 байта и формируется очередь байтов кодов команд. Обращение к
внешней памяти для чтения байта кода команды выполняется за 4 такта ( в нестраничном режиме) или
за 2 такта (в страничном режиме).
        
При работе в нестраничном режиме внешний регистр адреса подключен к выводам порта Р0 и
используется для хранения младшего байта кода адреса. В страничном режиме внешний регистр
подключен к выводам порта Р2 и используется для хранения старшего байта кода адреса. При этом в
случае, когда в очередном адресе команды изменяется только младший байт, отпадает необходимость
в выводе старшего байта. Обращение к внешней памяти для чтения или записи байта данных в обоих
режимах выполняется за 6 тактов.
        
В микроконтроллере имеется возможность вводить в цикл обращения к внешней памяти
дополнительные такты для согласования скорости работы микроконтроллера и микросхем памяти.
Число дополнительных тактов (тактов ожидания) может быть задано программно или определяться
значением специального сигнала, подаваемого на один из выводов микроконтроллера.
        
Микроконтроллеры семейства 930 работают при подключении кварцевого резонатора с частотой
12 МГц или 6 МГц (только на низкой скорости передачи), при этом тактовая частота работы
микроконтроллера может быть установлена равной 3 МГц, 6 МГц или 12 МГц (при полной скорости
передачи). Значения тока потребления в рабочем режиме (Iраб ) и в режиме холостого хода (Iхол) при
разных значениях тактовой частоты (Fclk) и скорости передачи (BR) приведены в табл.2.
Таблица 2.
Fclk (МГц)
|
Iраб/Iхол (мА)
|
BR=12 Мбит/с |
BR=1,5 Мбит/с |
3 |
60/40 |
45/30 |
6 |
--- |
75/55 |
12 |
150/100 |
--- |
        
В режиме пониженного энергопотребления микроконтроллер потребляет ток величиной 50 или
175 мкА в зависимости от состояния порта USB.
        
Литература.
- 8Х931AA/8X931HA Universal Serial Bus Peripheral Controller. Advanced Information Datasheet. Intel.1998.
- 8X930AX Universal Serial Bus Microcontroller. Advanced Information. Intel.1997.
- М.Гук. Аппаратные средства IBM PC. Питер. 1998.
|