《[互联网]8 DSP系统设计.ppt》由会员分享,可在线阅读,更多相关《[互联网]8 DSP系统设计.ppt(77页珍藏版)》请在三一办公上搜索。
1、DSP系统设计,一、DSP方案论证和系统设计,二、硬件电路设计,三、BOOT设计,四、主从应用系统的设计,五、EVM板工作原理概述,一、DSP方案论证和系统设计,1.方案的优越性2.系统需求分析3.硬件方案选型4.软件方案选型,1.方案的优越性,高速,专门为运算密集型而设计,目前速度已达到亿次每秒。高可靠性,也就是高重复性。例如雷达滤波器。性价比高。可编程性好,有灵活的可编程平台,便于更新算法。例如:Modem从28.8K升级到33.6K,就是利用程序分装,将大部分程序存在FLASH中,可用编程方法升级。目标产品的高性能,对重要技术发展有很大影响。例子:硬盘技术。,)建立项目的目标需求分析的目
2、的就是我们究竟要做什么?把要做什么做一个比较细的划分,包括:a)画一个DSP系统的功能框图b)作原理图设计,得到一张网表c)做PCB设计d)调试,2.系统需求分析,2).具体的需求分析:(1)对一个物理上的DSP系统,要关注DSP系统处理的模拟带宽、动态范围、信噪比、采样定理、香农定理;(2)实时性要求;(3)评价算法的复杂度。举例,胎儿的心电监护是一个典型的自适应滤波的应用;,(4)精度;(5)成本;(6)可靠性;(7)方便开发和使用;(8)与其它系统的配合;如:设计PC机上的DSP卡,就应注意PC机的环境,如何与PCI总线打交道的问题等;(9)系统的可升级性和可移植性;等等。,3).决定从
3、哪一层开始介入开发4).目标的区分(1).目标是产品a.通用评估板b.专用芯片(2).目标是项目进行系统集成,(1).尽量采用成熟的通用的算法进行技术集成在工程上要防止别出心裁,在算法设计上同样适用.在做基础研究时要力求创新,但在工程上要尽量使用成熟可靠的设计。(2).尽量使用一些工具,而不是用原始的方法去做。,5).DSP算法的验证,SPW(Signal Process Workstation),即信号处理工作站,这是Cadence公司的产品.包含以下部分:CGS(Code Generate System),当你完成算法的模拟以后,它会把算法的C语言源程序给出来。HDS,它是将算法生成VHD
4、L语言,便于硬件设计。专用算法,如雷达、GSM。,目前市场上常见的工具,(3).C语言编程,用PC机验证.(4).移植(5).运算量的分析指标就是多少个MIPS,至少要估出一个上限。,1).DSP的实现方式a.通用的DSP芯片b.专用DSP芯片c.FPGAd.存储器等其它方法例子:用存储器实现乘法器,3.硬件方案选型,2).DSP的周边器件主要是A/D,D/A,考虑多高的采样频率,采样精度;需要多大的存储器;对外通信的接口和通信方式。,3).多处理器件的通信通信的常规方式有:双口RAM。它是一个特殊的RAM,有两套地址线,两套数据线,两套读写,两个CPU,可以很透明的访问.但价格贵,容量小。双
5、址RAM。这是双口RAM的变形,类似于“乒乓”方式工作,可以用总线方式切换FIFO(先进先出)双向I/O高速串口标准接口,4).供电方式多电源,电压供电在一块板子上可能有多电源,5v,3.3v,2.5v,1.8v,这些电压都可能存在,在有A/D,D/A时,还要考虑模拟电源,最好将模拟和数字电源分开。模拟电源采用DC-DC方式,为了防止高频干扰,最好采用稳压方式。,电流供电最经典的方式是恒流源方式,如电话机的供电方式。电池供电 如手机,MP3等便携方式耦合供电 如鼠标的供电方式,5).可测试性和可维护性硬件方案无论是自己设计还是购买,都需要注意这个问题.特别是产品,由于是生产线造作,特别要注意设
6、计要方便生产线生产。,1).全汇编方案,这种方案只适用于比较小的程序。2).全高级语言,这种方案的优点是结构性,可维护性很好,但代价是效率很低,主要是C语言编译器的效率太低。3).混合语言编程,主程序全部用C语言编写,这样结构性很好;需要提高速度的地方,用汇编写,用C语言调用。这是目前主要使用的编程方式。,4.软件方案选型,4).模块化设计5).尽量购买现成的算法模块例如:TI推出了一个Express DSP环境,也就是在CCS(Code Computer Studio)环境下定义了一个算法标准,对TI DSP算法的输入输出,变量调用等规定了一个算法框架。在写算法时都按照Express DSP
7、框架,有利于工艺上的应用。购买成熟算法,可以花钱买时间,加快项目进度。,DSP系统的设计过程,根据应用系统的目标确定系统的性能指标、信号处理的要求用数据流程图等来描述;根据系统的要求进行高级语言的模拟;设计实时DSP系统,包括硬件设计和软件设计两个方面;硬件和软件调试;软件脱离开发系统而直接在应用系统上运行。,DSP系统的设计流程,二、硬件电路设计,一个DSP的应用系统,既可以是独立的DSP应用系统,也可以是有普通MPU一起构成的主从系统。一般说来,常规的DSP应用系统都具有如图所示的结构。对于一个DSP应用系统,其硬件设计主要有如下几个部分:(1)复位电路;(2)时钟电路;(3)外部存储器与
8、并行I/O接口电路;(4)串行I/O接口电路;(5)BOOT设计。对于DSP的主从应用系统,则还要考虑主从微处理器之间的通信接口问题。,DSP应用系统结构框图,在设计54x系列DSP的应用系统时,可以采用如图所示的DSP的电路框图。,为使芯片初始化正确,一般应保证RS为低至少持续5个CLKOUT周期,即当速度为25ns时约为125ns。但是,由于在上电后,系统的晶体振荡器往往需要几百ms的稳定时间,所以,RS为低的时间主要由系统的稳定时间确定,一般为100ms200ms。图(a)为一简单的复位电路,其位时间由R和C确定。取R100k,C4.7uF,复位时间约为167ms,满足复位要求。为提高可
9、靠性,图(b)所示的电路增加了一个斯密特门电路使复位。,1.复位电路,由于DSP系统的时钟频率较高,在运行时难以避免发生干扰和被干扰的现象。严重时系统会现死机或程序“跑飞”现象。为了克服这种情况,除了在软件上作一些保护措施外,硬件上也必须作应的处理。硬件上最有效的保护措施就是采用所谓的“看门狗”(Watch dog)电路。“看门狗”电路就是具有监视功能的自动复位电路。这种电路除了具有上电复位功能外,还具有监视系统运行并在系统发生故障或死机时再次进行复位的能力。右图所示的电路就是具有“看门狗”的复位电路,具有“看门狗”的复位电路,DSP提供时钟的最简单、常用的方法是利用DSP芯片内部提供的时钟振
10、荡电路。在DSP芯片的引脚Xl和X2/CLKIN之间接一枚晶体,如图所示,即可为DSP产生稳定的时钟信号。但应该注意的是,时钟电路的走线应尽量地短,以避免产生高频辐射干扰。另一种更简单可靠的方法是采用成品的晶体振荡器电路。这是一种厚膜电路,其内部已封装好晶体和电容以及相应的电路,只需要加上电源,在其输出端就可以得到所需的时钟。用于DSP系统时,从引脚X2/CLKIN输入时钟信号,引脚X1悬空即可。电路如图所示。,2.时钟电路,3.外部存储器与并行I/O接口电路,外部存储器分为ROM和RAM两类。ROM包括PROM、EPROM、EEPROM和FLASH MEMORY。这一类存储器主要用于系统存储
11、程序和常数表格,一般映射在程序存储器空间。RAM主要是静态RAM(SRAM),常常采用快速RAM,既可用于存储程序,也可用于存储数据。DSP在访问存储器时,是由控制信号MSTRB和R/W控制下进行的;如果访问程序存储器空间,则还有PS信号;如果是访问数据存储器空间,则还有DS信号。而在访问I/O口时,则在控制信号IOSTRB和R/W的作用下进行。R/W信号控制访问的方向。,在设计外部存储器的接口时主要考虑两个问题:一是速度问题,二是DMA(直接存储器访问)接口问题。先讨论存储器接口的速度问题。对于快速的存储器,即存取时间20ns的器件,可以直接与54x系列DSP接口;而对于慢速存储器器件,则D
12、SP在访问时需要插入等待状态。由于54x系列具有内部的可编程等待状态发生器,所以不需要外接其它的逻辑电路便可与慢速存储器接口。与其它系列的DSP相比,54x与存储器的接口更方便、更简洁。下图为DSP与存储器接口的电路。,控制信号HLOD和HLODA用于DSP的DMA接口。DSP在接收到外设提出的DMA请求信号HLOD后,DSP交出总线和地址总线的控制权(使数据总线和地址总线为高阻态),再把HLODA拉低,指示外设可以接管数据总线和地址总线,进行DMA操作。I/O接口的方法与外部存储器的接口方法相同,只是采用控制信号IOSTRB代替MSTRB。,54x系列的同步串行I/O接口和缓冲串行I/O接口
13、通常用来与ADC和DAC或CODEC接口。偶尔用来与串行存储器或其它微控制器等的接口。而时分多路(TDM)串口则主要用于多微处理器之间的通信。,4 串行I/O接口电路,举例 C54x与TLC320AD50C的接口(1)音频模拟接口芯片TLC320AD50C。TLC320AD50C是TI生产的-型单片音频接口芯片,内部集成了16位A/D和D/A转换器,采样速率最高可达22.05kHz,其采样速率可通过外部编程来设置。在TLC320AD50C内部数模转换之前有插值滤波器,而在模/数转换之后有抽样滤波器,接收和发送同时进行。TLC320AD50C与TMS320VC54x之间采用串行通信方式,有两种数
14、据传输模式;16位传输模式和15+1位传输模式。若采用15+1位传输模式,其中的D0位用来表示二次通信。,TLC320AD50C的数据传输时序图 该器件采用两组模拟输入和两组模拟输出,有足够的共模抑制能力,可以工作在差分或单端方式。当模拟输出时,输出端常接600负载。TLC320AD50C的工作由7个控制寄存器控制。,控制寄存器1:软件复制以及DAC的16位或15+1位模式选择。控制寄存器2:ADC的16位或15+1位模式选择,控制寄存器4:选择输入和输出放大器的增益。通过选择N确定采样速率fs。如果选择PLL(D7=0),则fs=MCLK/128N,否则(D7=1),fs=MCLK/512N
15、。其中,N=18。该器件工作方式的设定和采样频率均可由外部编程来实现,所以TLC320AD50C使用灵活、设置容易,与TMS320VC54x的连接易于实现。,(2)C54x与TLC320AD50C硬件连接 数据经C54x的McBSP与外设TLC320AD50C的通信通过DR和DX引脚传输,控制信号则由CLKX,CLKR,FSX,FSR等4个引脚来实现。CPU读取DRR1,2的数据实现接收,并且可以对DXR1,2写入数据实现发送。接收和发送帧同步脉冲由外部脉冲源驱动。当FSR和FSX都为输入时(FSXM=FSRM=0,外部脉冲源驱动),McBSP分别在CLKR和CLKX的下降沿检测,且DR的数据
16、也在CLKR的下降沿进行采样。16位的串行口控制寄存器SPCR1,2和引脚控制寄存器PCR用来配置串行口;接收控制寄存器RCR1,2发送控制寄存器XCR1,21分别设置接收和发送的不同参数,如帧长度、每帧的数据长度等。另外,McBSP还可以通过(R/X)DATDLY设置接收和发送数据延迟,通过(R/X)PHASE设置接收和发送的多阶段。,(3)通信协议。两种格式:一次通信格式和二次通信格式。一次通信格式的16位都用来传输数据。DAC的数据长度由寄存器I的D0位决定。启动和复位时,默认值为15+1位模式,最后一位要求二次通信。如果工作在16位传输模式下,则必须由FC产生二次通信请求。二次通信格式
17、则用来初始化和修改TLC320AD50C内部寄存器的值。在二次通信中可通过向DIN写数据来完成初始化,AD50C与C54x硬件连接图,TLC320AD50C的MCLK外接8.192 MHz的晶振,TMS320VC54x的FSX由TLC320AD50C设置。如果选择D7=0,N=8,则采样速率为8kHz。,二次通信格式如下:,系统复位后必须通过DSP的DX接口向TLC320AD50C的DIN写数据,如果采用一片TLC320AD50C,只需初始化其寄存器1、寄存器2和寄存器4。由于通信数据长度为16位,初始化时应通过RCR1和XCR1设置McBSP的传输数据K度为16。考虑到AD50C复位,故可以
18、在此时间内初始化DSP的串行口。,(4)软件实现。SERIALINIT:LD#AIC_DP,DP;为AIC的复位初始化DP ST#K_RESET,AIC_IN_ RESET PORTW#AIC_ IN_RESET,K_ADDR;复位AIC STM#K_SERIAL_RETR,SPCRl STM#K_SERIAL_RETX,SPCR2;初始化串口控制;寄存器1,2复位串行口 STM#K_SERIAL_OUTRETR,SPCRl STM#K_SERIAL_OUTRETX,SPCR2;串口脱离复位 RSBX INTM;INTM=0,打开所有中断,LD#0,DPORM#(K_BRINT0|K_ BXI
19、NT0),IMR;打开BR/XINT0LD#AIC_DP,DPSTM#(-K_BRINT0),IFR;清除标记ST#K_ORESET,AIC_OUT_RESETPOPTW#AIC_OUT_RESEST,K_AIC_ADDR;脱离复位STM#K_RFW,RCR1;初始化接收控制寄存器1;设置接收数据长度为16位STM#K_XFW,XCR1;初始化发送控制寄存器1;设置发送数据长度为16位STM#K_SERIAL,PCR;设置为串口工作方式STM#K_DATA,DXR1;向DIN写数据,引起二次通信IDLE;等待串行口中断,三、BOOT设计1.概述,在TI DSP的开发环境CCS(Code Com
20、poser Studio)下,PC机通过不同类型的JTAG电缆与用户目标系统中的DSP通信,帮助用户完成调试工作。当用户在该环境下完成开发任务,编写完成用户软件之后,到DSP目标系统产品化阶段时,需要完全脱离依赖PC机的CCS环境,并要求目标系统上电后可自行启动并执行用户软件代码,这就需要用到自启动(Bootloader)技术。同时Bootloader也指由TI在生产DSP芯片时预先烧制其片内ROM中,完成该功能的一段代码名称。,2.基本原理,54X芯片是RAM型器件,掉电后不能保持任何用户信息,所以需要用户把执行代码存放在外部的无挥发存储器内,在系统上电时,通过Bootloader将存储在外
21、部媒介中的代码搬移到高速的片内存储器或系统中的扩展存储器内,搬移成功后自动去执行代码,完成自启动。当54X芯片复位时,如果其处于微计算机模式(MP/MC引脚为逻辑0),那么复位后在54X程序空间地址为0F800h处,可以通过CCS看到TI预先烧制在其片内ROM 的Bootloader这段代码。54X复位后,程序指针指向0FF80h处的中断向量表,执行指令“BD 0F800h”,即跳至Bootloader入口,开始执行Bootloader代码。在搬移用户代码之前,Bootloader会设置54X的状态寄存器,包括将INTM位置1,禁止全局中断;OVLY置1,将片内DRAM映射到程序/数据空间;和
22、设置整个程序/数据空间均插入7个等待状态,以适应可能慢速的EEPROM。,引导程序使IS信号为低,读取I/O空间地址,0FFFFh处的内容。读取的低8位的内容指定了传输的模式。引导程序选择(Boot Routine Selection,BRS)字确定引导模式。在并行EPROM模式时:选用EPROM模式时BRS字中有一个源字段SRC;在热启动模式时则有一个入口地址字段。低6位和CLKX与FSX的设置确定了串口引导中使用8位或16位格式。BRS字同样也用来确定并行I/O口模式中使用8位或16位格式。主机接口(HPI)使用INT2作为引导加载信号,如果没有INT2信号,则引导程序跳过主机接口引导模式
23、,读取I/O空间的0FFFFh处的低8位,由此确定引导模式。下图给出了引导模式的选择过程。,引导模式选择过程,开始,初始化,从I/O 0FFFFH读BRS字,热引导模式,BRS=xxxx xx00?,BRS=xxxx xx01?,BRS=xxxx xx10?,HPI引导模式,Y,Y,Y,N,N,N,串口引导模式,54X与主机之间的主机接口是8位的接口。主机和54X通过片内分享存储器交换信息。主机通过写入主机控制寄存器(HPIC)来中断DSP,而DSP则通过主机中断信号(HINT)来中断主机。主机可以响应HINT信号和清除该信号。HINT是否为低电平决定了是否选用主机接口HPI引导模式。如果选用
24、主机接口引导模式,则在外部把HINT接到INT2的引脚(如果在外部不把HINT连接到INT2的引脚,也可以在,54X读取复位矢量后的30个COLOCKOUT周期内给INT2发出一个合法的中断信号来选择主机接口引导模式)。使HINT为低电平,即设置中断标志寄存器IFR中的相应位。在HINT变低后20个CLKOUT周期后读出IFR中的位2,如果该位被置位(即有INT2信号),引导程序转向HPIRAM的起始地址(即程序空间的1000h处),并从该地址起开始执行程序。如果位2没有被置位,则引导程序通过HPI引导模式并读取I/O空间0FFFFh处的BRS字。BRS的低8位指定了引导模式,而其它位被忽略。
25、如果选择了主机接口模式,主机必须在DSP退出复位之前把代码下载到片内的HPIRAM中。引导程序在整个过程中使HPI保持在分享模式(SMODE1)。一旦引导程序使HINT变低,HINT就一直保持为低,直到主机通过写入HPIC清除它为止。,3.主机接口(HPI)引导模式,4.16位8位并行存储器引导模式,Bootloader首先从I/O空间地址为0FFFFh处读取一个字的数据,并将该数据作为启动表在数据空间的起始地址。启动表起始地址处应包含用于判断8bit/16bit启动模式的关键字:对于8bit启动模式该关键字为08AAh,需要放在两个连续的8bit空间;对于16bit启动模式,该关键字为10A
26、Ah。如果Bootloader没有在启动表的起始地址处得到上述关键字,它会转到数据空间0FFFFh处再去读取一个字的数据,再将该数据作为启动表在数据空间的起始地址,再继续尝试通过该起始地址去读取上述关键字。因为Bootloader在读取启动表第一个字之前不知道存储器宽度,所以它需要检测两个位置,通过0FFFFh处得到该起始地址的低8bit,通过0FFFEh处得到其高8bit。,8位并行引导模式中的数据,16位并行引导模式中的数据,8/16位并行存储器引导模式,根据Bootloader这个特性,用户可以将启动表与其起始地址一起烧制到单片EEPROM中,即可通过单片存储器为Bootloader同时
27、提供启动表与其起始地址。另外提供给Bootloader读取的启动表起始地址为16bit寻址宽度,因此用户可将EEPROM译码在54X数据空间从04000h至0FFFFh任一地址范围内。当Bootloader在启动表的起始地址处检测到有效关键字后,则继续搬移剩余代码,然后执行程序。,.sect.DISPLAY.label DISPLAY_SRC.word08AAH;外部8位并行引导模式.word7FFFH;SWWSR,7个T.word0F000H;块切换BSCR.word0000H;XPC FOR ENTRY POINT.word 0100H;PC FOR ENTRY POINT.word02F
28、0H;SIZE OF FIRST SECTION.word0000H;XPC FOR FIRST SECTION.word0100H;PC FOR FIRST SECTION,例:5410EVM板的引导表,I/O口引导模式提供了一种异步地把程序代码从I/O口空间地址0h处传输到内部或外部的程序存储器的方法。也有8位和16位两种格式。541与外部通信时使用BIO和XF作为握手线。图给出了从I/O口空间、0h处传输代码的握手协议。,数据传输是由主机通过驱动BIO信号变低而发动的。BIO变低后,54x从I/O空间0h处输人数据,并使XF引脚输出高电平,通知主机数据已经接收且把输入数据写到目的地址。然
29、后54x在等待BIO变高后使XF输出低电平。主机通过检测XF的状态来确定下一次的数据传输。如果选择8位数据方式,则从I/O口地址0h处通过低8位数据总线读取数据,高8位不予理会。每读取两个字节合成一个16位的字。先读的是高位,后读的是低8位。,5.16位/8位并行I/O口引导模式,不管是8位方式还是16位方式,54x最先读取的两个字数据必须是目的地址 和代码长度。在XF的上升沿和写数据到目的地址之间至少需要10个时钟周期的延时。这样,在目的地址为外部存储器,DSP有足够的时间在启动下一次读数据之前关闭数据缓冲器。只有XF为高电平时,54X访问外部总线。,54x的串口引导模式可以使用缓冲串口(B
30、SP)或工作在标准模式的时分多路串口(TDM)(在引导期间)。串口引导共有8种方式,参见下图。按字长8位与16位两种格式和CLKXFSX引脚的设置决定了引导模式。采用8位字长时需要对下列控制位置位:1,接收复位信号RST(使串口0退出复位);2发送模式位TXM;3时钟模式位MCM(使CLKX由片内时钟源驱动);4帧同步模式位FSM(须由外部施加帧同步脉冲信号到FSR引脚)5格式位FO(选择8位数据传输方式)。下图给出了串口引导模式的过程。,6.串口引导模式,7.如何建立启动表,如上所述,为了完成系统自启动,需要为Bootloader提供启动表,在里面写入Bootloader需要的所有数据。该启
31、动表可以使用54X汇编语言工具包提供的16进制转换工具来生成,该工具文件名为hex500.exe。当为54X及更高版本的DSP芯片生成启动表时,需要使用hex500的v.1.2或更高版本。一类方法是使用命令文件,例如下例命令文件exam.cmd:/*exam.cmd*/Myfile.out/*输入的COFF文件名*/-e 0300h/*入口地址*/-i/*输出Intel格式文件*/-boot/*转换所有的段至启动表里*/-memwidth 8/*设置8bit的系统存储器宽度*/-o boot.i00/*输出hex文件名*/当在DOS下键入:C:hex500 exam.cmd 可以得到Intel
32、格式的16进制文件boot.i00,系统存储器宽度为8bit,程序入口地址为0300h。,DSP具有很强的数据处理功能,但其控制管理功能较弱,在许多应用场合需要采用多个处理器才能满足要求。在通常情况下,一枚DSP与一枚MCU构成的主从系统是比较理想的组合。这种组合可以充分发挥DSP和MCU的优势。在DSP和MCU构成的主从系统中,一般把MCU作为主机,DSP作为从机。设计主从系统中的关键是设计主从机之间的通信。主从机之间的通信有4种方式:半行通信、并行通信、共享有储器方式、主机接口方式。主机接口方式是54x所具有的一种专门并行通信方式。下面分别介绍前3种主从系统中常用的通信方式。,四、主从应用
33、系统的设计,1 主从系统中的串行通信接口 在DSP的主从应用系统中,如果希望采用串行通信接口,则应尽可能地选用DSP本身固有的通信协议,也就是要选用与DSP的串口兼容的微处理器MCU作为主机。这样可以取得很高的通信速度。最高数据吞吐量可高达50 Mbit/s,且其通信接口十分简单。由于DSP本身就是作为信号处理用,自然就希望有很高的数据通信量。一般说来,在DSP的主从应用系统中,主从机之间也会有较大的数据通信量,只有很少的情况下,需要不大的数据通信量。如果选用不与DSP的串口兼容的MCU作为主机,如MCS51系列的微控制器,则只能采用RS-232等通信协议。这只能适用于数据通信量较小的场合,应
34、用也较少。下面仅介绍利用DSP的I/O口线来实现异步通信的接口电路。,上图为利用54x仅有的两根口线BIO和XF实现的异步通信的接口电路。图中75188和75189是TTL电平与RS-232的逻辑电平之间的电平转换电路。75188把TTL电平转换成RS-232的逻辑电平输出,75189把RS-232的逻辑电平转换成TTL电平输入。通过软件实现RS-232的通信协议。,并行通信具有较高的通信速度,采用两片74F574锁存器来分别锁存各自要传输的数据,两片双D触发器74F74来产生握手信号。主从机通信的过程如下:,2.主从系统中的并行通信接口,54x系列DSP与MCS5l系列MCU的并行通信接口电
35、路,假定80C31要向”54x发送数据,在地址线P2.6和写信号WR的作用下先把数据写人74F574(1)。与此同时,双D触发器74F74(1)Q被置位,54x通过检测双D触发器74F74(1)中已锁存有数据。54x从74F574(1)中(其地址映射在I/O口空间)读出数据,在读出数据的同时,读出控制信号使74F74(1)复位,通知80C3l可以传输下一个字节数据。,主从系统中的共享存储器的并行通信分为两种方式:一种是主机和从机不能同时访问共享存储器的DMA方式;另一种是主机和从机可以同时访问共享存储器(当然不能同时访问同一个单元)。前一种共享存储器方式通常是利用DSP提供的DMA功能,而后者
36、则是采用双端口存储器来实现。这两种方式都具有极高的数据吞吐量。,3 主从系统中的共享存储器,DSP本身具有DMA功能,因此,如果采用两片DSP或一片DSP与另一片具有DMA功能的MCU成主从系统,则不需要增加任何逻辑就可实现DMA方式的存储器共享。由于这种方式电路简单,可靠性高,具有极高的数据吞吐量,是一种值得推荐的并行通信方式。但如果选择了不具有DMA功能的MCU构成主从系统,则电路就要复杂得多。接口电路中的关键是要对MCU的地址总线和数据总线进行隔离。所以,一般情况下,不推荐选择不具有DMA功能的MCU构成主从系统。但在特殊情况下,也可以实现高效的DMA方式的共享存储器主从系统。,在54x
37、管理数据存储器时,C51的数据和地址总线都处于高阻状态,就如同具有DMA功能一样;而当C51需要操作数据存储器中的数据时,C51就向54x发出DMA请求,54x在响应DMA请求后把总线管理权交出,由C51管理。,采用89C51与54x构成的共享存储器主从系统,第二种共享存储器的方法是采用双口RAM。而双口RAM又有两种:一是使用普通的RAM器件与特殊设计的仲裁电路结合起来构成双端口RAM电路;二是直接采用单片双口RAM器件。前者电路复杂,在速度上存在较大的困难,尽量不要采用。后者的接口电路简单,速度快,推荐使用。,下面以IDT7032单片CMOS双口RAM为例,介绍单片双口存储器的共享存储器接
38、口电路。IDT7032是高速2k8双口静态RAM,速度有20ns/25ns/35ns等3档。由图可见,它有左、右两套独立的地址线、数据线和控制线。左、右两侧的CPU均可立地访问存储器中的任何一个单元。在非竞争状态下访问存储器的读/写控制逻辑如下表所示。,IDT7032引脚图,在双侧CPU同时访问存储器的同一个单元而出现竞争时,IDT7032的内部具有的仲裁电路将确定哪侧的CPU可以访问该单元,并同时通过BUSY信号来延缓另一侧的CPU的访问在容许访问的一例的CPU访问结束后,被延缓的一侧可以对该存储单元进行访问。,该微处理器具有READY(准备好)信号端,更方便与双口RAM的接口。,采用IDT
39、7032的共享存储器的主从系统,五、EVM板工作原理概述,USB54X EVM是一块既可以单独运行又可以通过全速(FULL-SPEED)USB接口与主机连接的评估板,用户可用来检测、确定C54X系列数字信号处理器的性能是否满足实际应用的需要,同时,该评估板也是开发和运行C54X系列处理器软件的非常优秀的开发平台。评估板上使用的DSP芯片是TMS320VC5410,通过调整内核电压,此板可适用于54X全系列DSP,如TMS320VC5409、TMS320VC5416等。DSP芯片在板上能全速运行。板上配有64K-16bit 的程序/数据RAM、128K-8bit 的FLASH E2PROM、1K
40、-8bit双向FIFO、全速USB接口和具有-采样特性的A/D、D/A转换器(TLC320AD50)。因此,该评估板能够解决实际应用中的许多问题。如果用户觉得该板的配置还不能满足需求,板上设计的HPI和MCBSP扩展接口可以很方便地使该板与其它DSP、MCU等相连,以构成资源共享、并行处理的系统。,5410EVM板功能框图,该评估板主要包括DSP、电源、存储器、USB接口、-解码器和扩展接口。板上DSP支持5409/5410/5416等;电源部分提供了板上所需的各种电源;板上64K-16bit的静态存储器(SRAM)在DSP以100MHz速度运行时只需1个等待周期;128K-8bit Flas
41、h ROM映射为数据空间,用于启动时程序的自动装载(Boot Loading);USB接口实现评估板和主机的高速通信;-解码器TLC320AD50通过RCA接口输入、输出外部模拟信号;扩展接口MCBSP1可以对评估板的功能进行扩展。,USB 54X EVM板是微计算机方式(MC)下工作的。因此,它是一个独立的DSP系统,它在外部配有64K*16位SRAM,可作程序或数据存储器用,128K*8位Flash(闪存)E2PROM,存放程序和常数(如滤波器系数等),在boot loader方式下,把E2PROM中程序安装在54X程序SRAM中,并接着运行该程序。该板配有USB接口芯片,它通过1K*8位
42、的双向FIFO与54X DSP连接通信。该USB芯片是一个从USB接口芯片,可直接与PC机或笔记本电脑进行高速数据传输。另外,该板配有数据采集系统,采用LTC320 AD50芯片,它的工作过程直接由54X控制,AD50内部有一路A/D和D/A,字长16位,最高采样率22.05K。,存储器组织 EVM板上配置了64K-16bit、1等待周期的片外RAM,用作程序存贮器,为了满足特殊用户的要求,也可用作数据存贮器。另外还配置了128K-8bit的FLASH ROM 用于启动时程序的自动装载(Boot Loading)。加上VC5410片内的64K-16bit RAM,板上共有384KB的存贮器空间
43、供用户使用。,TMS320C5410内存映射图,1 程序存储器程序存储器的配置方式,由DSP的引脚MP/MC(微处理器方式/微计算机方式)和处理器方式状态寄存器(PMST)中的OVLY(RAM OVERLAY)位确定。关于VC5410的内存配置详细情况请参阅附录B或其它相关资料。引脚MP/MC由 J7的2、3引脚控制,当这两个引脚短接时,引脚MP/MC为0,否则为1。OVLY由软件设定,用于决定片内RAM是否可以由数据/程序双重寻址。片外64K-16bit RAM配置为程序存贮器,结合VC5410的内存配置情况,程序存贮器共有四种配置方式,见表1,用户可根据需要进行灵活配置。,表1 程序存贮器
44、空间配置表,2 数据存储器由于片外RAM配置为程序区,所以数据存储空间的配置比较简单,由PMST寄存器中的DROM(DATA ROM)位确定,如表2所示。片外FLASH ROM的地址为:0X8000-0XFFFF,只用数据总线的低八位,用于八位方式的自动装载(Boot Loading)。128K的FLASH ROM用32K地址分四页进行访问,页地址由I/O空间0 xxx xxxx xxxx x001b上的操作控制字提供,该控制字只有最低两位有效,见表3。上电加载程序时,使用FLASH ROM的第3页。,表2 数据存贮器空间配置表,表3 片外FLASH ROM页地址,为了满足特殊用户的要求,片外RAM也可用作数据存贮器,此时数据空间的配置如表4所示。需要特别说明的是,外部RAM和FLASH在DROM0时都占用数据空间的高32K字,在此EVM板上,我们利用I/O空间上的操作控制字对二者进行区分,当控制字的d2置0时映射为RAM,置1时映射为FLASH ROM。FLASH ROM的访问方法同上。64K字的RAM采用分两页的方法访问,页地址由I/O空间上的操作控制字提供,当控制字的d3置0时选用RAM的低32K字,置1时选用RAM的高32K字。,表4 数据存贮器空间配置表,USB5410EVM板 A/D、D/A编程,主程序:,中断服务程序:,