новая папка 1 / 298009
.pdf«
»
!" #"$" % &'( )*+")
"$,-)%, '%: . . /%0"!"), . . %2") 3, .4. "/-5%!
"/"! 6 +&-, '7$8%9 &"2 2014
,) /6& !" !-* !"-2 ,"&%$8%2 $") ,"2 0%+%$8"5" 0-8*'7, ,- 15 2-( 2014 5., #/","8"' A 5
3 !+ !, &-/ 0%+.-2-, !-*8, #/"0. . . " / B")
!" #"$" % #"&5",")' !" !- 8-0 &/ /-&%"0%+%8% 0%+%$8"5" 0-- 8*'7, ,- "/"! 6$8"5" 5"$*&-/$,) !!"5" *!%) /$%, ,-.
8"2 !&* ,$( &'( $,*& !,") 4-5" 8*/$- " !"9 % 5-5" 8*/$- " !"-+-" !"9 0"/2 " * !%(.
'( !-#/-)' !%( -8-'-)/%-,- 011800 – -&%"0%+%8-, $# 3%-'7!"$,% 010801 – -&%"0%+%8- % D' 8,/"!%8-
СОДЕРЖАНИЕ
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Интерфейс USART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Лабораторная работа «Взаимодействие с компьютером по интерфейсу USART» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Описание лабораторного макета . . . . . . . . . . . . . . . . . . . . . . 14 Варианты заданий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3
ВВЕДЕНИЕ
Применение микропроцессорной техники и микроконтроллеров в современной радиофизике обусловлено активным использованием методов цифровой обработки сигнала при проектировании радиофизических и телекоммуникационных систем.
Следовательно, для студентов, обучающихся по направлению «Радиофизика», весьма актуально приобретение знаний в области цифровой техники и умение программировать встраиваемые микропроцессорные системы, например, микроконтроллеры и сигнальные процессоры.
В данном пособии рассмотрена лабораторная работа, посвящённая взаимодействию микроконтроллеров посредством встроенных интерфейсов UART и I2C. Приведены краткие теоретические сведения, необходимые для выполнения лабораторной работы.
4
Интерфейс USART
Микроконтроллер ATmega8 имеет в своем составе один модуль универсального синхронно/асинхронного приемопередатчика (USART). Модуль приемо-передатчика обеспечивает полнодуплексный обмен по последовательному каналу, при этом скорость передачи данных может варьироваться в довольно широких пределах. Длина посылки может составлять от 5 до 9 бит.
Для взаимодействия с программой предусмотрены три прерывания, запрос на генерацию которых формируется при наступлении следующих событий: «передача завершена», «регистр данных передатчика пуст» и «прием завершен».
Модуль состоит из трех основных частей: блока тактирования, блока передатчика и блока приемника. Блок тактирования модулей USART содержит схему синхронизации, которая используется при работе в синхронном режиме, и контроллер скорости передачи.
Блок передатчика включает одноуровневый буфер, сдвиговый регистр, схему формирования бита четности и схему управления. Блок приемника, в свою очередь, содержит схемы восстановления тактового сигнала и данных, схему контроля четности, двухуровневый буфер, сдвиговый регистр а также схему управления.
Буферные регистры приемника и передатчика располагаются по одному адресу пространства ввода/вывода и обозначаются как регистр данных UDR. В этом регистре хранятся младшие 8 битов принимаемых и передаваемых данных. При чтении регистра UDR выполняется обращение к буферному регистру приемника, при записи — к буферному регистру передатчика. В модулях USART буфер приемника является двухуровневым (FIFOбуфер), изменение состояния которого происходит при любом обращении к регистру UDR. В связи с этим не следует использовать регистр UDR в качестве операндов команд типа «чтение/модификация/запись» (SBI и CBI). Кроме того, следует быть
5
очень аккуратными при использованием команд проверки SBIC и SBIS, поскольку они также изменяют состояние буфера приемника.
Для управления модулями USART используются три регистра: UCSRA, UCSRB и UCSRC.
Регистр управления UCSRA
|
Номер бита |
7 |
6 |
|
5 |
4 |
3 |
|
2 |
1 |
0 |
|
||
|
Имя бита |
RXC |
TXC |
UDRE |
FE |
DOR |
UPE |
U2X |
MPCM |
|
||||
|
|
|
|
|
Биты регистра UCSRA |
|
|
|
|
|||||
|
Бит |
Название |
Описание |
|
|
|
|
|
|
|
|
|||
|
7 |
RXC |
|
Флаг завершения приема. Флаг устанавлива- |
|
|||||||||
|
|
|
|
ется в 1 при наличии непрочитанных данных |
|
|||||||||
|
|
|
|
в буфере приемника (регистр данных UDR). |
|
|||||||||
|
|
|
|
Сбрасывается флаг аппаратно после опустоше- |
|
|||||||||
|
|
|
|
ния буфера. Если бит RXCIE регистра UCSRB |
|
|||||||||
|
|
|
|
установлен, то при установке флага генериру- |
|
|||||||||
|
|
|
|
ется запрос на прерывание «прием завершен» |
|
|||||||||
|
|
|
|
|
|
|||||||||
|
6 |
TXC |
|
Флаг завершения передачи. Флаг устанавли- |
|
|||||||||
|
|
|
|
вается в 1 после передачи всех битов посылки |
|
|||||||||
|
|
|
|
из сдвигового регистра передатчика при усло- |
|
|||||||||
|
|
|
|
вии, что в регистр данных UDR не было за- |
|
|||||||||
|
|
|
|
гружено новое значение. Если бит TXCIE ре- |
|
|||||||||
|
|
|
|
гистра UCSRB установлен, то при установке |
|
|||||||||
|
|
|
|
флага генерируется прерывание «передача за- |
|
|||||||||
|
|
|
|
вершена». Флаг сбрасывается аппаратно при |
|
|||||||||
|
|
|
|
выполнении подпрограммы обработки преры- |
|
|||||||||
|
|
|
|
вания или программно, записью в него лог. 1 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6
5 |
UDRE |
Флаг опустошения регистра данных. Данный |
|
|
флаг устанавливается в 1 при пустом буфере |
|
|
передатчика (после пересылки байта из реги- |
|
|
стра данных UDR в сдвиговый регистр пере- |
|
|
датчика). Установленный флаг означает, что в |
|
|
регистр данных можно загружать новое значе- |
|
|
ние. Если бит UDRIE регистра UCSRB уста- |
|
|
новлен, генерируется запрос на прерывание |
|
|
«регистр данных пуст». Флаг сбрасывается ап- |
|
|
паратно, при записи в регистр данных |
|
|
|
4 |
FE |
Флаг ошибки кадрирования. Флаг устанавли- |
|
|
вается в 1 при обнаружении ошибки кадри- |
|
|
рования, т. е. если первый стоп-бит принятой |
|
|
посылки равен 0. Флаг сбрасывается при при- |
|
|
еме стоп-бита, равного 1 |
|
|
|
3 |
DOR |
Флаг переполнения. Флаг устанавливается в 1, |
|
|
если в момент обнаружения нового старт-бита |
|
|
в сдвиговом регистре приемника находится |
|
|
последнее принятое слово, а буфер приемника |
|
|
полон (содержит два байта). Флаг сбрасывает- |
|
|
ся при пересылке принятых данных из сдви- |
|
|
гового регистра приемника в буфер |
|
|
|
2 |
UPE |
Флаг ошибки контроля четности. Флаг уста- |
|
|
навливается в 1, если в данных, находящихся |
|
|
в буфере приемника, выявлена ошибка контро- |
|
|
ля четности. При отключенном контроле чет- |
|
|
ности этот бит постоянно сброшен в 0 |
|
|
|
7
1 |
U2X Удвоение скорости обмена. Если этот бит |
|
установлен в 1, то коэффициент деления |
|
предделителя контроллера скорости передачи |
|
уменьшается с 16 до 8, удваивая тем самым |
|
скорость асинхронного обмена по последова- |
|
тельному каналу. Этот бит используется толь- |
|
ко при асинхронном режиме работы и в син- |
|
хронном режиме должен быть сброшен |
0MPCM Режим мультипроцессорного обмена. Если
этот бит установлен в 1 ведомый микроконтроллер ожидает приема кадра, содержащего адрес. Кадры, не содержащие адреса устройства, игнорируются
Регистр управления UCSRB |
|
|||
Номер бита |
7 |
6 |
5 |
4 |
Имя бита |
RXCIE |
TXCIE |
UDRIE |
RXEN |
|
|
|
|
|
|
|
|
|
|
Номер бита |
3 |
2 |
1 |
0 |
|
|
|
|
|
Имя бита |
TXEN |
UCSZ2 |
RXB8 |
TXB8 |
|
|
|
|
|
|
|
Биты регистра UCSRB |
Бит |
Название |
Описание |
|
|
|
7 |
RXCIE |
Разрешение прерывания по завершении прие- |
|
|
ма. Если данный бит установлен в 1, то при |
|
|
установке флага RXC регистра UCSRA гене- |
|
|
рируется прерывание «прием завершен» (если |
|
|
флаг I регистра SREG установлен в 1) |
|
|
|
6 |
TXCIE |
Разрешение прерывания по завершении пере- |
|
|
дачи. Если данный бит установлен в 1, то при |
|
|
установке флага ТХС регистра UCSRA гене- |
|
|
рируется прерывание «передача завершена» |
|
|
|
8
5 |
UDRIE |
Разрешение прерывания при очистке регистра |
|
|
данных UART. Если данный бит установлен |
|
|
в 1, то при установке флага UDRE реги- |
|
|
стра UCSRA генерируется прерывание «ре- |
|
|
гистр данных пуст» (если флаг I регистра |
|
|
SREG установлен в 1) |
|
|
|
4 |
RXEN |
Разрешение приема. При установке этого би- |
|
|
та в 1 разрешается работа приемника USART |
|
|
и переопределяется функционирование вывода |
|
|
RXD. При сбросе бита RXEN работа прием- |
|
|
ника запрещается, а его буфер сбрасывается. |
|
|
Значения флагов ТХС, DOR и FE при этом |
|
|
становятся недействительными |
|
|
|
3 |
TXEN |
Разрешение передачи. При установке этого би- |
|
|
та в 1 разрешается работа передатчика UART |
|
|
и переопределяется функционирование вывода |
|
|
TXD Если бит сбрасывается в 0 во время пе- |
|
|
редачи, то выключение передатчика произой- |
|
|
дет только после завершения передачи дан- |
|
|
ных, находящихся в сдвиговом регистре и бу- |
|
|
фере передатчика |
|
|
|
2 |
UCSZ2 |
Формат посылок. Этот бит совместно с битами |
|
|
UCSZ1:0 регистра UCSRC используется для |
|
|
задания размера слов данных, передаваемых |
|
|
по последовательному каналу |
|
|
|
1 |
RXB8 |
8-й бит принимаемых данных. При использо- |
|
|
вании 9-битиых слов данных этот бит содер- |
|
|
жит значение старшего бита принятого слова. |
|
|
Содержимое этого бита должно быть считано |
|
|
до прочтения регистра данных UDR |
|
|
|
9
|
0 |
|
TXB8 |
8-й бит передаваемых данных. При использо- |
|
|||||||||
|
|
|
|
|
вании 9-битных слов данных содержимое это- |
|
||||||||
|
|
|
|
|
го бита является старшим битом передаваемо- |
|
||||||||
|
|
|
|
|
го слова. Требуемое значение должно быть за- |
|
||||||||
|
|
|
|
|
несено в этот бит до загрузки байта данных в |
|
||||||||
|
|
|
|
|
регистр UDR |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
Регистр управления UCSRC |
|
|
|
||||||
|
|
|
|
Номер бита |
|
7 |
|
6 |
5 |
4 |
|
|
||
|
|
|
|
Имя бита |
|
URSEL |
UMSEL |
UPM1 |
UPM0 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
Номер бита |
|
3 |
|
2 |
1 |
0 |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
Имя бита |
|
USBS |
|
UCSZ1 |
UCSZ0 |
UCPOL |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Биты регистра UCSRC |
|
|
|
|||
Бит |
|
Название |
|
Описание |
|
|
|
|
|
|||||
|
|
|
|
|
|
|||||||||
7 |
|
|
URSEL |
|
Выбор регистра. Этот бит определяет, в ка- |
|||||||||
|
|
|
|
|
|
|
кой из регистров модуля производится запись. |
|||||||
|
|
|
|
|
|
|
Если бит установлен в 1, обращение произво- |
|||||||
|
|
|
|
|
|
|
дится к регистру UCSRC. Если же бит сбро- |
|||||||
|
|
|
|
|
|
|
шен в 0, обращение производится к регистру |
|||||||
|
|
|
|
|
|
|
UBRRH |
|
|
|
|
|
||
|
|
|
|
|
||||||||||
6 |
|
UMSEL |
|
Режим работы USART. Если бит сброшен в |
||||||||||
|
|
|
|
|
|
|
0, то модуль работает в асинхронном режиме. |
|||||||
|
|
|
|
|
|
|
Если бит установлен в 1, то модуль работает |
|||||||
|
|
|
|
|
|
|
в синхронном режиме |
|
|
|
||||
|
|
|
|
|||||||||||
5, 4 |
UPM1:UPM0 |
|
Режим работы схемы контроля и формиро- |
|||||||||||
|
|
|
|
|
|
|
вания бита четности. Эти биты определяют |
|||||||
|
|
|
|
|
|
|
функционирование схем контроля и формиро- |
|||||||
|
|
|
|
|
|
|
вания бита четности |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10