Студопедия — Организация модулей USART в микроконтроллере AVR АТMEGA128
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Организация модулей USART в микроконтроллере AVR АТMEGA128






Все микроконтроллеры AVR семейства MEGA имеют в своем составе модули универсального синхронно/асинхронного приемо-передатчика USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter). В микроконтроллер AVR АТMEGA128 встроены два таких модуля USART0 и USART1. Каждый модуль USART состоит из трех частей: блока тактирования, блока передатчика и блока приемника. Блок тактирования включает в себя устройство синхронизации (при работе в синхронном режиме) и контроллер скорости передачи данных. Блок передатчика включает одноуровневый буфер, регистр сдвига, схему формирования четности (для синхронного режима) и схему управления. Блок приемника состоит из схемы восстановления тактового сигнала и данных, схемы контроля четности (для синхронного режима), буферного и сдвигового регистров, а также схемы управления. Для упрощения описания далее будут рассматриваться ресурсы только модуля USART1 микроконтроллера AVR АТMEGA128. Работа с модулем USART0 будет проводиться аналогично.

Модуль USART1 имеет следующие программно–доступные регистры:

UDR1 – регистр данных;

UСSR1A, UСSR1B, UСSR1C – регистры управления/статуса;

UBRR1H, UBRR1L – регистры скорости передачи данных.

Рассмотрим их функциональное назначение.

В режиме передатчика запись данных в регистр UDR1, расположенный по адресу 9Ch(BCh), инициирует передачу данных (данные из регистра UDR1 пересылаются в регистр сдвига и подаются на линию ТxD побитово). В режиме приемника считывание полученных данных осуществляется из регистра UDR1. Инициализация и контролирование режимов работы модуля UART1 происходит с помощью регистров управления/статуса UСSR1A (см. рисунок 5.3), UСSR1B (см. рисунок 5.4), UСSR1C (см. рисунок 5.5).

 

№ бита                
9Вh(ВВh) RXC1 TXC1 UDRE1 FE1 DOR1 UPE1 U2X1 MPCM1

 

Рисунок 5.3 – Регистр управления/статуса UCSR1A

Описание битов регистра управления/статуса UCSR1A приведено ниже:

Бит 7 – RXC1 – устанавливается, если в буфере UDR есть непрочитанные данные, и сбрасывается, когда приемный буфер пуст (нет непрочитанных данных). Если прием запрещен, этот бит всегда читается как 0. Этот бит может использоваться для вызова прерывания по приему данных.

Бит 6 – TXC1 – устанавливается, когда буфер передачи UDR пуст.

Бит 5 – UDRE1 – устанавливается, когда регистр данных пуст.

Бит 4 – FE1 – признак ошибки кадра.

Бит 3 – DOR1 – переполнение приемного буфера.

Бит 2 – UPE1 – ошибка бита четности.

Бит 1 – U2X1 – бит управления скоростью передачи (0 – стандартная, 1 – удвоенная скорость).

Бит 0 – MPCM1 – 0 – стандартный, 1 – мультипроцессорный режим работы.

№ бита                
9Ah(ВAh) RXCIE1 TXCIE1 UDRIE1 RXEN1 TXEN1 UCSZ12 RXB81 TXB81

 

Рисунок 5.4 – Регистр управления/статуса UCSR1B

 

Описание битов регистра управления/статуса UCSR1В приведено ниже:

Бит 7 – RXCIE1 – разрешение прерывания по завершению приема (при установке бита RXC1 в регистре UCSR1А).

Бит 6 – TXCIE1 – разрешение прерывания по завершению передачи (при установке бита TXC1 в регистре UCSR1А).

Бит 5 – UDRIE1 – разрешение прерываний при очистке регистра данных UDR1 и установке флага UDRE1 регистре UCSR1А.

Бит 4 – RXEN1 – установка этого бита разрешает работу приемника USART.

Бит 3 – TXEN1 – установка этого бита разрешает работу передатчика USART.


Бит 2 – UCSZ12 – в сочетании с битами UCSZ11:UCSZ10 регистра UCSRC устанавливает размер кадра данных (см. таблицу 5.1).

 

Таблица 5.1 – Размер кадра данных

UCSZ12 UCSZ11 UCSZ10 Размер данных
      5 бит
      6 бит
      7 бит
      8 бит
      9 бит

 

Бит 1 – RXB81 – формат принимаемых данных 9 бит.

Бит 0 – TXB81 – формат передаваемых данных 9 бит.

 

№ бита                
9Dh(BDh) - UMSEL1 UPM11 UPM10 USBS1 UCSZ11 UCSZ10 UCPOL1

 

Рисунок 5.5 – Регистр управления/статуса UCSR1C

Описание битов регистра управления/статуса UCSR1С приведено ниже:

Бит 6 – UMSEL – бит выбора режима работы USART (0–асинхронный.
1–синхронный).

Биты 5, 4 – UPM11, UPM10 – определяют режим проверки четности при приеме и при передаче данных (см. таблицу 5.2).

 

Таблица 5.2 – Установки режима четности

UPM1 UPM0 Режим четности
    отключен
    не используется
    проверка четности
    проверка нечетности

 

Бит 3 – USBS1 – определяет количество стоповых битов для передатчика. Приемник игнорирует этот бит (0 – один стоповый бит, 1 – два стоповых бита).

Биты 2,1 – UCSZ11, UCSZ10 – в сочетании с битом UCSZ12 регистра UCSR1В устанавливают размер кадра данных (см. таблицу 5.1).

Бит 0 – UCPOL1 – в асинхронном режиме должен быть равен 0.

Скорость передачи данных VBAUD (в бодах, бит/с) определяется из выражения 5.1 и задается путем записи 12-разрядного значения в регистры UBRR1L 98h(В8h) и UBRR1H 99h(B9h). В регистре UBRR1H используются только младшие 4 разряда.

. (5.1)

Значение, записываемое в регистры UBRR1H:UBRR1L, будет соответственно определяться по формуле 5.2:

. (5.2)

Стандартные значения делителя , соответствующие стандартным скоростям передачи данных, для тактовой частоты МГц микроконтроллера, входящего в состав лабораторного макета, приводятся в таблице 5.3. При этом необходимо учитывать значение – бита U2X1 управления скоростью передачи (0 – стандартная, 1 – удвоенная скорость), расположенного в первом разряде регистра UCSR1A.

 

Таблица 5.3 – Значения делителей частоты модуля USART для различных значений скорости передачи данных при нулевой погрешности установки скорости

, бит/с МГц
U2X1=0 U2X1=1
     
     
     
     
     
     
     
     
     

Пример программного кода инициализации модуля USART1 для режима асинхронного считывания данных на скорости 144400 бит/с (в формате 8 бит без бита четности) на языке С приводится ниже:

UCSR1A=0x00;установка стандартного режима задания скорости

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

UCSR1B=0x90;установка 7-го и 4-го битов регистра UCSR1B для

инициализации USART1 в режиме приемника и

разрешения прерывания по завершению приема кадра;

UCSR1C=0x06;установка формата кадра: 8 бит данных с отключенным

режимом четности;

UBRR1H=0x00;установка значения делителя (47), соответствующего

UBRR1L=47;скорости приемаданных 14400 бит/с.

5.2 Описание лабораторной установки

 

Лабораторная работа выполняется в индивидуальном порядке. На каждом рабочем месте должны быть установлены: многофункциональный лабораторный макет на базе микроконтроллера AVR ATMEGA 128, ПЭВМ типа IBM PC/AT c инсталлированным программным обеспечением: операционной системой MS–WINDOWS v. 9x, 2000, XP, программатором на основе кросс-компилятора языка программирования C CodeVision AVR, утилитой Terminal для работы с последовательным интерфейсом RS232C. Задания выполняются на лабораторном макете на базе 8-разрядного микроконтроллера AVR ATMEGA 128. Дополнительно в работе используется кабель с 9-контактными разъемами DB-9 (см. рисунок 1.8) для соединения лабораторного макета с ПЭВМ через последовательный интерфейс RS232C.

Назначение сигналов интерфейса RS232C следующее:

FG – защитное заземление (экран);

TxD – данные, передаваемые компьютером в последовательном коде (логика отрицательная);

RxD – данные, принимаемые компьютером в последовательном коде (логика отрицательная);

RTS – сигнал запроса передачи. Активен во все время передачи;

CTS – сигнал сброса (очистки) для передачи. Активен во все время передачи. Говорит о готовности приемника;

DSR – готовность данных. Используется для задания режима модема;

SG – сигнальное заземление, нулевой провод;

DCD – линия детектирования принимаемого сигнала;

DTR – готовность выходных данных;

RI – индикатор вызова. Говорит о приеме модемом сигнала вызова по телефонной сети;

Для трехпроводной двунаправленной линии связи используются сигналы RxD, TxD и SG. Все 10 сигналов интерфейса задействуются только при работе с модемом. Модули USART0 и USART1 входят в состав микроконтроллера. Дополнительно в лабораторном макете содержится блок преобразования уровней RS232/ТТЛ. Для связи с ПЭВМ через СОМ – порт используется только асинхронный режим работы интерфейса RS232С. Подробное описание лабораторного макета приведено в пункте 1.2 лабораторной работы № 1.

Работа с программой Terminal (см. рисунок 5.6) выполняется путем настройки соответствующих параметров протокола обмена в верхней части рабочего окна и ввода отправляемых (в области Transmit) или наблюдения принимаемых (в области Receive) данных в десятичной, шестнадцатеричной или двоичной кодировке.

 

 

Рисунок 5.6 – Рабочее окно программы Terminal

 

5.3 Порядок проведения работы и указания по ее выполнению

 

Перед началом выполнения практической части лабораторной работы проводится экспресс–контроль знаний по принципам функционирования модулей USART, входящих в состав микроконтроллера AVR ATMEGA 128, а также по протоколу обмена данными по интерфейсу RS232C. При подготовке к лабораторной работе необходимо составить предварительный вариант листинга программы, в соответствие с индивидуальным заданием (см. таблицу 5.4).

Задание. Разработать в среде программирования Code Vision AVR программу на языке С для связи микроконтроллера AVR ATMEGA 128 с ПЭВМ по интерфейсу RS232C в соответствие с параметрами протокола обмена, приведенными в таблице 5.4.

Порядок выполнения задания:

1. Включить лабораторный макет (установить выключатель электропитания в положение I, и убедиться в свечении индикатора электропитания красным цветом).

2. Запустить компилятор Code Vision AVR.

3. Создать пустой проект.

4. Создать файл ресурса для кода программы и подключить его к проекту.

5. Ввести код исходного модуля программы обмена данными между микроконтроллером AVR ATMEGA 128 с ПЭВМ по интерфейсу RS232C в соответствие с индивидуальным заданием, приведенным в таблице 5.4.

6. Выполнить компиляцию (нажав клавишу F9) исходного модуля программы и устранить ошибки, полученные на данном этапе.

7. Настроить параметры программатора.

8. Проверить правильность подключения интерфейсного кабеля RS232 к разъемам лабораторного макета и ПЭВМ.

9. Запустить на ПЭВМ программу Terminal, установить необходимые параметры протокола обмена данными, выбрать номер последовательного порта (СОМ1 или СОМ2), к внешнему разъему которого подключен кабель микроконтроллера, и нажать на кнопку Connect в верхнем левом углу рабочего окна программы.

10. Создать загрузочный модуль программы (нажав комбинацию клавиш Shift+F9) и выполнить программирование микроконтроллера.

11. Проверить работоспособность загруженной в микроконтроллер программы и показать результаты работы преподавателю.

12. В случае некорректной работы разработанной программы, выполнить аппаратный сброс микроконтроллера, провести отладку исходного модуля программы и заново проверить функционирование программы, повторив выполнение пунктов 7 – 12.

 

Пример выполнения задания. Разработать программу для передачи 20 чисел (от 0 до 19) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствие с протоколом: модуль USART1, скорость обмена данными 19200 бит/с, режим обмена асинхронный, 7 битов данных без бита четности.

Решение. Исходя из параметров обмена необходимо настроить регистры управления/статуса и скорости передачи данных модуля USART1, а затем в цикле вывести данные в регистр UDR1. Алгоритм программы приводится на рисунке 5.7, полный текст исходного модуля программы на языке С с подробными комментариями приводится ниже:

#include <mega128.h>; подключить заголовочный файл mega128.h;

#include <delay.h>; подключить заголовочный файл delay.h;

char i;описание глобальной переменной i;

