- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字信号处理器软硬件设计与应用8.1C54x数字信号处理器程序设计8.2
第八章 数字信号处理器软硬件设计与应用 本章内容: 8.1 C54x数字信号处理器程序设计 8.2 C54x程序设计举例 8.3 C54x数字信号处理器硬件设计 8.4 DSP应用举例 8.5 全球DSP设计竞赛 DSP硬件电路设计 微机原理 DSP技术 数字电路 可编程门阵列FPGA 模拟电子线路 …… Protel 电路设计软件 AutoCAD 硬件设计语言VHDL 模拟电路仿真设计软件Spice …… DSP软件设计 数字信号处理理论知识的深刻掌握。 理论算法结构的理解及运用。 DSP硬件内部结构的掌握 MATLAB科学计算软件 C/C++ 程序设计 DSP 汇编程序设计 DSP集成开发环境 DSP软硬件设计 数字信号处理器软硬件设计与应用 8.1 C54x数字信号处理器程序设计 C54x数字信号处理器程序设计 循环寻址编程 DSP位倒序寻址编程 扩展精度运算 循环寻址编程 循环寻址是C54x指令系统的一个重要特性 卷积、相关及FIR滤波器等算法都可使用存储器中的循环缓冲区进行循环寻址 循环缓冲区提供一个保存最新数据的可移动窗口。新数据进入时,改写原有最旧的数据 循环缓冲区的容量、底部地址及顶部地址是通过块大小寄存器(BK)和一个用户选择辅助寄存器(ARn)规定 一个循环缓冲区必须从一个K 位边界开始。这里K是满足2kR的最小整数,R是循环缓冲区的大小 循环寻址编程 例:采用循环寻址方式实现的采样数据输入/输出缓冲器。循环缓冲区的大小是8,采样输入数据12个:10、20 、…… 120,循环输入 输入和输出各使用一个循环缓冲区地址指针 每次用输入循环指针循环寻址输入一个采样数据时,同时用输出循环指针循环寻址输出一个数据,循环缓冲区初始化是清零 循环寻址编程 循环寻址模式举例 .mmregs .global _main K_FRAME_SIZE .set 4 d_rcv_in_ptr .usect rcv_vars,1 d_xmt_out_ptr .usect rcv_vars,1 .data data .word 10,20,30,40,50,60,70,80,90,100,110,120 ;12个伪采样数据 .text _main LD #0,dp STM #2000h,AR2 STM #2004h,AR3 STM #2010h,AR0 STM #2000h,d_rcv_in_ptr ; 输入缓冲区起始地址 STM #2004h,d_xmt_out_ptr ; 输出缓冲区起始地址 STM 02900h,st1 STM 076a0h,pmst STM #0ffah,sp RPT #7 ST #0,*AR2+ STM #2000h,AR2 STM #2*K_FRAME_SIZE,BK ; 输入输出循环缓冲区的大小 wait STM #data,AR1 ST #11,brc RPTB aaa-1 LD #0,DP ; 初始化DP MVDK d_rcv_in_ptr,AR2 ; 恢复输入缓冲区指针 MVDK d_xmt_out_ptr,AR3 ; 恢复指针r get_samples: LD *AR1+,A ; 将输入采样数据装入到累加器A中 STL A,*AR2+% ; 将采样数据写到循环缓冲器中 LD *AR3+%,B STL B,*AR0+ MVKD AR2,d_rcv_in_ptr ; 保存输入缓冲区指针 MVKD AR3,d_xmt_out_ptr ; 保存输出缓冲区指针 aaa: B wait .end DSP位倒序寻址编程 序列的倒序:将顺序地址的增加(加1)过程,变为由左向右相加并进位,以适应FFT变换对序列顺序的要求 实现
文档评论(0)