基于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缓冲器指令、写指令、装载
- 微通道板简介(07-23)
- 基于MCP3906电能芯片和AT-Mega16单片机的单相电表(03-06)
- 单相电能计量芯片MCP3906及其应用(12-23)
- Labview基本常见问题解答(连载四)(05-10)
- CAN总线系统测试技术(05-11)
- 基于CAN总线的GaAs光电阴极制备测控系统(07-27)