main() { основная часть программы;

UCSR1A=0x00;установка стандартного режима задания скорости передачи данных;

UCSR1B=0x08;установка 3-го бита регистра UCSR1B для

инициализации USART1 в режиме передатчика;

UCSR1C=0x04;установка формата кадра: 7 бит данных с отключенным режимом четности;

UBRR1H=0x00;установка значения делителя (35) соответствующего

UBRR1L=35;скорости приемаданных 19200 бит/с;

for (i=0; i<=19; i++) { организовать цикл на 20 итераций;

delay_ms(20); установить временную задержку 20 мс;

UDR1=i; } выполнить передачу значения параметра цикла i;

} завершающая операторная скобка программы;

Таким образом, 20 числовых значений (от 0 до 19) будут переданы в ПЭВМ и будут зафиксированы предварительно запущенной программой Terminal с соответствующими настройками протокола обмена данными.

 

 

Рисунок 5.7 – Алгоритм программы передачи данных из микроконтроллера

Т AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C

 

Таблица 5.4 – Варианты индивидуальных заданий

Номер Задание
   
  Разработать программу передачи 100 чисел (от 0 до 99) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 19200 бит/с, режим обмена асинхронный, 8 битов данных без бита четности.
  Разработать программу передачи 50 чисел (от 20 до 69) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 38400 бит/с, режим обмена асинхронный, 8 битов данных без бита четности.
  Разработать программу передачи 20 чисел (от 10 до 29) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 57600 бит/с, режим обмена асинхронный, 7 битов данных без бита четности.

Продолжение – 5.4

   
  Разработать программу передачи 10 чисел (от 0 до 9) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 14400 бит/с, режим обмена асинхронный, 6 битов данных без бита четности.
  Разработать программу передачи 20 чисел (от 10 до 29) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 19200 бит/с, режим обмена асинхронный, 7 битов данных без бита четности, данные передаются через каждую секунду.*
  Разработать программу передачи 50 чисел (от 10 до 59) из ПЭВМ в микроконтроллер AVR ATMEGA 128 по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 14400 бит/с, режим обмена асинхронный, 7 битов данных без бита четности. При получении последнего информационного кадра выдать сигнал завершения приема на блок светодиодной индикации.
  Разработать программу передачи 200 чисел (от 0 до 199) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 38400 бит/с, режим обмена асинхронный, 8 битов данных без бита четности.
  Разработать программу передачи номера нажатой клавиши 3- кнопочной клавиатуры (см. лабораторную работу №2) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 19200 бит/с, режим обмена асинхронный, 8 битов данных без бита четности.*
  Разработать программу передачи номера нажатой клавиши матричной клавиатуры (см. лабораторную работу №2) из микроконтроллера AVR ATMEGA 128 в ПЭВМ по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 14400 бит/с, режим обмена асинхронный, 8 битов данных без бита четности.*
  Разработать программу передачи 10 чисел (от 0 до 9) из ПЭВМ в микроконтроллер AVR ATMEGA 128 по интерфейсу RS232C в соответствии с протоколом: модуль USART1, скорость обмена данными 19200 бит/с, режим обмена асинхронный, 8 битов данных без бита четности. Выполнить индикацию принятых данных на экране цифрового индикатора.*

 

* задания повышенной сложности.

Содержание отчета

В отчете необходимо привести следующее:

– характеристики лабораторной вычислительной системы;

– исходный модуль разработанной программы;

– анализ полученных результатов и краткие выводы по работе, в которых необходимо отразить особенности использования встроенных в микроконтроллер модулей USART при реализации обмена данными между лабораторным макетом и ПЭВМ.

 

Контрольные вопросы и задания

1. Поясните принципы передачи информации по последовательным и параллельным интерфейсам.

2. Назовите современные универсальные интерфейсы и приведите их основные характеристики.

3. Поясните принципы обмена данными по интерфейсу RS232C.

4. Какие регистры используются для настройки параметров передачи данных с помощью встроенного в микроконтроллер AVR MEGA128 блока USART?

5. Какие сигналы прерываний могут генерироваться блоком USART?

6. Поясните формат кадра при обмене данных по интерфейсу RS-232C.








Дата добавления: 2015-09-07; просмотров: 1934. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Этапы и алгоритм решения педагогической задачи Технология решения педагогической задачи, так же как и любая другая педагогическая технология должна соответствовать критериям концептуальности, системности, эффективности и воспроизводимости...

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

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

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия