Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра САПР
Курсова робота
з курсу "Комп’ютери та мікропроцесорні системи"
ПРИСТРІЙ МІКРОПРОЦЕСОРНОЇ ОБРОБКИ
АНАЛОГОВОЇ ІНФОРМАЦІЇ
Керiвник:
Львів – 2007 р.
Завдання до курсової роботи
з дисципліни «Комп’ютери і мікропроцесорні системи»
студента групи КН-313 Пукача А.
на тему: «Мікропроцесорна обробка аналогової інформації»
Кінцевий термін здачі роботи:
Початкові дані:
Умова
початкові дані
функціональна залежність
розрядність АЦП
10 розрядів
полярність вхідного сигналу
двополярний
спосіб організації обміну з АЦП
Через АВП переривання з RST4 (використати КР580ВВ55 з режимом роботи 1)
об’єм ОЗП і організація мікросхеми пам’яті
4K, з організацією 1024х4
вид функціонального вузла
Шинні формувачі КР580ВА87
Підпис студента ________________ Пукач А.
Керівник роботи_______________Процько І. О.
Анотація
“Пристрій мікропроцесорної обробки аналогової інформації”. Курсова робота. – НУ “Львівська політехніка”, каф.: САПР, дисципліна “Комп’ютери і мікропроцесорні системи”, 2006.
Курсова робота складається з XX сторінок, XX таблиць, XX рисунків, додатку. В даній курсовій роботі було розроблено компоненти апаратного і програмного забезпечення мікропроцесорного пристрою, який включає аналогово-цифровий (АЦП) і цифрово-аналоговий (ЦАП) перетворювачі і виконує обробку за функціональною залежністю :
аналогового сигналу. Робота включає в себе організацію вводу та обробки інформації за поданою залежністю, а також вивід інформації в аналоговому вигляді.
Зміст
Завдання ……………………………………………………………………………………
Анотація ……………………………………………………………………………………
Зміст ………………………………………………………………………………………...
Перелік абревіатур ………………………………………………………………………...
Вступ ………………………………………………………………………………………..
Синтез аналогової схеми фільтру ………………………………………………………...
Синтез структурної схеми цифрового фільтру ………………………………………….
Вибір АЦП …………………………………………………………………………………
Вибір ЦАП …………………………………………………………………………………
Структура представлення даних ………………………………………………………….
Опис структурної схеми МПП ……………………………………………………………
Розподіл адресного простору ……………………………………………………………..
Алгоритми функціонування МПП ………………………………………………………..
Загальна структура програми роботи МПП ……………………………………………...
Опис програм вводу-виводу ………………………………………………………………
Опис програми обробки інформації ……………………………………………………...
Оцінка верхньої фінітної частоти вхідного аналогового сигналу ……………………...
Опис функціонального вузла ……………………………………………………………..
Аналіз результатів і висновки …………………………………………………………….
Список використаної літератури …………………………………………………………
Додаток ……………………………………………………………………………………..
Перелік умовних скорочень
АЦП
аналогово-цифровий перетворювач
АФ
аналоговий фільтр
БР
буферний регістр
ВІС
(велика) інтегральна схема
ГТІ
генератор тактових імпульсів
ДШ
дешифратор
ДША
дешифратор адрес
ДШВ/В
дешифратор вводу /виводу
МП
мікропроцесор
МПП
мікропроцесорний пристрій
МПС
мікропроцесорна система
ОЗП
оперативний запам`ятовуючий пристрій
ОП
операційний підсилювач
ПЗП
постійний запам`ятовуючий пристрій
ППІ
паралельний програмований інтерфейс
РКС
регістр керуючого слова
СК
системний контролер
СШ
системна шина
ТГ
тактовий генератор
ЦАП
цифро-аналоговий перетворювач
ЦФ
цифровий фільтр
ША
шина адрес
ШД
шина даних
ШК
шина керування
КП
контролер переривань
Вступ
Метою виконання даної роботи є реалізація пристрою для обробки вхідного змінного електричного сигналу за вказаним інтегро-диференційним законом. Такий пристрій можна реалізувати багатьма способами. Широко відомі апаратні засоби для реалізації систем такого плану. Проте робота такої системи буде обмежена єдиним видом функціональної залежності для обробки сигналу, що можу бути модифікованою лише у разі зміни складових частин чи способу організації пристрою. Значно зручнішим є комбінований апаратно-програмний підхід, де апаратна частина є лише основою, а вся робота з перетворення сигналу виконується записаною в пам’яті програмою, що при потребі може змінюватися.
Таким чином, у даній роботі кінцевою метою є створення МПС (мікропроцесорної системи) як завершеного пристрою із вбудованою програмою обробки інформації. Центральним елементом системи є мікропроцесор (МП) – пристрій обробки інформації і керування, який власне виконуватиме фільтрацію, а також організовуватиме коректну взаємодію усіх компонентів системи.
Очевидно, що необхідним є використання пристроїв конверсії сигналу із аналогового вигляду в цифровий та із цифрового в аналоговий, оскільки МП працює із інформацією в цифровому вигляді.
Отже, під час виконання роботи потрібно буде організувати наступне:
Перетворення аналогового сигналу в цифровий код за допомогою АЦП;
Введення сигналу за допомогою пристрою В/В (ППІ);
Обробка сигналу за допомогою програми;
Виведення інформації з МПС через пристрій В/В (ППІ);
Перетворення вихідного цифрового коду в аналоговий сигнал за допомогою ЦАП.
Синтез аналогової схеми аналогового фільтра на активних елементах
Альтернативним підходом до створення пристрою обробки інформації за заданий інтегро-диференційним законом є синтез пристроїв із застосуванням повністю апаратного підходу. Такий пристрій перетворення аналогового сигналу називається аналоговим фільтром (АФ). Можливими способами синтезу фільтра є застосування пасивних елементів чи операційних підсилювачів. Основними елеметами активних аналогових фільтрів є інтергатор, диференціатор, інвертор та суматор.
В курсовій роботі необхідно реалізувати функцію вигляду:
Рис. 1.1. Схема аналогового фільтра на активних елементах
1.2. Синтез аналогового фільтра на пасивних елементах
Аналоговий фільтр на пасивних елементах (резисторах, індуктивностях та ємностях) реалізуємо у вигляді прохідного чотириполюсника, який би фільтрував вхідний сигнал відповідно до заданої функції. Для виконання схеми фільтра застосуємо до функції перетворення Лапласа, яке полягає в наступних замінах:
Замінивши відповідні значення їх відображеннями, отримаємо:
;
Вхідний струм протікає через котушку індуктивності (). Через нього ж протікатиме і вихідний струм, який, крім того, проходитиме ще через опір (1). Таким чином, отримуємо:
Рис. 1.2.1. Схема аналогового фільтра на пасивних елементах
2. Синтез структурної схеми цифрового фільтра
Як було сказано, вхідний аналоговий сигнал повинен бути перетворений у відповідний цифровий код. Проте, розглянувши рівняння, бачимо, що воно призначене для обробки неперервного сигналу. Крім того, будь-який пристрій конверсії вимагає певного часу для перетворення сигналу з одного вигляду в інший. Таким чином, необхідним є перетворення вхідного рівняння у такий вигляд, де значення аргументу та функції були представлені у вигляді дискретних одиниць, які, грубо кажучи, можна було б перелічити, тобто продати у вигляді індексованих порядковим номером (ітерацією) величин.
Дискретизована відповідним чином інформація може бути обробленою пристроєм цифрової обробки – цифровим фільтром.
Виконаємо синтез структурної схеми цифрового фільтра для даної залежності:
Наведемо способи дискретизації, що використовуватимуться у даній роботі:
(Δt - інтервал;)
X(t) Xn, Y(t) Yn,
(X(t) – вхідний аналоговий сигнал; Y(t) – вихідний сигнал)
≈
Застосуємо вказані перетворення до заданого рівняння і отримаємо:
;
;
;
Випишемо окремо значення всіх коефіцієнтів:
a0= ; а1= ; b1=;
Рівняння, за допомогою якого реалізуємо цифровий фільтр:
Рис. 2.1. Структурна схема реалізації рівняння цифрового фільтра
(XY – елемент множення; DL – елемент затримки; - суматор)
3. Вибір типу АЦП і ЦАП
3.1 Вибір типу АЦП
Виберемо мікросхему К1113ПВ1.
Загальний опис мікросхеми.
Мікросхема являє собою функціонально закінчений 10-розрядний АЦП, що може підключатися до мікропроцесора. Забезпечує перетворення як однополярної напруги (вивід 15 з’єднується із виводом 16) в діапазоні 0 … 9,95 В, так і біполярної напруги в діапазоні -4,975 … +4,975 В у паралельний двійковий код. У склад ІС входять ЦАП, компаратор напруги регістра послідовного наближення (РПН), джерело опорної напруги (ДОН), генератор тактових імпульсів (ГТІ), вихідний буферний регістр із трьома станами, схеми управління. Вихідні каскади із трьома станами дозволяють зчитувати результат перетворення безпосередньо на шину даних мікропроцесора. По рівнях вхідних і вихідних логічних сигналів мікросхема сполучається із ТТЛ-схемами. В ІС вихідний струм ЦАП порівнюється із струмом вхідного резистора від джерела сигналу і формується логічний сигнал РПН. Стабілізація розрядних струмів ЦАП здійснюється вбудованим ДОН. Тактування РПН забезпечується імпульсами вбудованого ГТІ із частотою проходження 300…400 кГц. Установка РПН у початковий стан і запуск його у режим перетворення здійснюється по зовнішньому сигналу «Гасіння і перетворення». По закінченню перетворення АЦП виготовляє сигнал «Готовність даних» і інформація із РПН поступає на цифрові входи через каскад із трьома станами. Корпус К1113ПВ1(А-В) типу 2104.18-1, маса не більше 2,5 г.
Включення АЦП у режим роботи із уніполярною вхідною напругою передбачає підключення виводу 15 до цифрової землі (вивід 16). При цьому на виході вбудованого ЦАП задається струм, що дорівнює струму СР, але протилежної полярності. При роботі АЦП із біполярним вхідним сигналом електричні сигнали на вивід 15 не подаються.
Як видно із опису вибраного АЦП для його зв’язку із МПП потрібно 13 ліній. 10 ліній безпосередньо повинні передавати інформацію. Вивід АЦП «Готовність» передає інформацію про готовність даних. На вхід «Гасіння і перетворення» буде передаватися інформація про прийом даних програмою. Вхід АЦП «Цифрова земля» підключається до землі комп’ютера.
Рис. 3.1.1 Корпус К1113ПВ1(А-В), 1113ПВ1(А-В)
Рис. 3.1.2 Умовне графічне позначення К1113ПВ1
Призначення виводів:
1 - дев'ятий розряд;
2 - восьмий розряд;
3 - сьомий розряд;
4 - шостий розряд;
5 - п'ятий розряд;
6 - четвертий розряд;
7 - третій розряд;
8 - другий розряд;
9 - перший розряд;
10 - напруга живлення UЖ1;
11 - гасіння і перетворення;
12 - напруга живлення –UЖ2;
13 - вхід аналоговий;
14 - аналогова "земля";
15 - управління зсувом нуля;
16 - цифрова "земля";
17 - готовність даних;
18 - десятий розряд (молодший);
1 – компаратор;
2 – схема управління
зсувом нуля;
3 – 10-розрядний ЦАП;
4 – ДОН;
5 – схема гасіння;
6 – 10-розрядний РПН;
7 – формувач тактової
частоти;
8 – формувач ГД;
9..18 – буферні пристрої;
19 – генератор тактової
частоти;
Рис. 3.1.3 Функціональна схема
Таблиця 3.1.1 Електричні парамери
1
Номінальна напруга живлення
UЖ1
UЖ2
5В 5%
-15В 5%
2
Вихідна напруга низького рівня
не більше 0,4В
3
Вихідна напруга високого рівня
не менше 2,4В
4
Напруга зміщення нуля в однополярному та біполярному режимах від повної шкали
0,3%
5
Струм споживанння
від джерела живлення UЖ1
від джерела живлення UЖ2
не більше 10мА
не більше 18мА
6
Вхідний струм високого (низького) рівня
40 мкА
7
Струм втрат на виході
40 мкА
8
Час перетворення
не більше 30 мкс
9
Нелінійність від повної шкали
1113ПВ1А
1113ПВ1Б
1113ПВ1В
К1113ПВ1А
К1113ПВ1Б
К1113ПВ1В
0,075%
0,2%
0,075%
0,1%
0,2%
0,4%
10
Абсолютна похибка перетворення у кінцевій точці шкали від повної шкали
0,4%
Таблиця 3.1.2 Гранично допустимі режими експлуатації
1
Напруга живлення
UЖ1
UЖ2
4,75…5,25 В
-15,75…-14,25 В
2
Діапазон вхідної напруги
однополярної
біполярної
-0,5…+10,5 В
-5,5…+5,5 В
3
Вхідна напруга
високого рівня
низького рівня
2…4,5 В
0…0,6 В
4
Вхідний струм
високого рівня
низького рівня
0…0,5 мА
0…3,2 мА
5
Температура навколишнього середовища
К1113ПВ1(А-В)
1113ПВ1(А,Б)
1113ПВ1В
-10…+70 ºС
-45…+85 ºС
-60…+125 ºС
Рекомендації по застосуванню:
Допустиме значення статичного потенціалу 100В. Температура пайки 235 5 º С, відстань від корпуса до місця пайки 1,5 мм, тривалість пайки 2 0,5 с.
Закордонні аналоги: AD571S, AD571K.
Рис. 3.1.4 Часові діаграми роботи АЦП К1113ПВ1
Напруга від джерел живлення і вхідних сигналів подаються на ВІС АЦП К1113ПВ1 у наступній послідовності: потенціал землі, напруга живлення, напруга на входи управління, вхідна напруга. Порядок знімання напруг зворотній. Допускається одночасна їх подача та знімання. ІС К1113ПВ1А використовує дві напруги живлення +5 В і -15 В.
Рис. 3.1.5 Схема підімкнення АЦП до МПП
3.2. Вибір ЦАП
Як було зазначено вище, сформоване значення функції Yn необхідно буде подати в аналоговому вигляді, тобто перетворити його з цифрового паралельного коду в аналоговий. Для цього використаємо мікросхему ЦАП, що являє собою завершений пристрій для перетворення цифрового коду в аналоговий сигнал.
Серед мікросхем ЦАП, які найбільш прийнятні за швидкістю перетворення інформації, виберемо мікросхему К1108ПА1.
Мікросхема 12-розрядного ЦАП типу К1108ПА1 призначена для складання блоків аналогового вводу – виводу з підвищеною швидкодією. Мікросхема К1108ПА1 конструктивно оформлена в 24-виводному герметичному металокерамічному корпусі типу 210Б.24-1 з вертикальним розміщенням виводів.
Нумерація і призначення виводів мікросхеми К1108ПА1:
1 – напруга джерела живлення Ucc1;
2 – напруга джерела живлення Ucc2;
3 – вихід ОУ компенсації;
4 – опорна напруга UREF;
5 – вивід резистора;
6 – загальний вивід матриці R-2R;
7 – вивід резистора;
8 – аналоговий вихід;
9 – вивід резистора зворотного зв’язку Ro.c1;
10 – вивід резистора зворотного зв’язку Ro.c2;
11 – вхід ОУ компенсації;
12 – загальний;
13 – цифровий вхід 1 (СР);
14-23 – цифрові входи 2-11;
24 – цифровий вхід 12 (МР);
Основні електричні параметри мікросхеми при температурі навколишнього середовища 25 10 С наведені в таблиці 3.2.1.
Таблиця 3.2.1. Основні електричні параметри мікросхеми К1108ПА1:
Параметри
Мін.
Макс.
Число розрядів
12
Дифереренційна нелінійність LD, %
0,024
0,024
Вхідний струм високого рівня I1H, мкА
100
Абсолютна похибка перетворення в кінцевій точці шкали FS,МР
-30
30
Час встановлення вихідного струму tS1, нс
400
Струм живлення від джерела ICC1, мА
15
15
Струм живлення від джерела ICC2, мА
46
46
Максимальна вихідна напруга U0RN, В
-1,0
1,0
Вхідна напруга низького рівня UIL, В
0
0,8
Вхідна напруга високого рівня UIH, В
2
Опорна напруга UREF , В
2,2
10,5
Діапазон температур
-10 °С
+70 °С
Тип корпусу
210Б.24-1
Рис. 3.2.1. Принципова електрична схема підключення ЦАП K1108ПА1
Рис. 3.2.2. Схема включення ІС ЦАП К1108ПА1 у біполярному режимі із різними діапазонами вихідної напруги.
Рис. 3.2.3 Схема підімкнення ЦАП до МПП
3.3. Структура представлення даних
Структура даних, які входять в рівняння цифрового фільтра, визначається коефіцієнтами рівняння і заданою розрядністю АЦП.
Рівняння ЦФ має вигляд:
,
де коефіцієнти наступні: a0= ; а1= ; b1=.
Припустимо, що: .
і τ – це величини постійні, є малою величиною. Підставимо заміни у рівняння і з результату видно, що ymax > xmax. Оскільки розрядність xn рівна 10, то розрядність yn повинна бути 12.
Отже, структура представлення даних набуде наступного вигляду:
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
а0
а1
b1
xn
xn-1
yn
yn-1
Старший розряд (рСТ) кожної змінної виділимо на знак числа, а інші розряди – на цілу та дробову частини числа, а саме: рСТ-1 – на цілу частину, а біти рСТ-2 – р0 – на дробову частину.
4. Структурна схема МПС і алгоритм його функціонування
4.1. Структурна схема МПС
Дана МПС призначена для фільтрації вхідного аналогового сигналу. Вона складається із набору певним чином об’єднаних мікросхем і програми обробки інформації. Для створення принципової електричної схеми та синтезу програмного забезпечення створимо попередньо структурну схему для МПС та алгоритм його функціонування.
Отже, мікропроцесорна система складатиметься із таких компонентів:
Мікропроцесор (МП) – центральний елемент, призначений для власне обробки інформації, а також для керування системою;
Системний контролер (СК), що являє собою посередника між МП і рештою компонентів МПС, призначеного для зв’язку МП із ШД, а також для формування керуючих сигналів;
Шинні формувачі (ШФ) – елементи для підвищення КР адресних виводів МП;
Генератор тактових імпульсів (ГТІ), призначений для формування тактових синхроімпульсів, а також для формування деяких керуючих сигналів;
Буферний регістр (БР), що призначений для буферизації даних, він (БР) дає можливість працювати із 10-ти та 12-ти розрядними даними;
Паралельний програмований інтерфейс (ППІ), призначений для обміну між МПС та мікросхемами АЦП/ЦАП, тобто для вводу/виводу даних;
Мікросхеми АЦП і ЦАП, що конвертують аналогові сигнали у цифрові і навпаки;
Запам’ятовувачі, призначені для постійного (ПЗП) і тимчасового (ОЗП) зберігання даних і програми;
Схему дешифрування, призначені для декодування адрес пам’яті і зовнішніх пристроїв.
Зв’язок між окремими елементами МПС відбувається за допомогою системної шини (СШ), яка поділяється на три магістралі – шину адрес (ША), шину даних (ШД) і шину керування (ШК).
Схема роботи МПС: одразу після ввімкнення ГТІ видає сигнал RESET, що скидає всі мікросхеми та встановлює лічильник команд у 0.
МП починає зчитувати команди із ПЗП, першою з яких є перехід на програму обробки інформації. В програмі виконуються початкові установки (програмування ППІ, видача керуючих сигналів, дозвіл переривань), після цього процесор зупиняється та чекає переривання. В цей час АЦП виконує перетворення сигналу в цифровий код та видає сигнал RAD готовності даних. Коли процесор видасть черговий сигнал SYNC на ГТІ, він сформує строб STSTB, за яким СК зчитає слово стану МП та сформує сигнал дозволу переривання INTA. Цей сигнал викличе видачу на ШД коду команди RST, де записаний перехід на обробник переривання. В обробнику переривань відбувається зчитування значення аргументу, а також заборона переривань.
Далі відбувається повернення у головну програму, де обчислюється значення функції, після чого воно виводиться на ЦАП. Після формування даних для наступної ітерації програмний цикл повторюється.
Рис. 4.1.1. Структурна схема МПП
4.2. Розподіл адресного простору
В адресний простір МП КР580ВМ80 входить 64К адрес пам’яті (216), що визначається 16 - розрядною адресною шиною. Мікропроцесор КР580ВМ80 може здійснювати синхронний і асинхронний обмін інформацією за даними адресами з пам’яттю (ПЗП, ОЗП) та зовнішніми пристроями. При обробці інформації МП зчитує коди команд, операнди і записує одержаний вміст в регістри РЗК або виконує обмін інформації з пам’яттю та зовнішніми пристроями.
Можливі два підходи до організації звертання до пристроїв обміну інформації. Перший підхід використовує звертання до зовнішніх пристроїв, як до комірок пам’яті. Тобто, адресний простір, що відводиться для цих пристроїв включає 64К адрес. Однак, внаслідок повного вкладення адресного простору пристроїв вводу/виводу в простір адрес пам’яті, останнє пропорційно зменшується з збільшенням числа обслуговування зовнішніх пристроїв вводу/виводу. До переваг даного підходу можна віднести можливість використання різноманітних команд пересилання даних.
Інший підхід використовує роздільне керування пам’яттю і зовнішніми пристроями. Лиш тільки дві команди (IN і OUT) в цьому випадку, призначені для обміну інформації з зовнішніми пристроями. Так, як для цих команд адрес для зовнішнього пристрою 8-ми розрядний, то МП КР580ВМ80 може звертатись до 256 пристроїв воду і 256 пристроїв виводу. При цьому адресний простір пам’яті буде максимальним (64К).
Отже, розподіл адресного простору буде наступним:
Адреса (HEX)
Коментар
ПЗП чи ОЗП
0000
ПЗП
0020
Jmp 400h
01FF
Основна програма
ОЗП
03FF
0400
Підпрограма обробки переривань
04FF
0500
Підпрограми множення та інші
06FF
0700
a0
0701
a1
0702
b1
0703
xn
0704
0705
xn-1
0706
0707
yn
0708
0709
yn-1
070A
Стек
FFFF
Рис. 4.2.1. Розподіл адресного простору
Для даного завдання здійснюється обмін з АЦП через переривання RST 4.
В двійковій формі команда RST N має вигляд:
1 1 1 1 1,
Для RST 4 код буде 11100111 .
Ця команда здійснює перехід на адресу 8*N.
Для RST 4 це дорівнює: 8*N=8*4=3210=20h=00010000b.
4.3. Алгоритм функціонування МПС
Ввід інформації з АЦП здійснюється в режимі переривань. При готовності даних формується сигнал переривання, в результаті чого МП переходить на підпрограму обробки даного переривання. Далі відбувається ввід інформації з АЦП. Введена інформація обробляється у відповідності до заданого рівняння і виводиться у вигляді аналогового сигналу через ЦАП.
В процесі обробки запиту на переривання, яке здійснюється подачею на вхід ІNT мікропроцесора логічної одиниці, мікропроцесор сигналом INTE=0 забороняє всі можливі запити на переривання. Далі виконується машинний цикл переривання, в якому видається керуюче слово з одиницями в INTA що означає підтвердження переривання, М1 – початок машинного циклу, W0 – запис або вихід, а MEMR=0 – читання з памяті. При цьому сигнал DBIN=1 означає прийом інформації з шини даних. Тобто мікропроцесор читає з шини даних деяку інформацію, що вибирається з памаяті чи портів. В цей момент на ШД повинен бути встановлений код команди RST 4.
Після виконання дискретизації було отримане рівняння (що функціонально приблизно відповідає вихідному) вигляду:
Для реалізації обчислення функції і обміну МПС з АЦП (і ЦАП) запропонуємо такі алгоритми:
Рис. 4.3.1. Алгоритм підпрограми – обробника переривань
Рис. 4.3.2. Алгоритм функціонування МПП
Необхідність в команді EI (дозвіл переривання ) зумовлена тим, що вихід INTE в стан логічної 1 (дозвіл переривання) можна перенести лише програмним способом, а стан логічного 0(заборона переривання) – як програмною командою DI, так і апаратним способом.
5. Загальна структура програми роботи МПП
Основна програма функціонує згідно алгоритму. Вона починається з ініціалізації мікросхеми КР580ВВ55 для обміну з ЦАП і АЦП. АЦП встановлюється (після гашення) у режим перетворення вхідного сигналу. Далі викликається підпрограма цифрової обробки інформації.
Основна програма:
ORG 1FFH
7 MVI A, 10111110B ; КСІ для ППІ 1
10 OUT 0A3H ; адреса РКС для ППІ 1
7 MVI A, 10000000B ; КСІ для ППІ 2
10 OUT 0B3H ; адреса РКС для ППІ 2
7 MVI A, a0 ; заносимо значення а0
13 STA 700H ; у комірку пам’яті з адресою 700Н
7 MVI A, a1 ; заносимо значення а1
13 STA 701H ; у комірку пам’яті з адресою 701Н
7 MVI A, b0 ; заносимо значення b0
13 STA 702H ; у комірку пам’яті з адресою 702Н
10 LXI SP, 0FFFFH ; ініціалізуємо вершину стеку
START:
7 MVI A, 00001101B ; запуск …
7 OUT 0A3H
7 MVI A, 00001100B ; … перетворення
7 OUT 0A3H
17 CALL Vanden
7 HLT
Кількість тактів, за які виконується основна програма, дорівнює 156.
5.1 Опис програм вводу/виводу
Зв'язок між АЦП і ЦАП з однієї сторони та МП з іншої здійснюється через ППІ. Для організації вводу/виводу треба задати режим роботи самої ІС КР580ВВ55.
Згідно завдання нам необхідно вводити 10 біт і виводити 12 біт даних . Для виконання цього використаємо ППІ, причому запрограмуємо його на 1-ий режим роботи.
РКС для першого ППІ:
Рис. 5.1.1. РКС для першого ППІ
РКС для другого ППІ.
Рис. 5.1.2. РКС для другого ППІ
Задамо адреси портів ППІ і запишемо їх у таблицю 5.1.1.
Адреси портів ППІ Таблиця 5.1.1
Адреси для ППІ1
порт А
порт В
порт С
РКС
Адреси для ППІ2
A0 h
A1 h
A2 h
A3 h
B0 h
B1 h
B2 h
B3 h
Таким чином, наступний фрагмент програми ініціалізує ППІ.
MVI A, 10111110B ; КСІ для ППІ 1
OUT 0A3H ; адреса РКС для ППІ 1
MVI A, 10000000B ; КСІ для ППІ 2
OUT 0B3H ; адреса РКС для ППІ 2
Наступним кроком для зчитуванння інформації буде ініціалізація АЦП та «запуск перетворення». Для цього необхідно на вхід «Гашення/Перетворення» АЦП подати спочатку логічну одиницю, а потім – логічний нуль. Вхід «Гашення/Перетворення» підключений до розряду с6 порта С ППІ1. Все написане вище реалізується наступним фрагментом програми.
MVI A, 00001101B ; запуск …
OUT 0A3H
MVI A, 00001100B ; … перетворення
OUT 0A3H
Після задання режиму роботи ППІ та ініціалізації АЦП можна приступити до зчитування значення xn із АЦП. Це реалізується за допомогою наступного фрагменту програми.
IN 0A0h ; зчитуємо інформацію з порта А ППІ1
STA 703h ; заносимо її у комірку пам’яті з адресою 703h
IN 0A1h ; зчитуємо інформацію з порта В ППІ1
ANI 00000011b ; «фільтруємо» її
STA 704h ; заносимо її у комірку пам’яті з адресою 704h
Після виконання цієї послідовності команд введене xn зберігається у комірках пам’яті із адресами 703h та 704h.
Вивід результату на ЦАП виконується через порти А та В і програмується так: (підпрограма OUTDATA)
MVI A, 00001110b ; подаємо на вхід STB обох КР580ИР82 «0»
OUT 0B3h ;
LDA 707h ; завантажуємо молодший байт yn
OUT 0B0h ; у порт А
LDA 708h ; завантажуємо старший байт yn
OUT 0B1h ; у порт В
MVI A, 00001111b ;
OUT 0B3h ; подаємо на STB «1» — передача інформації із входів на ; виходи
5.2 Опис програми обробки інформації
Програма обробки інформації є підпрограмою «Vanden» головної програми. У ній зустрічаються інші підпрограми, всі вони будуть описані нижче.
Підпрограма обробки переривань.
ITER:
4 DI ; заборона переривань
11 PUSH PSW ; заносимо у стек слово стану процесора
11 PUSH H ; зберігаємо регістрову пару HL
11 PUSH B ; зберігаємо регістрову пару BC
11 PUSH D ; зберігаємо регістрову пару DE
10 IN 0A0h ; зчитуємо інформацію з порта А ППІ1
13 STA 703h ; заносимо її у комірку пам’яті з адресою 703h
10 IN 0A1h ; зчитуємо інформацію з порта В ППІ1
7 ANI 00000011b ; «фільтруємо» її
13 STA 704h ; заносимо її у комірку пам’яті з адресою 704h
10 POP D ; відновлюємо значення регістрової пари DE
10 POP B ; відновлюємо значення регістрової пари BC
10 POP H ; відновлюємо значення регістрової пари HL
10 POP PSW ; відновлюємо значення слова стану процесора
10 RET ; вихід із підпрограми
Кількість тактів, за які виконується підпрограма обробки переривань, дорівнює 151.
Підпрограма множення.
(ПІДПРОГРАМА УД24 ВИКОНУЄ МНОЖЕННЯ, ЗВЕРТАЮЧИСЬ ДО ПІДПРОГРАМИ У24)
ПІДПРОГРАМА МНОЖЕННЯ ЦІЛИХ ДВІЙКОВИХ ЧИСЕЛ У ДОПОВНЮЮЧОМУ КОДІ ФОРМАТУ 16*8=24, ВХІДНІ АПРАМЕТРИ: (С) – МНОЖНИК, (D, Е) – МНОЖЕНЕ, ВИХІДНІ ПАРАМЕТРИ: (B, H, L) – ЧАСТКА,
УД24:
; ВИКОНАННЯ БЕЗЗНАКОВОГО МНОЖЕННЯ 16*8=24
17+522 CALL У24 ; (А, Н, L) – ЧАСТКА
5 MOV B, A ; У В – СТАРШИЙ БАЙТ
; ПЕРЕВІРКА ДОБУТКУ НА 0
4 ORA H
4 ORA L
11 RZ ; ЯКЩО ДОБУТОК =0
; ПЕРЕВІРКА ЗНАКУ МНОЖНИКА
5 MOV A, C
4 RAL
10 JNC PER1 ; ЯКЩО ЗНАК «+»
; ВІДНІМАННЯ МНОЖЕНОГО ВІД СТАРШИХ БАЙТІВ ДОБУТКУ
5 MOV A, H
4 SUB E
5 MOV H, A
5 MOV A, B
4 SBB D
5 MOV B, A
; ПЕРЕВІРКА ЗНАКУ МНОЖЕНОГО
PER1: MOV A, D
4 RAL
11 RNC ; ЯКЩО ЗНАК «+»
; ВІДНІМАННЯ МНОЖЕНОГО ВІД СТАРШИХ БАЙТІВ ДОБУТКУ
5 MOV A, B
4 SUB C
5 MOV B, A
10 RET
ПІДПРОГРАМА УД24 ВИКОНАЄТЬСЯ ЗА 127 ТАКТІВ.
Підпрограма У24
У24:
; ***********************************************************************
; ПІДПРОГРАМА МНОЖЕННЯ ЦІЛИХ ДВІЙКОВИХ ЧИСЕЛ БЕЗ ЗНАКУ
; ФОРМАТУ 16*8=24
; МЕТОД МНОЖЕННЯ: 8 ЦИКЛІВ ЗСУВУ МНОЖНИКА І ПОТОЧНОЇ СУМИ
; ЧАСТКОВИХ ДОБУТКІВ ВЛІВО.
; ВХІДНІ ПАРАМЕТРИ: (С) – МНОЖНИК, (D, E) – МНОЖЕНЕ;
; ВИХІДНІ ПАРАМЕТРИ: (A, H, L) – ДОБУТОК;
; ВИКОРИСТОВУЮТЬСЯ ВСІ РЕГІСТРИ, ЗБЕРІГАЮТЬСЯ (С), (D, E),
; ***********************************************************************
; ОБНУЛЕННЯ ПОТОЧНОЇ СУМИ ЧАСТКОВИХ ДОБУТКІВ
4 XRA A
5 MOV H, A
5 MOV L, A
; ПЕРЕВІРКА МНОЖНИКІВ НА НУЛЬ
4 ADD C
11 RZ ; ЯКЩО МНОЖНИК =0
4 XRA A
4 ORA D
4 ORA E
11 RZ ; ЯКЩО МНОЖЕНЕ =0
5 MOV A, C ; (А) – МНОЖНИК
7 MVI B, 8 ; ЛІЧИЛЬНИК ЦИКЛІВ
; ЗСУВ ПОТОЧНОЇ СУМИ ЧАСТКОВИХ ДОБУТКІВ І МНОЖНИКА ВЛІВО
; ЦИКЛ ВИКОНАЄТЬСЯ ЗА 448 ТАКТІВ
ЦИКЛ:
10 DAD H
4 RAL
10 JNC ПЕР ; ЯКЩО РОЗРЯД МНОЖНИКА =0
; ДОДАВАННЯ МНОЖЕНОГО І ПОТОЧНОЇ СУМИ ЧАСТКОВИХ ДОБУТКІВ
10 DAD D
7 ACI 0
; ПЕРЕРВІРКА КІНЦЯ ЦИКЛУ
ПЕР:
5 DCR B
10 JNZ ЦИКЛ ; ЗАЦИКЛЮВАННЯ
10 RET
Підпрограма У24 виконається за 522 такти.
Підпрограма ss (save sign) для збереження знаку результату.
ss:
13 STA 805h ; зберігаємо поточне значення акумулятора
13 LDA 802h ; завантажуємо байт результату із знаком
4 RAL ; переносимо знак у прапорець С
10 JC M1 ; якщо знак « - »
7 MVI A, 00000000b ; знак = «+»
10 JMP M2 ; перехід на збереження знаку
7 M1: MVI A, 10000000b ; знак = « - »
13 M2: STA 807h ; збереження знаку у комірці з адресою 807h
13 LDA 805h ; відновлення значення акумулятора
10 RET
Підпрограма ss виконається за 100 тактів.
Підпрограма ls (load sign) для відновлення знаку результату.
ls:
13 STA 805h ; зберігаємо поточне значення акумулятора
13 LDA 807h ; завантажуємо «знак»
4 RAL ; переносимо знак у прапорець С
10 JC M3 ; якщо « - »
13 LDA 708h ;
7 ANI 00000111b ; знак «+»
10 JMP M4 ;
13 M3: LDA 708h ;
7 ORI 11111000b ; знак « - »
7 ANI 00001111b ;
13 M4: STA 708h ;
13 LDA 805h ; відновлюємо значення акумулятора
10 RET
Кількість тактів, за які виконається підпрограма ls, дорівнює 133.
Підпрограма зсуву для формування результату.
ZSUV:
13 LDA 800h ; завантажуємо
4 RAL ; циклічно зсуваємо вліво
13 STA 800h ; зберігаємо
13 LDA 801h ; завантажуємо
4 RAL ; циклічно зсуваємо вліво
13 STA 801h ; зберігаємо
13 LDA 802h ; завантажуємо
4 RAL ; циклічно зсуваємо вліво
13 STA 802h ; зберігаємо
10 RET
Підпрограма ZSUV виконається за 100 тактів.
Підпрограма для виводу даних OUTDATA.
OUTDATA:
7 MVI A, 00001110b ; подаємо на вхід STB обох КР580ИР82 «0»
10 OUT 0B3h ;
13 LDA 707h ; завантажуємо молодший байт yn
10 OUT 0B0h ; у порт А
13 LDA 708h ; завантажуємо старший байт yn
10 OUT 0B1h ; у порт В
7 MVI A, 00001111b ;
10 OUT 0B3h ; подаємо на STB «1» — передача інформації із входів на ; виходи
10 RET
Підпрограма OUTDATA виконається за 90 тактів.
Підпрограма знакового додавання. (викликається відразу ж після УД24)
SIGNSUM:
5 MOV A, L ; зберігаємо
13 STA 808h ; результати
5 MOV A, H ; попереднього
13 STA 809h ; множення
5 MOV A, B ; у
13 STA 80Ah ; пам’яті
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
13 LDA 802h ; завантажуємо перший доданок
4 RAL ; його знак – у прапорець С
10 JC M5 ; якщо знак 1-ого доданка – «–»
13 LDA 80Ah ; завантажуємо другий доданок
4 RAL ; його знак – у прапорець С
10 JC M6 ; якщо «+»*«–»
; «+»*«+»
13 LDA 800h ; завантажуємо молодший байт першого доданка
5 MOV C, A ; у регістр С
13 LDA 808h ; завантажуємо молодший байт другого доданка
4 ADD C ; додаємо їх
13 STA 80Bh ; заносимо у комірку пам’яті з адресою 80Bh
13 LDA 801h ; завантажуємо середній байт першого доданка
5 MOV C, A ; у регістр С
13 LDA 809h ; завантажуємо середній байт другого доданка
4 ADC C ; додаємо їх, враховуючи прапорець переносу
13 STA 80Ch ; зберігаємо у комірці пам’яті з адресою 80Ch
13 LDA 802h ; завантажуємо старший байт першого доданка
5 MOV C, A ; у регістр С
13 LDA 80Ah ; завантажуємо старший байт другого доданка
4 ADC C ; додаємо їх, враховуючи прапорець переносу
13 STA 80Dh ; зберігаємо у комірці пам’яті з адресою 80Dh
10 JMP M7 ; НА ВИХІД ІЗ ПІДПРОГРАМИ
; «+»*«–»
13 M6: LDA 808h ; завантажуємо молодший байт другого доданка
5 MOV C, A ; у регістр С
13 LDA 800h ; завантажуємо молодший байт першого доданка
4 SUB C ; віднімаємо від нього другий
13 STA 80Bh ; результат зберігаємо
13 LDA 809h ; те
5 MOV C, A ; саме
13 LDA 801h ; для
4 SBB C ; середнього байта обох доданків
13 LDA 80Ah ; завантажуємо старший байт другого доданка
7 ANI 01111111b ; обнулюємо біт знаку
5 MOV C, A ; заносимо його у регістр С
13 LDA 802h ; завантажуємо старший байт першого доданка
4 SBB C ; віднімаємо від першого модуль другого
13 STA 80Dh ; зберігаємо у 80Dh
10 JMP M7 ; НА ВИХІД ІЗ ПІДПРОГРАМИ
; ЗНАК 1-ОГО ДОДАНКА – «–»
13 M5: LDA 80Ah ; завантажуємо старший байт другого доданка
4 RAL ; знак – у прапорець С
10 JC M8 ; якщо «–»*«–»
; «–»*«+» тут коментарі такі ж, як і для випадку «+»*«–», різниця лише у порядку
; знаків обох доданків
13 LDA 800h ;
5 MOV C, A ;
13 LDA 808h ;
4 SUB C ;
13 STA 80Bh ;
13 LDA 801h ;
5 MOV C, A ;
13 LDA 809h ;
4 SBB C ;
13 LDA 802h ;
7 ANI 01111111b ;
5 MOV C, A ;
13 LDA 80Аh ;
4 SBB C ;
13 STA 80Dh ;
10 JMP M7 ; НА ВИХІД ІЗ ПІДПРОГРАМИ
; «–»*«–»
13 M8: LDA 800h ; завантажуємо молодший байт першого доданка
4 CMA ; інвертуємо
7 ADI 00000001b ; робимо доповнюючий код
13 STA 810h ; зберігаємо у 810h
13 LDA 801h ;
4 CMA ; те
7 ADI 00000001b ; саме
13 STA 811h ; і
13 LDA 802h ; для
4 CMA ; інших
7 ADI 00000001b ; байтів
13 STA 812h ;
13 LDA 808h ; а
4 CMA ; також
7 ADI 00000001b ; для
13 STA 818h ; другого
13 LDA 809h ; числа
4 CMA ;
7 ADI 00000001b ;
13 STA 819h ;
13 LDA 80Ah ;
4 CMA ;
7 ADI 00000001b ;
13 STA 81Ah ;
13 LDA 810h ; завантажуємо молодший байт першого числа
5 MOV C, A ; у регістр С
13 LDA 818h ; завантажуємо молодший байт другого числа
4 ADD C ; додаємо їх
13 STA 80Bh ; зберігаємо у 80Bh
13 LDA 811h ;
5 MOV C, A ; те
13 LDA 819h ; саме
4 ADC C ; і
13 STA 80Ch ; для
13 LDA 812h ; інших
5 MOV C, A ; байтів
13 LDA 81Ah ;
4 ADC C ;
13 STA 80Dh ;
13 LDA 80Bh ; тепер
4 CMA ; інвертуємо
13 STA 80Bh ; результат
13 LDA 80Ch ;
4 CMA ;
13 STA 80Ch ;
13 LDA 80Dh ;
4 CMA ;
13 STA 80Dh ;
13 LDA 80Bh ;
7 ADI 00000001b ; додаємо
13 STA 80Bh ; по
13 LDA 80Ch ; одиничці
7 ACI 00000000b ; до
13 STA 80Ch ; результату
13 LDA 80Dh ;
7 ACI 00000000b ;
7 ORI 10000000b ; встановлюємо біт знаку в одиницю
13 STA 80Dh ;
10 M7: RET
Підпрограма SIGNSUM виконується за 680 тактів.
Підпрограма обробки інформації Vanden.
Vanden:
13 LDA 700h ; підготовка
5 MOV C, A ; вхідних
13 LDA 703h ; даних
5 MOV E, A ; для
13 LDA 704h ; множення
5 MOV D, A ;
17 CALL УД24 ; множимо а0 на хn
5 MOV A, L ; зберігаємо результат у 802h 801h 800h
13 STA 800h ;
5 MOV A, H ;
13 STA 801h ;
5 MOV A, B ;
13 STA 802h ;
13 LDA 701h ;
5 MOV C, A ;
13 LDA 705h ;
5 MOV E, A ;
13 LDA 706h ;
5 MOV D, A ;
17 CALL УД24 ; множимо а1 на хn-1
17 CALL SIGNSUM ; yn:=a0*xn+a1*xn-1
13 LDA 702h ;
5 MOV C, A ;
13 LDA 709h ;
5 MOV E, A ;
13 LDA 70Ah ;
5 MOV D, A ;
17 CALL УД24 ; множимо b0 на yn-1
17 CALL SIGNSUM ; yn:= yn+b0*yn-1
13 LDA 80Bh ; SIGNSUM зберегла результат у 80Bh 80Ch 80Dh
13 STA 800h ; а нам потрібно, щоб результат був у
13 LDA 80Ch ; 800h 801h 802h
13 STA 801h ;
13 LDA 80Dh ;
13 STA 802h ;
17 CALL ss ;
17 CALL ZSUV ;
17 CALL ZSUV ;
17 CALL ls ;
13 LDA 801h ; результат записуємо у відповідні комірки
13 STA 707h ;
13 LDA 802h ;
13 STA 708h ;
17 CALL OUTDATA ;
13 LDA 703h ; xn-1:=xn
13 STA 705h ;
13 LDA 704h ;
13 STA 706h ;
13 LDA 707h ; yn-1:=yn
13 STA 709h ;
13 LDA 708h ;
13 STA 70Ah ;
4 EI ; дозволяємо переривання
10 JMP START ; на початок
Підпрограма Vanden виконується за 634 тактів.
5.3 Оцінка верхньої фінітної частоти вхідного аналогового сигналу
У головній програмі та у всіх підпрограмах, що використовуються нею, зустрічаються команди, що наведені у таблиці 5.3.1, де є також кількість тактів, за які виконується кожна команда.
Таблиця кількості тактів виконання команд МП КР580ВМ80 Таблиця 5.3.1
Мнемоніка команди
Кількість тактів
Lxi
10
Push
11
Call
17
Jmp
10
Ret
10
Mvi
7
Out
10
Pop
10
Ei
4
Di
4
Lda
13
Stc
4
Cmc
4
Ral
4
Cma
4
Sphl
5
Dad
10
Rar
4
Jnc
10
Jnz
10
Dcr
5
Lhld
16
Shld
16
Mov
5
Hlt
7
Out
10
Таким чином ми зможемо підрахувати кількість тактів, за які виконається кожна із підпрограм головної програми та сама головна програма, результати підрахунку наведені у таблиці 5.3.2.
Кількість тактів, що виконуються основним циклом програми Таблиця 5.3.2
Частина програми
Кількість тактів
Число виконань за основний цикл
Кількість тактів
Основна
156
1
156
Підпрограма обробки переривань ITER
151
1
151
Підпрограми множення
УД24
У24
127
522
3
3
381
1566
Підпрограма ss
100
1
100
Підпрограма ls
133
1
133
Підпрограма ZSUV
100
2
200
Підпрограма OUTDATA
90
1
90
Підпрограма SIGNSUM
680
2
1360
Підпрограма Vanden
634
1
634
Загальна кількість тактів
4771
Загальна кількість тактів, необхідна для виконання програми, N=4771.
Тривалість виконання основного циклу програми дорівнює:
TОБР= (1/2,5МГц)*N=0,00182 (с); 5.3.1
fΔt=1/TОБР=549,453 (Гц); 5.3.2
За теоремою Котельнікова:
fmax= fΔt/2=274,7265 Гц 5.3.3
6. Опис функціональног вузла
Двонаправлений шинний формувач
КР580ВА86/87
Шинний формувач КР580ВА86/87 орієнтований в першу чергу на використання в мікропроцесорних системах, побудованих на БІС серій КР580 і К1810, але він може використовуватися і в системах разом з мікропроцесорами іншиг серій. Шинний формувач призначений для збільшення навантажувальної здатності виводів мікропроцесорних БІС. Крім того, він забезпечує відключення модулів системи у потрібні моменти часу від загальної шини.
Технічні характеристики
Технологія ……………………………………………………. ТТЛШ
Кількість активних елементів у кристалі:
ВА86 ………………………………………………………... 567
ВА87 ………………………………………………………... 374
Тип корпусу …………………………………………………... 2140.20-1
Кількість виводів у корпусі …………………………………. 20
Час затримки розповсюдження сигналу на виході відносно
сигналу на вході, нс:
ВА86 ………………………………………………………… <=30
ВА87 ………………………………………………………… <=22
(UЖИВ, В ………………………………………………………... 5
Виводи А:
U, В …………………………………………………………. 2,28
С, пФ ………………………………………………………... 100
R, Ом ………………………………………………………... 114
Виводи В:
U, В …………………………………………………………. 2,14
С, пФ ………………………………………………………... 300
R, Ом ………………………………………………………... 52,7)
Час затримки переходу виводів формувача у високоімпен-
дансний стан відносно моменту появи сигналу високого
рівня на виході , нс ………………………………………. <=18
(UЖИВ, В ……………………………………………………... 5
U, В …………………………………………………………. 1,5
С, пФ ………………………………………………………... 100
R, Ом ………………………………………………………... 900 (600))
Час затримки виходу виводів із високоімпендансного стану
Відносно моменту появи сигналу низького рівня на вході
, нс …………………………………………………………. 10…130
(UЖИВ, В …………………………………………………….. 5
Виводи В:
С, пФ ………………………………………………………... 300
R, Ом ………………………………………………………... 180)
Час подачі нового сигналу на вхід Т відносно моменту часу
поступлення забороняючого сигналу на вхід , нс …….. >=18
Час зберігання сигналу напрямку передачі відносно дозво-
ляючого сигналу на вході , нс ………………………….. >=30
Напруга живлення, В ……………………………………….. -5±5%
Струм споживання від джерела живлення, мА:
ВА86 ………………………………………………………... <=160
ВА87 ………………………………………………………... <=130
Розсіювана потужність, Вт …………………………………. 1
Вихідна напруга низького рівня, В:
по виходах А ……………………………………………….. <=0,45
по виходах В ……………………………………………….. <=0,45
(UЖИВ, В ……...