摘 要: 通过一个设计实验,讨论了TMS320C80通过传输控制器与几种常用存储器的接口方式,提出了接口设计中应该考虑的一些问题。
关键词: TMS320C80 存储器接口 译码
多媒体视频处理器 TMS320C80是新一代的数字信号处理芯片,其内部集成有四个DSP(PPs)和一个RISC主处理器(MP),一个传输控制器(TC),一个视频控制器(VC)和50K字节的SRAM等资源。处理能力每秒达20亿次操作(2BOPS),具有高度并行性,高计算精度和通用性。该芯片可实时实现新一代的视频压缩和解压缩,可广泛应用于会议电视,高速电信,多媒体,虚拟现实,保密,雷达和声纳处理等应用场合,在军事和民用方面有着广阔的应用前景。
由于C80的多处理器结构,高速处理能力和全可编程性,使C80可以适应主处理器或者协处理器等范围广泛的应用系统要求。
C80应用系统包括主处理器和与之相连的保证处理器能完成既定功能的外部器件,存储器为重要的外部器件之一。由于C80没有内部ROM,系统的启动靠加载在存储器高端区的引导程序,使系统配置程序运行,故在一个应用系统中,EPROM必不可少。在程序调试和与主机的通信中,常常使用SRAM或者双口RAM。双口RAM由于有中断接口,信号灯机制以及示忙电路,方便了C80与主机或者外设进行的通信和数据交换;电路中使用高速SRAM芯片,起到补充C80片内SRAM的作用,在程序调试过程中,可加载应用程序在其中,使系统能够全速运行。DRAM与片内快速RAM的组合即保证了系统的高性能,又减少了系统成本。对于不同的系统应用,C80需要外接的存储器也不同。本文对SRAM、双口RAM、EPROM、DRAM等存储器与C80的接口进行了分析。
1 外部存储器接口
1.1 接口概述
C80与外设的接口由传输控制器(TC)处理,TC通过外部存储器接口访问片外存储器和外设。TC内的一个状态序列器产生与各种RAM和外设接口的周期控制信号,这些周期控制信号经过外部逻辑器件译码生成访问识别信息和存储器访问控制信号。访问识别信息为AS,BS,CT,PS,UTLME等,它们输入传输控制器用以配置外部存储器访问时序,使C80可动态地选择存储器类型,根据存储器的速度选择最佳访问时序;存储器访问控制信号输入外部存储器控制端口,使C80能对外部存储器进行正确的操作。外部存储器接口信号定义见参考文献2。
C80与存储器接口框图如图1所示。PLD为控制逻辑产生部分,产生C80需要的存储器识别信号以及C80对存储器的访问控制信号。总线缓冲收发电路用于缓冲数据线,地址线和控制线,以及用于C80与5V外部器件的接口电平转换(3.3V到5V)。存储器电路包括SRAM,双口RAM,DRAM,EPROM。
C80与存储器接口可分为地址通道,数据通道和控制通道。地址通道由地址总线组成,根据AS值的不同,决定地址线连接方式。数据通道由数据总线组成,根据BS值的不同,决定数据总线宽度;系统启动时,在系统复位信号的上升沿采样UTIME信号,确定C80运行时使用何种数据输出模式,当UTIME=0时,工作于大端模式(Big_endian,反之,工作于小端模式(Little_endian)。C80的数据输出模式在下次系统复位前一直有效。数据总线和CAS信号对应关系如表1。
控制通道由存储器读写信号,选通信号以及C80访问识别信息组成。C80端读写信号通过缓冲器与存储器读写端口相连。为简化接口逻辑,片选信号采用部分译码方式产生,仅对C80地址线高4位A[31:28]进行译码。存储器地址分配如表2所示。
C80访问外部存储器时,行时间状态码在列访问期间将会改变;C80访问DRAM时,由于地址总线复用,其最高位地址在列访问时无效。故参与存储器译码的地址信号和状态信号必须用C80输出的RL信号来锁存,设锁存后输出的地址信号为LA[31:28],锁存后的状态信号为LS[5:0]。
另外,由于C80并不是每次都输出一个有用的地址(如刷新操作),总线冲突有可能发生。因此,行时间状态码信号STATUS必须参与译码,用来指示C80的时序类型。故片选信号译码时需要加入下列信号:
!ENB=! REF &!SDRAM_CYC(1)
这里:
REF=!LS5 & !LS4 & !LS3&!LS2 & LS1 & !LS0
″刷新周期
SDRAM_CYC=!LS5 & !LS4 & !LS3 & !LS2 & LS1 & LS0 #!LS5 & !LS4 & LS3 & LS2 &!LS1 & !LS0
″SDRAM周期
在行时间的r2状态,C80采样UTIME,如果UTIME=0,C80在该页工作于用户定时方式。此时,RAS和CAS变化的方式改变。在每个列访问的c1周期,RAS有一个周期的低电平,以表明每个列访问的开始,CAS选通对整个寻址时间都有效。因此,在用户定时方式,RAS参与片选信号译码。
1.2 存储器接口电路设计
1.2.1 SRAM接口
如前述,CE译码由高位地址和状态码产生,如果UTIME=0,为了保证TC输出有效的数据,在写周期,CE译码应该加上RAS信号,以便对于不同的列访问,CE信号有相应的变化。CE译码如下:
! CEx=!ENB &LA[31:28] & !RAS & !CAS &
W# !ENB&LA[31:28] & !CASx & W
C80的地址线,数据线,W信号经过缓冲接于SRAM的相应端口;SRAM端OE信号直接接地;经过外部逻辑器件译码后生成的CEx信号送入SRAM的CE端。
1.2.2 双口RAM接口
双口RAM用来实现C80与主机或者外设的通信和数据交换。由于有中断接口,信号灯机制以及示忙电路,故与C80的接口比较复杂。
C80的地址线,数据线,W信号经过缓冲接于双口RAM的相应端口,其CE信号经过外部逻辑器件产生,送入双口RAM的CE端。对于16位存储器,有高低字节选通信号UB,LB。根据C80输出数据模式,缓冲后的CAS信号接UB,LB端。双口两边有BUSY信号,中断信号以及SEM信号。当双口两边器件同时访问同一存储单元时,示忙信号BUSY有效,表示有一个访问冲突发生。当一边向双口高端地址(FE和FF地址)写入数据,另一边的中断信号有效时,向所连接的器件指示有消息需要传递。双口的SEM信号与用户软件结合,可把双口存储空间最多划分为8个部分。利用双口RAM的中断信号和SEM信号可大大提高C80与外设或主机的通信能力。由于SEM信号和CE信号利用同一套地址和数据线选通双口RAM上的不同的地址空间,故两个信号不能同时有效。当CE信号有效时,C80对双口进行正常的读写操作;当SEM信号有效时,利用双口RAM低3位地址,可用于读写8个SEM空间。此时,只使用数据线D0。如果SEM空间写入数据1(D0位),读出数据为1,表明申请存储空间成功;否则,表明该存储空间已被另一边的器件占用。实现SEM信号有两种方法,其一为当需要对SEM空间访问时,C80通过命令口使SEM信号置低,同时外部逻辑使CE信号无效,当C80对双口RAM空间访问时,由于CE信号无效而SEM信号有效,C80能够读写SEM空间的值。当SEM信号无效时,进行正常的双口存储空间访问。双口RAM译码逻辑方程如下(UTIME=0):
!DPRAM-CS=LA[31:28] & !ENB & !RAS& !W& SEMR # LA[31:28] & !ENB & W & SEMR (3)
其次,可利用系统高位地址译码选通SEM空间和双口RAM空间。逻辑实现如下所示(UTIME=0):
!DPRAM-CS=LA[31:28] & !ENB & !RAS & !W #LA[31:28] & !ENB & W
!SEM=LA[31:28] & !ENB
1.2.3 EPROM接口
EPROM空间必须分配到C80地址空间的最高端,因为MP复位时,从0XFFFF FFF8开始执行程序。通常,这个地址上存储一个带有32位立即数的排空延迟槽的分支或跳转指令,系统复位后,程序可转移到所需的存储空间继续执行。
EPROM的G端接相应的CAS端。经过缓冲后的地址线和数据线直接与EPROM的地址和数据端口相连,EPROM的输出允许信号OE,由外部逻辑产生。OE译码如下:
!OE=LA[31:28] & !ENB (6)
1.2.4 DRAM接口
与以往DSP器件不同,C80可以不通过外部逻辑而直接支持对DRAM的访问,故使得C80对DRAM的接口逻辑变得与访问静态存储器一样简单。C80的W信号和CAS信号经过缓冲后直接与DRAM相应端口连接。C80的8个CAS信号用于选择字节,对于64位的DRAM,C80的8个CAS信号全部有效,相应地C80逻辑地址的低3位不使用。DRAM模块上的PD信号指示存储器的大小和速度。通常,DRAM模块由数片SIMM组成,对于4M×n组织的SIMM,查C80地址移位表,对应的AS=100,每个SIMM的最低位接C80的A14。使用16MB的SIMM时,C80的A14~A24与DRAM的地址线连接。当C80访问DRAM时或者C80对DRAM刷新时,DRAS信号有效。刷新时,对于比较大的存储空间,可利用刷新时输出的刷新伪地址的低位参与译码来划分刷新空间,本设计使用16MB的SIMM组成32MB的DRAM,当A16=0,A17=0和A16=0,A17=1时刷新DRAM空间。DRAS译码如下:
!DRASO=(!RAS& LA[31:28] & !ENB & !BANK) #!RAS & REF & !LA17& !LA16) (7)
!DRAS1=(!RAS & LA[31:28] & !ENB & !BANK) # (!RAS & REF & LA17 & !LA16) (8)
BANK指示存储器大小信号,由PD信号和选通存储器子模块的地址信号产生。当SIMM为4MB或者16MB时,只有DRAS0有效;当SIMM为8MB或者32MB时,DRAS0,DRAS1都有效。在本设计中,DRAS0接DRAM模块的RAS0和RAS2端,DRAS1接DRAM模块的RAS1和RAS3端。
1.3 存储器识别信息的产生
为了能与外部存储器接口,C80必须知道存储器的类型。外部逻辑电路在行时间中输入的周期状态信息标识了存储器地址线移位数,数据总线宽度,访问速度,页大小等,这些输入为AS、BS、CT、PS、UTIME,称之为存储器识别信息。只有读取了这些参数值,C80才能以正确的方式访问存储器。
如前所述,存储器识别信息从C80输出的地址信号和状态信号经外部逻辑译码得到,由于C80必须在行时间的r2状态读取这些值,故存储器识别信息译码不能使用经过锁存后的地址信号和状态信号,否则,将不能满足C80的时序要求。
对于快速SRAM和DRAM,C80使用页模式访问,可以大大提高系统速度。对于慢速器件,如EPROM,页模式被禁止,即PS=1000。当C80与静态存储器连接时,地址不需要移位,故C80的地址线直接对应于存储器的地址线(应考虑总线宽度),此时,AS=000。C80访问各存储区时,识别信息定义如表3。
表中不同类型存储器的识别信息译码逻辑的HDL描述如下:
·RADIX 2;″二进制
AS=[AS2。。AS0];″地址移位选择
BS=[BS1。。BS0];”数据总线宽度
CT=[CT2。。CT0];″列访问时序
PS=[PS3。。PS0];”存页面大小
REC=[AS,BS,CT,PS,UTIME];“存储器识别信息
REC-DRAM=[100,11,111,1100,1];
“DRAM区存储器识别
REC-SRAM=[000,10,110,1010,0];
“SRAM区存储器识别信息
REC-DPRAM=[000,01,110,1100,0];
“双口RAM区存储器识别信息
REC-EPROM=[000,01,111,1000,1];“EPROM区存储器识别信息
REC-SEM=[000,01,111,1000,1];“SEM区存储器识别信息
@RADIX 1010;
S=[STATUS5..STATUS0];
AL=[A17..A16];
REF=2
AL1=0
AL2=2
A=[A31..A28];"使用高4位地址译码
DRAM-AV=10;“DRAM地址区
SRAM-AV=11;“SRAM地址区
DPRAM-AV=12;“双口RAM 地址区
EPROM-AV=15;“EPROM地址区
SEM-AV=13;“SEM区
Equations
when((A==SRAM-AV)#(S==REF & (AL==AL1 # AL==AL2)))
then REC=REC-DRAM;else
when ((A==SRAM-AV) & (S==REF & (AL==AL1# AL==AL2)))
then REC=REC-SRAM;else
when ((A==DPRAM-AV) & (S=REF & (AL==AL1# AL==AL2)))
then REC=REC-DPRAM;else
when(((A==EPROM-AV) # (A==SEM-AV)) & (S==REF & (AL==AL1 # AL==AL2)))
then REC=REC-EPROM;
根据C80不同的外设,可以很方便地对识别信息进行修改,以适应不同的设计要求。
2 时序分析
C80的地址线,数据线,W信号,CAS信号经过缓冲与存储器连接,应考虑这些信号线的延迟;由于有些控制信号由外部逻辑产生,应考虑其最大的逻辑延迟。时序分析,主要是把存储器和C80的时序参数加上外部逻辑器件的最大最小延迟综合考虑后的结果。经过分析,接口时序满足要求。
总之,本文详细分析了C80与几种常用存储器的接口关系。这些结果可作为电路设计时的参考。由于C80的TC支持多种外设,如FIFO,VRAM,SDRAM,限于篇幅,本文未进行讨论,但其接口原理和分析方法类似。读者可在本文的基础上,结合应用需要,设计出满足要求的各种外设接口。
参考文献
1 The User`s Guides of The TMS320C80.TI公司,1996
2 The User`s Guides of Transfer Controler of The TMS320C80.TI公司,1996
3 The User`s Guides of Transfer Controler of The TMS320C80.TI公司,1996
(收稿日期:1999-06-21)
上一篇:PCI设备Windows通用驱动程序设计
下一篇:PSD8xxF的在系统编程技术
- 热门资源推荐
- 热门放大器推荐