摘要:分析了Motorola MPC860嵌入式微处理器及数字信号处理器TMS320C6000 TM的特征,介绍了TMS320C6202DSP扩展总线与MPC860的接口实现。
关键词:DSP QUICC VLIW(超长指令字)
MPC860是PowerPC系列产品。PowerPC系列是由IBM、 Motorola和Apple联合研制的基于RISC结构的微处理器。PowerPC可运行于多种操作环境,使用的工作平台从便携式设备到服务器。 TMS320C6000系列是1997年美国TI公司推出的DSP芯片,这种芯片是定点、浮点兼容的DSPs系列。其中定点系列是 TMS320C62xx,浮点系列是TMS320C67xx,它们可以通过DSP的HPI(Host Port Interface)和MPC860相连。本文针对C6202介绍另外一种接口方法,即同步主机接口模式下C6202的扩展总线与MPC860的接口实现,其中C6202为从处理器,MPC860为主处理器。
1 TMS320C6000的主要特点
TMS320C6000系列DSP(数字信号处理器)是TI公司最新推出的一种并行处理的数字信号处理器。TMS320C6000片内有8个并行的处理单元,分为相同的两组。它的体系结构采用超长指令字(VLIW)结构,单指令字长为32bit,8个指令组成一个指令包,总字长为8×32=256bit。芯片内部设置了专门的指令分配模块,可以将256bit的指令包同时分配到8个处理单元,并由8个单元同时运行。芯片的最高时钟频率可以达到300MHz,通过片内的锁相环(PLL)将输入时钟倍频获得。当片内的8个处理单元同时运行时,最大处理能力可以达到2400MIPS。
TMS320C6000主要是为移动通信基站的信号处理而推出的超级处理芯片。200MHz时钟的C6201完成1024点定点FFT的时间只要66μs,比传统的DSP要快一个数量级,在民用和军用领域都将有广阔的应用前景。
2 TMS3206000的扩展总线
目前,TMS320C6000系列中中有C6202和C6203具有扩展总线。它们是在C6201/6701主机接口(HPI)的基础上发展起来的。
扩展总线是一个32bit宽的总线,支持与异步外设、异步/同步FIFO、PCI桥及外部主控处理器的接口。它同时还提供了一个灵活的总线仲裁机制,可以进行内部仲载,也可以由外部逻辑完成。
扩展总线从结构上可以分为两部分:I/O接口和主机接口,如图1所示。
I/O接口,扩展总线共管辖4个XCE外部空间,4个空间可以分别配置成两种工作模式:异步I/O模式和同步FIFO模式。这两种模式可以在一个系统中同时工作。异步I/O模式的接口信号时序与EMIF类似,具有可编程程度高的特点。这一模式下,扩展总线接口的4根地址信号使得每个XCE空间最多可以挂接16个外部设备。FIFO模式则提供了与同步FIFO无缝接口的能力,可以直接控制1个进行读操作的同步FIFO或4个进行写操作的同步FIFO。借助少量外部逻辑,每个XCE空间可以管理16个读操作FIFO或16个写操作 FIFO。扩展总线I/O口与DSP的其他存储空间由DMA控制器进行连接。
主机接口也有两种工和模式:同步和异步。同步模式提供了主控和从属两种工作方式,此时地地址信号和数据信号复用相同的管脚。异步模式只有从属功能,它与C6201/C6211/C6701/C6711的HPI操作完全类似,只是数据宽度为32bit。异步模式可以用来与全类似,只是数据宽度为32bit。异步模式可以用来与其他微处理器接口。扩展总线主机接口与DSP存储器的连接由DMA辅助通道完成。
在同步主机接口模式下,主机的数据与地址信号复用,并且与i960Jx兼容。目前主流的PCI接口芯片都采用i960总线作为芯片内部总线,这样C6000与PCI总线接口时,需要的外部逻辑可以减少到最少。尤其在作为从属处理器时,同步主机接口同样可以非常方便地与其他一些通用处理器接口。C6202的扩展总线还具有突发传输的能力。本文即利用这一方式实现MPC860与 C6202扩展总线的接口。
C6202处理器的工作频率最高可以采用50MHz,经内部4倍频后升至200MHz,每个时钟周期最多可以并行执行8条指令,从而可以实现1600MIPS的定点运算能力,完成1024点定点FFT的时间只需70μs。
3 MPC860介绍
MPC860 PowerQUICC是当今比较流行、性能相当优越的单片集成嵌入式微处理器,继承了以前享有盛誉的32bit 68360Quicc和68302的许多优点。它内部集成了微处理器和一些控制领域常用的外围组件,特别适用于互联网络和数据通信市场。 PowerQUICC可以被称为MC68360在网络和数据通信领域的新一代产品,提高了器件运行的各方面性能,包括器件的适应性、扩展能力和集成度等。 MPC860 PowerQUICC通信处理器可根据用户要求提供2~4个串行通信控制器、不同规格的指令和数据缓存及各种级别的网络协议支持。该产品专为宽带接入设备如:远程接入路由器、DSLAM、接入集线器、LAN/WAN交换机、PBX系统和网关等设计。
在MPC860中包括3个主要模块:PowerPC核心、系统接口单元(SIU)、通信处理模块(CPM)。PowerPC是主要的处理机单元,通常称为Embedded PowerPC核心(或EPPC),它包括缓存和存储器管理单元(MMU),在40MHz时钟时为50 MIPS指令速度;第二个主要模块为系统接口单元,它的主功能是提供内部总线和外部总线的接口;第三个主要模块为通信处理机模块,CPM在不同的通信设备如SCC和SMC上发送接收数据通信,通信设备可以独立工作。SCC和SMC也可以用于时分复用总线。
CPM模块中有一个32位RISC微处理机。MPC860有2个CPU:PowerPC和32位RISC。PowerPC执行高层代码,RISC处理实际通信的低层通信功能。2个处理机主要是通过内部存储空间配合工作。在存储器区,每个处理机都可以设置控制位、读状态位。
MPC860中有16个串行DMA单元。每一个通信设备都有一个发送DMA和接收DMA。32位RISC控制这16个串行DMA在通信设备和存储器之间传送数据。当MPC860接收数据时,串行DMA从通信设备接收数据并放入存储器中;发送数据顺序相反,串行DMA从存储器中取数据,把数据送到通信设备。串行DMA只服务CPM的RISC,但是2个虚拟的IDMA可以为用户所用。
4 扩展总线接口实现
MPC860内部集成了嵌入式的PowerPC核和使用特定RISC处理器的通信处理模块(CPM)。这个双处理器结构优于传统结构,因为CPM可以从嵌入式的PowerPC核卸出外围任务。
4.1 接口实现
同步主机接口模式下,C6202和MPC860的接口如图2所示。尽管图2中的C6202处于从方式,但还是具有扩展总线仲裁的能力,用于异步I/O和扩展总线的FIFO接口。只有当这两个设备共享总线时,MPC860内部的仲裁才被使用。
扩展总线的管脚定义
扩展总线管理 MPC860的管脚 功能定义
XCNTL A[29] MPC860用于控制信号的地址位,A31是MPC860地址总线的LSB
XBLAST BDIP 触发传输指示,XBLAST的极性(在这个例子高有效)由复位时XD[13]的上位电阻决定
XW/R RD/WR 读写存取指示,XW/R的极性(在这个例子高有效)由复位时候的XD[12]的上拉电阻决定
XD[31:0] D[0:31] MPC860用D[0:3]作为32位的接口。D0是MPC860数据总线的MSB,而XD31是扩展总线的MSB。
XCLK XLKOUT 自身(扩展)总线时钟
XHOLD 间接逻辑需与 扩展总线仲裁信号
XHOLDA BR、BG和BB连接 注意内部扩展总线仲裁已经处于使能端
XAS TS 新的转移开始指示
XCS A[28:0] MPC860的地址解码从而产生XCS信号
XBE[3:0] TSIZE[1:0]、A[31:30] 字节使能用TSIZE和A[31:30]的解码来实现
XRDY TA SETA bit在MPC860选择寄存器中设置为1,用于指示TA由外部总线产生
MPC860的内部总线仲裁处于禁止状态,相反扩展总线的仲裁处于使能状态。DSP的字节使能信号由TSIZE[1:0]和MPC860的地址线A[31:30]通过解码得到,DSP字节使能换算表如表1所示。
表1 DSP字节使能换算表
4.2 自举配置
MPC860及扩展总线把数据总线的上拉和下拉电阻用于硬件复位的BOOT配置,MPC860和DSP需要不同的上拉电阻配置。方法之一就是用总线开关(bus switch)。在这个例子中用SN74CBT16390(2个16bit和32bit之间FET复用/解复用总线开关)在复位的时候人离MPC860和 DSP的数据总线,允许每一个设备有自己不同的复位配置字。方法之二就是首先硬件复位(复位的过程中,XBUS的上拉和下拉电阻用于配置MPC860),而DSP复位应该在MPC860之后。在DSP复位之后,MPC860有效地驱动数据总线上用于配置DSP的数据值,从而DSP将被配置。
由于两个设备都可以运行在内部总线仲裁使能或者禁止方式,所以内部扩展总线仲裁(TMS320C6000扩展总线)处理总线的仲裁。不管内部还是外部的仲裁配置都在系统复位时设置。假设处于外部仲裁,那么在MPC860从数据总线上取样硬件复位配置字的时候,MPC860的ERAB位必须设置为1;而当DSP从复位到内部总线仲裁的数据总线上取样硬件复位配置字的时候,TMS320C6000的XARB位必须设置为1。
通过在XD[31:0]上拉和下拉电阻的扩展总线自举配置如下:
字段(field) 定义
BLPOL 当DSPs作为扩展总线的从属时,XBLAST信号的极性BLPOL=1,XBLAST最高有效
RWPOL 扩展总线读/写信号的极性,RWPOL=1,为XW/R
HMOD 主机(host)的模式(对应于HPIC中的XB状态),HMOD=1,外部的主机接口处于同步的主/从模式
XARB 扩展总线仲裁使能(对应于XBGC中的状态),XARB=1,内部扩展总线仲裁处于使能状态
FMOD FIFO模式(对应于XBGC中的状态)
LEND 小端模式,LEND=1,系统运行在小端模式
BootMode[4:0] 设定设备自举模式,包括芽机口自举、ROM、boot、存储器映射选择
为使工作准确,MPC860的高速缓存必须关闭使能。数据缓存是否使用,只要将相应的状态写放DC_CST寄存器。在禁止状态,缓丰了标志状态位被忽略,访问将通过总线传输。数据缓存在复位后默认为禁止。禁止的数据缓存不影响数据地址的逻辑转换,在MSROR位的控制下继续进行,任何写入DC_CST寄存器的操作必须优先于一个同步指令,则确保在数据存储时,数据缓存的使能变化。由于总线错误或者执行特定的直接缓存线性控制时,数据缓存产生一个中断信号,缓存进入禁止状态,类似于禁止。每一页都有不同的存储控制属性,MPC860支持缓存禁止(CI)、写入(WT)和监视(G)属性,但不支持存储器的一致性。对于要求存储一致性的页,必须编程设置为缓存禁止。G属性用于映射那些对不确定存储比较敏感的I/O设备,有G属性的页使存储强行停止,除非是非敏感性存储或者被核(core)取消。是否可缓存的区域必须定义,对于主要存储区的写回(write-back)或写通(write-through)模式,必须在使数据缓存使能之前通过初始化MMU来选择。
经实验验证,MPC860可以对扩展总线进行写操作,也可以读操作,基本功能已经实现。此方案具有一定的实用性。