Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦУ курсовая АЦП ЦАП.doc
Скачиваний:
30
Добавлен:
11.09.2019
Размер:
647.17 Кб
Скачать

Формализация определений для рабочего цикла фильтра.

Реализация прерываний по входу INT1 .

Прерывание по внешнему входу INT1 выполняет сигнал оповеще­ния ЕОС с выхода АЦП о готовности кода текущего отсчёта xn. По прерыва­нию INT1 запускается подпрограмма вычисления выходного отсчёта уn (за­пускается рабочий цикл) цифрового фильтра.

Вектор прерывания по входу INT1 равен 0013. С этого адреса в ПЗУ загружается подпрограмма обслуживания прерывания данного типа.

Согласование кодов АЦП и МК.

Согласование кодов АЦП и МК не требуется, так как выходной код AD7892AN-1 является арифметическим дополнительным кодом и отображает числовые значения входного знакопеременного напряжения.

Форма представления чисел

Представляем числовые значения отсчетов входного сигнала в виде правильной дроби с фиксированной запятой: старший разряд - знаковый, за­пятая, остальные двоичные разряды - числовые. Таким образом, числовые значения входного сигнала изменяются в диапазоне от -1 до +1.

Коэффициенты разностного уравнения определяем, как 8-разрядные числа без знака:

k = 0,4950187510); kP =,01111110 (2) = 7Е(16) = 0,49501875(10);

Отличие реальных значений коэффициентов (Р) от заданных (Т) предопределяет отличие реальных характеристик фильтра от расчётных.

Хранение текущих данных

Необходимость хранения данных определяется видом заданного разностного уравнения. Для каждого цикла вычисления текущих выходных отсчётов yn требуется использовать выборку входных отсчетов xn, xn-1, и выборку выходных отсчетов yn, yn-1. Все указанные отсчеты долж­ны быть доступны для вычислений, следовательно, должны храниться в па­мяти МП-системы.

Требуется также вычислить текущее произведение: p1n =0,49609375 xn

которое также должно храниться в памяти.

Следовательно, 8 ячеек ОЗУ (РФ55) при составлении программы оп­ределим для хранения данных в текущем цикле обработки входного сигнала (в текущем интервале дискретизации).

После вычисления выходного отсчета yn и записи его в ОЗУ, перед приемом нового входного отсчета необходимо сдвинуть отсчеты всех выбо­рок в памяти: n-й отсчет на место n-1-гo. Это требуется для подготовки следующего цикла вычислений.

Масштабирование входных отсчётов

Если при вычислении разностного уравнения при принятом 8-разрядном формате представления данных получен числовой результат, вы­ходящий за пределы -1, +1 имеет место переполнение разрядной сетки.

Для исключения переполнения введем масштабирование (ослабле­ние) входных отсчетов путем их умножения на коэффициент масштабирова­ния kM < 1, при котором вычисление разностного уравнения не дает недопус­тимого результата.

Коэффициент kM получим, предположив, что отсчеты в разностном уравнении принимают максимальные значения (- 1, + 1) и такие знаки, при которых слагаемые разностного уравнения складываются по модулю, то есть складываются по модулю коэффициенты.

Подставив такие значения в уравнение для вычисления и просум­мировав по модулю коэффициенты, получим ynmax =2.495, что является недопустимым результатом. Отсюда заданный коэффициент масштабирования (число без знака) равен:

kМ = 1/ ynmax = 0,400390625(10); kМР = 0,01100110(2) = 66(16) ≈ 0.4(10).

Умножение отсчёта на коэффициент

При вычислении разностного уравнения и при масштабировании, перемножаются числа со знаком (отсчёты) на числа без знака (коэффициен­ты). Произведение - число со знаком. Система команд МК содержит коман­ды умножения только для чисел без знака (положительных чисел).

Поэтому перемножение множимого со знаком на множитель без знака в системе команд МК реализуется либо на основе алгоритма умноже­ния вручную (арифметические сдвиги множимого вправо, соответствующие позициям единиц множителя, и накопление суммы частичных произведе­ний), либо на основе смены знака у отрицательного множимого, перемноже­ния беззнаковых сомножителей с соответствующей сменой знака у произве­дения.

Примем для реализации второй алгоритм, как более эффективный по критериям: объём программы и длительность выполнения программы умно­жения.