Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 524 по 631.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
2.54 Mб
Скачать

Коммуникационные микроконтроллеры и системы на их основе

Когда все данные текущего буферного дескриптора переданы и в слове состояния уста­новлен бит последнего дескриптора пакета L = 1 (Last), то контроллер добавляет к пакету поле контрольной суммы и завершает передачу пакета.

В ответ на передачу пакета данных USB-контроллер ожидает от хоста получения паке­та подтверждения. Если в течение определенного времени подтверждение не получено, то в слове состояния последнего дескриптора переданного пакета устанавливается бит ТО := 1 (Time Out).

Обратите внимание, что пользователь должен самостоятельно заполнять поля DATAO/ DATA1 PID в передаваемом пакете.

Основные ошибки, регистрируемые при передаче, перечислены ниже.

  • Незаполнение буфера FIFO передатчика (underrun). При возникновении этой ошибки контроллер специально нарушает процедуру вставки бит-стаффинга, прекращает пе­ редачу из буфера, закрывает буфер, устанавливает бит ошибки UN := 1 в слове состо­ яния дескриптора и устанавливает бит прерывания ТХЕ в регистре событий USB-кон- троллера.

  • Истек тайм-аут ожидания ответа (Timeout). Если установлен бит RTE = 1 в регистре конфигурации, то при возникновении этой ошибки USB-контроллер делает попытку по­ вторной передачи пакета, на который не пришло подтверждение. Если же бит RTE = О или вторая попытка повторной передачи тоже завершилась неудачей, то контроллер закрывает буфер передачи, устанавливает бит ошибки ТО := 1 в слове состояния деск­ риптора и устанавливает бит прерывания ТХЕ в регистре событий USB-контроллера.

  • Данные для передачи не готовы (TxData not Ready). Данная ошибка возникает, когда контроллер получил IN-маркер, а буфер FIFO передачи соответствующей конечной точки пуст, или если конечная точка запрограммирована на посылку подтверждений NAK или STALL. При обработке данной ошибки контроллер устанавливает бит преры­ вания ТХЕ в регистре событий USB-контроллера.

Прием служебных маркеров. При приеме маркера SOF (Start of Frame) USB-кон­троллер регистрирует маскируемое прерывание SOF и увеличивает значение в ячейке FRAMEJM в памяти параметров (рис. 5.66), подсчитывая количество принятых маркеров SOF. Если SOF-маркер был принят без ошибок, то в ячейке FRAMEJM будет установлен битУ:=1.

Прием маркера PRE USB-контроллер выполняет (т. е. не игнорирует этот пакет) толь­ко при работе в режиме host (но генерировать PRE-маркеры в режиме host контроллер не может). Появление этого маркера сообщает о начале низкоскоростной передачи данных.

Настройка USB-контроллера в МРС823. Память параметров USB-контроллера. Память параметров USB-контроллера состоит из двух частей: память основных пара­метров USB-контроллера (табл. 5.39) и память параметров каждой из конечных точек (табл. 5.40). Память основных параметров обычно располагается в области протокол-независимых параметров 8СС2-контроллера по адресу, который вычисляется как USBBase = (IMMR & OxFFFFOOOO)+Ox3COO.

01 2 3 4 5 6 7 В 9 10 11 12 13 14 15 I V I Зарезервировано Frame Number I

Рис. 5.66. Формат ячеек FRAME_N 540