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

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

  1. Если принят символ закрывающего флага (Ох7Е для протокола РРР или ОхС1 для протокола IrLAP), то прием кадра данных будет закончен.

  2. При приеме все символы 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-сигнала. Во время приема кадра данных контроллер постоянно проверяет наличие сигнала на линии сЁГ. Если во время приема этот сигнал будет потерян сгГ = 1, то контроллер прекращает прием, закрываеттекущий буфер, устанав­ ливает в слове состояния текущего BD бит потери сигнала CD. CD := 1 и генерирует, если разрешено, прерывание RXF через регистр событий. Эта ошибка имеет самый высокий приоритет, и после ее обнаружения другие ошибки не проверяются, а прием­ ник после установки сигнала cd = 0 переходит в режим «охоты» (поиска нового кадра).

  • Прием ABORT-последовательности. Эта ошибка регистрируется ASYNC HDLC-кон- троллером, когда он получит пару символов 0x70, Ох7Е. При возникновении этой ошибки открытый буфер приема закрывается, в его слове состояния устанавливается бит ошибки АВ := 1 и генерируется, если разрешено, прерывание RXF через регистр собы­ тий. При этом для прерванного кадра CRC-контроль не выполняется. Если ABORT- последовательность была получена, когда не было приема и не было открытых буфе­ ров, в этом случае следующий в таблице буфер приема открывается и тут же закрыва­ ется с установленным битом ошибки АВ = 1 в его слове состояния.

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

589