CN103116557B - 基于计数变化进行动态超时控制的数据接收方法 - Google Patents
基于计数变化进行动态超时控制的数据接收方法 Download PDFInfo
- Publication number
- CN103116557B CN103116557B CN201110365999.6A CN201110365999A CN103116557B CN 103116557 B CN103116557 B CN 103116557B CN 201110365999 A CN201110365999 A CN 201110365999A CN 103116557 B CN103116557 B CN 103116557B
- Authority
- CN
- China
- Prior art keywords
- data
- counter
- overtime control
- data receiver
- processor
- 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
Links
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及卫星数管分系统的数据分发与传输,公开了一种基于计数变化进行动态超时控制的数据接收方法。包括确定超时最大延时参数;选择指定的通道;接收前启动定时器计时;判断接收数据的字节计数的情况,进行数据接收处理;判断接收数据的字节计数的变化;判断定时器超时情况,进行超时异常处理等步骤。本发明解决了多载荷多数据类型情况下接收数据超时控制的问题,取得了提高卫星软件设计通用化程度和数据可靠性等有益效果。
Description
技术领域
本发明涉及卫星数管分系统的数据分发与传输,尤其是一种基于计数变化进行动态超时控制的数据接收方法。
背景技术
在嵌入式实时控制领域,如卫星数管分系统的数据分发与传输,为防止程序因等待硬件状态而发生死锁,异步数据通讯程序需要对数据接收采取超时判断和控制,即等待软件指定的一段时间用于判断硬件接收状态,如果超过这段时间接收未准备好,则不再继续判读状态,按照未接收到数据进行异常处理,这段等待时间是由接收的数据长度、接收波特率和处理器响应时间决定的。以往动态超时控制采取的策略是按整批数据进行设计,但是随着星上应用载荷通道和业务数据量的增加,各通道的数据量相差很大的时间就需要按照不同协议设置成不同程序,难以设计成通用组件,维护和修改起来也相对困难。
为此,一种基于计数变化进行多通道超时控制的数据接收方法可以提供通用的异步数据通讯超时控制的方法,用于解决多种载荷和多种协议格式数据接收程序通用化设计的问题。
目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
为了实现多种载荷和多种协议格式数据接收程序通用化设计,解决异步数据通讯超时控制的问题,本发明的目的在于提出一种基于计数变化进行动态超时控制的数据接收方法,利用本发明,可以实现卫星各载荷通用超时控制数据接收软件算法的目的。
为了达到上述发明目的,本发明为解决其技术问题所采用的技术方案是提供一种基于计数变化进行动态超时控制的数据接收方法,包括:
一个用于动态超时控制的定时器;一个用于异步串行通讯的控制器;一个用于存储接收到数据的数据缓存器;一个用于计量已接收到数据字节数的数据计数器;一个用于处理已接收数据的处理器;一个用于存储上次计数值的计数存储单元;一个用于接收异步串行数据的数据接收程序;一个用于超时情况下进行异常处理的超时处理程序;一个用于选择通讯通道的多路选择器;上述组成部件执行如下的步骤:
(1)根据异步通讯速率、位数及下位机响应处理时间确定定时器的最大延时参数;
(2)通过处理器选择软件中多路通讯对应的的通道号,向多路选择器的端口写入通道号;
(3)接收异步串行数据,存入数据缓存器,同步更新数据计数器;
(4)由处理器启动定时器,轮询数据计数器,读取当前计数器单元数值,与前次计数器单元数值进行比较;
(5)如果计数器单元数值达到预定义的长度,启动数据接收程序进行处理;
(6)如果当前计数器单元数值与前次计数器单元数值比较在规定的延时时间内未递增,则启动超时处理程序进行异常处理;
(7)如果数据计数器在规定延时内发生递增,但未达到预定义的数据长度,则回到步骤(4)继续处理。
本发明一种基于计数变化进行多通道超时控制的数据接收方法,由于采取上述的技术方案,在整星数管分系统与多种载荷进行数据通讯的情况下,数据接收功能可以设计成通用模块,根据FIFO计数变化进行动态超时控制,而与各载荷通道的数据量无关。本发明解决了多载荷多数据类型情况下超时控制的问题,取得了提高卫星软件设计通用化程度和数据可靠性等有益效果。
附图说明
图1是实现本发明基于计数变化进行多通道超时控制的数据接收方法的原理框图;
图2是本发明中数据接收和多通道超时控制的算法流程图。
具体实施方式
下面结合附图说明本发明的优选实施例。
图1是实现本发明一种基于计数变化进行多通道超时控制的数据接收方法的原理框图。如图1的实施例所示,本发明的方法采用以下的组成部件:
定时器1:用于动态超时控制;
异步串行通讯控制器2:用于数据通信控制和数据收发;
数据缓存器3:用于存储接收到的数据;
数据计数器4:用于计量已接收到数据字节数;
处理器5:用于处理已接收数据;
计数存储单元6:用于存储上次计数值的;
数据接收程序7:用于接收异步串行数据;
超时处理程序8:用于超时情况下进行异常处理;
多路选择器9:用于选择多通道通讯系统中指定的通讯链路。
上述组成部件执行如下的步骤:
(1)根据异步通讯速率、位数及下位机响应处理时间确定定时器1的最大延时参数;本发明实施例中,定时器最大延时参数=(传输单字节位数/通讯速率+下位机处理时间)×2。通讯速率单位为bps(位每秒),计算得出的延时参数单位为s(秒)。
(2)通过处理器5选择软件中多路通讯对应的的通道号,向多路选择器9的端口写入通道号;
(3)接收异步串行数据,存入数据缓存器3,同步更新数据计数器4;
(4)由处理器5启动定时器1,轮询数据计数器4,读取当前计数器单元数值,与前次计数器单元数值进行比较;
(5)如果计数器单元数值达到预定义的长度,启动数据接收程序进行处理;
(6)如果当前计数器单元数值与前次计数器单元数值比较在规定的延时时间内未递增,则启动超时处理程序进行异常处理;
(7)如果数据计数器4在规定延时内发生递增,但未达到预定义的数据长度,则回到步骤(4)继续处理。
上述步骤(2)中,处理器5向多路选择器9对应的输入端口写入需要通讯的通道号。
上述步骤(3)还包括,数据计数器4必须与数据缓存器3中接收到的数据队列长度保持同步一致,数据缓存器3中的数据队列按先进先出方式进行更新,数据计数器4必须对于处理器5可读可写。
上述步骤(3)中,当外部通讯控制器对数据缓存器3进行写操作时,向队列尾部依次添加接收到的字节数据,同时数据计数器4加1。
上述步骤(4)中,当处理器5对数据缓存器3进行读操作时,从队列头部依次取出数据,同时清除该字节数据,数据计数器4减1。
上述步骤(4)还包括,处理器5可以对数据计数器4和数据缓存器3进行清除操作,清除后数据计数器4为0,数据缓存器3中的数据全部清空。
上述步骤(5)和(7)中,所述预定义数据长度由应用软件通过参数方式向处理器的数据处理程序传递,数据长度必须为固定的正整数。
上述步骤(6)还包括,超时处理程序需要向应用软件传递通讯超时标志,以表示数据不可用。
图2是本发明中数据接收和多通道超时控制的算法流程图,如图2所示:上述步骤(6)中,超时处理程序进行异常处理的超时控制的算法主要包括如下步骤:
(1)初始化状态标志(如接收缓存,接收完成标志等);
(2)在多通道通讯系统中,选择异步通讯通道;
(3)启动定时器,轮询FIFO计数器,读取当前计数器,与前次计数器单元数值进行比较;
(4)如果FIFO计数器计数器数值达到预定义的长度(此参数由调用者设置),启动数据接收程序进行处理;
(5)如果当前计数器与前次计数单元比较在规定的延时时间5ms内未递增,则启动超时处理程序进行异常处理。
(6)如果计数器在规定延时内发生递增,但未达到预定义的长度,则回到步骤(3),重启计时器重新判读FIFO计数。
由上所述,本发明在整星数管分系统与多种载荷进行数据通讯的情况下,数据接收功能可以设计成通用模块,根据FIFO计数变化进行动态超时控制,而与各载荷通道的数据量无关。因此,本发明实现了多种载荷和多种协议格式数据接收程序通用化设计,解决了异步数据通讯超时控制的问题。
Claims (10)
1.一种基于计数变化进行多通道超时控制的数据接收方法,其特征在于:一个用于动态超时控制的定时器;一个用于异步串行通讯的控制器;一个用于存储接收到数据的数据缓存器;一个用于计量已接收到数据字节数的数据计数器;一个用于处理已接收数据的处理器;一个用于存储上次计数值的计数存储单元;一个用于接收异步串行数据的数据接收程序;一个用于超时情况下进行异常处理的超时处理程序;一个用于选择通讯通道的多路选择器;上述组成部分执行如下的步骤:
(1)根据异步通讯速率、位数及下位机响应处理时间确定定时器的最大延时参数;
(2)通过处理器选择软件中多路通讯对应的通道号,向多路选择器的端口写入通道号;
(3)接收异步串行数据,存入数据缓存器,同步更新数据计数器;
(4)由处理器启动定时器,轮询数据计数器,读取当前计数器单元数值,与前次计数器单元数值进行比较;
(5)如果计数器单元数值达到预定义的数据长度,启动数据接收程序进行处理;
(6)如果当前计数器单元数值与前次计数器单元数值比较在规定的延时时间内未递增,则启动超时处理程序进行异常处理;
(7)如果数据计数器在规定延时内发生递增,但未达到预定义的数据长度,则回到步骤(4)继续处理。
2.如权利要求1所述的超时控制的数据接收方法,其特征在于:所述的步骤(1)中,所述的定时器最大延时参数=(传输单字节位数/通讯速率+下位机处理时间)×2;通讯速率单位为bps(位每秒),计算得出的延时参数单位为s(秒)。
3.如权利要求1所述的超时控制的数据接收方法,其特征在于:所述的步骤(2)中,处理器向多路选择器对应的输入端口写入需要通讯的通道号。
4.如权利要求1所述的超时控制的数据接收方法,其特征在于:所述的步骤(3)还包括,数据计数器与数据缓存器中接收到的数据队列长度保持同步一致,数据缓存器中的数据队列按先进先出方式进行更新,数据计数器对于处理器可读可写。
5.如权利要求1或4所述的超时控制的数据接收方法,其特征在于:所述的步骤(3)中,当外部通讯控制器对数据缓存器进行写操作时,向队列尾部依次添加接收到的字节数据,同时数据计数器加1。
6.如权利要求5所述的超时控制的数据接收方法,其特征在于:所述的步骤(4)中,当处理器对数据缓存器进行读操作时,从队列头部依次取出数据,同时清除该字节数据,数据计数器减1。
7.如权利要求1或6所述的超时控制的数据接收方法,其特征在于:所述的步骤(4)还包括,处理器可以对数据计数器和数据缓存器进行清除操作,清除后数据计数器为0,数据缓存器中的数据全部清空。
8.如权利要求1所述的超时控制的数据接收方法,其特征在于:所述的步骤(5)中,所述预定义数据长度由应用软件通过参数方式向处理器的数据处理程序传递,数据长度为固定的正整数。
9.如权利要求1所述的超时控制的数据接收方法,其特征在于:所述的步骤(6)中,超时处理程序进行异常处理的超时控制的算法主要包括如下步骤:
(1)初始化状态标志,如接收缓存,接收完成标志;
(2)在多通道通讯系统中,选择异步通讯通道;
(3)启动定时器,轮询数据计数器,读取当前计数器,与前次计数器单元数值进行比较;
(4)如果计数器计数器数值达到预定义的长度,启动数据接收程序进行处理;
(5)如果当前计数器与前次计数单元比较在规定的延时时间5ms内未递增,则启动超时处理程序进行异常处理;
(6)如果计数器在规定延时内发生递增,但未达到预定义的长度,则回到步骤(3),重启计时器重新判读数据计数器。
10.如权利要求9所述的超时控制的数据接收方法,其特征在于:所述的步骤(6)还包括,超时处理程序需要向应用软件传递通讯超时标志,表示数据不可用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110365999.6A CN103116557B (zh) | 2011-11-17 | 2011-11-17 | 基于计数变化进行动态超时控制的数据接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110365999.6A CN103116557B (zh) | 2011-11-17 | 2011-11-17 | 基于计数变化进行动态超时控制的数据接收方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103116557A CN103116557A (zh) | 2013-05-22 |
CN103116557B true CN103116557B (zh) | 2016-06-22 |
Family
ID=48414937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110365999.6A Active CN103116557B (zh) | 2011-11-17 | 2011-11-17 | 基于计数变化进行动态超时控制的数据接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103116557B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10268615B2 (en) | 2017-08-22 | 2019-04-23 | International Business Machines Corporation | Determining timeout values for computing systems |
WO2019051699A1 (zh) * | 2017-09-14 | 2019-03-21 | 保定市泰科电气有限公司 | 一种通信架构下的计算机控制方法 |
CN114257292B (zh) * | 2021-12-15 | 2024-04-05 | 北京航天飞行控制中心 | 航天器中继代传遥控指令比判方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1964300A (zh) * | 2005-11-11 | 2007-05-16 | 贵州以太科技信息产业有限责任公司 | 可读写的串行接口总线通信控制器 |
EP1895426A1 (en) * | 2006-08-25 | 2008-03-05 | Ali Corporation | Transmitter and transmitting system utilizing the same |
CN101178636A (zh) * | 2006-11-07 | 2008-05-14 | 国际商业机器公司 | 用于异步远程拷贝的系统和方法 |
-
2011
- 2011-11-17 CN CN201110365999.6A patent/CN103116557B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1964300A (zh) * | 2005-11-11 | 2007-05-16 | 贵州以太科技信息产业有限责任公司 | 可读写的串行接口总线通信控制器 |
EP1895426A1 (en) * | 2006-08-25 | 2008-03-05 | Ali Corporation | Transmitter and transmitting system utilizing the same |
CN101178636A (zh) * | 2006-11-07 | 2008-05-14 | 国际商业机器公司 | 用于异步远程拷贝的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103116557A (zh) | 2013-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2902914B1 (en) | Data transmission method and device | |
CN103248471B (zh) | 基于ptp协议与反射内存网的时钟同步方法 | |
JP5764004B2 (ja) | 共用データ・バスに対する階層的バッファ・システムのための方法、集積回路デバイス、およびプロセッサ・デバイス | |
JPH04230557A (ja) | 直接メモリアクセス・コントローラ | |
EP2222003B1 (en) | Field control system | |
CN103116557B (zh) | 基于计数变化进行动态超时控制的数据接收方法 | |
US20090086751A1 (en) | Adaptive Interrupt On Serial Rapid Input/Output (SRIO) Endpoint | |
US8386908B2 (en) | Data transmission methods and universal serial bus host controllers utilizing the same | |
EP3930266A1 (en) | Packet scheduling system with desired physical transmission time for packets | |
JP4903801B2 (ja) | FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法 | |
CN101937409A (zh) | 分时复用存储器直接访问控制器 | |
US8291198B2 (en) | Apparatus and method for regulating bursty data in a signal processing pipeline | |
EP1449096A1 (en) | Shared memory controller for display processor | |
US20200201808A1 (en) | Time-division multiplexing (tdm) data transfer on serial interfaces | |
US20090175290A1 (en) | Flexray communications module, flexray communications controller, and method for transmitting messages between a flexray communications link and a flexray participant | |
EP1970815A1 (en) | Data transfering apparatus and information processing system | |
EP2521325B1 (en) | Communication system, and corresponding integrated circuit and method | |
US20110029706A1 (en) | Electronic device and method for controlling an electronic device | |
CN116932333A (zh) | 一种硅后验证的axi总线实时性能监控方法 | |
CN115934596A (zh) | 一种非并发外设接口直接存储访问的电路及方法 | |
CN115113685A (zh) | 数据同步装置及方法 | |
CN105306958B (zh) | 一种基于ip的传输流码率平滑处理的方法及装置 | |
EP2133797A1 (en) | Dma transfer device and method | |
JP2018046390A (ja) | 処理装置、システム、処理方法および処理プログラム | |
EP3971721A1 (en) | Information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |