7.0 Установка регистров
Устройство имеет набор размещённых в памяти регистров, в которые можно записывать и из которых можно читать для управления интерфейсом USB. Некоторые биты регистров зарезервированы; чтение из этих битов возвращает неопределённые данные. Зарезервированные биты должны быть записаны "0". Следующие конвенции используются для описания формата регистров:
Номер бита |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Мнемоника бита |
Сокращённый бит / поле имён |
Соответствующее FIFO |
Соответствующие типы и номера FIFO, где необходимо |
Сброс значения |
Сброс значений, где необходимо |
Тип регистра |
r = только для чтения w = только для записи
r/w = читается и записывается аппаратно-реализованным программным
обеспечением CoR = очищается по чтению
CoW = очищается по записи, если записан “0”; запись “1” не
оказывает влияния
HW = модифицируется устройством или аппаратно-реализованным
программным обеспечением |
7.1 Регистры управления
7.1.1 Главный регистр управления (MCNTRL)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
INTOC1-0 |
Зарезервировано |
NAT |
VGE |
Зарезерв. |
SRST |
0 |
0 |
- |
0 |
0 |
|
0 |
r/w |
- |
r/w |
r/w |
|
r/w |
SRST. Программный сброс. Установка этого бита приведёт к программному сбросу устройства. Этот сброс эквивалентен аппаратному сбросу, за исключением того, что не оказывается воздействие на регистр конфигурации генератора тактовых импульсов (CCONF).
VGE. Включение регулятора напряжения. Установка этого бита включает внутренний 3.3В регулятор напряжения. Этот бит аппаратно сбрасывается только в "0", отключая внутренний 3.3В регулятор напряжения по умолчанию. Когда 3.3В регулятор напряжения отключён, устройство эффективно отключается от USB. По включению питания аппаратно-реализованное программное обеспечение может выполнить любую необходимую инициализацию (такую как самотестирование по включению питания) и затем установить бит VGE. До установки бита VGE, верхний по каналу порт концентратора не обнаруживает присутствие устройства.
Если бит VGE сброшен, то внешний источник питания 3.3В может быть использован на контакте V3.3.
NAT. Узел присоединён. Этот бит показывает, что узел готов быть обнаруженным как подключённый к USB. Во время сброса передатчик посылает SE0 на порт USB для предотвра-щения того, что концентратор (к которому подключён данный узел) обнаружит событие подключения. После сброса, этот бит остаётся очищенным, чтобы дать устройству время до того как он должен будет отвечать на команды. После этого бит устанавливается, устройство больше не управляет USB и должно быть готово для получения сигнала сброса от концент-ратора.
Бит NAT должен быть установлен аппаратно-реализованным программным обеспечением, если внешний источник 3.3В подключён к контакту V3.3, или, по крайней мере, через 1 мс после установки бита VGE (в последнем случае, задержка даёт внутреннему регулятору достаточное время для стабилизации).
INTOC. Управление выходом прерываний. Этот бит управляет выходом прерываний согласно следующеё таблице.
INTOC |
Выход прерываний |
1 |
0 |
0 |
0 |
Отключена |
0 |
1 |
С открытым коллектором, активен по низкому уровню |
1 |
0 |
Двухтактный, активен по высокому уровню |
1 |
1 |
Двухтактный, активен по низкому уровню |
7.1.2 Регистр конфигурации генератора тактовых импульсов (CCONF)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
CODIS |
Зарезервировано |
CLKDIV3-0 |
0 |
- |
1 |
0 |
1 |
1 |
r/w |
- |
r/w |
CLKDIV. Внешний делитель тактовой частоты. Сброс по включению питания и аппаратный сброс конфигурируют делитель в 11d (десятичный формат), который производит выходную тактовую частоту 4 МГц.
частота = 48 МГц / (CLKDIV + 1)
Если значение CLKDIV изменяется аппаратно-реализованным программным обеспече-нием, то это позволяет осуществлять переключения свободные от выбросов на контакте CLKOUT.
CODIS. Отключение выдачи тактовых импульсов. Установка этого бита отключает выдачу тактовых импульсов. Выходной сигнал CLKOUT "заморожен" в текущем состоянии и возобновляется с новым периодом, когда этот бит очищен.
7.1.3 Идентификатор модификации (RID)
Этот регистр содержит двоичный код модификации чипа.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезервировано |
REVID3-0 |
- |
0 |
0 |
1 |
0 |
- |
r |
REVID. Идентификатор модификации. Для модификации 9603 Rev A и 9604 Rev B это поле содержит 0010b.
7.1.4 Регистр функционального состояния узла (NFSR)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезервировано |
NFS1-0 |
- |
0 |
0 |
- |
r/w |
NFS. Функциональное состояние узла. Аппаратно-реализованное программное обеспечение должно инициализировать все необходимые переходы согласно соответствующим битам состояния в регистре чередования события (ALTEV). Допустимые переходы показаны на рисунке 18. Биты функционального состояния устанавливаются в состояния узла, как показано в таблице 6.
Таблица 6. Функциональные состояния USB
NFS |
Состояние узла |
Описание |
1 |
0 |
0 |
0 |
NodeReset |
Это состояние сброса USB.
Переход в это состояние по сбросу модуля или программное обнаружение сброса
USB. После входа, все каналы конечных точек отключаются. DEF в регистре
управления конечной точки 0 (EPC0) и AD_EN в регистре функционального адреса
(FAR) должны быть очищены программным обеспечением по входу в это состояние.
По выходу, DEF должен быть сброшен, чтобы устройство отвечало по адресу,
который берётся по умолчанию. |
0 |
1 |
NodeResume |
В этом состоянии,
генерируется возобновлённое сигнализирование «K». Вход в это состояние должен осуществляться
аппаратно-реа-лизованным программным обеспечением для инициализирования
устройством включающей последовательности. Узел должен оста-ваться в этом
состоянии, по крайней мере, 1 мс и не более 15 мс. |
1 |
0 |
NodeOperational |
Этот нормальное рабочее состояние. В этом состоянии узел сконфигурирован для работы с шиной USB. |
1 |
1 |
NodeSuspend |
Вход в это состояние
приостановки должен осуществляться аппаратно-реализованным программным
обеспечением при обнаружении события приостановки во время состояния
нормального функционирования. В состоянии приостановки передатчики находятся
в режиме низкого потребления мощности. Все контроллеры конечных точек и биты
TX_EN, LAST и RX_EN сброшены, в то время как все другие внутренние состояния
«заморожены». По обнаружению активности шины, устанавливается бит RESUME в
регистре ALTEV. Программное обеспечение может вызвать переход в состояние
NodeOperational. |
7.1.5 Регистр главных событий (MAEV)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
INTR |
RX_EV |
ULD |
NAK |
FRAME |
TX_EV |
ALT |
WARN |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
текст |
r |
CoR |
r |
CoR |
r |
r |
r |
WARN. Один из немаскируемых битов в регистре событий предупреждающих о нарушения FIFO (FWEV). Этот бит очищается чтением регистра FWEV.
ALT. Чередование. Один из немаскируемых битов регистра ALTEV должен быть установлен. Этот бит очищается чтением из регистра ALTEV.
TX_EV. Событие передачи. Этот бит, установлен, если любой из немаскируемых битов (TXFIFOx или TXUNDRNx) в регистре события передачи (TXEV). Он показывает, что операция запроса IN завершена. Это бит очищается, когда все биты TX_DONE и TXUNDRN в каждом регистре состояния передачи (TXSx) очищены.
FRAME. Этот бит устанавливается, если счётчик кадров обновлён новым значением. Это может быть обусловлено получением неверного пакета SOF на USB или искусственным обновлением, если счётчик кадров был закрыт или кадр был пропущен. Этот бит очищается, когда читается регистр.
NAK. Отсутствие подтверждения приема. Должен быть установлен один из немаскируемых битов в регистре событий NAK (NAKEV). Этот бит очищается, когда читается регистр NAKEV.
ULD. Обнаружение перехода закрыто/открыто. Таймер кадров имеет, либо ввод в состояние "открыто" из состояния "закрыто", либо ввод из состояния "закрыто" в состояние "открыто", как это определено установкой бита UL в регистре номера кадра (FNH или FNL). Этот бит очищается при чтении регистра.
RX_EV. Событие приёма. Этот бит, установлен, если любой из немаскируемых битов в регистре события приёма (RXEV). Он показывает, что операция запроса SETUP или OUT завершена. Это бит очищается, когда все биты RX_LAST в каждом регистре состояния приёма (RXSx) и все биты RXOVRRN в регистре RXEV очищены.
INTR. Включение управляющих прерываний. Этот бит зафиксирован в 0 в регистре главных событий (MAEV); соответствующим битом в регистре главных масок (MAMSK) является бит включения управляющих прерываний.
7.1.6 Регистр главных масок (MAMSK)
Когда бит установлен в 1, прерывание разрешено, когда соответствующее событие в регистре MAEV разрешено. Иначе, генерация прерываний отключена.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Такое же описание битов, что и в регистре MAEV |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r |
7.1.7 Регистр чередования событий (ALTEV)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
RESUME |
RESER |
SD5 |
SD3 |
EOP |
DMA |
WKUP |
res |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- |
CoR |
CoR |
CoR |
CoR |
CoR |
r |
r |
- |
WKUP. Событие включения. Этот бит устанавливается, когда генерируется прерывание включения и подаётся на внешний контакт INTR. Бит WKUP только для чтения и очищается, когда очищен соответствующий ожидаемый бит (PNDUC и/или PNDUSB в регистре включения(WKUP)).
DMA. Событие DMA. Должен быть установлен один из немаскируемых битов в регистре событий DMA (DMAEV). Бит DMA только для чтения и очищается когда очищается регистр DMAEV.
EOP. Окончание пакета. Правильная последовательность EOP обнаружена на USB. Он используется, когда устройство имеет проинициализированную последовательность удалённого включения, чтобы показать завершённость полученной главным контроллером последователь-ности. Этот бит очищается при чтении регистра.
SD3.Обнаружение 3 мс приостановки. Это бит устанавливается через 3 мс после обнаружения IDLE в порту расположенному выше по каналу, показывая, что это устройство может быть приостановлено. Приостановка осуществляется под управлением аппаратно-реализованного программного обеспечения записью значения приостановки в регистр функционального состояния узла (NFSR). Этот бит очищается при чтении регистра.
SD5. Обнаружение 5 мс приостановки. Это бит устанавливается через 5 мс после обнаружения IDLE в порту расположенному выше по каналу, показывая, что это устройство готово для выполнения операции удалённого включения. Возобновление может быть инициализировано под управлением аппаратно-реализованного программного обеспечения записью значения восстановления в регистр функционального состояния узла (NFSR). Этот бит очищается при чтении регистра.
RESET. Это бит устанавливается, когда обнаружено 2.5 мкс сигнала SEO в порту располо-женному выше по каналу. Соответственно, функциональное состояние должно быть сброшено (NFS в регистре NFSR установлен в RESET), где оно должно оставаться, по крайней мере, 100 мкс. Функциональное состояние может вернуться в рабочее состояние. Этот бит очищается при чтении регистра.
RESUME. Сигнал возобновления обнаруживается на USB, когда устройство находится в приостановленном состоянии (NFS в регистре NFSR установлен в SUSPEND), а на USB присутствует не сигнал IDLE, показывая, что это устройство должно быть включено последовательно и переведено в рабочее состояние. Этот бит очищается при чтении регистра.
7.1.8 Регистр маски чередования (ALTMSK)
Установка бита в "1" в этом регистре разрешает автоматическую установку бита ALT в регистре MAEV, когда получено соответствующее событие в регистре ALTEV. В обратном случае, установка бита ALT отключена.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Такое же описание битов, что и в регистре ALTEV |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- |
r/w |
- |
7.1.9 Регистр события передачи (TXEV)
бит 7 TXFIFO3 |
бит 6 TXFIFO2 |
бит 5 TXFIFO1 |
бит 4 FIFO0 |
бит 3 TXFIFO3 |
бит 2 TXFIFO2 |
бит 1 TXFIFO1 |
бит 0 FIFO0 |
TXUDRRN3-0 |
TXFIFO3-0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r |
1 |
r |
1. Так как конечная точка 0 выполняет сохранение и отправляет принцип, не выполнение условия для FIFO0 не может случиться. Это приводит к тому, что бит TXUDRRN0 всегда будет читаться как "0".
TXFIFO. Передающее FIFO. Эти биты являются копией битов TX_DONE из соответствующих регистров состояния передачи (TXSx). Биты устанавливаются, когда операция запроса IN для соответствующей передающей конечной точки завершена. Биты очищаются, когда читается соответствующий регистр TXSx.
TXUDRRN. Не выполнение передачи. Эти биты копируются из соответствующих битов TX_URUN из регистров TXSx. Когда любая из передающих FIFO потеряет значимость, установится соот-ветствующий бит TXUDRRN. Эти биты очищаются, когда читается соответствующий регистр состояния передачи.
7.1.10 Регистр масок передачи (TXMSK)
Когда соответствующие биты в регистре TXEV установлены, устанавливается бит TX_EV в регистре MAEV. Когда очищается, соответствующий бит в регистре TXEV не приводит к установке TX_EV.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Такое же описание битов, что и в регистре TXEV |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r/w |
7.1.11 Регистр события приёма (RXEV)
бит 7 RXFIFO3 |
бит 6 RXFIFO2 |
бит 5 RXFIFO1 |
бит 4 FIFO0 |
бит 3 RXFIFO3 |
бит 2 RXFIFO2 |
бит 1 RXFIFO1 |
бит 0 FIFO0 |
RXOVRRN3-0 |
RXFIFO3-0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
CoR |
r |
RXFIFO. Принимающее FIFO. Эти биты, установлены, когда установлены либо RX_ERR, либо RX_LAST в соответствующем регистре статуса приёма. Чтения соответствующего регистра RXSx автоматически очищает эти биты.
Устройство отбрасывает все пакеты для конечной точки 0 полученные с ошибками. Это необходимо в случае повторной передачи обусловленной ошибкой обмена, обеспечивающей получение хорошей копии пакета SETUP. Иначе, FIFO может быть потенциально связана, удерживая испорченные данные, и способна посылать повторные передачи того же самого пакета (бит RXFIFO0 только отражает значение RX_LAST для конечной точки 0).
Если потоковые данные используются для принимающих конечных точек (EP2, EP4 и EP6), то аппаратно-реализованное программное обеспечение должно проверить соответствующие биты RX_ERR для обеспечения отсутствия ошибок в принятом пакете.
RXOVRRN. Выход за пределы при приёме. Эти биты, установлены в событии состояния превышения FIFO. Они очищаются, когда читается регистр.
Аппаратно-реализованное программное обеспечение должно проверить соответствующие биты RX_ERR этого пакета для других принимающих конечных точек (EP2, EP4 и EP6) на содержание ошибок, так как эти конечные точки поддерживают потоковые данные (пакеты, которые длиннее чем действительная "глубина" FIFO).
7.1.12 Регистр масок приёма (RXMSK)
Когда соответствующие биты в регистре RXEV установлены, устанавливается бит RX_EV в регистре MAEV. Когда очищается, соответствующий бит в регистре RXEV не приводит к установке RX_EV.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Такое же описание битов, что и в регистре RXEV |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r/w |
7.1.13 Регистр события NAK (NAKEV)
бит 7 TXFIFO3 |
бит 6 TXFIFO2 |
бит 5 TXFIFO1 |
бит 4 FIFO0 |
бит 3 TXFIFO3 |
бит 2 TXFIFO2 |
бит 1 TXFIFO1 |
бит 0 FIFO0 |
OUT3-0 |
IN3-0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
CoR |
CoR |
IN. Установлен в "1", когда генерируется подтверждение связи NAK для разрешённого адреса/комбинации конечных точек (AD_EN в регистре FAR и EP_EN в управляющей конечной точке в регистре EPCx установлены в "1") в ответ на символ IN. Он очищается, когда читается регистр.
OUT. Установлен в "1", когда генерируется подтверждение связи NAK для разрешённого адреса/комбинации конечных точек (AD_EN в регистре FAR и EP_EN в регистре EPCx установлены в "1") в ответ на символ OUT. Этот бит, не установлен, если NAK генерирован как результат превышения условия. Он очищается, когда читается регистр.
7.1.14 Регистр масок NAK (NAKMSK)
Когда соответствующие биты в регистре NAKEV установлены, устанавливается бит NAK в регистре MAEV. Когда очищается, соответствующий бит в регистре NAKEV не приводит к установке NAK.
бит 7 TXFIFO3 |
бит 6 TXFIFO2 |
бит 5 TXFIFO1 |
бит 4 FIFO0 |
бит 3 TXFIFO3 |
бит 2 TXFIFO2 |
бит 1 TXFIFO1 |
бит 0 FIFO0 |
Такое же описание битов, что и в регистре NAKEV |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r/w |
|