实时软件接收机中采集数据循环存储与分发方法

文档序号:9910140阅读:702来源:国知局
实时软件接收机中采集数据循环存储与分发方法
【技术领域】
本发明涉及一种基于虚拟无线电技术的航天测控通信实时软件接收机,具体为一种利用固定缓存器实现采集设备上报数据实时循环存储与分发的方法。
【背景技术】
[0002]1999年美国学者Vanu Bose等人提出了虚拟无线电的概念。其基本思想与软件无线电类似,都是利用软件来实现无线信号的发射与接收,两者的最大区别在于开发平台的不同。软件无线电技术主要采用专用可编程硬件平台(如DSP、FPGA等)实现产品开发。虚拟无线电的开发平台则采用通用计算机平台,如以CPU和图形处理器GPU为代表的通用处理器GPP计算平台。近年来随着通用处理器在计算速度、总线带宽、低时延控制和并行计算等方面处理能力不断提高,使得采用高性能计算平台对通信信号进行软件解调成为了可能。相比于基于专用平台开发的数字接收机,基于通用计算平台的软件接收机除了数据采集模块由硬件实现外,其余处理过程均由以高级开发语言编写的软件实现,因此其具备了成本低、易于质量控制且可移植性好的优点。
[0003]与一般通信系统相比,航天测控通信系统的特点为:通信信号调制种类多,包括扩频、调频、线性相位调制等多种调制类型;信息速率范围跨度大,航天测控通信系统一般的信息速率跨度范围从Ikbps到lOMsps;接收信号动态大,需要在传统的软件接收机中加入信号捕获模块;信号解调的实时性要求强,为了实现飞行器的下发遥测信号与飞行器轨道信息及时解调与测量,要求软件接收机的解调时延较小。上述特点增加了航天测控通信系统实时软件接收机的设计难度。
[0004]目前,以GPS软件接收机为代表的大部分虚拟无线电产品只能进行事后处理。普遍做法是将采集设备上报的数据存储到硬盘上,然后软件从硬盘中读入数据进行软件处理,即数据的流向为硬件先存入硬盘然后再被读入内存处理。这种处理方式的时间效率较低。航天测控通信系统的特点决定了实时软件接收机不仅要实现不同调制体制、不同信息速率测控通信信号的实时存储,还要与后面的捕获以及解调模块进行交互,保证数据的正确分发。因此为了实现实时数据采集与软件解调,需要设计一套合理的采集数据循环存储与分发的方法。这种方法需要具备如下功能:首先要能在一块固定大小的缓存器上进行实时数据存储与分发,其次要通过设计合理的读写控制流程保证缓存器的读写不冲突,最后还要能够通过控制分发数据包的大小来适应航天测控通信系统不同信息速率解调时延与实时软件解调的要求。

【发明内容】

[0005]为了实现航天测控通信信号实时采集与软件解调,针对后端不同处理线程数据分发的需求,本发明提供一种简单高效,合理可靠,便于软件处理,能对不同体制、不同速率测控通信信号进行实时循环存储,缓存器读写不冲突,分发速率可控的数据循环存储与分发的方法。
[0006]本发明解决其技术问题所采用的技术方案是:一种实时软件接收机中采集数据循环存储与分发方法,其特征在于包括如下步骤:首先,在计算机中分配一块容量为每次中断上报数据量整数倍的缓存器,对采集数据进行实时循环存储;采集数据经PCIE总线上报到计算机后,在循环存储指针控制模块控制下写入缓存器;当启动捕获标志有效时,单次分发指针控制模块启动单次数据分发流程,向捕获线程传递分发地址指针与分发数据长度,捕获线程从分发地址指针处拷贝数据到GPU中进行信号捕获操作;捕获线程完成捕获操作后,设置捕获完成标志有效;当捕获完成标志有效时,循环分发指针控制模块判断未分发数据块计数变量是否大于0,如果未分发数据块计数变量大于0,则启动循环数据分发流程;每存储标准分发数据长度个数据后,循环存储指针控制模块令未分发数据块计数变量执行加I操作,当数据存储指针到达缓存器尾部时,循环存储指针控制模块令数据采集卡中断次数循环计数变量归0,数据存储指针更新为缓存器首地址;当数据分发指针未到达缓存器尾部时,数据循环分发指针控制模块分发标准分发数据长度个数据给解调线程,并令未分发数据块计数变量执行减I操作,同时依照分发数据长度更新循环分发地址指针,当分发数据地址指针达到缓存器尾部时,分发数据长度等于分发时刻分发地址指针至循环缓存器尾部之间的数据长度,数据分发完成后,数据循环分发指针控制模块再更新数据循环分发指针等于缓存器首地址,分发数据长度等于标准分发数据长度。
[0007]本发明相比于现有技术具有如下有益效果。
[0008]简单高效,合理可靠,便于软件化处理。本发明通过在计算机中分配一块容量为每次中断上报数据量整数倍的缓存器以简单高效的方式实现了采集数据实时循环存储;通过判断启动捕获与捕获完成标志位的状态分别进行单次与循环数据分发,满足了捕获与解调线程对数据分发的需求;在循环数据分发过程中,通过判断缓存器中未被分发数据量的大小来控制是否进行循环分发,避免了缓存器的读写冲突。
[0009]能对不同体制、不同速率测控通信信号进行实时循环存储与分发。本发明根据航天测控通信系统具有调制方式多,信息速率范围大的特点,依据不同信息速率条件下数据循环分发数据长度需要依据解调时延的要求进行调整,数据循环分发数据长度不等于每次中断上报数据长度,设计了一套循环分发数据包大小控制机制,针对不同信息速率,通过设置标准分发数据长度的大小适应了不同信息速率解调时延与实时软件解调最小处理时间的需求。
[0010]本发明还可以应用于移动通信、卫星通信、GPS等系统软件接收机中。
【附图说明】
[0011]图1是本发明软件接收机采集数据实时循环存储与分发线程的组成示意图。
[0012]图2是本发明对应的数据存储与分发线程工作流程图。
【具体实施方式】
[0013]下面结合附图对本发明的技术方案进行详细说明。本发明分配了一块存储容量大小等于每次中断上报数据量整数倍的缓存器,为了更好说明数据循环存储与分发流程,定义如下变量:
BufferAddr:缓存器首地址,缓存器分配后是一个定值; DMA_Cnt::缓存器内存容量为DMA_Cnt个采集设备上报数据包大小;
BufferAddrEnd:缓存器尾地址,缓存器分配后是一个定值,
ffr i te_Cnt:数据采集卡中断次数循环计数变量,以DMA_Cnt为模,取值为O到DMA_Cnt-
1。当数据存储写指针到达缓存器尾部时Write_Cnt自动归O,写指针更新为BufferAddr ;WriteSize:每次中断上报数据包对应的数据个数,是个定值,缓存器尾地址BufferAddrEnd = BufferAddr+DMA_Cnt*ffriteSize:
ReadSize:标准分发数据长度,每当缓存器中存入ReadSize个数据令未分发数据块变量加I ,ReadSize等于WriteSize整数倍。可以进行灵活调整以满足不同信息速率解调时延与实时软件解调最小处理时间的需求;
WritePointer:采集设备写入缓存器的地址指针;
ReadPointer:从缓存器读出数据地址指针;
DataLen:从缓存器中循环分发到解调线程数据大小,当读指针没有到缓存器尾部时DataLen 等于 ReadSize ;
RemainderCnt:缓存器中未分发数据块数变量,缓存器中每写入ReadSize个数据时加I,每分发出DataLen个数据时减I;
参阅图1。在以下描述的实施例中,根据本发明所述软件接收机采集数据实时循环存储与分发方法,包括数据循环存储流程、数据单次与循环分发流程。本发明技术方案通过软件化的数据存储与分发线程实现。数据存储与分发线程主要控制单元为循环存储指针控制模块、单次分发指针控制模块、循环分发指针控制模块。各个模块的主要控制变量为启动捕获标志、捕获完成标志以及捕获结果。数据存储与分发线程向捕获线程输出单次分发读地址指针和读数据长度,向解调线程输出循环分发读地址指针和读数据长度。
[0014]当每次中断到来时,数据循环存储流程在缓存器上实时循环存储采集数据,同时更新中断次数循环计数变量Write_Cnt与存储写指针胃1';^6?0;[1^61'。当¥1';^6_&11:满足捕获线程所需数据量要求时,判断启动捕获标志是否有效。如果启动捕获标志无效,则将其置为有效,开始进行单次数据分发操作。每存储ReadSize个数据后,令RemainderCnt执行加I操作。当存储数据指针到达缓存器尾部时,令Write_Cnt归O,写指针WritePointer更新为BufferAddr0
[0015]当启动捕获标志有效时,单次数据分发流程开始向捕获线程传递读地址指针与读数据长度。然后捕获线程开始从读地址指针处拷贝数据到GHJ中进行信号捕获操作。捕获完成后,设置捕获完成标志有效,接着判断未分发数据块数是否大于O。如果未分发数据块数大于0,则启动循环数据分发流程。首次进行循环数据分发时,输出给解调线程的读地址指针需要利用捕获结果来进行设定。如果是扩频体制调制,则首次循环分发数据读指针为PN相位等于O的数据地址,如果是调频、线性相位调制,则首次循环分发数据读指针等于符号起始地址。当分发数据读指针未到达缓存器尾部时,分发数据长度DataLen为ReadSizeJi据分发完成后依照DataLen更新读指针ReadPointer;如果分发数据读指针达到数据尾部时,分发数据长度DataLen等于分发时刻读指针至循环缓存器尾部之间的数据长度,然后再更新读指针 ReadPo inter等于 BufferAddr ,DataLen 等于 ReadSi ze。
[0016]参阅图2,在数据存储与分发线程工作流程中,详细工作流程如下:
步骤1、循环存储指针控制模块判断PCIE中断信号是否到来,如果出现中断则转步骤2,否则继续等待。
[0017]步骤2、循环存储
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1