Разработка и описание общего алгоритма и функционирования фильтра
Введение
С внедрением в промышленность цифровых технологий появилась возможность строить устройства обработки оцифрованных сигналов вычислительным методом. Такой способ обладает рядом важных преимуществ, таких как повышенная точность обработки, меньшая зависимость параметров от внешних условий, а также возможность реализации таких обрабатывающих устройств, которые невозможно или трудно было реализовать в аналоговом виде. К таким устройствам относятся и цифровые фильтры, для которых стало возможным построение разнообразных частотных характеристик путем их аналитической задачи. При этом реализуемы и фильтры традиционных типов: нижних частот, верхних частот, полосовые и режекторные. По заданию требуется спроектировать цифровое фазовое звено, используя набор К1821, включающий микропроцессор ВМ85, ПЗУ и порты на микросхеме РФ55, ОЗУ, таймер счетчик и порты на микросхеме РУ55. Входной сигнал аналоговый, оцифровывается с помощью 8 - разрядного АЦП КР572ПВ3, после чего имеет вид отсчетов, следующих через интервал дискретизации. После обработки сигнал в дополнительном цифровом коде должен передаваться в порт ввода-вывода по алгоритму с квитированием. Частота дискретизации FД = 8 кГц, разрядность выходного сигнала 8. Обработка должна происходить в реальном масштабе времени. При проектировании следует придерживаться двух критериев: минимальная аппаратная конфигурация устройства и минимальное время операций обработки сигнала (вычисления). При определенных условиях эти критерии противоречат друг другу. Формализация задачи
Минимальная конфигурация МП-системы на основе набора К1821, характеристики АЦП (572ПВ3) и технические требования по обеспечению их работы определяют функциональную схему разрабатываемого устройства, приведенную на рис.1.
Рис.1. Функциональная схема устройства.
Входное напряжение UВХ через согласующий усилитель подается на вход AI1 АЦП. Согласующий усилитель включен с целью увеличения размаха входного напряжения до требуемого для работы АЦП. Сдвиг входного напряжения в рабочую область АЦП осуществляет напряжение UCМ, поступающее на вход AI2. Опорное напряжение UОП1 требуется для работы ЦАП, входящего в состав БИС 572ПВ3.
Коэффициент усиления усилителя: КСОГЛ = DUАЦП/DUВХ = 5. Напряжение смещения: UСМ = DUАЦП/2 = +5 В. Опорное напряжение: UОП1 = - 10 В.
Сброс и запуск АЦП осуществляется по входу /RD (при постоянном значении /CS = 0) импульсом низкого уровня с выхода TOUT таймера, настроенного на формирование импульсов с частотой дискретизации FД. Тактирование регистра последовательных приближений АЦП осуществляется тактовыми импульсами CLK МП-системы, поступающими через логическую схему И на тактовый вход СLK АЦП. Высокий уровень сигнала /BUSY, устанавливающийся при окончании преобразования, прекращает поступление импульсов CLK на тактовый вход АЦП. Тактовая частота преобразования АЦП не должна превышать 1,5 МГц, поэтому примем FCLK АЦП = FCLK МП = 1,5 МГц. Если при такой тактовой частоте не обеспечивается требуемое быстродействие фильтра, тактовую частоту МП необходимо повысить, а для тактирования АЦП использовать делитель частоты FCLK МП или внутренний асинхронный генератор тактовых импульсов, настроенный на частоту FCLKАЦП выбором постоянной времени времязадающей RC-цепи. Время преобразования текущего отсчета входного напряжения в код составляет 8 периодов тактовой частоты: tПР = 8TCLK АЦП = 5,3 мкс. Схема выборки и хранения (СВХ) необходима, если за время tПР = 5,3 мкс самый быстроизменяющийся сигнал (синусоида с частотой fВ = 0,5FД и с максимальной амплитудой) изменяется на относительную величину, превышающую половину шага квантования h: 0,5h = 0,5/28 = 0,00195. Максимальное изменение синусоиды на интервале tПР равно Dx = sin 2pfВtПР = 0,13281. Dx > 0,5h, поэтому нужна СВХ для хранения текущего отсчета сигнала на время преобразования АЦП.
Частота дискретизации FД = 8 кГц формируется аппаратным таймером РУ55, в котором частота переполнения FП в режиме 3 равна FД. При использовании в качестве входных импульсов таймера тактовых импульсов CLK МП-системы (FCLK МП = 1,5 МГц) исходное состояние таймера равно
.
При дополнении 14-разрядного двоичного кода Nтаймера двумя битами 11, задающими режим 3, получаем биты,
которые загружаются в таймер при инициализации фильтра. Согласование кода АЦП и МП необходимо, так как числовые значения на выходе АЦП не отображают значения знакопеременного входного сигнала вследствие подачи на вход AI2 напряжения смещения UСМ. Согласование можно выполнить смещением диапазона изменения чисел на выходе АЦП в отрицательную область путем вычитания из каждого значения выходного кода константы 1000 0000 (2) - половины от максимального значения выходного кода АЦП (прибавление дает тот же результат). Форма представления чисел (числовых значений отсчетов входного сигнала) - правильная дробь с фиксированной запятой: старший разряд - знаковый, запятая, остальные двоичные разряды - числовые. Таким образом, числовые значения входного сигнала изменяются в диапазоне от - 1 до + 1. Ввод данных в МП целесообразно осуществлять по сигналу готовности АЦП, используя для этого прерывание МП оповещающим сигналом /BUSY. Выберем аппаратное прерывание динамического типа - RST 7.5, которое разрешается при установке маски прерывания командой SIM. Для ввода данных определим порт РA (РУ55) в режиме простого ввода без квитирования. Необходимость хранения данных вытекает из вида заданного разностного уравнения. Уравнение использует входную выборку отсчетов (xn, xn-1, xn-2) и выходную (yn, yn-1, yn-2). Все выборки должны быть доступны для вычислений, следовательно, должны храниться в памяти МП-системы. Требуется также вычислять два текущих произведения: p1n = 0.85 xn; p2n = 0.85 yn-2, которые также должны храниться в памяти. Следовательно, 8 ячеек ОЗУ (РУ55) при составлении программы необходимо определить для хранения данных в текущем цикле обработки входного сигнала (в текущем интервале дискретизации). После вычисления выходного отсчета yn, и записи его в ОЗУ, перед приемом нового входного отсчета необходимо сдвинуть отсчеты всех выборок в памяти: n-1-й отсчет на место n-2-го, n-й отсчет на место n-1-го. Это требуется для подготовки следующего цикла вычислений.
Переполнение разрядной сетки имеет место, если при вычислении разностного уравнения получен числовой результат, выходящий за пределы - 1, + 1 при принятом 8-разрядном формате представления данных. Для исключения переполнения разрядной сетки введем масштабирование (ослабление) входных отсчетов путем их умножения на коэффициент масштабирования kМ < 1, при котором вычисление разностного уравнения никогда не дает недопустимого результата. Коэффициент kМ получим, предположив, что отсчеты в разностном уравнении принимают максимальные значения (- 1, + 1) и такие знаки, при которых слагаемые разностного уравнения складываются по модулю, то есть складываются по модулю коэффициенты. Подставив отсчеты в уравнение для вычисления yn и просуммировав по модулю коэффициенты, получим yn мах = 2,7, что является недопустимым результатом. Отсюда заданный коэффициент масштабирования
kМ = 1/ yn мах = 0,37.
Реальные значения коэффициентов разностного уравнения и коэффициента kМ отличаются от заданных вследствие ограничения длины разрядной сетки:
a = 0,85 (10) » 0,11011001 (2) = 0,84765625 (10); kМ = 0,37 (10) » 0,01011110 (2) = 0,3671875 (10).
По этой причине форма и параметры реальных частотных характеристик фильтра (АЧХ, ФЧХ) отличаются от расчетных. Могут также нарушаться условия устойчивости фильтра. Алгоритм умножения на коэффициент (на константу без знака) целесообразно реализовать программным способом на основе алгоритма умножения вручную: арифметические сдвиги множимого вправо, соответствующие позициям единиц множителя, и накопление суммы частичных произведений. Разряды множимого, выходящие в результате сдвига за границу разрядной сетки, теряются.
Если затраты времени на вычисление произведений программным способом не допускают обработку сигнала в реальном времени, для вычисления произведений следует использовать БИС аппаратных перемножителей, которые вычисляют произведение за один машинный такт. Исходное состояние аппаратной части и программы фильтра устанавливается при включении питания по сигналу аппаратного узла сброса (схемы сброса). При этом: · программный счетчик (ВМ85) принимает нулевое значение; · сбрасывается флаг разрешения прерываний (ВМ85); · порты ОЗУ (РУ55) настраиваются так: РА на ввод; РВ на вывод по сигналу готовности и квитирования; · таймер (РУ55) останавливается; · содержимое ячеек ОЗУ и буферных регистров портов (РУ55) сохраняется. Из этого следует, что переходу фильтра в рабочий режим должна предшествовать его настройка (инициализация) на обеспечение принятого принципа функционирования, выбранных режимов работы узлов, заданных рабочих характеристик. Для настройки портов ОЗУ (РУ55) нужно задать значение управляющего слова. Формат управляющего слова:
D7 D6 D5 D4 D3 D2 D1 D0
Биты РА и РВ управляющего слова задают направление передачи данных через порты РА и РВ (0 - ввод, 1 - вывод). Биты РС2 и РС1 определяют вариант использования порта С в соответствии с таблицей:
Здесь и ранее использованы следующие обозначения: INTR A (B) - запрос прерывания по порту РА (РВ); BF A (B) - буфер порта РА (РВ) полон (занят); STB A (B) - управляющий сигнал записи, соответствующий порту РА (РВ). Биты IEA, IEB управляющего слова разрешают (IE = 1) или запрещают выработку сигналов прерывания INTR. Биты ТМ2, ТМ1 содержат код (ТМ2 ТМ1) команды управления таймером. Описание команд приведено в таблице.
Я выбрал следующее значение управляющего слова:
D7 D6 D5 D4 D3 D2 D1 D0
Таким образом я настроил ОЗУ (РУ55) следующим образом: Таймер настроен на третий режим работы (ТМ1 = 1; ТМ2 = 1); Линии порта С используются в соответствии с выше приведённой таблицей при РС2 = 0 и РС1 = 0; Порт А настроен на ввод данных (РА = 0). Порт В настроен на вывод данных по сигналу готовности и квитирования (РВ = 1); Как уже говорилось выше ввод данных в МП осуществляется по сигналу готовности АЦП, используя для этого прерывание МП оповещающим сигналом /BUSY. Мы выбрали аппаратное прерывание динамического типа - RST 7.5, которое разрешается при установке маски прерывания командой SIM. По команде SIM обеспечивается установка нового состояния маски в соответствии с содержимым аккумулятора: А0 - А2 - соответственно маски RST 5.5, RST 6.5, RST 7.5; А3 - разрешение установки маски; А4 - сброс триггера приема запроса RST 7.5; А5 - не используется; А6 - разрешение вывода данных; А7 - бит данных для вывода через SOD. Установка маски запрещает соответствующее прерывание. Смена маски в соответствии с А0 - А2 выполняется только при разрешении ее установки (А3 = 1). В противном случае функция установки маски подавляется. Для маски прерывания RST 7.5 содержимое аккумулятора будет следующим (1Вh):
A0 = 1; A1 = 1; A2 = 0; A3 = 1; A4 = 1; A5 = 0; A6 = 0; A7 = 0. Разработка и описание общего алгоритма и функционирования фильтра
Общий алгоритм функционирования фильтра строится на основе выводов и определений, сделанных при анализе задачи, и включает в себя все функции устройства, реализуемые аппаратно и реализуемые программно. Он содержит также все сигналы и сообщения, необходимые для взаимосвязи аппаратно-реализуемых и программно-реализуемых операций (сигналы и сообщения, которые обеспечивают взаимодействие аппаратной части фильтра и программы). Общий алгоритм функционирования фильтра приведен ниже. Работа фильтра начинается с подачи питания на схему сброса. Импульс, сформированный схемой сброса (аппаратный узел), обнуляет счетчик команд МП и инициирует формирование импульса сброса RESET для установки МП-системы в исходное состояние. Таким образом, запускается программа инициализации МП-системы, которая должна начинаться с нулевого адреса. При инициализации: разрешаются прерывания МП типа RST 7.5; в указатель стека SP записывается начальный адрес, с которого начинается стек; порт РA (РУ55) настраивается на ввод, а порт РB (РУ55) - на вывод по сигналу готовности и квитирования; таймер (аппаратный узел) настраивается на период переполнения, равный ТД в режиме 3; таймер запускается для формирования непрерывной последовательности импульсов с частотой дискретизации FД, которые используются далее для взятия отсчетов входного сигнала и запуска АЦП (аппаратного узла). Программа инициализации завершается операцией останова МП. Из состояния останова МП выводится сигналом /BUSY (код АЦП готов), поступающим на вход RST 7.5 МП. Последующие операции (ввод, вывод, преобразование кодов, оперативные обращения к памяти, арифметические преобразования) в каждом цикле работы фильтра выполняются под управлением рабочей программы фильтра. Каждый рабочий цикл МП есть реакция на прерывание (выполнение подпрограммы обслуживания прерывания), поэтому после обслуживания прерывания по команде возврата из подпрограммы в каждом рабочем цикле МП возвращается в состояние останова (в состояние ожидания очередного прерывания).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|