Смекни!
smekni.com

Пристрій мікропроцесорної обробки аналогової інформації (стр. 3 из 4)

Організація звертання до пристроїв обміну іеформації буде реалізована у вигляді роздільного керування пам’ятю і зовнішніми пристроями. Лиш тільки дві команди IN і OUT, в цьому випадку, призначені для обміну інформації з зовнішніми пристроями. Так, як для цих команд адрес для зовнішнього пристрою 8-ми розрядний, то МП КР580ВМ80 може звертатись до 256 пристроїв воду і 256 пристроїв виводу. При цьому адресний простір пам’яті буде максимальним (64К).

Опишемо розміщення коефіцієнтів та змінних в адресному просторі

Адреса в пам’яті Назва параметра Тип пам’яті
0000h RST 0 ПЗП
0008h RST 1
0010h RST 2
0018h RST 3
0020h RST 4
0028h RST 5
0030h RST 6
0038h RST 7
500h SP ОЗП
501h а0
502h а1
503h а2
504h b0
512h Xn-2
514h Xn-1
516h Xn
518h Yn-1
520h Yn

3.3 Алгоритм функціонування МПП

Як відомо, ввід інформації від АЦП може здійснюватися одним з двох способів:

1) програмним опитуванням, при якому ініціатором обміну є мікропроцесор, періодично опитуючи готовність даних;

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

Реалізація переривання можлива або з використанням команди RST N, або з використанням контролера переривань КР580ВН59. В двійковій формі команда RST N має вигляд:

1 1 К2 К1 К0 1 1 1

де К2 К1 К0 - двійковий код числа N.

При використанні цієї команди за сигналом «Готовність даних» від АЦП на шині даних повинен бути сформований код команди RST N. Цю команду можна легко згенерувати – розряди, які дорівнюють 1, отримуються підключенням лінії даних через резистор до +5 В, а код К2К1К0 можна отримати від шифратора на 3 лінії з 8.

Після того, як сигнал «Готовність даних» поступає на вхід синхронізації тригера відбувається перехід від “0” до “1” і дані з входу D (“1”) передаються на вихід Q, який з’єднаний з виводом запиту переривання INT мікропроцесора. Очевидно, що ця зміна відбувається коди на вході “R” (виводі INTE) сигнал має рівень “1”, тобто переривання дозволено. Після цього мікропроцесор переходить до підпрограми обробки переривання, яка зчитує дані з портів ППІ і заносить їх в пам’ять попередньо заборонивши переривання. По завершенню роботи підпрограми обробки переривання мікропроцесор повертається до виконання головної програми, в які опрацьовуються дані зчитані обробником переривання.Потім результат записується в пам’ять і в порти виводу на ЦАП, в кінці програми дані підготовлюються для наступного повторення операцій, тобто на місце Xn-1 записується Xn, на місце Xn-2 записується Xn-1, на місце Yn-1 Записується Yn.

Блок-схема алгоритму функціонування МПС


Блок-схема підпрограми обробки переривань


4. Загальна структура програми роботи МПП

4.1 Опис програми вводу, виводу

В даній схемі використуваються два контроллери КР580ВВ55 (ППІ) з наступними адресами:

Перша ППІ (підключена до АЦП) Друга ППІ (підключена до ЦАП)
Порт А 80h Порт А 90h
Порт B 81h Порт B 91h
Порт C 82h Порт C 92h
РКС 83h РКС 93h

Для запуску АЦП (сигнал Гашення/Перетворення) будемо використовувати розряд C0 каналу С.

Ввід-вивід інформації буде здійснюватися в режимі 1 роботи ППІ через канал А та В.

Спочатку треба ініціалізувати дві ППІ для цього виконуємо

1
0 1 1 1 1 1 0

MVIA,10111110B; запрограмували режим 1 для портів А та В на ввід.

OUT083H

1 0 1 0 1 1 0 0


MVIA,10101100B

OUT093H;запрограмували режим 1 для портів 2-ої ППІ на вивід

Щоб запустити АЦП необхідно використати слово маніпуляції біта, в якому в розрядах D3-D1 задається номер біта порта С, а в розряді D0 – значення яке необхідно туди записати.Ознакою слова маніпуляції біта є нуль в найстаршому розряді, розряди D6-D4 – не використовуються для слова маніпуляції біта.

Тепер запускаємо АЦП

MVIA,00000000B;встановити в „0” старший розряд каналу С

OUT083H

MVIA,00000001B; встановити в „1” старший розряд каналу С

OUT083H

Після того як АЦП перетворить вхідний сигнал у 12-розрядний двійковий код буде сформовано сигнал „Готовність даних” який через тригер встановить сигнал INT=1, аце означає що почне виконуватися обробник переривання, код якого через буферний регістр буде виставлений на шину даних . Програма обробки переривання запише дані з портів А і В ППІ у комірки пам’яті і керування повернеться до головної програми.

Текст програми обробки переривання:

IRQ:

DI;заборона переривань, щоб цей обробник не був перерваний

PUSHB

PUSHD

PUSHH

PUSHPSW

IN80H; зчитуємо з порта А в акумулятор

STA516H; записуємо у пам’ять молодший байт Xn

IN81H; зчитуємо з порта В в акумулятор

ANI0FH; виділяємо 4 молодші біти з каналу В які є 9 ,10,11 i 12 розрядом Xn

STA517H;записуємо у пам’ять старший байт Xn

POPPSW

POPB

POPD

POPH

IRET

Програма виводу інформації на ЦАП буде викликатись в кінці кожного циклу обчислення Yn і її текст виглядає так :

VYVID:

LDA520H; завантажуємо в акумулятор молодший байт результату

OUT90H; виводимо в канал А

LDA521H; завантажуємо в акумулятор старший байт результату

ANI3FH;обнулення 14 і 15 бітів

OUT91H; виводимо в канал В

RET

4.2 Опис програми обробки інформації

Програма обробки інформації влючає в себе підпрограми множення 8-розрядного числа на 16-розрядне, підпрограму сумування добутків, що розміщені у стеку.

Підпрограма множення двобайтового числа на однобайтове без знаку.

Вхідні дані: регістр DE – множене; акумулятор A - множник.

Результати: регістри A,H,L- добуток (A – старші розряди; L - молодші).

Підпрограма використовує регістр C.

DMULT: LXI H,0

MVI D,0

MVI C,8

Z1: DAD H

RLC

JNC Z2

DAD D

Z2: DCR C

JNZ Z1

RET

Підпрограма сумування 16-розрядних чисел розміщених у стеку

Вхідні дані: вказівник стеку

Результати: регістри H,L

SUM:

POPB;зберігаємо адресу повернення з підпрограми

POPH;витягуємо зі стеку a0n-1

POPD; витягуємо зі стеку b2*Xn-2

DADD; додаємо b0n-1 + a2*Xn-2

POPD;витягуємо a1*Xn-1

DADD; додаємо b0n-1 + a2*Xn-2+ a1*Xn-1

POPD; витягуємо a0*Xn

DADD; додаємо b0n-1 + a2*Xn-2+ a1*Xn-1+ a0* Xn

JNC M1

MOVA,H

RAR

MOVH,AЗсовуємо результат додавання на 1 розряд вправо якщо

MOVA,Lвиник перенос при додаванні

RAR

MOVL,A

M1:

MOVA,H

STC

CMC

RAR

MOVH,A

MOVA,LЗсув результату на 2 розряди вправо

RARдля утворення даних, що прередаватимуться

MOVL,Aна ЦАП

STC

CMC

RAR

MOVH,A

MOVA,L

RAR

MOVL,A

PUSHB; відновлюємо адресу повернення

RET

Текст головної програми цифрової обробки інформації

ORG100H

MVIA,a0

STA501H

MVIA,a1

STA502H

MVIA,a2

STA503H

MVIA,b0

STA504H

LXIH,0

SHLD512H

SHLD514H

SHLD516H

SHLD518H

SHLD520H

LXISP,500H

MVIA,10111110B

OUT083H

MVIA,10101100Bініціалізація двох ППІ

OUT093H

START:

MVIA,00000000B

OUT82H

MVIA,00000001Bзапуск АЦП

OUT82H

LDA501H

LHLD516H

XCHG

CALL DMULT

MOVL,H

MOVH,A

PUSHH; зберігаємо у стеку результат множення a0* Хn

LDA502H

LHLD514H

XCHG

CALL DMULT

MOVL,H

MOVH,A

PUSHH; зберігаємо у стеку результат множення a1* Хn-1

LDA503H

LHLD512H

XCHG

CALL DMULT

MOVL,H

MOVH,A

PUSHH; зберігаємо у стеку результат множення a2* Хn-3

LDA504H

LHLD518H

XCHG

CALL DMULT

MOVL,H

MOVH,A

PUSHH; зберігаємо у стеку результат множення b0* Yn-1

CALLSUM

SHLD520H; записуємо Yn у пам’ять

CALLVYVID

LHLD520H; тоді зсув параметрів у пам’яті Yn->Yn-1

SHLD518H

LHLD514H; Xn-1 -> Xn-2

SHLD512H

LHLD516H; Xn -> Xn-1

SHLD514H

EI; дозвіл переривання

HLT; зупинка процесора поки не викличеться підпрограма обробки

; переривання і запише нове Xn

JMPSTART

4.3 Оцінка верхньої фінітної частоти вхідного аналогового сигналу

Кількість тактів, за які виконується програма, зведені в таблицю:

Таблиця

Назва програми Кількість тактів, необхідних для виконнаня програми Число виконань даної програми за один цикл Кількість тактів, за цикл виконання програми
Основна програма 566 1 566
DMULT 475 3 1425
Обробник переривання 151 1 151
SUM 206 1 206
Загальна тривалість 2348

Теорема Котельникова:

Будь-який сигнал, який має скінчений спектр, може бути без втрат перетворений у цифрову форму і потім відтворений за відліками цього дискретного сигналу при умові:


Для виконання програми необхідно всього тактів N=2031. Для максимальної частоти f=2.5МГц для МП KР580ВМ80, частота видачі інформації fвид=2,5МГц/2348=1064,74 Гц