Современный персональный компьютер (ПК) имеет один или два порта 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 | есть |
Микроконтроллеры с концентратором работают только при полной скорости обмена.
Микроконтроллер типа 8X931YA (X=0,3; Y=A,H) по своим характеристикам наиболее близок к микроконтроллеру типа 8XC32/8XC52 фирмы 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ХC251SA/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 | --- |
Литература.
- 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.