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

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

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

используется контроль по четности.
Прием данных SMC UART-контроллером. Если SMC-канал настроен на работу с
протоколом UART, то параметры конкретного протокола хранятся в протокол-
ориентирован-ной области parameter RAM (табл. 5.34).
После включения приемника в работу контроллер переходит в режим поиска
нового кадра данных. После приема первого кадра во временный регистр
сдвига контроллер проверяет бит незанятости первого буферного дескриптора
в таблице RxBD. Если этот бит Е = 1, то контроллер сохраняет принятый
символ в буфере. Если буфер данных заполнен или переполнился счетчик
принятых IDLE-символов, SMC-контроллер сбрасывает бит Е:=0 в слове
состояния буфера и, если в слове состояния установлен бит I = 1, то
генерируется прерывание. Далее контроллер проверяет готовность к приему
данных следующего буфера в таблице и, если он пустой, продолжает прием в
новый буфер. Если в слове состояния буфера установлен бит СМ = 1, то бит
Е при заполнении буфера не очищается, и при следующем обращении
контроллера к этому буферу новые данные будут записываться поверх старых.
В UART-протоколе, если в сети нет передачи, то по ней передаются IDLE-
символы, которые состоят из определенного числа "1" битов. Размер IDLE-
символа зависит от размера кадра данных, на работу с которым настроен
канал, и равен: 1 старт-бит + 5-14 битов данных + 1 бит контроля (если он
используется) + 1-2 стоп-бита. Приемник канала постоянно подсчитывает
число полученных. Таким образом, счетчик IDLC подсчитывает число IDLE-
символов, полученных между приемом двух кадров данных, в счетчике IDLC.
Если начинается прием нового кадра данных, то содержимое счетчика IDLC
сбрасывается. IDLC -это вычитающий счетчик, и при сбросе в него
записывается содержимое ячейки MAXJD.
Пользователь может определить максимально допустимое число IDLE-символов
между кадрами данных. Это число записывается в ячейку MAXJDL. Если
счетчик IDLC досчитал до 0, то возникает ошибка приема "IDLE sequence".
Текущий буфер закрывается, в нем устанавливается бит ошибки ID := 1
(закрыто из-за IDLE-переполнения) и генерируется RX-прерывание в регистре
событий, если оно разрешено. Если не был открыт буфер для приема, то
прерывание не генерируется.
Если при приеме кадра данных обнаружена ошибка контроля по
четности/нечетности (parity error), то канал записывает принятый байт в
буфер, закрывает буфер, устанавливает бит ошибки PR := 1 в слове
состояния BD и генерирует RX-прерывание через регистр событий (если оно
разрешено). Но далее прием продолжается в нормальном режиме.
Таблица 5.34
Протокол-ориентированная память параметров SMC UART-контроллера
Адрес Название Размер, бит Описание
SMC base+28 MAXJDL 16 Максимальное число IDLE-символов
SMC base+2A IDLC 16 Счетчик IDLE-символов
SMC base+2C BRKLN 16 Длина принятой BREAK-последовательности
SMC base+2E BRKEC 16 Счетчик полученных BREAK-символов
SMC base+30 BRKCR 16 Счетчик передаваемых BREAK-символов
SMC base+32 R_MASK 16 Временная переменная
Примечание. Переменные в ячейках MAXJDL, BRKEC и BRKCR должны быть
проинициали-зированы пользователем до начала работы с SMC UART-
контроллером.
519
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
При приеме UART-контроллер выделяет кадр данных из битового потока по
старт-биту в начале и стоп-битам в конце кадра. Если в кадре не
обнаружены "1" стоп-биты, то возникает ошибка формата (frame error).
Канал записывает принятый символ в буфер, закрывает буфер, устанавливает
в его слове состояния бит FR := 1 и генерирует прерывание RX через
регистр событий (если оно разрешено). Если произошла ошибка формата,
контроль по четности не производится.
При приеме данные записываются в FIFO выбранного канала, далее они под
управлением RISC-контроллера по SDMA-каналам пересылаются в память.
Размер буфера FIFO приемника равен двум символам (регистр сдвига и
регистр данных). Если скорость работы SDMA-каналов и сети не согласована,
возможно возникновение ошибки переполнения (overrun), когда ячейки FIFO
все заняты, а из сети получены новые данные. В этом случае новые данные
пишутся поверх старых, символ записывается в буфер, буфер закрывается и
устанавливается бит переполнения OV := 1 в слове состояния BD, и
генерируется прерывание RX через регистр событий (если оно разрешено).
Далее прием продолжается в нормальном режиме.
При приеме UART-контроллер может использовать вход cd для автоматического
контроля наличия передачи в сети. Если сигнал cd равен 1 при приеме
символа, то возникает ошибка (CD lost) потери CD-сигнала. Прием символа
прекращается, буфер закрывается, устанавливается бит CD := 1 в слове
состояния BD и генерируется прерывание RX через регистр событий (если оно
разрешено).
При приеме SMC UART-контроллер может контролировать прием символов BREAK.
BREAK - это символ, состоящий из "О" битов и не содержащий стоп-биты.
Если контроллер получил последовательность BREAK-символов, то он
Предыдущая << 1 .. 283 284 285 286 287 288 < 289 > 290 291 292 293 294 295 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed