Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
диплом / HDLC.doc
Скачиваний:
64
Добавлен:
10.12.2013
Размер:
880.64 Кб
Скачать

Приемник hdlc.

Приемник принимает последовательные данные, определяет границы кадра, и перемещает данные в 32-байтный приемный FIFO, откуда они перемещаются в память с помощью интерфейса SmartDMA или под программным I/O-контролем. SmartDMA автоматически помещает статус кадра в буфер. Программный I/O помещает его в FIFO в конце кадра.

Функции приемника:

  • Детектирование последовательностей и флагов ожидания

  • Распознавание Flag/abort

  • Удаление вставленных передатчиком нулей

  • Проверка CRC

  • Распознавание адреса

Блок-схема приемника:

Приемник HDLC работает с кадрами длиной от 2 байт. Передатчик HDLC требует хотя бы один байт данных, окруженный флагами. CRC длиной 2 байта без данных также образует полноценную передачу.

Детектирование Flag/Abort: перед началом приема кадра должен быть детектирован флаг. Конец кадра и статус сообщаются когда приемник зафиксирует флаг или abort-последовательность. Am186CC может принимать смежные кадры, между которыми только один флаг. В прозрачном режиме, когда flag/abort-разграничение не производится, прием начинается как только приемник начинае т функционировать и продолжается до заполнения приемного FIFO.

Удаление вставленных нулевых бит: между краевыми флагами кадра приемник удаляет нули, которые следуют после пяти единиц подряд

Счетчик принятых байт: подсчитывает чисто принятых между флагами байт. Если это число меньше запрограммированного 4-битного числа, то кадру присваивается статус искаженного и кадр отбрасывается. Приемник отбраковывает очень короткие кадры (меньше двух байт) и не помещает их в приемный FIFO. Короткие кадры (короче величины, указанной в поле MINRL регистра HxRCON0) и очень короткие кадры инициируют генерацию маскируемого прерывания. При превышении количества принятых байт 16-битного программно заданного числа, прием текущего кадра прерывается, выставляется статус ошибки и приемник начинает поиск флага. При работе в прозрачном режиме счетчик отключается.

Полярность синхрочастоты приемника: задается битом RXCINV регистра HxTCON0 независимо от полярности частоты передатчика. Инвертированная полярность рекомендована для использования в режиме DCE.

Статус кадра: в конце приема приемник помещает значение счетчика принятых байт и байт статуса кадра в приемный FIFO. В режиме programmed I/O когда статус кадра становится доступным, генерируется маскируемое прерывание, указываемое в бите REOF регистра HxISTAT0.

Счетчик коротких кадров: регистры HxSFCNT и HxSFCNTP указывают общее количество полученных коротких кадров. Регистр HxSFCNT сбрасывается при чтении, регистр HxSFCNTP нет. В это число входят и очень короткие кадры. При переполнении регистра генерируется маскируемое прерывание. Кадры с ложными адресами не учитываются.

Проверка CRC: когда приемник обнаружил флаг конца, он проверяет 16- или 32-битный CRC. При обнаружении ошибки изменяется соответствующий статусный бит. Приемник поддерживает алгоритмы CRC-CCITT, CRC-16 и CRC-32. Приемник всегда помещает CRC в FIFO с остальной частью кадра (все данные между флагами помещаются в FIFO). Функцию проверки CRC нельзя отключить, но программно можно игнорировать ошибки CRC (третий байт статуса чмтаемый из регистра HxRD). Тип CRC задается в поле CRCTYPE регистра HxCON.

Последовательно-параллельный сдвиговый регистр: выход логики удаления вставленных передатчиком нулей подан на 16-битный сдвиговый регистр, конвертирующий последовательный поток данных в байты. Параллельный выход регистра присоединен к приемному FIFO.

Определение адреса: нужно для определения необходимости приема текущего кадра. Каждый канал HDLC имеет 16-битный адресный регистр (регистры HxA0–HxA3) четыре 16-битных адресных регистров маски (регистры HxA0MSK–HxA3MSK). Регистры маски которые из первых 16 бит данных кадра приемник приемник должен сравнить с адресными регистрами. Если все немаскируемые биты хотя бы одного адреса совпали, приемник принимает кадр; в противном случае кадр отбрасывается и начинается поиск следующего флага. Статусный байт кадра содержит информацию о том, какие адреса являются согласованными.

Счетик кадров с неудачными адресами: регистры HxMACNT и HxMACNTP хранят число кадров с несогласованными адресами. Регистр HxMACNT сбрасывается при чтении, регистр HxMACNTP нет. При переполнении счетчика генерируется маскируемое прерывание. На предмет корректного адреса проверяются все кадры длиннее двух байт.

Приемный FIFO: состоит из 32-байтного буфера FIFO, логики конца кадра и логики запроса DMA.

Интерфейс приемного FIFO: для разгрузки приемного FIFO приемник пользуется programmed I/O или контроллером DMA. В режиме programmed I/O бит RDATA1 регистра HxISTAT0 индицирует готовность данных в FIFO для чтения, при этом генерируется маскируемое прерывание. Бит REOF регистра HxISTAT0 и прерывание показывают когда статус последнего полученного кадра доступен для чтения из приемного FIFO и данные недоступны для чтения. Данные следующего кадра недоступны до тех пор пока бит статуса не будет сброшен. Интерфейс SmartDMA автоматически перемещает статус кадра в в буферные дескрипторы в конце кадра.

Порог приемного FIFO: поддерживаются пороги в 1, 8, 16 и 32 байта. Значение порога задается в поле RTHRSH регистра HxRCON0. SmartDMA не перемещает данные в память до тех пор, пока порог не будет достигнут, что индицируется битом RTHRES регистра HxISTAT0. При достижении порога FIFO, статус готовности данных стоит до тех пор, пока FIFO не опустеет. В конце кадра FIFO выводит остаток кадра даже если порог не достигнут.

Receive-Data Available: при работе в режиме programmed I/O бит RDATA1 регистра HxISTAT0 указывает на доступность данных в приемном FIFOнезависимо от выбранного порога. Возможна также выработка прерывания готовности данных.

Receive End-of-Frame: при работе в режиме programmed I/O бит REOF регистра HxISTAT0 указывает на наличие в FIFO любых статусных байтов (что означает конец кадра). От значения порога эта индикация не зависит. Возможна также выработка прерывания готовности данных статуса.

Пекреполнение приемного FIFO: при переполнении FIFOпрекращается прием текущего кадра, снимается сигнал RTR и генерируется прерывание. Контроллер устанавливает в FIFO статус переполнения когда для этого освободится место. Бит ROFLO регистра HxISTAT1 указывает не переполнение FIFO.

Остаток битов (Bit Residue): если количество битов кадра не кратно 8, приемник бракует кадр и выводит статус ошибки в третий байт статуса, читаемый из регистра HxRD.

Разрешение функционирования приемника: когда приемник отключен, прием текущего кадра не прекращается. После окончания приема сигнал Ready-to-Receive (RTR) снимаетсяи генерируется маскируемое прерывание, после чего данные не принимаются. При включении выставляется сигнал RTR и производится поиск флага старта кадра. При отключении в режиме прозрачности сигнал RTR снимается немедленно и прием прекращается а при включении выставление сигнала RTR и начало приема происходят немедленно. Отключение производится сбрасыванием бита HREN регистра HxRCON0 в 0.

Фильтрация принятых данных (Receive Reject): в этом режиме приемник немедленно останавливает прием данных и выводит статус ошибки если произошел сбой. Сигнал RTR не затрагивается. Если эта функция заблокирована, приемник просто начинает поиск флага. Для активизации этого режима бит RREJECT регистра HxRCON0 устанавливается в 1.

Остановка приемника: при этом прекращается прием данных и снимается сигнал RTR. Генерируется статус ошибки если это произошло во время приема кадра. Для остановки приемника бит RSTOP регистра HxRCON0 устанавливается в 1.

Статус связи: возможные состояния: флаг ожидания, последовательность ожидания (mark-idle), сброс (abort), прием. Для каждого состояния приемник может генерировать маскируемое прерывание при вхождении в него. После приема флага, продолжительная серия единиц переводит приемник в состояние mark-idle без перехода в состояние abort. После идентефикации какого-либо состояния приемник отражает статус своего последнего состояния. Чтение состояния производится из битов RTRS, ABORTS MARKIS, FLAGS и FRAMES регистра HxSTATE.

Порядок принятых битов: возможен порядок следования битов, когда сперва принимаются более значимые биты - MSB (Most significant bit) или когда первыми передаются младшие биты - LSB (Least significant bit). Для приема MSB-first бит RMSBF регистра HxRCON0 устанавливается в 1. Эта возможность обычно используется только в прозрачном режиме.

Прозрачный режим: в этом режиме данные из FIFO постуают в память сразу же, не проходя через процедуру удаления нулей, не производится выявление flag/abort, не проверяется CRC. Для активации этого режима бит TRANSM регистра HxCON устанавливается в 1.

Соседние файлы в папке диплом