Мегаобучалка Главная | О нас | Обратная связь


Разработка и обоснование общего алгоритма функционирования устройства и его описание.



2020-02-03 227 Обсуждений (0)
Разработка и обоснование общего алгоритма функционирования устройства и его описание. 0.00 из 5.00 0 оценок




 При включении питания или перезагрузке цифровое устройство должно автоматически настроиться на работу. Для этого аппаратно реализуется схема запуска, которая обнуляет программный счетчик при запуске устройства или при кратковременном сбое питания. Кроме этого необходимо программно настроить порты ввода- вывода, установить маски прерываний (данная функция не поддерживается МП ВМ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 кГц проектируемый фильтр будет работать некорректно, поскольку во время обработки очередного отсчёта будет проигнорировано как минимум два последующих отсчета, что приведет к нарушению общего алгоритма фильтрации.

 



2020-02-03 227 Обсуждений (0)
Разработка и обоснование общего алгоритма функционирования устройства и его описание. 0.00 из 5.00 0 оценок









Обсуждение в статье: Разработка и обоснование общего алгоритма функционирования устройства и его описание.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (227)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)