Программа обработки построена по конвейерному принципу. Конвейерный принцип предполагает выполнение последовательных команд. После выполнения последней команды программа возвращается в начало.
На рис. 5.1. изображен рекурсивный ЦФ 2-го порядка:
Рисунок 5.1. Структурная схема рекурсивного ЦФ 2-го порядка.
Запишем разностное уравнение для данного фильтра:
Исходя из разностного уравнения, можно получить все требуемые характеристики выходного сигнала в заданный момент времени.
Для рекурсивного фильтра коэффициенты умножения А0, А1, А2 могут либо равняться нулю, либо каким-то конкретным значениям. Порядок рекурсивного фильтра определяется количеством линий задержки в выходном сигнале. В случае, если В0 и В1 равны нулю, фильтр превращается в нерекурсивный (трансверсальный фильтр).
Преимущество рекурсивного ЦФ:
Для реализации требуемой крутизны фильтра требуется небольшое (малое) количество операций.
Недостатки рекурсивного ЦФ:
-
- Больший уровень шумов по сравнению с нерекурсивным фильтром.
- Требуется использовать масштабирование, чтобы система не самовозбудилась.
Для реализации коэффициентов умножения используют знакоразрядную форму представления. Для этого выполним следующие шаги:
-
- Возьмем двоичное 15-разрядное число. Два старших разряда отделим от остальных точкой.
- Разряды, находящиеся слева от точки (два разряда) имеют следующий вес: младший – 20, следующий – 21.
- Разряды, находящиеся правее точки, имеют веса:1-й –
;2-й –
;...13-й –
;
- Для уменьшения количества операций умножения некоторые разряды инвертируются. Инверсия разряда обозначается знаком “-” над заданным разрядом, - это означает, что данный ес нужно взять со знаком “-”.
Пример:
Пусть заданы следующие коэффициенты умножения:
Для умножения заданного коэффициента на цифровой отсчет поступают следующим образом:
- На первом этапе цифровой отсчет сдвигают влево либо вправо на заданное количество разрядов – это равносильно умножению на 2К.
- На втором этапе используют прежнее значение на предыдущем такте и новое значение на следующем такте.
Пример: y0=A0× x(nT)=(2-8-2-10)× x(nT).
1-й этап: y0:= 2-8 × x(nT).
2-й этап: y0:=y0-2-10× x(nT).
Пример программы для приведенных выше коэффициентов умножения:
№ п/п |
КОП Ц |
Адрес операнда “В” |
Адрес операнда “А” |
Код МУ |
КОП А |
Комментарии |
1 |
LDA |
Y2 |
Y1 |
L00 |
IN (0) |
Y2= Y1; ввод x0 по “0” каналу. |
2 |
LDA |
Y1 |
Y0 |
L00 |
IN (0) |
Y1= Y0; ввод x0 по “0” каналу. |
3 |
LDA |
Y0 |
Y1 |
L01 |
IN (0) |
Y0= Y1× 21; ввод x0 по “0” каналу. |
4 |
SUB |
Y0 |
Y1 |
R02 |
IN (0) |
Y0= Y0-Y1× 2-2; ввод x0 по “0” каналу. |
5 |
ADD |
Y0 |
Y1 |
R06 |
IN (0) |
Y0= Y0+Y1× 2-6; ввод x0 по “0” каналу. |
6 |
SUB |
Y0 |
Y2 |
L00 |
IN (0) |
Y0= Y0-Y2× 2-0; ввод x0 по “0” каналу. |
7 |
ADD |
Y0 |
Y2 |
R07 |
IN (0) |
Y0= Y0+Y2× 2-7; ввод x0 по “0” каналу. |
8 |
SUB |
Y0 |
Y2 |
R09 |
IN (0) |
Y0= Y0-Y2× 2-9; ввод x0 по “0” каналу. |
9 |
LDA |
Y0 |
Y0 |
L00 |
CUT S |
Y0=Y0, преобразование знака |
10 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0=Y0, преобразование знака |
11 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0=Y0, преобразование знака |
12 |
LDA |
Y0 |
Y0 |
L00 |
CUT(7) |
Y0= Y0, преобразование 7-го разряда мантиссы |
13 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 7-го разряда мантиссы |
14 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 7-го разряда мантиссы |
15 |
LDA |
Y0 |
Y0 |
L00 |
CUT(6) |
Y0= Y0, преобразование 6-го разряда мантиссы |
16 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 6-го разряда мантиссы |
17 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 6-го разряда мантиссы |
18 |
LDA |
Y0 |
Y0 |
L00 |
CUT(5) |
Y0= Y0, преобразование 5-го разряда мантиссы |
19 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 5-го разряда мантиссы |
20 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 5-го разряда мантиссы |
21 |
LDA |
Y0 |
Y0 |
L00 |
CUT(4) |
Y0= Y0, преобразование 4-го разряда мантиссы |
22 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 4-го разряда мантиссы |
23 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 4-го разряда мантиссы |
24 |
LDA |
Y0 |
Y0 |
L00 |
CUT(3) |
Y0= Y0, преобразование 3-го разряда мантиссы |
25 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 3-го разряда мантиссы |
26 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 3-го разряда мантиссы |
27 |
LDA |
Y0 |
Y0 |
L00 |
CUT(2) |
Y0= Y0, преобразование 2-го разряда мантиссы |
28 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 2-го разряда мантиссы |
29 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 2-го разряда мантиссы |
30 |
LDA |
Y0 |
Y0 |
L00 |
CUT(1) |
Y0= Y0, преобразование 1-го разряда мантиссы |
31 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 1-го разряда мантиссы |
32 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 1-го разряда мантиссы |
33 |
LDA |
Y0 |
Y0 |
L00 |
CUT(0) |
Y0= Y0, преобразование 0-го разряда мантиссы |
34 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 0-го разряда мантиссы |
35 |
LDA |
Y0 |
Y0 |
L00 |
NOP |
Y0= Y0, преобразование 0-го разряда мантиссы |
36 |
LDA |
X0 |
DAR |
L00 |
NOP |
X0=DAR |
37 |
ADD |
Y0 |
X0 |
R08 |
NOP |
Y0=Y0+2-8× X0 |
38 |
SUB |
Y0 |
X0 |
R10 |
NOP |
Y0=Y0-2-10× X0 |
39 |
LDA |
DAR |
Y0 |
L00 |
NOP |
DAR=Y0 |
40 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
41 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
42 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
43 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
44 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
45 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
46 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
47 |
LDA |
Y0 |
Y0 |
L00 |
OUT(1) |
Вывод Y0 по 1-му каналу. |
48 |
LDA |
Y0 |
Y0 |
L00 |
EOP |
Возврат в начало программы |
Система команд микросхемы К580МК80. Основные обозначения.
Обозначение |
Содержание |
<Bi> |
Содержимое i-того байта команды. |
r |
Обозначение регистра 001 010 011 100 101 110 111 |
F |
Обозначение состояния триггера признаков TC (перенос) TZ (нуль) TS (знак) TP (четность) TV (доп. перенос) |
(r ) |
Содержимое регистра |
[(r)] |
Содержимое ячейки памяти, адрес которой (r ) |
|
Логическое “И” |
|
“Исключающее ИЛИ” |
|
Логическое “ИЛИ” |
(rm) |
m-ый бит содержимого регистра |
SP |
Указатель стека |
PC |
Счетчик команд |
|
Пересылка |
Приложение.
Структура кода команды |
Байты |
Циклы |
Такты |
Выполняемая операция |
Мнемоника |
Признаки |
||||
Z |
S |
C |
V |
P |
||||||
1. Команды пересылки |
||||||||||
01rirj |
1 |
1/3 |
5/7 |
ri |
MOV ri rj |
- |
- |
- |
- |
- |
00ri110 |
2 |
2/3 |
7/ 10 |
2. Непосредственная пересылка ri |
MVI ri, <B2> |
- |
- |
- |
- |
- |
00ri001 |
3 |
3 |
10 |
3. Непосредственная загрузка пары регистров ri при ri=110: |
LXI ri |
- |
- |
- |
- |
- |
00K1010 |
1 3 3 |
2 4 5 |
7 13 16 |
K1 000 010 001 011 110 111 100 101 |
STAX B STAX D LDAX B LDAX D STA LDA SHLD LHLD |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
11ri101 |
1 |
3 |
11 |
5. Ввод из пар регистров в стек
[SP-1] |
PUCH ri |
- |
- |
- |
- |
- |
11110101 |
1 |
3 |
11 |
6. Ввод (А) и (F) в стек [SP-1] |
PUCH PSW
|
- |
- |
- |
- |
- |
11ri001 |
1 |
3 |
10 |
7. Вывод из стека в пары регистров: ri+1 |
POP ri |
- |
- |
- |
- |
- |
11110001 |
1 |
3 |
10 |
8. Вывод (А) и (F) из стека F |
POP PSW |
+ |
+ |
+ |
+ |
+ |
11101011 |
1 |
1 |
4 |
9. Обмен между DE и HL (H) |
XCH D |
- |
- |
- |
- |
- |
11100011 |
1 |
5 |
13 |
10. Обмен вершин стека с H. |
XT H L |
- |
- |
- |
- |
- |
11111001 |
1 |
1 |
5 |
11. Пересылка (HL) в указатель стека. SP |
SPHL |
- |
- |
- |
- |
- |
11101001 |
1 |
1 |
5 |
12. Пересылка (HL) в счетчик команд. |
PC HL |
- |
- |
- |
- |
- |
II. Приращение / отрицательное приращение |
||||||||||
00ri100 |
1 |
1/3 |
5/ 10 |
1. Приращение регистра ri |
INP ri |
+ |
+ |
- |
+ |
+ |
00ri101 |
1 |
1/3 |
5/ 10 |
2. Отрицательное приращение регистра ri |
DCP ri |
+ |
+ |
- |
+ |
+ |
00ri011 |
1 |
1 |
5 |
3. Приращение пары регистров ri, ri+1 |
INX ri |
- |
- |
- |
- |
- |
00ri011 |
1 |
1 |
5 |
4. Отрицательное приращение пары регистров ri –1, ri При ri=111 – отрицательное приращение SP |
DCX ri –1 |
- |
- |
- |
- |
- |
III. Арифметические и логические операции |
||||||||||
10К2ri |
1 |
1/2 |
4/7 |
1. Над (А) и (r). A * - операция (К2) К2 000 001 010 011 100 101 110 111 |
ADD ri ADC ri SUB ri ANA ri XRA ri ORA ri |
+ + + + + + + + |
+ + + + + + + + |
+ + + + 0 0 0 + |
+ + + + 0 0 0 + |
+ + + + + + + + |
00ri001 |
1 |
3 |
10 |
2. Сложение содержимого пар регистров HL |
DAD ri –1 |
- |
- |
+ |
- |
- |
11К2110 |
2
|
2 |
7 |
3. Операции с непосредственной адресацией А * - операция, определяемая К2 К2 000 001 010 011 100 101 110 111
|
ADI ACI SUI SBI ANI XRI ORI CPI |
+ + + + + + + + |
+ + + + + + + + |
+ + + + 0 0 0 + |
+ + + + 0 0 0 + |
+ + + + + + + + |
00K3111 |
1 |
1 |
4 |
IV. Операции циклического сдвига К3 000 001 010 011
|
RLC RRC RAL RAR |
- - - - |
- - - - |
+ + + + |
- - - - |
- - - - |
V. Операции переходов |
||||||||||
11000011 |
3 |
3 |
10 |
1. Безусловный переход PC |
JMP |
- |
- |
- |
- |
- |
11K4010 |
3 |
3 |
10 |
2. Условные переходы К4 000 001 010 011 100 101 110 111 |
JNZ JZ JNC JC JPO JPE JP JM |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
11001101 |
3 |
5 |
17 |
3. Вызов безусловный [SP-1][SP-2] |
CALL |
- |
- |
- |
- |
- |
11K5100 |
3 |
3/5 |
11/17 |
4. Вызов программы условный К5 000 001 010 011 100 101 110 111 |
CNZ CZ CNC CC CPO CPE CP CM |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
11001001 |
1 |
3 |
10 |
5. Возврат из программы PC |
RET |
- |
- |
- |
- |
- |
11K6000 |
1 |
1/3 |
5/11 |
6. Условный возврат из подпрограммы К6 000 001 010 011 100 101 110 111 |
RNZ RZ RNC RC RPO RPE RP RM |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
- - - - - - - - |
VI. Операции ввода и вывода |
||||||||||
11011011 |
2 |
3 |
10 |
A |
IN |
- |
- |
- |
- |
- |
11010011 |
2 |
3 |
10 |
2. Вывод данных Шина данных X |
OUT |
- |
- |
- |
- |
- |
VII. Прочие операции |
||||||||||
11AAA111 |
2 |
3 |
11 |
1. Рестарт [SP-1][SP-2] |
RST |
- |
- |
- |
- |
- |
00101111 |
1 |
1 |
4 |
2. Дополнение (А) A |
SMA |
- |
- |
- |
- |
- |
00110111 |
1 |
1 |
4 |
3. Установка переноса TC |
STC |
- |
- |
1 |
- |
- |
00111111 |
1 |
1 |
4 |
4. Дополнение переноса TC |
CMC |
- |
- |
+ |
- |
- |
1 |
1 |
4 |
5. Разрешение прерываний |
EI |
- |
- |
- |
- |
- |
|
11110011 |
1 |
1 |
4 |
6. Блокировка прерываний |
DI |
- |
- |
- |
- |
- |
1 |
1 |
4 |
7. Двоично-десятичное представление (А) |
DAA |
+ |
+ |
+ |
+ |
+ |
|
1 |
1 |
4 |
8. Отсутствие операции |
NOP |
- |
- |
- |
- |
- |
|
1 |
1 |
7 |
9. Останов |
HLT |
- |
- |
- |
- |
- |