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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 284 285 286 287 288 289 < 290 > 291 292 293 294 295 296 .. 528 >> Следующая

увеличивает счетчик BRKEC и закрывает текущий буфер приема, устанавливает
в его слове состояния бит BR := 1, генерирует прерывание BRK через
регистр событий, если оно разрешено. Если контроллер получил
последовательность BREAK-символов в середине обработки текущего буфера,
то он увеличивает счетчик BRKEC и закрывает текущий буфер приема,
устанавливает в его слове состояния бит BR := 1 и генерирует RX-
прерывание через регистр событий, если оно разрешено. Контроллер также
контролирует длину BREAK-последовательности и записывает измеренное
значение в ячейку BRKLN памяти параметров.
Пользователь может управлять работой приемника при помощи команд ENTER
HUNT MODE, CLOSE RX BD, INIT RX PARAMETERS.
Передача символов SMC UART-контроллером. При передаче UART-конгроллер
получает из буфера FIFO только сам символ, который будет передан в поле
данных. Остальные поля кадра заполняются внутри SCC-контроллера. Во-
первых, контроллер анализирует, какой тип контроля будет применен, и
вычисляет контрольную сумму, которая записывается в бит контроля в кадре
данных. Во-вторых, в формат кадра вводится необходимое число стоп-битов.
После включения передатчика в работу (бит TEN = 1 на рис. 5.48)
контроллер начинает передавать в сеть символы IDLE. Далее контроллер
опрашивает готовность первого буфера BD к передаче. Если буфер готов (бит
R = 1 в его слове состояния), то данные по SDMA-каналу загружаются в
буфер FIFO канала и начинают передаваться в сеть. Если первый буфер не
готов, т. е. бит R = 0, то контроллер передает I DLE-символ и обращается
к буферу повторно через 7-16 периодов тактового сигнала передатчика. Где
задержка обращения к таблице буферов, определяется длиной кадра данных,
на работу с которой запрограммирован контроллер.
Когда все данные из буфера загружены в буфер FIFO, SMC-контроллер
устанавливает в слове состояния текущего буфера биты статуса переданного
кадра и сбрасывает бит готовности R := 0. Если в слове состояния был
установлен бит СМ = 1, то бит R не сбрасывается и содержимое буфера будет
повторно передаваться в сеть при следую-
520
ОРГАНИЗАЦИЯ КОММУНИКАЦИОННЫХ ПРОЦЕССОРНЫХ МОДУЛЕЙ В кмк
щем обращении контроллера к этому буферу при новом цикле опроса таблицы
буферов передачи, и так будет продолжаться, пока пользователь не сбросит
бит R. Если в слове состояния был установлен бит прерывания 1 = 1, то
генерируется прерывание к центральному процессору. Далее контроллер
проверяет готовность следующего буфера передачи в таблице TxBD. Если этот
буфер готов, то данные из него начинают без перерыва передаваться в сеть
сразу же за данными предыдущего буфера. Если же следующий буфер не готов
(бит R = 0), то контроллер начинает передавать IDLE-символы, пока данные
не будут подготовлены.
Если передается первый символ из нового буфера данных, то в слове
состояния буферного дескриптора анализируется бит Р. Если этот бит равен
1 (Р = 1), то перед передачей содержимого буфера передается символ
преамбулы (все биты 1) и на другом конце канала обнаруживают IDLE-
состояние линии связи перед получением данных. Преамбула передается, даже
если длина буфера в BD установлена равной нулю. Преамбула представляет
собой символ такой же длины, что и передаваемые данные, только все биты в
символе равны 1. Если бит Р = 0, то при передаче данных содержимое двух
соседних буферов может передаваться без задержек между буферами.
Если UART-контроллер получил от CPU ядра команду STOP TRANSMIT, то он
передает в сеть содержимое буфера FIFO передачи, затем передает
определенное число символов BREAK, далее он переходит к передаче IDLE-
символов, пока не получит команду RESTART TRANSMIT. BREAK-символ
представляет собой символ установленной длины, у которого все биты равны
0 и отсутствуют стоп-биты. Количество BREAK-символов, которые UART-
контроллер передаст в сеть, указывается пользователем в регистре BRKCR.
После передачи заданного числа BREAK-символов контроллер обязательно
передаст в сеть хотя бы один символ IDLE перед началом передачи
следующего кадра данных. Это необходимо, чтобы приемник смог нормально
распознать старт-бит нового кадра.
Контроллер SMC Transparent. SMC-канал, работающий с протоколом
Transparent, поддерживает более простые режимы работы и меньшие скорости
обмена, чем SCC-канал, работающий с аналогичным протоколом "прозрачной
передачи".
В отличие от SCC-каналов, которые могут работать в прозрачном режиме
только с 8-или 32-битными символами (это определяется при
программировании бита RWF в регистре GSMR), SMC-канал в режиме прозрачной
передачи поддерживает символы длиной от 4 до 16 бит. Биты CLEN в регистре
SMCMR (рис. 5.49) задают длину символа, которая равна (CLEN+1) байт и
должна быть больше четырех.
Если длина символа больше 8 бит, то бит BS в регистре SMCMR определяет,
какой байт данных будет передаваться в сеть первым. В нормальном режиме
работы, если длина символа меньше 8 бит, то бит BS = 0. Если же длина
Предыдущая << 1 .. 284 285 286 287 288 289 < 290 > 291 292 293 294 295 296 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed