CN106911530B - 一种基于串口冗余策略的关键测试指令传输系统及方法 - Google Patents

一种基于串口冗余策略的关键测试指令传输系统及方法 Download PDF

Info

Publication number
CN106911530B
CN106911530B CN201710010411.2A CN201710010411A CN106911530B CN 106911530 B CN106911530 B CN 106911530B CN 201710010411 A CN201710010411 A CN 201710010411A CN 106911530 B CN106911530 B CN 106911530B
Authority
CN
China
Prior art keywords
data
frame
instruction
interface
receiving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710010411.2A
Other languages
English (en)
Other versions
CN106911530A (zh
Inventor
窦小明
谭佳琳
毛强
金娜
李彬
吴晓蕊
杨飞
王毅
丛薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Academy of Launch Vehicle Technology CALT
Beijing Institute of Near Space Vehicles System Engineering
Original Assignee
China Academy of Launch Vehicle Technology CALT
Beijing Institute of Near Space Vehicles System Engineering
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Academy of Launch Vehicle Technology CALT, Beijing Institute of Near Space Vehicles System Engineering filed Critical China Academy of Launch Vehicle Technology CALT
Priority to CN201710010411.2A priority Critical patent/CN106911530B/zh
Publication of CN106911530A publication Critical patent/CN106911530A/zh
Application granted granted Critical
Publication of CN106911530B publication Critical patent/CN106911530B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)

Abstract

一种基于串口冗余策略的关键测试指令传输系统及方法,系统包括串行接口发送器和串行接口接收器;其中,串行接口发送器包括数据输出模块、数据接收模块、数据帧格式判断模块;串行接口接收器包括数据接收模块、数据帧格式判断模块、指令有效性判断模块及数据输出模块;本发明当在干扰条件下两个节点通过串行接口进行关键测试指令交互时,单路串口双向失效或双路串口单向失效的情况下,仍能保证节点数据通信的可靠性,避免在强电磁干扰情况下关键测试指令传输异常等问题,从而所属系统运行的持续性、可靠性和安全性,为系统正常持续运行、及时可靠完成各项功能奠定基础。

Description

一种基于串口冗余策略的关键测试指令传输系统及方法
技术领域
本发明涉及航空航天、可靠性和串行接口消息处理领域,特别涉及一种基于串口冗余策略的关键测试指令传输方法。
背景技术
串行接口由于其传输速率高、可靠性高、技术成熟、易于扩展等优点,在航空航天系统电气设备互联中得到了广泛的应用。串行接口一般采用点对点的连接方式,相比总线接口,物理层、链路层及协议层均有所简化,提高易用性的同时降低使用成本。串行接口的操作实体一般包括发送器和接收器,其中发送器接收协议层数据,通过链路层增加传输协议后,经物理层发送到接收器物理层,再经接收器链路层解析协议,获取传输数据后由协议层进行应用。发送器协议层的数据为二进制数据量,经协议层发送时增加起始位、校验位和停止位,物理层按照起始位、数据位、校验位和停止位的顺序依次通过差分电缆向接收器传输数据。接收器物理层从差分电缆接收数据后,协议层对起始位、数据位、校验位和停止位的有效性进行判断,判断无误后将数据位送入协议层,待协议层使用。常用串口在传输电缆及协议层已经增加了可靠性措施,提高了数据传输的可靠性,但在干扰环境下,以上措施仍不足以保障串行接口通信的高可靠性,为了解决干扰环境下串行接口可靠性降低的问题,提出一种基于串口冗余策略的关键测试指令传输系统及方法。
从文献中看,国内外尚未针对通过串行接口传输的关键测试指令高可靠性处理的实例,因此,提出一种基于串口冗余策略的关键测试指令高可靠性传输方法。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于串口冗余策略的关键测试指令传输系统及方法。
本发明的技术解决方案是:一种基于串口冗余策略的关键测试指令传输系统,包括串行接口发送器和串行接口接收器;其中,串行接口发送器包括数据输出模块、数据接收模块、数据帧格式判断模块;串行接口接收器包括数据接收模块、数据帧格式判断模块、指令有效性判断模块及数据输出模块;
串行接口发送器的数据输出模块与串行接口接收器的数据接收模块、以及串行接口接收器的数据输出模块与串行接口发送器的数据接收模块之间通过冗余串行接口进行数据交互;
数据输出模块,对待输出数据进行数据帧封装后,查询输出状态,在输出状态为闲时,分别通过冗余串行接口向数据接收模块发送封装的数据;所述的待输出数据对于串行接口发送器为关键指令和帧计数,每次关键指令发送时,帧计数加1;对于串行接口接收器,为关键指令的接收、解析状态;
数据接收模块启动数据接收后,查询冗余串行接口接收状态,当状态为非空时,接收所有串行接口数据存放在冗余串行接口循环队列中;否则继续查询冗余串行接口接收状态,等待接收串行接口数据;
数据帧格式判断模块,判断冗余串行接口循环队列中的数据的长度是否超过最小完整帧长,若超过,则并对数据的完整性进行判断,当接收到一帧完整数据时,将完整数据帧从数据帧头、数据区、校验和以及数据帧尾四个方面判断确定当前数据帧是否为有效数据帧,当有效时,从队列中获取数据,将数据区中的数据输出至指令有效性判断模块;当无效时,丢弃该数据帧;
指令有效性判断模块对输入数据中的帧计数进行判断,当该帧计数对应关键指令未执行时,解析关键指令并发送至外部相应执行部件,当该帧计数对应指令已执行时,丢弃该指令;并将关键指令的接收、解析状态发送至数据输出模块。
所述指令有效性判断模块的具体实现方式如下:
(2.1)根据接收的数据区中的数据,判断冗余串行接口中的两个接口的指令更新状态,当两个接口指令均更新,则执行步骤(2.2),若只有一个接口的指令更新,则执行步骤(2.3),否则,等待接收数据;
(2.2)获取两个接口对应数据中的帧计数,当一个接口记为接口A的帧计数大于记录的有效指令帧序号且另一接口记为接口B的帧计数不大于记录的有效指令帧序号时,则解析接口A对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至数据输出模块,并将接口A的帧计数记录为有效指令帧序号;当两个接口的帧计数都大于记录的有效指令帧序号,则进一步比较两个接口的帧计数,将帧计数较大的接口对应的关键指令进行解析,并发送至外部相应执行部件,发送关键指令的接收、解析状态至数据输出模块,并将该接口的帧计数记录为有效指令帧序号;当两个接口的帧计数都不大于记录的有效指令帧序号时,则丢弃接收的数据,发送关键指令的接收、解析状态至数据输出模块,等待接收数据;
(2.3)获取该接口对应数据中的帧计数,判断该帧计数是否大于记录的有效指令帧序号,若大于,则解析该接口对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至数据输出模块,并将该接口的帧计数记录为有效指令帧序号;否则丢弃接收的数据,发送关键指令的接收、解析状态至数据输出模块,等待接收数据。
数据帧格式判断模块的实现方式如下:
第一步,判断冗余串行接口循环队列中数据长度是否大于最小完整帧,若大于,则转第二步;否则,继续等待数据;
第二步,根据帧格式从循环队列头指针开始寻找帧尾,若找到帧尾,则转第三步;否则,继续等待数据转第一步;
第三步,根据帧格式中帧长度位置与帧尾的偏移量,从循环队列中获取当前帧长度;进而根据帧长度计算帧头在循环队列中的位置;
第四步,获取帧头,将帧头与帧格式进行一致性判断,若帧头与帧格式一致,则转第五步,否则从循环队列中读出错误数据并丢弃,继续等待数据转第一步;
第五步,根据校验值位置与帧尾偏移量获取当前数据校验值,并根据接收的数据区中的数据重新计算校验值,对接收校验值与计算校验值进行比对;若二者一致,则从队列中获取数据并将数据区中的数据输出至指令有效性判断模块;若不一致,则从循环队列中读出错误数据并丢弃,继续等待数据转第一步。
一种基于串口冗余策略的关键测试指令传输方法,步骤如下:
(1)发送方设置帧计数,初始值为0;根据测试需求,在当前传输周期,将帧计数加1,并将待传输的关键指令与帧计数封装后采用双冗余串行接口的方式进行发送;
(2)接收方接收封装后的关键指令与帧计数,并存放在串行接口循环队列中,执行步骤(3);
(3)判断上述循环队列中的数据长度是否大于最小完整帧,若大于,则转步骤(4);否则,进入下一传输周期转步骤(1);
(4)对循环队列中的数据进行完整及一致性判断,若满足条件,则从循环队列中获取数据并执行步骤(5);否则,进入下一传输周期转步骤(1);
(5)从获取的数据中进一步读取数据区中的数据,根据接收的数据区中的数据,判断冗余串行接口中的两个接口的指令更新状态,当两个接口指令均更新,则执行步骤(6),若只有一个接口的指令更新,则执行步骤(7),否则,进入下一传输周期转步骤(1);
(6)获取两个接口对应数据中的帧计数,当一个接口记为接口A的帧计数大于记录的有效指令帧序号且另一接口记为接口B的帧计数不大于记录的有效指令帧序号时,则解析接口A对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将接口A的帧计数记录为有效指令帧序号;当两个接口的帧计数都大于记录的有效指令帧序号,则进一步比较两个接口的帧计数,将帧计数较大的接口对应的关键指令进行解析,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将该接口的帧计数记录为有效指令帧序号;当两个接口的帧计数都不大于记录的有效指令帧序号时,则丢弃接收的数据,发送关键指令的接收、解析状态至发送方,进入下一传输周期转步骤(1);所述的有效指令帧序号的初始值为0;
(7)获取该接口对应数据中的帧计数,判断该帧计数是否大于记录的有效指令帧序号,若大于,则解析该接口对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将该接口的帧计数记录为有效指令帧序号;否则丢弃接收的数据,发送关键指令的接收、解析状态至发送方,进入下一传输周期转步骤(1)。
所述的完整及一致性判断步骤如下:
(4.1)根据帧格式从循环队列头指针开始寻找帧尾,若找到帧尾,则转(4.2);否则,进入下一传输周期转步骤(1);
(4.2)根据帧格式中帧长度位置与帧尾的偏移量,从循环队列中获取当前帧长度;进而根据帧长度计算帧头在循环队列中的位置;
(4.3)获取帧头,将帧头与帧格式进行一致性判断,若帧头与帧格式一致,则转(4.4),否则从循环队列中读出错误数据并丢弃,进入下一传输周期转步骤(1);
(4.4)根据校验值位置与帧尾偏移量获取当前数据校验值,并根据接收的数据区中的数据重新计算校验值,对接收校验值与计算校验值进行比对;若二者一致,则从队列中获取数据;若不一致,则从循环队列中读出错误数据并丢弃,进入下一传输周期转步骤(1)。
本发明与现有技术相比有益效果为:
(1)一种基于串口冗余策略的关键测试指令传输系统及方法,其中关键测试指令为影响系统正常运行或测试流程的指令,如自检指令、诸元装订指令、电池激活指令等。当在干扰条件下两个节点通过串行接口进行关键测试指令交互时,单路串口双向失效或双路串口单向失效的情况下,仍能保证节点数据通信的可靠性,避免在强电磁干扰情况下关键测试指令传输异常等问题,从而所属系统运行的持续性、可靠性和安全性,为系统正常持续运行、及时可靠完成各项功能奠定基础。
(2)通过本发明提供的基于串口冗余策略的关键测试指令传输系统及方法,当干扰条件造成单路串行接口传输关键测试指令异常时,冗余串行接口仍可通过备份通道完成测试指令的传输及测试状态的接收,避免传统单路串行接口传输方式在干扰条件下数据丢失的情况,从而确保串行接口数据传输的及时性和可靠性,保证系统基于串行接口的功能性能满足设计要求。
(3)串行接口接收器从冗余串行接口接收指令后,对指令合法性进行判断,当指令合法时,执行对应操作,避免冗余串口相同指令重复执行;
(4)串行接口接收器完成指令操作后,通过冗余串行接口向串行接口发送器返回测试状态,在冗余串行接口单路双向故障或双路单向故障的情况下,确保测试状态数据及时返回发送器,从而保障测试流程正常进行;
通过本发明可显著提高串行接口传输关键测试指令及测试状态的可靠性,避免干扰条件下串行接口无法完成数据传输的问题,进一步提高系统运行的可靠性,将该技术应用于实际生产具有重要意义。
附图说明
图1为本发明系统结构图;
图2为本发明数据接收模块工作流程图;
图3为本发明数据帧格式判断模块工作流程图;
图4为本发明指令有效性判断模块工作流程图;
图5为本发明数据输出模块工作流程图。
具体实施方式
下面结合附图及实例对本发明做详细说明。如图1所示,本发明一种基于串口冗余策略的关键测试指令传输系统,包括串行接口发送器和串行接口接收器;其中,串行接口发送器包括数据输出模块、数据接收模块、数据帧格式判断模块;串行接口接收器包括数据接收模块、数据帧格式判断模块、指令有效性判断模块及数据输出模块;
串行接口发送器的数据输出模块与串行接口接收器的数据接收模块、以及串行接口接收器的数据输出模块与串行接口发送器的数据接收模块之间通过冗余串行接口进行数据交互;
数据输出模块,对待输出数据进行数据帧封装后,查询输出状态,在输出状态为闲时,分别通过冗余串行接口向数据接收模块发送封装的数据;所述的待输出数据对于串行接口发送器为关键指令和帧计数,每次关键指令发送时,帧计数加1;对于串行接口接收器,为关键指令的接收、解析状态;
数据接收模块启动数据接收后,查询冗余串行接口接收状态,当状态为非空时,接收所有串行接口数据存放在冗余串行接口循环队列中;否则继续查询冗余串行接口接收状态,等待接收串行接口数据;
数据帧格式判断模块,判断冗余串行接口循环队列中的数据的长度是否超过最小完整帧长,若超过,则并对数据的完整性进行判断,当接收到一帧完整数据时,将完整数据帧从数据帧头、数据区、校验和以及数据帧尾四个方面判断确定当前数据帧是否为有效数据帧,当有效时,从队列中获取数据,将数据区中的数据输出至指令有效性判断模块;当无效时,丢弃该数据帧;
指令有效性判断模块对输入数据中的帧计数进行判断,当该帧计数对应关键指令未执行时,解析关键指令并发送至外部相应执行部件,当该帧计数对应指令已执行时,丢弃该指令;并将关键指令的接收、解析状态发送至数据输出模块。
下面分别对上述各模块进行详细说明。
(一)数据接收模块
如图2所示,数据接收模块的工作流程为:
1、冗余串行接口开始接收数据后,首先根据串行接口状态寄存器判断数据接收缓冲状态,当接收缓冲非空时,则进行数据接收。
2、步骤1中,当接收缓冲为空时,表示当前无新数据,无需接收,结束当前接收流程;
3、当接收缓冲非空时,对接口接收循环队列状态进行判断,当队列非满时,进行数据接收。
4、步骤2中,当接口接收循环队列为满时,继续写入队列会造成数据丢失,因此暂停数据接收,结束当前接收流程。
5、当接收循环队列非满时,获取冗余串行接口循环队列尾指针,从数据接收缓冲读取数据后写入尾指针指向位置;
6、数据写入循环队列后,对尾指针进行判断,当尾指针达到循环队列队尾时,更新尾指针位置至队首;
7、步骤4中,当判断尾指针未达到循环队列队尾时,则返回模块入口,继续接收数据。
(二)数据帧格式判断模块
如图3所示,数据帧格式判断模块的工作流程为:
1、判断冗余串行接口循环队列中数据长度是否大于最小完整帧,当判断条件满足,则表明循环队列中可能有一帧完整数据帧;
2、步骤1中,当判断条件不满足时,表明循环队列中无完整数据帧,结束当前数据帧格式判断流程;
3、当循环队列中可能有一帧完整数据帧时,根据帧格式从循环队列头指针开始寻找帧尾,并对帧尾与帧格式要求一致性进行判断;
4、步骤3中,当循环队列中未找到合格帧尾,表明当前数据中未包含一帧完整数据,结束当前数据帧格式判断流程;
5、步骤3中,当循环队列中找到合格帧尾,根据帧格式中帧长度位置与帧尾的偏移量,从循环队列中获取当前帧长度;
6、获取帧长度后,根据帧长度计算帧头在循环队列中的位置,获取帧头后对帧头与帧格式一致性进行判断;
7、步骤6中,若帧头与帧格式不一致,表明当前循环队列中无合格帧,则从循环队列中读出错误数据并丢弃,结束当前数据帧格式判断流程;
8、步骤6中,若帧头与帧格式一致,则根据校验值位置与帧尾偏移获取当前数据校验值,并根据接收数据计算校验值,对接收校验值与计算校验值进行比对;
9、步骤8中,若接收校验值与计算校验值不一致,表明当前数据帧传输过程出现错误,则从循环队列中读出错误数据并丢弃,结束当前数据帧格式判断流程;
10、步骤8中,若接收校验值与计算校验值一致,则输出数据帧,结束当前数据帧格式判断流程。
(三)指令有效性判断模块
如图4所示,指令有效性判断模块的工作流程如下:
1、指令有效性判断模块对冗余串行接口指令更新状态进行查询,根据查询结果不同执行不同的操作;
2、步骤1中,当冗余串行接口中的接口A及接口B指令均已更新,则获取接口A及接口B指令对应帧计数,并比较冗余串行接口帧计数与上一帧有效指令帧序号,帧计数从0开始,在测试过程中连续增加;
3、步骤2中,当接口A帧计数大于上一帧有效指令帧序号且接口B帧计数不大于上一帧有效指令帧序号时,解析接口A对应关键指令并发送至外部相应执行部件,将接口A帧计数更新为上一帧有效指令帧序号;
4、步骤2中,当接口B帧计数大于上一帧有效指令帧序号且接口A帧计数不大于上一帧有效指令帧序号时,解析接口B对应关键指令并发送至外部相应执行部件,并将接口B帧计数更新为上一帧有效指令帧序号;
5、步骤2中,当接口A及接口B帧计数均大于上一帧有效指令帧序号时,对接口A及接口B帧计数进行大小进行判别;
6、步骤5中,当接口A帧计数大于接口B帧计数时,解析接口A对应关键指令并发送至外部相应执行部件,并将接口A帧计数更新为上一帧有效指令帧序号,结束指令有效性判断流程;
7、步骤5中,当接口B帧计数大于接口A帧计数时,解析接口B对应关键指令并发送至外部相应执行部件,并将接口B帧计数更新为上一帧有效指令帧序号,结束指令有效性判断流程;
8、步骤1中,当冗余串行接口中的接口A指令已更新,接口B指令未更新,则比较接口A指令对应帧计数与上一帧有效指令帧序号;
9、步骤8中,若接口A指令帧计数大于上一帧有效指令帧序号,解析接口A对应关键指令并发送至外部相应执行部件,并将接口A帧计数更新为上一帧有效指令帧序号,结束指令有效性判断流程;
10、步骤8中,若接口A指令帧计数不大于上一帧有效指令帧序号,则丢弃接口A指令,结束指令有效性判断流程;
11、步骤1中,当冗余串行接口中的接口B指令已更新,接口A指令未更新,则比较接口B指令对应帧计数与上一帧有效指令帧序号;
12、步骤11中,若接口B指令帧计数大于上一帧有效指令帧序号,解析接口B对应关键指令并发送至外部相应执行部件,并将接口B帧计数更新为上一帧有效指令帧序号,结束指令有效性判断流程;
13、步骤11中,若接口B指令帧计数不大于上一帧有效指令帧序号,则丢弃接口B指令,结束指令有效性判断流程。
(四)数据输出模块
如图5所示,数据输出模块的工作流程如下:
1、待输出数据生成后,数据输出模块根据帧格式定义为其添加帧头,作为接收方识别消息起始的标志,待输出数据包括串行接口发送器发送的关键指令数据及串行接口接收器发送的测试状态数据;
2、添加帧头后,数据输出模块根据帧格式定义为待输出数据帧ID,作为接收方识别消息类型的标志;
3、更新待输出数据至帧格式数据区;
4、计算数据区中待输出数据校验值,更新校验值至帧格式校验值区域,作为接收方校验传输过程的标志;
5、计算待输出数据长度,更新长度值至帧格式数据长度区域,作为接收方计算帧头位置的依据;
6、根据帧格式定义为待输出数据添加帧尾,作为接收方识别消息结束的标志;
7、封装完成的输出数据,分别通过冗余串行接口的接口1和接口2逐字节发送完成后,结束数据输出流程。
一种基于串口冗余策略的关键测试指令传输方法,步骤如下:
(1)发送方设置帧计数,初始值为0;根据测试需求,在当前传输周期,将帧计数加1,并将待传输的关键指令与帧计数封装后采用双冗余串行接口的方式进行发送;
(2)接收方接收封装后的关键指令与帧计数,并存放在串行接口循环队列中,执行步骤(3);
(3)判断上述循环队列中的数据长度是否大于最小完整帧,若大于,则转步骤(4);否则,进入下一传输周期转步骤(1);
(4)对循环队列中的数据进行完整及一致性判断,若满足条件,则从循环队列中获取数据并执行步骤(5);否则,进入下一传输周期转步骤(1);所述的完整及一致性判断步骤如下:
(4.1)根据帧格式从循环队列头指针开始寻找帧尾,若找到帧尾,则转(4.2);否则,进入下一传输周期转步骤(1);
(4.2)根据帧格式中帧长度位置与帧尾的偏移量,从循环队列中获取当前帧长度;进而根据帧长度计算帧头在循环队列中的位置;
(4.3)获取帧头,将帧头与帧格式进行一致性判断,若帧头与帧格式一致,则转(4.4),否则从循环队列中读出错误数据并丢弃,进入下一传输周期转步骤(1);
(4.4)根据校验值位置与帧尾偏移量获取当前数据校验值,并根据接收的数据区中的数据重新计算校验值,对接收校验值与计算校验值进行比对;若二者一致,则从队列中获取数据;若不一致,则从循环队列中读出错误数据并丢弃,进入下一传输周期转步骤(1)。
(5)从获取的数据中进一步读取数据区中的数据,根据接收的数据区中的数据,判断冗余串行接口中的两个接口的指令更新状态,当两个接口指令均更新,则执行步骤(6),若只有一个接口的指令更新,则执行步骤(7),否则,进入下一传输周期转步骤(1);
(6)获取两个接口对应数据中的帧计数,当一个接口记为接口A的帧计数大于记录的有效指令帧序号且另一接口记为接口B的帧计数不大于记录的有效指令帧序号时,则解析接口A对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将接口A的帧计数记录为有效指令帧序号;当两个接口的帧计数都大于记录的有效指令帧序号,则进一步比较两个接口的帧计数,将帧计数较大的接口对应的关键指令进行解析,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将该接口的帧计数记录为有效指令帧序号;当两个接口的帧计数都不大于记录的有效指令帧序号时,则丢弃接收的数据,发送关键指令的接收、解析状态至发送方,进入下一传输周期转步骤(1);所述的有效指令帧序号的初始值为0;
(7)获取该接口对应数据中的帧计数,判断该帧计数是否大于记录的有效指令帧序号,若大于,则解析该接口对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将该接口的帧计数记录为有效指令帧序号;否则丢弃接收的数据,发送关键指令的接收、解析状态至发送方,进入下一传输周期转步骤(1)。
本发明未详细说明部分属于本领域技术人员公知常识。

Claims (5)

1.一种基于串口冗余策略的关键测试指令传输系统,其特征在于:包括串行接口发送器和串行接口接收器;其中,串行接口发送器包括数据输出模块、数据接收模块、数据帧格式判断模块;串行接口接收器包括数据接收模块、数据帧格式判断模块、指令有效性判断模块及数据输出模块;
串行接口发送器的数据输出模块与串行接口接收器的数据接收模块、以及串行接口接收器的数据输出模块与串行接口发送器的数据接收模块之间通过冗余串行接口进行数据交互;
数据输出模块,对待输出数据进行数据帧封装后,查询输出状态,在输出状态为闲时,分别通过冗余串行接口向数据接收模块发送封装的数据;所述的待输出数据对于串行接口发送器为关键指令和帧计数,每次关键指令发送时,帧计数加1;对于串行接口接收器,为关键指令的接收、解析状态;
数据接收模块启动数据接收后,查询冗余串行接口接收状态,当状态为非空时,接收所有串行接口数据存放在冗余串行接口循环队列中;否则继续查询冗余串行接口接收状态,等待接收串行接口数据;
数据帧格式判断模块,判断冗余串行接口循环队列中的数据的长度是否超过最小完整帧长,若超过,则并对数据的完整性进行判断,当接收到一帧完整数据时,将完整数据帧从数据帧头、数据区、校验和以及数据帧尾四个方面判断确定当前数据帧是否为有效数据帧,当有效时,从队列中获取数据,将数据区中的数据输出至指令有效性判断模块;当无效时,丢弃该数据帧;
指令有效性判断模块对输入数据中的帧计数进行判断,当该帧计数对应关键指令未执行时,解析关键指令并发送至外部相应执行部件,当该帧计数对应指令已执行时,丢弃该指令;并将关键指令的接收、解析状态发送至数据输出模块。
2.根据权利要求1所述的系统,其特征在于:所述指令有效性判断模块的具体实现方式如下:
(2.1)根据接收的数据区中的数据,判断冗余串行接口中的两个接口的指令更新状态,当两个接口指令均更新,则执行步骤(2.2),若只有一个接口的指令更新,则执行步骤(2.3),否则,等待接收数据;
(2.2)获取两个接口对应数据中的帧计数,当一个接口记为接口A的帧计数大于记录的有效指令帧序号且另一接口记为接口B的帧计数不大于记录的有效指令帧序号时,则解析接口A对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至数据输出模块,并将接口A的帧计数记录为有效指令帧序号;当两个接口的帧计数都大于记录的有效指令帧序号,则进一步比较两个接口的帧计数,将帧计数较大的接口对应的关键指令进行解析,并发送至外部相应执行部件,发送关键指令的接收、解析状态至数据输出模块,并将该接口的帧计数记录为有效指令帧序号;当两个接口的帧计数都不大于记录的有效指令帧序号时,则丢弃接收的数据,发送关键指令的接收、解析状态至数据输出模块,等待接收数据;
(2.3)获取该接口对应数据中的帧计数,判断该帧计数是否大于记录的有效指令帧序号,若大于,则解析该接口对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至数据输出模块,并将该接口的帧计数记录为有效指令帧序号;否则丢弃接收的数据,发送关键指令的接收、解析状态至数据输出模块,等待接收数据。
3.根据权利要求1所述的系统,其特征在于:数据帧格式判断模块的实现方式如下:
第一步,判断冗余串行接口循环队列中数据长度是否大于最小完整帧,若大于,则转第二步;否则,继续等待数据;
第二步,根据帧格式从循环队列头指针开始寻找帧尾,若找到帧尾,则转第三步;否则,继续等待数据转第一步;
第三步,根据帧格式中帧长度位置与帧尾的偏移量,从循环队列中获取当前帧长度;进而根据帧长度计算帧头在循环队列中的位置;
第四步,获取帧头,将帧头与帧格式进行一致性判断,若帧头与帧格式一致,则转第五步,否则从循环队列中读出错误数据并丢弃,继续等待数据转第一步;
第五步,根据校验值位置与帧尾偏移量获取当前数据校验值,并根据接收的数据区中的数据重新计算校验值,对接收校验值与计算校验值进行比对;若二者一致,则从队列中获取数据并将数据区中的数据输出至指令有效性判断模块;若不一致,则从循环队列中读出错误数据并丢弃,继续等待数据转第一步。
4.一种基于串口冗余策略的关键测试指令传输方法,其特征在于:
(1)发送方设置帧计数,初始值为0;根据测试需求,在当前传输周期,将帧计数加1,并将待传输的关键指令与帧计数封装后采用双冗余串行接口的方式进行发送;
(2)接收方接收封装后的关键指令与帧计数,并存放在串行接口循环队列中,执行步骤(3);
(3)判断上述循环队列中的数据长度是否大于最小完整帧,若大于,则转步骤(4);否则,进入下一传输周期转步骤(1);
(4)对循环队列中的数据进行完整及一致性判断,若满足条件,则从循环队列中获取数据并执行步骤(5);否则,进入下一传输周期转步骤(1);
(5)从获取的数据中进一步读取数据区中的数据,根据接收的数据区中的数据,判断冗余串行接口中的两个接口的指令更新状态,当两个接口指令均更新,则执行步骤(6),若只有一个接口的指令更新,则执行步骤(7),否则,进入下一传输周期转步骤(1);
(6)获取两个接口对应数据中的帧计数,当一个接口记为接口A的帧计数大于记录的有效指令帧序号且另一接口记为接口B的帧计数不大于记录的有效指令帧序号时,则解析接口A对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将接口A的帧计数记录为有效指令帧序号;当两个接口的帧计数都大于记录的有效指令帧序号,则进一步比较两个接口的帧计数,将帧计数较大的接口对应的关键指令进行解析,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将该接口的帧计数记录为有效指令帧序号;当两个接口的帧计数都不大于记录的有效指令帧序号时,则丢弃接收的数据,发送关键指令的接收、解析状态至发送方,进入下一传输周期转步骤(1);所述的有效指令帧序号的初始值为0;
(7)获取该接口对应数据中的帧计数,判断该帧计数是否大于记录的有效指令帧序号,若大于,则解析该接口对应的关键指令,并发送至外部相应执行部件,发送关键指令的接收、解析状态至发送方,并将该接口的帧计数记录为有效指令帧序号;否则丢弃接收的数据,发送关键指令的接收、解析状态至发送方,进入下一传输周期转步骤(1)。
5.根据权利要求4所述的方法,其特征在于:所述的完整及一致性判断步骤如下:
(4.1)根据帧格式从循环队列头指针开始寻找帧尾,若找到帧尾,则转(4.2);否则,进入下一传输周期转步骤(1);
(4.2)根据帧格式中帧长度位置与帧尾的偏移量,从循环队列中获取当前帧长度;进而根据帧长度计算帧头在循环队列中的位置;
(4.3)获取帧头,将帧头与帧格式进行一致性判断,若帧头与帧格式一致,则转(4.4),否则从循环队列中读出错误数据并丢弃,进入下一传输周期转步骤(1);
(4.4)根据校验值位置与帧尾偏移量获取当前数据校验值,并根据接收的数据区中的数据重新计算校验值,对接收校验值与计算校验值进行比对;若二者一致,则从队列中获取数据;若不一致,则从循环队列中读出错误数据并丢弃,进入下一传输周期转步骤(1)。
CN201710010411.2A 2017-01-06 2017-01-06 一种基于串口冗余策略的关键测试指令传输系统及方法 Active CN106911530B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710010411.2A CN106911530B (zh) 2017-01-06 2017-01-06 一种基于串口冗余策略的关键测试指令传输系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710010411.2A CN106911530B (zh) 2017-01-06 2017-01-06 一种基于串口冗余策略的关键测试指令传输系统及方法

Publications (2)

Publication Number Publication Date
CN106911530A CN106911530A (zh) 2017-06-30
CN106911530B true CN106911530B (zh) 2020-04-10

Family

ID=59206914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710010411.2A Active CN106911530B (zh) 2017-01-06 2017-01-06 一种基于串口冗余策略的关键测试指令传输系统及方法

Country Status (1)

Country Link
CN (1) CN106911530B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108093492A (zh) * 2017-12-26 2018-05-29 上海创程车联网络科技有限公司 一种用于遥控设备的无线射频模块串行通讯方法
CN108494653A (zh) * 2018-03-21 2018-09-04 桂林市华茂欧特科技有限公司 一种实现串口设备环形冗余组网的方法
CN112260896B (zh) * 2020-10-16 2022-05-10 山东云海国创云计算装备产业创新中心有限公司 一种网络传输测试方法、装置、设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098217A (zh) * 2007-06-21 2008-01-02 杭州华三通信技术有限公司 一种同异步串口备份的系统、装置及切换方法
CN101296065A (zh) * 2008-06-19 2008-10-29 浙江中控技术股份有限公司 一种提高冗余主站可靠性的方法及系统
CN101833336A (zh) * 2010-04-28 2010-09-15 北京航空航天大学 一种共轴式无人直升机的双余度姿态控制系统及调试方法
CN103019202A (zh) * 2012-12-06 2013-04-03 国电南瑞科技股份有限公司 冗余fep备用接口状态在线检测方法
CN104536934A (zh) * 2014-12-24 2015-04-22 深圳市航盛电子股份有限公司 一种串口通信方法及系统
CN105279123A (zh) * 2014-10-10 2016-01-27 天津市英贝特航天科技有限公司 双冗余1553b总线的串口转换结构及转换方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070670A1 (en) * 2008-09-15 2010-03-18 United States Of America As Represented By The Secretary Of The Army Computer One-Way Data Link

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101098217A (zh) * 2007-06-21 2008-01-02 杭州华三通信技术有限公司 一种同异步串口备份的系统、装置及切换方法
CN101296065A (zh) * 2008-06-19 2008-10-29 浙江中控技术股份有限公司 一种提高冗余主站可靠性的方法及系统
CN101833336A (zh) * 2010-04-28 2010-09-15 北京航空航天大学 一种共轴式无人直升机的双余度姿态控制系统及调试方法
CN103019202A (zh) * 2012-12-06 2013-04-03 国电南瑞科技股份有限公司 冗余fep备用接口状态在线检测方法
CN105279123A (zh) * 2014-10-10 2016-01-27 天津市英贝特航天科技有限公司 双冗余1553b总线的串口转换结构及转换方法
CN104536934A (zh) * 2014-12-24 2015-04-22 深圳市航盛电子股份有限公司 一种串口通信方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Design and Realization of Multi-function Serial Port with High-speed/Largecapacity/Asynchronous FIFO;Wang Yinqiao 等;《12th IEEE International Conference on Control and Automation (ICCA)》;20160603;全文 *

Also Published As

Publication number Publication date
CN106911530A (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
CN103714029B (zh) 新型二线同步通信协议及应用
CN102984059B (zh) 千兆以太网冗余网卡及其链路切换条件判定结果控制方法
CN106911530B (zh) 一种基于串口冗余策略的关键测试指令传输系统及方法
CN107832250B (zh) 一种基于spi的主从通讯时序方法
CN102664779B (zh) 一种can总线数据传送方法
US9552279B2 (en) Data bus network interface module and method therefor
CN113032319B (zh) 基于fpga的车载系统数据传输方法及同步高速串行总线结构
CN110971491B (zh) 一种电力系统101和104通讯规约处理系统及其处理方法
KR20200139059A (ko) 제어기 진단 장치 및 그 방법
CN112249088B (zh) 双显示系统互诊断与数据同步的方法、双显示系统和列车
CN104780123A (zh) 一种网络包收发处理装置及其设计方法
CN101764669A (zh) 数据接收过程中的crc码校验方法
CN114448780B (zh) 一种基于pcie接口的以太网控制器异常处理系统和方法
CN113223287A (zh) 一种基于spi的智能电能表与负荷辨识模块的通信方法及系统
CN112147918B (zh) 基于arm+fpga+dsp架构的异步数据交互方法及系统
WO2014027223A1 (en) Data bus network interface module and method therefor
CN111930582B (zh) 系统管理总线检测平台、处理器及系统管理总线检测方法
CN204390224U (zh) 一种基于fpga的容错主从同步串行通讯系统
CN109144937B (zh) 一种多路串口高可靠性传输方法
CN113341853A (zh) 一种ip核、fpga芯片、交流伺服驱动器及通讯方法
CN102437893B (zh) 一种高速1553b总线通讯系统纠错方法
CN109981394B (zh) 基于增强型can总线协议分析仪的通信方法和装置
CN112311637B (zh) Mvb线路冗余切换方法和系统、车辆
CN112104489B (zh) 一种对通讯无干扰的高速实时数据捕获方法
CN109525363B (zh) 数据传输方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant