由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。基于CAN总线的CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此CAN总线控制器与其它微处理器的接口成为设计CAN总线系统的首要工作。
当前已有一些微处理器将CAN控制器嵌入到系统之中,成为在片的微处理器,例如P8XC592 (其内核即为80C51的CPU),MCS96系列中的 87C196CA、87C196CB等,TMS320系列中的在片CAN微控制器TMS320F2407、TMS320F2810/F2812,但是仍有大量人们比较熟悉的微处理器并不带有CAN控制器。本文讨论这些微处理器与CAN控制器的接口问题,重点介绍CAN控制器与TMS320系列DSP的接口方法和接口电路。
1.CAN控制器的接口信号和时序
CAN控制器(以PCX82C200或SJA1000为例)提供的微处理器的接口信号主要有AD0~AD7共8根地址数据线和ALE、CS、 RD、WR、RST、MODE、 RESET和INT,控制器的数据和地址是分时复用线,其中MODE为接口方式选择信号,可选用INTEL方式或MOTOROLA方式。不同方式下引脚定义如表1,接口时序图略(详见《电子技术应用》2002.11)。
引脚符号 INTEL (MODE=Vdd) MOTOROLA (MODE=Vss)
ALE ALE AS
RD RD E
WR WR RD/WR
表1 SJA1000引脚定义
从引脚定义和时序关系可知CAN控制器提供了与INTEL和MOTOROLA方式的直接接口信号,其中INTEL方式对于目前流行的51/96系列单片机 来说提供了方便快捷的直接接口设计。
2.DSP的接口信号和时序
DSP芯片以TI公司生产的TMS320系列产品为国内的主流产品,TMS320系列产品至今已经历了若干代,有'C1X、'C2X、'C2XX、'C5X、 'C54X、'C62X等定点DSP,有'C3X、'C4X、'C67X等浮点DSP和'C8X多处理器DSP。DSP采用了先进的哈佛结构,内部采用多总线结构和流水线的工作方式,从而大大地提高了系统的运行速度和数字信号的处理能力,DSP的指令执行时间在ns数量级,内部程序和数据存储器目前已达几十K字,并带有内部的硬件乘法器,这些都为DSP提供了广阔的应用空间。
DSP芯片的片外引脚一般采用地址线和数据线分离的设计方法,不再使用地址数据分时复用线,也没有ALE地址有效信号,这样就给CAN 控制器与DSP的接口带来一定困难,且不同的DSP芯片外部引脚和时序也略有区别。要设计CAN 控制器与DSP的接口,首先必须讨论一下DSP的时序,下面以DSP中较流行的TMS320LF2407和TMS320VC5402为例进行讨论。
2.1 TMS320LF2407 DSP的I/O时序
DSP的存储器分为三个空间:程序存储器空间、数据存储器空间和I/O空间。I/O空间有专用的的输入指令PORTR和输出指令PORTW以及专 用的I/O空间选择信号IS,TMS320LF2407的I/O信号与存储器操作信号复用,它们是存储器和I/O信号与存储器操作信号复用,它们是存储器和I/O设备选通信号STBR、写选通信号WR、读选通信号RD和读写信号R/W。
2.2 TMS320VC5402 DSP的I/O时序
TMS320VC5402与TMS320LF2407一样,用IS作为I/O空间选择信号,不同的地方是I/O空间有专用的I/O设备选通信号IOSTRB和通用的读写信号R/W,而不设读选通信号RD和写选通信号WR。
2.3 DSP的I/O时序分析
I/O的输入或输出工作周期内完成,在此期间,IS信号和地址总线一直保持有效。对于TMS320LF2407,I/O选通信号STRB发生在第一个机器周期有效之后并持续一个周期以上,RD和WE有效时数据有效。对于TMS320VC5402,I/O设备选通信号IOSTRB的低电平有效发生在延迟了半个机器周期的上升沿到下一个机器周期的上升沿,持续一个机器周期,数据有效发生在第二个机器周期内。R/W读写信号在输入周期内一 直保持为“1”,在输出周期一直保持为“0”,仅起到控制数据流的方向作用。以上分析都没有考虑插入等待周期的情况,若插入一个等待周期,则每次I/O 操作均延长一个机器周期,既需要三个机器周期完成I/O操作(等待周期时序从略)。
3 CAN控制器与DSP的接口设计方法
从以上分析可以看到,TMS320系列DSP没有提供与SJA1000 CAN控制器的直接接口信号,以SJA1000的INTEL方式为例,为了使TMS320系列DSP满足SJA1000的接口信号要求,可以从以下几点进行设计。
3.1 地址数据复用线的设计
将DSP的数据线D0~D7作为CAN的地址/数据复用线,用DSP的数据线去选择CAN的内部端口和传送数据。
3.2 地址有效信号ALE的产生
对于TMS320LF2407,用地址线A0、写选通信号WR和端口选通信号STRB的逻辑组合产生DSP的ALE信号,对于TMS320VC5402,则用地址线 A0、I/O端口选通信号IOSTRB的逻辑组合产生ALE信号。
3.3 读写信号的产生
对于TMS320LF2407,用读信号和A0的逻辑组合产生SJA1000的读选通信号,用写信号和A0的逻辑组合产生SJA1000 的写选通信号。对于TMS320VC5402,则用A0、IOSTRB和R/W的逻辑组合产生SJA1000的读和写选通信号。逻辑关系如表2所示。
TMS320LF2407
A0 STRB R/W WE
1 0 0 X
0 0 0 0
0 0 1 1
TMS320VC5402
A0 IOSTRB R/W
1 0 0
0 0 0
0 0 1
SJA1000
ALE WE RD
1 1 1
0 0 1
0 1 0
表2 TMS320LF2407和TMS320VC5402与SJA1000接口逻辑
3.4 片选信号的产生
用DSP的I/O空间选通信号IS和高位地址的译码信号的逻辑组合产生CAN的片选CS。
从以上的设计思想可以看到,这种方法是将DSP的数据线改为适应CAN控制器的数据地址线。为此将DSP的A0作为地址数据选择线。A0=1 时,地址有效;A0=0时,数据有效。即用奇数地址选择端口,用偶数地址传送数据。同时,通过信号的逻辑组合,在地址有效期间不产生读写信号,而是产生满足CAN的地址有效信号ALE;在数据有效期间产生满足CAN的读和写逻辑信号时序。
4 CAN与DSP的接口电路
以TMS320VC5402与SJA1000芯片为例设计的接口电路图略(详见《电子技术应用》2002.11)。图中,用一片GAL16V8B作为接口逻辑转换电路。为突出接口电路,其它部分从略。用FM书写的设计文件如下:
GAL16V8B
INTERFACE
CH SH APR 19. 2002
DECODER
NC NC IS IOSTRB A0 RW A14 A15
NC GND
NC NC CS WR RD ALE NC NC NC VCC
CS=A15*A14 *IS
ALE=A0*IOSTRB*R/W
RD=A0*IOSTRB*R/W
WR=A0*IOSTRB*R/W
DESCRIPTION