学海荡舟手机网

主页 > 实用文摘 > 教育文摘_07 > > 详细内容

PSD913F2在一种电台中的应用_嵌入式系统论文

摘要:随着电路设计向着小型化的方向发展,psd(programmable system devices)器件在各种场合的应用越来越多,已经有很多成型的产品出现;而且随着器件的更新换代,新的psd器件也不断地涌现,可以满足绝大多数客户的应用需求。本文以最近生产的一种在系统可编程(isp)器件psd913f2为例,详细说明如何对它进行开发使用。

    关键词:isp iap 可编程系统器件

psd913f2具有128kb的主闪速存储器,32kb的第二闪速存储器和2kb的sram,可进行在系统编程isp(in-system-programming)和在应用重编程iap(in-application re-programming)。存储器isp意味着存储器在编程时没有mcu的参与(off line),而存储器iap意味着存储器在编程时有mcu的参考(on line)。iap只对存储器的部分进行编程,不对psd的配置和可编程逻辑部分进行编程;而isp则可以对存储器的全部进行编程。

利用psd913f2进行产品开发,应用2片式(psd+mcu)设计方案,即可以满足通常设计的需要。比较方便地地方就是psd913f2具有jtag口,可以实现在系统编程,这样对电路的设计和程序的修改均具有非常大的灵活性。

1 psd913f2的组成结构

psd913f2的组成框图如图1所示。

由图1可以看出,psd913f2具有丰富的i/o资源。其中pc口可以用做专用的jtag口,在这种情况下,就不能再进行引脚复用。当i/o资源紧张时,用做jtag口的引脚也可以进行引脚复用。

图1 psd913f2的顶层框图

2 psd913f2在一种电台中的应用实例

在某种电台的设计中,我们采用了psd913f2的2片方案,其mcu用的80c196kb,其部分电路如图2所示。

2.1 psd913f2的express中的配置

psd913f2具有在系统可编程的jatg口,这样对于psd芯片的重配置和应用程序的修改带来很大的方便。图2电路中,利用psd913f2作为外部程序存储空间,提供外部电路所需的片选信号及带有锁存功能的i/o输出。

首先,通过psd的应用软件psdsoft express对该2片方案进行选择配置,选定所用的mcu为80c196kb,并选定所需的工作方式等。然后,在express流程图的define psd pin /node function(定义psd的引脚功能)项对psd913f2芯片进行引脚的功能配置。在这里根据电路所需的特性要求配置如下:

①pa口作为地址锁存输出,输出低8位地址。由于该设计需要的ram空间较大,psd本身所带的2kb sram不能满足设计的要求,故需在外部扩展一片ram。这时需要用到锁存的低位地址输出,而psd913f2的pa口和pb口都具有地址存输出的功能。在地址总线和数据总线复用时,一般选择pa口作为地址锁存输出。

②pc口作为专用的jtag口,利用其全部的6个信号,可以加快程序下载的速度。

③pb口的配置或用做片选或用做具有锁存功能的i/o输出。其pb0为外部ram的片选adram;pb1为外部dtmf的片选addtmf;pb2为外部dsp芯片的片选hpien;pb3为dsp主机口的一个锁存信号hrw8;pb4、pb5为继电器控制信号,也即用做具有锁存作用的i/o mode输出;pb6、pb7是控制外部模拟开关的信号,也是具有锁存作用的i/o mode输出。

④其它的控制信号如wr、rd、ale等按使用手册的说明进行配置。

将以上这些引脚配置完毕后,下一步进行内存映射的分布。根据实际需要,程序空间25k以内,不需要利用分页。在片选信号的地址分配如下:

①rs0:8000h~87ffh.可读写,作为数据空的一部分。

②csiop:1000h~10ffh.这段地址共256字节,用做psd913f2内部资源的片选,其中1000h为内部资源的基地址。这段地址的分配在整个psd操作过程中最为重要,一定要注意不能和其它地址发生冲突;尤其对96系列的mcu,数据和程序共享64k空间,而不像51系列那样,数据空间和程序空间各64k。

⑤fs0:100h~3fffh.由于main flash中要求每个片选的范围是16k,所以程序空间的划分只能以16k为一段进行划分。同理,可得到fs1的地址范围是4000h~7fffh.这两段程序空间不能放在一个fs0内,否则仿真就会发现程序每隔16k就会重复。这种空间划分根据不同的psd型号也会有所不同,如:psd934的片选范围就是以32k为一段。

④adram:8800h~efffh。这是外部扩展ram的空间,紧跟内部2kb的sram地址分配。

⑤addtmf:f000h~fbffh。作为外部drmf发生器的片选用。

⑥hpien:fc00h~ffffh。hrw8地址也是在这一段。

至此,应用express配置psd913f2的工作已经基本上结束了。如果还需要进行iap,则还需要生成用于iap的c程序,经过修改后再嵌入式到自己的应用程序中。本例不需要进行iap,在不需要加载程序时,可以越过merge mcu/dsp firmware with psd(嵌入mcu或dsp主程序)选项,直接进行最后一步,通过isp利用flashlink将配置下载到psd内。

    2.2 psd913f2在应用程序中的初始化

psd913f2的正常工作,还需要在应用程序的开始对端口的功能寄存器进行初始化操作。通过psd913f2的使用手册,可以查出各端口寄存器相对于csiop的偏移地址。利用csiop的基础加上偏移地址,就可得到该端口寄存器的地址。根据以上的配置,psd913f2在应用程序中的初始化程序如下:

;csiop在1000h~10ffh

psdpain equ 1000h ;字节读操作

psdpaout equ 1004h ;字节写操作

psdpacnt equ 1002h ;地址输出

psdpadir equ 1006h ;输出模式

psdpadrv equ 1008h ;cmos模式

psdpbin equ 1001h ;字节读

psdpbout equ 1005h ;字节写

psdpbdrv equ 1009h ;字节

psdpbdir equ 1007h ;字节

ld cx,#psdpadir

ldb al,#0ffh ;输出模式

stb al,[cx]

ld cx,#psdpacnt

ldb al,#0ffh

stb al,[cx] ;地址输出

ld cx,#psdpbdir

;output mode(pb4,pb5,pb6,pb7)

ldb al,#0f0h

stb al,[cx]

ld cx,#psdpbdrv ;开漏

stb al,[cx]

ld cx,#psdrbcnt

ldb al,#0

stb al,[cx] ;i/o模式

3 psd913f2使用中应注意的问题

在上面的配置中可以发现有两个片选的配置地址重叠,那显了所需信号时序的要求所设。外部dsp所要求的读写时序如图3所示。

由时序图可以看出,数据的读写操作在hrw8的上程式沿有效,其中hpien为片选使能端。hpien的产生可以由上面引脚定义中的地址设定,不用附加任何逻辑,这样就可以产生一较宽的低脉冲;而hrw8的上升沿也设为片选引脚,它的地址就可以和hpien的地址范围相重叠,然后附加上读写信号的逻辑,可以产生一较窄的低脉冲,类似于读写信号,这样利用其上升沿就可以达到手册所提出的时序要求。经实践检验这种方法是完全正确的,另外,在使用psd913f2时,还需要注意的一些问题如下:

①jtag口要利用其全部的6个信号,这样编程下载时可以加快下载速度。供给jtag口的电源和地之间要加一0.01μf的电容,且6个信号线和电源需用10kΩ的电阻进行上拉。

②用做具有锁存作用的i/o口,在外部要用10kΩ的电阻进行上拉,在应用程序中把这些端口初始化为开漏输出。这样才能正确利用其锁存作用,否则只能产生很窄的脉冲,脉宽很窄而使引脚失去锁存功能。

③mcu和psd913f2的复位要分开,复位的先后顺序应该是psdf在先,mcu在后,才能保证psd正常工作。两个复位在一起时,当复位的速度设计得比较低时可能反应不出来。如果mcu的复位较快,就会出现问题。在本例中,mcu的复位和psd的复位分开操作。

④用仿真器对psd的配置功能进行仿真时,一定要注意将csiop段地址放在用户板上,否则psd器件不会工作。另外,利用仿真器不能仿真psd的地址锁存作用。遇到这种情况,在仿真时,需要地址锁存的那段地址可放在系统板内。在最后下载应用程序时,利用mcu的操作,psd的地址锁存功能就可以起作用。

4

随着psd器件的发展,它的内部flash和sram越来越大,i/o口资源越来越丰富,速度也越来越快,完成可以满足常用mcu的dsp的开发应用,其isp和iap功能也在很大程序上方便了使用者。在电路设计小型化和产品的维护方面,具有非常大的优势,在以后的应用中一定会越来越广。