dsp工程设计讲座课件.ppt

上传人:牧羊曲112 文档编号:2166776 上传时间:2023-01-23 格式:PPT 页数:60 大小:1.10MB
返回 下载 相关 举报
dsp工程设计讲座课件.ppt_第1页
第1页 / 共60页
dsp工程设计讲座课件.ppt_第2页
第2页 / 共60页
dsp工程设计讲座课件.ppt_第3页
第3页 / 共60页
dsp工程设计讲座课件.ppt_第4页
第4页 / 共60页
dsp工程设计讲座课件.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《dsp工程设计讲座课件.ppt》由会员分享,可在线阅读,更多相关《dsp工程设计讲座课件.ppt(60页珍藏版)》请在三一办公上搜索。

1、DSP Solutions开发,制作:DSP技术中心主讲:李玉柏WWW.DSPSOLUTION.COM,本此讲座主要讨论内容,基于DSP的方案设计的设计要素DSP方案设计步骤数字化设计模拟混合电路设计DSPs目标系统设计系统软件开发工程应用注意事项,(一)DSP方案设计要素 与设计步骤,一个典型DSP SOLUTION设计,设计要素:,算法分析及优化 DSP运算量核算及DSP选择 体系结构设计(单DSP结构还是多DSP结构,并行结构还是串行结构,全DSP结构还是 DSP/MCU混合结构等)数字化要求 模拟混合电路(ADC/DAC)设计 吞吐量需求 存储器需求(SRAM、ROOM、FLASH等)

2、通信口需求 其它控制(电源设计、状态控制、时钟控 制、同步控制等),DSP方案设计的基本步骤,第一步:算法分析与优化 一个大型的DSP应用方案设计时,在目标板设计之前应提交下列报告:需求分析 算法分析和优化分析 运算量的评估 体系结构设计评估 DSP方案比通用CPU和MCU方案的优势分析 开发工具需求 测试与验证方法,DSP方案设计的基本步骤,第二步:DSP的选择DSP应用方案的运算量需求 DSP适合处理的领域 DSP的片上存储器资源、价格、外设配置DSP与其他元件和部件的配套性其他一些因素,如购买是否方便、功耗、在线仿真控制、与其他CPU的同步方式等,DSP方案设计的基本步骤,第三步:DSP

3、配置-DSP基本系统设计 选择了DSP后,就可以对DSP的外围电路进行设计。DSP外围电路包括本身的基本引脚连接、总线驱动、时钟控制、引导程序方式控制、存储器配置、通信口配置、I/O口控制、时序设计等,目的是保证DSP的基本工作模式和环境。我们又把对DSP的外围电路进行的设计称为DSP基本系统设计,或者称为DSP最小系统设计。,DSP方案设计的基本步骤,第四步:模拟数字混合电路设计 DSP应用方案是一个数字系统,如果要处理客观世界真实信号,必须有数字化设计。模拟数字混合电路设计一般包括信号调理、模数转换和数模转换、数据缓存等部分。在设计中实现DSP与模拟混合产品的无缝连接、以及保证数据吞吐量是

4、关键。,DSP方案设计的基本步骤,第五步:系统电路设计 为了保证系统功能与指标,需要在系统级进行设计与优化。一个高速处理的数字化系统的主要技术指标包括:系统通过速率 系统分辨度 系统精度 系统线性误差 系统共模抑制比,DSP方案设计的基本步骤,第六步:系统软件的编写与调试第七步:系统测试与验证 1)硬件部件的原理验证 2)通过DSP的原理验证 3)软件的仿真与算法验证 4)系统硬件功能验证与指标测试 5)系统软件的完善 6)其它测试与验证,(二)数字化设计,1 基带信号采样定理 要想连续信号抽取后能够不失真地还原出原信号,则抽取频率必须大于或等于两倍原信号频谱的最高频率。(Nyquist定理)

5、,2 带通采样定理,带通采样时采样频率不一定要满足Nyquist准则,带通采样的采样频率选择方法为:(1)fs 2 f(BW)(2)fs=4fc/(2NZ-1)其中,NZ=1,2,3,的最大整数。,盲区采样,正交采样,3 量化与量化误差,连续信号经量化处理要产生量化误差,对于均匀量化,量化误差的大小为:,其中,E为FS电平,us为信号有效电平。对于FS正弦输入,量化误差为:,4 ADC/DAC的选择,(1)ADC的种类:逐次比较ADC 双线性ADC FLASH ADC-ADC(2)ADC选择的标准:分辨率、速度、输入动态范围、POWER等(3)DAC的选择(4)滤波器设计,5、DSP与ADC/

6、DAC的接口,(1)对于串型ADC/DAC接口一般使用DSP的串口进行数据通信。如C25与11通道的12位ADC TLC2543的接口设计如下:,(2)对于并型ADC/DAC接口一般使用DSP的I/O口进 行数据通信。如DSP与12位ADC AD678的接口设 计如下:,(三)目标系统硬件设计,1 DSP的选择运算量价格外设需求其他因素,2 DSP配置 DATA存储器大小 PROGRAM存储器大小 存储器速度要求 I/O口配置,3、DSP基本系统设计,与模数电路接口BOOTLOADER设计扩展存储器设计时钟设计中断设计外设的使用电源管理其他.,1)、BOOTLOADER设计,MP/*MC=0(

7、片上ROM有效),复位后程序从FF80开始运行,将跳转到BOOTLOADER代码开始出。BOOT的流程取决于I/O口FFFF的值(BRS)和INT2*RS后检测INT2是否有效?有效按HPI boot模式引导,否则,读I/O口FFFFh的BRS,决定其他的引导方式。BRS决定的引导方式 xxxx1000:8bit并口I/O引导 xxxx1100:16bit并口I/O引导 xx?00:串口引导(详细说明见后)xxxxxx01:8bit并行EPROM引导 xxxxxx10:16bit并行EPROM引导 xxxxxx11:热引导模式,BRS决定的串口引导说明:xx000000:8bit缓冲串口BSP

8、(FSX/CLKX作为输出)xx000100:16bit缓冲串口BSP(FSX/CLKX作为输出)xx010000:8bit缓冲串口BSP(FSX/CLKX作为输入)xx010100:16bit缓冲串口BSP(FSX/CLKX作为输入)xx100000:8bit时分复用串口TDM(FSX/CLKX作为输出)xx100100:16bit时分复用串口TDM(FSX/CLKX作为输出),以EPROM引导为例:为了保证引导成功,EPROM的数据组织必须遵守BOOTLOADER的规定的数据存放格式。利用DSP的编译工具可以很方便的生成符合引导规定的数据存放格式。这个工具是十六进制转换工具,该工具使用方法

9、如下:HEX500-e 1000h-boot-i-bootorg 08000H-memwidth 8 filemane其中最主要的是选项的正确使用。决定引导程序识别的数据格式的主要选项包括:-e VALUE 指定引导程序装入DSP的程序存储器的启始地址,如本例的1000H,-boot 转换生成引导表-i 生成intel格式的EPROM数据格式-bootorg VALUE 说明引导程序从外部数据存储器引导数据的启始地址,如本例EPROM的启始地址为08000H。-memwidth VALUE 定义外部数据存储器的字宽,在本例为8位的EPROM。另外还可以使用-swwsr VALUE来设置插入等待

10、周期;使用-bscr VALUE来设置存储器块大小;使用romwidth VALUE来设置EPROM大小。,2)外部存储器接口,A22-A19A18A17A16A15A14-A0*PS*DS*IS*MSTRBR/*W,A16A15A14-A0*OE*CS*WE,下面给出一个扩展外部存储器的例子,重点注意:a、只使用一片128Kx16的RAM b、与内部有效的RAM相同的地址,外部RAM无效 c、外部 RAM的存 取速度不能全 速运行时,需 要根据速度插 入等待状态,3)系统时钟设计与控制,CLKOUT VCC crystal oscillator GND,External Clock,3.3V

11、,电路的两种接法:内部振荡器 外部晶振,两种时钟控制方式 a、Hardware-programmable PLL(C541、C542、C543、C545&C546),b、Software-programmable PLL(C541B/C545A/C546A/C548/C549/C5402/C5410/C5420)由时钟模式寄存器控制(CLKMD):,软件编程控制时钟举例:(设置 CLKOUT=CLKIN x 3)STM#0h,CLKMD;switch to DIV mode TstStatu:LDM CLKMD,A AND#01b,A;poll STATUS bit BC TstStatu,A

12、NEQ STM#0214fh,CLKMD;Set PLLON/OFF when;STATUS is DIV mode;PLLMUL=0010,PLLDIV=0;PLLCOUNT=00101000(41),4)、中断处理 a、外部中断引脚连接 b、修改中断向量表 c、中断服务程序,5)外设的使用,计数器的使用标准SP的使用缓冲SP的使用McBSP的使用TDM的使用HPI的使用与设计DMA的使用与设计其它I/O接口信号线(如XF、BIO等)的使用,(四)、目标板系统软件设计,1、源程序的编写在编写汇编语句时,应遵循以下规则:语句的开头只能是标号、空格、星号或分号。标号是可选项;如果使用,必须从第一

13、列开始。每个域必须由一个或多个空棵空格来分开。制表符等同于空格。注释是可选项。开始于第一列的注释用星号或分号(*或;)来标明,开始于其它列的注释必须由分号开头。一个源语句可以包含四个域,一般格式如下:label:instruction;comment,2、汇编编译指令的使用,汇编编译指令用来完成以下任务:将代码和数据汇编进特定的段为未初始化的变量保留存储器空间控制展开列表的形式存储器初始化汇编条件块定义全局变量指定汇编器可以获得宏的特定库检查符号调试信息,1)、程序段定义的汇编指令,段定义汇编指令使部分源程序放入适当的段中。.bss 在.bss段中为未初始化的变量保留空间.data 确认.da

14、ta段中的代码段。.data段中通常包含 了初始化的数据(用.int/.word等定义)。.sect 定义初始化了的带命名的段,并将紧接着的代 码或数据并入该段。.text 该段中包含了可执行的代码。.usect 在一个未初始化的有命名的段中保留空间,使用格式和举例,.mmregs.bss x,20,1.usect“sin-table”,100.textLD#0,AADD x,A,B.sect“cal-sin”LD#lk,ASTL A,sin-table,RET.data.word 1,2,3,4.int 043h,ff08h,除.int和.word外还有很多用于常量说明的汇编指令,如.byt

15、e/.field/.space/.bes/.fload/.long/.string/.xfload等,请看教程。,2)、引用其它文件的汇编指令,.copy/.include 告诉汇编器开始从其它文件中读源语句。.def 确认一个在当前模块中定义的且能被其它模块使用的符号。.global 声明一个外部符号,使其它模块在连接的时候可以使用它。如果在当前段定义了该符号,那么该符号就可以被其它模块使用;如果在当前段中没有定义该符号,则是使用了其它模块定义的符号。前一种功能与.def相同,后一种功能与.ref相同。.mlib 向汇编器提供一个包含了宏定义的文挡库的名称。当汇编器碰见了一个在当前库中没有定

16、义的宏,就在.mlib确认的宏库中查找。.ref 确认一个在当前段中使用但在其它段中定义的符号。,3)、条件汇编指令,.if/.elseif/.else/.endif 这些指令告诉汇编器根据表达式的值条件汇编一块代码。.if表示一个条件块的开始,如果条件为真就汇编紧接着的代码。.elseif是表示如果.if的条件为假,而.elseif的条件为真,就汇编紧接着的代码。.endif结束该条件块。.loop/.break/.endloop 这组指令告诉汇编器按照表达式的值循环汇编一块代码。.loop expression 标注一块循环代码的开始。.break expression告诉汇编器当表达式为

17、假时,继续循环汇编;当表达式为真时,立刻转到.endloop后的代码去。.endloop标注一个可循环块的末尾。,4)、汇编时的符号指令,符号指令是使有意义的符号名与常数值或字符串相等同.asg 该指令规定一个字符串与一个替代符号相等.asg“10,20,30,40”,coefficients.byte coefficients.eval 计算一个表达式的值并把结果传送到与一个替代符号等同的字符串中.eval x+1,x.set/.equ 这两条指令把一个常数值等效成一个符号,存放在符号表中且不能被清除。Cont1.set 0190h.int cont1,cont1*2,cont1*4其他符号

18、指令:.label/.struct/.endstruct/.tag,5)其他汇编指令,.align 使SPC对准1-word到128-word的边界。.algebraic 告诉编译器文件包含了算术汇编源代码。.end 结束编译。.mmregs 定义存储器映射寄存器的符号名称。.emsg/.mmsg/.wmsg 用来定义自己的错误和警告提示信息。.newblock 对局部标号进行复位。.sblock 指定几段为一模块。.version 决定为之建立指令的处理器。输出列表格式指令:.drlist/.drnolist/.fclist/fcnolist/,3、命令文件的编写,命令文件的功能是说明目标文

19、件如何连接到目标板,即装入存储器(或重定位)的方法。命令文件包括:1)、连接文件说明:a.obj/*First input filename*/b.obj/*Second input filename*/-o prog.out/*Option to specify output file*/-m prog.map/*Option to specify map file*/,2)、存储分配说明,3)、段的分配与说明,4)、命令文件举例,a.obj b.obj c.obj/*Input filenames*/-0 prog.out-m prog.map/*Options*/MEMORY/*MEMO

20、RY directive*/RAM:origin=100h length=0100hROM:origin=01000h length=0100hSECTIONS/*SECTIONS directive*/.text:ROM.data:ROM.bss:RAM,(五)、工程应用注意事项,电平转换 定标流水线冲突 指令效率.,1、电源设计与电平转换 1)一般DSP有两个电源:CVCC、DVCC,电源设计中提倡使用有两路输出的电源芯片,如TPS73HD301、TPS73HD325、TPS73HD318 等。复位电路设计结合电源设计。,各种电平的转换,2)如果DVCC=3.3V,则DSP不能承受5V电平

21、,不能驱动5VCMOS,但可以驱动5VTTL,3.3VTTL,LVT,ALVC 3)电平转换可以使用SN74ALVC164245等,4)使用省电模式:省电模式可以使CPU暂时处于休眠状态,这时的功耗比正常模式要低,但能保持CPU的内容。,2、定点DSP的定标 1)一般定点DSP有两种定标表示法:Q、S Q15-S0.15-1X0.9999695 Q5-S10.5-1024X1023.96875 2)浮点数(x)转换成定点数(xq):xq=(int)X*2Q 3)定点数(xq)转换成浮点数(x):x=(float)xq*2Q 4)C54x通过归一化支持定标操作:相关指令EXP、NORM,归一化一

22、个数是先求其指数,然后把它调整到最大精度格式。实现方法如下:,3、DSP的流水线冲突 1)C54x采用六级流水线操作 2)一般流水线冲突时DSP会自动插入时延解决冲突(见后)3)有时需要程序员自己调整解决冲突,如:stlm a,brc rsbx sxm nop nop rptb loop-1 ld*ar5+,a.loop:stlm a,st1 ssbx cpl nop nop sub*ar2-,a nop nop ld 27h,a,4、指令效率的提高,C54x中有一些指令功能差不多,但编写出的程序效率不同,灵活使用,如:MPYR Smem,dst;T*(Smen)dstMACR Smem,dst;(Smen)*T+src(MPYR+ADD);srcMACD Smen,pmen,src;pmend PAR(MAC+DELY+LD);(Smem)*(pmed);+(src)src;(Smem)T;(Smem)Smem+1,谢谢大家!,联系电话:(028)3201455E-mail:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号