图3中的PCA82C250为CAN串行链接I/O器件。CPLD芯片EPM7512用于产生相应的控制信号并输出给SJAl000,从而控制SJAl00O的地址和数据总线周期。
2 基于EPM7512的接口逻辑
EPM7512是AIZERA公司生产的复杂可编程逻辑器件(CPLD),可与AIXERA公司的QuartusII开发系统软件配合,并可以100%地模仿TTL。采用EPM7512作为DSP的外部接口扩展,可非常方便而且灵活地实现接口功能。
DSP处理器的地址线BEAl5经CPLD产生片选信号后,可由地址线BEA15作为CAN控制器的地址和数据选择线,并和一起产生SJAl000的地址锁存信号ALE。BEAl5为l时,地址有效;BEAl5为0时,数据有效。
采用ModelSim仿真软件可对接口电路进行功能仿真,其仿真结果如图4所示,能够满足SJAl000的读写时序要求。
3 接口电路的软件读写操作
CAN控制器SJAl000的地址线和数据线可映射为DSP芯片TMS320C6416的外部程序存储EMIFB的CE3区域,其在DSP控制器上的地址分别为0x6-C008000和0x6C000001。其用C语言编程的实现代码如下:
#defineTXB 16
#define RXB 16
(char*) CANAS= (char*) 0x6c008000;//定义CAN控制器数据线
(char*) CANCS=(char*)0x6c000001;//定义CAN控制器地址线
//以下两句为SJAl000的控制寄存器MOD(PeliCAN模式下地址0)赋值Ox09;
*CANAS=0;//提供CAN控制器寄存器地址
*CANCS=0x09;//提供CAN控制器寄存器数据
//以下两句从SJAl000的状态寄存器SR (PeliCAN模式下基地址+2)读取数据;
*CANAS=2;//提供CAN控制器寄存器地址
*SR=CANCS&0xoff;//读取CAN控制器数据。
4 结束语
本文提供了一种基于CPLD的DSP处理器TMS320C6416和CAN控制器SJAl000接口方法,该实现方法比传统硬件逻辑门电路的实现方法更加方便灵活。通过对该方法的软硬件实现进行的仿真结果证明,该设计可以稳定可靠的运行。