DSP重点知识点总结(修改版)

时间:2024.3.23

DSP重点知识点

1.       数字信号处理的实现方法(P1)

1)       在通用计算机上用软件实现(速度较慢,一般用于DSP算法模拟)

2)       在通用计算机系统中加上专用的加速处理机实现(专用性强,应用受限,不便于系统的独立运行)

3)       用通用的单片机实现——用于不太复杂的数字信号处理(简单的DSP算法)

4)       用专用的DSP芯片实现——具有更加爱适合DSP的软硬件资源,可用于复杂的数字信号处理算法

5)       用专用的DSP芯片实现——特殊场合,要求信号处理速度极高(专用性强,应用受限)

2.       DSP两种含义(P2)

1)       数字信号处理技术(Digital Signal Processing)

2)       数字信号处理器(Digital Signal Processor)

3.       DSP芯片的结构(P2)

1)       哈佛结构

片内程序空间和数据空间是合在一起的,取指令和取操作数都是通过一条总线分时进行的

2)       改进的哈佛结构

程序空间和数据空间分开,1组程序存储器总线,3组数据存储器总线,3组地址总线,允许同时取指令和取操作数,还允许在程序空间和数据空间之间相互传送数据

3)       多总线结构

一个机器周期内可以多次访问程序空间和数据空间,如TMS320C51x内部有P、C、D、E共4条总线,每条总线又包括地址总线和数据总线

4)       流水线结构

4.       DSP芯片的分类(P4)

1)       按照基础特性分类:

静态DSP芯片

一致性DSP芯片

2)       按照数据格式分类:

定点DSP芯片

浮点DSP芯片

3)       按照用途分类:

通用型DSP芯片

专用型DSP芯片

5.       TMS320C54x硬件结构(P8)

1)       TMS320系列同一代芯片具有相同的CPU结构,但是片内存储器和片内外围设备的配置是不同的

2)       TMS320C54x是16位定点DSP,采用改进的哈佛结构,有一组程序总线三组数据总线

6.       TMS320C54x总线结构(P10)

片内有8条16位主总线:4条程序/数据总线和4条地址总线

7.       累加器(P11)

累加器A和累加器B的差别仅在于累加器A的31~16位可以用做乘法器的一个输入,累加器A可以用来累加器寻址。

8.       处理器工作方式控制及寄存器PMST(P15)

1)       IPTR:中断向量指针,9位字段中断向量驻留的128字程序存储区地址。复位时9位全置1, 中断向量序号为0→1111 1111 1000 0000即向量地址FF80H

中断向量地址的计算:

中断向量地址由IPTR和左移2位后的中断向量序号K(0~31,左移后变成7位)所组成。

例:INT0的中断向量序号为18,PMST寄存器的IPTR=011H,计算中断向量地址

①   将中断向量序号转化成16进制

18→12H

②   将12H转化成二进制码并左移2位,变成7位

③   将9位IPTR中断向量指针和左移后的中断向量序号结合即为所求

2)       MP/MC:微处理器或微计算机工作选择位,高电平工作于微处理器状态,低电平工作于微计算机状态(可寻址片内的程序存储器)

3)       OVLY:RAM重复占位标志

4)       SMUL:乘法饱和方式位。SMUL=1,使用多项式加MAC或多项式减MAS指令进行累加时,对乘法结果进行饱和处理,且只有当OVM=1,FRCT=1时,SMUL位才起作用。只有LP器件有此状态位,其他器件此位均为保留位。当执行MAC或MAS时,进行多项式加或减之前,小数模式的8000H×8000H处理成为7FFF FFFFH。如果不设定小数模式,且OVM=1,在完成加或减之前,乘法结果不进行饱和处理,只对MAC或MAS执行的结果进行饱和处理

5)       SST:存储饱和位。SST=1,对存储前的累加器进行饱和处理。饱和处理是在移位操作执行完成之后进行的。

u  根据指令要求对累加器的40位数据进行移位

u  将40位数据饱和处理成32位数据,饱和处理与SXM位有关。如果SXM=0,数据为证,如果数值大于7FFF FFFFH,则饱和处理的结果为7FFF FFFFH;如果SXM=1,若移位后,数值大于7FFF FFFFH,则饱和处理的结果为7FFF FFFFH;若移位后数值小于8000 0000H,则生成8000 0000H

u  按指令要求操作数据

u  在指令执行期间,累加器的内容不变

9.       状态寄存器ST0(P16)

1)       OVA:累加器A的溢出标志

2)       OVB:累加器B的溢出标志

3)       DP:数据存储器页指针。将DP的9位数作为高位与指令中的低7位作为低位结合,形成16位直接寻址方式下的数据存储器地址

10.   状态寄存器ST1(P16)

1)       BRAF:块重复操作标志位。

2)       CPL:直接寻址编辑方式标志位。CPL=1,表示选用栈指针(SP)的直接寻址方式;CPL=0,表示选用页指针(DP)的直接寻址方式

3)       INTM:中断方式控制位。=1,由SSBX指令控制,关闭所有可屏蔽中断,=0,由RSBX指令控制,开放所有可屏蔽中断

4)       OVM:溢出方式控制位。OVM=1,ALU运算若正数溢出,目的累加器置正的最大值(00 7FFF FFFFH);若负数溢出,置成负的最大值(FF 8000 0000H)。OVM=0,直接加在实际运算结果,可由SSBX和RSBX置位或清零

5)       SXM:符号位扩展方式控制字。SXM=1,数据进入ALU之前进行符号位扩展;SXM=0,数据进入ALU之前符号位禁止扩展。可由SSB和RSBS置位或清零

6)       FRCT:小数方式控制位。FRCT=1,乘法器输出自动左移1位,消去多余的符号位

11.   TMS320C54x的片内存储空间分为3个可选择的存储空间:64KW的程序存储空间、64KW的数据存储空间和64KW的I/O存储空间,共192KW。所有的TMS320C54x芯片都包括随机访问存储器(RAM只读存储器(ROM。RAM又分两种:一种是只可一次寻址的RAM(SARAM),另一种是可以两次寻址的RAM(DARAM)//P17

12.   TMS320C54x的片内ROM、DARAM、SARAM都可以通过软件映射到程序空间。从0080H开始将DARAM分成每80H(128)个存储单元为一个数据块//P20

13.   寻址存储器映射CPU寄存器无需等待周期,存储器映射外设存储器至少需要两个机器周期,由片内外设电路决定//P20

14.   数据页0(0H~7FH)不能映射到程序空间//P20

15.   特殊功能寄存器(P20)

1)       第一类特殊功能寄存器

第一类特殊功能寄存器为26个,连续分布在数据存储区的0H~1FH地址范围内,主要用于程序的运算处理和寻址方式的选择及设定

2)       第二类特殊功能寄存器

第二类特殊功能寄存器连续分布在20H~5FH的存储区内,主要用于控制片内外设,包括串口通信控制寄存器组、定时器定时控制寄存器组、机器周期设定寄存器组等

16.   TMS320C54x芯片都有和XF两个通用I/O引脚//P22

17.   软件可编程等待发生器能把外部总线周期扩展到最多14个机器周期,以适应较慢的片外存储器和I/O设备//P22

18.   复位输入引脚的电平变化——出现两个外部时钟周期以上的低电平,引脚变为高电平后,程序从指定的存储地址FF80H开始运行。复位有三种方式上电复位手动复位软件复位//P23

19.   复位时ST0=1800H,ST1=2900H,PMST=FF80H//P23

20.   寻址方式(P25)

1)       立即数寻址

LD       #0F0H, A

在数值或符号前面加一个“#”号表示是一个立即数否则被认为是一个地址

2)       绝对地址寻址

绝对地址的代码为16位,所以包含绝对寻址的指令至少要两个字长

①   数据存储器地址(dmad)寻址——用程序标号或数据寻址

MVKD                   DATA1, *AR2

DATA1标注的地址就是一个dmad值,DATA1必须适合程序中的标号或者DSP内部已经定义的单元

②   程序存储器地址(pmad)寻址——用一个符号或具体的数寻址

MVPD                   TABLE1, *AR2

TABLE1所标注的地址就是一个pmad值,TABLE1标注的程序存储单元中的一个字

程序存储器地址寻址和数据存储器地址寻址区别仅在于空间不同

③   端口寻址

PORTR        F2F0, *AR5

F2F0指的是端口地址,端口地址寻址只涉及两条指令,端口读(PORTR)和端口写(PORTW)

片外存储空间也只有WRITA和READA两条指令

④   *(1K)寻址

LD       *(BUFFER), A

用一个符号或一个常数来确定数据存储器中的一个地址,访问数居空间的任意单元而不改变数据页(DP)的值,也不用对AR进行初始化。不能与RPT,RPTZ一起使用

采用绝对寻址方式时,指令长度将在原来的基础上增加一个字

3)       累加器寻址

只有两条指令READA和WRITA可以采用累加器寻址

4)       直接寻址

ADD   SAMPLE, A        ;把存储器单元SAMPLE中的内容加到累加器A中去

或ADD       @x, A       ;将符号@加在变量x的前面

CPL=0          dmad值与9位的DP值结合,形成16位的数据存储器地址

CPL=1          dmad值加上(正偏移)SP的值,形成16位的数据存储器地址

dmad值指的是指令寄存器IR的低7位

5)       间接寻址

间接寻址方式按照辅助寄存器中的地址访问存储器(8个16位辅助寄存器AR0~AR7,两个辅助寄存器算数单元ARAU0和ARAU1)

①   单操作数寻址

②   循环寻址

③   位倒序寻址

位倒序寻址提高了执行速度和在FFT算法的程序中使用储存器的效率。在这种寻址方式中,AR0存放的整数N是FFT点数的一半,当使用位倒序寻址方式把AR0加到辅助寄存器中时,地址以位倒序方式产生,即进位是从左向右的,而不是从右向左

④   双数据存储器操作数寻址

用Xmem和Ymem代表这两个数据存储器操作数,Xmem表示读操作数,Ymem在读两个操作数时表示读操作数,而在一个读同时并行一个写的指令表示写操作数

6)       堆栈寻址

共有4条指令使用堆栈寻址方式访问堆栈:

PSHD——把一个数据存储器的值压入堆栈

PSHM——把一个存储器映射寄存器的值压入堆栈

POPD——把一个数据存储器的值弹出堆栈

POPM——把一个储存器映射寄存器的值弹出堆栈

21.   指令系统(P34)

22.   流水线操作,是指在执行多条指令时,将每条指令的预取指取指译码寻址读取操作数执行等阶段,相差一个阶段重叠执行,以减少指令执行时间,从而增加处理器的处理能力//P50

23.   TMS320C54x采用6级深度的指令流水线作业,它们之间彼此独立,即在任何一个机器周期内,可以有1~6条不同的指令同时工作,但每条指令工作在流水线的不同级上//P51

24.   延迟分支转移的流水线和条件执行指令的流水线(P51~P52)

25.   数字信号处理系统的设计过程(P61)

26.   常用的汇编命令(P68)

27.   COFF文件中的段(P79)

1)       3种形式的段:

.text段                         (此段通常包含可执行代码)

.data段                        (此段通常包含初始化数据)

.bss段                           (此段通常为未初始化变量保留存储空间)

2)       段的基本类型:

初始化段

.text段、.data段、.sect汇编命令建立的自定义段均是已初始化段

未初始化段

.bss段、.usect汇编命令建立的自定义段均是未初始化段

28.   如果连接命令文件中没有MEMORY和SECTIONS命令(默认情况),则连接器就从地址0080H开始,一个段接着一个段地进行配置//P84

29.   Simulator纯粹以软件来模拟源平台的功能和运行结果(软件仿真);Emulator以软件和硬件来模拟源平台的内部设计、行为和运行结果(硬件支持)//P119

30.   条件算符(P140)

条件分支转移指令或条件调用、条件返回指令都是条件来限制分支的转移、调用和返回操作。条件算符分成两组,每组组内还有分类

选用条件算符时应当注意以下3点:

l  第1组:组内两类条件可以进行与/或运算,但不能在组内同一类中选择两个条件算符与/或。当选择两个条件时,累加器必须是同一个。例如,可以同时选择AGT和AOV,但不能同时选择AGT和BOV

l  第2组:可从组内3类算符中各选一个条件算符与/或,但不能在组内同一类中选两个条件算符与/或。例如,可以同时测试TC、C、和BIO,但不能同时测试NTC和TC

l  组与组之间的条件只能进行或运算

31.   乘加运算(P145)


1)       简单乘加

计算其中, ,



.title “zh1.asm”

.mmregs

STACK       .usect       “STACK”, 10H

.bss           m, 1

.bss           x, 1

.bss           b, 1

.bss           y, 1

.def           start

.data

table:   .word        3, 15, 20

.text

start:       STM          #0, SWWSR

STM          #STACK+10H, SP

STM          #m, AR1

RPT           #2

MVPD    table, *AR1+

CALL       SU

end:    B              end

SU:        LD           @m, T

MPY       @x, A

ADD       @b, 16, A

STH         A, @y

RET

.end


2)       乘加小数

y=∑_(i=1)^4?〖a_i x_i 〗  
a_1=0.1,a_2=0.2,a_3=-0.3,a_4=0.4
x_1=0.8,x_2=0.6,x_3=-0.4,x_4=-0.2

计算

 


.title“zh2.asm”

.mmregs

STACK       .usect       “STACK”, 10H

        .bss           a, 4

.bss           x, 4

.bss           y, 1

.def           start

.data

table:       .word     1*32768/10

.word     2*32768/10

.word     -3*32768/10

.word     4*32768/10

.word     8*32768/10

.word     6*32768/10

.word     -4*32768/10

.word     -2*32768/10

.text

start:        SSBX          FRCT

STM          #0, SWWSR

STM          #STACK+10H, SP

STM          #a, AR1

RPT           #7

MVPD       table, *AR1+

STM          #x, AR2

STM        #a, AR3

RPTZ         A, #3

MAC                   *AR2+, *AR3+, A

STH           A, @y

end:    B                 end

.end


3)       乘加整数

题目同上,其中


.title “zh3.asm”

.mmregs

STACK   .usect    “STACK”, 10H

        .bss        a, 4

.bss         x, 4

.bss        y, 1

.def        start

.data

table:       .word     1, 2, 3, 4

.word     5, 6, 7, 8

.text

start:        STM        #0, SWWSR

STM        #STACK+10H, SP

STM        #a, AR1

RPT           #7

MVPD    table, *AR1+

STM          #x, AR2

STM          #a, AR3

RPTZ         A, #3

MAC                   *AR2+, *AR3+, A

STL            A, @y

STH           A, @y+1

end:         B             end

.end





32.   重复操作(P148)


对数组x[5]中的每个元素初始化为2,再给每个元素加1


.title “zh4.asm”

         .mmregs

STACK    .usect       “STACK”, 10H

         .bss           x, 5

.def           start

.text

start:        STM          #0, SWWSR

STM          #STACK+10H, SP

STM          #x, AR1

LD              #2H, A

RPT           #4

STL            A, *AR1+

LD              #1, 16, B

STM          #4, BRC

STM          #x, AR4

RPTB         next-1

ADD          *AR4, 16, B, A

STH           A, *AR4+

next:         LD              #0, B

end:          B                end

.end



33.   长字运算(P156)

长字(32位)指令如下:

DLD                    Lmem, dst                           ; dst=Lmem

DST                     src, Lmem                           ; Lmem-src

DADD                Lmem, src, [, dst]              ; dst=src+Lmem

DSUB                 Lmem, src, [, dst]              ; dst=src+Lmem

DRSUB               Lmem, src, [, dst]              ; dst=Lmem-src


1)       偶地址排列法

.title          “zh5.asm”

.mmregs

STACK       .usect       “STACK”, 10H

.bss           a, 2

.bss           y, 2.

.def           start

.data

table:        .word        06CACH, 0BD90H

.text

start:        STM          #0, SWWSR

STM          #STACK+10H, SP

STM          #a, AR1

RPT           #1

MVPD       table, *AR1+

STM          #a, AR3

DLD           *AR3+, A

