Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Универсальный асинхронный приемопередачик – UART.




Микроконтроллеры ATmega103 оснащены дуплексным универсальным приёмопередатчиком (UART). Его основные возможности:

- генератор обеспечивает любую скорость передачи информации в бодах

- высокая скорость передачи при низкой частоте XTAL

- 8-разрядный или 9-разрядный форматы данных

- обнаружение ошибок формирование кадров

- детектирование бита ложного старта

- три отдельных прерывания: по завершению передачи, по пустому регистру передаваемых данных и по завершению приёма.

 

ТХС -прерывание по завершению передач

UDRE -прерывание по пустому регистру сдвига

UDR – регистр данных сдвоенный (для передачи и для приёма) регистр

UCR – регистр управления

USR – регистр статуса

Передача данных инициируется записью передаваемых данных в регистр данных UDR. Данные пересылаются из UDR в сдвиговый регистр передатчика в следующих случаях:

- новый символ записан в UDR после того, как был выведен из регистра стоповый бит предшествующего символа. Сдвиговый регистр загружается немедленно

- новый символ записан в UDR прежде, чем был выведен стоповый бит предшествовавшего символа. Сдвиговый регистр загружается после выхода стопового бита передаваемого символа, находящегося в сдвиговом регистре.

Если 10(11)-разрядный сдвиговый регистр передатчика пуст, то данные из регистра UDR передаются в сдвиговый регистр. При этом устанавливается бит UDRE регистра USR. При установленном UDRE UART готов принять следующий символ. Запись в UDR очищает бит UDRE. Когда данные переданы из UDR в сдвиговый регистр, бит 0 сдвинутого регистра сбрасывается(состояние 0 стартовый бит), а старший бит устанавливается(состояние 1 –стоповый бит). Если в регистре управления UCR установлен бит CHR9(т.е. выбран режим 9-разрядного слова данных), то бит ТхB8 регистра UCR пересылает в бит 9 сдвигового регистра передатчика.

Сразу после пересылки данных в сдвиговый регистр импульсом синхросигнала стартовый бит выдвигается на вывод ТхD. За ним следуют биты данных, младший бит первым. Когда будет выдвинут стоповый бит, сдвиговый регистр загрузится новыми данными, если байт был записан в регистр UDR во время передачи. В процессе загрузки бит UDRE находится в установленном состоянии. Если новые данные не будут загружены в UDR до выдачи стопового бита, то флаг UDRE остается установленным. В этом случае, после того как стоповый бит будет присутствовать на выводе TхD в течение одного такта, в регистре статуса UART (USR) устанавливается флаг завершения передачи TХC

Регистр Данных UART – UDR: адрес $0С($2С)

7 6 5 4 3 2 1 0 разряды

MSB             LSB

0 0 0 0 0 0 0 0 исходный

Код

В действительности имя UDR представляет собой два физически разделенных регистра – регистр передачи данных и регистр приема данных, использующих один и тот же адрес. При записи в регистр запись производится в регистр передачи данных UART, а при чтении выполняется чтение содержимого регистра приема данных UART.

Регистр Статуса UART – USR(UART Status Register): адрес $0С($2С)

7 6 5 4 3 2 1 0 разряды

RxC TxC UDRE FE OR - - -

0 0 0 0 0 0 0 0 исходный

Код

Регистр USR обеспечивает чтение информации о состоянии UART

Бит 7 - RxC –прием завершен. Этот бит устанавливается при пересылке принятого символа из сдвигового регистра приемника в регистр UDR вне зависимости от отсутствия или наличия ошибок приема кадра. При установленных в UCR бите RxCIE и в USR бите RxC выполняется прерывание по завершению приема UART. Бит RxC очищается при чтении UDR. При приеме данных по прерыванию процедура обработки прерывания после завершения приема должна прочитать UDR с тем, чтобы очистить RxC, иначе по ее окончании произойдет новое прерывание.

