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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 344 345 346 347 348 349 < 350 > 351 352 353 354 355 356 .. 528 >> Следующая

длинного кадра также вычисляется контрольная сумма, которая записывается
в последний буфер кадра.
По окончании приема кадра нормальной длины заново вычисляется контрольная
сумма кадра по всем полям внутри ограничивающих флагов, которая
сравнивается с содержимым поля контрольной суммы. Если произошла ошибка
сравнения контрольных сумм, то принятая контрольная сумма записывается в
последний буфер кадра, затем буфер закрывается, в слове состояния
последнего BD устанавливается бит ошибки проверки контрольной суммы CR :=
1 и вырабатывается, если разрешено, RXF-прерывание к центральному
процессору через регистр событий канала. При этом увеличивается счетчик
CRC ошибок в ячейке CRCEC памяти параметров, и приемник переходит в режим
"охоты" (режим поиска нового кадра).
Если проверка контрольной суммы закончилась успешно, то контроллер
устанавливает в слове состояния последнего BD биты состояния кадра,
закрывает буфер и сбрасывает бит свободности этого буфера Е := 0. Далее
контроллер генерирует, если разрешено, прерывание к центральному
процессору, уведомляя его, что кадр получен и находится в памяти, и
переходит в режим приема нового кадра.
При работе с HDLC-контроллером пользователь может запрограммировать
выработку сигналов прерывания по окончании обработки каждого нового
буфера BD или после обработки нескольких буферов, или целого кадра
данных. В СРМ пользователь может разрешить HDLC-контроллеру прерывать
центральный процессор не после приема каждого кадра данных, а только
после приема определенного в ячейке RFTHR-памяти параметров числа кадров.
Подсчет текущего числа принятых кадров производится в ячейке RECNT.
Установив этот режим работы и настроив таймеры на соответствующий режим
работы, пользователь может измерять рабочие параметры канала связи,
например его пропускную способность. Но для того чтобы успешно
использовать этот режим работы, следует заранее подготовить необходимое
число буферов для приема заданного числа кадров без вмешательства
центрального процессора.
Для временного хранения принятой информации каждый HDLC-контроллер имеет
внутренние буферы FIFO. Данные из FIFO по SDMA-каналам под управлением
RISC-контроллера начинают передаваться в соответствующие буферы памяти,
как только будут получены первые 8-32 байта кадра. Если RISC-контроллер
не успевает очищать ячейки FIFO для приема новой информации из сети и в
момент прихода новой порции данных все ячейки FIFO окажутся занятыми, то
возникает ошибка переполнения буферов overrun. При этом контроллер будет
вынужден записать новые данные поверх старых, что приведет к потере
информации. Далее текущий буфер закрывается, в его слове состояния
устанавливается бит ошибки переполнения OV := 1 и через регистр событий
генерируется, если оно разрешено, прерывание к центральному процессору. В
некоторых случаях, если размер FIFO минимален и RISC-контроллер работает
с максимальной загрузкой, это прерывание может возникнуть при приеме и
анализе поля адреса в любом
616
\
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
пакете, даже если этот пакет адресован другому контроллеру. В случае
возникновения ошибки переполнения контроллер после вышеуказанных действий
переходит в режим "охоты" (поиска нового кадра).
Если кадр данных, адресованный данному контроллеру, был принят без
ошибок, но RISC-контроллер не нашел свободных буферов для сохранения
данных, то информация из кадра сбрасывается и увеличивается счетчик
непринятых кадров в ячейке DISFC памяти параметров.
Во время приема кадра данных контроллер постоянно проверяет наличие
сигнала на линии CD . Если во время приема этот сигнал будет потерян (CD
= 1), то контроллер прекращает прием, закрывает текущий буфер,
устанавливает в слове состояния текущего BD бит потери сигнала CD (CD :=
1) и генерирует, если разрешено, прерывание RXF через регистр событий.
Эта ошибка имеет самый высокий приоритет, и после ее обнаружения другие
ошибки не проверяются, а приемник переходит в режим поиска нового кадра
(hunt-режим).
Длина всех полей в HDLC-кадре всегда кратна 8 битам. Если принят кадр с
длиной, не кратной 8, то он сохраняется в буфере, затем буфер
закрывается, устанавливается бит ошибки N0 := 1 в слове состояния BD и
генерируется, если разрешено, RXF-прерывание центрального процессора
через регистр событий контроллера. Результат проверки контрольной суммы
этого кадра игнорируется.
Если во время приема кадра контроллер получил из канала подряд семь и
более единичных бит, то регистрируется ошибка принятия ABORT-
последовательности. Текущий буфер закрывается, в слове состояния BD
устанавливается бит ошибки АВ := 1 и генерируется, если разрешено,
прерывание RXF через регистр событий. Контроллер увеличивает счетчик
принятых ABORT-последовательностей в ячейке ABTSC памяти параметров, и
приемник переходит в режим "охоты". Принятый кадр игнорируется, проверка
его контрольной суммы CRC и кратности 8 битам не производятся.
Предыдущая << 1 .. 344 345 346 347 348 349 < 350 > 351 352 353 354 355 356 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed