Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 330

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 324 325 326 327 328 329 < 330 > 331 332 333 334 335 336 .. 528 >> Следующая

принимаемых в буфер данных, и все данные будут записаны в память даже из
кадра с длиной, превышающей максимальную.
• Если во время приема кадра произошла одна из ошибок приема, то принятый
кадр игнорируется и не записывается в память. Таким образом, счетчик
принятых байтов регистрирует только кадры, записанные в память.
• Команда 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 должен
быть записан код 0х7Е7Е.
Передача символов. При включении в работу передатчика AHDLC-контроллер
проверяет бит готовности R первого буфера BD-дескриптора. Если бит R = 1,
то контроллер читает данные из памяти по SDMA-каналам в буфер FIFO канала
передачи и начинает передавать их в канал. Перед началом передачи данных
из нового кадра контроллер добавляет к кадру открывающий флаг. Набор
символов, которые могут быть переданы по AHDLC-каналу, ограничен
рекомендациями RFC 1549.
585
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
Открывающий флаг BOF Адрес Контроль Данные Контрольная сумма FCS
Закрывающий флаг EOF
8 бит 8 бит 8 бит Мх8 бит 16 бит 8 бит
Рис 5.103. Формат кадра ASYNC HDLC-протокола
Формат поля, флаг задается пользователем в ячейке BOF памяти параметров.
Рекомендованные значения: для протокола РРР - 0х7Е, для протокола IRLAP
(infra-red link access protocol) - ОхСО.
Когда контроллер обнаружит последний буфер BD кадра данных (буфер в слове
состояния которого будет установлен бит L = 1), то он подсчитывает
контрольную сумму кадра CRC и передает ее в канал, а затем передает
закрывающий флаг. Формат закрывающего флага задается пользователем в
ячейке EOF памяти параметров. Рекомендованное значение для протокола РРР
- 0х7Е, для протокола IRLAP - 0хС1.
Далее, если сброшен бит продолжения СМ = 0 в слове состояния последнего
буфера BD, то AHDLC-контроллер устанавливает в слове состояния последнего
буфера кадра биты статуса передачи кадра и сбрасывает бит готовности
буфера к передаче R := О.
Если в слове состояния BD был установлен бит I = 1, то контроллер
генерирует ТхВ-прерывание через регистр событий. Таким образом,
прерывание может регистрироваться после передачи буфера, группы буферов
или после окончания передачи всего кадра.
Если в слове состояния буферного дескриптора установлен бит продолжения
СМ = 1, то после передачи данных из этого буфера будут установлены биты
статуса передачи, но бит готовности кадра к передаче сбрасываться не
будет, т. е. R = 1. После передачи буфера с СМ = 1 контроллер переходит к
передаче следующего буфера BD. Если он еще не готов, т. е. бит R = 0, то
контроллер будет ожидать его готовности. Формат кадра ASYNC HDLC-
протокола представлен на рис. 5.103.
Открывающий и закрывающий флаги вставляются при передаче данных и
удаляются контроллером при приеме. Контроллер принимает кадры только с
одним разделяющим флагом между кадрами. Если между кадрами передается
несколько символов флага, то контроллер будет их игнорировать. В ячейке
NOF памяти параметров хранится число N, которое определяет, сколько N+1
открывающих флагов будет передано перед кадром.
Поле адреса может быть заполнено, только если оно получено при передаче
из буфера данных, у которого в слове состояния буферного дескриптора
установлен бит А = 1. RISC-контроллер не занимается в своей
микропрограмме вопросами вставки, распознавания и контроля адресов. Все
эти функции должны быть возложены на центральный процессор.
То же самое относится и к полю контроля. RISC-контроллер не выполняет
функции обработки этого поля. Он только заполняет его при передаче данных
из буфера, если в слове состояния буферного дескриптора указано, что
буфер содержит контрольный символ (бит С = 1). Всей обработкой данных из
этого поля должен заниматься центральный процессор.
При передаче контрольная сумма кадра FCS (Frame Control Sequence)
автоматически добавляется к кадру данных перед закрывающим флагом.
Контрольная сумма вычисляется над содержимым первоначального кадра до
добавления в него символов "прозрачности", старт- и стоп-битов или
символов флагов. Для формирования контрольной суммы контроллер использует
16-битный образующий полином циклического кода. В ячейке C_MASK памяти
параметров хранится константа этого полинома 0x0000F0B8, а в ячейке
Предыдущая << 1 .. 324 325 326 327 328 329 < 330 > 331 332 333 334 335 336 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed