单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,本此讲座主要讨论内容,数字化设计,模拟混合电路设计,DSPS,目标系统设计,DSP,外设的设计与使用,系统软件开发,工程应用注意事项,(一)数字化设计概述,TMS320C,542,A/D,A/D,FILTER,D/A,CONTROLLER,EPROM,RAM,FILTER/MUX,一个典型,DSP SOLUTION,设计,设计步骤,算法分析和优化;,DSP,的选择;,DSP,最小系统设计;,模拟电路接口;,系统控制电路;,软件编写和调试,系统测试与验证,设计要素:,数字化要求,模拟混合电路(,ADC/DAC,)设计,处理需求(,DSP,运算量),吞吐量需求,存储器需求(,SRAM,、,ROOM,、,FLASH,等),通信口需求,其它控制(电源设计、状态控制、时钟控制、多,DSP,控制、,.),(二)模数与数模转换,1,基带信号采样定理,要想连续信号抽取后能够不失真地还原出原信号,则抽取频率必须大于或等于两倍原信号频谱的最高频率。(,Nyquist,定理),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/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,口配置,管脚注意事项,外部中断不使用时拉高,复位管脚有效的要求,MP/MC,管脚在启动时起作用,HOLD,和,HOLDA,的作用,JTAG,接口,XF,标志,3,、,DSP,基本系统设计,与模数电路接口,BOOTLOADER,设计,扩展存储器设计,时钟设计,中断设计,外设的使用,电源管理,其他,.,1,)系统时钟设计与控制,CLKOUT VCC,crystal oscillator,GND,External Clock,3.3V,电路的两种接法,:,内部振荡器,外部晶振,内部振荡器,实际是内部一个放大器;外部晶振,实际是有源晶振。,两种时钟控制方式,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,ANEQ,STM#0214fh,CLKMD ;Set PLLON/OFF when,;STATUS is DIV mode,;PLLMUL=0010,PLLDIV=0,;PLLCOUNT=00101000(41),4,)、中断处理,a,、外部中断引脚连接,b,、修改中断向量表,c,、中断服务程序,5,)电源设计,交流变直流,在高频电路中学过,其过程如下。在通常的数字电路中,使用,12V,、,5V,作为基本的直流电源,其他直流电一般都是通过这些电源加上,DC-DC,芯片产生。,市电,变压,整流,稳压,滤波,DSP,的工作电压,核心电源,CVDD,,根据型号不同,可以是,2.5,伏,也可以是,1.8,伏。供电对象是,DSP,内部所有设备,包括,CPU,,时钟和外设,I/O,口电压,DVDD3.3,伏。高级的芯片都是,3.3,伏,因为这样可以减少芯片的功耗和体积。但是,,5,伏器件价格更便宜,购买更方便。供电对象只是管脚。,电路设计,通过,5,伏电压的分压,缺点是不够稳定,使用专用电源芯片,实际就是,DC-DC,芯片,如:,单电源输出,TPS7333,,,TPS7133,双电源输出,TPS73HD318,凡是,DSP,的,DVCC,和,CVCC,管脚,都应该加上旁路电容,10u,0.1u,具体电路参考数据手册,6,),JTAG,电路设计,JTAG,的基本概念,JTAG,是,JOINT TEST ACTION GROUP,的缩写。这个组织设计了一种基于边界扫描的接口,用于集成电路芯片的测试,协议为,IEEE 1149.1,。,芯片执照商设计芯片时,需要遵循这样的协议,从而建立一个,JTAG,接口。通过这个接口,可向芯片发送数据,进行调试。,边界扫描结构,结构上,他包括三个部分,软件部分,硬件部分,目标设备。结合,DSP,,软件是,CCS,,硬件是仿真器,目标设备是,PCB,。,JTAG,管脚,EMU0 Emulation pin 0,EMU1 Emulation pin 1,GND Ground,PD(VCC)Presence detect.Indicates that the emulation cable is connected and that the target is powered up.PD should be tied to VCC in the target system.,TCK Test clock.TCK is a 10.368-MHz clock source from the emulation cable pod.This signal can be used to drive the system test clock.,TCK_RET Test clock return.Test clock input to the emulator.May be a buffered or unbuffered version of TCK.,TDI Test data input,TDO Test data output,TMS Test mode select,TRST Test reset,仿真头排列,硬件设计,JTAG,接头在,PCB,板上是,DIP14,的双排插头。,6,脚为空,5,脚(,VCC,)在使用并口仿真器时最好接,5V,。,7,)外设的使用,计数器的使用,标准,SP,的使用,缓冲,SP,的使用,McBSP,的使用,TDM,的使用,HPI,的使用与设计,DMA,的使用与设计,其它,I/O,接口信号线,(,如,XF,、,BIO,等)的使用,(四)、目标板系统软件设计,1,、源程序的编写,在编写汇编语句时,应遵循以下规则:,语句的开头只能是标号、空格、星号或分号。,标号是可选项;如果使用,必须从第一列开始。,每个域必须由一个或多个空棵空格来分开。制表符等同于空格。,注释是可选项。开始于第一列的注释用星号或分号(,*或;,)来标明,开始于其它列的注释必须由分号开头。,一个源语句可以包含四个域,一般格式如下:,label:instruction ;comment,2,、汇编编译指令的使用,汇编编译指令用来完成以下任务:,将代码和数据汇编进特定的段,为未初始化的变量保留存储器空间,控制展开列表的形式,存储器初始化,汇编条件块,定义全局变量,指定汇编器可以获得宏的特定库,检查符号调试信息,1,)、程序段定义的汇编指令,段定义汇编指令使部分源程序放入适当的段中。,.,bss,在,.bss,段中为未初始化的变量保留空间,.,data,确认,.data,段中的代码段。,.data,段中通常包含,了初始化的数据(用,.int/.word,等,定义),。,.,sect,定义初始化了的带命名的段,并将紧接着的代,码或数据并入该段。,.,text,该段中包含了可执行的代码。,.,usect,在一个未初始化的有命名的段中保留空间,使用格式和举例,.mmregs,.bss x,20,1,.usect “sin-table”,100,.text,LD#0,A,ADD x,A,B,.sect“cal-sin”,LD#lk,A,STL A,sin-table,RET,.data,.word 1,2,3,4,.int 043h,ff08h,除,.int,和,.word,外还有很多用于常量说明的汇编指令,如,.byte/,.field/.space/.bes/.fload/.long/.string/.xfload,等,请看教程。,2,)、引用其它文件的汇编指令,.,copy/,.,include,告诉汇编器开始从其它文件中读源语句。,.,def,确认一个在当前模块中定义的且能被其它模块使用的符号。,.,global,声明一个外部符号,使其它模块在连接的时候可以使用它。如果在当前段定义了该符号,那么该符号就可以被其它模块使用;如果在当前段中没有定义该符号,则是使用了其它模块定义的符号。前一种功能与,.def,相同,后一种功能与,.ref,相同。,.,mlib,向汇编器提供一个包含了宏定义的文挡库的名称。当汇编器碰见了一个在当前库中没有定义的宏,就在,.mlib,确认的宏库中查找。,.,ref,确认一个在当前段中使用但在其它段中定义的符号。,3,)、条件汇编指令,.,if/,.,elseif/,.,else/,.,endif,这些指令告诉汇编器根据表达式的值条件汇编一块代码。,.if,表示一个条件块的开始,如果条件为真就汇编紧接着的代码。,.elseif,是表示如果,.if,的条件为假,而,.elseif,的条件为真,就汇编紧接着的代码。,.endif,结束该条件块。,.,loop/,.,break/,.,endloop,这组指令告诉汇编器按照表达式的值循环汇编一块代码。,.,loop expression,标注一块循环代码的开始。,.break expression,告诉汇编器当表达式为假时,继续循环汇编;当表达式为真时,立刻转到,.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,其他符号指令,:,.label/.struct/.endstruct/.tag,5,)其他汇编指令,.,align,使,SPC,对准,1-word,到,128-word,的边界。,.,algebraic,告诉编译器文件包含了算术汇编源代码。,.,end,结束编译。,.,mm