Асинхронный передатчик 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 (десятичное)              

 

 

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

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

Номер разряда                
Обозн. разряда 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).

 



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-02-25 Нарушение авторских прав и Нарушение персональных данных


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