Предыдущая Следующая

Таблица 11.9. Обработка прерываний UART1

U1IIR [3:0]

Приоритет

Тип прерывания

Источник прерывания

Метод сброса прерывания

0001

 

Нет

Нет

-

оно

Наиболее

высокое

Состояние

линии

Rx/ошибка

ОЕ, или РЕ, или FE, или BI

Чтение U1LSR

0100

Вторичное

Принятые данные доступны

Принятые данные доступны или достигнут уровень срабатывания триггера-защелки в приемном буфере FIFO (U1FCR0 = 1)

Чтение U1RBR или снижение уровня срабатывания триггера-защелки приемного буфера FIFO UART1

1100

Вторичное

Индикация

тайм-аута

символа

В приемном буфере FIFO находится, как минимум, один символ, при этом в течение некоторого периода времени не производится операций ввода или удаления символов в буфере FIFO. Длительность этого периода времени зависит от того, сколько символов находится в буфере FIFO и какой установлен уровень срабатывания триггера-защелки (от 3.5 до 4.5 периодов длительности символа). Точное время определяется как:

[(длина слова) х 7 - 2] х 8 + [(уровень триггера — количество символов) х 8 + 1] х RCLK

Чтение U1RBR

Таблица 11.9. Обработка прерываний UART1 (продолжение)

U1IIR [3:0]

Приоритет

Тип прерывания

Источник прерывания

Метод сброса прерывания

0010

Третичное

THRE

THRE

Чтение U1IIR (если он — источник прерывания) или запись bUITHR

0000

Четверичное

Состояние модема

CTS, или DSR, или RI, или DCD

Чтение LUMSR

Примечание. Значения 0011,0101,0111,1000,1001,1010,1011,1101,1110,1111 зарезервированы.

RLS-прерывание UART1 (U1IIR[3:1] = 011) является прерыванием с самым высоким приоритетом и генерируется всякий раз, когда на входе Rx UART1 имеет место одно из четырех условий (состояний) ошибки: ошибка переполнения (ОЕ), ошибка четности (РЕ), ошибка кадровой синхронизации (FE) и прерывание останова (BI). Состояния ошибки приема UART1, которые вызывают прерывание, отображаются в значениях битов U1LSR[4:1]. Прерывание сбрасывается после чтения U1LSR.

RDA-прерывание UART1 (U1IIR[3:1] = 010), как и СП-прерывание (U1IIR[3:1] = 110), имеет второй уровень приоритета. Прерывание RDA активизируется, когда приемный буфер FIFO UART1 заполняется до уровня срабатывания триггера-защелки, определенного битами U1FCR[7:6], и сбрасывается, когда приемный буфер FIFO UART1 освобождается ниже уровня срабатывания триггера-защелки. Когда прерывание RDA активно, центральный процессор может читать блок данных, размер которого определен уровнем срабатывания триггера-защелки.

СП-прерывание (U1IIR[3:1] = ПО) имеет второй уровень приоритета и генерируется, когда приемный буфер FIFO UART1 содержит не менее одного символа и не пополняется и/или не освобождается в течении времени, равного от 3.5 до 4.5 периодов длительности символа. Любая активность приемного буфера FIFO UART1 (чтение или запись сдвигового регистра приема U1RSR UART1) сбросит прерывание. Это прерывание используется, чтобы сохранить U1RBR после того, как символьное сообщение (последовательность символов) было получено, а заданный уровень срабатывания триггера (защелки) еще не достигнут. Например, если периферийное устройство хочет послать 105 символов, и уровень срабатывания триггера (защелки) установлен равным 10 символов, центральный процессор получил бы 10 прерываний RDA, приводящих к перемещению 100 символов и от 1 до 5 прерываний CTI (в зависимости от сервисной подпрограммы), приводящих к перемещению (сохранению) 5 символов.


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_135.html on line 295

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_135.html on line 295

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_135.html on line 295