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

Цель работы.Изучение принципа работы UART порта. Получение навыков использования UART порта для приема/передачи данных. Разработка и отладка управляющих программ приема/передачи и программ обработки данных.

Краткие теоретические сведения

Последовательный порт UART используется, для организации обмена данными между несколькими устройствами в последовательном коде. По порту можно одновременно и передавать и получать данные. Для этого используются отдельные линии связи. Скорость приема-передачи можно изменять программно. Разрядность данных может быть 8 или 9 бит.

Управление портом производится с помощью регистров: UDR, UCSRnA, UCSRnB, UCSRnC , UBRRnL и UBRRnH (более подобно см. раздел 2.10)

Пример программирования UART порта.

Фрагменты программы, реализующие настройку порта, передачу и прием данных.

;------------------------------------------------------------

;Инициализация передатчика

ldi r16, 0x55

out UBRRl, $55 ;установка скорости передачи

ldi r16, (1<<RXEN)|(1<<TXEN) ;активация УСАПП

out UCSRB,r16

;установка формата кадра передачи: 8-data, 2-stop Бит

ldi r16, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0)

out UCSRC,r16

ret

;------------------------------------------------------------

;Передачи данных

Transmit:

sbis UCSRA,UDRE ;ожидание готовности передачи

rjmp Transmit

out UDR,r16 ;поместить данные в буфер

ret

;------------------------------------------------------------

;Прием данных

Receive:

sbis UCSRA, RXC ;ожидания приёма данных

rjmp Receive

in r16, UDR ;получения принятых данных из буфера

ret

Индивидуальные задания к выполнению

Лабораторной работы №4

(прием и передачу осуществить по сигналу

«Запрос прерывания» и по опросу флажка готовности UART)

1. Разработать программу передачи 3-х байт данных, расположенных в ОЗУ. Передачу осуществлять в 8-ми битном режиме с минимальной скоростью.

2. Разработать программу приема 3-х байт данных. Прием осуществлять в 8-ми битном режиме с минимальной скоростью. Данные сохранить в ОЗУ.

3. Разработать программу передачи данных из порта В. Передачу осуществлять в 9-ти битном режиме с контролем по четности.

4. Разработать программу приема байта данных. Прием осуществлять в 9-ти битном режиме с максимальной скоростью. Данные выводить в PORTC.

5. Разработать программу передачи 10-ти байтов данных, расположенных в ОЗУ. Передачу осуществлять по сигналу внешнего прерывания INT0 в 8-ми битном режиме.

6. Разработать программу обмена данными двух УЛС по UART порту.

7. Разработать программу одновременного приема и передачи данных по UART порту.

8. Разработать программу передачи подпрограмм и запуска их на приемной стороне по окончании приема.

Контрольные вопросы к лабораторной работе №4

1. Назначение UART порта МК и его основные характеристики.

2. Формат регистра статуса UART-порта и назначение битов регистра. Привести пример использования регистра статуса UART порта.

3. Регистр управления UART-порта и назначение битов регистра. Привести пример использования регистра управления UART порта.

4. Назначение бод-генератор (Baud Rate Generator) UART порта и регистра бод-генератора UART- UBRR.

5. Назначение регистра данных UDR UART-порта.

6. Для чего проводится тестирование выборки битов принимаемых символов?

7. Формат кадра и его содержание. Назначение старт - и стоп-битов

8. Привести пример считывания содержимого регистра статуса UART-порта, записи данных в регистры: бод-генератора UART, управления и данных UART-порта.

9. Каким образом задается скорость приема/передачи данных.

10. Вектора прерываний UART-порта и их назначение. Привести пример организации приема/передачи в режиме прерывания.

11. Привести схему соединения приемника и передатчика по UART-порта.

12. Режимы работы UART-порта и их отличительные особенности.

13. Приведите временные диаграммы приема/передачи информации по UART-порту.

14. В чем различие между UART-портом МК и последовательным интерфейсом RS-232?

Лабораторная работа №5

Наши рекомендации