3. Розробка програмного забезпечення

3.1 Розробка алгоритму функціонування пристрою

В МП АЦП порозрядного врівноваження із ваговою надлишковістю, що калібрується МК працює на основі наступного алгоритму, який наведено в додатку Б.

Алгоритм працює наступним чином:

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

Під час запуску режиму основного перетворення аналог-код відбувається встановлення початкових налаштувань для роботи пристрою. Алгоритм підпрограми підготовки наведено в додатку В.

Його робота полягає в наступному: Очищаються регістри БП в яких будуть зберігатися значення двійкового 14-розрядного вихідного коду. Встановлюється початкове значення лічильника, що відповідає кількості розрядів надлишкового ЦАП і слугує для забезпечення необхідної кількості тактів спрацювання РПН і здійснення послідовного наближення. Шляхом встановлення сигналів порту С на виходах: РС.2 – відбувається встановлення сигналу пуску (встановлення сигналу S), РС.1 – сигнал даних, що на даному етапі примусово вмикає СЗР на РПН, який в свою чергу подає його на надлишковий ЦАП, РС.3 – сигнал тактового імпульсу, що по зростанню від рівня логічного 0 до рівня логічної 1 забезпечить запуск перетворення.

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

Якщо виконується умова Ак>Авх, то на виході СП значення логічного 0, у випадку Ак<Авх – значення логічної 1. Сигнал з СП поступає на вивід РС.0 та залежно від його значення МК виконує певну функцію:

Якщо логічний 0, то МК виконує перевірку значення лічильника і в процесі виконання умови зменшує його та подає сигнали D і C на РПН для здійснення наступного такту врівноваження.

Якщо логічної 1, то МК виконує очистку прапорця стану таймера, потім запускає його. За період, визначений таймером, виконується процес встановлення в регістрах значення сигналів D і C, а також обчислення в ЦОП цифрового еквіваленту аналогового сигналу входу на ввімкненому розряді та його збереження його в БП.

Після завершення роботи таймера виконується перевірка лічильника і в процесі виконання умови зменшує його та подає збережений сигнали D і C на РПН для здійснення наступного такту врівноваження.

Даний процес продовжується до тих пір, поки значення в лічильнику буде рівне 0, що свідчить про завершення врівноваження. У вигляді паралельного, двійкового, 14-розрядного коду через порти B і D виводяться старша та молодша частина цифрового значення вхідного аналогового сигналу.

3.2 Організація пам’яті та розподіл адресного простору

Регістровий файл швидкого доступу містить 32 8-розрядні регістри загального призначення, доступ до яких здійснюється за один машинний цикл. Шість з 32 регістрів можна використовувати як три 16-розрядні покажчики в адресному просторі даних, що дає можливість використовувати високоефективну адресну арифметику (16-розрядні регістри X, У і Z). Один з трьох адресних покажчиків (регістр Z) можна використовувати для адресації таблиць в пам'яті програм.

Простір вводу/виводу складається з 64 адрес для периферійних функцій процесора, таких як управляючі регістри, таймери/лічильники і інші. Доступ до простору вводу/виводу може здійснюватися безпосередньо, як до елементів пам'яті розташованих після регістрового файлу (20h- 5Fh).

Доступ до статичного ОЗП, регістровому файлу і регістрам вводу/виводу здійснюється за допомогою п'яти доступних режимів адресації підтримуваних архітектурою AVR.

Весь простір пам'яті AVR є лінійним і безперервним. Гнучкий модуль переривань має власний керуючий регістр в просторі вводу/виводу , і прапор глобального дозволу переривань в регістрі стану.

Файл регістрів загального призначення

Всі команди, що оперують з регістрами прямо адресуються до будь-якого з регістрів за один машинний цикл. Кожному регістру привласнена адреса в просторі даних, вони відображаються на перші 32 комірки ОЗУ. Хоча регістровий файл фізично розміщений поза ОЗП, подібна організація пам'яті дає гнучкий доступ до регістрів. Регістри X, У і Z можуть використовуватися для індексації будь-якого регістра. Окрім звичних функцій, регістри R26..R31 мають додаткові функції, ці регістри можна використовувати як адресні покажчики у області пам'яті даних.

Flash-пам'ять програм.

AT90S2333 містять 2К завантажувальної flash-пам'яті для зберігання програм. Оскільки всі команди займають одне 16- або 32-розрядне слово, flash-пам'ять організована як 1Kx16. Flash--пам'ять витримує не менше 1000 циклів перезапису. Програмний лічильник має ширину 10 біт і дозволяє адресуватися до 1024 слів програмної flash-пам'яті.

EEPROM пам'ять даних

AT90S2333 містять 128 байт енергонезалежної пам'яті (EEPROM). EEPROM організована як окрема область даних, кожен байт якої може бути прочитаний і перезаписаний. EEPROM витримує не менше 100000 циклів запису/стирання.

Статичний ОЗП даних

На рисунку 3.1 показана організація пам'яті даних в AT90S2333. 224 елементи пам'яті включають регістровий файл, пам'ять вводу/виводу статичний ОЗП даних.

Перші 96 адрес використовуються для регістрового файлу і пам'яті вводу/виводу , наступні 128 - для ОЗП даних.

Рисунок 3.1 – Структура пам’яті

При зверненні до пам'яті використовуються п'ять різних режимів адресації: прямий, безпосередній із зсувом, безпосередній, безпосередній з попереднім декрементом і безпосередній з постінкрементом. Регисти R26..R31 регістрового файлу використовуються як покажчики для безпосередньої адресації. Пряма адресація має доступ до всієї пам'яті даних. Безпосередня адресація із зсувом використовується для доступу до 63 комірок, базова адреса яких задається вмістом регістрів У або Z.

За допомогою будь-якого з цих режимів виробляється доступ до всіх 32 регістрів загального призначення, 64 регістрів вводу/виводу і 128 комірок ОЗП.

Розподіл адресного простору МК для пристрою здійснюється таким чином: R16 – регістр, що містить значення кількості розрядів, R17, R18 – для збереження та обчислення суми СЗР і МЗР, R19 – встановлення порта С для першого такту перетворення, а також для збереження адреси комірки пам’яті EEPROM, R20 – збереження проміжного значення ваг СЗР або МЗР i-го такту перетворення, R21 – для зчитування значень з компаратора, R22 – для переходу до адреси i-го адресу МЗР, R23, R24, R25 – для роботи таймера.


Информация о работе «Мікропроцесорний АЦП порозрядного врівноваження із ваговою надлишковістю, що калібрується»
Раздел: Коммуникации и связь
Количество знаков с пробелами: 48186
Количество таблиц: 2
Количество изображений: 9

0 комментариев


Наверх