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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 330 331 332 333 334 335 < 336 > 337 338 339 340 341 342 .. 528 >> Следующая

SCC base+52 CHAR2 16 Контрольный символ 2
SCC base+54 CHAR3 16 Контрольный символ 3
SCC base+56 CHAR4 16 Контрольный символ 4
SCC base+58 CHAR5 16 Контрольный символ 5
SCC base+5A CHAR6 16 Контрольный символ 6
SCC base+5C CHAR7 16 Контрольный символ 7
SCC base+5E CHAR8 16 Контрольный символ 8
SCC base+60 RCCM 16 Маска контрольных символов
SCC base+62 RCCR 16 Регистр принятого контрольного символа
SCC base+64 RLBC 16 Регистр принятого BREAK-символа
Примечание. Все переменные в табл. 5.72, кроме ячеек IDLC, BRKLN, RTEMP,
RCCR и
RLBC, инициализируются пользователем до начала работы с UART-
контроллером.
Прием данных UART-контроллером. В UART-протоколе в отсутствие передачи по
сети передаются IDLE-символы, которые состоят из 9-13 единиц "1". Размер
IDLE-noc-ледовательности зависит от размера кадра данных, на работу с
которым настроен канал. Размер IDLE-символа равен: 1 старт-бит + 5, 6, 7,
8 битов данных + 1 бит контроля (если он используется) + 1,2 стоп-бита.
Приемник канала постоянно подсчитывает число полученных IDLE-символов в
счетчике IDLE-символов IDLC. Если начинается прием нового кадра данных,
то содержимое счетчика IDLC сбрасывается. Таким образом, IDLC-счетчик
подсчитывает число IDLE-символов, полученных между приемом двух кадров
данных. Пользователь может в ячейке MAXJDL определить максимально
допустимое число IDLE-символов между кадрами данных .IDLC - это
вычитающий счетчик, и при
595
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
сбросе в него записывается содержимое ячейки MAXJDL, если счетчик IDLC
досчитал до 0, то возникает ошибка приема "IDLE sequence". Текущий буфер
закрывается, в нем устанавливается бит ID := 1 (закрыто из-за IDLE-
переполнения) и генерируется RX-прерывание в регистре событий, если оно
разрешено. Если не был открыт буфер для приема, то прерывание не
генерируется.
Для работы в сетях, где присутствуют более двух станций, в состав кадра
UART-протокола введен бит адреса. Если бит адреса равен единице, то в
кадре данных передается адрес получателя всех следующих кадров данных до
кадра, в котором снова будет установлен бит адреса равный единице. UART-
контроллер при обработке кадра с адресом может работать в двух режимах.
1. Неавтоматический режим. В этом режиме канал принимает пакет с адресом
как обычные данные, закрывает текущий буфер и записывает адрес в новый
буфер. В слове состояния этого буфера устанавливается бит, показывающий,
что буфер содержит адрес. Дальнейшую обработку адреса должен выполнять
центральный процессор.
2. Автоматический режим. В этом режиме канал сам анализирует принятый
адрес. Он сравнивает принятый адрес с двумя возможными, которые записаны
в ячейки UADRR1 и UADRR2. В ячейках хранятся 8-битные разрешенные адреса
для данного канала. Если хотя бы один адрес совпал, то данные из
следующих кадров данных будут приниматься в буфер канала. При этом в
первом буфере, в который будут записываться данные, в слове состояния
устанавливается бит А := 1, показывающий, что это первый буфер с данными
из последовательности, и бит AM, показывающий, какой адрес совпал. Если
AM = 0 - совпал адрес ADRR2, если AM = 1 - то совпал адрес ADRR1.
Если при приеме кадра данных обнаружена ошибка контроля по
четности/нечетности (parity error), то канал записывает принятый байт в
буфер, закрывает буфер, устанавливает бит ошибки PR := 1 в слове
состояния BD и генерирует RX-прерывание через регистр событий (если оно
разрешено). Также увеличивается на единицу счетчик ошибок четности в
счетчике PAREC. В автоматическом многоточечном режиме работы канал
переходит в режим "охоты".
При приеме в асинхронном режиме UART-контроллер три раза опрашивает
значение бита на битовом интервале (oversampling). Если эти значения не
равны, то возникает ошибка шума (noise error). При этом канал увеличивает
на единицу счетчик ошибок шума в ячейке NOSEC, записывает принятый символ
в буфер и продолжает нормальную работу.
При приеме UART-контроллер выделяет кадр данных из битового потока по
старт-биту в начале и стоп-битам в конце кадра. Если в кадре не
обнаружены "1" стоп-битов, то возникает ошибка формата (frame error).
Канал записывает принятый символ в буфер, закрывает буфер и устанавливает
в его слове состояния бит FR := 1, увеличивает на единицу счетчик ошибок
формата FRMEC и генерирует прерывание RX через регистр событий (если оно
разрешено). Если произошла ошибка формата, контроль по четности не
производится. В автоматическом многоточечном режиме работы канал
переходит в режим "охоты".
Если UART-контроллер работает в синхронном режиме с нулевыми стоп-битами
(бит RZS = 1 в регистре PSMR настройки UART-режима), ошибка формата
обнаруживается, но пользователь может не реагировать на нее.
При приеме данные записываются в FIFO выбранного канала, далее они под
управлением RISC-контроллера по SDMA-каналам пересылаются в память. Если
скорость работы SDMA-каналов и сети не согласована, возможно
Предыдущая << 1 .. 330 331 332 333 334 335 < 336 > 337 338 339 340 341 342 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed