一種模塊化數(shù)據(jù)流驅(qū)動中多種通信模式的實(shí)現(xiàn)方法
【專利摘要】一種模塊化數(shù)據(jù)流驅(qū)動中多種通信模式的實(shí)現(xiàn)方法屬于雷達(dá)軟件化模塊化信號處理領(lǐng)域,其特征在于,使用可以跨平臺應(yīng)用的消息傳遞接口(MPI)的基本通信功能設(shè)計(jì)了選擇性發(fā)送模式、選擇性接收模式、三類反饋模式、滑窗積累模式及節(jié)拍接收模式的實(shí)現(xiàn)方法。通信模式的實(shí)現(xiàn)流程為:首先系統(tǒng)初始化,然后根據(jù)識別標(biāo)識判斷通信模式,最后執(zhí)行選定通信模式的步驟。本發(fā)明能有力支撐雷達(dá)軟件化集成開發(fā)工具在通信方面的實(shí)現(xiàn)。
【專利說明】一種模塊化數(shù)據(jù)流驅(qū)動中多種通信模式的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于雷達(dá)軟件化模塊化信號處理領(lǐng)域。
【背景技術(shù)】
[0002]傳統(tǒng)上,雷達(dá)信號處理領(lǐng)域的開發(fā)專業(yè)性強(qiáng),通用性差,周期長。模塊化的開發(fā)思想促使對信號處理流程進(jìn)行模塊化的劃分,以得到相對獨(dú)立的功能模塊。在此基礎(chǔ)上,進(jìn)一步實(shí)現(xiàn)整個信號處理流程圖形化的開發(fā),即通過簡單的拖拉模塊和連線來搭建信號處理流程,這樣就能實(shí)現(xiàn)模塊的重用,即模塊的功能代碼只需要開發(fā)一次,從而徹底將軟件開發(fā)人員從繁重的代碼編寫任務(wù)中解放出來。
[0003]雷達(dá)信號處理具有數(shù)據(jù)流驅(qū)動的特點(diǎn),即每次處理單個脈沖或單個相參處理間隔(CPI)的數(shù)據(jù),脈沖數(shù)據(jù)或CPI數(shù)據(jù)以一定的時(shí)間間隔輸入。這要求信號處理流圖中每個模塊基本采用“接收上一個模塊數(shù)據(jù)一處理數(shù)據(jù)一發(fā)送數(shù)據(jù)給下一個模塊”的執(zhí)行邏輯。但是一方面由于雷達(dá)信號處理流程的復(fù)雜性,用模塊與連線搭建好的流圖中如果每個模塊都按照基本邏輯執(zhí)行,會導(dǎo)致流圖卡住不運(yùn)行。另一方面,雷達(dá)信號處理流程經(jīng)常需要幾個模塊共同配合完成特定的數(shù)據(jù)流動,本發(fā)明稱之為通信模式。
[0004]消息傳遞接口(MPI)提供了很多基本的通信功能,比如模塊收發(fā)數(shù)據(jù)可以使用MPI的接收與發(fā)送函數(shù)實(shí)現(xiàn)。本發(fā)明就是要利用MPI的基本通信功能設(shè)計(jì)實(shí)現(xiàn)多種復(fù)雜的通信模式。
【發(fā)明內(nèi)容】
[0005]本發(fā)明利用MPI的基本通信功能設(shè)計(jì)實(shí)現(xiàn)了雷達(dá)模塊化信號處理領(lǐng)域的四種常見通信模式,支撐了雷達(dá)通用化軟件化集成開發(fā)工具的實(shí)現(xiàn)。本發(fā)明的特征在于,基于跨平臺應(yīng)用的消息傳遞接口,也即多路徑接口 MPI通信的雷達(dá)信號處理系統(tǒng)中依次按以下步驟實(shí)現(xiàn)的:
[0006]步驟(1),系統(tǒng)初始化,設(shè)有:
[0007]選擇性發(fā)送模塊,執(zhí)行配置有設(shè)定標(biāo)識的選擇性發(fā)送通信模式,
[0008]選擇性接收模塊,執(zhí)行配置有設(shè)定標(biāo)識的選擇性接收通信模式,
[0009]反饋式模塊,執(zhí)行配置有設(shè)定的共同標(biāo)識的下述三種反饋通信模式:
[0010]第一種反饋通信模式:第一次從非反饋端口接收數(shù)據(jù),以后只從反饋端口接收數(shù)據(jù),
[0011]第二種反饋通信模式:第一次從非反饋端口接收數(shù)據(jù),第二次從反饋端口接收數(shù)據(jù),第三次再從非反饋端口接收數(shù)據(jù),以后交替進(jìn)行,
[0012]第三種反饋通信模式:第一次從非反饋端口接收數(shù)據(jù),以后從所述非反饋端口和反饋端口同時(shí)接收數(shù)據(jù),
[0013]滑窗積累模塊,執(zhí)行配置有設(shè)定標(biāo)識的滑窗積累通信模式,
[0014]節(jié)拍接收模塊,設(shè)有兩個輸入端口,按照設(shè)定的節(jié)拍有規(guī)律地接收數(shù)據(jù),執(zhí)行配置有設(shè)定標(biāo)識的節(jié)拍接收通信模式,
[0015]通信模式識別模塊,按照接收的通信模式識別標(biāo)識,啟動相應(yīng)的通信模塊去執(zhí)行所標(biāo)識的通信模式;
[0016]步驟(2),系統(tǒng)依次按以下步驟執(zhí)行雷達(dá)信號處理流程,
[0017]步驟(2.1),根據(jù)識別標(biāo)識判斷通信模式:
[0018]若:為選擇性發(fā)送通信模式,執(zhí)行步驟(2.2.1),
[0019]若:為選擇性接收通信模式,執(zhí)行步驟(2.2.2),
[0020]若:為反饋通信模式,執(zhí)行步驟(2.2.3),
[0021]若:為滑窗積累通信模式,執(zhí)行步驟(2.2.4),
[0022]若:為節(jié)拍接收通信模式,執(zhí)行步驟(2.2.5),
[0023]步驟(2.2),按照識別標(biāo)識選擇性地執(zhí)行下述各種通信模式中的一種通信模式:
[0024]步驟(2.2.1),實(shí)現(xiàn)步驟如下:
[0025]步驟(2.2.1.1),接收進(jìn)程初始化,
[0026]步驟(2.2.1.2),啟動接收進(jìn)程,并等待數(shù)據(jù)接收完成,
[0027]步驟(2.2.1.3),處理數(shù)據(jù),并按支路編號判斷所需選擇發(fā)送的支路,
[0028]步驟(2.2.1.4),使用C語言的switch ()語句,按所述支路編號啟動該支路的MPI同步發(fā)送功能,
[0029]步驟(2.2.1.5),返回步驟(2.2.1.2);
[0030]步驟(2.2.2),實(shí)現(xiàn)步驟如下:
[0031]步驟(2.2.2.1),接收進(jìn)程全部初始化,
[0032]步驟(2.2.2.2),啟動全部接收進(jìn)程,通過waitanyO等待任何一條支路接收完成,再關(guān)閉接收進(jìn)程,
[0033]步驟(2.2.2.3),處理并發(fā)送數(shù)據(jù),
[0034]步驟(2.2.2.4),啟動被關(guān)閉的接收進(jìn)程,再通過所述waitanyO等待某一條支路接收完成,返回步驟(2.2.2.3);
[0035]步驟(2.2.3),實(shí)現(xiàn)步驟如下:
[0036]步驟(2.2.3.1),識別反饋通信模式標(biāo)識中的子標(biāo)識,判別屬于第η種反饋模式,η值從{1,2,3}中選取:
[0037]若:為第一種反饋模式,η=1,執(zhí)行步驟步驟(2.2.3.2.1),
[0038]若:為第二種反饋模式,η=2,執(zhí)行步驟步驟(2.2.3.2.2),
[0039]若:為第三種反饋模式,η=3,執(zhí)行步驟步驟(2.2.3.2.3),
[0040]步驟(2.2.3.2),按照反饋通信模式標(biāo)識中的子標(biāo)識,選擇性地執(zhí)行三種反饋模式中的一種:
[0041]步驟(2.2.3.2.1),實(shí)現(xiàn)步驟如下:
[0042]步驟(2.2.3.2.1.1),接收進(jìn)程全部初始化,
[0043]步驟(2.2.3.2.1.2),啟動非反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,
[0044]步驟(2.2.3.2.1.3),處理并發(fā)送數(shù)據(jù),
[0045]步驟(2.2.3.2.1.4),啟動反饋端口的接收進(jìn)程,待其數(shù)據(jù)接收完成返回步驟(2.2.3.2.1.3);[0046]步驟(2.2.3.2.2),實(shí)現(xiàn)步驟如下:
[0047]步驟(2.2.3.2.2.1),接收進(jìn)程全部初始化,
[0048]步驟(2.2.3.2.2.2),啟動非反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,
[0049]步驟(2.2.3.2.2.3),處理并發(fā)送數(shù)據(jù),
[0050]步驟(2.2.3.2.2.4),啟動反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,
[0051 ]步驟(2.2.3.2.2.5),處理并發(fā)送數(shù)據(jù),
[0052]步驟(2.2.3.2.2.6),返回步驟(2.2.3.2.2.2);
[0053]步驟(2.2.3.2.3),實(shí)現(xiàn)步驟如下:
[0054]步驟(2.2.3.2.3.1),接收進(jìn)程全部初始化,
[0055]步驟(2.2.3.2.3.2),啟動非反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,
[0056]步驟(2.2.3.2.3.3),處理并發(fā)送數(shù)據(jù),
[0057]步驟(2.2.3.2.3.4),啟動非反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,
[0058]步驟(2.2.3.2.3.5),啟動反饋端口的接收進(jìn)程并等待其數(shù)據(jù)接收完成,
[0059]步驟(2.2.3.2.3.6),同時(shí)從步驟(2.2.3.2.3.4)中的非反饋端口和步驟(2.2.3.2.3.5)中的反饋端口接收數(shù)據(jù)并經(jīng)處理后發(fā)送,
[0060]步驟(2.2.3.2.3.7),返回步驟(2.2.3.2.3.4);
[0061]步驟(2.2.4),實(shí)現(xiàn)步驟如下:
[0062]步驟(2.2.4.1),設(shè)定窗長為C,步長為S,數(shù)據(jù)緩沖區(qū)的長度等于C,
[0063]步驟(2.2.4.2),接收進(jìn)程初始化,積累次數(shù)初始化為0,
[0064]步驟(2.2.4.3),啟動接收進(jìn)程,并等待數(shù)據(jù)接收完成,積累次數(shù)加1,不同接收次數(shù)的數(shù)據(jù)以先進(jìn)先出的方式放入數(shù)據(jù)緩沖區(qū),
[0065]步驟(2.2.4.4),判斷積累次數(shù)是否等于C,
[0066]若:不等于C,返回步驟(2.2.4.3),
[0067]若:等于C,執(zhí)行步驟(2.2.4.5),
[0068]步驟(2.2.4.5),處理數(shù)據(jù)緩沖區(qū)的數(shù)據(jù),
[0069]步驟(2.2.4.6),發(fā)送處理后的數(shù)據(jù),積累次數(shù)歸0,
[0070]步驟(2.2.4.7),啟動接收進(jìn)程,等待其數(shù)據(jù)接收完成,積累次數(shù)加1,不同接收次數(shù)的數(shù)據(jù)以先進(jìn)先出的方式放入數(shù)據(jù)緩沖區(qū),
[0071]步驟(2.2.4.8),判斷積累次數(shù)是否等于S,
[0072]若:不等于S,則返回步驟(2.2.4.7),
[0073]若:等于S,則執(zhí)行步驟(2.2.4.9),
[0074]步驟(2.2.4.9),處理數(shù)據(jù)緩沖區(qū)的數(shù)據(jù),
[0075]步驟(2.2.4.10),發(fā)送處理后的數(shù)據(jù),積累次數(shù)歸0,
[0076]步驟(2.2.4.11),返回步驟(2.2.4.7);
[0077]步驟(2.2.5),實(shí)現(xiàn)步驟如下:
[0078]步驟(2.2.5.1),接收進(jìn)程全部初始化,
[0079]步驟(2.2.5.2),設(shè)定:左端口輸入多次數(shù)據(jù)后,右端口才輸入一次數(shù)據(jù),構(gòu)成一個節(jié)拍,左、右端口按設(shè)定的節(jié)拍接收數(shù)據(jù),又設(shè)定:用intervalNum表示節(jié)拍數(shù),用leftReceNum記錄左端口接收數(shù)據(jù)的次數(shù),初始時(shí)leftReceNum=0,[0080]步驟(2.2.5.3),啟動全部接收進(jìn)程,在數(shù)據(jù)接收完成后,leftReceNum加1,
[0081 ] 步驟(2.2.5.4),處理并發(fā)送數(shù)據(jù),
[0082]步驟(2.2.5.5),判斷左端口接收數(shù)據(jù)的次數(shù)是否等于節(jié)拍數(shù)intervalNum,
[0083]若:相等,返回步驟(2.2.5.3),
[0084]若:不相等,執(zhí)行步驟(2.2.5.6),
[0085]步驟(2.2.5.6),啟動左端口的接收進(jìn)程,等待其數(shù)據(jù)接收完成,leftReceNum加
1,
[0086]步驟(2.2.5.7),返回步驟(2.2.5.4)。
[0087]本發(fā)明具有以下有益效果及優(yōu)點(diǎn):
[0088]雷達(dá)模塊化信號處理流程中多種復(fù)雜通信模式的實(shí)現(xiàn)能夠有力支撐雷達(dá)軟件化集成開發(fā)工具的開發(fā);使用可以跨平臺應(yīng)用的MPI基本通信功能保證了雷達(dá)軟件化集成開發(fā)工具的通用性。
【專利附圖】
【附圖說明】
[0089]圖1為選擇性發(fā)送通信模式示意圖;
[0090]圖2為選擇性接收通信模式示意圖;
[0091]圖3為反饋通信模式示意圖;
[0092]圖4為選擇性發(fā)送通信模式實(shí)現(xiàn)流程圖;
[0093]圖5為選擇性接收通信模式實(shí)現(xiàn)流程圖;
[0094]圖6為第一種反饋通信模式實(shí)現(xiàn)流程圖;
[0095]圖7為第二種反饋通信模式實(shí)現(xiàn)流程圖;
[0096]圖8為第三種反饋通信模式實(shí)現(xiàn)流程圖;
[0097]圖9為滑窗積累通信模式實(shí)現(xiàn)流程圖;
[0098]圖10為節(jié)拍接收通信模式實(shí)現(xiàn)流程圖;
[0099]圖11為雷達(dá)信號處理流程中多種通信模式的實(shí)現(xiàn)流程圖。
【具體實(shí)施方式】
[0100]下面結(jié)合附圖和實(shí)施例對本發(fā)明裝置的使用方法做進(jìn)一步說明,主要包括以下三部分內(nèi)容:
[0101]一、多種通信模式介紹;
[0102]二、本發(fā)明使用的MPI基本通信功能;
[0103]二、多種通/[目模式實(shí)現(xiàn)方法。
[0104]如圖11示,多種通信模式的實(shí)現(xiàn)流程為:首先系統(tǒng)初始化,然后通信模式識別模塊根據(jù)識別標(biāo)識啟動相應(yīng)的通信模式,最后執(zhí)行選定通信模式的步驟。對于多種通信模式,分別命名為選擇性發(fā)送模式、選擇性接收模式、反饋模式、滑窗積累模式、節(jié)拍接收模式,下面分別介紹。
[0105]如圖1示,信號處理流程要求選擇性發(fā)送模塊根據(jù)數(shù)據(jù)特征將數(shù)據(jù)發(fā)送給六路輸出中的某一路,若選擇性發(fā)送模塊啟動六路輸出,則當(dāng)前數(shù)據(jù)會被六個支路全部收到,但由于數(shù)據(jù)只適用于某條支路,其余支路處理該數(shù)據(jù)會出現(xiàn)錯誤,從而導(dǎo)致程序結(jié)果混亂。因此,必須保證選擇性發(fā)送模塊每次只給一條支路發(fā)送數(shù)據(jù)。
[0106]如圖2示,N條輸入支路每次可能只有一條支路運(yùn)行,這會導(dǎo)致選擇性接收模塊每次只能接收一條支路的數(shù)據(jù),而且不知道數(shù)據(jù)來自哪條支路。若每個接收進(jìn)程都等待數(shù)據(jù)完成后模塊才進(jìn)入執(zhí)行部分,則選擇性接收模塊會卡在接收數(shù)據(jù)處。因此,選擇性接收模塊能夠只接收一路數(shù)據(jù)后,不等待其余支路的數(shù)據(jù),繼續(xù)向下運(yùn)行。
[0107]如圖3示,反饋模塊的第二個輸入端口的數(shù)據(jù)不是來自它的前級模塊,而是來自后級模塊的輸出,這樣就形成了反饋模式,接收后級模塊數(shù)據(jù)的端口稱為反饋端口。顯然,反饋端口第一次不能接收數(shù)據(jù),因?yàn)橹挥挟?dāng)后級模塊運(yùn)行一次后才會產(chǎn)生反饋端口的數(shù)據(jù)。另外反饋模塊存在如下三種模式:(1)第一次從非反饋端口接收數(shù)據(jù),以后只從反饋端口接收數(shù)據(jù)。(2)第一次從非反饋端口接收數(shù)據(jù),第二次從反饋端口接收數(shù)據(jù),第三次再從非反饋端口接收數(shù)據(jù),交替進(jìn)行。(3)第一次從非反饋端口接收數(shù)據(jù),以后從非反饋端口和反饋端口同時(shí)接收數(shù)據(jù)。
[0108]滑窗積累模式是由于有的模塊需要進(jìn)行多次接收然后處理并發(fā)送數(shù)據(jù)導(dǎo)致。比如,雷達(dá)前端每采樣一個脈沖的數(shù)據(jù)向后發(fā)送一次,但是動目標(biāo)檢測(MTD)需要積累一個CPI的所有脈沖后再處理一次數(shù)據(jù)。
[0109]節(jié)拍接收模式是對于兩個輸入端口的模塊而言,整個信號處理流圖可能要求左端口輸入多次數(shù)據(jù)后右端口才輸入一次數(shù)據(jù)。比如,雷達(dá)信號處理流程中左端口的輸入支路每一個脈沖輸入一次數(shù)據(jù),而右端口每一個CPI才輸入一次數(shù)據(jù)。左右端口按照一定的節(jié)拍有規(guī)律的收數(shù)。
[0110]對于本發(fā)明使用的MPI基本通信功能,考慮到數(shù)據(jù)流驅(qū)動的特點(diǎn),本發(fā)明選用MPI的非阻塞通信接收數(shù)據(jù)、消息發(fā)送中的同步發(fā)送來實(shí)現(xiàn)多種通信模式。
[0111]同步發(fā)送的特點(diǎn)是發(fā)送操作必須等到相應(yīng)的接收進(jìn)程啟動后才可返回。也就是說,當(dāng)前模塊啟動發(fā)送數(shù)據(jù)后,發(fā)送函數(shù)并不返回,而是等待與該輸出端口相連的輸入端口的接收啟動后,該發(fā)送函數(shù)才返回,當(dāng)前模塊可以繼續(xù)運(yùn)行產(chǎn)生第二批數(shù)據(jù)。若當(dāng)前模塊很快產(chǎn)生第二批數(shù)據(jù),但由于后續(xù)模塊沒有啟動第二次接收,所以當(dāng)前模塊會卡在第二次發(fā)送數(shù)據(jù)處。若后續(xù)模塊運(yùn)行較快,則后續(xù)模塊啟動第二次接收后由于當(dāng)前模塊還未發(fā)送第二次數(shù)據(jù)所以后續(xù)模塊卡在等待第二次接收完成處。可見,MPI的同步發(fā)送功能保證了不同批次數(shù)據(jù)的有序處理。
[0112]基于同步發(fā)送的要求,MPI的接收動作分成三步實(shí)現(xiàn):接收初始化(初始化一次即可)、啟動接收、等待接收完成后返回。其中,為了滿足不同的需求,等待接收完成接收后返回有三種實(shí)現(xiàn):(l)wait()用于等待某路指定的接收進(jìn)程完成后返回;(2)waitall()用于等待所有接收進(jìn)程完成后返回;(3)waitany()用于等待任何一路接收進(jìn)程完成后返回。
[0113]本發(fā)明利用上述介紹的MPI基本通信功能實(shí)現(xiàn)多種通信模式。
[0114]如圖4示,選擇性發(fā)送通信模式的實(shí)現(xiàn)步驟如下:
[0115]步驟1:接收進(jìn)程初始化;
[0116]步驟2:啟動接收,并等待數(shù)據(jù)接收完成;
[0117]步驟3:處理數(shù)據(jù),并判斷數(shù)據(jù)應(yīng)該發(fā)送到哪條支路,返回該支路的編號;
[0118]步驟4:使用C語言的switch語句,根據(jù)編號只啟動相應(yīng)支路的MPI同步發(fā)送功能,相應(yīng)的接收進(jìn)程啟動后返回步驟2。[0119]如圖5示,選擇性接收通信模式的實(shí)現(xiàn)步驟如下:
[0120]步驟1:接收進(jìn)程全部初始化;
[0121]步驟2:啟動全部接收進(jìn)程,并使用waitanyO等待某路數(shù)據(jù)接收完成;
[0122]步驟3:處理數(shù)據(jù);
[0123]步驟4:發(fā)送數(shù)據(jù);
[0124]步驟5:只啟動被waitanyO關(guān)閉的接收進(jìn)程,仍使用waitany()等待某路數(shù)據(jù)接收完成,返回步驟3。
[0125]如圖6示,第一種反饋通信模式的實(shí)現(xiàn)步驟如下:
[0126]步驟1:接收進(jìn)程全部初始化;
[0127]步驟2:啟動非反饋端口的接收進(jìn)程,并等待非反饋端口的數(shù)據(jù)接收完成;
[0128]步驟3:處理數(shù)據(jù);
[0129]步驟4:發(fā)送數(shù)據(jù);
[0130]步驟5:啟動反饋端口的接收進(jìn)程,并等待反饋端口的數(shù)據(jù)接收完成,返回步驟3。
[0131]如圖7示,第二種反饋通信模式的實(shí)現(xiàn)步驟如下:
[0132]步驟1:接收進(jìn)程全部初始化;
[0133]步驟2:啟動非反饋端口的接收進(jìn)程,并等待非反饋端口的數(shù)據(jù)接收完成;
[0134]步驟3:處理數(shù)據(jù);
[0135]步驟4:發(fā)送數(shù)據(jù);
[0136]步驟5:啟動反饋端口的接收進(jìn)程,并等待反饋端口的數(shù)據(jù)接收完成;
[0137]步驟6:處理數(shù)據(jù);
[0138]步驟7:發(fā)送數(shù)據(jù),返回步驟2。
[0139]如圖8示,第三種反饋通信模式的實(shí)現(xiàn)步驟如下:
[0140]步驟1:接收進(jìn)程全部初始化;
[0141]步驟2:啟動非反饋端口的接收進(jìn)程,并等待非反饋端口的數(shù)據(jù)接收完成;
[0142]步驟3:處理從非反饋端口接收的數(shù)據(jù);
[0143]步驟4:發(fā)送數(shù)據(jù);
[0144]步驟5:啟動非反饋端口的接收進(jìn)程,并等待非反饋端口的數(shù)據(jù)接收完成;
[0145]步驟6:啟動反饋端口的接收進(jìn)程,并等待反饋端口的數(shù)據(jù)接收完成;
[0146]步驟7:同時(shí)處理從非反饋端口與反饋端口接收的數(shù)據(jù);
[0147]步驟8:發(fā)送數(shù)據(jù),返回步驟5。
[0148]如圖9示,滑窗積累通信模式的實(shí)現(xiàn)步驟如下(假設(shè)窗長為C,步長為S):
[0149]步驟1:接收進(jìn)程初始化,積累次數(shù)初始化為0 ;
[0150]步驟2:啟動接收進(jìn)程,并等待數(shù)據(jù)接收完成,積累次數(shù)加1 ;
[0151]步驟3:判斷積累次數(shù)是否等于C,若不等于則返回步驟2,若等于則執(zhí)行步驟4 ;
[0152]步驟4:處理數(shù)據(jù);
[0153]步驟5:發(fā)送數(shù)據(jù),積累次數(shù)歸0 ;
[0154]步驟6:啟動接收進(jìn)程,并等待數(shù)據(jù)接收完成,積累次數(shù)加1 ;
[0155]步驟7:判斷積累次數(shù)是否等于S,若不等于則返回步驟6,若等于則執(zhí)行步驟8 ;
[0156]步驟8:處理數(shù)據(jù);[0157]步驟9:發(fā)送數(shù)據(jù),積累次數(shù)歸0,返回步驟6。
[0158]如圖10示,本發(fā)明設(shè)計(jì)兩個輸入端口的節(jié)拍接收通信模式,左端口輸入多次數(shù)據(jù)后,右端口才輸入一次數(shù)據(jù),構(gòu)成一個節(jié)拍。用leftReceNum記錄左端口接收數(shù)據(jù)的次數(shù)。節(jié)拍接收模式的實(shí)現(xiàn)步驟如下:
[0159]步驟1:接收進(jìn)程全部初始化;
[0160]步驟2:leftReceNum賦值為0,啟動全部接收進(jìn)程,等待數(shù)據(jù)接收完成,leftReceNum 加 1 ;
[0161]步驟3:處理數(shù)據(jù);
[0162]步驟4:發(fā)送數(shù)據(jù);
[0163]步驟5:判斷l(xiāng)eftReceNum是否等于節(jié)拍數(shù)intervalNum。若相等,返回步驟2。若不相等,執(zhí)行步驟6;
[0164]步驟6:啟動左端口的接收進(jìn)程,等待左端口數(shù)據(jù)接收完成,leftReceNum加1,返回步驟3。
[0165]以上所述,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種模塊化數(shù)據(jù)流驅(qū)動中多種通信模式的實(shí)現(xiàn)方法,其特征在于,基于跨平臺應(yīng)用的消息傳遞接口,也即多路徑接口 MPI通信的雷達(dá)信號處理系統(tǒng)中依次按以下步驟實(shí)現(xiàn)的:步驟(1),系統(tǒng)初始化,設(shè)有:選擇性發(fā)送模塊,執(zhí)行配置有設(shè)定標(biāo)識的選擇性發(fā)送通信模式,選擇性接收模塊,執(zhí)行配置有設(shè)定標(biāo)識的選擇性接收通信模式,反饋式模塊,執(zhí)行配置有設(shè)定的共同標(biāo)識的下述三種反饋通信模式:第一種反饋通信模式:第一次從非反饋端口接收數(shù)據(jù),以后只從反饋端口接收數(shù)據(jù),第二種反饋通信模式:第一次從非反饋端口接收數(shù)據(jù),第二次從反饋端口接收數(shù)據(jù),第三次再從非反饋端口接收數(shù)據(jù),以后交替進(jìn)行,第三種反饋通信模式:第一次從非反饋 端口接收數(shù)據(jù),以后從所述非反饋端口和反饋端口同時(shí)接收數(shù)據(jù),滑窗積累模塊,執(zhí)行配置有設(shè)定標(biāo)識的滑窗積累通信模式,節(jié)拍接收模塊,設(shè)有兩個輸入端口,按照設(shè)定的節(jié)拍有規(guī)律地接收數(shù)據(jù),執(zhí)行配置有設(shè)定標(biāo)識的節(jié)拍接收通信模式,通信模式識別模塊,按照接收的通信模式識別標(biāo)識,啟動相應(yīng)的通信模塊去執(zhí)行所標(biāo)識的通信模式;步驟(2),系統(tǒng)依次按以下步驟執(zhí)行雷達(dá)信號處理流程,步驟(2.1),根據(jù)識別標(biāo)識判斷通信模式:若:為選擇性發(fā)送通信模式,執(zhí)行步驟(2.2.1),若:為選擇性接收通信模式,執(zhí)行步驟(2.2.2),若:為反饋通信模式,執(zhí)行步驟(2.2.3),若:為滑窗積累通信模式,執(zhí)行步驟(2.2.4),若:為節(jié)拍接收通信模式,執(zhí)行步驟(2.2.5),步驟(2.2),按照識別標(biāo)識選擇性地執(zhí)行下述各種通信模式中的一種通信模式:步驟(2.2.1),實(shí)現(xiàn)步驟如下:步驟(2.2.1.1),接收進(jìn)程初始化,步驟(2.2.1.2),啟動接收進(jìn)程,并等待數(shù)據(jù)接收完成,步驟(2.2.1.3),處理數(shù)據(jù),并按支路編號判斷所需選擇發(fā)送的支路,步驟(2.2.1.4),使用C語言的switch ()語句,按所述支路編號啟動該支路的MPI同步發(fā)送功能,步驟(2.2.1.5),返回步驟(2.2.1.2);步驟(2.2.2),實(shí)現(xiàn)步驟如下:步驟(2.2.2.1),接收進(jìn)程全部初始化,步驟(2.2.2.2),啟動全部接收進(jìn)程,通過waitanyO等待任何一條支路接收完成,再關(guān)閉接收進(jìn)程,步驟(2.2.2.3),處理并發(fā)送數(shù)據(jù),步驟(2.2.2.4),啟動被關(guān)閉的接收進(jìn)程,再通過所述waitanyO等待某一條支路接收完成,返回步驟(2.2.2.3);步驟(2.2.3),實(shí)現(xiàn)步驟如下:步驟(2.2.3.1),識別反饋通信模式標(biāo)識中的子標(biāo)識,判別屬于第η種反饋模式,η值從{1,2, 3}中選取:若:為第一種反饋模式,η=1,執(zhí)行步驟步驟(2.2.3.2.1),若:為第二種反饋模式,η=2,執(zhí)行步驟步驟(2.2.3.2.2),若:為第三種反饋模式,η=3,執(zhí)行步驟步驟(2.2.3.2.3),步驟(2.2.3.2),按照反饋通信模式標(biāo)識中的子標(biāo)識,選擇性地執(zhí)行三種反饋模式中的一種:步驟(2.2.3.2.1),實(shí)現(xiàn)步驟如下:步驟(2.2.3.2.1.1),接收進(jìn)程全部初始化,步驟(2.2.3.2.1.2),啟動非反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,步驟(2.2.3.2.1.3),處理并發(fā)送數(shù)據(jù),步驟(2.2.3.2.1.4),啟動反饋端口的接收進(jìn)程,待其數(shù)據(jù)接收完成返回步驟(2.2.3.2.1.3);步驟(2.2.3.2.2),實(shí)現(xiàn)步驟如下:步驟(2.2.3.2.2.1),接收進(jìn) 程全部初始化,步驟(2.2.3.2.2.2),啟動非反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,步驟(2.2.3.2.2.3),處理并發(fā)送數(shù)據(jù),步驟(2.2.3.2.2.4),啟動反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,步驟(2.2.3.2.2.5),處理并發(fā)送數(shù)據(jù),步驟(2.2.3.2.2.6),返回步驟(2.2.3.2.2.2);步驟(2.2.3.2.3),實(shí)現(xiàn)步驟如下:步驟(2.2.3.2.3.1),接收進(jìn)程全部初始化,步驟(2.2.3.2.3.2),啟動非反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,步驟(2.2.3.2.3.3),處理并發(fā)送數(shù)據(jù),步驟(2.2.3.2.3.4),啟動非反饋端口的接收進(jìn)程,并等待其數(shù)據(jù)接收完成,步驟(2.2.3.2.3.5),啟動反饋端口的接收進(jìn)程并等待其數(shù)據(jù)接收完成,步驟(2.2.3.2.3.6),同時(shí)從步驟(2.2.3.2.3.4)中的非反饋端口和步驟(2.2.3.2.3.5)中的反饋端口接收數(shù)據(jù)并經(jīng)處理后發(fā)送,步驟(2.2.3.2.3.7),返回步驟(2.2.3.2.3.4);步驟(2.2.4),實(shí)現(xiàn)步驟如下:步驟(2.2.4.1),設(shè)定窗長為C,步長為S,數(shù)據(jù)緩沖區(qū)的長度等于C,步驟(2.2.4.2),接收進(jìn)程初始化,積累次數(shù)初始化為0,步驟(2.2.4.3),啟動接收進(jìn)程,并等待數(shù)據(jù)接收完成,積累次數(shù)加1,不同接收次數(shù)的數(shù)據(jù)以先進(jìn)先出的方式放入數(shù)據(jù)緩沖區(qū),步驟(2.2.4.4),判斷積累次數(shù)是否等于C,若:不等于C,返回步驟(2.2.4.3),若:等于C,執(zhí)行步驟(2.2.4.5),步驟(2.2.4.5),處理數(shù)據(jù)緩沖區(qū)的數(shù)據(jù),步驟(2.2.4.6),發(fā)送處理后的數(shù)據(jù),積累次數(shù)歸0,步驟(2.2.4.7),啟動接收進(jìn)程,等待其數(shù)據(jù)接收完成,積累次數(shù)加1,不同接收次數(shù)的數(shù)據(jù)以先進(jìn)先出的方式放入數(shù)據(jù)緩沖區(qū),步驟(2.2.4.8),判斷積累次數(shù)是否等于S,若:不等于S,則返回步驟(2.2.4.7),若:等于S,則執(zhí)行步驟(2.2.4.9),步驟(2.2.4.9),處理數(shù)據(jù)緩沖區(qū)的數(shù)據(jù),步驟(2.2.4.10),發(fā)送處理后的數(shù)據(jù),積累次數(shù)歸0,步驟(2.2.4.11),返回步驟(2.2.4.7);步驟(2.2.5),實(shí)現(xiàn)步驟如下:步驟(2.2.5.1),接收進(jìn)程全部初始化,步驟(2.2.5.2),設(shè)定:左端口輸入多次數(shù)據(jù)后,右端口才輸入一次數(shù)據(jù),構(gòu)成一個節(jié)拍,左、右端口按設(shè)定的節(jié)拍接收數(shù)據(jù),又設(shè)定:用intervalNum表示節(jié)拍數(shù),用leftReceNum記錄左端口接收數(shù)據(jù)的次數(shù),步驟(2.2.5.3),leftReceNum歸0,啟動全部接收進(jìn)程,在數(shù)據(jù)接收完成后,leftReceNum 加 1,步驟(2.2.5.4),處理并發(fā)送數(shù)據(jù),步驟(2.2.5.5),判斷左端口接收數(shù)據(jù)的次數(shù)是否等于節(jié)拍數(shù)intervalNum,若:相等,返回步驟(2.2.5.3),若:不相等,執(zhí)行步驟(2.2.5.6),步驟(2.2.5.6),啟動左端口的接收進(jìn)程,等待其數(shù)據(jù)接收完成,leftReceNum加1,步驟(2.2.5.7),返回步驟(2.2.5.4)。
【文檔編號】G06F13/38GK103631746SQ201310541048
【公開日】2014年3月12日 申請日期:2013年11月5日 優(yōu)先權(quán)日:2013年11月5日
【發(fā)明者】湯俊, 孫培林 申請人:清華大學(xué)