一种链路检测方法和接收设备与流程

文档序号:19799363发布日期:2020-01-31 14:47阅读:163来源:国知局
一种链路检测方法和接收设备与流程

本发明涉及高速串行链路状态检测技术,尤其涉及一种链路检测方法和接收设备。



背景技术:

串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。串行通信只需要少数几条线就可以在系统间交换信息,因此,特别适用于计算机与计算机、计算机与外部设备之间的远距离通信。但串行通信传输过程中必然存在信道噪声和码间串扰,无法避免串行传输引起的误码。例如图1为设备间通过串行接口相互通信的示意图,设备a通过链路0将串行数据发送给设备b,同时设备a通过链路1接收设备b发送的串行数据。如果链路误码率较高时设备a继续向设备b发送有效数据,则将会导致数据丢失,同时设备b将接收到随机数据,可能导致设备b严重故障。

为了避免上述问题需要检测链路的误码率,现行的链路状态检测方法为:设备a发送特殊控制字给设备b,设备b检测接收到的控制字是否和设备a发送的控制字相同,如果相同则认为链路有效,不相同则链路无效。但是,使用这种检测方法检测时,真正要传输的信息就必须停止传输,直到检测完毕为止,因此,这种检测方法只能反应检测时的链路传输情况,并不能反应实际传输过程中链路的链路状态。



技术实现要素:

为解决上述技术问题,本发明实施例期望提供一种链路检测方法和接收设备,能够反应实际传输过程中链路的链路状态。

本发明的技术方案是这样实现的:

第一方面,提供一种链路检测方法,所述方法包括:

接收发送设备通过链路发送的串行数据信息,所述串行数据信息包括需要传输的信息和对应的校验信息;

根据所述校验信息校验所述串行数据信息,得到校验结果;

若所述校验结果表示接收到的串行数据信息未被篡改,则确定所述链路的链路状态是有效状态;

若所述校验结果表示接收到的串行数据信息被篡改,则确定所述链路的链路状态是无效状态。

结合第一方面,在第一种可实现方式中,所述校验所述串行数据信息之后,所述方法还包括:

若所述校验结果表示接收到的串行数据信息未被篡改,则将无误传输个数加1作为新的无误传输个数;

若所述校验结果表示接收到的串行数据信息被篡改,则将有误传输个数加1作为新的有误传输个数;

根据所述新的无误传输个数和所述新的有误传输个数,确定出所述链路的链路状态。

结合第一方面,在第二种可实现方式中,所述方法还包括:

在接收所述串行数据信息之后的预设时间段内,未接收新的串行数据信息时,将所述有误传输个数加1作为新的有误传输个数。

结合第一种和第二种可实现方式,在第三种可实现方式中,所述根据所述新的无误传输个数和所述新的有误传输个数,确定出所述链路的链路状态,包括:

获取保存的漏桶值;

若所述新的无误传输个数等于第一门限,则将所述漏桶值减m的结果作为新的漏桶值,将所述新的无误传输个数清零;

若所述新的有误传输个数等于第二门限,则将所述漏桶值加n的结果作为新的漏桶值,将所述新的有误传输个数清零;

若所述新的漏桶值小于低门限,则生成链路有效指示,所述链路有效指示表示所述链路的链路状态是有效;

若所述新的漏桶值大于高门限,则生成链路无效指示,所述链路无效指示表示所述链路的链路状态是无效。

结合第三种可实现方式,在第四种可实现方式中,所述方法还包括:

所述新的漏桶值大于所述高门限,且所述新的漏桶值是所述漏桶值加n的结果时,生成所述链路无效指示;

将所述新的漏桶值设置为漏桶最大值。

结合第一方面,在第五种可实现方式中,所述根据所述校验信息校验所述串行数据信息包括:

根据循环冗余校验法对所述串行数据信息进行校验,所述串行数据信息包括需要传输的信息和循环冗余校验码,其中,所述循环冗余校验码位于所述串行数据信息中的无效信息段内。

第二方面,提供一种接收设备,所述接收设备包括:

接收单元,用于接收发送设备通过链路发送的串行数据信息,所述串行数据信息包括需要传输的信息和对应的校验信息;

校验单元,用于根据所述校验信息校验所述串行数据信息,得到校验结果;

链路状态生成单元,用于在所述校验结果表示接收到的串行数据信息未被篡改时,确定所述链路的链路状态是有效状态;在所述校验结果表示接收到的串行数据信息被篡改时,确定所述链路的链路状态是无效状态。

结合第二方面,在第一种可实现方式中,所述接收设备还包括:

统计单元,用于在所述校验结果表示接收到的串行数据信息未被篡改时,将无误传输个数加1作为新的无误传输个数;

所述统计单元,还用于在所述校验结果表示接收到的串行数据信息被篡改时,将有误传输个数加1作为新的有误传输个数;

所述链路状态生成单元,还用于根据所述新的无误传输个数和所述新的有误传输个数,确定出所述链路的链路状态。

结合第二方面,在第二种可实现方式中,所述统计单元,还用于在接收所述串行数据信息之后的预设时间段内,未接收新的串行数据信息时,将有误传输个数加1作为新的有误传输个数。

结合第一种和第二种可实现方式,在第三种可实现方式中,所述链路状态生成单元具体用于:

获取保存的漏桶值;

若所述新的无误传输个数等于第一门限,则将所述漏桶值减m的结果作为新的漏桶值,将所述新的无误传输个数清零;

若所述新的有误传输个数等于第二门限,则将所述漏桶值加n的结果作为新的漏桶值,将所述新的有误传输个数清零;

若所述新的漏桶值小于低门限,则生成链路有效指示,所述链路有效指示表示所述链路的链路状态是有效;

若所述新的漏桶值大于高门限,则生成链路无效指示,所述链路无效指示表示所述链路的链路状态是无效。

结合第三种可实现方式,在第四种可实现方式中,所述链路状态生成单元还用于:

所述新的漏桶值大于所述高门限,且所述新的漏桶值是所述漏桶值加n的结果时,生成所述链路无效指示;

将所述新的漏桶值设置为漏桶最大值。

结合第二方面,在第五种可实现方式中,所述校验单元具体用于:

根据循环冗余校验法对所述串行数据信息进行校验,所述串行数据信息包括需要传输的信息和循环冗余校验码,其中,所述循环冗余校验码位于所述串行数据信息中的无效信息段内。

本发明实施例提供了一种链路检测方法和接收设备,先接收发送设备通过链路发送的串行数据信息,所述串行数据信息包括需要传输的信息和对应的校验信息;之后根据所述校验信息校验所述串行数据信息,得到校验结果;当校验结果表示接收到的串行数据信息未被篡改时,确定链路的链路状态是有效状态;当校验结果表示接收到的串行数据信息被篡改时,确定链路的链路状态是无效状态。这样一来,由于接收设备接收到的串行数据信息包括需要传输的信息和对应的校验信息,接收设备能够根据校验信息对串行数据信息进行校验,从而确定出链路的链路状态,如此,接收设备就无需专门接收用于检测链路状态的信息来检测链路的链路状态,而是根据接收到的校验码对用于实际通信的串行数据信息进行校验,确定链路的链路状态,因此,能够实际反应链路的真实链路状态,从而提高了检测效率。

附图说明

图1为现有的设备间通过链路相互通信的示意图;

图2为本发明实施例提供的一种链路检测方法的流程图;

图3为本发明实施例提供的另一种链路检测方法的流程图;

图4为本发明实施例提供的一种接收设备的结构示意图;

图5为本发明实施例提供的另一种接收设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

实施例一

本发明实施例提供一种链路检测方法,如图2所示,应用于接收设备。该方法可以包括:

步骤101、接收发送设备通过链路发送的串行数据信息。

这里,该串行数据信息包括需要传输的信息和对应的校验信息,校验信息是发送设备对需要传输的信息按照一定规则进行编码得到的结果。

步骤102、根据校验信息校验串行数据信息,得到校验结果。

本实施例的校验方法可以包括很多种,例如消息摘要算法(messagedigestalgorithm,md)、循环冗余校验码(cyclicredundancycheck,crc)校验法等,本实施例对具体的校验方法并不限定。

优选的,校验方法是crc校验法。具体的,根据crc校验法对所述串行数据信息进行校验,所述串行数据信息包括需要传输的信息和crc校验码,其中,所述crc校验码位于所述串行数据信息中的无效信息段内。这里,crc校验码是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。crc校验法是一种数据传输检错功能,对需要传输的信息进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。现有技术中的crc校验法已经非常成熟,已经公开了相应的算法和代码。

步骤103、若校验结果表示接收到的串行数据信息未被篡改,则确定链路的链路状态是有效状态,结束当前处理流程。

对于crc校验法,当校验结果为0时,表示接收到的串行数据信息未被篡改。

步骤104、若校验结果表示接收到的串行数据信息被篡改,则确定链路的链路状态是无效状态。

对于crc校验法,当校验结果为非0时,表示接收到的串行数据信息被篡改。

这样一来,由于接收设备接收到的串行数据信息包括需要传输的信息和对应的校验信息,接收设备能够根据校验信息对串行数据信息进行校验,从而确定出链路的链路状态,如此,接收设备就无需专门接收用于检测链路状态的信息来检测链路的链路状态,而是根据接收到的校验码对用于实际通信的串行数据信息进行校验,确定链路的链路状态,因此,能够实际反应链路的真实链路状态,从而提高了检测效率。

进一步的,步骤102之后,所述方法还包括:若校验结果表示接收到的串行数据信息未被篡改,则将无误传输个数加1作为新的无误传输个数;若校验结果表示接收到的串行数据信息被篡改,则将有误传输个数加1作为新的有误传输个数;根据新的无误传输个数和所述新的有误传输个数,确定出链路的链路状态。这里,无误传输个数和有误传输个数的初始值都为0。

进一步的,所述方法还包括:在接收所述串行数据信息之后的预设时间段内,未接收新的串行数据信息时,将有误传输个数加1作为新的有误传输个数。这里,该预设时间段可以是从确定出无误传输个数或者有误传输个数的时刻开始,所经过预定时间段。

进一步的,根据新的无误传输个数和所述新的有误传输个数,确定出所述链路的链路状态,具体包括:获取保存的漏桶值;若新的无误传输个数等于第一门限,则将漏桶值减m的结果作为新的漏桶值,将新的无误传输个数清零;若新的有误传输个数等于第二门限,则将漏桶值加n的结果作为新的漏桶值,将新的有误传输个数清零;若新的漏桶值小于低门限,则生成链路有效指示,所述链路有效指示表示所述链路的链路状态是有效;若新的漏桶值大于高门限,则生成链路无效指示,所述链路无效指示表示所述链路的链路状态是无效。

这里,由于链路上传输的信息大多未被篡改,只有少部分被篡改,未被篡改的信息数量较多,相应的无误传输个数也就是个比较大的数值,因此,将第一门限是1000,从而减少接收设备的计算量;由于有误传输个数较少,因此,第二门限是1;本实施例中,高门限是1;低门限是0。值得说明的是,上述门限都可以根据所在场景进行调整。

进一步的,所述方法还包括:新的漏桶值大于所述高门限,且新的漏桶值是漏桶值加n的结果时,生成所述链路无效指示;将所述新的漏桶值设置为漏桶最大值。具体的,当新的漏桶值大于所述高门限时,生成所述链路无效指示,判断该新的漏桶值是否是保存的漏桶值加n的结果;若是,则将新的漏桶值设置为漏桶最大值。优选的,漏桶最大值是63。这样,只要链路传输串行数据信息过程中,当链路的链路状态是无效时,只要串行数据信息被篡改,漏桶值就要重新回到63,从而只有经过多次连续的未被篡改的传输之后,才能确定出链路的链路状态是有效状态,因此,确定出链路的链路状态就更加准确了。

实施例二

本发明实施例提供一种链路检测方法,该方法应用于串行通信系统,该系统包括作为发送设备的设备a、作为接收设备的设备b和链路0,这里,设备a向设备b发送信息是通过链路0完成的。如图3所示,该可以包括:

步骤201、设备a将需要传输的信息进行crc编码,得到crc校验码。

校验信息的计算方法可以包括:假设需要传输的信息的二进制字段为k位,校验字段为r位,则码字长度为n,其中,n=k+r。设备a和设备b事先约定了一个r次多项式g(x),在k位信息字段的后面添加r个0,再除以g(x)对应的代码序列,得到的余数即为校验信息。这里,设备a可以计算串行数据信息中的关键字或者控制字的验证码,从而减少了crc校验码的工作量。

步骤202、设备b通过链路0接收设备a发送的串行数据信息。

这里,该串行数据信息包括需要发送的信息和crc校验码,其中,crc校验码附着在需要发送的信息的后面,存放在串行数据信息的无效信息段内。

步骤203、设备b对接串行数据信息进行crc校验,得到校验结果。

当设备b收到串行数据信息后,用接收到的串行数据信息的二进制码与g(x)对应的代码序列相除,若余数为0,则认为串行数据信息未被篡改,传输无差错;若余数不为0,则认为串行数据信息被篡改,传输出现了错误。

步骤204、设备b判断校验结果是否为0。若是,则执行步骤205;若否,则执行步骤209。

步骤205、设备b将无误传输个数加1。

具体的,若校验结果为0,则生成无误传输指示,该无误传输指示可以是高电平,根据无误传输指示,将无误传输个数加1。

这里,接收设备可以包括两个计数器。一个无误计数器用于统计无误传输个数,该无误计数器可以通过高电平触发进行计数,该无误计数器的最大门限是1000,当无误计数器计数到达1000后自动清零,重新开始计数;另一个有误计数器用于统计有误传输个数,该有误计数器可以通过低电平触发进行计数,该有误计数器的最大门限是1,当有误计数器计数到达1后自动清零,重新开始计数。

步骤206、设备b判断无误传输个数是否等于1000。若是,则执行步骤207;若否,则执行步骤217。

步骤207、设备b获取漏桶值,将该漏桶值减1作为新的漏桶值,将无误传输个数清零,之后执行步骤212。

具体的,若无误传输个数等于1000,则生成减少指令,减少指令用于将漏桶值减1,根据该减少指令,将漏桶值减1作为新的漏桶值。

该减少指令用于指示链路状态生成单元将当前的漏桶值减1。

步骤208、设备b判断在接收串行数据信息之后的预设时间段内,是否接收到新的串行数据信息。若否,则执行步骤209;若是,则执行步骤217。

若设备b接收到新的串行数据信息,则说明串行通信并未超时;若未接收到新的串行数据信息,则说明串行通信超时。

步骤209、设备b将有误传输个数加1。

具体的,若校验结果为非0,生成有误传输指示,该有误传输指令可以是低电平;根据有误传输指示,将有误传输个数加1作为新的有误传输个数。

步骤210、设备b判断有误传输个数是否等于1。若是,则执行步骤211;若否,则执行步骤217。

步骤211、设备b获取漏桶值,将该漏桶值加1作为新的漏桶值,将有误传输个数清零。

这里,初始的漏桶值是预先设置的。

步骤212、设备b判断新的漏桶值是否大于1或是否小于0。

这里,1是高门限,0是低门限。

步骤213、若新的漏桶值小于0,则设备b生成链路有效指示,结束当前处理流程。

该链路有效指示表示链路0的链路状态是有效,链路0是有效链路。

步骤214、若新的漏桶值大于1,则设备b生成链路无效指示。

该链路无效指示表示链路0的链路状态是无效,链路0是无效链路。

步骤215、设备b判断新的漏桶值是否是漏桶值加1的结果。若是,则执行步骤216;否则执行步骤217。

步骤216、设备b将新的漏桶值设置为63,结束当前处理流程。

这里,63是漏桶值的最大值。

步骤217、设备b等待接收新的串行数据信息。

实施例三

本发明实施例提供一种接收设备30,如图4所示,该接收设备30可以包括:

接收单元301,用于接收发送设备通过链路发送的串行数据信息,所述串行数据信息包括需要传输的信息和对应的校验信息。

校验单元302,用于根据所述校验信息校验所述串行数据信息,得到校验结果。

链路状态生成单元303,用于在所述校验结果表示接收到的串行数据信息未被篡改时,确定所述链路的链路状态是有效状态;在所述校验结果表示接收到的串行数据信息被篡改时,确定所述链路的链路状态是无效状态。

这样一来,由于接收设备接收到的串行数据信息包括需要传输的信息和对应的校验信息,接收设备能够根据校验信息对串行数据信息进行校验,从而确定出链路的链路状态,如此,接收设备就无需专门接收用于检测链路状态的信息来检测链路的链路状态,而是根据接收到的校验码对用于实际通信的串行数据信息进行校验,确定链路的链路状态,因此,能够实际反应链路的真实链路状态,从而提高了检测效率。

进一步的,如图5所示,所述接收设备30还包括:

统计单元304,用于在所述校验结果表示接收到的串行数据信息未被篡改时,将无误传输个数加1作为新的无误传输个数。

所述统计单元304,还用于在所述校验结果表示接收到的串行数据信息被篡改时,将有误传输个数加1作为新的有误传输个数。

所述链路状态生成单元303,还用于根据所述新的无误传输个数和所述新的有误传输个数,确定出所述链路的链路状态。

进一步的,统计单元304,还用于在接收所述串行数据信息之后的预设时间段内,未接收新的串行数据信息时,将有误传输个数加1作为新的有误传输个数。

进一步的,所述链路状态生成单元303具体用于:

获取保存的漏桶值;

若所述新的无误传输个数等于第一门限,则将所述漏桶值减m的结果作为新的漏桶值,将所述新的无误传输个数清零;

若所述新的有误传输个数等于第二门限,则将所述漏桶值加n的结果作为新的漏桶值,将所述新的有误传输个数清零;

若所述新的漏桶值小于低门限,则生成链路有效指示,所述链路有效指示表示所述链路的链路状态是有效;

若所述新的漏桶值大于高门限,则生成链路无效指示,所述链路无效指示表示所述链路的链路状态是无效。

进一步的,所述链路状态生成单元303还用于::

所述新的漏桶值大于所述高门限,且所述新的漏桶值是所述漏桶值加n的结果时,生成所述链路无效指示;

将所述新的漏桶值设置为漏桶最大值。

进一步的,所述校验单元302具体用于:

根据crc校验法对所述串行数据信息进行校验,所述串行数据信息包括需要传输的信息和crc校验码,其中,所述crc校验码位于所述串行数据信息中的无效信息段内。

在实际应用中,所述接收单元301、校验单元302、链路状态生成单元303和统计单元304均可由位于接收设备30中的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)、或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的接收设备。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令接收设备的制造品,该指令接收设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1