Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по фирмам > Texas Instruments > Интерфейсные ИС > Микросхемы с USB |
|
||||||||||||||
4.0 Поддержка прямого доступа к памяти (DMA)Устройство поддерживает DMA передачу с внешним контроллером DMA из/в 1…6 конечных точек. Этот режим использует выводы устройства DRQ и DACK в дополнении к выводам параллельного интерфейса RD или WR и выводов данных D7-0. Режим DMA может использоваться только с режимом параллельного интерфейса (MODE1 должен быть заземлён). Адрес чтения или записи генерируется внутри и состояние вывода A0/ALE игнорируется во время цикла DMA. Логика поддержки DMA имеет более низкий приоритет, чем параллельный интерфейс. CS должен оставаться неизменным во время цикла DMA. Если CS становится активным, то DACK игнорируется и выполняется обычные операции чтения/записи. Только одна конечная точка может быть доступна в любой момент времени для выдачи запроса DMA, когда данные принимаются или отправляются. Поддерживаются два различных режима DMA: стандартный и автоматический.
1. Локальное CPU программирует контроллер DMA для обходного режима передачи. В этом режиме, передача осуществляется только, когда устройство запрашивает их через вывод DRQ. Данные читаются/записываются из/в устройство передающее/принимающее FIFO и записывает/читает в/из локальной памяти во время такой же обработки запроса шины. 2. Счётчик адреса DMA программируется в точку расположения блока памяти в локальной совместно используемой памяти, а регистр Byte Count программируется числом байтов в блоке, который будет передаваться. Если требуется автоматическая обработка ошибок, то её нужно разрешить в этой точке вместе с счётчиком обработки ошибок. В дополнении пользователю нужно установить соответствующий разрешающий бит конечной точки. 3. Разрешающий бит DMA и биты источника DMA устанавливаются в регистре DMACNTRL. 4. Главная USB может теперь выполнять пересылку большого массива данных USB или изохронных данных по шине USB для приёма FIFO или передачи из FIFO в устройство. 5. Если достигнут предупредительный предел FIFO или завершена передача/приём, то инициализируется запрос/подтверждение последовательности DMA для предопределённого числа байтов. Время, за которое возникает запрос DMA, зависит от выбранного режима DMA (контролируемого битом DMOD в регистре DMACNTRL), текущее состояние конечной точки FIFO, и биты разрешения предупреждения FIFO. Запрос DMA может возникнуть немедленно. 6. После того как контроллер DMA подтвердил захват шины, он управляет верным адресом памяти и устанавливает DACK и RD или WR, таким образом, передача байта из принимающего FIFO в память, или из памяти в передающее FIFO. Этот процесс продолжается до тех пор, пока счётчик байтов DMA, внутри контроллера DMA, заполнится нулями. 7. После передачи запрограммированного количества данных, аппаратно-программное обеспечение должно делать одно из следующего (зависит от передачи направления и режима): - Устанавливать очерёдность количества данных для передачи установкой бита TX_EN в регистре TXCx. - Установить маркер окончания пакета установкой бита TX_LAST в регистре TXCx. Возобновление разрешения приёма установкой бита RX_EN в регистре RXCx. - Проверить если был послан последний байт пакета (бит RX_LAST в регистре RXSx). Передача DMA может быть остановлена в любое время сбросом бита разрешения запроса DMA. Если бит разрешения запроса DMA очищен во время середины цикла DMA, то текущий цикл завершён до того, как запрос DMA прерван.
Рисунок 8. Операции передачи в стандартном режиме DMA
Рисунок 9. Операции приёма в стандартном режиме DMA 4.2 Режим автоматического DMA (ADMA) Режим ADMA позволяет CPU для независимой передачи большого массива данных или изохронных потоков данных на или из шины USB. Приложения контроллера DMA, совместно с логикой ADMA, может разделить большое количество данных и передачи их в (размер FIFO) пакетах через USB. Количество передаваемых в потоке байтов должно быть размером по модулю 64. Максимальное количество данных ограничивается размером 256*64 байта = 16 Кб. Для разрешения ADMA передачи, следующие шаги должны быть выполнены: 1. Локальное CPU программирует контроллер DMA для обходного режима передачи. В этом режиме, передача осуществляется только, когда устройство запрашивает их через вывод DRQ. Данные читаются/записываются из/в устройство передающее/принимающее FIFO и записывает/читает в/из локальной памяти во время такой же обработки запроса шины. 2.Счётчик адреса DMA программируется в точку расположения блока памяти в локальной совместно используемой памяти, а регистр Byte Count программируется числом байтов в блоке, который будет передаваться. Регистр счёта DMA должен быть сконфигурирован количеством пакетов, которые нужно отправить или принять. Если требуется, регистр автоматической обработки ошибок должен быть также сконфигурирован в это время. 3. Разрешающий бит ADMA должен быть установлен прежде или в то же время как и разрешающий бит DMA. 4. Бит разрешения запроса DMA и биты источника DMA устанавливается в устройстве. Соответствующая конечная точка разрешающего бита должна также быть установлена. 5. Главная USB может теперь выполнять пересылку большого массива данных USB или изохронных данных по шине USB для приёма в FIFO или передачи из FIFO. Пункты с 5 по 7 нормального режима DMA выполняются автоматически. ADMA останавливается либо когда получен последний пакет или когда регистр счёта DMA заполняется нулями.
Для использования режима ADMA для передачи и приёма последовательности см рисунки 10 и 11. Основные временные характеристики чтения и записи DMA см. на рисунках 12 и 13.
Рисунок 10. Операции передачи, использующие режим ADMA
Рисунок 11. Операции приёма, использующие режим ADMA Рисунок 12. DMA запись в USBN9603/4 Рисунок 13. DMA чтение из USBN9603/4
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|