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

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

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

текущего кадра будет продолжен в новый буфер.
Во время приема кадра ASYNC HDLC-контроллер автоматически контролирует
принимаемый символ, декодируя его в соответствии с заданным алгоритмом.
1) Если код принятого символа находится между 0x00 и 0x1 F и в таблице
ячейки RXCTL_TBL памяти параметров для этого символа в соответствующем
бите установлена "1", то принятый символ считается служебным и
отбрасывается. Если соответствующий символу бит равен 0, то символ
принимается в нормальном режиме и записывается в память.
2) Если принят символ control-escape 0x7D, то этот символ отбрасывается,
а над следующим принятым символом выполняется операция "исключающее ИЛИ"
с константой 0x20, прежде чем этот символ будет участвовать в подсчете
контрольной суммы и будет записан в память.
3) Если принята пара символов 0x7D, 0x7D, то первый символ будет
отброшен, а второй - декодирован с помощью операции XOR с константой
0x20, а затем записан в память как код 0x5D.
588
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
4) Если принят символ закрывающего флага (0х7Е для протокола РРР или 0хС1
для протокола IrLAP), то прием кадра данных будет закончен.
5) При приеме все символы IDLE автоматически удаляются.
После завершения приема кадра данных и удаления из него всех служебных
"transparenb-символов, всех старт- и стоп-битов и всех символов флагов
контроллер сравнивает подсчитанную с помощью 16-битного CRC CCITT-
полинома контрольную сумму со значением, которое было получено в поле
контрольной суммы принятого кадра. Далее контроллер записывает полученную
контрольную сумму в буфер и закрывает буфер. В ячейку длины последнего
буферного дескриптора контроллер заносит длину реально принятого кадра,
устанавливает бит последнего буфера кадра L := 1 в слове состояния
последнего буфера, заполняет биты статуса принятого кадра и сбрасывает
бит незанятости буфера Е := 0, если только бит СМ = 0. Затем контроллер
устанавливает бит RXF в регистре событий, уведомляя через маскируемое
прерывание центральный процессор, что данные приняты и находятся в
памяти. После завершения всех этих действий контроллер начинает поиск
нового кадра данных.
Пользователь может управлять работой приемника ASYNC HDLC-контроллера,
передавая ему команды: ENTER HUNT MODE, CLOSE RX BD, INIT RX PARAMETERS.
После получения команды "поиск нового кадра" контроллер перейдет в
нормальный режим работы при обнаружении в канале одного или более
символов открывающего флага кадра. При приеме AHDLC-контроллер
регистрирует следующие типы ошибок (см. ниже).
• Ошибка переполнения overrun. Для временного хранения принятой
информации каждый AHDLC-контроллер имеет внутренние буферы FIFO размером
8 байт для канала SCC1 и по 4 байта для других SCC-каналов. Данные из
FIFO по SDMA-каналам под управлением RISC-контроллера начинают
передаваться в соответствующие буферы памяти как только будут получены
первые 8 бит кадра. Если RISC-контроллер не успевает очищать ячейки FIFO
для приема новой информации из сети и в момент прихода новой порции
данных все ячейки FIFO окажутся занятыми, то возникает ошибка
переполнения буферов overrun. При этом контроллер будет вынужден записать
новые данные поверх старых, что приведет к потере информации. Далее
текущий буфер закрывается, в его слове состояния устанавливается бит
ошибки переполнения OV := 1 и через регистр событий генерируется, если
оно разрешено, RXF-прерывание к центральному процессору. После этого
контроллер начинает поиск следующего кадра в канале связи.
• Ошибка потери CD-сигнала. Во время приема кадра данных контроллер
постоянно проверяет наличие сигнала на линии со". Если во время приема
этот сигнал будет потерян cd = 1, то контроллер прекращает прием,
закрывает текущий буфер, устанавливает в слове состояния текущего BD бит
потери сигнала CD. CD := 1 и генерирует, если разрешено, прерывание RXF
через регистр событий. Эта ошибка имеет самый высокий приоритет, и после
ее обнаружения другие ошибки не проверяются, а приемник после установки
сигнала cd = 0 переходит в режим "охоты" (поиска нового кадра).
• Прием ABORT-последовательности. Эта ошибка регистрируется ASYNC HDLC-
контроллером, когда он получит пару символов 0x7D, 0х7Е. При
возникновении этой ошибки открытый буфер приема закрывается, в его слове
состояния устанавливается бит ошибки АВ := 1 и генерируется, если
разрешено, прерывание RXF через регистр событий. При этом для прерванного
кадра CRC-контроль не выполняется. Если ABORT-последовательность была
получена, когда не было приема и не было открытых буферов, в этом случае
следующий в таблице буфер приема открывается и тут же закрывается с
установленным битом ошибки АВ = 1 в его слове состояния.
• Ошибка контрольной суммы. Если при подсчете контрольной суммы была
выявлена ошибка, то контроллер записывает принятую контрольную сумму в
буфер, затем
589
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
закрывает буфер и устанавливает бит ошибки проверки CRC суммы CR := 1 в
Предыдущая << 1 .. 326 327 328 329 330 331 < 332 > 333 334 335 336 337 338 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed