一种提高通讯链路层协议效率的方法

文档序号:7627503阅读:223来源:国知局
专利名称:一种提高通讯链路层协议效率的方法
技术领域
本发明属于通信领域,尤其涉及一种利用通讯链路层协议进行从节点轮询和数据收发的方法。
背景技术
主从通讯协议是承载于任意一种主从串口物理通道上的数据链路层通讯协议。由于物理条件的限制,在主从串口总线上,不允许两个从节点同时向主节点发送报文。为了避免报文冲突,主从通讯协议由主节点控制,定时向各个从节点发送查询帧,从节点收到主节点的查询帧后,才可以上报报文。初始状态,主从节点都是在发送、接收地址帧状态,如图1所示1、主节点向从节点发送地址帧格式的查询帧,并将状态改成接收数据帧状态;2、从节点收到查询帧后,将状态改成发送数据帧状态,若有数据要向主节点上报,则上报数据帧,否则返回数据帧格式的无事响应帧,状态仍是接收地址帧状态;3、主节点收到从节点的数据帧后,将状态迁回地址帧格式状态;主节点若有数据发送给从节点,主节点向从节点发送地址帧格式的转发帧;4、从节点返回并将数据帧格式从节点号,状态改成接收数据帧状态;5、主节点收到从节点的响应后,发送数据帧;6、从节点接收到数据帧后,返回确认帧,并将状态迁回接收地址帧状态。
上述交互过程中若主节点无数据发送,则每次轮询都发送查询帧。
参见图2,是现有技术中主从通讯协议控制下数据收发的处理流程,主节点启动定时器,每隔一段时间片X向一个从节点发送查询帧或转发帧,直到所有从节点都轮询一遍后,再进行下一轮的发送查询帧或转发帧。为保证能够及时收到从节点上报的消息,定时发送查询帧和转发帧是间隔进行的。如果主节点在发送转发帧的时候没有数据要向从节点发送,则改发送查询帧。X时间片由主、从节点控制芯片的处理能力决定,要求大于等于主节点与从节点之间两次收发帧的间隔时间。例如一个系统中有N个从节点,主节点每次轮询从节点的间隔时间为X,则主节点轮询完所有的从节点的时间为X*N。这样,主节点向某一从节点连续发送两次数据帧的间隔时间为X*N*2。对于单帧的数据来说,这样的主从通讯协议的效率是能够满足要求的,但对于集中在一个时间点的有大量数据配置的情况,这样的效率不能满足要求比如系统中的主节点要向某一从节点加载软件,而系统中的其他从节点均没有数据需要发送或接收,此时该从节点需要接收的帧数据为Y,则配置时间为X*N*2*Y,若间隔时间X为0.2秒,从节点数N为20,一次需要配置的数据Y为500帧,则一次配置的时间将长达4000秒,即一个多小时。
因此,在现有的主从通讯协议中,由于主节点定时轮询各个从节点,当从节点个数较多时,主从通讯协议中的每个从节点被轮询的间隔较长,导致完成一次数据配置的时间较长,配置效率低。如果缩短轮询间隔,将增加主节点控制芯片的负担,同时在系统空闲时,导致用于从节点轮询的开销增加。

发明内容
本发明的目的提供一种提高数据链路层通讯协议效率的方法,旨在解决现有技术中主从通讯协议中的每个从节点被轮询的间隔较长,导致完成一次数据配置的时间较长,配置效率低的问题。
本发明是这样实现的,一种提高通讯链路层协议效率的方法,主节点定时轮询从节点,从节点收到主节点查询报文后向主节点上报数据报文,所述方法包括
配置从节点的轮询优先级;根据从节点的轮询优先级调整轮询频率,提高主节点对轮询优先级高的从节点的轮询频率,降低主节点对轮询优先级低的从节点的轮询频率。
在本发明的一个实施例中,当主节点的消息队列存在等待发送给当前从节点的消息,且其他从节点的消息队列中没有等待发送的消息时,提高所述当前从节点的轮询优先级,增加主节点对所述当前从节点的轮询频率。
在本发明的另一个实施例中,当从节点经多次轮询没有响应时,降低所述从节点的轮询优先级,减少主节点对所述从节点的轮询频率。
所述方法进一步包括在主节点上设置当前轮询优先级标志;设置从节点的轮询优先级标志;主节点在轮询过程中判断当前从节点的轮询优先级是否大等于当前轮询优先级标志,是则对所述当前从节点进行轮询,否则取消对所述当前从节点的轮询。
所述通讯链路层协议设置为独立的数据收发处理部分和协议控制部分;所述数据收发处理部分负责报文的发送和接收;所述协议控制部分控制主从节点的轮询频率。
本发明根据从节点的不同优先级通过调整帧的收发间隔,缩短了主节点对从节点传送数据的配置时间,提高了数据链路层通讯协议的效率。


图1是主从通讯协议中主从节点的状态示意图;图2是现有技术中主从通讯协议控制下数据收发的处理流程示意图;图3是主从通讯协议中协议控制层与数据收发层的关系图;图4是在本发明的优选实施例中主从节点之间的通讯状态示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在主从通讯协议中,对节点的地址、数据的收发状态要求严格,但对各种帧的收发间隔没有限制。所以只要保证主、从节点两端的控制芯片能够完成帧的处理,帧的收发间隔可以适当的调整。因此本发明中通过适当调整帧的收发间隔,即从节点的轮询间隔,达到缩短主节点对从节点传送数据的配置时间,提高数据链路层通讯协议的效率的目的。
在本发明中,通过赋予从节点不同的轮询优先级来调整主节点对从节点的轮询频率,即增加轮询优先级比较高的从节点的轮询频率,降低轮询优先级比较低的从节点的轮询频率。轮询优先级的高低可以根据不同从节点的控制芯片处理能力进行设置,也可以根据某个从节点数据收发情况动态调整。
作为本发明的一个优选实施例,如图3所示,主节点在每个从节点转发数据完毕时,进行时间间隔调整的判断,查看主节点的消息队列中,是否还有等待发送给该从节点的消息(以从节点1为例),并且其他从节点的消息队列中没有等待发送的消息,是则说明此时其他从节点空闲,从而提高节点1的轮询优先级,否则不调整节点1的轮询优先级。主节点将原有的轮询时间间隔X改为X’(X’>X),在这段时间内,只对从节点1进行转发数据操作。如果X’时间结束时,向该节点1的发送消息队列中还有消息,也必须切换回正常的每X时间片轮询,以保证其他节点被轮询的机率。如果X’时间还未结束时,向从节点1发送消息的队列为空,则主节点也转入正常的第X时间片轮询的处理。如果X’时间还未结束,且向从节点1的发送消息队列中还有消息等待发送,此时其他从节点N的发送消息队列中也有消息需要发送,则从节点N必须等到X’时间结束后,进入正常的X间隔轮询时才能进行消息发送。
X’和X的值必须参照具体的主从串口硬件,以及主、从节点控制芯片的处理能力而定,例如控制芯片CPU或单片机等每秒能收发处理多少个报文,控制芯片处理能力高,则轮询的间隔就短。
按上述方法,在最好的情况下当其他从节点都没有数据帧收发时,向某一从节点连续发送Y个数据帧的时间为(假设X’时间片内能够完成m次数据帧发送)Y/m*(X’+N*X)。假设m=5次,Y=500帧,X=0.2秒,X’=0.2秒,N=20个从节点,则发送的时间为420秒,比原有的4000秒效率提高了近10倍。
作为本发明的另一个实施例,以设置高、低两个轮询优先级为例,设置高轮询优先级的从节点每X秒轮询一次,低轮询优先级的从节点轮询频率为高轮询优先级的从节点的1/2。假设系统中有N=20个从节点,前10个是高轮询优先级,后10个是低轮询优先级。在轮询前10个从节点用时10*X秒,但在对10个从节点进行轮询后,主节点并不轮询第11个节点,而是继续开始轮询第1个节点,把前10个节点再次轮询一遍,然后才开始轮询第11-20个节点。当然,在实际应用中,高低轮询优先级的节点是往往交错在一起的,可以在主节点上增加当前轮询优先级标志,每次主节点只轮询大于等于当前轮询优先级标志高的从节点。例如假设1/3/5/7...10个从节点的轮询优先级为高轮询优先级,轮询优先级标志为1,2/4/6/8...10个从节点的轮询优先级为低轮询优先级,轮询优先级标志为0。轮询启动后,主节点将当前轮询优先级标志设置为1,在对从节点进行轮询时,判断从节点的轮询优先级是否大等于当前轮询优先级标志,是则进行轮询,否则取消轮询,即1/3/5/7...10个从节点被轮询,2/4/6/8...10个从节点将不被轮询。
1/3/5/7...10个从节点轮询完成后,主节点将当前轮询优先级标志设置为0,此时由于所有20个从节点的轮询优先级均为大于等于当前轮询优先级标志0,因此将全部被轮询。再下一次时,主节点重新当前轮询优先级标志设置为1,如此循环。
在本发明的另一个实施例中,主节点也可以根据从节点的数据收发情况动态调整从节点的轮询优先级。例如对于多次轮询没有响应的从节点,可以降低其轮询优先级,减少轮询频率。比如当从节点N连续i次轮询都没有响应时,降低其轮询优先级,在下一次轮到该从节点时主节点不发送查询帧,转向下一个从节点轮询,这样每隔j次轮询一次从节点N,从而提高其他从节点被轮询的频率。在轮询过程中,如果节点N有数据需要发送时,就必须等到下一个j次轮询时方可。
由于不同产品中不同的主从串口硬件类型不同,驱动接口也不相同。为了保证方案的可移植性,在本发明的一个实施例中将主从通讯协议的数据收发处理与协议控制分开。数据收发处理主要负责报文的发送和接收,协议控制主要控制主从轮询的间隔、维护链路状态等,将二者的处理分开,就可以使协议控制部分能够灵活地匹配不同产品的主从串口类型,可以针对不同的主从串口硬件和控制芯片,确定不同的收发时间间隔。
其中,主从数据收发处理层仍保留原来的查询/无事响应/转发/从节点号/消息/消息响应等模式,主、从节点收到地址和数据帧时,根据相应的状态转换接收或发送的模式。
协议控制层将定时轮询的控制独立出来,主从节点之间传送的还是查询/无事响应/转发/从节点号/消息/消息响应几种帧,帧之间的先后顺序不变,即帧状态机的迁移不变。但由于这些帧都是由主节点发出的查询、转发两种帧发起的,什么时间发这两种帧由上述的轮询机制来控制。那么不同的产品就可以根据自身的硬件处理能力或功能需要,在保证协议处理状态机的正常运转的前提下按需求修改轮询间隔。
如图4示,协议控制和数据收发是两个不同的任务,有各自不同的状态。主从之间的帧可以分成数据帧和地址帧两大类。其中,查询和转发是地址帧,其他帧都是数据帧。数据收发任务在收发帧时改变状态。数据帧状态和地址帧状态只能处理相对应状态的帧类型,否则帧会被丢弃。一个帧的帧头包含有两层内容,一方面是说明该帧是数据帧还是地址帧,另一方面是说明该帧是查询、转发或者响应等类型,由此可见协议控制和数据收发两个任务各取所需,处理时相互独立又相互制约。
在本发明中,上述主从通讯协议的轮询改进方案也可以扩展到非主从串口物理通道的情况,例如CELLBUS总线、FE(快速以太网)/GE(千兆以太网)总线、LVDS(Low Voltage Differential Signaling,低电压差动讯号)总线等。这些总线与主从串口的区别在于可以同时向多个节点收发消息,此时轮询间隔可以进行更加灵活的调整,可以在一个X间隔内同时向N个从节点发起查询,对于不同优先级的从节点可以利用多定时器,对不同优先级的从节点设置不同的轮询时间间隔。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种提高通讯链路层协议效率的方法,主节点定时轮询从节点,从节点收到主节点查询报文后向主节点上报数据报文,其特征在于,所述方法包括配置从节点的轮询优先级;根据从节点的轮询优先级调整轮询频率,提高主节点对轮询优先级高的从节点的轮询频率,降低主节点对轮询优先级低的从节点的轮询频率。
2.如权利要求1所述的方法,其特征在于,当主节点的消息队列存在等待发送给当前从节点的消息,且其他从节点的消息队列中没有等待发送的消息时,提高所述当前从节点的轮询优先级,增加主节点对所述当前从节点的轮询频率。
3.如权利要求1所述的方法,其特征在于,当从节点经多次轮询没有响应时,降低所述从节点的轮询优先级,减少主节点对所述从节点的轮询频率。
4.如权利要求1所述的方法,其特征在于,所述方法进一步包括在主节点上设置当前轮询优先级标志;设置从节点的轮询优先级标志;主节点在轮询过程中判断当前从节点的轮询优先级是否大等于当前轮询优先级标志,是则对所述当前从节点进行轮询,否则取消对所述当前从节点的轮询。
5.如权利要求1所述的方法,其特征在于,所述通讯链路层协议设置为独立的数据收发处理部分和协议控制部分;所述数据收发处理部分负责报文的发送和接收;所述协议控制部分控制主从节点的轮询频率。
全文摘要
本发明适用于通信领域,提供了一种提高通讯链路层协议效率的方法,主节点定时轮询从节点,从节点收到主节点查询报文后向主节点上报数据报文,所述方法包括配置从节点的轮询优先级;根据从节点的轮询优先级调整轮询频率,提高主节点对轮询优先级高的从节点的轮询频率,降低主节点对轮询优先级低的从节点的轮询频率。本发明根据从节点的不同优先级通过调整帧的收发间隔,缩短了主节点对从节点传送数据的配置时间,提高了数据链路层通讯协议的效率。
文档编号H04L29/06GK1859184SQ200510121468
公开日2006年11月8日 申请日期2005年12月30日 优先权日2005年12月30日
发明者唐宁 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1