Студопедия

КАТЕГОРИИ:

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


Интерфейс UART




 

Микроконтроллеры Atmega 16x и Atmega 162x имеют в своем составе модуль полнодуплексного универсального асинхронного приемопередатчика (UART). Через него осуществляется прием и передача информации, представленной последовательным кодом, поэтому модуль UART часто называют также последовательным портом. С помощью этого модуля микроконтроллер может обмениваться данными с различными внешними устройствами.

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

Известно, что при передаче данных могут происходить различные сбои. Модуль UART может обнаруживать и сигнализировать о следующих внештатных ситуациях:

· переполнение;

· ошибка кадрирования;

· неверный старт-бит.

Для уменьшения вероятности сбоев в модуле реализована такая полезная функция, как фильтрация помех.

Для взаимодействия с программой в модуле предусмотрены 3 раздельных прерывания, запрос на которые генерируется при наступлении следующих событий: «передача завершена», «регистр данных передатчика пуст» и «прием завершен».

Выводы микроконтроллера, используемые модулем UART, являются линиями портов ввода/вывода общего назначения.

Таблица 24.Выводы, используемые модулями UART.

 

Название ATmega16x ATmega162x Описание
RXD PD0   Вход UART0  
RXD0   PD0
TXD PD1   Выход UART0  
TXD0   PD1  
XCK PB0 PD4   Вход/выход внешнего тактового сигнала UART0
RXD1   PB2 Вход UART1  
TXD1   PB3 Выход UART1  
XCK1   PD2 Вход/выход внешнего тактового сигнала UART1

 

Таблица 25.Размещение регистров данных модулей UART.

 

Регистр ATmega16x ATmega162x Описание
UDR *   Регистр данных UART
UDR0   * Регистр данных UART0
  UDR1       *   Регистр данных UART1
 

Таблица 26.Регистры управления и состояния модулей UART.

 

Регистр ATmega16x ATmega162x Описание
UСSRA *   Регистр управления A
UСSRB * * Регистр управления B
UСSRC *   Регистр управления С
UСSR0A   * Регистр управления A UART0
UСSR0B   * Регистр управления B UART0
UСSR0C   * Регистр управления С UART0
UСSR1A   * Регистр управления A UART1
UСSR1B   * Регистр управления B UART1
UСSR1C   * Регистр управления С UART1
   
     
    RXCn TXCn UDREn FEn DORn UPEn U2Xn MPCMn  
  Чтение(R)/Запись(W) R R/W R R R R R/W R/W  
  Начальное значение  
                           

 

Рис. 17. Формат регистра UCSRnA

 

Таблица 27. Описание регистра UCSRA (UCSRnA)

RXCn Флаг завершения приема Флаг устанавливается в 1 при наличии непрочи­танных данных в буфере приемника (регистр данных UDR). Сбрасывается флаг аггпаратно после опустошения буфера. Если бит RXCIE (RXCIEn) ре­гистра UCSRB (UCSRnB) установлен, то при установке флата генерируется запрос на прерывание –“прием завершен”.
TXCn Флаг завершения передачи Данный флаг устанавливается в «1» после передачи всех разрядов посылки (включая стоп-бит) из сдвигового регистра передатчика, при условии, что в регистр данных UDR не было загружено новое значение. Этот флаг наиболее полезен при полудуплексной связи, при которой передающее устройство должно освободить линию и перейти в режим приема сразу же после окончания передачи. Если разряд TXCIEn регистра UCSRB (UCSRnB) установлен, то при установке флага ТХСn генерируется запрос на прерывание «передача завершена». Флаг сбрасывается аппаратно при выполнении подпрограммы обработки прерывания или программно записью в него лог. «1».
UDREn Регистр данных пуст Данный флаг устанавливается в «1» после пересылки байта из регистра данных UDR в сдвиговый регистр передатчика. Установка этого флага означает, что передатчик готов к получению нового значения для передачи. Если разряд UDRIEn регистра UCSRB (UCSRBn) установлен, генерируется запрос на прерывание «регистр данных пуст». Сбрасывается флаг аппаратно при записи в регистр данных. Соответственно, если прерывание используется, в обработчике прерывания следует обязательно произвести запись в этот регистр. В противном случае после окончания обработки прерывания оно будет вызвано снова.
FEn Флаг ошибки кадрирования Данный флаг устанавливается в «1», при обнаружении ошибки кадрирования, т.е. если стоп-бит принятого слова равен «0». Флаг сбрасывается при приеме стоп-бита, равного «1».
DORn Флаг переполнения Данный флаг устанавливается в «1», если в сдвиговом регистре приемника находится новое принятое слово, а старое содержимое регистра данных не прочитано. Флаг остается установленным до тех пор, пока не будет прочитано содержимое регистра данных. Флаг сбрасывается при пересылке принятых данных из сдвигового регистра приемника в регистр данных.
UPEn Флаг ошибки контроля чётности. Флаг устанавливается в 1,если в данных, находящихся в буфере приемника, выявлена ошибка контроля чётности. При отключенном контроле чётности этот бит постоянно сброшен в 0.  
U2Xn Удвоение скорости обмена. Если этот бит установлен в 1, то коэффициент деления предделителя контроллера скорости передачи уменьшается с 16 до 8, удваивая тем самым скорость асинхронного обмена по последовательному каналу. Этот бит используется только при асинхронном режиме работы и в синхронном режиме должен быть сброшен.
MPCMn Режим мультипроцессорного обмена. Если этот бит установлен в 1, ведомый микроконтроллер ожидает приема кадра, содержащего адрес. Кадры, не содержащие адреса устройства, игнорируются.

 

 
  RXCIEn TXCIEn UDRIEEn RXENn TXENn UCZn2 RXB8n ТХВ8n
