Микропроцессоры и микроконтроллеры

 
 
 
«There are only two kinds of languages: the ones people complain about and the ones nobody uses.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Канали вводу-виводу на основі МК51 :: Приклади апаратно-програмної реалізації вхідних каналів

Приклади апаратно-програмної реалізації вхідних каналів

Короткі відомості про АЦП К1113ПВ1

rn

Даний АЦП відноситься до класу АЦП послідовних наближень, функціонально закінчено і сполученої з МП за рівнем ТТЛ-сигналів.
Про характеристики та принципи функціонування даного АЦП можна прочитати в роботі [Гутников В.С. Інтегральна електроніка ...].

rn

Призначення висновків БІС АЦП таке: AI - аналоговий вхід (U = 0 ... 10,24 В або - 5,12 ... 5,12 В); V = 0 /1 - вибір двох /однополярного режиму перетворення; В /С - скидання /запуск перетворення; подача "сбросу" - мінімум на 2 мкс; N0 ... N9 - вихідний десятіразрядній код; # DR - сигнал готовності даних ( "Кінець перетворення"). Час перетворення ТПР складає 30 мкс. Отже, з урахуванням скидання /запуску і прийому даних загальний цикл перетворення складе макс. 50 мкс, тобто на АЦП такого типу можна реалізувати частоту опитування сигналів до 20 тис. вибірок /с. Основна перевага такого АЦП - безпосереднє сполучення з керуючим мікропроцесорним блоком.

rn

Слід зазначити, що даний АЦП не є ідеальним вибором з точки зору параметра ціна /продуктивність . У практичних розробках має сенс застосовувати інтегральні АЦП імпортного виробництва, наприклад Analog Devices або використовувати мікроконтролери з вбудованим АЦП (сімейства AVR або ADuC8xx сімейства MCS-51). У даній статті АЦП К1113ПВ1 розглядається як простий і наочний приклад.

rn

Розробка програмно-керованого каналу обміну

rn

При розробці програмно-керованого каналу АЦП логічно розміщується в просторі введення-виведення, тобто безпосередньо підключається до портів МК51. Видача сигналів управління здійснюється програмним шляхом через лінії портів МК51. Програма МК після запуску перетворення реалізує цикл очікування готовності даних сигнал # DR.

rn

Приймається такий розподіл ліній портів МК (для прикладу):

rn

Р0.0 ... Р0.7, Р1.0, Р1.1 - прийом вихідного коду АЦП - N0 ... N9;
P1.2 - прийом сигналу # DR;
Р1 .3 - видача сигналу В /С (скидання /запуск перетворення).

rn

Схема підключення БІС АЦП до МК51 показана на ріс.18.3.

rn

Програмний фрагмент обслуговування АЦП повинен підтримувати протокол керування АЦП відповідно до його тимчасової діаграмою і може мати вигляд:

rn

декларативная частина

rn

N0_7 equ P0

rn

N8 bit P1.0

rn

N9 bit P1.1

rn

DR bit P1.2

rn

BC bit P1.3

rn

measureL data 40H; комірки для розміщення прийнятого 10-бітного коду

rn

measureH data 41H

rn

rn

; Настройка портів

rn

CSEG

rn

MOV P0, # 0FFH; Порт Р0 на введення

rn

SETB N8; Настройка ліній Р1.0 ... Р1.2 на введення

rn

SETB N9

rn

SETB DR

rn

; Процедура обслуговування АЦП

rn

ADT: SETB BC; "Скидання" АЦП

rn

NOP; Інтервал - 2 мкс

rn

NOP

rn

CLR BC; Запуск перетворення

rn

WAIT: JB DR, WAIT; Очікування сигналу готовності (до DR = 0)

rn

MOV measureL, N0_7

rn

CLR A; Читання розрядів N8, N9

rn

MOV A, P1

rn

ANL A, # 00000011B

rn

MOV measureH, A

rn

