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

Поддержка протоколов в коммуникационных контроллерах

О 1 23456 7 8 9 10 11 12 13 14 15 FLC 0 | 1 1 | 0 0 0 | 0 [ 0~ 0 [ 0 | 0 ~0~ | 0 | 0 | 0 |

Рис. 5.102. Формат регистра режима PSMR ASYNC HDLC-протокола

Для обеспечения указанного выше формата UART-кадра в регистре режима AHDLC-npo-токола PSMR (рис. 5.102) биты CHLN1 и CHLNO должны быть установлены в «1». Для других протоколов эти биты определяют число битов в передаваемом символе данных.

Бит FLC в регистре PSMR определяет тип контроля при передаче данных. Если бит FLC = 0, то идет обыкновенная передача. Если бит FLC = 1, то производится асинхрон­ный контроль передачи. При этом, если сигнал cts станет равным единице, то переда­ча останавливается после завершения передачи текущего символа. Если сигнал стз = 1 после середины передачи текущего символа, то передача может остановиться после передачи следующего символа. Пока стз = 1, могут передаваться символы IDLE. Когда сигнал стз восстановится (стз = 0), передача продолжится с того места, где она оста-новилась. Таким образом, при передаче регистрируется всего одна ошибка -это потеря сигнала стз . При этом передача прерывается, буфер закрывается, устанавливается признак ошибки СТ = 1 в слове состояния буфера BD и устанавливается бит ТХЕ преры­вания в регистре событий SCCE. После получения команды RESTART TRANSMIT пере­дача возобновляется из следующего TxBD.

Отличия между протоколами HDLC и ASYNC HDLC перечислены ниже.

• Для AHDLC-контроллера нет ограничения на максимальную длину принимаемого кад-

ра, так как принимаются все символы между открывающим и закрывающим флагами. Таким образом, не существует механизма ограничения числа байтов принимаемых в буфер данных, и все данные будут записаны в память даже из кадра с длиной, пре­вышающей максимальную.

  • Если во время приема кадра произошла одна из ошибок приема, то принятый кадр игнорируется и не записывается в память. Таким образом, счетчик принятых байтов регистрирует только кадры, записанные в память.

  • Команда GRACEFUL STOP TRANSMIT не используется.

  • Счетчики ошибок контрольной суммы CRCEC и ошибок принятия ABORT-последова- тельностей в ASYNC HDLC-контроллере не используются.

Особенности программирования регистра GSMR для ASYNC HDLC-контроллера перечислены ниже.

  • Бит RFW := 1. Для AHDLC-контроллера устанавливается размер буферов FIFO, рав­ ный 8 байтам для канала SCC1 и 4 байтам для других SCC-каналов. Размер ячейки буфера равен 8 битам.

  • В битах TDCR и RDCR должен быть задан коэффициент внутреннего увеличения такто­ вой частоты приемника и передатчика. Для AHDLC-контроллера допустимые значения коэффициента 8х, 16х и 32х. Но если используется протокол IrLAP, то должен быть выб­ ран коэффициент 16х (биты TDCR = RDCR := 10).

При работе с ASYNC HDLC-протоколом в регистр синхронизации DSR должен быть записан код Ох7Е7Е.

Передача символов. При включении в работу передатчика AHDLC-контроллер про­веряет бит готовности R первого буфера BD-дескриптора. Если бит R = 1, то контроллер читает данные из памяти по SDMA-каналам в буфер FIFO канала передачи и начинает передавать их в канал. Перед началом передачи данных из нового кадра контроллер добавляет к кадру открывающий флаг. Набор символов, которые могут быть переданы по AHDLC-каналу, ограничен рекомендациями RFC 1549.

585