TMS320C54x的软硬件应用.ppt

上传人:max****ui 文档编号:11498091 上传时间:2020-04-25 格式:PPT 页数:40 大小:1.46MB
返回 下载 相关 举报
TMS320C54x的软硬件应用.ppt_第1页
第1页 / 共40页
TMS320C54x的软硬件应用.ppt_第2页
第2页 / 共40页
TMS320C54x的软硬件应用.ppt_第3页
第3页 / 共40页
点击查看更多>>
资源描述
第6章TMS320C54x的软硬件设计,6.3FIR滤波器的C54x实现方法,FIR滤波器算法分析,乘法累加运算Z-1操作:延时操作。有两种方法实现:线性缓冲区法循环缓冲区法I/O输入和输出操作指令:PORTRPA,SmenPORTWSmen,PA,线性缓冲区法实现Z-1,又称延迟线法,特点如下对于N级FIR滤波器,在数据存储器中开辟一个称之为滑窗的N个单元的缓冲区,存放最新的N个输入样本从最老的样本开始,每读一个样本后,将此样本向下移位。读完最后一个样本后,输入最新样本至缓冲区的顶部。,举例N=6的线性缓冲区存储图,数据存储器,ARx-,数据存储器,ARx-,数据存储器,ARx-,线性缓冲区顶部,PORTR,PORTR,滑窗的N个单元的缓冲区,存放最新的N个输入样本从最老的样本开始,每读一个样本后,将此样本向下移位。,样本向下移位,用延时指令DELAY实现。DELAY:数据存储器单元中的内容向较高地址单元传送。DELAYSmen;SmenSmen+1DELAY*AR2-DELAY指令与其它指令相结合单周期指令LT+DELAYLTDMAC+DELAYMACD因为单周期内要进行一次读和一次写操作,故延迟操作只能在DARAM中进行,循环缓冲区法实现Z-1,特点如下对于N级FIR滤波器,在数据存储器中开辟一个也称之为滑窗的N个单元的缓冲区,存放最新的N个输入样本每次输入新样本时,以新样本改写滑窗中最老的数据,而滑窗中其它数据不需要移动循环缓冲区首尾相接,循环寻址。,举例N=6的循环缓冲区存储图,数据存储器,数据存储器,数据存储器,循环缓冲区顶部,滑窗的N个单元的缓冲区,存放最新的N个输入样本以新样本改写滑窗中最老的数据,而滑窗中其它数据不需要移动,循环缓冲区底部,6,6,对设置循环缓冲区的要求,循环缓冲区的长度R小于2N,且地址从一个低N位为0的地址开始;步长小于或等于循环缓冲区的长度所使用的辅助寄存器必须指向缓冲区单元循环寻址算法规则:If0index+stepEPROMPAGE0.bss:SPRAMPAGE1xn:align(8)DARAMPAGE1a0:align(8)DARAMPAGE1.vectors:VECSPAGE0,系数对称FIR滤波器实现的要点如下(N=8),1、开辟2个循环缓冲区:New和Old,长度各为N/2。2、AR2指向New缓冲区中最新的数据AR3指向Old缓冲区中最老的数据3、在程序存储器中设置系数表,4、(AR2)+(AR3)AH,(AR2)-1AR2,(AR3)-1AR35、设置B=0,重复计算4次(i=0,1,2,3)(AH)*系数ai+(B)B系数指针(PAR)+1(AR2)+(AR3)AH,AR2和AR3减16、保存和输出结果(结果在BH中),7、修正数据指针,让AR2和AR3分别指向New缓冲区中最新的数据和Old缓冲区中最老的数据8、用New数据区中最老的数据替代Old缓冲区中最老的数据。Old缓冲区指针减19、输入一个新数据替代New缓冲区中最老的数据重复执行49步,对称FIR滤波器(N=8)源程序清单.title“FIR5.asm”.mmregs.def_c_int00.bssy,1x_new.usect“DATA1”,4x_old.usect“DATA2”,4Size.set4PA0.set0PA1.set1.dataCOFF:.word1*32768/10.word2*32768/10.word3*32768/10.word4*32768/10,.text_c_int00:LD#y,DPSSBXFRCTSTM#x_new,AR2STM#x_old+(size-1),AR3STM#size,BKSTM#-1,AR0PORTRPA1,#x_newFIR:ADD*AR2+0%,*AR3+0%,ARPTZB,#(size-1)FIRS*AR2+0%,*AR3+0%,COFFSTHB,yPORTWy,PA0MAR*+AR2(2)%MAR*AR3+%MVDD*AR2,*AR3+0%BDFIRPORTRPA1,*AR2.end,/*有限冲击响应(FIR)滤波器算法实验参考源程序fir.asm*/HIGHPASS.set0;ifyouwanttouse,pleasesetthevalueto1BANDPASS.set0LOWPASS.set1.globalstart,fir.mmregsCOFF_FIR_START.sectcoff_fir.ifLOWPASS.includelowpasslowpass.inc.elseifBANDPASS.includebandpassbandpass.inc.else.includehighpasshighpass.inc.endifK_FIR_BFFR.set32d_data_buffer.usectfir_bfr,64FIR_DP.usectfir_vars,0d_filin.usectfir_vars,1d_filout.usectfir_vars,100houtput.usectfir_vars,1.asgAR4,FIR_DATA_P.asgAR6,INBUF_P.asgAR7,OUTBUF_P.asgAR3,OUTBUF,.sectfir_prognopstart:LD#FIR_DP,DPSTM#d_data_buffer,FIR_DATA_PRPTZA,#K_FIR_BFFR-1STLA,*FIR_DATA_P+STM#d_filin,INBUF_PSTM#d_filout,OUTBUF_PSTM#output,OUTBUFSTM#100h,BKfir_loop:NOP;AddBreakpoint&porbepointLD*INBUF_P,ACALLfirSTHA,*OUTBUF_P+%STHA,*OUTBUFmain_end:bfir_loop,fir:SSBXSXMSSBXFRCTSTM#d_data_buffer,FIR_DATA_PSTLA,*FIR_DATA_PSTM#(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_Pfir_task:RPTZA,#K_FIR_BFFR-1MACD*FIR_DATA_P-,COFF_FIR_START,ARET.end,/*fir.cmd*/MEMORYPAGE0:PROG:o=100h,l=2000hPAGE1:DATA1:o=2600h,l=1000hDATA2:o=2100h,l=100hDATA3:o=2200h,l=100hDATA4:o=2300h,l=100hDATA5:o=2400h,l=100hDATA6:o=2500h,l=100hSECTIONScoff_fir:PROGPAGE0fir_prog:PROGPAGE0fir_vars:DATA1PAGE1fir_coff:DATA2PAGE1fir_bfr:DATA3PAGE1,问题:,MACD什么意思?用什么方法实现FIR算法?3.填空:K_FIR_BFFR的值:_;_data_buffer的地址:_;d_filin的地址:_;d_filout的地址:_;output的地址:_;DP的值:_。4.循环寻址的运算法则?,断点的使用问题?Run和animate的区别?,MACDSmen,Pmad,src,src=src+Smen*PmadT=Smen(Smen+1)=Smen,断点的使用问题,CCS3.3以后版本有多种类型断点:Halttarget断点:程序运行到断点时将停止运行,更新所有窗口,需认为干预才能继续运行。Readdatefromfile/writedatetofile探针(ProbePoint)Refreshawindow等,除1外的所有所谓的“断点”功能都是暂停程序运行,做完action后继续运行程序,Run和Animate的使用,Run:运行程序,碰到halttarget断点停止运行,除非认为干预。Animate:动画运行。碰到halttarget断点暂停程序运行,更新窗口显示,然后继续运行。可理解为“运行中断继续”,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!