当前位置:首页 > 挖掘机远程监测系统的研究与设计 - 图文
第四章 车载终端的软件系统设计
4.3.2 MCP2515的结构与工作原理
RXCANTXCANCAN协议引擎发送和接收缓冲器验收屏蔽寄存器和验收滤波寄存器CSSPI接口逻辑SCKSISOOSC1OSC2CLKOUT时序发生器控制逻辑INTRX0BFRX1BFTX0RTSTX1RTSTX2RTSRESET控制和中断寄存器
图4-10 MCP2515的结构图 Fig 4-10 The structure of MCP2515
MCP2515的内部结构框图如图4-11所示。MCP2515主要由三部分组成: (1)CAN模块。包括CAN协议引擎和发送/接收缓冲器、验收屏蔽寄存器、验收滤波寄存器CAN模块。
(2)用于配置器件及其运行的控制逻辑和寄存器。 (3)SPI协议模块。
CAN控制器MCP2515与单片机之间的通信是通过SPI接口实现的,单片机通过SPI指令对MCP2515的寄存器进行读写操作,以实现对MCP2515的控制功能。
控制逻辑模块通过与其它各模块连接,负责整个CAN控制器的设置与运行,它提供的中断引脚提高了系统的灵活性,该器件拥有一个多用途的中断引脚INT和各接收缓冲器的专用中断引脚RX0BF、RX1BF,用于指示各接收缓冲器是否被载入有效报文。除此之外,控制逻辑模块还提供了三个引脚TX0RTS、TX1RTS、TX2RTS,分别用来启动三个发送缓冲器的报文发送。这些引脚是否启用,可由用户自行决定,因为报文的发送和接收都可由单片机通过SPI接口读写相应的寄存器来实现。
CAN模块负责CAN总线报文的收发工作,当MCP2515从总线上收到报文后,首先要通过验收屏蔽寄存器和验收滤波寄存器对报文进行滤波,只有满足滤波条件的报文才能被载入接收缓冲器,然后由单片机通过SPI接口读取接收缓冲器中的报文,报文发送时,单片机将待发送的数据通过SPI接口写入发送缓冲器,然后再调用SPI指令
31
内蒙古工业大学硕士学位论文
中的发送请求命令,即可将报文发送至总线。
4.3.3 MCP2515的初始化
开始复位MCP2515设置CAN通信波特率初始化发送缓冲器初始化接收缓冲器配置验收屏蔽寄存器配置验收滤波寄存器设定中断使能将MCP2515工作模式设定为正常模式返回
图4-11 MCP2515初始化流程图 Fig.4-11 Flow chart of initialization of MCP2515
在正常通信前,需要对MCP2515进行初始化[56-58]。MCP2515具有5种工作模式,分别是配置模式、正常模式、休眠模式、仅监听模式、环回模式,其中配置模式和正常模式是使用的最多的两种模式,通过配置CANCTRL寄存器的REOOP位可以进入相应的工作模式。MCP2515的初始化,只有在器件工作于配置模式下才能进行。在上电或复位时,MCP2515会自动进入配置模式,进入配置模式后,通过配置寄存器CNF1、CNF2和CNF3来设定CAN总线波特率,接着,初始化发送控制寄存器、接
32
第四章 车载终端的软件系统设计
收控制寄存器并设置验收屏蔽寄存器和验收滤波寄存器,然后设置CANINTE寄存器以实现中断使能,最后设置CANCTRL寄存器将MCP2515的工作模式切换到正常模式。MCP2515的初始化流程如图4-11所示。
4.3.4 CAN总线报文发送
MCP2515拥有3个发送缓冲器,各占用14个字节SRAM,并映射到单片机的存储器中。MCP2515的CAN总线报文发送流程如下:单片机首先判断MCP2515是否存在处于空闲状态的发送缓冲器,当有发送缓冲器处于空闲状态时,单片机将通过SPI写命令将数据、数据长度和标识符写入MCP2515的此发送缓冲器中,然后单片机向MCP2515发送SPI指令启动发送。启动发送时,总线必须处于空闲状态,当MCP2515检测到总线正忙的时候,进行一小段延时后再判断总线是否空闲,当总线处于空闲状态时,数据将发送至物理总线上[59]。MCP2515的CAN总线报文发送流程如图4-12所示。
开始向发送缓冲器写数据启动发送延时总线是否空闲?Y数据发送至总线上N数据发送完毕?Y结束N
图4-12 CAN总线报文发送流程图
33
内蒙古工业大学硕士学位论文
Fig.4-12 Flow chart of sending message of CAN bus
4.3.5 CAN总线报文接收
CAN总线报文的接收可以采用查询方式和中断方式,两者在思路上基本相似,但是在实时性方面,中断方式要明显优于查询方式,因此本系统的CAN总线报文接收方式采用中断方式。当MCP2515接收到起使帧信号时,便进入报文接收的流程,在接收报文时,报文首先被载入MCP2515的报文集成缓冲器,然后根据事先设定的滤波条件进行报文滤波,符合接收条件的报文将被载入接收缓冲器中,当报文被成功载入接收缓冲器后,MCP2515会发送给单片机一个中断信号,通知单片机从接收缓冲器中提取数据[60]。MCP2515的CAN总线报文接收流程如图4-13所示:
开始检测到起使帧?Y报文载入集成缓冲器NN报文符合滤波条件?Y接收报文返回
图4-13 CAN总线报文接收流程图
Fig.4-13 Flow chart of receiving message of CAN bus
4.3.6 CAN总线数据解析
在本系统中,车载终端通过CAN总线接收挖掘机车载控制器(PLC)发送来的挖掘机工作状态参数数据包,通过对该数据包进行拆分、解析,即可得到需要监测的数据。同GPS数据解析过程一样,要想从接收到数据包中提取所需的每一个数据,需要
34
共分享92篇相关文档