Поэтому для перехода фильтра в рабочий режим, сначала необходима его настройка (инициализация).
3. Разработка и описание общего алгоритма функционирования устройства
Общий алгоритм функционирования фильтра представлен на рисунке 2.Работа фильтра начинается с подачи питания на дифференцирующую цепь RC, которая формирует импульс сброса RST, устанавливающий МК в исходное состояние и обнуляющий программный счетчик. Следовательно, программа инициализации должна начинаться с нулевого адреса. Программа инициализациивключает в себя настройки аппаратных и программных модулей МК и МП -системы на заданные режимы функционирования и с определенными параметрами:
1. Настройка Т/С0 на частоту дискретизации
2. Настройка портов: РВ БИС РУ 55-на ввод данных, РВ БИС РФ 55-на вывод данных
3. Запуск Т/С0 для формирования непрерывной последовательности импульсов с частотой
4. Настройка прерываний: разрешаются внутренние прерывания от Т/С0, которые используются для программного формирования импульса запуска внешнего источника входного кода, и внешние прерывания от входа
5. Организовать стек.
Программа инициализации завершается остановом МП-системы. Из состояния останова МК выводится внутренним сигналом прерывания от Т/С0. По данному прерыванию выполняется программный модуль формирования импульса запуска внешнего источника данных, после чего МК снова переходит в состояние останова и находится в нем до следующего прерывания по входу
Рис. 2. Общий алгоритм функционирования фильтра.
4. Обоснование построения аппаратной части устройства
Основой аппаратной части устройства является набор БИС КР1830ВЕ31, КР1821РФ55, КР1821РУ55.
1. КР1830ВЕ31- микроконтроллер, выполненный по комплементарной МОП технологии (КМОП);
2. КР1821РФ55- ПЗУ с двумя портами ввода/вывода, работающими в режиме простого обмена;
3. КР1821РУ55- микросхема, в состав которой входят: ОЗУ, таймер, два 8-разрядных (РА и РВ) порта ввода/вывода и один 6-разрядный порт (РС).
Выходной сигнал должен иметь аналоговый вид, для преобразования цифрового кода в аналоговый сигнал, используя ЦАП типа AD9708.Микросхема AD9708 представляет собой 8-разрядный ЦАП, построенный по схеме на транзисторных источниках тока, весовые токи формируются с помощью матрицы R-2R. В качестве опорного источника напряжения может выбираться либо внутренний – с напряжением +1,2 В, либо – внешний.Для обеспечения требуемого размаха напряжения ±5 В, к токовым выходам ЦАП подключаем операционный усилитель.
5. Разработка и отладка программы на языке команд микропроцессора
Рабочая программа фильтра разрабатывается на основе алгоритма функционирования устройства.Для настройки таймера/счетчика Т/С0, в качестве таймера, на работу в непрерывном режиме 2 (без блокировки сигналом
Управляющее слово для регистра TMOD (прямой адрес 89) | |||||||
TMOD.7 | TMOD.6 | TMOD.5 | TMOD.4 | TMOD.3 | TMOD.2 | TMOD.1 | TMOD.0 |
GATE 1 | C/ | M 1.1 | M 0.1 | GATE 0 | C/ | M 1.0 | M 0.0 |
X(0) | X(0) | X(0) | X(0) | 0 | 0 | 1 | 0 |
Для обеспечения требуемой частоты дискретизации
Для настройки порта РВ БИС РУ55 на ввод данных надо в состав регистра управляющего слова записать константу #00.
Управляющее слово для РУС БИС HE 55 (адрес 7000) | |||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
TM2 | TM1 | IE B | IE A | PC2 | PC1 | PB | PA |
x(0) | x(0) | x(0) | x(0) | x(0) | x(0) | 0 | x(0) |
При инициализации – команды MOVA, #00, MOVDPTR, #7000, MOVX @DPTR, A.
А для настройки порта РВ РФ 55 на вывод данных надо в регистр направления передачи порта РВ записать 1. При инициализации – команды MOVA, #01,MOVDPTR, #0803, MOVX @DPTR, A.
Формирование импульса запуска внешнего источника данных выполняется по прерывания от флага TF0, устанавливающегося при переполнении Т/С0. Подпрограмма обработки прерывания от флага TF0 имеет стартовый адрес 000В и содержит команды: CLR 90, SETB 90(сброс и установка бита по линии Р1.0).
Настройка прерываний необходима, так как в результате сброса МК все прерывания запрещены (управляющий регистр IEобнуляется). В первую очередь необходимо разрешить прерывания вообще (бит EA=1), также разрешить прерывания от Т/С0 (бит ET0=1) и по входу
Управляющее слово для регистра IE (прямой адрес А8) | |||||||
IE 7 | IE 6 | IE 5 | IE 4 | IE 3 | IE 2 | IE 1 | IE 0 |
EA | — | — | ES | ET1 | EX1 | ET0 | EX0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
При инициализации – команда MOVA8, #83.
Переопределять приоритеты прерываний не требуется, так как в результате задержки преобразования внешним устройством аналогового сигнала в цифровой код, запросы на прерывания от Т/С0 и по входу
Распределение памяти ОЗУ (КР1830ВЕ31).
70h-7Fh- стек;
30h, 31h, 32h – хранение отсчетов
40h, 41h – хранение выходных отсчетов
50h, 51h – хранение отсчетов
Распределение памяти ПЗУ (КР1821РФ55).
0000h – команда перехода к программе инициализации по сигналу RST
0003h – команда перехода к программе вычисления и выводавыходного отсчета по сигналу на входе
000Bh – команда перехода к программе формирования импульса внешнего источника данных по сигналу переполнения от Т/С0;
00A0h … 00СFh – программа инициализации;
00D0h … 00FFh – программа формирования импульса запуска внешнего источникаданных;
0100h … 07FFh – программа вычисления и вывода выходного отсчета на ЦАП.
Текст программы
Программа "Цифровой фильтр (нижних частот)
Автор: Дмитриев Александр Юрьевич
Дата: 12 мая 2007 года
Разностное уравнение:
Определение символических имен операндов
B0: .EQU 90h ;линия для вывода импульса запуска внешнего ;источника данных
PBRU: .EQU 7002h ;порт РВ РУ 55
RGRU: .EQU 7000h ;регистр управляющегослова РУ 55
SRU: .EQU 00h ;управляющее слово длянастройки порта РВ РУ 55
PBRF: .EQU 0801h ;порт РВ РФ 55
RGRF: .EQU 0803h ;регистр направленияпередачи порта РВ РФ 55
SRF: .EQU 01h ;управляющее слово длярегистра направленияпередачи порта РВ РФ 55
TMOD: .EQU 89h ;регистр управления Т/С
STMOD: .EQU 02h ;управляющее слово длянастройки Т/С0
TH0: .EQU 8Ch ;старший байт Т/С0
STH0: .EQU 8Eh ;управляющее слово длязадания частоты переполнения Т/С0
TR0: .EQU 8Ch ;управляющий бит пуска Т/С0
IE: .EQU A8h ;регистр управления прерываниями
SIE: .EQU 83h ;управляющее слово длянастройки прерываний
B: .EQU F0h ;регистр В
k1: .EQU F8h ;коэффициент
k2: .EQU D6h ;коэффициент
Km: .EQU 5Bh ;коэффициент масштабирования
X: .EQU 30h ;ячейка хранения отсчета
X1: .EQU 31h ;ячейка хранения отсчета
X2: .EQU 32h ;ячейка хранения отсчета
Y: .EQU 40h ;ячейка хранения отсчета
Y1: .EQU 41h ;ячейка хранения отсчета
P1: .EQU 50h ;хранение отсчета
P2: .EQU 51h ;хранение отсчета