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

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

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

приемник принимает кадр, длина которого превышает максимальную длину,
заданную в ячейке MFLR памяти параметров. При возникновении этой ошибки
лишние байты кадра отбрасываются и не сохраняются в буфере памяти, в
буферный дескриптор записывается длина полного кадра между двумя флагами
и далее прием продолжается в обычном режиме. При работе с протоколом
Transparent прерывание MRF не регистрируется.
При работе QMC-протокола регистрируются два типа глобальных ошибок, общих
для всех каналов: ошибка незаполнения передатчика GUN (Global
transmitting underrun), когда передача многобуферного кадра прекращается
из-за неподготовленности очередных данных, и ошибка переполнения
приемника GOV (Global receiver overrun), когда приемник не успевает
принимать поступающие из сети данные. При возникновении ошибки GUN-
контроллер передает во временной слот не менее 16 единиц, генерирует
запрос на
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
V W NID IDL - Номер канала MRF UN RXF BSY тхв
RXB
Рис. 5.101. Общий формат регистра событий канала в очереди прерываний для
QMC-
контроллера
0 1 2 3 4 5 6 7
- - - - IQOV GINT GUN GOV
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
прерывание и устанавливает бит GUN в регистре событий SCCE SCC-канала,
останавливает передачу данных во всех логических каналах и начинает
передавать в канал или символы IDLE или символы FLAG в зависимости от
типа используемого протокола. При возникновении ошибки GOV контроллер
обновляет значение в ячейке RSTATE (бит 20 указывает, что прием
остановлен), генерирует запрос на прерывание и устанавливает бит GOV в
регистре событий SCCE SCC-канала, останавливает прием данных во все
буферы всех каналов и ожидает, что центральный процессор сбросит в
исходное состояние вначале ячейку ZDSTATE, а затем ячейку RSTATE.
Другой тип ошибок связан со скоростью передачи данных по SDMA-каналам
внутри контроллера. Ошибка bus latency регистрируется, когда SDMA-
контроллер не успевает освобождать FIFO приемника, и новые данные
записываются в буфер поверх старых, что ведет к потере данных.
Такие же ошибки незаполнения (бит UN в ячейке таблицы прерываний) и
переполнения могут быть зарегистрированы для каждого логического канала в
отдельности с использованием ячейки таблицы прерываний. При возникновении
ошибки незаполнения контроллер передает во временной слот не менее 16
единиц, генерирует запрос на прерывание и устанавливает бит UN в ячейке
прерывания канала, останавливает передачу данных и начинает передавать в
канал или символы IDLE или символы FLAG в зависимости от настройки
регистра режима.
Бит RXF устанавливается в "1", если получен завершенный HDLC-кадр, он
сохранен в памяти и обновлена информация в буферном дескрипторе. Далее
декрементируется счетчик GRFCNT для генерации запроса на прерывание. Если
во время приема кадра получена последовательность ABORT, состоящая
минимум из семи единиц, буфер закрывается и устанавливаются биты RXB =
RXF := 1 в регистре прерываний и бит АВ := 1 в слове состояния буферного
дескриптора. При работе с протоколом Transparent прерывание RXF не
регистрируется.
Если принят корректный кадр данных, но нет буферов для его сохранения, то
регистрируется событие переполнения приемника, формируется условие
занятости (busy condition) и устанавливается бит BSY := 1. После этого
приемник выключается и прекращает прием данных.
Если текущий буфер данных успешно передан, то регистрируется событие и
устанавливается бит ТХВ := 1. Но этот бит устанавливается, а прерывание
генерируется только после того, как в FIFO-буфер передатчика будет
записано заданное количество символов PAD или будет записан один
закрывающий флаг, если в слове состояния дескриптора бит PAD = 0. Таким
образом, время начала TXB-прерывания зависит от времени передачи
закрывающего флага на линию TXD.
При получении по сети полного буфера данных устанавливается бит события
RXB := 1.
Инициализация QMC-контроллера.
1. Проинициализировать регистр настройки последовательного интерфейса
SIMODE. Установить нормальный режим работы (биты SDMx:=00), выключить
механизм grant (бит GMx := 0) и сбросить бит STZx 0. Остальные биты -
SMCx, SMCxGS, RFSDx, DSCx, CRTx, CEx, FEx и TFSDx - устанавливаются в
соответствии с системными установками для выбранного основного
коммуникационного протокола. Обычно устанавливают CRTa = RFSDa = TFSDa :=
1, включая общую синхронизацию для приемника и передатчика с задержкой в
1 бит при обработке кадра.
2. Проинициализировать регистр синхронизации последовательного интерфейса
SICR. Сбросить бит GRx := 0, выключив механизм подтверждений (grant), и
установить бит SCx := 1, подключив канал к SCCx мультиплексору TSA. Так
как SCC-канал будет работать в мультиплексируемом режиме, также требуется
установить биты RxCSx и TxCSx, выбрав источник тактирования для приемника
и передатчика канала.
578
w
ПОДДЕРЖКА ПРОТОКОЛОВ В КОММУНИКАЦИОННЫХ КОНТРОЛЛЕРАХ
3. Сконфигурировать выводы параллельного порта А для работы с сигналами
Предыдущая << 1 .. 319 320 321 322 323 324 < 325 > 326 327 328 329 330 331 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed