5. Реализация цифровых фильтров (ЦФ) на 1813ВЕ1

Программа обработки построена по конвейерному принципу. Конвейерный принцип предполагает выполнение последовательных команд. После выполнения последней команды программа возвращается в начало.

На рис. 5.1. изображен рекурсивный ЦФ 2-го порядка:

Рисунок 5.1. Структурная схема рекурсивного ЦФ 2-го порядка

Рисунок 5.1. Структурная схема рекурсивного ЦФ 2-го порядка.

Запишем разностное уравнение для данного фильтра:

Исходя из разностного уравнения, можно получить все требуемые характеристики выходного сигнала в заданный момент времени.

Для рекурсивного фильтра коэффициенты умножения А0, А1, А2 могут либо равняться нулю, либо каким-то конкретным значениям. Порядок рекурсивного фильтра определяется количеством линий задержки в выходном сигнале. В случае, если В0 и В1 равны нулю, фильтр превращается в нерекурсивный (трансверсальный фильтр).

Преимущество рекурсивного ЦФ:

Для реализации требуемой крутизны фильтра требуется небольшое (малое) количество операций.

Недостатки рекурсивного ЦФ:

    1. Больший уровень шумов по сравнению с нерекурсивным фильтром.
    2. Требуется использовать масштабирование, чтобы система не самовозбудилась.

Для реализации коэффициентов умножения используют знакоразрядную форму представления. Для этого выполним следующие шаги:

    1. Возьмем двоичное 15-разрядное число. Два старших разряда отделим от остальных точкой.
    2. Разряды, находящиеся слева от точки (два разряда) имеют следующий вес: младший – 20, следующий – 21.
    3. Разряды, находящиеся правее точки, имеют веса:

      1-й – ;

      2-й – ;

      .

      .

      .

      13-й – ;

    4. Для уменьшения количества операций умножения некоторые разряды инвертируются. Инверсия разряда обозначается знаком “-” над заданным разрядом, - это означает, что данный ес нужно взять со знаком “-”.

Пример:

Пусть заданы следующие коэффициенты умножения:

Для умножения заданного коэффициента на цифровой отсчет поступают следующим образом:

  • На первом этапе цифровой отсчет сдвигают влево либо вправо на заданное количество разрядов – это равносильно умножению на 2К.
  • На втором этапе используют прежнее значение на предыдущем такте и новое значение на следующем такте.