SETB BC; Видача сигналу скидання АЦП

rn

RET

rn
Розробка аналого-цифрового каналу з обміном по переривання
rn

В даному випадку сигнал # DR з АЦП може подаватися на вхід зовнішнього запиту на переривання, наприклад, INT0. Інші висновки підключаються за схемою, зображеної на ріс.18.3.

rn

Після запуску перетворення МК51 не очікує сигналу готовності даних # DR = 0, а виконує поточну функціональну програму. Прийом коду в МК51 здійснюється у процедурі обробки переривання від входу INT0.

rn

Програмний фрагмент реалізації даного протоколу обміну:

rn

декларативная частина (нове в порівнянні з попередньою програмою)

rn

INIT_IE equ 10000001B; код для настроювання регістра IE

rn

; Стартовий блок

rn

CSEG

rn

org 0

rn

JMP INIT_SYS; Стартовий перехід

rn

; Вектор переходу на процедуру обробки переривання від INT0

rn

org 0003H

rn

VECT_INT0: JMP DR_INT

rn

; Ініціалізація системи

rn

org 002BH

rn

INIT_SYS: MOV IE, # INIT_IE; Настройка системи переривань

rn

SETB IT0; Сприйняття сигналу за зріз

rn

MOV P0, # 0FFH; Порт Р0 - на введення

rn

SETB N8; Лінії Р1.0, Р1.1 - на введення

rn

SETB N9

rn

; Функціональна програма

rn

. . .

rn

CALL ADT; Запуск перетворення

rn

. . .

rn

; Процедура запуску перетворення

rn

ADT: SETB BC; "Скидання" АЦП

rn

NOP; Інтервал - 2 мкс

rn

NOP

rn

CLR BC; Запуск перетворення

rn

RET

rn

Процедура обробки переривання від INT0 (завершення перетворення)

rn

DR_INT: PUSH ACC

rn

MOV measureL, N0_7; Читання молодших розрядів коду

rn

MOV A, P1

rn

ANL A, # 00000011B; Читання і виділення старших розрядів коду

rn

MOV measureH, A

rn

SETB BC; "Скидання" АЦП (зняття сигналу запуску)

rn

POP ACC

rn

RETI

rn

rn

Схема з обробкою сигналу готовності даних # DR як сигналу переривання забезпечує стійкість МК-системи до відмови АЦП або обриву лінії # DR, оскільки при цьому не буде відбуватися зацікліваніе програми, як у першому прикладі. Крім того, варіант з обробкою переривань дозволяє одночасно керувати кількома АЦП, беручи від них інформацію по мірі готовності без непродуктивно очікування.

rn

Блок аналого-цифрового перетворення може бути реалізований також і в зовнішньому адресний простір мікроконтролера. У цьому випадку вихідний код АЦП повинен подаватися на вхідний порт системи, побудований на основі регістра або ППІ ВВ55, а сигнали управління АЦП можуть подаватися через порт виводу (регістр) або безпосередньо від мікроконтролера. Сигнал готовності АЦП може подаватися на МК також через регістр або безпосередньо на вхід переривання в залежності від прийнятого варіанта реалізації системи.

rn

Блоки (канали) ціфроаналогового перетворення зазвичай відрізняються тим, що мікросхеми ЦАП є пристроями безперервної дії, тобто не вимагають спеціальних сигналів керування для запуску або скидання. Двійковий код, поданий на цифрові входи ЦАП, безперервно перетворюється в рівень струму або напруги на його аналоговому виході.

rn

Мікросхема ЦАП може бути підключена безпосередньо до портів мікроконтролера або до портів висновку (регістрах, ППІ), розміщених у зовнішньому адресний простір МК. Якщо розрядність ЦАП перевищує розрядність порту або регістра, необхідно використовувати додатковий порт або регістр. При цьому пересилання двійкового коду на ЦАП повинна виконуватися в два етапи - молодший і старший байти.