发明名称 一种模块化数据流驱动中多种通信模式的实现方法
摘要 种模块化数据流驱动中多种通信模式的实现方法属于雷达软件化模块化信号处理领域,其特征在于,使用可以跨平台应用的消息传递接口(MPI)的基本通信功能设计了选择性发送模式、选择性接收模式、三类反馈模式、滑窗积累模式及节拍接收模式的实现方法。通信模式的实现流程为:首先系统初始化,然后根据识别标识判断通信模式,最后执行选定通信模式的步骤。本发明能有力支撑雷达软件化集成开发工具在通信方面的实现。
申请公布号 CN103631746A 申请公布日期 2014.03.12
申请号 CN201310541048.9 申请日期 2013.11.05
申请人 清华大学 发明人 汤俊;孙培林
分类号 G06F13/38(2006.01)I 主分类号 G06F13/38(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 楼艮基
主权项 一种模块化数据流驱动中多种通信模式的实现方法,其特征在于,基于跨平台应用的消息传递接口,也即多路径接口MPI通信的雷达信号处理系统中依次按以下步骤实现的:步骤(1),系统初始化,设有:选择性发送模块,执行配置有设定标识的选择性发送通信模式,选择性接收模块,执行配置有设定标识的选择性接收通信模式,反馈式模块,执行配置有设定的共同标识的下述三种反馈通信模式:第一种反馈通信模式:第一次从非反馈端口接收数据,以后只从反馈端口接收数据,第二种反馈通信模式:第一次从非反馈端口接收数据,第二次从反馈端口接收数据,第三次再从非反馈端口接收数据,以后交替进行,第三种反馈通信模式:第一次从非反馈端口接收数据,以后从所述非反馈端口和反馈端口同时接收数据,滑窗积累模块,执行配置有设定标识的滑窗积累通信模式,节拍接收模块,设有两个输入端口,按照设定的节拍有规律地接收数据,执行配置有设定标识的节拍接收通信模式,通信模式识别模块,按照接收的通信模式识别标识,启动相应的通信模块去执行所标识的通信模式;步骤(2),系统依次按以下步骤执行雷达信号处理流程,步骤(2.1),根据识别标识判断通信模式:若:为选择性发送通信模式,执行步骤(2.2.1),若:为选择性接收通信模式,执行步骤(2.2.2),若:为反馈通信模式,执行步骤(2.2.3),若:为滑窗积累通信模式,执行步骤(2.2.4),若:为节拍接收通信模式,执行步骤(2.2.5),步骤(2.2),按照识别标识选择性地执行下述各种通信模式中的一种通信模式:步骤(2.2.1),实现步骤如下:步骤(2.2.1.1),接收进程初始化,步骤(2.2.1.2),启动接收进程,并等待数据接收完成,步骤(2.2.1.3),处理数据,并按支路编号判断所需选择发送的支路,步骤(2.2.1.4),使用C语言的switch()语句,按所述支路编号启动该支路的MPI同步发送功能,步骤(2.2.1.5),返回步骤(2.2.1.2);步骤(2.2.2),实现步骤如下:步骤(2.2.2.1),接收进程全部初始化,步骤(2.2.2.2),启动全部接收进程,通过waitany()等待任何一条支路接收完成,再关闭接收进程,步骤(2.2.2.3),处理并发送数据,步骤(2.2.2.4),启动被关闭的接收进程,再通过所述waitany()等待某一条支路接收完成,返回步骤(2.2.2.3);步骤(2.2.3),实现步骤如下:步骤(2.2.3.1),识别反馈通信模式标识中的子标识,判别属于第n种反馈模式,n值从{1,2,3}中选取:若:为第一种反馈模式,n=1,执行步骤步骤(2.2.3.2.1),若:为第二种反馈模式,n=2,执行步骤步骤(2.2.3.2.2),若:为第三种反馈模式,n=3,执行步骤步骤(2.2.3.2.3),步骤(2.2.3.2),按照反馈通信模式标识中的子标识,选择性地执行三种反馈模式中的一种:步骤(2.2.3.2.1),实现步骤如下:步骤(2.2.3.2.1.1),接收进程全部初始化,步骤(2.2.3.2.1.2),启动非反馈端口的接收进程,并等待其数据接收完成,步骤(2.2.3.2.1.3),处理并发送数据,步骤(2.2.3.2.1.4),启动反馈端口的接收进程,待其数据接收完成返回步骤(2.2.3.2.1.3);步骤(2.2.3.2.2),实现步骤如下:步骤(2.2.3.2.2.1),接收进程全部初始化,步骤(2.2.3.2.2.2),启动非反馈端口的接收进程,并等待其数据接收完成,步骤(2.2.3.2.2.3),处理并发送数据,步骤(2.2.3.2.2.4),启动反馈端口的接收进程,并等待其数据接收完成,步骤(2.2.3.2.2.5),处理并发送数据,步骤(2.2.3.2.2.6),返回步骤(2.2.3.2.2.2);步骤(2.2.3.2.3),实现步骤如下:步骤(2.2.3.2.3.1),接收进程全部初始化,步骤(2.2.3.2.3.2),启动非反馈端口的接收进程,并等待其数据接收完成,步骤(2.2.3.2.3.3),处理并发送数据,步骤(2.2.3.2.3.4),启动非反馈端口的接收进程,并等待其数据接收完成,步骤(2.2.3.2.3.5),启动反馈端口的接收进程并等待其数据接收完成,步骤(2.2.3.2.3.6),同时从步骤(2.2.3.2.3.4)中的非反馈端口和步骤(2.2.3.2.3.5)中的反馈端口接收数据并经处理后发送,步骤(2.2.3.2.3.7),返回步骤(2.2.3.2.3.4);步骤(2.2.4),实现步骤如下:步骤(2.2.4.1),设定窗长为C,步长为S,数据缓冲区的长度等于C,步骤(2.2.4.2),接收进程初始化,积累次数初始化为0,步骤(2.2.4.3),启动接收进程,并等待数据接收完成,积累次数加1,不同接收次数的数据以先进先出的方式放入数据缓冲区,步骤(2.2.4.4),判断积累次数是否等于C,若:不等于C,返回步骤(2.2.4.3),若:等于C,执行步骤(2.2.4.5),步骤(2.2.4.5),处理数据缓冲区的数据,步骤(2.2.4.6),发送处理后的数据,积累次数归0,步骤(2.2.4.7),启动接收进程,等待其数据接收完成,积累次数加1,不同接收次数的数据以先进先出的方式放入数据缓冲区,步骤(2.2.4.8),判断积累次数是否等于S,若:不等于S,则返回步骤(2.2.4.7),若:等于S,则执行步骤(2.2.4.9),步骤(2.2.4.9),处理数据缓冲区的数据,步骤(2.2.4.10),发送处理后的数据,积累次数归0,步骤(2.2.4.11),返回步骤(2.2.4.7);步骤(2.2.5),实现步骤如下:步骤(2.2.5.1),接收进程全部初始化,步骤(2.2.5.2),设定:左端口输入多次数据后,右端口才输入一次数据,构成 一个节拍,左、右端口按设定的节拍接收数据,又设定:用intervalNum表示节拍数,用leftReceNum记录左端口接收数据的次数,步骤(2.2.5.3),leftReceNum归0,启动全部接收进程,在数据接收完成后,leftReceNum加1,步骤(2.2.5.4),处理并发送数据,步骤(2.2.5.5),判断左端口接收数据的次数是否等于节拍数intervalNum,若:相等,返回步骤(2.2.5.3),若:不相等,执行步骤(2.2.5.6),步骤(2.2.5.6),启动左端口的接收进程,等待其数据接收完成,leftReceNum加1,步骤(2.2.5.7),返回步骤(2.2.5.4)。
地址 100084 北京市海淀区清华园1号