end:          B                end

.end

执行后结果:A=00 6CAC BD90H

(0100H)=6CACH

(0101H)=BD90H

2)       奇地址排列法

.title          “zh6.asm”

.mmregs

STACK       .usect       “STACK”, 10H

.bss           a, 2

.bss           y, 2.

.def           start

.data

table:        .word        0BD90H, 06CACH

.text

start:        STM          #0, SWWSR

STM          #STACK+10H, SP

STM          #a, AR1

RPT           #1

MVPD       table, *AR1-

STM          #a, AR3

DLD           *AR3+, A

end:          B                end

.end

执行后结果: A=00 6CAC 6CACH

(0100H)=6CACH

(0101H)=BD90H



总结:偶地址排列,高字存放于偶地址,地址加一存放低字。

奇地址排列,高字存放于奇地址,地址减一存放低字。

34.   FIR滤波器的实现方法(P192)

双操作数、带移位FIR滤波器实现程序如下:


.title “zh7.asm”

.mmregs

.def           start

x                  .usect       “x”, 5

PA0             .set           0

PA1             .set           1

.data

COEF:         .word        1*32768/10

                    .word        -4*32768/10

                    .word        3*32768/10

                    .word        -4*32768/10

                    .word        1*32768/10

.text

start:        SSBX          FRCT

STM          #x+5, AR1

STM          #4, AR0

LD              #x+1, DP

PORTR      PA1, @x+1

FIR3:    RPTZ         A, #4

        MACD      #AR1-, table, A

        STH           A, *AR1

        PORTW    *AR1+, PA0

        BD             FIR3

        PORTR      PA1, *AR1+0

           .end


35.   IIR滤波器的DSP实现方法(P202)


.title          “zh8.asm”

.mmregs

.def           start

x0           .usect       “x”, 1

x1           .usect       “x”, 1

x2           .usect       “x”, 1

B2          .usect       “COEF”, 1

B1          .usect       “COEF”, 1

B0          .usect       “COEF”, 1

A2          .usect       “COEF”, 1

A1              .usect       “COEF”, 1

PA0            .set           0

PA1            .set           1

                   .data

table:        .word        0

                   .word        0

                   .word        1*32768/10

                   .word        2*32768/10

                   .word        3*32768/10

                   .word        5*32768/10

                  .word        -4*32768/10

                   .text

start:        LD              #x0, DP

                   SSBX          FRCT

                   STM          #x1, AR1

PRT           #1

MVPD       #table, *AR1+

STM          #B2, AR1

RPT           #4

MVPD       #table+2, *AR1+

         IIR1:          PORTR      PA1, @x0

                            LD              @x0, 16, A

                   LD              @x1, T

                   MAC                   @A1, A

                   LD              @x2, T

                   MAC                   @A2, A

                   LTD            @x1

                   MAC                   @B1, A

                   LTD            @x0

                   MAC                   @B0, A

                   STH           A, @x0

                   BD             IIR1

                   PORTW    @x0, PA0

                   .end


36.   定标方法(P209)

1)       系数大于等于1时,系数分解成两个小于1的数

2)       对输入数据定标

考虑到滤波运算过程中可能出现大于等于1的输出值,可在输入数据时将其缩小

        PORTR      0001H, @Xin

    LD              @Xin, 16-3, A

 将输入数据除以8,将使输出值小于1

37.   定时器(P245)

1)       定时器由主计数器TIM,定时周期寄存器PRD,定时控制寄存器TCR及相应的逻辑电路组成

定时周期=CLKOUT×(PRD+1)×(TDDR+1)

2)  PRD是16位的,数据范围是 0~65535,TDDR是TCR的低四位,数据范围是0~15。TCR寄存器的位描述:

第15~10位:高6位置0

第9~6位:与TDDR相同

第5位:TRB=1 定时器PRD和TDDR自动重装

第4位:TSS=1 关定时器;TSS=0,启动定时器

第3~0位:TDDR由定时时长决定,范围是1~15

3)       定时器初始化和开放定时器中断的步骤

STM  #0000H , SWWSR       ;不插等待周期

STM  #0010H , TCR         ;TSS=1关定时器

STM  #03E7H , PRD         ;加载周期寄存器(PRD=999)

STM  #01E7H , TCR         ;定时器分频系数TDDR初始化(TDDR=7)

                          ;TRB=1,当TIM减到0后, 重新加载PRD

                          ;TSS=1,启动定时器

STM  #0008H , IFR         ;清除尚未处理完的中断

STM  #0008H , IMR         ;开放定时器中断

RSBX INTM                ;开放中断

38.   中断响应过程(P239)

有问题请@潘雪冰

更多相关推荐:
特殊的平行四边形知识点总结

矩形:有一个角是直角的平行四边形叫做矩形,也说是长方形矩形的性质:矩形的四个角都是直角;矩形的对角线相等矩形的对角线相等且互相平分。特别提示:直角三角形斜边上的中线等于斜边的一半矩形具有平行四边形的一切性质矩形…

初中数学四边形知识点总结大全

四边形知识点总结大全一基本概念:四边形,四边形的内角,四边形的外角,多边形,平行线间的距离,平行四边形,矩形,菱形,正方形,中心对称,中心对称图形,梯形,等腰梯形,直角梯形,三角形中位线,梯形中位线.二定理:中…

新课标人教版八年级数学第十九章四边形知识点总结

新课标人教版八年级数学知识点总结第十九章四边形一、平行四边形:㈠.平行四边形定义:有两组对边分别平行的四边形叫做平行四边形。㈡.平行四边形的性质:平行四边形的对边相等;平行四边形的对角相等;平行四边形的对角线互…

四边形的知识点总结

(一)平行四边形的定义、性质及判定.1.两组对边平行的四边形是平行四边形.2.性质:(1)平行四边形的对边相等且平行;(2)平行四边形的对角相等,邻角互补;(3)平行四边形的对角线互相平分.3.判定:(1)两组…

计算机二级考试C语言知识点总结

总体上必须清楚的:1)程序结构是三种:顺序结构,循环结构(三个循环结构),选择结构(if和switch)2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数…

自动控制原理知识点总结

第一章1.什么是自动控制?2.自动控制系统的两种常用控制方式是什么?3.开环控制和闭环控制的概念?掌握典型闭环控制系统的结构。开环控制和闭环控制各自的优缺点?4.控制系统的性能指标主要表现在哪三个方面?各自的定…

三角形、四边形知识点总结

相交线、平行线一、相交线1.线段的垂直平分线:(1)定义:垂直且平分一条线段的直线,叫做线段的垂直平分线。(2)性质:线段垂直平分线上的点,到线段两端点的距离相等。角的平分线性质:角平分线上的点到角两边的距离相…

高等数学知识点总结

高等数学知识点总结导数公式2tanxsecxctanxcscxsecxsecxtanxcscxcscxcotxaalnalogaxx2arcsinxarccosxarctanx1x21x121x2x1xlnaa...

椭圆知识点总结

椭圆知识点知识要点小结知识点一椭圆的定义平面内一个动点P到两个定点F1F2的距离之和等于常数PF1PF22aF1F2这个动点P的轨迹叫椭圆这两个定点叫椭圆的焦点两焦点的距离叫作椭圆的焦距注意若PF1PF2F1F...

人教版初二数学上知识点总结

人教版初二数学上知识点总结第十一章全等三角形111全等三角形知识点一全等形1全等形形状大小相同的图形放在一起能够完全重合能够完全重合的两个图形叫做全等形2全等三角形能够完全重合的两个三角形叫做全等三角形知识点二...

相互作用知识点总结

第三章相互作用知识点总结一重力基本相互作用1力的概念定义力是物体与物体之间的相互作用单位牛N2力的性质力的相互性任何两个物体之间力的作用总是相互的施力物体同时也是受力物体力的物质性力是物体对物体的作用力不能离开...

C++知识点总结

C的特点1支持抽象数据类型2多态性一个接口多重算法支持早期联编和滞后联编3继承性保证了代码复用支持分类的概念一个c程序由一个或多个函数构成并且在这些函数中只有一个主函数main它是程序执行的入口C程序严格区别字...

知识点总结(1915篇)