Пример: y0=Ax(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= Y21; ввод x0 по “0” каналу.

4

SUB

Y0

Y1

R02

IN (0)

Y0= Y0-Y2-2; ввод x0 по “0” каналу.

5

ADD

Y0

Y1

R06

IN (0)

Y0= Y0+Y2-6; ввод x0 по “0” каналу.

6

SUB

Y0

Y2

L00

IN (0)

Y0= Y0-Y2-0; ввод x0 по “0” каналу.

7

ADD

Y0

Y2

R07

IN (0)

Y0= Y0+Y2-7; ввод x0 по “0” каналу.

8

SUB

Y0

Y2

R09

IN (0)

Y0= Y0-Y2-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

Обозначение регистра
r
Наименование регистра
000
B

001
C

010
D

011
E

100
H

101
L

110
M (память)

111
A (аккумулятор)

F

Обозначение состояния триггера признаков
Триггеры
Условие истинности

TC (перенос)
Наличие переноса из 8-го разряда

TZ (нуль)
Нулевой результат

TS (знак)
Старший разряд результата равен 1

TP (четность)
Число единиц в результате четно

TV (доп. перенос)
Наличие переноса из 4-го разряда

(r )

Содержимое регистра

[(r)]

Содержимое ячейки памяти, адрес которой (r )

Логическое “И”

“Исключающее ИЛИ”

Логическое “ИЛИ”

(rm)

m-ый бит содержимого регистра

SP

Указатель стека

PC

Счетчик команд

Пересылка

Приложение.

Структура кода команды

Байты

Циклы

Такты

Выполняемая операция

Мнемоника

Признаки

Z

S

C

V

P

       

1. Команды пересылки

           

01rirj

1

1/3

5/7

  1. Регистр-регистр

ri(rj)

MOV ri rj

-

-

-

-

-

00ri110

2

2/3

7/

10

2. Непосредственная пересылка

ri<B2>

MVI ri, <B2>

-

-

-

-

-

00ri001

3

3

10

3. Непосредственная загрузка пары регистров

ri<B3>;
ri+1<B2>

при ri=110:
SP <B3><B2>

LXI ri

-

-

-

-

-

 

00K1010

 

1

 

 

 

3

3

 

2

 

 

 

4

5

 

7

 

 

 

13

16

  1. Запоминание / загрузка А и HL
  2. K1
    Операция

    000
    [(BC)](A)

    010
    [(DE)](A)

    001
    A[(BC)]

    011
    A[(DE)]

    110
    [<B3><B2>] (A)

    111
    A[<B3><B2>]

    100
    [<B3><B2>] (L);
    [<B3><B2>+1](H);

    101
    L[<B3><B2>];
    H[<B3><B2>+1]

 

 

STAX B

STAX D

LDAX B

LDAX D

STA

LDA

SHLD

LHLD

 

 

-

-

-

-

-

-

-

-

 

 

-

-

-

-

-

-

-

-

 

 

-

-

-

-

-

-

-

-

 

 

-

-

-

-

-

-

-

-

 

 

-

-

-

-

-

-

-

-

11ri101

1

3

11

5. Ввод из пар регистров в стек

[SP-1](ri);
[SP-2](ri+1);
SP(SP)-2

PUCH ri

-

-

-

-

-

11110101

1

3

11

6. Ввод (А) и (F) в стек  

[SP-1](А);
[SP-2](F);
SP(SP)-2

PUCH

PSW

 

-

-

-

-

-

11ri001

1

3

10

7. Вывод из стека в пары регистров:

ri+1[SP];
ri[SP+1];
SP(SP)+2

POP ri

-

-

-

-

-

11110001

1

3

10

8. Вывод (А) и (F) из стека

F[SP];
A[SP+1];
SPSP+2

POP

PSW

+

+

+

+

+

11101011

1

1

4

9. Обмен между DE и HL

(H)(D);
(L)(E)

XCH D

-

-

-

-

-

11100011

1

5

13

10. Обмен вершин стека с H.
(L) [SP];
(H)[SP+1]

XT H L

-

-

-

-

-

11111001

1

1

5

11. Пересылка (HL) в указатель стека.

SP(HL)

SPHL

-

-

-

-

-

11101001

1

1

5

12. Пересылка (HL) в счетчик команд.
PC(HL)

PC HL

-

-

-

-

-

       

II. Приращение / отрицательное приращение

           

00ri100

1

1/3

5/

10

1. Приращение регистра

ri(ri)+1

INP ri

+

+

-

+

+

00ri101

1

1/3

5/

10

2. Отрицательное приращение регистра

ri(ri)-1

DCP ri

+

+

-

+

+

00ri011

1

1

5

3. Приращение пары регистров

ri, ri+1 (ri)(ri+1)+1
При ri=100 – приращение SP

INX ri

-

-

-

-

-

00ri011

1

1

5

4. Отрицательное приращение пары регистров

ri –1, ri (ri –1)(ri) – 1

При ri=111 – отрицательное приращение SP

DCX ri –1

-

-

-

-

-

       

III. Арифметические и логические операции

           
 

10К2ri

1

1/2

4/7

1. Над (А) и (r).

A(A)*(ri),

* - операция (К2)

К2
Операция

000
A(A) +(ri)

001
A(A)+(ri)+(TC)

010
A(A) -(ri)

011
A(A)-(ri)-(TC)

100
A(A) (ri)

101
A(A) (ri)

110
A(A) (ri)

111
(A) - (ri), сравнение

 

 

 

ADD ri

ADC ri

SUB ri
SBB ri

ANA ri

XRA ri

ORA ri
CMP ri

 

 

 

+

+

+

+

+

+

+

+

 

 

 

+

+

+

+

+

+

+

+

 

 

 

+

+

+

+

0

0

0

+

 

 

 

+

+

+

+

0

0

0

+

 

 

 

+

+

+

+

+

+

+

+

 

 

00ri001

 

 

1

 

 

3

 

 

10

2. Сложение содержимого пар регистров

HL(HL)+ (ri –1 )(ri),
при ri=111-HL (HL)+(SP)

 

 

DAD ri –1

 

 

-

 

 

-

 

 

+

 

 

-

 

 

-

 

 

11К2110

 

 

2

 

 

 

2

 

 

7

3. Операции с непосредственной адресацией

А(А)*<B2>, где

* - операция, определяемая К2

К2
Операция

000
A(A) +<B2>

001
A(A)+<B2>+(TC)

010
A(A) -<B2>

011
A(A)-<B2>-(TC)

100
A(A) <B2>

101
A(A) <B2>

110
A(A) <B2>

111
(A) -<B2>, сравнение

 

 

 

 

 

 

 

ADI

ACI

SUI

SBI

ANI

XRI

ORI

CPI

 

 

 

 

 

 

+

+

+

+

+

+

+

+

 

 

 

 

 

 

+

+

+

+

+

+

+

+

 

 

 

 

 

 

+

+

+

+

0

0

0

+

 

 

 

 

 

 

+

+

+

+

0

0

0

+

 

 

 

 

 

 

+

+

+

+

+

+

+

+

 

00K3111

 

1

 

1

 

4

IV. Операции циклического сдвига

К3
Операция

000
Am+1(Am);
A0(A7);
TC(A7)

001
Am (Am+1);
A7 (A0);
TC(A0)

010
Am+1(Am);
A0(TC);
TC(A7)

011
Am (Am+1);
A7 (TC);
TC(A0)

 

 

 

 

RLC

 

RRC

 

RAL

 

RAR

 

 

 

-

 

-

 

-

 

-

 

 

 

-

 

-

 

-

 

-

 

 

 

+

 

+

 

+

 

+

 

 

 

-

 

-

 

-

 

-

 

 

 

-

 

-

 

-

 

-

       

V. Операции переходов

           

11000011

3

3

10

1. Безусловный переход

PC <B3><B2>

JMP

-

-

-

-

-

11K4010

3

3

10

2. Условные переходы

К4
Вид перехода

000
Если (ТZ)=0,
PC <B3><B2>.
Иначе PC (PC)+3

001
Если (ТZ)=1, - // -

010
Если (ТC)=0, - // -

011
Если (ТC)=1, - // -

100
Если (ТP)=0, - // -

101
Если (ТP)=1, - // -

110
Если (ТS)=0, - // -

111
Если (ТS)=1, - // -

 

 

JNZ

 

JZ

JNC

JC

JPO

JPE

JP

JM

 

 

-

 

-

-

-

-

-

-

-

 

 

-

 

-

-

-

-

-

-

-

 

 

-

 

-

-

-

-

-

-

-

 

 

-

 

-

-

-

-

-

-

-

 

 

-

 

-

-

-

-

-

-

-

 

11001101

 

3

 

5

 

17

3. Вызов безусловный

[SP-1][SP-2] (PC),
SP (SP)-2,
PC <B3><B2>

 

CALL

 

-

 

-

 

-

 

-

 

-

 

11K5100

 

3

 

3/5

 

11/17

4. Вызов программы условный

К5
Вид перехода

000
Если (ТZ)=0,
[SP-1][SP-2] (PC),
SP (SP)-2,
PC <B3><B2>.
Иначе PC (PC)+3

001
Если (ТZ)=1, - // -

010
Если (ТC)=0, - // -

011
Если (ТC)=1, - // -

100
Если (ТP)=0, - // -

101
Если (ТP)=1, - // -

110
Если (ТS)=0, - // -

111
Если (ТS)=1, - // -

 

 

 

 

CNZ

 

 

CZ

CNC

CC

CPO

CPE

CP

CM

 

 

 

 

-

 

 

-

-

-

-

-

-

-

 

 

 

 

-

 

 

-

-

-

-

-

-

-

 

 

 

 

-

 

 

-

-

-

-

-

-

-

 

 

 

 

-

 

 

-

-

-

-

-

-

-

 

 

 

 

-

 

 

-

-

-

-

-

-

-

11001001

1

3

10

5. Возврат из программы

PC [SP][SP+1],
SP(SP)+2

RET

-

-

-

-

-

 

11K6000

 

1

 

1/3

 

5/11

6. Условный возврат из подпрограммы

К6
Вид перехода

000
Если (ТZ)=0,
PC[SP][SP+1],
SP(SP)+2,
Иначе PC(PC)+1

001
Если (ТZ)=1, - // -

010
Если (ТC)=0, - // -

011
Если (ТC)=1, - // -

100
Если (ТP)=0, - // -

101
Если (ТP)=1, - // -

110
Если (ТS)=0, - // -

111
Если (ТS)=1, - // -

 

 

 

RNZ

 

 

RZ

RNC

RC

RPO

RPE

RP

RM

 

 

 

-

 

 

-

-

-

-

-

-

-

 

 

 

-

 

 

-

-

-

-

-

-

-

 

 

 

-

 

 

-

-

-

-

-

-

-

 

 

 

-

 

 

-

-

-

-

-

-

-

 

 

 

-

 

 

-

-

-

-

-

-

-

       

VI. Операции ввода и вывода

           

11011011

2

3

10

  1. Ввод данных
  2. A(входные данные)

IN

-

-

-

-

-

11010011

2

3

10

2. Вывод данных

Шина данных X(A)

OUT

-

-

-

-

-

       

VII. Прочие операции

           

 

11AAA111

 

2

 

3

 

11

1. Рестарт

[SP-1][SP-2](PC);
SP (SP)-2;
PC 0000000000AAA000

 

RST

 

-

 

-

 

-

 

-

 

-

00101111

1

1

4

2. Дополнение (А)

A (Ā)

SMA

-

-

-

-

-

00110111

1

1

4

3. Установка переноса

TC 1

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

-

-

-

-

-

Техника микропроцессорных систем в электросвязи


*****
© Банк лекций Siblec.ru
Формальные, технические, естественные, общественные, гуманитарные, и другие науки.