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

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

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

SCC base+34 C_MASK 32 Константа CRC
SCC base+38 C_PRES 32 Начальные значения CRC
SCC base+3C DISFC 16 Счетчик непринятых кадров
SCC base+3E CRCEC 16 Счетчик ошибок контрольной суммы CRC
SCC base+40 ABTSC 16 Счетчик принятых ABORT-последовательностей
SCC base+42 NMARC 16 Счетчик несовпадений адресов при приеме
SCC base+44 RETRC 16 Счетчик переданных кадров
SCC base+46 MFLR 16 Максимальная длина кадра
SCC base+48 MAX_cnt 16 Текущая длина кадра
SCC base+4A RFTHR 16 Число принятых кадров до прерывания
614
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
Продолжение табл. 5.77
Адрес Название Размер, бит Описание
SCC base+4C RFCNT 16 Счетчик принятых кадров
SCC base+4E НМ AS К 16 Регистр маски адресов
SCC base+50 HADDR1 16 Адрес, заданный пользователем
SCC base+52 HADDR2 16 Адрес, заданный пользователем
SCC base+54 HADDR3 16 Адрес, заданный пользователем
SCC base+56 HADDR4 16 Адрес, заданный пользователем
SCC base+58 ТМР 16 Ячейка временного хранения
SCC base+5A ТМР_МВ 16 Ячейка временного хранения
Примечание. Все переменные в таблице, кроме ячеек MAX_cnt, RFCNT, ТМР и
ТМР MB,
инициализируются пользователем до начала работы с HDLC-контроллером.

Прием данных. При приеме данных HDLC-контроллер в МРС860 может без
вмешательства центрального процессора принимать до 196 кадров, удалять
открывающие и закрывающие флаги, распознавать, кому адресован пакет,
проверять контрольную сумму и контролировать максимальную длину пакета.
После включения в работу приемник ожидает получение открывающего флага
кадра. Когда флаг получен, далее контроллер проверяет содержимое поля
адреса, чтобы определить, ему адресован пакет или нет. Для операций с
адресами в памяти параметров HDLC-контроллера выделены четыре регистра
адреса HADDR1-HADDR4 и один регистр маски адреса HMASK. Контроллер
проверяет адрес, полученный в пакете, на совпадение с одним из четырех
допустимых адресов, при этом учитывается содержимое регистра маски. Если
некоторый бит регистра маски равен единице, то при сравнении адресов в
этих битах в регистрах HADDR и в поле адреса принятого пакета должно быть
совпадение. Если бит в регистре маски равен нулю, то при сравнении
адресов совпадение этих битов необязательно. Например, если необходимо
контролировать все 16 разрядов адреса в пакете, то регистр маски HMASK =
OxFFFF, если же достаточно контролировать только восемь младших разрядов
адреса, то HMASK = OxOOFF. Маскирование отдельных разрядов адреса при
сравнении часто используется при работе с групповыми адресами. Если
пользователь желает установить для работы с контроллером только один
сетевой адрес, то во все регистры HADDRi необходимо записать одно и то же
значение единственного адреса. HDLC-контроллер допускает работу с
широковещательными адресами, для этого в одной из ячеек HADDRi достаточно
записать широковещательный (broadcast) адрес OxFFFF.
Если пакет принят без ошибки, но совпадения адресов в регистрах и в поле
адреса пакета не произошло, то пакет игнорируется и увеличивается счетчик
непринятых пакетов в ячейке NMARC памяти параметров HDLC-контроллера.
Если совпадение адреса в принятом пакете с одним из допустимых адресов
произошло, то содержимое пакета, начиная с поля адреса, записывается в
память. Для этого HDLC-контроллер проверяет готовность следующего буфера
BD для записи в него данных. Если бит незанятости в слове состояния BD Е
= 1, то контроллер производит запись информации в этот буфер по каналам
SDMA. После заполнения текущего буфера контроллер сбрасывает бит Е := 0
и, если установлен бит прерывания в слове состояния текущего BD I = 1,
вырабатывает прерывание к центральному процессору, чтобы он мог начать
обработку данных из этого буфера. Если же прием текущего кадра еще не
закончен, то контроллер проверяет, свободен ли следующий буфер BD в
таблице дескрипторов, чтобы продолжить запись информации в данный буфер.
Этот процесс повторяется, пока не будет принят весь кадр данных.
615
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
Во время приема данных HDLC-контроллер контролирует длину принимаемого
кадра (размер полей кадра в байтах между ограничивающими флагами).
Пользователь может в ячейке MFLR памяти параметров задать максимально
допустимую длину кадра данных для этой сети. Если длина текущего кадра
достигла этого предела, прием кадра в буфер прекращается и в слове
состояния последнего BD устанавливается бит приема длинного кадра LG :=
1. Далее контроллер, не принимая данные из кадра, дожидается окончания
кадра, устанавливает в слове состояния последнего BD соответствующие биты
статуса принятого кадра и записывает длину реально принятого кадра в
последний буфер кадра. В ячейке MAX_CNT памяти параметров вычитающий
счетчик ведет подсчет текущей длины принятого кадра. При начале приеме
нового кадра в эту ячейку загружается значение максимальной допустимой
длины кадра MAX_CNT := MFLR. Для полученной и записанной в буфер части
Предыдущая << 1 .. 343 344 345 346 347 348 < 349 > 350 351 352 353 354 355 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed