Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002
.pdfГЛАВА 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 |