- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于MCP2515的CAN总线扩展
摘要 随着数字信号处理器TMS320F2812的广泛应用,扩展TMS320F2812的CAN总线接口成为一种趋势。针对本公司某测试设备的整体设计要求,利用具有SPI接口的独立CAN控制器MCP2515通过TMS320F2812的SPI接口,实现TMS320F2812的CAN总线扩展,满足了该测试设备的控制精度、处理速度以及对外双冗余CAN总线接口的设计要求,具有较强的工程实用价值。
关键词 MCP2515;CAN总线;SPI总线;TMS320F2812
CAN(Controller Area Network)即控制器局域网络总线,是德国Bosch公司在1986年面向汽车各子系统间通信而开发出的通信协议,被认为是目前最有前途的现场总线之一,广泛应用于工业自动化监控网络中,具有高质量、低成本、易实现、安全性高的特点。TMS320F2812数字信号处理器是TI(Texas Instruments)美国德州仪器公司最新推出的32位定点DSP控制器,是目前控制领域最先进的处理器之一,其频率高达150 MHz,提高了控制系统的精度和芯片的处理能力。TMS320F2812本身集成了一路CAN总线接口,仅依靠TMS320F2812不能满足本测试设备对双冗余的CAN总线设计要求。文中采用TMS320F2812作为测试设备的主控制器。虽然TMS320F2812本身只带一路CAN总线,但同时又自带一路SPI(Serial PeripheralInterface)即串行外围设备接口总线,而且MCP2515是一款具有SPI接口的独立CAN控制器,完全支持CANV2.0B技术规范。因此采用TMS320F2812通过MCP2515实现其CAN总线扩展,文中即给出该应用实例,包括硬件设计电路原理图,软件系统程序设计流程图和简单的子程序流程,并加以说明。
1 芯片介绍
Microchip推出的MCP2515是一款完全支持CANV2.0B技术规范、具有SPI接口的独立CAN控制器,内含2个接收缓冲器、3个发送缓冲器、6个29位验收滤波寄存器以及2个29位验收屏蔽寄存器。具有灵活的中断性能和接收过滤及信息管理能力,另外还有帧屏蔽和过滤、帧优先级设定等特性,能减少对MCU资源的占有。MCP2515的SPI接口时钟频率最高可达10 MHz,同时具备最高40 MHz的时钟输入速度,在实际应用中其通信速率最高可达1 Mbit·s-1,能够发送和接收标准/扩展数据帧以及远程帧。
MCP2515具有配置模式、正常模式等5种工作模式。利用CANCTRL REQOP位可进行工作模式的选择,能够灵活应用于不同的系统,通过其监听模式还能在CAN网络中实现自动波特率检测。
MCP2515的内部结构框图如图1所示,共包括CAN模块、SPI模块以及其他模块共3部分。其中CAN模块完成CAN总线上所有报文的收发,SPI模块实现MCU和MCP2515间的SPI总线的数据通信,控制逻辑/寄存器实现对MCP2515的设置和控制,对外接口提供MCP2515的多个中断引脚,用户可根据需要自由选择,其内部结构框图如图1所示。
2 系统硬件电路结构设计
该测试设备的硬件电路结构原理如图2所示,其虚线部分是对TMS320F2812进行CAN总线扩展的硬件原理。MCU是使用TI公司的TMS320F28 12,通过其内部集成的SPI总线接口和MCP2515连接,CAN收发器采用TI公司的SN65HVD230Q,FPGA采用Xinlix公司的XC2V1000_FG456,由其分别产生TMS320F2812和MCP2515所需的时钟、复位信号及一些离散控制信号。MCP2515的中断输出引脚直接接到TMS320F2812的外部中断输入引脚上。该硬件电路结构原理表示出简单的电气连接关系,在实际应用中,会根据实际应用条件的不同,进行相应的适应性改进。例如,如果TMS320F2812和MCP2515所使用的电源不同,就需要在TMS320F2812和MCP2515之间加电平转换芯片,以满足其不同的电源要求;并且还可在MCP 2515和CAN收发器之间,增加光耦隔离器以增加系统的抗干扰能力,并能有效提高系统的可靠性。
TMS320F2812可通过SPI接口和MCP2515直接连接,MCP2515的CLK和TMS320F2812的SPICLKA连接,为数据的发送和接收提供同步时钟信号。
TMS320F2812的SPI接口有主和从两种操作模式,在该测试设备中其工作在主模式。
TMS320F2812和MCP2515之间以SCK作为同步时钟信号进行通信。在时钟上升沿,命令和数据通过SI引脚送入MCP2515,在时钟下降沿通过SO引脚把数据从MCP2515中读出。TMS320F2812通过SPI总线读取MCP2515接收缓冲器里的数据,MCP2515对CAN总线的数据发送则没有限制,只要用TMS320F2812通过SPI接口将待发送的数据写入MCP2515的发送缓冲器,然后再调用发送请求命令即可将数据发送到CAN总线上。
TMS320F2812通过标准SPI读写命令,对MCP2515寄存器进行读写操作,完成系统CAN总线的收发,最终实现系统CAN总线的通信。TMS320F2 812和MCP2515的通信指令有复位指令、读指令、读RX缓冲器指令、写指令、装载TX缓冲器指令、请求发送(RTS)指令、读状态指令、RX状态指令和位修改指令等8条指令。
3 软件设计
设计中,采用外部中断方式实现CAN总线数据的接收,采用定时中断的方式实现CAN数据的发送。软件设计的难点在于MCP2515的初始化和CAN总线数据的收发程序。
3.1 MCP2515的初始化
MCP2515有用的寄存器有117个,其中包括17个控制寄存器,有配置模式、正常模式、休眠模式、监听模式和环回模式等5种工作模式。M CP2515的正常工作关键在于对其进行初始化处理,在初始化之前,首先必须通过TMS320F2812给MCP2515发送一个复位指令,使其进入配置模式,然后才能对其进行初始化。MCP2515的初始化还包括设置波特率寄存器、设置发送/接收控制寄存器、设置验收屏蔽/滤波寄存器等。
3.2 MCP2515的数据接收
MCP2515的RXB0和RXB1两个全接收缓冲器均配备一个验收屏蔽寄存器和两个验收滤波寄存器。RXB0比RXB1具有更高的优先级。当系统有报文数据时,如果CANINTE.RXnIE的相应位被置1,MCP2515的INT管脚会产生一个巾断信号,显示有报文收到,与其对应的接收缓冲器的CANI NTF.RxnIF位将置位,接收缓冲器中的报文只要接收处理完毕,TMS320F2812就应当立即清零该位以准备接收下一条报文。
3.3 MCP2515的数据发送
MCP2515的3个发送缓冲器均有一个TxBnCTRL寄存器控制报文的发送条件、对应的发送优先级以及报文发送时的状态。在写入发送缓冲器之前,必须将TxBnCTRL TXREQ位清零,确保发送缓冲器中没有等待发送的报文。通过TxBnCTRL TXREQ位置1,可以启动相应的发送缓冲器准备发送报文,一旦检测到总线空闲时,就会启动报文发送。报文发送成功TxBnCTRL.TXREQ位清零,CANINTF TXnIF置位,如果同时ANINTE.Txn IE被置位,则会产生发送中断。
4 软件流程
在软件系统中,主要分3个程序模块,分别是主程序、接收中断子程序和定时中断(发送)子程序。各个程序流程清晰明了,相互之间相对独立。其中主程序是在完成一些基本的系统设置和各种初始化后等待接收中断的到来,在接收中断到来后进行相应的数据接收处理,实现该测试设备对被测设备的CAN总线的接收处理。接收中断子程序具体完成该测试设备对被测设备的CAN总线的接收,并设置接收中断标志,定时中断(发送)子程序完成该测试设备对被测设备的定时CAN总线控制指令的下发。
图3~图5分别为主程序、接收中断子程序和定时中断(发送)子程序的流程图。
该测试设备所采用的软硬件原理,设计思想独特、结构原理简单、结果实用可靠。目前,该测试设备已完成了所有的设计工作,通过了各项验收试验,达到了预期设计要求。具体的仿真试验结果如下:(1)实现了双冗余的CAN总线设计,两路CAN总线收发正常,并能随时进行任意切换。(2)能满足测试设备对CAN总线控制精度和处理速度的要求。(3)能满足对被测设备的CAN总线控制及回传信息的接收处理。
5 结束语
文中论述了基于带有SPI总线接口的MCP2515接口,通过TMS320F2812的SPI总线接口实现对TMS320F2812进行CAN总线扩展的实际研究和设计,介绍了该测试设备的设计思路、MCP2515芯片特性以及TMS320F2812与MCP2515连接的硬件电路结构原理;分析了TMS320F2812的软件编程;给出了主程序流程和两个子程序处理流程。目前,按照上述软硬件原理设计的该测试设备已通过了各项检验验收,完能够满足实际应用要求,具有较强的工程实用价值。