Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002

.pdf
Скачиваний:
265
Добавлен:
11.03.2016
Размер:
9.1 Mб
Скачать

ГЛАВА 3. МИКРОКОНВЕРТЕР АОцСв12 ФИРМЫ ANALOG DEVICES

139

C /T 2# = 0 как таймер. В обоих случаях битом САР2 может быть уста­ новлен режим захвата счетного значения (САР2 =1), либо режим счета с автоперезагрузкой исходного значения (САР2 = 0). Захват (фиксация) счетного значения из регистров данных ТН2, TL2 и перезагрузка этих ре­ гистров исходным значением производится с использованием регистров

RLAP2H, RLAP2L.

Таймер 2 имеет два флага запросов прерывания, TF2 и EXF2. Оба за­ проса обслуживаются с использованием одного вектора 2ВН. Идентифи­ кацию запроса производит процедура обслуживания прерывания. Флаг TF2 устанавливается при переполнении счетного регистра Таймера 2 (RCLK = TCLK = 0), а флаг EXF2 устанавливается по перепаду «1» - «0» на входе Т2ЕХ.

3 .6 . Последовательные интерфейсы UART, l2C, SPI

Микроконвертер ADpC812 имеет три последовательных порта: асин­ хронный порт UART и синхронные порты SPI, 12С.

Порт UART. Последовательный порт UART обеспечивает асинхрон­ ный дуплексный последовательный обмен с программируемым форматом передаваемого кадра. В целом, порт UART микроконвертера ADpC8l2 соответствует блоку последовательного порта ядра 8x52, но отсутствуют регистры SADEN, SADDR и связанные с ними режимы работы.

Регистр SBUF является сдвоенным регистром данных порта UART. Под одним именем и адресом выступают регистры приемника и передатчи­ ка, что обеспечивает одновременный прием и передачу данных. Регистр SCON является регистром управления порта UART, он имеет индивиду­ ально программируемые биты.

7 6 5 4 3 2 1 0

DATA7 DATA6 DATA5 DATA DATA3 DATA2 DATA1 DATАО

Исх.код

98Н ISPI WCOL SPE SPIM CPOL СРНА SPR1 SPRO

Исх.код

140

 

 

 

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

 

 

 

 

 

Бит

Мнемо­

 

 

Описание

 

 

ника

 

 

 

 

SCON.7

SM0

Биты управления режимами работы

Скорость обмена

SCON.6

SM1

SMO SM1 Режимы работы

0

0

8-битный сдвиговый регистр

Foec/12

 

 

0

1

8-битный асинхронный обмен Скорость переполнения

 

 

 

 

 

таймера/32 (х2)

 

 

1

0

9-битный асинхронный обмен

Foec/64 (х2)

 

 

1

1

9-битный асинхронный обмен

Скорость переполнения

 

 

 

 

 

таймера/32 (х2)

SCON.5

SM2

Бит разрешения работы в многопроцессорной системе в

 

 

режимах 2 и 3

 

SCON.4

REN

Бит разрешения приемника

 

SCON.3

ТВ8

9-й бит передаваемого кадра в режимах 2 и 3

SCON.2

RB8

9-й бит принятого кадра в режимах 2 и 3

SCON.1

TI

Флаг прерывания передатчика

 

SCON.O

RI

Флаг прерывания приемника

 

Порт SPI. Последовательный порт SPI обеспечивает скоростной син­ хронный обмен данными. Максимальная скорость передачи данных через порт SPI микроконвертера ADpC812 достигает 4 Мбит/сек при Fosc=16Mrn,. Данные передаются пакетами по 8 бит. Кроме двух линий данных в состав SPI-интерфейса входят линии CSx# выбора устройств и линия синхронизации SCLOCK (рис. 3.10).

АОцС812

CS#1

Рис. 3.10. Соединение устройств по каналу SPI

Интерфейс SPI является локальным, для совместной работы устройств достаточно согласовать уровни на линиях (питание устройств +3 В или

ГЛАВА 3. МИКРОКОНВЕРТЕР АОцСЙ12 ФИРМЫ ANALOG DEVICES

141

+5 В). С точки зрения программирования, драйвер микроконвертера ADpC812, обслуживающий связь с конкретным SPI устройством, должен обеспечить передачу и прием данных в соответствии со спецификацией этого устройства. Протоколы обмена и временные диаграммы обеспечива­ ются встроенными в микроконтроллер и каждое устройство блоками SPIинтерфейса.

При необходимости можно передавать данные в обоих направлениях по одной линии с разделением времени. Чтобы при этом исключить экс­ тремальные состояния, если оба устройства захотят выдать данные на ли­ нию одновременно, в линию данных включается последовательно резистор номиналом 1 - 1 0 кОм.

Соединение между ведущим и ведомым устройствами с использовани­ ем SPI интерфейса, показано на рис. 3.11. Вывод SCLOCK является вы­ ходом тактового сигнала ведущего устройства и входом тактового сигнала ведомого. После команды записи ведущим устройством в регистр данных SPI-порта начинает работать тактовый генератор интерфейса SPI и запи­ санные данные сдвигаются через вывод MOSI ведущего микроконтроллера на вывод MOSI ведомого. После сдвига байта данных тактовый генератор останавливается, устанавливается флаг окончания передачи ISPI. Если в регистре IE2 установлен бит разрешения прерывания ESI, то возникнет запрос прерывания.

Рис. 3.11. Обмен данными между устройствами по каналу SPI

Для выбора SPI-устройства в качестве ведомого служит вход SS# с активным низким уровнем сигнала. Режим ведущий/ведомый может быть установлен и программным способом посредством установки или очистки бита SPIM в регистре управления SPICON.

Два сдвиговых регистра ведущего и ведомого микроконтроллеров можно рассматривать как один разнесенный 16-разрядный циклический сдвиговый регистр. При сдвиге данных из ведущего микроконтроллера в

142 СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

ведомый одновременно происходит сдвиг данных из ведомого микрокон­ троллера в ведущий, т.е. в течение одного цикла сдвига происходит обмен данными между ведущим и ведомым микроконтроллерами.

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

Существует четыре варианта комбинации фазы и полярности сигнала SCLOCK относительно данных. Они задаются битами СРНА и CPOL. Форматы передачи данных по каналу SPI показаны на рис. 3.12.

Ведущее устройство (СРНА=1)

Рис. 3.12. Передача данных по каналу SPI при различных комбинациях фазы и полярности синхросигнала относительно данных

ГЛАВА 3. МИКРОКОНВЕРТЕР АР|лС812 ФИРМЫ ANALOG DEVICES

143

Регистр SPIDAT является регистром данных порта SPI, а регистр SPICON управляет режимом работы порта SPI, а также*содержит флаги прерывания и ошибки записи. Этот регистр управления имеет индивиду­ ально программируемые биты.

F7H

DATA7 DATA6 DATA5 DATA4 DATАЗ DATA2 DATA1 DATАО

Исх.код

0

0

0

0

0

0

0

0

 

7

6

5

4

3

2

1

0

F8H

ISPI

WCOL

SPE

SPIM

CPOL

СРНА

SPR1

SPR0

Исх.код

О

 

 

 

 

 

 

 

 

Бит

Мнемоника

 

 

Описание

 

SPICON.7

ISPI

 

Флаг прерывания порта SPI.

Бит устанавливается

 

 

 

 

аппаратно

в конце передачи

 

 

SPICON.6

WCOL

 

Флаг ошибки записи

 

 

 

SPICON.5

SPE

 

Бит разрешения SPI

 

 

 

 

 

 

 

Если = 1, то порт разрешен

 

 

 

 

 

 

Если = 0, то порт запрещен

 

 

SPICON.4

SPIM

 

Бит установки режима ведущего

 

 

 

 

 

Если = 1, то устройство яляется ведущим

 

 

 

 

Если = 0, то устройство является ведомым

SPICON.3

CPOL

 

Бит выбора полярности синхросигнала

 

 

 

 

 

Если = 1, то пассивный уровень высокий

 

 

 

 

 

Если = 0, то пассивный уровень низкий

 

SPICON.2

CPHA

 

Бит выбора фазы синхросигнала

 

 

 

 

 

Если=1, то

фиксация по спадающему фронту

 

 

 

 

Если = 0, то фиксация по нарастающему фронту

SPICON. 1

SPR1

 

Биты выбора коэффициента деления синхрочастоты

SPICON.0

SPRO

 

процессора

для образования синхросигнала SPI

 

 

 

 

Fspi=Fosc/[4,8,32,64]

 

 

 

Порт 12С. Последовательный порт 12С обеспечивает меньшую скорость обмена, чем порт SPI. Его преимуществом является возможность переда­ вать данные по локальной шине всего из двух линий, поскольку адрес устройства входит в посылку. По одной из линий передаются данные, а вторая служит для передачи синхросигнала. Каждая линия «подтянута» через резистор 1 - 1 0 кОм к потенциалу шины питания (рис. 3.13).

Скорость обмена по каналу 12С определяется частотой синхросигнала SCLOCK, который формирует ведущее устройство.

144

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Рис. 3.13. Организация последовательного канала 12С

Передача начинается стартовым битом, который идентифицируется в том случае, когда на линии данных имеет место переход «1» - «О», а ли­ ния синхронизации имеет потенциал «1» (рис. 3.14).

!

!

MSB

 

 

LSB

 

MSB

LSB

 

 

SDATA

I i /

д

"

" ......

I I

]

 

/

 

 

V

T t

,

|

Адрес ведомого

\/R /W # \

 

j

 

Данные

\

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

i

,

i n

n

.

Л П _ П

9

_ Л

1

_ .

J 1 T L

 

T -11 ' ' 2 1--------------

 

- J 7 ,— J 8

 

---------

------------------

8

9 ^ J T

 

 

 

 

 

 

ACK

 

 

 

ACK

Stop

Start

 

 

 

 

bit

 

 

 

 

bit

bit

 

bit

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.14. Передача данных по каналу 12С

За стартовым битом ведущее устройство посылает байт (у которого первым следует старший бит MSB), содержащий адрес ведомого устройст­ ва и бит управления R /W # (рис. 3.15). Этот бит управляет направлением передачи: при R /W # = 0 ведущее устройство будет записывать данные в ведомое, а при R /W # = 1 будет читать.

ГЛАВА 3. МИКРОКОНВЕРТЕР АРцС812 ФИРМЫ ANALOG DEVICES

145

MSB

LSB

R/W

АДРЕС ВЕДОМОГО

Рис. 3.15. Формат первого байта передачи по каналу 12С

Операция чтения/записи будет иметь место, если будет получен пра­ вильный бит подтверждения от ведомого устройства (рис. 3.16). Все ведо­ мые устройства сравнивают посланный ведущим устройством адрес со сво­ им собственным и устройство, идентифицировавшее адрес как свой, посы­ лает бит подтверждения. Бит подтверждения представляет собой «О» во время 9-го импульса синхронизации и должен посылаться ведомым уст­ ройством в конце каждого байта обмена.

Данные

[

 

 

 

 

1

 

 

_____ 1

 

1

 

 

 

1

 

 

 

Данные

!

 

 

 

передатчика

|

1

DATA

LSB j

 

!

1 MSB

 

L j

 

 

 

1

■“ "1

 

 

 

1

 

 

 

 

1

 

 

 

Синхросигнал

»

1

 

 

от ведущего

i

 

 

 

i

1 J 7 L T 71 —

з- 6 — Г71 Г П T T L

 

1

 

 

 

Start

 

 

Строб бита подтверждения

Рис. 3.16. Подтверждение от ведомого на шине 12С

При отсутствии бита подтверждения и в конце обмена ведущее уст­ ройство формирует условие «STOP». Этим условием является переход «О» - «1» на линии данных при «1» на линии синхронизации.

В микроконвертере ADp.812 порт 12С обеспечивает аппаратную реали­ зацию режима ведомого и программную реализацию режима ведущего. После включения питания или инициализации порт 12С настроен на режим ведомого.

146

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Регистр I2CDAT является регистром данных, регистр I2CADD явля­ ется регистром адреса, а регистр I2CCON - регистром управления порта

12С.

Регистр I2CCON управляет режимом работы порта 12С, а также со­ держит флаг прерывания. Этот регистр управления имеет индивидуально программируемые биты.

7 6 5 4 3 2 1 0

9АН DAT7 DAT6 DAT5 DAT4 DAT3 DAT2 DAT1 DATO

Исх.код

9ВН

AD7

AD6 AD5

AD4

AD3

AD2

AD1

ADO

Исх.код

0

0

0

0

0

0

0

0

 

7

6

5

4

3

2

1

0

Е8Н

MDO MDE

МСО

MDI

I2CM

I2CRS

I2CTX

I2CI I2CCON

Исх.код

О

О

О

О

О

О

о

о

Бит

 

Мнемоника

 

 

 

Описание

 

I2CCON.7

MDO

Бит данных на выходе в режиме ведущего.

 

I2CCON.6

MDE

Бит разрешения выходных данных в режиме ведущего.

I2CCON.5

МСО

Бит синхронизации на выходе режиме ведущего.

I2CCON.4

MDI

Бит данных на входе в режиме ведущего.

 

I2CCON.3

I2CM

Бит выбора режима ведущего.

 

 

I2CCON.2

I2CRS

Бит инициализации порта 1%.

 

 

I2CCON.1

I2CTX

Бит статуса передачи.

 

 

 

I2CCON.O

I2CI

Флаг прерывания порта l2^

 

 

Ведомое устройство использует три младших бита регистра I2CCON. Поскольку этот режим поддержан аппаратно, идентификация бита START, выдача бита подтверждения, определение конца передачи и формирование запроса прерывания выполняются автоматически.

Ведущее устройство использует старшие четыре бита регистра I2CCON для формирования сигналов на линиях SCLOCK и SDATA. По­ скольку режим ведущего реализован программно, процедура обслужива­ ния порта SPI должна управлять сигналами на этих линиях, используя прямо адресуемые биты регистра I2CCON.

ГЛАВА 3. МИКРОКОНВЕРТЕР АОцС812 ФИРМЫ ANALOG DEVICES

147

 

3 .7 . Система прерываний

Система прерываний микроконвертера ADpC812 включает восемь ис­ точников прерываний, которые обслуживаются в соответствии с двухуров­ невой системой приоритетов. Источники прерываний, порядок их опроса при одинаковом установленном уровне приоритета, адреса векторов (таб­ лицы прерываний) приведены в следующей таблице.

Адреса векторов прерываний

Прерывание

Источник

Адреса

Уровень

 

прерывания

вектора

приоритета

PSMI

Монитор напряжения питания

43Н

1

IE0

Внешнее прерывание INTO/

ОЗН

2

ADCI

Конец преобразования АЦП

ЗЗН

3

TF0

Переполнение Таймера 0

ОВН

4

IE1

Внешнее прерывание INT1/

13Н

5

TF1

Переполнение Таймера 1

1ВН

6

I2CI/ISPI

Прерывание синхронного

звн

7

 

последовательного интерфейса

 

8

RI/TI

Прерывание асинхронного

23Н

 

интерфейса UART

 

 

TF2/EXF2

Прерывание от Таймера 2

2ВН

9

Для того, чтобы прерывания могли быть обслужены необходимо вы­ полнить следующие подготовительные действия:

1.Расположить процедуру обслуживания прерывания по адресу, ука­ занному в таблице переходов (соответствующего прерывания).

2.Установить в регистре IE бит разрешения всех прерываний (ЕА) в «1»;

3.Установить в регистре IE или IE2 бит разрешения индивидуального прерывания в «1».

Для разрешения и установки приоритетов прерываний используются регистры IE, IP и IE2. В регистрах IE и IP могут адресоваться отдельные биты, а регистр IE2 адресуется только целиком как байт.

Регистр IE содержит общий и индивидуальные бит разрешения всех источников прерываний. Для разрешения прерываний соответствующие биты должны быть установлены в «1».

 

 

7

6

 

5

4

3

2

1

0

0 8

Н

ЕА

EADC

 

ЕТ2

ES

ЕТ1

ЕХ1

 

ЕТО ЕХО IE

Исх.

код

0

0

0

0

 

0

0

0

0

148

 

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Бит

Мнемоника

Описание

IE.7

ЕА

Общий бит разрешения прерываний. Должен быть установлен

 

 

для обслуживания любого источника прерывания. Если ЕА=0,

 

 

все прерывания запрещены

IE.6

EADC

Бит разрешения прерывания АЦП

IE.5

ЕТ2

Бит разрешения прерывания по Переполнению Таймера 2

IE.4

ES

Бит разрешения прерывания от Последовательного Порта UART

IE.3

ET1

Бит разрешения прерывания по Переполнению Таймера 1

IE.2

EX1

Бит разрешения внешнего Прерывания INT1

IE.1

ЕЮ

Бит разрешения прерывания по Переполнению Таймера 0

IE.0

EXO

Бит разрешения внешнего Прерывания INTO ЕХО)

Регистр IE2 содержит индивидуальные биты разрешения прерываний от монитора питания и последовательных портов SPI и 12С. Для разреше­ ния прерываний соответствующие биты должны быть установлены в «1». Битовой адресации у этого регистра нет.

09Н

-

-

-

-

-

-

EPSM

ESI

IE2

Исх.код

0

0

0

0

0

0

0

0

 

Бит

 

Мнемоника

 

 

 

Описание

 

 

IE2.7-2.2

 

 

Не используются

 

 

 

 

 

IE2.1

 

EPSM

Бит разрешения прерывания от

монитора питания

 

IE2.0

 

ESI

Бит разрешения прерывания от интерфейсов

SPI/I2C

 

Регистр IP устанавливает один из двух возможных уровней приорите­ тов для источников прерывания. Установка соответствующего бита в «1» присваивает прерыванию высокий уровень, «О» - низкий. Биты могут про­ граммироваться индивидуально.

 

7

6

5

4

3

2

1

0

 

В8Н

PS1

PADC РТ2

PS

РТ1

РХ1

РТО

РХО

IP

Исх.код

0

0

0

0

0

0

0

0

 

Бит

Мнемоника

 

 

 

Описание

 

 

 

IP.7

PSI

 

Устанавливает приоритет прерывания от SPI/I2C

 

 

IP.6

PADC

Устанавливает приоритет прерывания от АЦП

 

 

IP.5

PT2

 

Устанавливает приоритет прерывания от Таймера 2

 

 

IP.4

PS

 

Устанавливает приоритет прерывания от

порта UART

 

IP.3

PT1

 

Устанавливает приоритет прерывания от Таймера 1

 

 

IP.2

PX1

 

Устанавливает приоритет прерывания от

внешнего источника INT1

IP.1

PTO

 

Устанавливает приоритет прерывания от Таймера 0

 

 

IP.O

PXO

 

Устанавливает приоритет прерывания от

внешнего источника INTO

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]