DSP实验指导书及其思考题答案(7)

2018-12-29 19:33

MVDD *ar2, *ar3 ; 更新Buffer2 STL A, *ar2+% RPTZ B, #(N/2-1)

; 更新滤波窗口中的采样数据

; 初始化A

; 重复FIRS指令N/2次,先将B清零

ADD *ar2+0% , *ar3+0%

FIRS *ar2+0%, *ar3+0%,filter_coff+N/2 ;完成滤波计算。注意FIR

;滤波系数存放在程序存贮区,filter_coff为系数起始地址

MAR *ar2-%

; 修改Buffer1指针 ; 修改Buffer2指针

MAR *+ar3(-2)%

图4-3 16点FIRS滤波数据存放

(2)AC01的初始化

DES5402PP使用AC01作为模拟信号接口。AC01提供一个14bit的D/A和一个14bit的A/D通道。AC01与VC5402通过串口0连接。DSP通过串口可以控制AC01的采样频率、增益、低通/高通滤波器的截止频率等参数。这一步是通过读写AC01的寄存器来实现的。下面是初始化AC01的代码,有关AC01的详细介绍请参考

27

AC01的技术手册。

;---------------------------------------------------------------------- ; The following codes are initalized AC01, ALL AC01 setup same ! ;----------------------------------------------------------------------

idle 1 ; 初始化AC01时仅仅打开串口0的发送中断,而且中断服务 idle 1 ;程序中简单地将A寄存器的值写入到串口0发送寄存器。 idle 1 ;开始初始化时,将A寄存器设置为0 ! idle 1

ld #600h,a

idle 1 ld #3,a

idle 1 ld #00105h,a idle 1 ld #3,a

idle 1 ld #00228h,a

idle 1 ld #3,a

idle 1 ld #00300h,a

idle 1 ld #3,a

idle 1 ld #00405h,a

idle 1 ld #3,a

idle 1 ld #00505h,a

idle 1 ; wait for int ..... ,AC01的1号寄存器为采样率控制寄存器 ; fs=10M/2/A/B= 25k,采样率设置为25KHz ; flp=10M/2/40/A= 25k (all pass) ; fhp=fs/200= 125Hz (not use !) ; A=05,B=40(0x28) ; send 1th regs -> 05h ; send 4th regs -> 05h (AD & DA 0 dB) 28

; send #3 ; send #3 ; send 2th regs -> 28h ; send #3 ; send 3th regs -> 00h ; send #3 ; send #3 ; send 5th regs -> 05h (highpass filter disable)

ld #3,a

idle 1 ; send #3 ld #00600h,a

idle 1 ; send 6th regs -> 00h ld #3,a

idle 1 ; send #3 ld #00700h,a

idle 1 ; send 7th regs -> 0 ld #3,a

idle 1 ; send #3 ld #800h,a

idle 1 ; send 8th regs -> 0 ld #0h,a

; 初始化AC01完成 ! (2)1KHz方波信号的产生

利用AC01的D/A通道产生一个1KHz的方波,作为FIR滤波器的输入信号。由于串口发送中断将每0.04ms(25KHz)产生一次,所以我们将一个周期的方波信号分25次送出,这样经D/A变化后便可得到1KHz的方波。产生方波的数据参见如下:

;********************************************************************** ; The following data is used by make wave ! when using, must copy to wave buffer ;********************************************************************** wave_data: ; freq about 1k Hz .word 03ffch ; +2 volt .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch

29

.word 03ffch .word 03ffch

.word 0c000h ; -2 volt .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h

(3)串口的初始化和串口中断服务程序

本实验通过DSP的串口0输入/输出数据。在串口通讯中,数据时钟和帧同步信号都由AC01产生,所以VC5402将使用外部时钟和帧同步信号。串口设置代码如下,详细介绍请参见串口操作实验:

;****************************************************************** ; The following codes are used to initalize McBSP0 !

;****************************************************************** stm #0,spsa0 ; choose SPCR10

stm #2000h,spcr10 ; receive sign_extend in DRR stm #1,spsa0 ; choose SPCR20 stm #0c0h,spcr20 ; fs -> int ! stm #2,spsa0 ; choose RCR10 stm #40h,39h

stm #3,spsa0 ; choose RCR20 stm #0,39h

stm #4,spsa0 ; choose XCR10 stm #40h,xcr10

stm #5,spsa0 ; choose XCR20 stm #0,39h

stm #0eh,spsa0 ; choose PCR0

30

stm #0dh,pcr0 ; fs is low active, rise edge of clkx, falling edge ; of clkr stm #7h,spsa0 stm #8000h,39h rpt #0ffffh nop

stm #00h,dxr10 ldm 22h,a stm #1,38h

stm #0c1h,39h ; start McBSP0 send !

完成串口设置后,还需要修改中断向量表以便正确响应串口0的接收和发送中断请求。本实验中使用发送中断产生方波信号和完成对AC01的初始化;使用接收中断存贮输入的数据,并设置新数据到达标志。主循环在检测到该标志后,调用FIR滤波程序,完成对输入数据的处理。

另外,为了方便观察,我们还使用了一个定时器,交替使XF为高和低。所以,在滤波程序正常运行时,你会看到D2在不停地闪烁。 三、实验要求(设计要求)

利用DES5402PP评估板的模拟信号输出通道产生一个1KHz的方波,然后利用信号输入通道对产生的方波进行低通滤波,得到一个1KHz的正弦信号,并使用CCS的图形显示工具显示输入和输出的波形。这里我们使用的是一个38阶的对称结构的FIR低通滤波器,其采样频率Fs为25KHZ,通带截止频率 1.2KHZ,阻带截止频率为2.8KHZ,阻带衰减为-40dB。 四、实验条件

PC机 , DES5402PP-U实验系统 五、调试及结果测试

本实验需要使用‘C54X汇编语言实现FIR滤波器,并通过CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。实验分以下几步完成: (1)短接JP9,使得DES5402PP的信号输出通道与输入通道相连。

(2)启动CCS,在Project选项中新建fir5402.prj文件,添加相应模块程序。 (3)使用Build选项完成编译、连接,然后使用File菜单中的Load Program将OUT文件装入。按F5键启动程序运行,若有示波器,可以观察DES5402PP板上的J3输出的1KHz的方波。

31


DSP实验指导书及其思考题答案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017-2023年中国通信继电器行业市场深度分析与投资规划咨询(目

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: