Таблица 10.9. Обработка прерываний UART0
UOIIR [3:0] |
Приоритет |
Тип прерывания |
Источник прерывания |
Метод сброса прерывания |
0001 |
- |
Нет |
Нет |
- |
оно |
Наивысший |
Состояние линии Rx/o шибка |
ОЕ, или РЕ, или FE, или BI |
Чтение U0LSR |
0100 |
Вторичное |
Принятые данные доступны |
Принятые данные доступны или достигнут уровень срабатывания триггера-защелки в приемном буфере FIFO (U0FCR0 = 1) |
Чтение UORBRwih снижение уровня срабатывания триггера-защелки приемного буфера FIFO UARTO |
1100 |
Вторичное |
Индикация тайм-аута символа |
В приемном буфере FIFO находится, как минимум, один символ, при этом в течение некоторого периода времени не производится операций ввода или удаления символов в буфере FIFO. Длительность этого периода времени зависит от того, сколько символов находится в буфере FIFO и какой установлен уровень срабатывания триггера-защелки (от 3.5 до 4.5 периодов длительности символа). Точное время определяется как: [(длина слова) х 7 - 2] х 8 + [(уровень триггера - количество символов) х 8 + 1] х RCLK |
Чтение U0RBR |
0010 |
Третичное |
THRE |
THRE |
Чтение U0IIR (если он — источник прерывания) или запись в U0THR |
Примечание. Значения 0000, ООН, 0101, 0111, 1000, 1001, 1010, 1011, 1101, 1110, 1111 зарезер-
вированы.
RLS-прерывание UARTO (U0IIR[3:1] = Oil) является прерыванием с самым высоким приоритетом и генерируется всякий раз, когда на входе Rx UARTO имеет место одно из четырех условий (состояний) ошибки: ошибка переполнения (ОЕ), ошибка четности (РЕ), ошибка кадровой синхронизации (FE) и прерывание останова (BI). Состояния ошибки приема UART0, которые устанавливают прерывание, отображаются в значениях битов U0LSR[4:1]. Прерывание сбрасывается после чтения U0LSR.
RDA-прерывание UARTO (U0IIR[3:1] = 010), как и СП-прерывание (U0IIR[3:1] = 110), имеет второй уровень приоритета. Прерывание RDA активизируется, когда приемный буфер FIFO UARTO заполняется до уровня срабатывания триггера-защелки, определенного битами U0FCR[7:6], и сбрасывается, когда приемный буфер FIFO UARTO освобождается ниже уровня срабатывания триггера-защелки. Когда прерывание RDA активно, центральный процессор может читать блок данных, размер которого определен уровнем срабатывания триггера-защелки.
СП-прерывание (U0IIR[3:1] = 110) имеет второй уровень приоритета и генерируется, когда приемный буфер FIFO UARTO содержит не менее одного символа и не пополняется и/или не освобождается в течении времени, равного от 3.5 до 4.5 периодов длительности символа. Любая активность приемного буфера FIFO UARTO (чтение или запись сдвигового регистра приема U0R.SR UART0) сбросит прерывание. Это прерывание предназначено, чтобы сохранить U0RBR после того, как символьное сообщение (последовательность символов) было получено, а установленный уровень срабатывания триггера (защелки) еще не достигнут. Например, если периферийное устройство хочет послать 105 символов, и уровень срабатывания триггера (защелки) установлен равным 10 символов, центральный процессор получил бы 10 прерываний RDA, приводящих к перемещению 100 символов и от 1 до 5 прерываний CTI (в зависимости от сервисной подпрограммы), приводящих к перемещению (сохранению) 5 символов.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |