7.2 Передающие регистры
7.2.1Регистр событий, предупреждающих о нарушениях FIFO (FWEV)
бит 7 RXFIFO3 |
бит 6 RXFIFO2 |
бит 5 RXFIFO1 |
бит 4 - |
бит 3 TXFIFO3 |
бит 2 TXFIFO2 |
бит 1 TXFIFO1 |
бит 0 - |
RXWARN3-1 |
Зарезерв. |
TXWARN3-1 |
Зарезерв. |
0 |
0 |
0 |
- |
0 |
0 |
0 |
- |
r |
- |
r |
- |
TXWARN. Предупреждение о нарушении передачи. Установлен в "1", когда соответствующая передающая конечная точка FIFO превысила предел, определённый битом TFWL в регистре TXCx, а передача из соответствующей конечной точки разрешена. Этот бит очищается, когда очищено условие предупреждения о нарушении либо записью новых данных в FIFO, когда FIFO очищено, либо по завершению передачи, о чём говорит бит TX_DONE в регистре TXSx.
RXWARN. Предупреждение о нарушении приёма. Установлен в "1", когда соответствующая передающая конечная точка FIFO превысила предел, определённый битом RFWL в регистре EPCx. Этот бит очищается, когда очищено условие предупреждения о нарушении либо чтением данных из FIFO, либо когда FIFO очищено.
7.2.2 Регистр масок, предупреждающих о нарушениях FIFO (FWMSK)
Когда установлен соответствующий бит в регистре FWEV, устанавливается WARN в регистре MAEV. Когда очищается, соответствующий бит в регистре FWEV не приводит к установке WARN.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Такое же описание битов, что и в регистре FWEV |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r/w |
7.2.3 Регистр старшего разряда номера кадра (FNH)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
MF |
UL |
RFC |
Зарезервировано |
FN10-8 |
1 |
1 |
0 |
- |
0 |
0 |
0 |
r |
r |
w/r |
- |
r |
FN. Номер кадра. Это текущий номер принятого кадра в последнем пакете SOF. Если не принят правильный номер кадра во время 12060 битов (максимальная длина кадра, FLMAX) предыдущего обмена, то номер кадра увеличивается искусственно. Если два последовательных кадра пропущены или неверны, то текущий FN "замораживается" и загружается номером кадра из пакета SOF.
Если младший байт номера кадра был прочитан аппаратнно-реализованным программным обеспечением перед чтением регистра FNH, то пользователь в действительности читает содержимое буферного регистра, который содержит значение трёх битов номера кадра этого регистра, когда младший байт был прочитан. Правильная последовательность для чтения номера кадра такова: FNL, FNH. Операции чтения для регистра FNH, без начального чтения регистра младшего байта номера кадра (FNL), читает действительное значение трёх младших битов в номера кадра. По сбросу, FN устанавливается в "0".
RFC. Сброс счётчика кадров. Установки этого бита сбрасывает номер кадра в 0x0000, после чего этот бит очищается сам. Этот бит всегда читается как "0".
UL. Флаг разблокировки. Этот бит показывает, что, по крайней мере, два кадра были приняты без ожидаемого номера кадра, или что не было получено правильного SOF за время прихода 12060 бит. Если этот бит установлен, то номер кадра из следующего действительного пакета загружается в FN. По сбросу этот флаг устанавливается в "1".
MF. Потеря флага SOF. Этот бит установлен, когда номер кадра в полученном пакете SOF не равен ожидаемому значению, или когда SOF не получен за время прихода 12060 бит. По сбросу этот флаг устанавливается в "1".
7.2.4 Регистр младшего байта номера кадра (FNL)
Этот регистр содержит младший байт номера кадра, как это описывалось выше. Для обеспечения последовательности, чтение этого младшего байта вызывает защёлкивание трёх битов номера кадра в регистре FNH, на время чтения этого регистра. Правильная последовательность чтения номера кадра такова: FNL, FNH. По сбросу FN устанавливается в "0".
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
FN7-0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r |
7.2.5 Регистр функционального адреса (FAR)
Этот регистр устанавливает функциональный адрес устройства. Различные номера конечных точек устанавливаются индивидуально через регистр управления конечными точками.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
AD_EN |
AD6-0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r/w |
r/w |
AD. Адрес. Это поле содержит 7-разрядный функциональный адрес, используемый для передачи и приёма всех символов, адресованных устройству.
AD_EN. Разрешение адресации. Когда бит установлен в "1", биты AD6-0 используются в сравнении адреса (подробности см. в разделе 6.2). Когда очищен, устройство не отвечает на любой символ на шине.
Примечание: Если установлен бит DEF в регистре управления контрольной точкой 0, то конечная точка 0 отвечает по адресу, который берётся по умолчанию.
7.2.6 Регистр управления DMA (DMACNTRL)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
DEN |
IGNRXTGL |
DTGL |
ADMA |
DMOD |
DSRC2-0 |
0 |
0 |
0 |
0 |
0 |
0 |
- |
0 |
r/w |
r/w |
r/w |
r/w |
r/w |
r/w |
DSRC. Источник DMA. Поле битов источника DMA содержит двоичное значение, которое определяет, какая из конечных точек , 1…6, доступна для поддержки DMA. Биты DSRC очищаются по сбросу. В таблице 7 приведены установки бита DSRC.
Таблица 7. Описание битов DSRC
DSRC |
Номер конечной точки |
2 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
2 |
0 |
1 |
0 |
3 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
5 |
1 |
0 |
1 |
6 |
1 |
1 |
x |
Зарезервировано |
DMOD. Режим DMA. Этот бит определяет, когда появляется запрос DMA. Если он сброшен, то запрос DMA появляется по завершению передачи. Для передающих конечных точек EP1, EP3 и EP5, данные полностью переданы, что показано битом TX_DONE (для заполнения FIFO новыми передаваемыми данными). Для принимающих конечных точек EP2, EP4 и EP6, это отражает бит RX_LAST. Когда установлен бит DMOD, запрос DMA возникает, когда установлен соответствующий бит предупреждения о нарушениях FIFO. Бит DMOD очищается по сбросу.
Запрос DMA от передающей конечной точки активируется, до тех пор, пока очистится состояние запроса. Если DMOD установлен в "0", то запросы DMA возникают либо до тех пор, пока аппаратно-реализованное программное обеспечение читает соответствующий регистр состояния передачи (TXSx), таким образом, сбрасывая бит TX_DONE, либо если бит TX_LAST в регистре команды передачи (TXCx) установлен аппаратно-реализованным программным обеспечением. Если бит DMOD установлен в "1", то запросы DMA возникают, до тех пор, пока очищаются состояния предупреждения о нарушениях FIFO, вызванные либо отправлением достаточного количества байтов в конечную точку, либо если из-за передачи установлен бит TX_DONE.
Запрос DMA от передающей конечной точки активируется, до тех пор, пока очистится состояние запроса. Если DMOD установлен в "0", то запросы DMA возникают либо до тех пор, пока аппаратно-реализованное программное обеспечение читает соответствующий регистр состояния приёма (RXSx), таким образом, сбрасывая бит RX_LAST, либо если FIFO становится пустой из-за достаточного количества циклов чтения. Если бит DMOD установлен в "1", то запросы DMA возникают, до тех пор, пока очистятся состояния предупреждения о нарушениях FIFO, либо если конечная точка FIFO становится пустой из-за достаточного количества циклов чтения.
Если DMOD установлен в "0" и разрешены конечная точка и DMA, то запрос DMA возникает до тех пор, пока аппаратно-реализованное программное обеспечение читает соответствующий регистр TXSx или RXSx, таким образом, сбрасывая бит TX_DONE/RX_LAST. Если бит DMOD установлен в "1" и разрешены конечная точка и DMA, то запрос DMA возникает до тех пор, пока состояния предупреждения о нарушениях FIFO.
ADMA. Автоматический DMA. Установка этого бита автоматически разрешает выбранную конечную точку приёма или передачи. Перед разрешением режима ADMA, необходимо очистить бит DEN в регистре управления DMA (DMACNTRL). Режим ADMA функционирует до тех пор, пока установлен любой бит, кроме NTGL, в регистре события DMA (DMAEV). Для инициализации режима ADMA, должны быть очищены все биты, кроме NTGL, в регистре DMAEV.
Для операций приёма, приёмник включается автоматически; когда принимается пакет, он передаётся через DMA в память.
Для операций передачи, пакет данных посылает через DMA из памяти; передатчик включается автоматически.
Когда устройство входит в режим ADMA, любое существующее состояние конечной точки может быть потеряно. Если уже есть данные в FIFO, то они сбрасываются. Текущее состояние RX_EN и TX_EN также может измениться.
Очистка ADMA выводит устройство из режима ADMA. DEN может очистится в то же самое время или позже. Если в то же самое время, то все операции DMA немедленно прекращаются и аппаратно-реализованное программное обеспечение должно отправить любые оставшиеся данные. Если позже, то устройство завершит любую текущую операцию DMA перед выходом из режима ADMA (см. описание бита DSHL в регистре DMAEV).
DTGL. Переключатель DMA. Этот бит используется для определения состояния операций ADMA при инициализации. При инициализации аппаратно-реализованное программное обеспечение устанавливает этот бит в "1", если начинает с операции DATA1, и в "0", если начинает с операции DATA0.
Запись этого бита также обновляет бит NTGL в регистре DMAEV.
IGNRXTGL. Игнорирование переключения RX. Если этот бит установлен, то игнорируется сравнение между битом NTGL в регистре DMAEV и битом TOGGLE в соответствующем регистре RXSx во время операций приёма. В этом случае, несовпадение обоих битов во время операции приёма не остановит операцию ADMA. Если этот бит не установлен, то ADMA останавливается в случае несовпадения битов. После сброса это бит устанавлен в "0".
7.2.7 Регистр событий DMA (DMAEV)
Биты этого регистра используются в режиме ADMA. Биты 0…3 могут вызвать прерывание, если они не очищены, даже если устройство не установило режим ADMA. До тех пор, пока все эти биты не будут очищены, режим ADMA не может быть инициализирован. Режим ADMA автоматически заканчивается, когда устанавливается любой из этих битов.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезервировано |
NTGL |
Зарезерв. |
DSIZ |
DCNT |
DERR |
DSHLT |
- |
0 |
- |
0 |
0 |
- |
0 |
- |
r |
- |
CoW |
CoW |
CoW |
CoW |
DSHLT. Программная остановка DMA. Это бит устанавливается, когда операции ADMA остановлены аппаратно-реализованным программным обеспечением. Этот бит устанавливается только после того, как механизм DMA завершит все необходимые операции очистки и вернётся в состояние простоя. Выполняется при следующих условиях:
Если бит ADMA очищен (а DEN остаётся установленным). В этом случае, текущая операция завершается. Это значит, что любые данные в FIFO переданы в память через DMA. Бит DSHLT устанавливается только после этого. Заметьте, что DEN остаётся установленным, позже может потребоваться его очистка.
Если DEN очищен (ADMA может остаться либо установленным, либо может быть очищен в то же самое время). Это останавливает все DMA операции и немедленно устанавливает бит DSHLT. Если эти данные в FIFO, то они сохраняются, но не передаются.
Если аппаратно-реализованное программное обеспечение пытается прочитать записать соответствующие регистры EPCx, TXCx, RXCx, TXCx или RXSx (когда DEN и ADMA в регистре DMACNTRL оба установлены). Это останавливает все DMA операции и немедленно усатнавливает бит DSHLT. Операция чтения или записи не оказывают эффекта.
DERR. Ошибка DMA. Это бит устанавливается, чтобы показать то, что пакет был принят или отправлен не правильно. Он также устанавливается, если бит TOGGLE в регистре RXSx/TXSx не равен биту NTGL в регистре DMAEV, после отправки/приёма пакета. (Заметьте, что это сравнение осуществляется перед изменением состояния бита NTGL из-за передачи пакета).
Для приёма, DERR эквивалентен RX_ERR. Для передачи, он эквивалентен TX_DONE (установлен) и ACK_STAT (не установлен).
Если установлен бит AEH в регистре счётчика ошибок DMA (DMAERR), то DERR не установится до тех пор, пока DMAERRCNT в регистре DMAERR очищен, а обнаружена другая ошибка. Ошибки обрабатываются так, как это определено в регистре DMAERR.
DCNT. Счётчик DMA. Этот бит устанавливается, когда регистр счётчика DMA (DMACNT) "0" (см. регистр DMACNT).
DSIZ. Размер DMA. Это бит имеет значение только для операций приёма DMA. Он показывает, что полученный пакет меньше чем полная длина FIFO. Он обычно показывает окончание много пакетной передачи.
NTGL. Следующее переключение. Этот бит определяет состояние переключения при отправке следующего пакета данных (если идёт отправление), или состояние переключения при ожидании следующего пакета данных (если идёт приём). Этот бит инициализируется записью бита DTGL в регистре DMACNTRL. Затем он изменяет состояние с каждой отправкой пакета или приёма на конечной точке сейчас же выбранной с помощью DSRC2-0. Если операция записи DTGL возникает одновременно с операцией обновления бита, то операция записи имеет более высокий приоритет.
Если передача идёт во время операций ADMA, то бит DTGL перезаписывает соответствующий бит TOGGLE в регистре TXCx. Это обеспечивает правильность переключающихся данных на USB.
Заметьте, что нет соответствующих битов маски для этих событий, потому что они не используются для генерирования прерывания.
7.2.8 Регистр масок DMA (DMAMSK)
Любой бит установленный в "1" в этом регистре автоматически устанавливает бит DMA в регистре ALTEV, когда возникает соответствующее событие в регистре DMAEV. Иначе, установка бита DMA отключена. Описание битов 0…3, см. в регистре DMAEV.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
|
DSIZ |
DCNT |
DERR |
DSHLT |
- |
0 |
0 |
- |
0 |
- |
r/w |
r/w |
r/w |
r/w |
7.2.9 Регистр зеркало (MIR)
Этот регистр только для чтения. Простое его чтение не изменяет состояние регистра TXSx или RXSx, аппаратно-реализованное программное обеспечение может свободно проверить состояние канала.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
STAT |
- |
r |
STAT. Состояние. Это поле отражает биты состояния передатчика или приёмника выбранного в поле DSRC2-0 в регистре DMACNTRL (DMA не обязательно должен быть активен или включен). Он соответствует TXSx или RXSx.
7.2.10 Регистр счётчика DMA (DMACNT)
Этот регистр определяет максимальное число определённое для операций ADMA.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
AEH |
DMAERRCNT |
0 |
0 |
0 |
0 |
0 |
0 |
- |
0 |
r/w |
r/w |
DCOUNT. Счётчик DMA. Это поле декрементируется по выполнению операции DMA до тех пор, пока не станет равным 0. Затем устанавливается бит DCNT в регистре события DMA, только когда успешно завершена следующая операция DMA. Это регистр не теряет значимости.
Для операций приёма, этот счётчик декрементируется, когда пакет успешно принят, а затем передан в память через DMA.
Для операций передачи, этот счётчик декрементируется, когда пакет передан из памяти через DMA, а затем успешно отправлен.
DCOUNT должен быть установлен следующим образом: DCOUNT = (№ пакета для передачи) -1
Если операция записи DMACNT возникает одновременно с операцией декрементирования, то операция записи имеет более высокий приоритет.
7.2.11 Регистр ошибок DMA (DMAERR)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
FHT |
HOS |
WKMODE |
Зарезерв. |
ENUC |
ENUSB |
PNDUC |
PNDUSB |
0 |
0 |
0 |
- |
1 |
1 |
1 |
1 |
w/r0 |
w/r |
w/r |
- |
w/r |
w/r |
CoW |
CoW |
DMAERRCNT. Счётчик ошибок DMA. В конъюнкции со способностью обработки арифметических ошибок, этот счётчик определяет максимальное число последовательных ошибок шины перед остановкой режима ADMA. Аппаратно-реализованное программное обеспечение может установить 7-разрядный счётчик в предварительно установленное значение. После начала работы ADMA, счётчик декрементируется на 1из предварительно установленного значения каждый раз при обнаружении ошибки на шине. Каждый успешный переход сбрасывает счётчик обратно в предварительно установленное значение. Когда режим ADMA остановлен, счётчик также устанавливается обратно в предварительно установленное значение.
Если счётчик доходит до 0 и обнаружен другой ошибочный пакет, то устанавливается бит DERR в регистре событий DMA. Подробности в разделе 7.2.7. Это регистр не теряет значимости.
DMAERRCNT должен быть установлен следующим образом: DMAERRCNT = 3D (Максимальное число предпринятых попыток отправки) - 1
Доступ для записи в этот регистр возможен только, когда ADMA неактивен. Иначе, он игнорируется. Чтение из этого регистра, пока ADMA активен, возвращает текущее значение счётчика. Чтение из регистра, когда ADMA неактивен, возвращает предварительно установленное значение. Счётчик декрементируется только, если установлен AEH (активизирована автоматическая обработка ошибок).
AEH
Автоматическая обработка ошибок. Этот бит имеет два различных значения, зависящих от текущего режима перехода:
Неизохронный режим
Этот режим используется для передачи больших массивов, прерываний и управления. Установка AEH в этом режиме включает автоматическую обработку пакетов, содержащих CRC или ошибки согласования разрядов.
Если этот бит установлен во время операций передачи, то устройство автоматически перезагружает FIFO и переупорядочивает очередь пакета, для которого главный контроллер не вернул ACK. Если этот бит очищен, то автоматическая обработка ошибок выключена.
Если этот бит установлен во время операций приёма, то пакет принятый с ошибкой (как определено в описании бита DERR в регистре DMAEV) автоматически очищен из FIFO, чтобы повторно получить этот пакет. Если этот бит очищен, то автоматическая обработка ошибок выключена.
Изохронный режим
Установка этого бита позволяет устройству игнорировать пакеты, принятые с ошибками (как определено в описании бита DERR в регистре DMAEV).
Если этот бит установлен во время операций приёма, то устройство автоматически очищает и сбрасывает FIFO, для получения следующего пакета. Ошибочный пакет игнорируется и не передаётся через DMA. Если этот бит очищен, то автоматическая обработка ошибок выключена.
7.2.12 Регистр включения (WKUP)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
STALL |
DEF |
Зарезервировано |
EP3-0 |
0 |
0 |
- |
0 |
0 |
0 |
0 |
0 |
r/w |
r/w |
- |
r; аппаратно в «0» |
PNDUSB. Ожидаемое включение USB. Это бит показывает, что это устройство будет включено по USB активности. Он также посылает сигнал запроса прерывания ожидания включения. Бит PNDUSB должен быть очищен главным контроллером записью "0". Аппаратный сброс устанавливает это бит.
PNDUC. Ожидание включения микроконтроллера. Этот бит показывает, что устройство будет включено по обращению микроконтроллера. Он также посылает сигнал запроса прерывания ожидания включения. Бит PNDUC должен быть очищен главным контроллером записью "0". Аппаратный сброс устанавливает это бит.
ENUSB. Разрешение USB. Когда установлен в "1", этот бит разрешает включение устройства, по обнаружению USB активности.
ENUC. Разрешение микроконтроллера. Когда установлен в "1", этот бит разрешает включение устройства, когда микроконтроллер обращается к устройству.
WKMODE. Режим включения. Этот бит выбирает интервал, после которого устройство генерирует прерывание включения (если разрешено), когда появляется событие включения, как показано ниже:
0 - Генерирует немедленное прерывание включения
1 - Генерирует прерывание включения после задержки включения
HOS. Останов по приостановке. Когда этот бит установлен, устройство входит в режим Halt, как только оно попадает в состояние приостановки. Запись "1" в состоянии приостановки не оказывает влияния.
FHT. Принудительный останов. Когда узел не присоединён (NAT в регистре MCNTRL установлен в "0"), установка этого бита переводит узел в режим Halt. Когда узел подключён (NAT в "1"), запись "1" игнорируется.
7.2.13 Регистр управления конечной точкой 0 (EPC0)
Этот регистр управляет конечной точкой 0.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезерв. |
ACK_STAT |
TX_DONE |
TCOUNT4-0 |
- |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- |
CoR |
CoR |
r |
EP. Конечная точка. Это поле содержит 4-разрядный адрес конечной точки. Для конечной точки 0, эти биты аппаратно установлены в 0000b.
DEF. Адрес по умолчанию. Когда бит установлен, устройство отвечает по адресу, берущемуся по умолчанию, независимо от содержимого полей FAR6-0/EP03-0.Когда для конечной точки передаётся символ IN, бит DEF автоматически очищается.
Этот бит помогает в переходе от адреса по умолчанию к назначенному адресу. Переход от адреса по умолчанию 00000000000b к адресу указанному во время нумерации шины, может не получится в середине управляющей последовательности SET_ADDRESS. Это необходимо для завершения управляющей последовательности. Однако адрес должен изменится немедленно после окончания этой последовательности для того, чтобы избежать ошибок, когда другая управляющая последовательность незамедлительно последует за командой SET_ADRESS.
По сбросу USB, аппаратно-реализованное программное обеспечение имеет 10 мс для установки, и должно записать 0x80 в регистр FAR и 0x00 в регистр EPC0. По получению команды SET_ADRESS, аппаратно-реализованное программное обеспечение должно записать 0x40 в регистр EPC0 и 0x80 в регистр FAR.
STALL. Установка этого бита приводит к тому, что чип генерирует подтверждения сигнала STALL при следующих условиях:
1. - Передающее FIFO разрешено и получен символ IN.
2. - Принимающее FIFO разрешено и получен символ OUT.
Примечание: Символ SETUP не вызывает генерацию подтверждения сигнала STALL, когда это бит установлен.
По передаче подтверждения сигнала STALL, устанавливаются биты RX_LAST и TX_DONE в соответствующих регистрах состояния передачи/приёма.
7.2.14 Регистр состояния передачи 0 (TXS0)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезервировано |
IGN_IN |
FLUSH |
TOGGLE |
Зарезерв. |
TX_EN |
- |
0 |
0 |
0 |
0 |
0 |
- |
0 |
- |
r/w |
r/w HW |
r/w |
- |
r/w HW |
TCOUNT. Счётчик передачи. Этот бит показывает количество пустых байтов доступных в FIFO. Это поле никогда не превышает 8 для конечной точки 0.
TX_DONE. Передача завершена. Когда бит установлен, он показывает, что пакет передан полностью. Он очищается, когда читается этот регистр.
ACK_STAT. Состояние подтверждения приёма. Этот бит показывает состояние, полученное от главного контроллера, подтверждения приёма ранее отправленного пакета. Этот бит интерпретируется, когда TX_DONE установлен в "1". Он устанавливается, когда получено подтверждение приёма; иначе, он остаётся очищенным. Этот бит также очищается, когда этот регистр читается.
7.2.15 Регистр команды передачи 0 (TXC0)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезервировано |
IGN_IN |
FLUSH |
TOGGLE |
Зарезерв. |
TX_EN |
- |
0 |
0 |
0 |
0 |
0 |
- |
0 |
- |
r/w |
r/w HW |
r/w |
- |
r/w HW |
TX_EN. Разрешение передачи. Этот бит разрешает передачу данных из FIFO. Он очищается чипом после передачи одиночного пакета, или подтверждения приёма STALL, в ответ на символ IN. Он должен быть установлен аппаратно-реализованным программным обеспечением для начала передачи пакета. Бит RX_EN в регистре команды приёма 0 (RXC0) имеет приоритет над этим битом; т.к. если установлен RX_EN, то бит TX_EN игнорируется до тех пор, пока RX_EN сброшен.
Пакеты нулевой длины показываются при установке этого бита без записи любых данных FIFO.
TOGGLE. Этот бит определяет использования PID при передаче пакета. Значение "0" приводит к генерации DATA0 PID, а значение "1" генерирует DATA1 PID. Это бит не изменяется аппаратно.
FLUSH. Запись 1 в этот бит очищает все данные из управляющей контрольной точки FIFO, сбрасывает конечную точку в состояние Idle, очищает указатели чтения и записи FIFO, и затем очищается сам. Если конечная точка использует в данный момент FIFO0 для передачи данных на USB, то очистка задерживается до тех пор, пока не закончится передача. Этот бит очищается по сбросу. Он эквивалентен биту FLUSH в регистре RXC0.
IGN_IN. Игнорирование символа IN. Когда этот бит установлен, конечная точка будет игнорировать любой символ IN направленный по его сконфигурированному адресу.
7.2.16 Регистр данных передачи 0 (TXD0)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
TXFD |
- |
r/w |
TXFD. Передача байта данных FIFO. Описание обработки данных см. "Двунаправленные операции управляющей конечной точки FIFO0" в разделе 6.2.2.
Аппаратно-реализованное программное обеспечение ожидает запись только полезного пакета данных. PID и CRC16 формируются автоматически.
7.2.17 Регистр состояния приёма 0 (RXS0)
Это регистр состояния приёма для двунаправленной управляющей конечной точки 0. Для приёма пакета SETUP после приёма пакета OUT/SETUP нулевой длины, существует две аппаратных копии этого регистра. Одна содержит состояние приёма пакета нулевой длины, а другая состояние следующего пакета SETUP с данными. Если пакет нулевой длины следует за пакетом SETUP, то первое чтение этого регистра показывает состояние пакета нулевой длины (с установкой в "1" RX_LAST и RCOUNT в "0"), а второе показывает состояние пакета SETUP.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезерв. |
SETUP |
TOGGLE |
RX_LAST |
RCOUNT3-0 |
- |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- |
CoR |
CoR |
CoR |
r |
RCOUNT. Счётчик приёма. Этот бит показывает количество байтов присутствующих в RX FIFO. Это поле никогда не превышает 8 для конечной точки 0.
RX_LAST. Приняты последние байты. Показывает, что по завершению успешной операции приёма был послан ACK. Он очищается, когда читается этот регистр.
TOGGLE. Этот бит определяет использования PID при передаче пакета. Значение "0" приводит к генерации DATA0 PID, а значение "1" генерирует DATA1 PID. Это бит не изменяется аппаратно.
SETUP. Этот бит показывает, что получен установочный пакет. Этот бит не изменяется, для пакета нулевой длины. Этот бит очищается, когда этот регистр читается.
7.2.18 Регистр команды приёма 0 (RXC0)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезервировано |
FLUSH |
IGN_SETUP |
IGN_OUT |
RX_EN |
- |
0 |
0 |
0 |
0 |
- |
r/w |
r/w |
r/w |
r/w HW |
RX_EN. Разрешение приёма. Приём символа OUT отключается после каждого приёма пакета данных, или когда возвращается подтверждение приёма STALL в ответ на символ OUT. Пакеты нулевой длины показываются при установке этого бита без записи любых данных FIFO. "1" должна быть записана в этот бит для переразрешения приёма данных. Приём пакета SETUP всегда разрешён. В случае пакетов SETUP туда-и-обратно (для данной конечной точки), где действительный пакет SETUP принимается с другими не SETUP символами, контроллер конечной точки отбрасывает новый пакет SETUP и возвращает подтверждение приёма ACK. Это обеспечивает восстановление из состояния, где ACK первого символа SETUP был потерян главным контроллером.
FLUSH. Запись 1 в этот бит очищает все данные из управляющей контрольной точки FIFO, сбрасывает конечную точку в состояние Idle, очищает указатели чтения и записи FIFO, и затем очищается сам. Если конечная точка использует в данный момент FIFO0 для передачи данных на USB, то очистка задерживается до тех пор, пока не закончится передача. Этот бит очищается по сбросу. Он эквивалентен биту FLUSH в регистре TXC0.
IGN_OUT. Игнорирование символа OUT. Когда этот бит установлен, конечная точка будет игнорировать любой символ OUT направленный по его сконфигурированному адресу.
IGN_SETUP. Игнорирование символа SETUP. Когда этот бит установлен, конечная точка будет игнорировать любой символ SETUP направленный по его сконфигурированному адресу.
7.2.19 Регистр данных передачи 0 (RXD0)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
RXFD |
- |
r/w |
RXFD. Приём байта данных FIFO. Описание обработки данных см. "Двунаправленные операции управляющей конечной точки FIFO0" в разделе 6.2.2.
Аппаратно-реализованное программное обеспечение ожидает чтение только полезного пакета данных. PID и CRC16 удаляются из приходящего потока данных автоматически.
7.2.20 Регистр управления конечной точкой 0 (EPC1…EPC6)
Каждая однонаправленная конечная точка имеет регистр EPCx с битами описанными ниже.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
STALL |
Зарезерв |
ISO |
EP_EN |
EP3-0 |
0 |
- |
0 |
0 |
0 |
0 |
0 |
0 |
r/w |
- |
r/w |
r/w |
r/w |
EP. Конечная точка. Это поле содержит 4-разрядный адрес конечной точки.
EP_EN. Разрешение конечной точки. Когда это бит установлен, поле EP3-0 используется для сравнения адреса, совместно с полем AD6-0 в регистре FAR. Описание в разделе 6.2. Когда очищен, конечная точка не отвечает на любой символ на шине USB.
Примечание: AD_EN в регистре FAR разрешение сравнения глобального адреса устройства. Если он очищен, устройство не отвечает на любой адрес, не зависимо от состояния EP_EN.
ISO. Изохронный. Когда этот бит установлен в "1", конечная точка изохронна. Это предполагает, что NAK послан, если конечная точка не готова, но разрешена; т.к. если символ IN принят, а нет данных доступных в FIFO для передачи, или если принят символ OUT, а FIFO заполнено, то не существует подтверждения связи USB для изохронной передачи.
STALL. Установка этого бита приводит к тому, что чип генерирует подтверждения сигнала STALL при следующих условиях:
3. Передающее FIFO разрешено и получен символ IN.
4. Принимающее FIFO разрешено и получен символ OUT.
Примечание: Символ SETUP не вызывает генерацию подтверждения сигнала STALL, когда это бит установлен.
7.2.21 Регистр состояния передачи X (TXS1, TXS2, TXS3)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
TX_URUN |
ACK_STAT |
TX_DONE |
TCOUNT4-0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
CoR |
CoR |
CoR |
r |
TCOUNT. Счётчик передачи. Этот бит показывает количество пустых байтов доступных в FIFO. Если это число больше 31, то рапортуется значение 31.
TX_DONE. Передача завершена. Когда бит установлен, он показывает, что конечная точка ответила на USB пакет. Три условий могут вызвать установку бита:
1. Пакет данных полностью передан в ответ на символ IN с не-ISO операцией.
2. Конечная точка отправила подтверждение приёма в ответ на символ IN.
3. Установленная очерёдность обслуживания ISO кадра была отправлена или отброшена.
Этот бит очищается, когда читается этот регистр.
ACK_STAT. Состояние подтверждения приёма. Этот бит интерпретируется, когда TX_DONE установлен.
Для не-ISO операций, этот бит показывает статус подтверждения приёма (от главного контроллера) ACK для ранее отправленного пакета. Этот бит сам устанавливается при получении ACK; иначе, он очищается.
Для ISO операций, этот бит устанавливается, если имеет место сравнение младшего байта номера кадра (см. "IGN_ISOMSK" в разделе 7.2.22), и данные были оправлены в ответ на символ IN. Иначе, этот бит сбрасывается, FIFO очищается и устанавливается TX_DONE.
Этот бит также очищается, когда читается этот регистр.
TX_URUN. Ранняя остановка передающего FIFO. Этот бит устанавливается, если передающее FIFO становится пустым во время передачи, и нет новых данных записанных в FIFO. Если так, то контроллер уровня сетевой архитектуры (MAC) выдает ошибку согласования разрядов следующую за EOP. Этот бит сбрасывается, когда читается этот регистр.
7.2.22 Регистр команды передачи X (TXC1, TXC2, TXC3)
Каждая передающая конечная точка (1,3 и 5) имеет регистр команды передачи с битами описанными ниже.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
IGN_ISOMSK |
TFWL1-0 |
RFF |
FLUSH |
TOGGLE |
LAST |
TX_EN |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
r/w |
r/w |
r/w HW |
r/w HW |
r/w |
r/w HW |
r/w HW |
TX_EN. Разрешение передачи. Этот бит разрешает передачу данных из FIFO. Он очищается чипом после передачи одиночного пакета, или подтверждения приёма STALL, в ответ на символ IN. Он должен быть установлен аппаратно-реализованным программным обеспечением для начала передачи пакета.
LAST. Установка этого бита показывает, что входной пакет был записан в FIFO. Это используется для ввода потока данных в FIFO, пока идёт действительная передача. Если бит LAST не установлен и передающее FIFO становится пустым во время передачи, то за EOP следует ошибка согласования разрядов на шине. Пакеты нулевой длины показываются, установкой этого бита, без записи данных в FIFO.
TOGGLE. Функционирование этого бита различается в зависимости от того, используется ли ISO или не-ISO операции.
Для не-ISO операций, он определяет использование PID при передаче пакета. Значение "0" приводит к генерации DATA0 PID, а значение "1" генерирует DATA1 PID. Это бит не изменяется аппаратно.
Для ISO операций, этот бит и младшие биты счётчика кадров (FNL0) действуют, как макса для бита TX_EN для применения предопределения очередности пакета для специальных номеров кадров; т.к. передача возможна только, если бит 0 в регистре FNL установлен в TOGGLE. Если символ IN не получен во время справедливости этого условия, то содержимое FIFO очищается со следующим SOF. Если конечная точка установлена в ISO, то данные всегда передаются с DATA0 PID.
Это бит не изменяется аппаратно.
FLUSH. Запись 1 в этот бит очищает все данные из соответствующей передающей FIFO, сбрасывает конечную точку в состояние Idle, очищает указатели чтения и записи FIFO. Если контроллер уровня сетевой архитектуры (MAC) использует в данный момент FIFO0 для передачи данных, то данные очищаются после завершения передачи. После очистки данных, этот бит сбрасывается аппаратно.
RFF. Перезаполнение FIFO. Установка бита LAST автоматически сохраняет в буфере указатель чтения передачи (TXRP). Когда установлен бит RFF, буферизованный TXRP перезагружается в TXRP. Это позволяет пользователю повторить последний переход, ели не был принят ACK из главного контроллера. Если контроллер уровня сетевой архитектуры (MAC) используется в настоящее время передачу FIFO, TXRP перезагружается только после завершения передачи. После перезагрузки, этот бит сбрасывается аппаратно.
TFWL. Предел предупреждения о нарушениях передающего FIFO. Эти биты определяют, как много байтов может быть передано из соответствующего FIFO перед появлением состояния преждевременной остановки. Если число байтов остающихся в FIFO равно или меньше чем выбранный предел, при котором возникает предупреждение о нарушении, то установлен бит TXWARN в регистре FWEV. Чтобы избежать прерываний, вызванных установкой этого бита, (во время заполнения FIFO перед началом передачи), бит TXWARN устанавливается только тогда, когда разрешена передача из конечной точки (установлен TX_ENx в регистре TXCx). См. таблицу 8.
Таблица 8. Установка предела предупреждения о нарушениях передающего FIFO
TFWL |
Байты остающиеся в FIFO |
1 |
0 |
0 |
0 |
TFWL отключён |
0 |
1 |
4 |
1 |
0 |
8 |
1 |
1 |
16 |
IGN_ISOMSK. Игнорировать маску ISO. Этот бит эффективен, только если конечная точка установлена быть изохронной. Если бит установлен, то он отключает блокировку определённых номеров кадров с функцией чередования бита TOGGLE.Таким образом, данные передаются по приёму следующего символа IN. Если бит сброшен, то данные передаются, когда FNL0 равен TOGGLE. Этот бит очищается по сбросу.
7.2.23 Регистр данных передачи X (TXD1, TXD2, TXD3)
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
TXFD |
- |
w |
TXFD. Передача байтов данных FIFO. Описание обработки данных конечной точки FIFO см. в "Операции передающей конечной точки (TXFIFO1, TXFIFO2, TXFIFO3)" в разделе 6.2.2. Аппаратно-реализованное программное обеспечение ожидает запись только полезного пакета данных. PID и CRC16 вставляются в приходящий поток данных автоматически.
7.2.24 Регистр состояния приёма X (RXS1, RXS2, RXS3)
Каждый канал принимающей конечной точки (2, 4 и 6) имеет один регистр состояния приёма с битами определёнными ниже. Для приёма пакета SETUP после приёма пакета OUT нулевой длины, существует две аппаратных копии этого регистра. Одна содержит состояние приёма пакета нулевой длины, а другая состояние следующего пакета SETUP с данными. Если пакет нулевой длины следует за пакетом SETUP, то первое чтение этого регистра показывает состояние пакета нулевой длины, а второе показывает состояние пакета SETUP.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
RE_ERR |
SETUP |
TOGGLE |
RX_LAST |
RCOUNT3-0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
CoR |
CoR |
CoR HW |
CoR |
r |
RCOUNT. Счётчик приёма. Этот бит показывает количество байтов присутствующих в конечной точке принимающего FIFO. Это поле никогда не превышает значение 15, для конечной точки 0.
RX_LAST. Приняты последние байты. Показывает, что по завершению успешной операции приёма был послан ACK. Он очищается, когда читается этот регистр.
TOGGLE. Функционирование этого бита различается в зависимости от того, используется ли ISO или не-ISO операция.
Для не-ISO операций, значение "0" показывает, что успешно принят пакет имеющий DATA0 PID, а значение "1", что этот пакет имеет DATA1 PID.
Для ISO операций, этот бит показывают младшие биты счётчика кадров (FNL0) после успешного приёма для этой конечной точки.
Это бит сбрасывается в "0" при чтении регистра RXSx.
SETUP. Этот бит показывает, что получен установочный пакет. Этот бит очищается, когда этот регистр читается.
RX_ERR. Ошибка приёма. Когда бит установлен, он показывает ошибку сетевого уровня, такую как ошибка согласования разрядов или CRC. Если этот бит установлен, то аппаратно-реализованное программное обеспечение должно очищать соответствующее FIFO.
7.2.25 Регистр команды приёма X (RXC1, RXC2, RXC3)
Каждая из принимающих конечных точек (2,4 и 6) имеет один регистр команды приёма с битами описанными ниже.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
Зарезерв. |
RFWL |
Зарезерв. |
FLUSH |
IGN_SETUP |
Зарезерв. |
RX_EN |
- |
0 |
0 |
- |
0 |
0 |
- |
0 |
- |
r/w |
- |
r/w |
r/w |
- |
r/w |
RX_EN. Разрешение приёма. Приём символа OUT отключается после каждого приёма пакета данных, или когда возвращается подтверждение приёма STALL в ответ на символ OUT. "1" должна быть записана в этот бит для переразрешения приёма данных. Приём пакета SETUP всегда разрешён. В случае пакетов SETUP туда-и-обратно (для данной конечной точки), где действительный пакет SETUP принимается с другими не SETUP символами, принимающая конечная точка отбрасывает новый пакет SETUP и возвращает подтверждение приёма ACK. Если, в любом другом случае, принимающая машина состояний не может принять пакет SETUP, то не может быть сгенерирован HANDSHAKE.
IGN_SETUP. Игнорирование символа SETUP. Когда этот бит установлен, конечная точка будет игнорировать любой символ SETUP направленный по его сконфигурированному адресу.
FLUSH. Запись 1 в этот бит очищает все данные из управляющей контрольной точки FIFO, сбрасывает конечную точку в состояние Idle, очищает указатели чтения и записи FIFO. Если контроллер уровня сетевой архитектуры (MAC) использует в данный момент FIFO0 для приёма данных, то очистка задерживается до тех пор, пока не закончится приём.
RFWL1-0. Предел предупреждения о нарушениях принимающего FIFO. Эти биты определяют, как много байтов может быть принято из соответствующего FIFO перед появлением состояния преждевременной остановки. Если число пустых байтов остающихся в FIFO равно или меньше чем выбранный предел, при котором возникает предупреждение о нарушении, то установлен бит RXWARN в регистре FWEV.
Таблица 9. Установка предела предупреждения о нарушениях принимающего FIFO
RFWL |
Байты остающиеся в FIFO |
1 |
0 |
0 |
0 |
RFWL отключён |
0 |
1 |
4 |
1 |
0 |
8 |
1 |
1 |
16 |
7.2.26 Регистр данных передачи X (RXD1, RXD2, RXD3)
Каждая из трёх принимающих конечных точек FIFO имеет один регистр данных приёма с битами описанными ниже.
бит 7 |
бит 6 |
бит 5 |
бит 4 |
бит 3 |
бит 2 |
бит 1 |
бит 0 |
RXFD |
- |
r/w |
RXFD. Приём байта данных FIFO. Описание обработки данных конечной точки FIFO см. "Операции приёма конечной точки (RXFIFO1, RXFIFO2, RXFIFO3)" в разделе 6.2.2.
Аппаратно-реализованное программное обеспечение ожидает чтение только полезного пакета данных. PID и CRC16 прерываются принимающей машиной состояний.
7.3 Размещение регистров
Таблица 10 содержит перечень всех регистров устройства, их адреса и их аббревиатуру.
Таблица 10. Карта памяти USBN9603/4
Адрес |
Мнемоника регистра |
Наименование регистра |
0x00 |
MCNTRL |
Главное управление |
0x01 |
CCONF |
Конфигурация генератора тактовой частоты |
0x02 |
Зарезервировано |
0x03 |
RID |
Идентификатор модификации |
0x04 |
FAR |
Функциональный адрес |
0x05 |
NFSR |
Функциональное состояние узла |
0x06 |
MAEV |
Главное событие |
0x07 |
MAMSK |
Главная маска |
0x08 |
ALTEV |
Событие чередования |
0x09 |
ALTMSK |
Маска чередования |
0x0A |
TXEV |
Событие передачи |
0x0B |
TXMSK |
Маска передачи |
0x0C |
RXEV |
Событие приёма |
0x0D |
RXMSK |
Маска приёма |
0x0E |
NAKEV |
Событие NAK |
0x0F |
NAKMSK |
Маска NAK |
0x10 |
FWEV |
Событие, предупреждающее о нарушениях FIFO |
0x11 |
FWMSK |
Маска, предупреждающая о нарушениях FIFO |
0x12 |
FNH |
Старший байт номера кадра |
0x13 |
FNL |
Младший бай номера кадра |
0x14 |
DMACNTRL |
Управление DMA |
0x15 |
DMAEV |
Событие DMA |
0x16 |
DMAMSK |
Маска DMA |
0x17 |
MIR |
Зеркало |
0x18 |
DMACNT |
Счётчик DMA |
0x19 |
DMAERR |
Счётчик ошибок DMA |
0x1A |
Зарезервировано |
0x1B |
WKUP |
Включение |
0x1C - 0x1F |
Зарезервировано |
0x20 |
EPC0 |
Управление конечной точкой 0 |
0x21 |
TXD0 |
Передача данных 0 |
0x22 |
TXS0 |
Состояние передачи 0 |
0x23 |
TXC0 |
Команда передачи 0 |
0x24 |
Зарезервировано |
0x25 |
RXD0 |
Приём данных 0 |
0x26 |
RXS0 |
Состояние приёма 0 |
0x27 |
RXC0 |
Команда приёма 0 |
0x28 |
EPC1 |
Управление конечной точкой 1 |
0x29 |
TXD1 |
Передача данных 1 |
0x2A |
TXS1 |
Состояние передачи 1 |
0x2B |
TXC1 |
Команда передачи 1 |
0x2C |
EPC2 |
Управление конечной точкой 2 |
0x2D |
RXD1 |
Приём данных 1 |
0x2E |
RXS1 |
Состояние приёма 1 |
0x2F |
RXC1 |
Команда приёма 1 |
0x30 |
EPC3 |
Управление конечной точкой 3 |
0x31 |
TXD2 |
Передача данных 2 |
0x32 |
TXS2 |
Состояние передачи 2 |
0x33 |
TXC2 |
Команда передачи 2 |
0x34 |
EPC4 |
Управление конечной точкой 4 |
0x35 |
RXD2 |
Приём данных 2 |
0x36 |
RXS2 |
Состояние приёма 2 |
0x37 |
RXC2 |
Команда приёма 2 |
0x38 |
EPC5 |
Управление конечной точкой 5 |
0x39 |
TXD3 |
Передача данных 3 |
0x3A |
TXS3 |
Состояние передачи 3 |
0x3B |
TXC3 |
Команда передачи 3 |
0x3C |
EPC6 |
Управление конечной точкой 6 |
0x3D |
RXD3 |
Приём данных 3 |
0x3E |
RXS3 |
Состояние приёма 3 |
0x3F |
RXC3 |
Команда приёма 3 |
|