首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于MCP2502X/05X的CAN总线节点设计
来源:本站整理  作者:佚名  2009-12-11 09:39:19



3.1.2 预编程CAN相关寄存器
    预编程CAN相关寄存器就是实现不同CAN协议,并通过CAN报文配置和操作其他寄存器。MCP2502X/05X系列器件在实现对器件本身控制的前提下,用户通过配置CAN模块相关寄存器,并根据实际情况设计协议的具体内容。扩展节点的CAN协议必须与主节点的CAN协议相匹配。该设计采用J1939协议标准配置CAN模块寄存器,由于CAN扩展节点与主节点之间要求点对点通信,所以采用PDU1格式,其29位标识符各位的含义如图3所示。

    图3中,源地址的高5位可编程,低3位与扩展器硬件相关联,用于实现特定的CAN命令,比如将报文源地址低3位写“000”,读取A/D转换器的寄存器。PS(PDU格式)要小于240,其他各位由应用层确定。按照协议标识符格式写配置寄存器。MCP2502X/5X器件包含3个独立的发送报文ID:TX-ID0、TXID1和TXID2。
    配置相应的寄存器预定义各种输出报文中每一个报文的数据长度码以及直接从器件外设寄存器输入待发送数据。器件按照预定义格式发送报文。配置接收屏蔽寄存器来定义CAN ID与可编程过滤器相比较的位。在29位标识符格式中,RXMEID0寄存器的EID2:EID0位设置为无关位。MCP2502X/5X定义2个独立的接收过滤器:RXF0和RXF1。其中,RXF0用于信息请求报文,而RXF1用于输入报文。按照预定标识符格式对过滤器进行预编程配置,过滤器的每一位与CAN ID的位相对应。为了接收报文,CAN ID中的每一位(相应屏蔽位设置为1时)必须和对应的过滤器位相匹配。忽略未满足屏蔽/过滤条件的报文。同时扩展节点配置为自动发送模式,即当采集输入信号变化或经一定时间间隔将自动发送信息。
3.2 用CAN报文配置扩展器
    由于配置寄存器通过CAN总线访问,因此除了采用预编程配置扩展器外,通信建立后,主节点通过命令报文配置器件,也可在线修改已配置的寄存器。命令报文种类由源地址的低3位确定。


4 扩展节点硬件结构及系统网络结构
    图4为扩展节点的硬件结构,MCP2502X/05X器件通过CAN驱动器与CAN总线相连。图5为系统网络结构。

    CAN总线本身是一种多主总线,理论上每个节点都可作为主节点,但基于MCP25132X/5X器件的CAN网络中必须有一个具有CAN接口的CPU作为主节点,来执行控制算法,并做出相应控制决策。而扩展节点只能作为从节点。其他节点则通过主节点与对应的从节点通信。


5 主节点软件设计
    在主节点软件设计过程中,将主节点和其对应的扩展节点看成同一个ECU(电控单元)的不同CA(控制器应用程序),并且地址可仲裁,主节点与扩展节点之间点对点通信,总线上所有ECU都遵循J1939协议进行通信,其他ECU通过主节点访问扩展节点。
    主节点软件由主处理、接收处理和发送处理3部分构成。其中,接收处理负责接收与本ECU地址相匹配的消息,并处理地址声明消息和地址请求消息,将应用消息填充到接收缓冲区;发送消息负责将发送缓冲区的数据发送到CAN总线。图6为主处理软件流程。

6 结论
    基于MCP2502X/05X器件设计CAN扩展节点无需大量编程,只需配置相关寄存器,连接简单电路就能实现与主节点的通信。在无需微控制器下扩展一个CAN节点,用户自行设置协议内容,非常灵活,其丰富的外设满足一般测控需要。将MCP2502X/05X器件与J1939协议相结合,可方便设计汽车的前端测控模块,并与整个车载CAN网络相连。这种设计方案系统结构简单、成本降低、提高信号传输的可靠性,在车载CAN网络,尤其是前端测控模块中具有广泛的应用前景。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:103,210.90000 毫秒