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

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

Пользователь может остановить передачу данных из буферов, передав AHDLC-кон-троллеру команду STOP TRANSMIT. Эта команда используется, если необходимо изме­нить порядок передачи данных из буферов или если обнаружена ошибка передачи в канале. После получения данной команды AHDLC-контроллер начинает передавать в сеть ASYNC HDLC ABORT-последовательность, которая состоит из ESCAPE-символа (Ox7D) и закрывающего флага. После передачи такой ABORT-последовательности кон­троллер передает в сеть символы IDLE, пока не получит команду возобновления переда­чи RESTART TRANSMIT. Форматы ABORT-последовательности для протоколов РРР и IrLAP приведены в табл. 5.67.

Таблица 5.67 Формат ABORT-последовательности

Протокол

Формат

РРР

IrLAP

0x70, Ох7Е 0x70, ОхС1

При получении команды STOP TRANSMIT контроллер не переходит к передаче из следующего TxBD и текущим остается буфер, передачу которого прервали. Также останавливается передача и данных, которые уже находились в FIFO. В этом отличие ASYNC HDLC-протокола от других протоколов, в которых содержимое FIFO переда­ется в сеть перед остановкой. Пользователь всегда может прочитать в ячейке TBPTR протокол-независимой части памяти параметров SCC-канала О номер, передача из которого прервалась.

Команда INIT TX PARAMETERS используется для инициализации параметров в па­мяти параметров передатчика контроллера.

Прием данных. После включения в работу (бит ENR = 1 в регистре GSMR) приемник ожидает появления кадра данных на линии RXD, анализируя присутствие на линии симво­ла открывающего флага кадра. Обнаружив начало нового HDLC-кадра данных, контрол­лер обращается к следующему буферному дескриптору в таблице и проверяет его готов­ность к приему, т. е. проверяет бит незанятости буфера Е = 1 в слове состояния дескрипто­ра. Если буфер не занят, то контроллер начинает записывать в него данные. Когда буфер будет заполнен, контроллер сбросит бит Е := 0. Если длина текущего кадра данных превы­шает размер буфера (максимальный размер буфера указан в ячейке переменной MRBLR), то производится опрос готовности к приему данных следующего буфера в таблице, и, если он свободен, прием текущего кадра будет продолжен в новый буфер.

Во время приема кадра ASYNC HDLC-контроллер автоматически контролирует при­нимаемый символ, декодируя его в соответствии с заданным алгоритмом.

1) Если код принятого символа находится между 0x00 и 0x1 F и в таблице ячейки RXCTL_TBL памяти параметров для этого символа в соответствующем бите установле­ на «1», то принятый символ считается служебным и отбрасывается. Если соответствую­ щий символу бит равен 0, то символ принимается в нормальном режиме и записывается в память.

  1. Если принят символ control-escape Ox7D, то этот символ отбрасывается, а над сле­ дующим принятым символом выполняется операция «исключающее ИЛИ» с константой 0x20, прежде чем этот символ будет участвовать в подсчете контрольной суммы и будет записан в память.

  2. Если принята пара символов 0x70, 0x70, то первый символ будет отброшен, а второй - декодирован с помощью операции XOR с константой 0x20, а затем записан в память как код Ох5О.

588