基于can测控子系统可靠数据传输方法

文档序号:7742206阅读:457来源:国知局
专利名称:基于can测控子系统可靠数据传输方法
技术领域
本发明涉及测控技术领域,特指构建在基于CAN和TCP/IP混合通信结构之上,一种基于CAN测控子系统可靠数据传输方法。
背景技术
测控系统的发展趋势是用企业局域网对测控子系统进行管理,通过网关连接到 Internet实现远程测控功能。测控子系统对抗干扰性能和实时通信性能要求较高,单次通信量较小,通信距离通常在IOkm以内。如果测控子系统直接采用以太网组网,测控终端的应用层数据将不得不经过TCP/IP协议栈的封装,而测控终端对实时通信性能要求较高。以太网帧的最小长度为64字节,除去以太网首部的18字节和TCP/IP首部的40字节,可存放 6字节应用层数据。以太网帧包含的控制信息太多,而测控终端单次通信量却较小。控制器区域网(Control Area Network, CAN)被广泛应用在对抗干扰性能和实时通信性能要求较高,单次通信量较小,通信距离在3 5km以内的一些场合,本发明的应用领域是基于CAN与TCP/IP混合通信结构的测控系统,其测控子系统是基于CAN的。CAN废除站地址编码,数据链路层不使用任何关于系统配置的信息标识发送节点和接收节点,由节点根据应用层数据判断是否接收这帧信息。因此,系统扩展时,不用对任何节点的软件和硬件做修改,可以直接在CAN中增加节点,测控终端节点个数在理论上不受限制,组网灵活。由节点进行应用层解码判断是否接收这帧信息,意味着CAN中任何节点都要接收并解码这帧信息,势必会造成应用层广播风暴,增加其他非接收节点的CPU负荷;测控终端节点的数据传输是基于事件触发机制的,在时间上是随机的,这种不可预知的CPU负荷会造成其他非接收节点的实时性能急剧下降,整个测控子系统的实时性能随之急剧下降。目前,大多数CAN控制器支持硬件过滤机制,设置测控终端应用层地址,将其作为测控终端机号承载于CAN帧标识符上,通过硬件过滤判断是否接收这帧信息,在数据链路层实现点对点传输,不需要上传到应用层进行解码,防止测控子系统实时性能急剧下降。CAN采用带冲突避免的载波侦听多址访问(CSMA/CA)作为总线介质访问控制协议来解决信道冲突问题,总线空闲时(节点侦听到总线上至少存在3个连续隐性位),所有与总线相连的节点都可以开始发送帧。两个以上的节点同时开始发送帧时,对CAN标识符进行逐位仲裁。仲裁获胜(被判定为优先级最高)的节点可继续发送帧,仲裁失利的节点则立刻停止发送转而进行接收。当将测控终端机号承载于CAN帧标识符上时,CAN帧标识符并没有反映出进行总线介质访问控制所需的优先级信息,进行优先级逐位仲裁的结果是不准确的,反而会造成测控子系统实时性能急剧下降,因此,需要尽可能地避免冲突,减小优先级逐位仲裁失利的可能性。CAN是短帧通信系统,发送节点要将一条应用层命令拆分成多个CAN帧进行传输, 接收节点要将接收到的多个CAN帧组合成一条意义明确的应用层命令。分帧、组帧的速度CN 102164066 A
说明书
2/3页 是制约测控子系统实时性能的关键因素。在基于CAN和TCP/IP混合通信结构的测控系统中,需要通过网关连接到Internet 实现远程测控功能,Internet是一种分组交换网络,不可避免地存在错包、丢包和过度时延等情况。除此之外,如果采用停等协议,将出现高层网络协议限制底层网络硬件所提供的功能,所以TCP/IP采用了流水线可靠数据传输协议。因此,需要实现测控终端与Internet远程控制端之间的对等可靠数据传输。

发明内容
本发明的目的是在基于CAN和TCP/IP混合通信结构的测控系统中,保证基于CAN 测控子系统获得理想的实时性能和实现测控终端与Internet远程控制端之间的对等可靠数据传输。本发明的内容是一种基于CAN测控子系统可靠数据传输方法,包括基于CAN测控子系统结构化CAN帧标识符1、基于CAN测控子系统冲突避免算法2和基于CAN测控子系统可靠数据传输算法3。本发明的技术方案是在基于CAN测控子系统结构化CAN帧标识符1基础上,实施基于CAN测控子系统冲突避免算法2和基于CAN测控子系统可靠数据传输算法3。本发明的有益效果是保证基于CAN测控子系统获得理想的实时性能和实现测控终端与Internet远程控制端之间的对等可靠数据传输。


图1是基于CAN测控子系统可靠数据方法结构示意图;图2是基于CAN测控子系统结构化CAN帧标识符示意图;图3是基于CAN测控终端发送缓存内存空间示意图;图4是基于CAN测控终端接收缓存内存空间示意图;图5是基于CAN测控终端发送窗口示意图;图6是基于CAN测控终端接收窗口示意图。
具体实施例方式一种基于CAN测控子系统可靠数据传输方法结构如图1所示,包括基于CAN测控子系统结构化CAN帧标识符1、基于CAN测控子系统冲突避免算法2和基于CAN测控子系统可靠数据传输算法3。基于CAN测控子系统结构化CAN帧标识符如图2所示,包括测控终端机号域4,通信控制域5,帧序号域6,第一帧信息域7。测控终端机号域4标识CAN帧的接收节点,测控终端的CAN控制器通过硬件过滤判断是否接收这帧信息,当将测控终端机号域4承载于CAN帧标识符上时,CAN帧标识符并没有反映出进行总线介质访问控制所需的优先级信息,通过基于CAN测控子系统冲突避免算法2尽可能地避免冲突,减小优先级逐位仲裁失利的可能性。假设测控终端节点有一个帧要发送,基于CAN测控子系统冲突避免算法2包括如下步骤一、如果初始时该节点侦听到总线空闲,它将在一个被称作离散帧间间隔
4(Distributed Inter-frame Space, DIFS)的短时间段后发送该帧。二、否则,该节点选取一个随机回退计数值并在侦听到总线空闲时递减该值。当侦听到总线忙时,计数值保持不变。 三、当计数值减为0时(只可能发生在该节点侦听到总线空闲时),该节点发送整个CAN帧并等待确认。四、如果收到确认,该节点知道CAN帧已被正确接收了。如果该节点要发生另一 CAN帧,它将从步骤二开始总线介质访问控制;如果没有收到确认,该节点将重新进入步骤二的回退阶段,并从一个更大的范围内选取随机回退计数值。随机回退计数值按照指数回退(exponential backoff)规则选取当传输一个给定CAN帧时,在该帧的一行中连续经历了第η次发送后,随机地从{0,1,2,…,2m_l}中选取一个值作为随机回退计数值,这里m = min(n, 10)。为了表示CAN帧是属于哪条命令的哪个帧,在CAN帧标识符中设置帧序号域6和第一帧信息域7。为每一条应用层命令分配一段连续的内存空间作为发送缓存8和接收缓存9,当发送时,直接将发送缓存8中的内容从低地址起按8个字节为一段复制到各个CAN 帧的应用层数据段10中;当接收时,把CAN帧中的应用层数据段10提取出来,根据帧序号域6指明的序号信息,将其复制到接收缓存9的指定地址处,由于接收缓存9中的内容是按序复制的,因此,当CAN帧接收完毕时,应用层命令随即组帧完毕。基于CAN测控子系统可靠数据传输算法3,设置窗口长度16 (N),发送节点包括如下操作步骤一、当一条应用层命令需要发送时,将其存放于相应的发送缓存8中,直接将发送缓存8中的内容从低地址起按8个字节为一段复制到各个CAN帧的应用层数据段中 10,并缓存各个CAN帧。二、发送节点检查下一个可用于发送的帧序号13(nextseqnUm),如果该帧序号在发送窗口 11内,则发送该CAN帧发送;否则继续缓存该CAN帧。三、超时重传,用定时器来防止CAN帧丢失,每个CAN帧都必须拥有独立的逻辑定时器,使用单个硬件定时器模拟多个逻辑定时器。四、如果发送节点收到某个CAN帧的应用层ACK,且该CAN帧的帧序号在发送窗口 11内,则将那个被确认的CAN帧标记为已接收。如果该CAN帧的帧序号等于发送窗口基序号12(send-base),则发送窗口基序号12向前移动到具有最小帧序号的未被确认CAN帧处。返回步骤二直到所有的CAN帧都被发送并确认。接收节点包括如下操作步骤一、帧序号在[rcv_base,rcv_base+N_l]内的CAN 帧被正确接收。在此情况下,接收到的CAN帧位于接收窗口 14内,向发送节点返回应用层 ACK ;如果该CAN帧是以前未接收到的CAN帧,则根据帧序号域指明的序号信息,将其复制到接收缓存9的指定地址处。如果该CAN帧的帧序号等于接收窗口基序号15(rCV_base),则接收窗口基序号15向前移动到具有最小帧序号的未被接收CAN帧处。二、帧序号在[rcv_ base-N,rcv_base-l]内的CAN帧被正确接收。在此情况下,必须返回一个应用层ACK,即使该CAN帧是接收节点已经确认过的CAN帧。三、其他情况,忽略该CAN帧。
权利要求
1.一种基于CAN测控子系统可靠数据传输方法,包括基于CAN测控子系统结构化CAN 帧标识符(1)、基于CAN测控子系统冲突避免算法(2)和基于CAN测控子系统可靠数据传输算法⑶。
2.根据权利要求1所述的一种基于CAN测控子系统可靠数据传输方法,其特征在于 所述的基于CAN测控子系统结构化CAN帧标识符(1)包括测控终端机号域G),通信控制域 (5),帧序号域(6),第一帧信息域(7)。
3.根据权利要求1所述的一种基于CAN测控子系统可靠数据传输方法,其特征在于 所述的基于CAN测控子系统冲突避免算法(2)包括如下步骤一、如果初始时该节点侦听到总线空闲,它将在一个被称作离散帧间间隔的短时间段后发送该帧。二、否则,该节点选取一个随机回退计数值并在侦听到总线空闲时递减该值。当侦听到总线忙时,计数值保持不变。三、当计数值减为0时(只可能发生在该节点侦听到总线空闲时),该节点发送整个 CAN帧并等待确认。四、如果收到确认,该节点知道CAN帧已被正确接收了。如果该节点要发生另一 CAN帧,它将从步骤二开始总线介质访问控制;如果没有收到确认,该节点将重新进入步骤二的回退阶段,并从一个更大的范围内选取随机回退计数值。
4.根据权利要求1所述的一种基于CAN测控子系统可靠数据传输方法,其特征在于 所述的基于CAN测控子系统可靠数据传输算法(3),发送节点包括如下操作步骤一、当一条应用层命令需要发送时,将其存放于相应的发送缓存(8)中,直接将发送缓存(8)中的内容从低地址起按8个字节为一段复制到各个CAN帧的应用层数据段中(10),并缓存各个 CAN帧。二、发送节点检查下一个可用于发送的帧序号(13),如果该帧序号在发送窗口(11) 内,则发送该CAN帧发送;否则继续缓存该CAN帧。三、超时重传,用定时器来防止CAN帧丢失,每个CAN帧都必须拥有独立的逻辑定时器,使用单个硬件定时器模拟多个逻辑定时器。 四、如果发送节点收到某个CAN帧的应用层ACK,且该CAN帧的帧序号在发送窗口(11)内, 则将那个被确认的CAN帧标记为已接收。如果该CAN帧的帧序号等于发送窗口基序号(12), 则发送窗口基序号(1 向前移动到具有最小帧序号的未被确认CAN帧处。返回步骤二直到所有的CAN帧都被发送并确认。
5.根据权利要求1所述的一种基于CAN测控子系统可靠数据传输方法,其特征在于 所述的基于CAN测控子系统可靠数据传输算法(3),接收节点包括如下操作步骤一、帧序号在[rcv_base,rcv_base+N_l]内的CAN帧被正确接收,rcv_base表示接收窗口基序号 (15),rcv_base表示窗口长度(16)。在此情况下,接收到的CAN帧位于接收窗口 (14)内, 向发送节点返回应用层ACK ;如果该CAN帧是以前未接收到的CAN巾贞,则根据帧序号域指明的序号信息,将其复制到接收缓存(9)的指定地址处。如果该CAN帧的帧序号等于接收窗口基序号(15),则接收窗口基序号(15)向前移动到具有最小帧序号的未被接收CAN帧处。 二、帧序号在[rcv_base_N,rcv_base_l]内的CAN帧被正确接收。在此情况下,必须返回一个应用层ACK,即使该CAN帧是接收节点已经确认过的CAN帧。三、其他情况,忽略该CAN 帧。
全文摘要
本发明涉及测控技术领域,特指构建在基于CAN和TCP/IP混合通信结构之上,一种基于CAN测控子系统可靠数据传输方法,其包括基于CAN测控子系统结构化CAN帧标识符、CAN测控子系统冲突避免算法和基于CAN测控子系统可靠数据传输算法。在基于CAN和TCP/IP混合通信结构的测控系统中,保证基于CAN测控子系统获得理想的实时性能和实现测控终端与Internet远程控制端之间的对等可靠数据传输。
文档编号H04L12/40GK102164066SQ20101011198
公开日2011年8月24日 申请日期2010年2月23日 优先权日2010年2月23日
发明者周媛 申请人:周媛
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1