| Микроконтроллеры фирмы 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.
 |