Разработка и обоснование общего алгоритма функционирования устройства и его описание.
При включении питания или перезагрузке цифровое устройство должно автоматически настроиться на работу. Для этого аппаратно реализуется схема запуска, которая обнуляет программный счетчик при запуске устройства или при кратковременном сбое питания. Кроме этого необходимо программно настроить порты ввода- вывода, установить маски прерываний (данная функция не поддерживается МП ВМ80А), организовать стек для хранения данных во время выполнения подпрограмм. Этими задачами занимается программа инициализации. Вторым этапом работы обобщённого алгоритма является основная программа- алгоритм фильтрации. Обобщённый алгоритм функционирования устройства представлен на рис.3 Данные в аккумулятор загружаются из порта ввода по приходу сигнала прерывания RST 7. Работать с прерываниями намного выгоднее, чем реализация постоянного опроса порта о факте наличия данных, поскольку при этом снижаются аппаратные затраты и повышается быстродействие устройства. С учетом этого укрупненный алгоритм функционирования основной программы изображён на рис.4 Аппаратно- реализуемые операции Програмно- реализуемые операции
Рис.3 После загрузки данных выполняется основная программа, реализующая алгоритм фильтрации согласно заданному линейно разностному уравнению:
Анализируя данное уравнение можно отметить следующее: · в связи с наличием отрицательных единичных коэффициентов организуем подпрограмму инвертирования знака числа. процедуру деления на 4 проще всего будет выполнить путём двух последовательных арифметических сдвигов вправо. Арифметический сдвиг выгоднее заменить логическим, поскольку при этом сокращается время выполнения программы. На точность вычислений данный переход не повлияет, поскольку перед выводом данных мы переходим к однобайтовой форме представления чисел. · поскольку при вычислении очередного значения Y(n) используются четыре предыдущих значения входных отсчетов, выгоднее всего использовать подпрограмму формирования очереди, т.е. сдвига поступающих отсчетов, вызываться, которая будет непосредственно после вывода данных в порт. · В связи с тем, что используемый нами АЦП выдает данные в прямом коде, после операции ввода необходимо перевести код АЦП в код МП, т.е.в дополнительный код. · Т.к. по заданию выходные данные требуется представить в обратном параллельном коде, перед выводом данных в порт переведем их из дополнительного в обратный код. С учетом особенностей используемого МП следует обратить внимание на то что: · Для повышения точности вычислений, перейдем от однобайтового представления числа к двухбайтовому. Данный переход сделаем сразу после ввода данный из порта. · Перед выводом данных придется обратно перейти к однобайтовому представлению чисел, т.е. масштабировать полученный результат. Алгоритм работы программной части синтезируемого устройства изображен на рис.5
Рис.5 Разработка программы
По описанному в п.4 алгоритму разработаем программу на языке микропроцессора. Разрабатываемая программа должна полностью соответствовать требованиям, предъявленным к ней в предыдущих пунктах. Кроме этого, в целях повышения быстродействия, вычисление заданного линейно разностного уравнения должно выполняться с максимальной скоростью, т.е. за наименьшее число машинных тактов.
Текст разработанной программы: Курсовая работа на тему: Цифровой корректирующий фильтр выполнил: ст.гр. 116 Сидорочкин Д.В. Программа фильтрации сигнала. исходные данные линейное разностное уравнение Y(n-2)=[X(n) - X(n-1) + 4X(n-2) - X(n-3)+ X(n-4)]/4 = [X(n) + [- X(n-1)] + [-X(n-4)]]/4 + X(n-2) частота дискретизации Fд = 6 (кГц) входной сигнал - аналоговый, диапазон изменения (-4.5..+4.5)В аналого-цифровой преобразователь - К1108ПВ1 выходной сигнал - 8-разрядный параллельный обратный код микропроцессор - КР580ВМ80А Программа на языке ассемблера. SPACESON ADRSP:.EQUFFFH PORTIN1:.EQU001H PORTOUT:.EQU002H DATA X:DW00H Y:.DW00H Z:DW00H XN: DW00H XN_1:DW00H XN_2:.DW00H XN_3: DW00H XN_4: .DW00H XN_01: .DW00H XN_03: .DW00H S: .DW00H CODE ;------------------------------------- ;Подпрограмма начальных установок. BGN:MACRO LXISP,ADRSP ENDM ;------------------------------------- ;Подпрограмма ввода числа "X" из порта в аккумулятор и преобразование его в дополнительный код с последующим переводом в 2-х байтное число. Результат записывается по адресу Х. VVX:MACROX INPORTIN1 PC_DC 1B_2B SHLDX ENDM ;------------------------------------- ;Подпрограмма перевода числа из кода АЦП в дополнительный код. PC_DC:MACRO RAL JNCC1# CMA ADI02H C1#:RAR ENDM ;------------------------------------- ;Подпрограмма перевода 1-но байтного числа в 2-х байтное. 1B_2B:MACRO MOVL,A RAL SBBA MOVH,A ENDM ;------------------------------------- ;Подпрограмма суммирования 2-х чисел, находящихся по адресу X и Y. Результат выводится по адресу Z. SUM:MACROX,Y,Z LHLDX XCHG LHLDY DADD SHLDZ ENDM ;------------------------------------- ;Деление на 4-е. Делимое находится в регистровой паре HL. Результат выводится по адресу X. DELEN4:MACROX MOVA,H RAR MOVH,A MOVA,L RAR MOVL,A MOVA,H RAR MOVH,A MOVA,L RAR MOVL,A SHLDX ENDM ;------------------------------------- Перевод 2-х байтного числа в1-но байтное. Исходные данные находятся в регистровой паре HL. Результат находится в аккумуляторе. 2B_1B:MACRO MOVA,H RAR MOVH,A MOVA,L RAR ENDM ;------------------------------------- ;Перевод результата вычислений из дополнительного кода в обратный. Исходные данные и результат находятся в аккумуляторе. DC_OK:MACRO RAL JNCD1# RAR SUI1H RAL CMA D1#:RAR ENDM ;------------------------------------- ;Вывод результата, находящегося в аккумуляторе, в порт. OUTPUT:MACRO OUT PORTOUT ENDM ;------------------------------------- ;Формирование очереди. OCHARED:MACRO LHLD XN_3 SHLD XN_4 LHLD XN_2 SHLD XN_3 LHLD XN_1 SHLD XN_2 ENDM ;------------------------------------- ;Подпрограмма изменения знака числа на противоположный. ENVERT:MACROX,Y LDAX CMA INR A 1B_2B SHLDY ENDM ;------------------------------------- INIT: MACRO BGN EI HLT ENDM ;------------------------------------- Основная программа. ORG 0H INIT ORG 38H JMP A1 ORG 50H A1:VVXXN ENVERT XN_1,XN_01 ENVERT XN_3,XN_03 SUMXN,XN_4,S SUMS,XN_01,S SUMS,XN_03,S DELEN4S SUMS,XN_2,S 2B_1B DC_OK OUTPUT OCHARED EI HLT .END
6. Оценка быстродействия устройства
Быстродействие устройства определяется временем, затрачиваемым микропроцессором на выполнение команд. Время выполнения определяется тактовой частотой микропроцессора и количеством тактов затрачиваемых на выполнение команды. После прихода команды прерывания RST 7 на МП, выходной отсчет появляется максимум через 840 тактов процессора. Время выполнения считается с момента прихода импульса дискретизации до выдачи результата y(n). Твып=Nтактов*Tтакта
Рассмотрим случай самого длинного выполнения.
Твып=870*0.4=348 мкс.
Т.к. в нашем случае используется АЦП нужно учесть задержку при преобразовании сигнала из аналогового в цифровой. Для АЦП К1108ПВ1 задержка составляет порядка 10мкс. Следовательно:
Твып=(Nтактов*Tтакта)+ТЗадАЦП
Твып=348+10=358 мкс
Для нормальной работы устройства необходимо, чтобы фильтр успевал закончить обработку до начала следующего цикла фильтрации. Другими совами частота обработки отсчетов должна превышать частоту дискретизации.
Fо > Fд или То < Тд
Заданная частота дискретизации Fд=6 кГц
Tд=1/Fд=166,7 мкс . Быстродействие полученного устройства позволяет обрабатывать данные, приходящие с частотой дискретизации не более 2.8 кГц. Поскольку частота дискретизации входного сигнала Fд=6 кГц проектируемый фильтр будет работать некорректно, поскольку во время обработки очередного отсчёта будет проигнорировано как минимум два последующих отсчета, что приведет к нарушению общего алгоритма фильтрации.
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (227)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |