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