基于MCP2515的CAN总线扩展
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的软件编程;给出了主程序流程和两个子程序处理流程。目前,按照上述软硬件原理设计的该测试设备已通过了各项检验验收,完能够满足实际应用要求,具有较强的工程实用价值。
- 微通道板简介(07-23)
- 基于MCP3906电能芯片和AT-Mega16单片机的单相电表(03-06)
- 单相电能计量芯片MCP3906及其应用(12-23)
- Labview基本常见问题解答(连载四)(05-10)
- CAN总线系统测试技术(05-11)
- 基于CAN总线的GaAs光电阴极制备测控系统(07-27)