Бит 6 –Txc – передача завершена.Этот бит устанавливается когда весь символ(включая стоповый бит) выведен из сдвигового регистра передачи, а в регистр UDR не записаны новые данные. Этот флаг используется при полудуплексном протоколе обмена, когда оборудование передачи должно установить режим приема и освободить коммуникационную нишу сразу после завершения передачи.

Бит 5- UDRE – регистр данных пуст. Этот бит устанавливается когда весь символ записанный в UDR, пересылается в сдвиговый регистр передатчика. Установка этого бита означает, что передатчик готов к получению нового символа.

Бит 4 – FE – ошибка кадра. Этот бит устанавливается при обнаружении условий ошибочного приема кадра, т.е. когда при приеме стопового бита обнаружено состояние 0. Бит FE очищается при приеме стопового бита логическим уровнем 0.

Бит 3- DOR- переполнение данных. Бит DOR устанавливается при обнаружении условий переполнения, т.е. когда символ, уже находящийся в регистре UDR, не прочитан перед пересылкой нового символа из сдвигового регистра приемника. Бит DOR буферизирован, т.е. он будет оставаться установленным, пока не будут читаны правильные данные из UDR. Бит DOR очищается, когда данные приняты и пересланы в UDR.

Бит 2..0- Res – зарезервированные биты

Регистр управления UART – UCR(UART Control Register): адрес $0A($2A)

7 6 5 4 3 2 1 0 разряды

RxCIE TxCIE UDRIE RxEN TxEN CHR9 RxB8 TxB8

0 0 0 0 0 0 0 0 исходный

Код

Бит 7- RxCIE – разрешение прерывания по завершению приема. При установленном 1 бите RxCIE и разрешении глобального прерывания установка бита RxC в регистре USR приведет к прерыванию после завершения приема.

Бит 6 - TxCIE - разрешение прерывания после завершения передачи. При установленном бите TxCIE и разрешении глобального прерывания установка бита TxC в регистре USR приведет к выполнению прерывания после завершения передачи.

Бит 5 - UDRIE - разрешение прерывания по пустому регистру данных. При установленном бите UDRIE и разрешении глобального прерывания установка бита UDRE в регистре USR приведет к прерыванию по пустому регистру данных UART.

Бит 4 - RxEN - разрешение приемника. Установленный бит RxEN разрешает использование приемника UART. Если приемник запрещен, то флаги статуса TXC, DOR и FE установить не возможно. Если эти флаги установлены, то очистка бита RxEN не приведет к очистке флагов.

Бит 3 - TxEN - разрешение передатчика. Установленный бит TxEN разрешает использование приемника UART.При запрещении передатчика во время передачи символа, передатчик не будет заблокирован до тех пор, пока не будут полностью переданы символ в сдвиговом регистре плюс любой находящийся в UDR следующий символ.

Бит 2- CHR9- режим 9-разрядных символов. При установленном бите CHR9 передаются и принимаются 9-разрядные символы плюс стартовый и стоповый бит. Девятые биты читаются и записываются с использованием битов RxB8 и TxB8 регистра UCR. Девятый бит данных может использоватся как дополнительный стоповый бит или бит контроля четности.

Бит 1- RxB8- прием 8-разрядных данных. При установленном бите CHR9 бит TxB8 является девятым битом данных принятого символа.

Бит 0 - TxB8- передача 8-разрядных данных. При установленном бите CHR9 бит TxB8 является девятым битом данных передаваемого символа.

 

Регистр формирования синхросигналаUART – UBRR: адрес $09($29)

7 6 5 4 3 2 1 0 разряды

MSB             LSB

0 0 0 0 0 0 0 0 исходный

Код

Формирователь синхросигнала последовательного обмена представляет делитель, генерирующий импульсы синхросигнала с частотой определяемой выражением.

BAUD=Fck/16(UBRR+1) где BAUD –частота в бодах; Fck- частота тактового генератора;

UBRR равно содержимому регистра UBRR(Baud Rate register=0..255),

Регистр UBRR является 8-разрядным регистром с возможностью чтения/записи. Числовое чтение в нем определяет скорость UART.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...