Чтение(R)/Запись(W) R/W R/W R/W R/W R/W R/W R R/W
Начальное значение

 

Рис. 18. Формат регистра UCSRnB

 

Таблица 28. Описание регистра UCSRnB

Разряд Название Описание
RXCIEn Разрешение прерывания по завершении приема Если данный разряд установлен в «1», то при установке флага RXC в регистре UCSRA (UCSRAn) происходит запуск подпрограммы обработки прерывания «прием завершен» (если прерывания разрешены)
ТХСIn Разрешение прерывания по завершении передачи Если данный разряд установлен в «1», то при установке флага ТХСn в регистре USR (UCSRA) происходит запуск подпрограммы обработки прерывания «передача завершена» (если прерывания разрешены)
UDRIEn Разрешение прерывания при очистке регистра данных UART Если данный разряд установлен в «1», то при установке флага UDREn в регистре UCSRA (UCSRAn) происходит запуск подпрограммы обработки прерывания «регистр данных пуст» (если прерывания разрешены)
RXENn Разрешение приема При установке данного разряда в «1» разрешается работа приемника UART. Если приемник выключен, флаги ТХСn, DORn и FnE не могут быть установлены. При сбросе разряда RXENn эти флаги не сбрасываются
TXENn Разрешение передачи При установке данного разряда в «1» разрешается работа передатчика UART. Если разряд сбрасывается в «0» во время передачи, выключение передатчика произойдет только после завершения передачи текущего слова и слова, находящегося на момент выключения в регистре данных UDR.
UCSZn2 Формат посылок Если разряд установлен в «1», производится передача и прием 9-разрядных данных. При передаче значение старшего (8-го) разряда берется из разряда ТХВ8 регистра, а при приеме записывается в разряд RXB8.
RXB8n 8-й разряд принимаемых данных Если флаг CHR9 установлен в «1», этот разряд содержит значение старшего разряда принятого слова.
ТХВ8n 8-й разряд передаваемых данных Если флаг CHR9 установлен в «1», содержимое этого разряда передается как старший разряд слова.

 

  URSELn UMSELn UPMn1 UPMn0 USBSn UCSZn1 UCSZn0 UCPOLn
Чтение(R)/Запись(W) R/W R/W R/W R/W R/W R/W R/W R/W
Начальное значение

 

Рис. 19. Формат регистра UCSRC (UCSRnC)

 

Таблица 29. Описание регистра UCSRnB

Разряд Название Описание
URSELn Выбор регистра Этот бит определяет, в какой из регистров модуля производится запись.Если бит установлен в 1,обращение производится к регистру UCSRnC.Если же бит сброшен в 0 обращение производится к регистру UBRRnH.
UMSELn Режим работы UART Если данный разряд установлен в «0», то модуль работает в асинхронном режиме. Если бит установлен в 1, то модуль работает в синхронном режиме.
UPMn1 UPMn0 Режим работы схемы контроля и формирования бита четности. Эти биты определяют функционирование схем контроля и формирования бита чётности.
USBSn Количество стоп-битов. Этот бит определяет количество стоп-битов, посылаемых передатчиком.Если бит сброшен в 0,передатчик посылает 1 стоп-бит, если установлен в 1 ,то 2 стоп-бита.Для приёмника содержимое этого бита безразлично.
UCSZn1 Количество стоп-битов. Если разряд установлен в «1», производится передача и прием 9-разрядных данных. При передаче значение старшего (8-го) разряда берется из разряда ТХВ8 регистра, а при приеме записывается в разряд RXB8.
UCSZn0 Формат посылок. Совместно с битом UCSZn2 регистра UCSRnB эти биты определяют количество битов данных в посылках.
UСPOLn Полярность тактового сигнала. Значение этого бита определяет момент выдачи и считывания данных на выводах модуля. Бит используется только при работе в синхронном режиме.При работе в асинхронном режиме он должен быть сброшен в 0.
UCPOL Выдача данных на вывод TXDn Считывание данных с вывода RXDn
Спадающий фронт XCKn Нарастающий фронт XCKn
Нарастающий фронт XCKn Спадающий фронт XCKn

 


Поделиться:

Дата добавления: 2014-12-30; просмотров: 205; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты