UART Status Register (USR)

Управление UART

Управление работой приемопередатчика осуществляется с помощью регистра управления UCR, расположенного по адресу $ОА ($2А). Текущее состояние при­емопередатчика определяется с помощью регистра состояния USR, расположенного по адре­су $ОА ($2А). Для обмена данными служит регистр UDR, расположенный по адре­су $ОС ($2С).

9.3.1 UART I/O Data Register (UDR)

Бит $0C ($2C) R/W Нач.знач.                 UDR
MSB - - - - - - LSB
R/W R/W R/W R/W R/W R/W R/W R/W
               

Рисунок 9.4 – Регистр ввода – вывода UART (UDR)

Физически регистр UDR является двумя отдельными регистрами, доступ к которым происходит по одному адресу. При записи происходит запись в регистр передатчика, при чтении - читается регистр приемника.

Бит $0B($2B) R/W Нач.знач.                 USR
RXC TXC UDRE FE OR - - -
R R R R R R R R
               

Рисунок 9.5 – Регистр состояния UART (USR)

Регистр USR доступен только для чтения, в нем хранится информация о состоянии UART.

Bit 7 – RXC (UART Receive Complete). Прием завершен. Этот бит устанавливается в 1, когда принятый символ переписывается из сдвигового регистра приемника в регистр UDR. Бит устанавливается независимо от обнаружения ошибки кадра. Если установлен бит RXCIE в регистре UCR, при установке бита выполняется прерывание по завершению приема символа. RXC сбрасывается при чтении UDR. При использовании приема данных по прерыванию, обработчик прерывания должен читать регистр UDR для сброса RXC, иначе при выходе из прерывания оно будет вызвано снова.

Bit 6 - TXC (UART Transmit Complete). Передача завершена. Этот бит устанавливается в 1, если символ из сдвигового регистра передатчика (включая стоповый бит) передан, а в регистр UDR не были записаны новые данные. Этот флаг особенно полезен при полудуплексной связи, когда предающее устройство должно перейти в режим приема и освободить линию связи сразу по окончанию передачи. Если установлен бит TXIE в регистре UCR, при установке TXC выполняется прерывания по окончанию передачи. TXC сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, бит можно сбросить, записав в него 1.

Bit 5 - UDRE (UART Data Register Empty). Регистр данных UART пуст. Этот бит устанавливается в 1 когда данные, записанные в UDR переписываются в регистр сдвига передатчика. Установка этого бита означает, что передатчик готов принять следующий символ для передачи. Если установлен бит UDRIE в регистре UCR, при установке этого бита выполняется прерывание окончания передачи. Бит UDRE сбрасывается при записи регистра UDR. При использовании передачи управляемой прерыванием, подпрограмма обслуживания прерывания должна записывать UDR, чтобы сбросить бит UDRE, иначе при выходе из прерывания оно будет вызвано снова. При сбросе этот бит устанавливается в 1, чтобы проиндицировать готовность передатчика.

Bit 4 - FE (Framing Error). Ошибка кадра. Этот бит устанавливается при обнаружении условия ошибки кадра, т.е. если стоповый бит принятого байта равен 0. Бит FE сбрасывается при приеме единичного стопового бита.

Bit 3 - OR (OverRun). Переполнение. Этот бит устанавливается при обнаружении условия переполнения, т.е. когда символ из регистра UDR не был прочитан до того, как заполнился сдвиговый регистр приемника. Этот бит буферирован, т.е. остается установленным до тех пор, пока из регистра UDR не будут прочитаны правильные данные. Бит OR сбрасывается, когда принятые данные переписываются в UDR.

Биты 2..0 - зарезервированы. В AT90S8535 эти биты зарезервированы и всегда читаются как 0.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: