基于VxWorks操作系统环境下的CAN总线驱动方法及系统的制作方法

文档序号:6620327阅读:546来源:国知局
基于VxWorks操作系统环境下的CAN总线驱动方法及系统的制作方法
【专利摘要】一种基于VxWorks操作系统环境下的CAN总线驱动方法,初始化CAN设备,对CAN设备寄存器进行配置,启动参数配置和邮箱配置和使能中断;为每个节点配置唯一的ID;为与主板通信的M块从板,建立M个虚拟设备及一个广播设备,为每个虚拟设备及广播设备建立与之对应的接收buff和发送buff,使虚拟设备与目的通讯节点形成一一对应关系;当主板要进行通信时,先执行链路探测,建立发送节点和目标节点的链路;每个通节点间发出的报文都配有唯一的报文ID,中断处理过滤报文ID,将报文发送至指定的目的节点,形成节点间的通信。本发明的有益效果是为上层软件CAN通讯开发提供统一接口,上层软件和驱动层不会产生耦合问题降低了上层开发人员CAN通讯开发的难度。
【专利说明】基于VxWorks操作系统环境下的CAN总线驱动方法及系统

【技术领域】 [0001] 本发明涉及VxWorks操作系统,特别是涉及基于VxWorks操 作系统环境下的CAN总线驱动方法及系统。
[0002]

【背景技术】 目前,美国风河公司的VxWorks操作系统并没有提供标准的 CAN(Controller Area Network)总线驱动开发模型,基于VxWorks操作系统,现有技术CAN 驱动主要采用单片机的CAN驱动方法和VxWorks传统1/0设备驱动方法。
[0003] 参见图12,现有技术利用单片机的CAN驱动开发,需要进行如下工作: (1) 编写自定义的接收、发送缓存; (2) CAN寄存器配置,中断收、发、异常处理; (3) 编写提供给上层软件的接口。
[0004] 这种方法缺陷在于提供给上层软件的接口不统一,是非标准接口;应用层和驱动 层代码耦合严重,不利于代码维护;自定义的缓存管理,稳定性和效率缺失。
[0005] 参见图13,现有技术采用VxWorks传统1/0设备驱动开发,驱动开发人员开发要 完成如下工作: (1) 编写提供给应用层的接口; (2) 在传统1/0设备驱动开发模型下的数据处理; (3) 中断处理和系统缓存的关联。
[0006] 这种方法同存在提供给上层软件的接口不统一,非标准接口;应用层和驱动层代 码耦合严重,不利于代码维护的问题,同时需要进行CAN相关参数配置,增加了上层软件 CAN通讯开发的复杂性。


【发明内容】
[0007] 本发明要解决的技术问题在于避免上述现有技术的不足之处而提出 一种基于VxWorks操作系统环境下的CAN总线驱动方法,解决现有技术的CAN总线驱动方 法中存在提供给上层软件的接口不统一、应用层和驱动层代码耦合严重等问题。
[0008] 本发明为解决上述技术问题而提出的技术方案是: 提出一种基于VxWorks操作系统环境下的CAN总线驱动方法,初始化CAN设备,对CAN 设备寄存器进行配置,启动参数配置和邮箱配置和使能中断;为每个节点配置唯一的ID ; 为与主板通信的Μ块从板,建立Μ个虚拟设备及一个广播设备,为每个虚拟设备及广 播设备建立与之对应的接收buff和发送buff,使虚拟设备与目的通讯节点形成--对应 关系; 当主板要进行通信时,先执行链路探测,建立发送节点和目标节点之间的链路; 每个节点发出的报文都配有唯一的报文ID,所述报文ID中包含有目的节点ID和发文 节点ID,中断处理过滤报文ID,将报文发送至指定的目的节点,形成节点间的通信; 将虚拟设备名、CAN设备参数配置信息提供给应用层。 所述执行链路探测包括步骤:由发送数据的节点发送一个远程帧后,等待接收对方的 回复;接收数据的节点接收到远程帧后,发送回复;发送数据的节点接收到对方的回复后, 链路建立。
[0009] 当中断状态显示通讯异常时,中断处理会进行异常处理,将当前CAN设备的链路 状态发送到上层软件。
[0010] 各所述虚拟设备只接收与之对应节点的从板发过来的报文;所述从板只接受包 含自身ID的报文和广播ID报文。
[0011] 所述主板通过调用编制接口 wirte或read函数与从板进行通信。
[0012] 所述CAN设备参数配置信息包括本地ID设置、波特率设置、链路探测和链路状态 获取。
[0013] 本发明为解决上述技术问题还提出的技术方案是: 设计一种基于VxWorks操作系统环境下的CAN总线驱动系统,包括主板、CAN设备,和 与CAN设备对应且与主板通信的从板,其特征在于:CAN设备初始化时,配置CAN设备寄存 器,启动参数配置和邮箱配置及使能中断,每个节点配置有唯一的ID ;假设有Μ块从板与主 板通信,Μ块从板对应配置有Μ个虚拟设备和一个广播设备;每个虚拟设备及广播设备建立 有与之对应的接收buff和发送buff,虚拟设备与目的通讯节点形成一一对应关系;主板 要进行通信时,先执行链路探测,建立发送节点和目标节点之间的链路;每个节点发出的 报文都配有唯一的报文ID,所述报文ID中包含有目的节点ID和发文节点ID,中断处理过 滤报文ID,报文被发送至指定的目的节点,形成节点间的通信;虚拟设备名、CAN设备参数 配置信息被提供给应用层。
[0014] 同现有技术相比较,本发明的有益效果是:1.每块从板都配置了相应的虚拟设 备,与主板通信,为上层软件CAN通讯开发提供统一接口,上层软件和驱动层不会产生耦合 问题,2.采用链路探测的心跳功能,提高了通讯过程的稳定性,使上层软件维护链路更加 方便,为设备间通讯提供了高效、稳定CAN通讯;降低了上层开发人员CAN通讯开发的难 度。
[0015]

【专利附图】

【附图说明】 图1是本发明基于VxWorks操作系统环境下的CAN总线驱动方法之优选实施例的逻辑 结构示意图; 图2是所述优选实施例中CAN设备初始化的流程图; 图3是所述优选实施例中主从设备建立一一对应关系的示意图; 图4是所述优选实施例之中断处理的工作流程示意图; 图5是所述优选实施例中CPU板CAN设备名称表; 图6是所述优选实施例中SP板(从板)CAN设备名称表; 图7是所述优选实施例中基于链路探测的心跳检测功能; 图8是所述优选实施中CPU板进行通信时,进行CAN设备初始化流程示意图; 图9是所述优选实施中SP进行CAN设备初始化流程示意图; 图10是所述优选实施例中主板与多从板进行通信工作示意图; 图11是所述优选实施例中广播设备与多从板进行通信工作示意图; 图12是现有技术利用单片机的CAN驱动开发工作模型; 图13是现有技术利用VxWorks传统I/O设备驱动方法工作模型。。
[0016]

【具体实施方式】 下面,结合附图所示之各优选实施例进一步阐述本发明。
[0017] 参见图1至9,本发明之优选实施例是设计一种基于VxWorks操作系统环境下下 CAN总线驱动方法及系统,先进行板级支持包BSP (Board Support Package)的设定: 参见图2,初始化CAN设备,对CAN设备寄存器进行配置,启动参数配置和邮箱配置和使 能中断;为每个节点配置唯一的ID。
[0018] 参见图3,为与主板通信的Μ块从板,建立Μ个虚拟设备及一个广播设备,为每个 虚拟设备及广播设备建立与之对应的接收buff和发送buff,使虚拟设备与目的通讯节点 形成一一对应关系;当主板要进行通信时,先执行链路探测,建立发送节点和目标节点的 链路,即由发送数据的节点发送一个远程帧后,等待接收对方的回复;发送数据的节点接收 到对方的回复后,链路建立,过程正如图7所示。
[0019] 每个通节点间发出的报文都配有唯一的报文ID,所述报文ID包含了有目的节点 ID和发文节点ID的,中断处理过滤报文ID,将报文发送至指定的目的节点,形成节点间的 通信,也即主板的各虚拟设备只接收与之对应节点的从板发过来的报文,而所述从板只接 受包含自身ID的报文和广播ID报文。
[0020] 参见图4,当中断状态显示通讯异常时,中断处理还进行异常处理,将当前CAN设 备的链路状态发送到上层软件。
[0021] 将虚拟设备名、CAN设备参数配置信息提供给应用层,形成类似图5和图6的信息 记录表;所述CAN设备参数配置信息包括本地ID设置、波特率设置、链路探测和链路状态获 取。
[0022] 参见图8至图11基于上述设定,上层软件进行CAN通讯开发,首先初始化CAN设 备,如图7和图6所示,主、从板分别打开设备名、设置本地ID,设置波特率,并且实施链路探 测。
[0023] 参见图10,所述主板通过调用编制接口 wirte或read函数与从板进行通信。当 主板对多个从板进行通讯的建立时,主板打开要通信的设备名,设置本地ID,设置波特率, 实施链路探测,链路建立后,所述主板是通过调用编制接口 wirte或read函数与从板进行 通信然后通过在对应设备描述符fd (-个设备描述符fd对应一个发送buff和一个接收 buff)上收发数据;从板打开和主板通信的设备,设置本地ID,设置波特率,实施链路探测, 链路建立后,然后通过在对应设备描述符fd上收发数据。
[0024] 参见11当需进行广播通信时主板打开要通信的设备,设置本地I D,设置波特 率,建立链路;打开广播设备,设备本地I D,设备波特率,建立链路,在广播fd上发送数 据; 从板打开和主板通信的设备,设置本地ID,设置波特率,链路探测,链路建立后,然后通 过在对应设备描述符f d上收发数据。
[0025] 在通讯过程中,进行心跳检测即节点间通信需要实时监控节点间的通信链路状 况,采用前述的链路探测,并获取链路状态,保证通讯过程中的稳定性。
[0026] 显然,本例中公开的基于VxWorks操作系统环境下的CAN总线驱动方案,为上层 软件CAN通讯开发提供统一接口,上层软件和驱动层不会产生耦合问题,使得上层软件维 护链路更加方便,为设备间通讯提供了高效、稳定CAN通讯;有效降低了上层开发人员 CAN通讯开发的难度。
【权利要求】
1. 一种基于VxWorks操作系统环境下的CAN总线驱动方法,其特征在于,包括如下步 骤: 初始化CAN设备,对CAN设备寄存器进行配置,启动参数配置和邮箱配置及使能中断; 为每个节点配置唯一的ID ; 为与主板通信的Μ块从板,建立Μ个虚拟设备及一个广播设备,为每个虚拟设备及广 播设备建立与之对应的接收buff和发送buff,使虚拟设备与目的通讯节点形成--对应 关系; 当主板要进行通信时,先执行链路探测,建立发送节点和目标节点之间的链路; 每个节点发出的报文都配有唯一的报文ID,所述报文ID中包含有目的节点ID和发文 节点ID,中断处理过滤报文ID,将报文发送至指定的目的节点,形成节点间的通信; 将虚拟设备名、CAN设备参数配置信息提供给应用层。
2. 按照权利要示1所述的基于VxWorks操作系统环境下的CAN总线驱动方法,其特征 在于: 所述执行链路探测包括步骤:由发送数据的节点发送一个远程帧后,等待接收对方的 回复; 接收数据的节点接收到远程帧后,发送回复; 发送数据的节点接收到对方的回复后,链路建立。
3. 按照权利要示1所述的基于VxWorks操作系统环境下的CAN总线驱动方法,其特征 在于: 当中断状态显示通讯异常时,中断处理会进行异常处理,将当前CAN设备的链路状态 发送到上层软件。
4. 按照权利要示1所述的基于VxWorks操作系统环境下的CAN总线驱动方法,其特征 在于: 各所述虚拟设备只接收与之对应节点的从板发过来的报文;所述从板只接受包含自身 ID的报文和广播ID的报文。
5. 按照权利要示1所述的基于VxWorks操作系统环境下的CAN总线驱动方法,其特征 在于: 所述主板通过调用编制接口的wirte或read函数与从板进行通信。
6. 按照权利要示1所述的基于VxWorks操作系统环境下的CAN总线驱动方法,其特征 在于: 所述CAN设备参数配置信息包括本地ID设置、波特率设置、链路探测和链路状态获取。
7. -种基于VxWorks操作系统环境下的CAN总线驱动系统,包括主板、CAN设备,和与 CAN设备对应且与主板通信的从板,其特征在于:CAN设备初始化时,配置CAN设备寄存器, 启动参数配置和邮箱配置及使能中断,每个节点配置有唯一的ID ;假设有Μ块从板与主板 通信,Μ块从板对应配置有Μ个虚拟设备和一个广播设备;每个虚拟设备及广播设备建立有 与之对应的接收buff和发送buff,虚拟设备与目的通讯节点形成--对应关系;主板要 进行通信时,先执行链路探测,建立发送节点和目标节点之间的链路;每个节点发出的报 文都配有唯一的报文ID,所述报文ID中包含有目的节点ID和发文节点ID,中断处理过滤 报文ID,报文被发送至指定的目的节点,形成节点间的通信;虚拟设备名、CAN设备参数配 置信息被提供给应用层。
8. 按照权利要求7所述的基于VxWorks操作系统环境下的CAN总线驱动系统,其特征 在于:各所述虚拟设备只接收与之对应节点的从板发过来的报文;所述从板只接受包含自 身ID的报文和广播ID的报文。
9. 按照权利要求7所述的基于VxWorks操作系统环境下的CAN总线驱动系统,其特征 在于:所述主板通过调用编制接口的wirte或read函数与从板进行通信。
10. 按照权利要求7所述的基于VxWorks操作系统环境下的CAN总线驱动系统,其特 征在于:所述CAN设备参数配置信息包括本地ID设置、波特率设置、链路探测和链路状态获 取。
【文档编号】G06F9/44GK104102607SQ201410339504
【公开日】2014年10月15日 申请日期:2014年7月17日 优先权日:2014年7月17日
【发明者】丁明伟 申请人:航天科工深圳(集团)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1