Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧПУ.Контроллеры электроавтоматики.doc
Скачиваний:
21
Добавлен:
17.09.2019
Размер:
6.86 Mб
Скачать

2.4.Универсальный синхронно – асинхронный приемопередатчик (usart).

Модуль USART представляет собой устройство ввода/вывода последовательного типа и предназначен для связи с любым устройством, поддерживающим заданный формат представляемой информации и согласованное по уровням передаваемых сигналов. Для обмена с абонентами модуль использует выводы микроконтроллера RC6 и RC7, которые настраиваются на вход или выход с помощью регистра TRISC, о чем будет сказано в соответствующем разделе.

Модуль может работать в одном из трех режимов:

- асинхронный полный дуплекс,

- ведущий синхронный полудуплекс,

- ведомый синхронный полудуплекс.

На практике наибольший интерес представляет режим асинхронного полного дуплекса. Рассмотрим его подробно.

2.4.1.Режим асинхронного полного дуплекса.

В этом режиме есть два подрежима:

- подрежим прямого обмена с одним абонентом,

- подрежим сетевого обмена.

Для выбора соответствующего подрежима используется 9 – ый разряд передающего регистра. Если он равен 0, то выбирается подрежим прямого обмена и принятый приемником байт является байтом данных. Если же 9–ый разряд равен 1, то принятый всеми приемниками сетевой структуры байт является адресом устройства в сети и следующий принятый байт является байтом данных для данного адресата.

Для удобства изучения рассмотрим отдельно работу передатчика и приемника.

2.4.1.1. Асинхронный передатчик usart.

Структурная схема передатчика показана на рис.

Работает передатчик следующим образом. Для настройки и управления модулем USART используется два регистра специального назначения: TXSTA и RCSTA, значения разрядов которых приведены в таблицах 24,25. Принцип работы передатчика аналогичен работе любого последовательного порта: передаваемый байт записывается в буферный регистр TXREG (адрес 19h) обычным циклом записи. Из буферного регистра байт автоматически переписывается в сдвиговый регистр TSR, где к передаваемому байту автоматически пристыковываются служебные биты: старт-бит и стоп-бит. В случае использования сетевого подрежима в восьмой бит регистра TSR (0 бит регистра TXSTA) записывается программно 1, если передаваемый байт является адресом абонента, или 0, если байт является информацией. В момент окончания перезаписи байта из регистра TXREG в регистр TSR устанавливается в «1» флаг TXIF, свидетельствующий о том, что буферный регистр пуст и в него можно записывать очередной байт для передачи, при разрешении работать по прерываниям, флаг TXIF совместно с сигналом TXIE вызывают прерывание микроконроллера от передатчика модуля USART. При поступлении на вход регистра TSR тактовых импульсов из генератора скорости обмена SPBRG содержимое регистра TSR выдвигается через вывод RC6/TX микроконтроллера и поступает на вход приемника абонента (абонентов для сетевого подрежима).

Скорость передачи определяется настройкой генератора скорости обмена SPBRG и выбором низкоскоростного режима (BGRH = 0, бит 2 регистра TXSTA), или высокоскоростного режима (BGRH = 1). Скорость в данном случае рассчитывается по формулам:

Vclk = Fosc / 64 (X+1) - для низкоскоростного режима,

Vclk = Fosc / 16 X+1) – для высокоскоростного режима.

где: X – число записанное в регистр SPBRG (адрес 99h), выбранное из таблицы 22.

Таблица 22 (для Fosc = 4 МГц).

Скорость обмена в К/бод

0,3

1,2

2,4

9,6

19,2

28,8

57,6

Значение SPBRG (десятичное)

207

51

25

6

2

1

0

Распределение и обозначение битов регистра настройки передатчика TXSTA (адрес 98h) приведено в таблице 23

Регистр TXSTA Таблица 23

Номер разряда

7

6

5

4

3

2

1

0

Обозн. разряда

CSRC

TX9

TXEN

SYNC

-

BRGH

TRMT

TX9D

где:

7 бит – CSRC – осуществляет выбор источника тактового сигнала для синхронного режима: бит =1- внутренний тактовый сигнал от генератора BRG, бит =0- внешний тактовый сигнал с вывода RC6. Для рассматриваемого асинхронного режима бит не имеет значения.

6 бит – TX9 - разрешение 9-ти разрядной передачи: 1 – 9-ти разрядная передача, 0 – 8-ми разрядная передача.

5 бит – TXEN – разрешение передачи: 1 – передача разрешена, 0 = передача запрещена.

4 бит – SYNC – режим работы модуля USART: 1 – синхронный, 0 – асинхронный.

3 бит – не используется.

2 бит – BRGH – выбор скоростного режима: 1 – высокоскоростной режим, 0 – низкоскоростной режим.

1 бит – TMRT – флаг состояния сдвигового регистра TSR: 1- регистр пуст, 0 – регистр занят,

0 бит – TX9D – значение 9-го разряда при 9-ти разрядной передаче.

Рекомендуемая последовательность действий при программировании передатчика:

1.Установить расчетную скорость передачи с помощью регистра SPBRG и бита BRGH в регистре TXSTA.

2. Выбрать асинхронный режим передачи сбросом бита SYNC в регистре TXSTA и установкой бита SPEN в регистре RCSTA (см. ниже).

3. При выборе режима обслуживания прерывания необходимо:

- установить бит TXIE в регистре PIE1,

- установить бит PEIE в регистре INTCON – прерывание от периферийных модулей,

- установить бит GIE в регистре INTCON – глобальное прерывание.

4. При 9-ти разрядной передаче разрешить ее установкой бита TX9 в регистре TXSTA.

5. Разрешить передачу установкой бита TXEN, при этом автоматически установится

флаг TXIF, что приведет к вызову подпрограммы прерывания, если оно разрешено.

6. Если передача 9-ти разрядная записать соответствующее число в разряд TX9D.

7. Записать передаваемый байт в регистр TXREG.

Примечание.

При передаче массива данных возможны два варианта:

  1. при работе по прерываниям запись очередного байта, запись 9-го разряда при9-ти разрядной передаче, контроль окончания передачи массива, а также управление битами прерывания TXIE, PEIE, GIE производится в подпрограмме обслуживания прерывания.

  2. при работе без прерывания перед записью 9-го разряда и передаваемого байта необходимо убедиться, что буфер TXREG пуст ( бит TXIF – 4 бит в регистре PIR1 равен 1).