微处理器对外并行总线接口方式一般分为两种,一种为多路复用方式,数据与地址采用共用引脚,分时传输;另一种是非多路复用方式,数据与地址采用分离引脚,同时传输。目前国内应用广泛的MCS196和MCS51系列微处理器采用多路复用总线,设计电路时应考虑如何将数据和地址从总线上分离出来,与存储器、外围接口芯片的数据和地址引脚连接。一般利用ALE(地址锁存)信号触发锁存器(74LS373)将地址与数据信号分离出来。近几年来,随着低价位DSP芯片的出现,DSP芯片已被广泛应用到控制与测量领域中。国内使用的DSP芯片以TI公司的TMS320系列为主流。这种微处理器对外的数据和地址总线接口方式为非多路复用方式,不能与多路复用方式的外围接口芯片(如CAN控制器SJA1000)直接相连。国内和国外也没有一款专用集成电路芯片来实现非多路复用方式到多路复用方式的转换。参考文献1提出了一种转换方法,是将DSP的数据线作为CAN控制器的数据地址复用线,用DSP的地址线A0作为地址、数据选择线。A0=1时,地址有效;A0=0时,数据有效,即用奇数地址传送地址,用偶数地址传送数据。虽然此方法实现起来电路简单,但在编程时却需要考虑发送的数据何时作为CAN控制器的地址,何时作为CAN控制器的数据,没有从根本上解决非多路复用方式到多路复用方式的转换。本文以TMS320F206与SJA1000的连接为例,采用复杂可编程逻辑器件CPLD,完成了用硬件来实现非多路复用方式到多路复用方式的转换。
1 多路复用总线的信号和时序
1.1 SJA1000接口的主要信号说明
CAN控制器SJA1000提供的微处理器接口方式为典型INTEL或MOTOROLA地址数据多路复用总线模式,主要信号有地址数据信号AD7~AD0、地址选通信号ALE、片选信号CS、读信号RD、写信号WR、模式选择信号MODE。当MODE=1时,为INTEL模式;当MODE=0时,为MOTOROLA模式。本文描述的地址数据多路复用总线模式均为INTEL模式。图1和图2分别为INTEL模式读、写周期时序。AD7~AD0引脚在ALE有效时,传送的是地址信号;在RD或WR有效时,传输的是数据信号。
1.2 SJA1000的时序分析
以SJA1000的读时序为例进行说明。在设计转换桥时,多路复用总线的各信号必须满足如下时间参数要求:ALE的脉冲宽度(tWAL)最小为8ns;地址信号(A0~A7)建立到ALE变为低电平所需时间(tsuA-AL)最小为8ns;RD的有效脉宽(tWR)最小为40ns;RD为低电平到数据信号D7~D0有效所需时间tRLOV最大为50ns;RD变为高电平到地址数据线释放(即高阻状态)所需时间tRHDZ最大为30ns。
2 非多路复用总线的信号和时序
2.1 TSM320F206接口的主要信号说明
TSM320F206的总线接口方式采用地址和数据分离的形式。其主要信号有地址信号A0~A15、数据信号D0~D15、读信号RE、写信号WE、闸门信号STRB、I/O空间选择信号IS、数据存储器选择信号DS、程序存储器选择信号PS、机器时钟输出信号CLKOUT1。当对外部数据存储器、程序存储器或I/O空间访问时,STRB有效;当对外部I/O访问时(即程序中使用PORTR和PORTW指令),IS有效。
2.2 TSM320F206的I/O时序分析
TMS320F206的读写时序如图3和图4所示。I/O的读或写工作周期一般在两个机器周期内完成。在此期间,IS信号和地址信号一直保持有效;闸门信号STRB发生在第一个机器周期有效后并保持一个机器周期以上;RE和WE有效时,数据有效。两次连续的写操作(如图4所示)时,WE的有效间隔时间tW(WH)最小为(2H-4)ns,而两次连续的读操作(如图3所示)时,RE的有效间隔时间tW(RDH)为(H-4)ns~Hns,其中H为0.5倍的机器时钟周期。可见对于连续的读、写操作,RE、WE的有效间隔不同,设计电路时应注意此细节。在连续的读或写操作时,IS信号一直为有效电平‘0’,无法以此信号作为产生SJA1000的ALE、读、写信号起始基准;而在写周期时,STRB与WE的变化始终保持一致,因此在产生SJA1000写周期时,可以用STRB作为ALE、WR产生的起始基准信号。但是TSM320F206在连续的读操作时,STRB一直保持为低电平,可见在产生SJA1000读、写操作周期时,无法单独以它作为ALE、RD信号产生的起始基准,需与IS、WE、RE进行逻辑组合来作为SJA1000读、写操作周期的起始基准信号。
3 CPLD实现转换桥的设计方法
此转换桥如果用中规模集成电路(74系列)实现起来比较复杂,工作频率又较高,布线时若稍不合理,易引起干扰,使得电路工作不稳定,因此这里采用高可靠性的复杂可编程逻辑器件CPLD,用硬件描述语言VHDL来实现。
3.1 转换桥引脚信号定义
图5为转换桥的时序仿真图,其中转换桥的各引脚信号与TMS320F206和SJA1000l引脚信号的对应为:fabl7接A0~A7;fdb7接D0~D7;fds接IS;fstrb接STRB;fwe接WE;frd接RE;fcp接CLKOUT1;ale接ALE;adb7接AD7~AD0;wr接WR;rd接RD。
3.2 SJA1000读、写周期使能信号和起始基准信号的确定
转换桥的基准时钟fcp为TMS320F206的机器时钟输出信号CLKOUT1。fcp为20MHz的方波信号。因为TMS320F206的读或写工作周期一般为一、两个机器时钟周期,此时基准时钟fcp最多含有四个边沿状态,无法完成非多路复用到多路复用的转换,所以通过软件等待设置,使TMS320F206对外部总线操作时,由原来所用的一个机器时钟周期延长到四个机器时钟周期,边沿状态个数增加了4倍。另外fcp的脉宽为25ns,这样可以保证转换桥输出的多路复用总线时序的时间参数满足SJA1000的时序要求。从上面的时序分析中可以确定出SJA1000的读、写周期的使能信号IS和起始基准信号STRB、WE、RE逻辑组合。IS作为转换桥的片选信号,当IS为“0”时,转换桥工作;否则,转换桥的各输出信号被悬挂。当IS为“0”、STRB为“0”、WE为“0”、RE为“1”时,DSP开始对外部I/O进行写操作,在后面紧跟的四个DSP机器时钟周期产生出1个SJA1000的写周期;当IS为“0”、STRB为“0”、WE为“1”、RE为“1”时,DSP开始对外部I/O进行读操作,在后面紧跟的四个DSP机器时钟周期产生出1个SJA1000的读周期。
3.3 读操作转换过程
通过软件等待设置,使DSP的 I/O读、写操作需四个机器时钟周期。在第一个时钟周期的上升沿产生ale信号(脉宽为0.5倍的机器时钟周期),同时将DSP输入的低八位地址fabl7锁存并送到地址数据复用总线adb7,并保持到第二个时钟周期的上升沿为止,此时adb7为高阻状态。第三、第四个时钟周期,DSP的读信号frd有效,将此信号直接送到rd引脚,此时adb7引脚的数据直接送给fdb7引脚,读操作结束。
图5 转换桥的时序仿真图
3.4 写操作转换过程
在写操作的四个时钟周期中,在第一个时钟周期的上升沿产生ale信号(脉宽为一个机器时钟周期),同时将DSP输入的低八位地址fabl7引脚的信号送到adb7上,并保持到第三个时钟周期结束。在第四个时钟周期的上升沿产生写信号wr(宽度为一个时钟周期),在DSP写信号few的上升沿处锁存数据线fdb7来的信号,并将其送到adb7引脚上,延时到第五个时钟周期时把adb7变为高阻状态,写操作结束。
本文提出的非多路复用总线到多路复用总线转换桥采用了Xilinx公司的CPLD芯片XC95144-15-PQ100,并使用该公司开发的集成环境Fundation F3.1i,将其集成为一块专用芯片。通过大量的实验测试,此转换桥工作非常稳定,现已应用到电力网络馈线远程终端装置(FTU)中。