本申请提供一种基于异步422总线的可变长度帧高可靠性数据接收方法,方法包括:搜索帧头,若帧头有效则将帧头放入缓冲区;接收帧长度,并按照预设协议解析帧长度,将解析得到的帧长度放入缓冲区;接收命令控制码,若控制码有效则将控制码放入缓冲区;按照解析得到的帧长度接收指定长度的数据,将接收到的数据放入缓冲区;进行整帧数据有效性判断,若有效性判断正确则确定接收的帧为有效帧,若有效性判断错误则确定数据接收出现异常,清空缓冲区。本申请提供的方法先按照预设协议解析帧长度,再确定控制码有效,然后按照解析得到的帧长度接收指定长度的数据,最后进行整帧数据有效性判断,保证了数据接收的可靠性。
High reliability data receiving method of variable length frame based on asynchronous 422 bus
【技术实现步骤摘要】
基于异步422总线的可变长度帧高可靠性数据接收方法
本专利技术涉及数据接收
,尤其涉及一种基于异步422总线的可变长度帧高可靠性数据接收方法。
技术介绍
RS-422异步串行通讯技术由于设计简单,占用资源少,广泛应用于导弹武器系统,但是异步422在物理层没有同步信号,在数据链路层没有HDLC(High-LevelDataLinkControl,高级数据链路控制)协议保证数据可靠性,在应用协议层的可变长度帧更是加剧了数据接收的难度,这就造成需要在应用协议层去做协议帧层的解析去做帧头搜索、剔除误帧、超时帧等,目前没有统一的应用协议层标准去规范应用协议层的数据接收方法。
技术实现思路
为解决上述问题,本申请实施例提供了一种基于异步422总线的可变长度帧高可靠性数据接收方法,所述方法包括:搜索帧头,若帧头有效则将所述帧头放入缓冲区;接收帧长度,并按照预设协议解析所述帧长度,将解析得到的帧长度放入所述缓冲区;接收命令控制码,若控制码有效则将所述控制码放入所述缓冲区;按照解析得到的帧长度接收指定长度的数据,将接收到的数据放入所述缓冲区;进行整帧数据有效性判断,若有效性判断正确则确定接收的帧为有效帧,若有效性判断错误则确定数据接收出现异常,清空所述缓冲区。可选地,所述整帧数据有效性判断方式为循环冗余校验CRC16。可选地,所述预设协议中周期通信采用命令应答式通信方式。可选地,通信周期T中包括6段时间依次为:t1,t2,t3,t4,t5,t6;所述命令应答式通信方式中命令帧和应答帧的时序为:t1为命令帧建立时间,在主站进行;t2为命令帧传送时间,在主、从二站进行;t3为命令帧处理时间,在从站进行;t4为应答帧建立时间,在从站进行;t5为应答帧传送时间,在主、从二站进行;t6为应答帧处理时间,在主站进行。可选地,所述预设协议中周期通信时,从站在收到命令帧后超过T1时间仍然不能发送应答帧时,停止发送该应答帧;主站发送命令帧后超过T2时间仍然不能收到应答帧或应答帧错误是,应用上一周期的数据。可选地,所述T1=t3+t4。可选地,所述T2=t1+t2+t3+t4+t5+t6。可选地,所述命令帧包括FLAG,帧长度,命令控制码CO,主站发送给从站的命令参数CP,校验和;所述FLAG为帧头0,所述帧长度为包括帧头和校验的本帧总字节数,校验和为所述本帧前边字节按二进制数求CRC16。可选地,所述应答帧包括FLAG,帧长度,应答状态码ST,从站回送给主站的应答参数SP,应答参数校验和。可选地,所述帧长度为8位无符号整数;CO是主站发送给从站的控制命令,为8位二进制整数;ST是从站回送给主站的应答状态,为8位二进制整数。有益效果如下:本申请提供的方法先按照预设协议解析帧长度,再确定控制码有效,然后按照解析得到的帧长度接收指定长度的数据,最后进行整帧数据有效性判断,若有效性判断正确则确定接收的帧为有效帧,若有效性判断错误则确定数据接收出现异常,清空缓冲区,保证了数据接收的可靠性。附图说明下面将参照附图描述本申请的具体实施例,其中:图1示出了本申请一实施例提供的一种预设协议的命令帧和应答帧建立、传送、处理时序示意图;图2示出了本申请一实施例提供的一种基于异步422总线的可变长度帧高可靠性数据接收方法的流程示意图;图3示出了本申请一实施例提供的一种基于异步422总线的可变长度帧高可靠性数据接收方法抗干扰示意图。具体实施方式RS-422异步串行通讯技术由于设计简单,占用资源少,广泛应用于导弹武器系统,但是异步422在物理层没有同步信号,在数据链路层没有HDLC协议保证数据可靠性,在应用协议层的可变长度帧更是加剧了数据接收的难度,这就造成需要在应用协议层去做协议帧层的解析去做帧头搜索、剔除误帧、超时帧等,目前没有统一的应用协议层标准去规范应用协议层的数据接收方法。本申请提供了一种基于异步422总线的可变长度帧高可靠性数据接收方法,通过设计高可靠性数据接收协议、完善的数据接收流程和基于“搜索窗”算法的数据接收方法,实现基于异步422总线的可变长度帧高可靠性数据接收方法,能保证数据接收的正确性和可靠性,提高了异步422总线在导弹武器系统应用的可靠性,该方法也可以应用在对可靠性要求较高、需要一定通信冗余能力的通信系统。本申请为了提高线路的利用率降低链路开销,预设了一种协议,该协议为一种可变长度的422总线帧协议以及相应的帧格式。同时基于该帧格式提供了一种基于收发应答帧的数据交互流程以及基于搜索窗算法的数据接收流程,以便保证数据时效性。具体的,预设协议如下:本申请的预设协议为变长度的422总线帧协议,具体为可变长度的高可靠性异步422总线帧协议。假设周期通信系统通信周期为T,为了保证每周期数据都可以有效及时接收,周期通信采用命令应答式通信方式。通信周期T中包括6段时间依次为:t1,t2,t3,t4,t5,t6,其命令帧和应答帧建立、传送、处理时序如图1所示。命令应答式通信方式中命令帧和应答帧的时序为:t1:命令帧建立时间,在主站进行;t2:命令帧传送时间,在主、从二站进行;t3:命令帧处理时间,在从站进行;t4:应答帧建立时间,在从站进行;t5:应答帧传送时间,在主、从二站进行;t6:应答帧处理时间,在主站进行。预设协议中周期通信时,从站在收到命令帧后超过T1(如T1=t3+t4)时间仍然不能发送应答帧时就停止发送该帧。主站在发送命令帧后超过T2(如T2=t1+t2+t3+t4+t5+t6)时间仍然不能收到应答帧或应答帧错误的情况下,应用上一周期的数据。可变长度帧格式能够较高的降低系统链路开销,提高线路的利用率,命令应答帧格式采用可变长度帧格式。命令帧格式为:FLAG帧长度COCP校验和应答帧格式为:FLAG帧长度STSP校验和其中:FLAG:帧头0;帧长度:包括帧头和校验和在内的本帧总字节数,8位无符号整数;CO:命令控制码,是主站发送给从站的控制命令,8位二进制整数;ST:应答状态码,是从站回送给主站的应答状态,8位二进制整数;CP:主站发送给从站的命令参数;SP:从站回送给主站的应答参数;校验和:为本帧前边字节(包括帧头)按二进制数求CRC(循环冗余校验)16。在设计好上述协议内容后,为了保证数据有效可靠接收,本申请还提供一种基于异步422总线的可变长度帧高可靠性数据接收方法,该方法是一种基于“搜索窗”的接收算法,具体包括:搜索本文档来自技高网...
【技术保护点】
1.一种基于异步422总线的可变长度帧高可靠性数据接收方法,其特征在于,所述方法包括:/n搜索帧头,若帧头有效则将所述帧头放入缓冲区;/n接收帧长度,并按照预设协议解析所述帧长度,将解析得到的帧长度放入所述缓冲区;/n接收命令控制码,若控制码有效则将所述控制码放入所述缓冲区;/n按照解析得到的帧长度接收指定长度的数据,将接收到的数据放入所述缓冲区;/n进行整帧数据有效性判断,若有效性判断正确则确定接收的帧为有效帧,若有效性判断错误则确定数据接收出现异常,清空所述缓冲区。/n
【技术特征摘要】
1.一种基于异步422总线的可变长度帧高可靠性数据接收方法,其特征在于,所述方法包括:
搜索帧头,若帧头有效则将所述帧头放入缓冲区;
接收帧长度,并按照预设协议解析所述帧长度,将解析得到的帧长度放入所述缓冲区;
接收命令控制码,若控制码有效则将所述控制码放入所述缓冲区;
按照解析得到的帧长度接收指定长度的数据,将接收到的数据放入所述缓冲区;
进行整帧数据有效性判断,若有效性判断正确则确定接收的帧为有效帧,若有效性判断错误则确定数据接收出现异常,清空所述缓冲区。
2.根据权利要求1所述的方法,其特征在于,所述整帧数据有效性判断方式为循环冗余校验CRC16。
3.根据权利要求1所述的方法,其特征在于,所述预设协议中周期通信采用命令应答式通信方式。
4.根据权利要求3所述的方法,其特征在于,通信周期T中包括6段时间依次为:t1,t2,t3,t4,t5,t6;
所述命令应答式通信方式中命令帧和应答帧的时序为:t1为命令帧建立时间,在主站进行;t2为命令帧传送时间,在主、从二站进行;t3为命令帧处理时间,在从站进行;t4为应答帧建立时间,在从站进行;t5为应答帧传送时间,在主、从二站进行;t6为应答帧...
【专利技术属性】
技术研发人员:王景煜,庞兆峰,于颖,贾琪明,刘征宇,王飞,贾珂,
申请(专利权)人:北京电子工程总体研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。