Листинг программы вычислительного канала приведен в приложении А.
Рисунок 4
Рисунок 5
Рисунок 6
Рисунок 7
Рисунок 8
Блок-схема работы ГТ представлена на рисунке 9 и на рисунке 10.
Сразу после сброса МПС микроконтроллер КИ1816ВЕ51, выполняющий функцию генератора тестов производит инициализацию внутренних регистров и устанавливает на линии Mode своего порта Р0 сигнал «1» - признак рабочего режима. МПС после завершения вычислений производит вывод вычисленных функций, последним выводится сигнал Y4 на ЦАП, при этом происходит посылка строба по линии порта РС ППА на выходной регистр. Эта линия соединена с входом запроса на прерывание INT0. На линии Int_Type при этом устанавливается «0». Обработчик прерывания устанавливает флаг ФФ в «1», что информирует ГТ о начале тестового режима. После этого происходит установка «0» на линию Mode (тестовый режим) и производится выполнение 32 тестовых циклов (изменяется элемент массива тестовых величин, имитирующий двоичные входные сигналы Х1 – Х5) при этом тестовые комбинации подаются от порта Р2 ГТ к порту РВ ППА. Затем происходит изменение остальных элементов тестового массива.
В случае подачи прерывания от пользователя МПС также устанавливает запрос на прерывание ГТ INT0, но на линии Int_Type при этом – «1». При этом происходит прерывание выполняемой программы и переход на начало (устаналивается рабочий режим).
При запросе прерывания от аварийного датчика МПС подает сигнал запроса прерывания на линию INT1. Обработчик данного прерывания запускает таймер и изменяет стек таким образом, чтобы при возврате из прерывания осуществился переход к набору команд, реализующих бесконечный цикл.
Обработчик прерывания в свою очередь попеременно включает и выключает светодиод сигнализации и перезапускает таймер. В таймер заносится константа, обеспечивающая переполнение таймера с частотой 2Гц.
Листинг программы для ГТ представлен в приложении Б.
Рисунок 9
Рисунок 10
Расчет минимального времени, необходимого для выполнения программы ВК производится путем подсчета времени, необходимого для выполнения команд. Кроме того необходимо учесть время задержки преобразования АЦП. Расчет сведем в таблицу 4.
Таблица 4
Команда |
Количество команд в программе |
Время выполнения команды, такты |
Время выполнения команд, мкс |
ADDm |
1 |
7 |
3,5 |
ADDr |
1 |
4 |
2 |
ANA |
3 |
4 |
6 |
ANI |
12 |
7 |
42 |
CALL |
1 |
17 |
8,5 |
DCRr |
3 |
5 |
7,5 |
INRr |
1 |
5 |
2,5 |
INX |
7 |
5 |
17,5 |
JC |
3 |
10 |
15 |
JMP |
3 |
10 |
15 |
JZ |
4 |
10 |
20 |
LDA |
23 |
13 |
149,5 |
LXI |
4 |
10 |
20 |
MOVm |
11 |
7 |
38,5 |
MOVr |
3 |
5 |
7,5 |
MVIr |
18 |
7 |
63 |
NZ |
5 |
10 |
25 |
ORAr |
1 |
7 |
3,5 |
ORI |
4 |
7 |
14 |
RAR |
3 |
4 |
6 |
RLC |
2 |
4 |
4 |
STA |
33 |
13 |
214,5 |
SUBr |
2 |
4 |
4 |
XCHG |
2 |
4 |
4 |
XRA |
2 |
7 |
7 |
Итого |
700 |
Минимальное время выполнения одного рабочего цикла Тц, мкс, при условии отсутствия прерываний вычисляется по формуле (1).
Тц = Тк + n*Тп, (1)
где Тк – время выполнения команд программы, мкс;
n – количество преобразований АЦП;
Тц – время преобразования, мкс.
Подставляя значения получаем:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.