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

Принципы обмена данными по последовательному интерфейсу RS-232C

Читайте также:
  1. B. Основные принципы исследования истории этических учений
  2. I Психологические принципы, задачи и функции социальной работы
  3. I. Структурные принципы
  4. II. Принципы процесса
  5. II. Принципы средневековой философии.
  6. II. ЦЕЛИ, ЗАДАЧИ И ПРИНЦИПЫ ДЕЯТЕЛЬНОСТИ ВОИ
  7. II.4. Принципы монархического строя
  8. III. Принципы конечного результата
  9. III. Принципы конечного результата.
  10. VI. Биоэнергетические принципы аналитической терапии
  11. Алгоритм обмена ключа Диффи-Хеллмана
  12. Астральное Каратэ: Принципы и практика

Интерфейс RS-232C предназначен для соединения двух устройств (см. рисунок 5.1), находящихся на расстоянии до 15 м с предельной скоростью обмена данными около 10 кБайт/с. Линия TxD передачи первого устройства через преобразователь уровней RS-232C/ТТЛ соединяется с линией RxD приема второго и наоборот (режим обмена full duplex). Дополнительно используются общий и экранирующий сигналы интерфейса. Для управления соединенными устройствами применяется программное подтверждение (введение в поток передаваемых данных соответствующих управляющих символов). Возможна организация аппаратного подтверждения путем введения в протокол обмена дополнительных сигналов интерфейса для обеспечения функций определения статуса и управления.

Данные по интерфейсу RS-232C передаются в последовательном коде по кадрам – порциям данных, обрамленных служебной информацией (см. рисунок 5.2). Когда обмена данными нет, на линиях RxD или ТxD присутствует высокий уровень сигнала. Кадр начинается со стартового бита (сигнальные линии RxD или ТxD переводятся в состояние логического нуля), за которым следует младший бит слова данных, состоящего из 5-9 информационных разрядов). Далее (в зависимости от режима) может следовать бит четности (паритета). Завершают кадр один или два стоповых бита. Получив стартовый бит, приемник выбирает из линии биты данных через определенные интервалы времени. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми (допустимое расхождение - не более 10%).

 

Рисунок 5.1 – Обобщенная функционально-структурная схема соединения

двух устройств с помощью интерфейса RS-232C

 

 

 

Рисунок 5.2 – Формат кадра при обмене данными по интерфейсу RS-232C

 

 

5.1.2 Организация модулей 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 битов данных без бита четности.
  Разработать программу передачи 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 при реализации обмена данными между лабораторным макетом и ПЭВМ.

 

 

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

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

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

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

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

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

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

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.02 сек.)