CN104102607A - 基于VxWorks操作系统环境下的CAN总线驱动方法及系统 - Google Patents
基于VxWorks操作系统环境下的CAN总线驱动方法及系统 Download PDFInfo
- Publication number
- CN104102607A CN104102607A CN201410339504.6A CN201410339504A CN104102607A CN 104102607 A CN104102607 A CN 104102607A CN 201410339504 A CN201410339504 A CN 201410339504A CN 104102607 A CN104102607 A CN 104102607A
- Authority
- CN
- China
- Prior art keywords
- node
- message
- operating system
- system environment
- mainboard
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Small-Scale Networks (AREA)
Abstract
一种基于VxWorks操作系统环境下的CAN总线驱动方法,初始化CAN设备,对CAN设备寄存器进行配置,启动参数配置和邮箱配置和使能中断;为每个节点配置唯一的ID;为与主板通信的M块从板,建立M个虚拟设备及一个广播设备,为每个虚拟设备及广播设备建立与之对应的接收buff和发送buff,使虚拟设备与目的通讯节点形成一一对应关系;当主板要进行通信时,先执行链路探测,建立发送节点和目标节点的链路;每个通节点间发出的报文都配有唯一的报文ID,中断处理过滤报文ID,将报文发送至指定的目的节点,形成节点间的通信。本发明的有益效果是为上层软件CAN通讯开发提供统一接口,上层软件和驱动层不会产生耦合问题降低了上层开发人员CAN通讯开发的难度。
Description
技术领域 本发明涉及VxWorks操作系统技术领域,特别是涉及基于VxWorks操作系统环境下的CAN总线驱动方法及系统。
背景技术 目前,美国风河公司的VxWorks操作系统并没有提供标准的CAN(Controller Area Network)总线驱动开发模型,基于VxWorks操作系统,现有技术CAN驱动主要采用单片机的CAN驱动方法和VxWorks传统I/O设备驱动方法。
参见图12,现有技术利用单片机的CAN驱动开发,需要进行如下工作:
(1)编写自定义的接收、发送缓存;
(2)CAN寄存器配置,中断收、发、异常处理;
(3)编写提供给上层软件的接口。
这种方法缺陷在于提供给上层软件的接口不统一,是非标准接口;应用层和驱动层代码耦合严重,不利于代码维护;自定义的缓存管理,稳定性和效率缺失。
参见图13,现有技术采用VxWorks传统I/O设备驱动开发,驱动开发人员开发要完成如下工作:
(1)编写提供给应用层的接口;
(2)在传统I/O设备驱动开发模型下的数据处理;
(3)中断处理和系统缓存的关联。
这种方法同存在提供给上层软件的接口不统一,非标准接口;应用层和驱动层代码耦合严重,不利于代码维护的问题,同时需要进行CAN相关参数配置,增加了上层软件CAN通讯开发的复杂性。
发明内容 本发明要解决的技术问题在于避免上述现有技术的不足之处而提出一种基于VxWorks操作系统环境下的CAN总线驱动方法,解决现有技术的CAN总线驱动方法中存在提供给上层软件的接口不统一、应用层和驱动层代码耦合严重等问题。
本发明为解决上述技术问题而提出的技术方案是:
提出一种基于VxWorks操作系统环境下的CAN总线驱动方法,初始化CAN设备,对CAN设备寄存器进行配置,启动参数配置和邮箱配置和使能中断;为每个节点配置唯一的ID;
为与主板通信的M块从板,建立M个虚拟设备及一个广播设备,为每个虚拟设备及广播设备建立与之对应的接收buff和发送buff ,使虚拟设备与目的通讯节点形成一一对应关系;
当主板要进行通信时,先执行链路探测,建立发送节点和目标节点之间的链路;
每个节点发出的报文都配有唯一的报文ID,所述报文ID中包含有目的节点ID和发文节点ID,中断处理过滤报文ID,将报文发送至指定的目的节点,形成节点间的通信;
将虚拟设备名、CAN设备参数配置信息提供给应用层。
所述执行链路探测包括步骤:由发送数据的节点发送一个远程帧后,等待接收对方的回复;接收数据的节点接收到远程帧后,发送回复;发送数据的节点接收到对方的回复后,链路建立。
当中断状态显示通讯异常时,中断处理会进行异常处理,将当前CAN设备的链路状态发送到上层软件。
各所述虚拟设备只接收与之对应节点的从板发过来的报文;所述从板只接受包含自身ID的报文和广播ID报文。
所述主板通过调用编制接口wirte或read函数与从板进行通信。
所述CAN设备参数配置信息包括本地ID设置、波特率设置、链路探测和链路状态获取。
本发明为解决上述技术问题还提出的技术方案是:
设计一种基于VxWorks操作系统环境下的CAN总线驱动系统,包括主板、CAN设备,和与CAN设备对应且与主板通信的从板,其特征在于: CAN设备初始化时,配置CAN设备寄存器,启动参数配置和邮箱配置及使能中断,每个节点配置有唯一的ID;假设有M块从板与主板通信,M块从板对应配置有M个虚拟设备和一个广播设备;每个虚拟设备及广播设备建立有与之对应的接收buff和发送buff ,虚拟设备与目的通讯节点形成一一对应关系;主板要进行通信时,先执行链路探测,建立发送节点和目标节点之间的链路;每个节点发出的报文都配有唯一的报文ID,所述报文ID中包含有目的节点ID和发文节点ID,中断处理过滤报文ID,报文被发送至指定的目的节点,形成节点间的通信;虚拟设备名、CAN设备参数配置信息被提供给应用层。
同现有技术相比较,本发明的有益效果是:1.每块从板都配置了相应的虚拟设备,与主板通信,为上层软件CAN通讯开发提供统一接口,上层软件和驱动层不会产生耦合问题,2.采用链路探测的心跳功能,提高了通讯过程的稳定性,使上层软件维护链路更加方便,为设备间通讯提供了高效、稳定CAN通讯; 降低了上层开发人员CAN通讯开发的难度。
附图说明 图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设备驱动方法工作模型。。
具体实施方式 下面,结合附图所示之各优选实施例进一步阐述本发明。
参见图1至9,本发明之优选实施例是设计一种基于VxWorks操作系统环境下下CAN总线驱动方法及系统,先进行板级支持包BSP(Board Support Package)的设定:
参见图2,初始化CAN设备,对CAN设备寄存器进行配置,启动参数配置和邮箱配置和使能中断;为每个节点配置唯一的ID。
参见图3,为与主板通信的M块从板,建立M个虚拟设备及一个广播设备,为每个虚拟设备及广播设备建立与之对应的接收buff和发送buff ,使虚拟设备与目的通讯节点形成一一对应关系;当主板要进行通信时,先执行链路探测,建立发送节点和目标节点的链路,即由发送数据的节点发送一个远程帧后,等待接收对方的回复;发送数据的节点接收到对方的回复后,链路建立,过程正如图7所示。
每个通节点间发出的报文都配有唯一的报文ID,所述报文ID包含了有目的节点ID和发文节点ID的,中断处理过滤报文ID,将报文发送至指定的目的节点,形成节点间的通信,也即主板的各虚拟设备只接收与之对应节点的从板发过来的报文,而所述从板只接受包含自身ID的报文和广播ID报文。
参见图4,当中断状态显示通讯异常时,中断处理还进行异常处理,将当前CAN设备的链路状态发送到上层软件。
将虚拟设备名、CAN设备参数配置信息提供给应用层,形成类似图5和图6的信息记录表;所述CAN设备参数配置信息包括本地ID设置、波特率设置、链路探测和链路状态获取。
参见图8至图11基于上述设定,上层软件进行CAN通讯开发,首先初始化CAN设备,如图7和图6所示,主、从板分别打开设备名、设置本地ID,设置波特率,并且实施链路探测。
参见图10,所述主板通过调用编制接口wirte或read函数与从板进行通信。当主板对多个从板进行通讯的建立时,主板打开要通信的设备名,设置本地ID,设置波特率,实施链路探测,链路建立后, 所述主板是通过调用编制接口wirte或read函数与从板进行通信然后通过在对应设备描述符fd(一个设备描述符fd对应一个发送buff和一个接收buff)上收发数据;从板打开和主板通信的设备,设置本地ID,设置波特率,实施链路探测,链路建立后,然后通过在对应设备描述符fd上收发数据。
参见11当需进行广播通信时主板打开要通信的设备,设置本地ID,设置波特率,建立链路;打开广播设备,设备本地ID,设备波特率,建立链路,在广播fd上发送数据;
从板打开和主板通信的设备,设置本地ID,设置波特率,链路探测,链路建立后,然后通过在对应设备描述符fd上收发数据。
在通讯过程中,进行心跳检测即节点间通信需要实时监控节点间的通信链路状况,采用前述的链路探测,并获取链路状态,保证通讯过程中的稳定性。
显然,本例中公开的基于VxWorks操作系统环境下的CAN总线驱动方案,为上层软件CAN通讯开发提供统一接口,上层软件和驱动层不会产生耦合问题,使得上层软件维护链路更加方便,为设备间通讯提供了高效、稳定CAN通讯; 有效降低了上层开发人员CAN通讯开发的难度。
Claims (10)
1.一种基于VxWorks操作系统环境下的CAN总线驱动方法,其特征在于,包括如下步骤:
初始化CAN设备,对CAN设备寄存器进行配置,启动参数配置和邮箱配置及使能中断;为每个节点配置唯一的ID;
为与主板通信的M块从板,建立M个虚拟设备及一个广播设备,为每个虚拟设备及广播设备建立与之对应的接收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;假设有M块从板与主板通信,M块从板对应配置有M个虚拟设备和一个广播设备;每个虚拟设备及广播设备建立有与之对应的接收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设置、波特率设置、链路探测和链路状态获取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410339504.6A CN104102607A (zh) | 2014-07-17 | 2014-07-17 | 基于VxWorks操作系统环境下的CAN总线驱动方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410339504.6A CN104102607A (zh) | 2014-07-17 | 2014-07-17 | 基于VxWorks操作系统环境下的CAN总线驱动方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104102607A true CN104102607A (zh) | 2014-10-15 |
Family
ID=51670774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410339504.6A Pending CN104102607A (zh) | 2014-07-17 | 2014-07-17 | 基于VxWorks操作系统环境下的CAN总线驱动方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104102607A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965700A (zh) * | 2015-06-09 | 2015-10-07 | 航天科工深圳(集团)有限公司 | VxWorks操作系统下实现驱动SPI设备的方法和系统 |
CN107229457A (zh) * | 2016-03-24 | 2017-10-03 | 宝沃汽车(中国)有限公司 | 电子控制器的引导加载方法、装置、电子控制器及汽车 |
CN111030904A (zh) * | 2019-11-22 | 2020-04-17 | 天津津航计算技术研究所 | 一种多级通讯下多路can总线消息实时处理方法 |
CN112260893A (zh) * | 2020-10-14 | 2021-01-22 | 天津津航计算技术研究所 | 一种基于网络心跳的VxWorks操作系统的以太网冗余装置 |
CN115460035A (zh) * | 2022-08-08 | 2022-12-09 | 武汉海微科技有限公司 | 基于can控制器的文件收发方法、系统、介质及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101839790A (zh) * | 2010-05-06 | 2010-09-22 | 上海哈德电气技术有限公司 | 智能在线标定系统 |
CN202404402U (zh) * | 2011-12-23 | 2012-08-29 | 航天时代电子技术股份有限公司 | 一种基于总线指令的参数可编程延时继电器 |
CN202795704U (zh) * | 2012-09-13 | 2013-03-13 | 中国电力科学研究院 | 一种基于嵌入式系统的充电设施数据采集终端 |
-
2014
- 2014-07-17 CN CN201410339504.6A patent/CN104102607A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101839790A (zh) * | 2010-05-06 | 2010-09-22 | 上海哈德电气技术有限公司 | 智能在线标定系统 |
CN202404402U (zh) * | 2011-12-23 | 2012-08-29 | 航天时代电子技术股份有限公司 | 一种基于总线指令的参数可编程延时继电器 |
CN202795704U (zh) * | 2012-09-13 | 2013-03-13 | 中国电力科学研究院 | 一种基于嵌入式系统的充电设施数据采集终端 |
Non-Patent Citations (1)
Title |
---|
朱欣华等: "基于PCI总线的CAN接口卡机器Vxworks环境下驱动程序的设计", 《电子器件》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965700A (zh) * | 2015-06-09 | 2015-10-07 | 航天科工深圳(集团)有限公司 | VxWorks操作系统下实现驱动SPI设备的方法和系统 |
CN104965700B (zh) * | 2015-06-09 | 2018-07-03 | 航天科工深圳(集团)有限公司 | VxWorks操作系统下实现驱动SPI设备的方法和系统 |
CN107229457A (zh) * | 2016-03-24 | 2017-10-03 | 宝沃汽车(中国)有限公司 | 电子控制器的引导加载方法、装置、电子控制器及汽车 |
CN111030904A (zh) * | 2019-11-22 | 2020-04-17 | 天津津航计算技术研究所 | 一种多级通讯下多路can总线消息实时处理方法 |
CN111030904B (zh) * | 2019-11-22 | 2021-12-14 | 天津津航计算技术研究所 | 一种多级通讯下多路can总线消息实时处理方法 |
CN112260893A (zh) * | 2020-10-14 | 2021-01-22 | 天津津航计算技术研究所 | 一种基于网络心跳的VxWorks操作系统的以太网冗余装置 |
CN115460035A (zh) * | 2022-08-08 | 2022-12-09 | 武汉海微科技有限公司 | 基于can控制器的文件收发方法、系统、介质及设备 |
CN115460035B (zh) * | 2022-08-08 | 2024-01-09 | 武汉海微科技有限公司 | 基于can控制器的文件收发方法、系统、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104102607A (zh) | 基于VxWorks操作系统环境下的CAN总线驱动方法及系统 | |
CN102469021B (zh) | 一种智能弹性框架系统中转发业务流量的方法和成员设备 | |
CN104317765B (zh) | 一种基于串口通讯的一对多通讯系统和实现方法 | |
CN103248526A (zh) | 实现带外监控管理的通信设备、方法及主从切换方法 | |
CN106302536B (zh) | 基于交换机的一体机多系统间通信的方法和装置 | |
CN101883108B (zh) | 动态认证的文件传输方法及系统 | |
CN102546778B (zh) | 基于代理跨平台的无线网络接入控制器板间通信方法 | |
CN103595768B (zh) | 一种实现虚拟化设备间配置同步的方法 | |
CN103095703B (zh) | 一种实现网络与串口数据交互的方法、设备及系统 | |
CN110635982B (zh) | 通讯总线上双主机通讯方法、系统、工控网关及储存介质 | |
WO2021128712A1 (zh) | 电池地址管理方法及电池管理系统 | |
CN103312528A (zh) | 一种心跳消息发送方法及用户终端 | |
CN104468854A (zh) | 一种纵向融合架构vcf的构建方法及设备 | |
CN105357664A (zh) | 一种无线控制系统及其数据通信方法 | |
CN105389278A (zh) | 一种基于can总线的主从机串行通信方法 | |
CN103716092A (zh) | 一种总线型网络中双向光纤通信的组网系统及通信方法 | |
CN115361704A (zh) | 基于基站mac子层直接传输的c2d通信系统及i/o数据通信方法 | |
CN106506303A (zh) | 一种控制器实时以太网EtherCAT的主站系统 | |
CN104348645A (zh) | 服务器和服务器传送数据的方法 | |
CN102752148B (zh) | 基于网元适配子系统的管理系统及方法 | |
CN103856228A (zh) | 一种无线人机交互方法及系统 | |
CN105337947A (zh) | 信息分流转换工具、半导体生产系统及其通信方法 | |
CN106953809A (zh) | 一种基于485分时通信的设备资源采集方法 | |
WO2014048129A1 (zh) | 指示消息发送方法、接收方法、设备及系统 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141015 |
|
WD01 | Invention patent application deemed withdrawn after publication |