一种基于单个can卡的多地址接收、发送方法

文档序号:7927543阅读:153来源:国知局
专利名称:一种基于单个can卡的多地址接收、发送方法
技术领域
本发明涉及计算机多任务处理领域,尤其是一种基于单个CAN卡的多地址接收、发送方法。
背景技术
目前的CAN卡收发协议,只提供单地址接收, 一台工控机要想实现多任务、多地址 接收,就必须安装、连接多个CAN卡, 一则增加了工业成本,二则不利于灵活扩展应用, 三则连接的CAN卡总数有限。

发明内容
本发明提出了一种基于单个CAN卡的多地址接收、发送方法,其特征在于采用缓冲 区存储,先进先出的处理方式,使用单个CAN卡实现多地址、多任务收发的实现功能,
其特征在于包括以下步骤
(1) 地址组的初始化
采用图形化界面或配置文件的方式,协议获得用户所需的接收地址组参数,首先,采 用软件对参数进行合理化判别,返回错误信息,提高协议的可靠性,根据用户提供的 接收地址组,为每个地址开辟一个缓冲区,缓冲区的大小可由协议根据系统开销缺省 配置,也可根据合理的用户参数设定大小,为了保证数据的可靠性和防止数值的二意
性,协议采取对每一个缓冲区进行初始化的方式,彻底的杜绝系统随机数值的干扰;
(2) CAN卡的底层接收,存入缓冲区
通过设置内部定时器,采用CAN卡最高频率的两倍为定时器的步长,每响应一次定 时器事件,调用一次CAN卡驱动程序提供的底层函数,将所接收的数据根据不同的地址 码,存入不同的缓冲区,同时让读写标志加一,缓冲区存储采用循环使用原则,充分发挥 最大的利用效率;
(3) 上层接收函数调用,通过地址码获取对应的缓冲区数据
用户根据其需要设置适当频率的定时器,如果用户频率低于CAN卡的频率,则协议返 回告警信息,提示用户釆用此频率可能造成丢包,并且每响应一次定时器事件,调用一次 上层接收函数接口,按照不同的地址码去取得对应缓冲区的数据,而后将该缓冲区清空,再将读写标志减一,如果读取速度快于写入速度,则缓冲区将被清空,此时返回数据标志 FALSE,表示此次CAN卡没有数据返回,反之,如果写入速度快于读取速度,那么缓冲 区将不能及时读取的数据保存起来,如果在某一段时间内,写入速度一直快于读取速度, 那么,缓冲区将被写满,软件将从时间轴上最远的数据开始覆盖,确保最新的数据能最及 时的读取。
并且本发明具有以下优点提供了一种中层协议的方法,连接CAN卡和上层监控系统 的多个任务,从而实现多地址、多任务同时通信的功能。其上层模块具有实时性强、独立 性好、结构简单易于实现等优点。


图1是依据本发明的基于单个CAN卡的多地址接收、发送方法的多任务协议系统框图2是依据本发明的基于单个CAN卡的多地址接收、发送方法的实现方案;
图3是实验室的PM1000模块监控系统结构采用CAN初始协议的结构示意图4是实验室的PM1000模块监控系统结构采用CAN卡的多任务协议的结构示意图。
具体实施例方式
为实现本发明的基于单个CAN卡的多地址接收、发送方法,其可分为三部分-
1、 址组的初始化
根据用户提供的接收地址组,为每个地址开辟一个缓冲区,并对每一个缓冲区进行 初始化。
2、 CAN卡的底层接收,存入缓冲区
通过设置内部定时器,按适当的频率调用CAN卡驱动程序提供的底层函数,将所接 收的数据根据不同的地址码,存入不同的缓冲区,同时让写入标志加一,如果缓冲区已 满,则循环使用。
3、 层接收函数调用,通过地址码获取对应的缓冲区数据 用户根据其需要设置适当频率的定时器,调用上层接收函数接口,按照不同的地址
码去取得对应缓冲区的数据,而后将该缓冲区清空,再将读写标志减一,如果缓冲区已 读空,则返回数据标志FALSE。
CAN卡多任务协议系统实现方案说明书参见附图2所示。
以下是本发明方法的一个实施例,以某实验室的PM1000模块监控系统作实施例,进一 步说明如下一实验室的PM1000模块监控系统结构,如果采用CAN初始协议,则结构如图3所示。
如果采用CAN卡的多任务协议,则结构如图4所示
对于已经固化的充电机工控模块来说,修改发往其监控上层的CAN目的地址是很困 难的,所以,对于多台采用CAN协议的充电机,如果采用初始的CAN协议,那么监控系 统将必须采用三个CAN卡, 一则增加了工业成本,二则不利于灵活扩展应用,三则连接 的CAN卡总数有限。通过直观的对比,显然釆用CAN卡的多任务协议的系统(图B)更 具有工业成本优势和系统灵活性。
已经根据优选的实施例描述了本发明。显然,在阅读和理解了上述详细说明书后能做 出多种修正和替换。本发明意欲的是本申请构建成包括了落入附属的权利要求书或其等同 物的范围之内的所有这些修正和替换。
权利要求
1、一种基于单个CAN卡的多地址接收、发送方法,其特征在于采用缓冲区存储,先进先出的处理方式,使用单个CAN卡实现多地址、多任务收发的实现功能,其特征在于包括以下步骤(1)地址组的初始化采用图形化界面或配置文件的方式,协议获得用户所需的接收地址组参数,首先,采用软件对参数进行合理化判别,返回错误信息,提高协议的可靠性,根据用户提供的接收地址组,为每个地址开辟一个缓冲区,缓冲区的大小可由协议根据系统开销缺省配置,也可根据合理的用户参数设定大小,为了保证数据的可靠性和防止数值的二意性,协议采取对每一个缓冲区进行初始化的方式,彻底的杜绝系统随机数值的干扰;(2)CAN卡的底层接收,存入缓冲区通过设置内部定时器,采用CAN卡最高频率的两倍为定时器的步长,每响应一次定时器事件,调用一次CAN卡驱动程序提供的底层函数,将所接收的数据根据不同的地址码,存入不同的缓冲区,同时让读写标志加一,缓冲区存储采用循环使用原则,充分发挥最大的利用效率;(3)上层接收函数调用,通过地址码获取对应的缓冲区数据用户根据其需要设置适当频率的定时器,如果用户频率低于CAN卡的频率,则协议返回告警信息,提示用户采用此频率可能造成丢包,并且每响应一次定时器事件,调用一次上层接收函数接口,按照不同的地址码去取得对应缓冲区的数据,而后将该缓冲区清空,再将读写标志减一,如果读取速度快于写入速度,则缓冲区将被清空,此时返回数据标志FALSE,表示此次CAN卡没有数据返回,反之,如果写入速度快于读取速度,那么缓冲区将不能及时读取的数据保存起来,如果在某一段时间内,写入速度一直快于读取速度,那么,缓冲区将被写满,软件将从时间轴上最远的数据开始覆盖,确保最新的数据能最及时的读取。
全文摘要
一种基于单个CAN卡的多地址接收、发送的协议及软件实现。在CAN卡广泛应用于工业控制的今天,对于工控机的功能要求也越来越高,很多时候,基本的CAN协议只提供单地址接收,一台工控机要想实现多任务、多地址接收,就必须安装、连接多个CAN卡,一则增加了工业成本,二则不利于灵活扩展应用,三则连接的CAN卡总数有限。因此,通过软件的方法,采用新的协议,可以很好的解决以上问题。多任务协议在原协议的基础上增加了源地址标识位,这样,不同的任务就可以通过该标识位区别读取自己的信息,也加强了各任务之间的独立性。
文档编号H04L12/40GK101447904SQ20081022545
公开日2009年6月3日 申请日期2008年10月31日 优先权日2008年10月31日
发明者东 惠, 来小康, 杨水丽 申请人:中国电力科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1