Читайте также:
|
|
Этот регистр используется библиотечными подпрограммами обслуживания модуля USB для хранения состояния.
R/W - 0 | R/W - 0 | R/W - 0 | R/W - 0 | R/W - 0 | R/W - 0 | R/W - 0 | R/W - 0 |
4 | 3 | 1 | |||||
Регистр состояния программного обеспечения: «USWSTAT» (адрес 197h)
R = читаемый разряд,
W - записываемый разряд,
U = зарезервированный разряд,
-n = значение после сброса.
Разряды 7-2: Функциональные идентификаторы.
Разряды 1-0: Состояние конфигурации.
Регистры управления оконечными точками (UEPN)
Три регистра управления оконечными точками содержат биты управления для 6 оконечных точек в соответствии с адресом в регистре USTAT, где оконечная точка - симплексное соединение номера оконечной точки и направления. Оконечная точка 0 (ЕР0) связана с конвейером управления, который требуется USB для всех функций (ввода, вывода и установки). Следовательно, после того, как получено прерывание USB_RST, микропроцессор должен записать в UEP0 код 06h. Неиспользуемые оконечные точки и направления должны быть отключены.
U-0 | U-0 | U-0 | U-0 | R/W - 0 | R/W - 0 | R/W - 0 | R/W - 0 |
- | - | - | - | EP_CTL_DIS | EP_OUT_EN | EP_IN_EN | EP_STALL |
Регистры управления оконечными точками: 'UEPn' (адрес 198h-19Ah)
R = читаемый разряд,
W - записываемый разряд,
U = зарезервированный разряд,
-n = значение после сброса:
Разряды 7-4: Зарезервированы, читаются как «0».
Разряды 3-1: EP_CTL_DIS, EP_OUT_EN, EP_IN_EN: Определяют состояние и направление оконечной точки:
EP_CTL_DIS | EP_OUT_EN | EP_IN_EN | Состояние и направление оконечной точки |
X | Отключена | ||
X | Включена только для маркеров ввода | ||
X | Включена только для маркеров вывода | ||
Включена для маркеров ввода и вывода | |||
Включена для маркеров ввода, вывода и установки |
Разряды 0: EP_STALL: Указывает, что оконечная точка остановлена. Этот бит имеет приоритет над всеми другими битами регистра и устанавливается только если EP_IN_EN = 1 или EP_OUT_EN = 1. Обращение к данной оконечной точке по шине будет возвращать взаимодействие ОСТАНОВА. Бит EP_STALL может устанавливается и сбрасывается модулем.
Таблица дескрипторов буферов (BDT)
Дескрипторы буферов и буферы размещены в банке 3 памяти данных микроконтроллера. РIС16С745/765 поддерживает дескрипторы буферов (BD) для следующих оконечных точек:
-EP0 OUT USTAT<00h> UEP0
-EP0 INU STAT<01h> UEP0
-EP1 OUT USTAT<02h> UEP1
-EP1 IN USTAT<03h> UEP1
-EP2 OUT USTAT<04h> UEP2
-EP2 IN USTAT<05h> UEP2
Для эффективного управления связью с оконечной точкой модуль USB имеет в пространстве регистров таблицу дескрипторов буферов (BDT). Дескриптор буфера (BD) для каждой оконечной точки указывает на буфер данных в двухпортовой памяти и состоит из 4 регистров:
- регистр состояния буфера доступный ядру процессора только для записи (BDndST),
- регистр состояния буфера доступный ядру процессора только для чтения (BDndST),
- счетчик байтов буфера (BDndBC),
- начальный адрес буфера (BDndAL).
Где n — симплексное соединение номера оконечной точки и направления в регистре USTAT.
Поскольку буферы доступны и ядру процессора и модулю USB, то для того чтобы различить, кто может модифицировать BD и буфер в памяти системы, используется простой механизм семафора бит UOWN в регистре BDndST.
Если бит UOWN = «0», то доступ к BD и буферу в памяти имеет ядро процессора. Если бит UOWN = «1», то доступ к BD и буферу в памяти принадлежит модулю USB, при этом ядро процессора не должно изменять BD или соответствующий буфер данных.
Дескриптор буфера содержит информацию управления буфером оконечной точки для модуля USB и ядра процессора. Дескриптор буфера, в зависимости от состояния бита UOWN, содержит различные значения.
W - X | W - X | U-X | U-X | W - X | W - X | U-X | U-X |
UOWN | DATA 0/1 | - | - | DTS | BSTALL | - | - |
Дескриптор буфера, регистр состояния, для записи MCU: «BDndST» (адреса 1A0h, 1A4h, 1A8h, 1ACh, 1BOh, 1B4h)
R = читаемый разряд,
W - записываемый разряд,
U = зарезервированный разряд,
С - сбрасываемый разряд,
- n = значение после сброса,
X - не определено
Разряд 7: UOWN: Этот бит определяет, кто в настоящее время владеет буфером. После завершения обработки маркера модуль записывает в этот бит 0. MCU при инициализации BD всегда должен устанавливать этот бит последним.
1 = монопольный доступ к BD модуля USB.
0 = монопольный доступ к BD MCU.
Разряд 6: DATA 0/1: Этот бит переключатель пакетов переданных или полученных данных.
1 = пакет данных 1
0 = пакет данных 0
Разряды 5-4: Зарезервированы, читаются как «X».
Разряд 3: DTS: Установка этого бита разрешает модулю USB выполнить синхронизацию переключателя данных. Если пакет получен с неправильным переключателем, то он будет игнорироваться и буфер останется неизмененным.
1 = выполнять синхронизацию переключателя данных
0 = синхронизации переключателя данных не делать
Разряд 2: BSTALL: Останов буфера. Установка этого бита вызовет передачу взаимодействия ОСТАНОВ. Если установлен бит BSTALL, то USB не использует BD и соответствующий буфер.
Разряды 1-0: Зарезервированы, читаются как «X».
Примечание. Для модификации разрядов не рекомендуется использовать команды BSF, BCF, так как регистр доступен только по записи.
R/W - X | R/W - X | R/W - X | R/W - X | R/W - X | R/W - X | U-X | U-X |
UOWN | DATA 0/1 | PID3 | PID2 | PID1 | PID0 | - | - |
Дескриптор буфера, регистр состояния, для чтения MCU: «BDndST» (адреса 1AOh, 1A4h, 1A8h, 1ACh, 1BOh, 1B4h)
R = читаемый разряд,
W - записываемый разряд,
U = зарезервированный разряд,
С - сбрасываемый разряд
- n = значение после сброса:
X - не определено
Разряд 7: UOWN: Этот бит определяет, кто в настоящее время владеет буфером. После завершения обработки маркера модуль записывает в этот бит 0. MCU при инициализации BD всегда должен модифицировать этот бит последним.
1 = монопольный доступ к BD модуля USB.
0 = монопольный доступ к BD MCU.
Разряд 6: DATA 0/1:Этот бит переключатель пакетов переданных или полученных данных.
1 = пакет данных 1
0 = пакет данных 0
Разряды 5-2: PID <3:0>: Идентификатор пакета. Значение полученное в маркере PID.
Разряды 1-0: Зарезервированы, читаются как «X».
U-X | U-X | U-X | U-X | R/W - X | R/W - X | R/W - X | R/W - X |
- | - | - | - | BC3 | BC2 | BC1 | BC0 |
Дескриптор буфера счетчик байтов: «BDndBC» (адреса 1A1h, 1A5h, 1A9h, 1ADh, 1B1h, 1B51,)
R = читаемый разряд,
W - записываемый разряд,
U = зарезервированный разряд,
С - сбрасываемый разряд,
- n = значение после сброса,
X - не определено
Разряды 7-4: Зарезервированы, читаются как «X».
Разряды 3-0: ВС <3:0>: Счетчик байтов, которые будут переданы по маркеру ввод или получены по маркеру вывод. Диапазон счета от 0 до 8. После завершения обработки маркера вывод или маркера установки модуль USB заполняет это поле фактическим числом полученных байт данных.
Модуль USB использует данные в BD, когда UOWN = 1, которые содержат:
- значение PID Data0 или Datal,
- разрешение синхронизации переключателя данных,
- число байт для передачи или приема,
- начальный адрес буфера.
Ядро процессора использует данные в BD, когда UOWN = 0, которые содержат:
- значение PID Data0 или Data 1,
- полученный маркер PID,
- число переданных или принятых байт.
R/W - X | R/W - X | R/W - X | R/W - X | R/W - X | R/W - X | R/W - X | R/W - X |
BA7 | BA6 | BA5 | BA4 | BA3 | BA2 | BA1 | BA0 |
Дескриптор буфера, начальный адрес буфера: (адреса 1A2h, 1A6h, 1AAh, 1AEh, 1B2h, 1B6h)
R - читаемый разряд,
W - записываемый разряд,
U = зарезервированный разряд,
С - сбрасываемый разряд
- n = значение после сброса: X - не определено
Разряды 7-0: ВА <7:0>: Начальный адрес буфера для данной оконечной точки. Старший разряд 9-разрядного адреса (ВА8) всегда равен 1, что указывает на банк 3, где расположена двухпортовая память модуля USB (1B8h- 1DFh).
Примечание. Этот регистр должен всегда содержать значение в диапазоне B8h-DFh.
Дата добавления: 2015-11-14; просмотров: 46 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Регистры управления и состояния модуля USB | | | Основные функции и подпрограммы |