• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FC總線的多核通信中間件設(shè)計與實現(xiàn)

      2022-05-05 09:21:14
      數(shù)字通信世界 2022年4期
      關(guān)鍵詞:接收數(shù)據(jù)中間件應(yīng)用程序

      朱 強

      (中國航空工業(yè)集團公司洛陽電光設(shè)備研究所,河南 洛陽 471000)

      當(dāng)前,隨著戰(zhàn)斗機作戰(zhàn)任務(wù)的復(fù)雜度越來越高,對戰(zhàn)斗機的航電系統(tǒng)要求也越來越高,綜合核心處理機是航電任務(wù)系統(tǒng)核心組成部分,任務(wù)系統(tǒng)的大部分應(yīng)用程序都駐留在綜合核心處理機中,比如,火控管理、戰(zhàn)術(shù)決策、導(dǎo)航解算、傳感器管理、數(shù)據(jù)融合、顯示控制等。這些應(yīng)用對綜合核心處理機的硬件要求也越來越高。隨著電子技術(shù)的發(fā)展,單純提高處理器的主頻的空間越來越小,而目前多核是處理器發(fā)展的主要方向。在航空電子系統(tǒng)中,多核處理器也開始在各種型號處理器中使用。飛思卡爾推出的T2080處理器是四核八線程高性能處理器,每個核的最高主頻可達1.8 GHz,而風(fēng)河公司推出的vxWorks653 3.0多核操作系統(tǒng)也支持T2080處理器。在多核系統(tǒng)中,其應(yīng)用程序的部署方式以及驅(qū)動開發(fā)等與在單核系統(tǒng)中不同。在某型號綜合核心處理機驗證系統(tǒng)中高性能數(shù)據(jù)處理單元以T2080多核處理器為硬件平臺,以vxWorks653 3.0為軟件平臺,負責(zé)運行各種任務(wù)系統(tǒng)的應(yīng)用程序。圖1是高性能數(shù)據(jù)處理模塊組成框圖。

      圖1 高性能數(shù)據(jù)處理模塊組成框圖

      1 方案設(shè)計

      在高性能數(shù)據(jù)處理單元中,多核通信中間件運行在核0分區(qū)操作系統(tǒng)中,核0上的分區(qū)還運行FC驅(qū)動程序。多核通信中間件主要完成數(shù)據(jù)的轉(zhuǎn)發(fā)工作,即將應(yīng)用程序需要發(fā)送的數(shù)據(jù)通過端口PORT發(fā)送到中間件,中間件將數(shù)據(jù)轉(zhuǎn)發(fā)到FC總線,或者中間件將數(shù)據(jù)直接轉(zhuǎn)發(fā)到其他分區(qū)應(yīng)用中。同時中間件接收FC總線的數(shù)據(jù)或者其他分區(qū)的數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)發(fā)到對應(yīng)的分區(qū)應(yīng)用中。此外還具備消息組播功能,即收到消息后,根據(jù)配置轉(zhuǎn)發(fā)到多個端口中[1]。

      在多核通信中間件中,主要包含三個模塊,分別是應(yīng)用程序發(fā)送模塊、應(yīng)用程序接收模塊、轉(zhuǎn)換算法模塊。

      (1)應(yīng)用程序發(fā)送模塊:完成從端口中接收分區(qū)應(yīng)用發(fā)過來的數(shù)據(jù),根據(jù)配置,將數(shù)據(jù)轉(zhuǎn)發(fā)到FC總線或者將數(shù)據(jù)轉(zhuǎn)發(fā)到對應(yīng)的分區(qū)應(yīng)用中。

      (2)應(yīng)用程序接收模塊:根據(jù)配置,從FC驅(qū)動中接收數(shù)據(jù)或者從分區(qū)應(yīng)用中接收數(shù)據(jù),然后將數(shù)據(jù)單發(fā)或者以組播方式發(fā)送到對應(yīng)的接收分區(qū)應(yīng)用中。

      (3)轉(zhuǎn)換算法模塊:多核通信中間件在初始化時,需要完成配置表到轉(zhuǎn)發(fā)表的轉(zhuǎn)換,涉及的兩個轉(zhuǎn)換分別是,組播轉(zhuǎn)換和核間通信轉(zhuǎn)發(fā)時需要的索引轉(zhuǎn)換。

      多核通信中間件在運行時先初始化發(fā)送和接收的配置表數(shù)據(jù)結(jié)構(gòu)、創(chuàng)建端口、轉(zhuǎn)換成發(fā)送和接收轉(zhuǎn)發(fā)表,然后創(chuàng)建應(yīng)用程序接收任務(wù)和應(yīng)用程序發(fā)送任務(wù),兩個任務(wù)會讀取轉(zhuǎn)發(fā)表的信息進行數(shù)據(jù)轉(zhuǎn)發(fā)。

      圖2 多核通信中間件架構(gòu)圖

      2 轉(zhuǎn)換算法

      多核通信中間件在初始化時需要將配置表轉(zhuǎn)換成轉(zhuǎn)發(fā)表,配置表是多核通信中間件的輸入,包括發(fā)送配置表和接收配置表。轉(zhuǎn)發(fā)表是多核通信中間件將配置表轉(zhuǎn)換后形成的,在進行多核通信轉(zhuǎn)發(fā)時用到的信息都在轉(zhuǎn)發(fā)表中。轉(zhuǎn)換算法分為組播算法和內(nèi)部轉(zhuǎn)發(fā)算法[2]。

      發(fā)送和接收配置表的信息主要包括消息ID、消息類型、端口名稱、消息大小、最大消息數(shù)量、以及內(nèi)部和外部標志等。發(fā)送和接收配置表使用相同的結(jié)構(gòu)體,結(jié)構(gòu)體成員信息如下。

      發(fā)送轉(zhuǎn)發(fā)表的信息主要包括消息ID、消息類型、消息大小、消息數(shù)量、發(fā)送端口portID、核間通信時對應(yīng)的接收轉(zhuǎn)發(fā)表的索引、內(nèi)部外部標識等。發(fā)送轉(zhuǎn)發(fā)表的結(jié)構(gòu)體成員信息如下。

      接收轉(zhuǎn)發(fā)表的信息主要包括消息ID、消息類型、消息大小、消息數(shù)量、接收端口portID數(shù)組、接收端口PortID數(shù)量、核間通信時對應(yīng)的發(fā)送轉(zhuǎn)發(fā)表的索引、內(nèi)部外部標識等。接收轉(zhuǎn)發(fā)表的結(jié)構(gòu)體成員信息如下。

      發(fā)送轉(zhuǎn)發(fā)表與接收轉(zhuǎn)發(fā)表不同的地方在于接收轉(zhuǎn)發(fā)表的端口portID是數(shù)組。當(dāng)多核通信中間件收到FC總線消息或者分區(qū)應(yīng)用的消息后,將消息組播到對應(yīng)分區(qū),而接收端口的portID數(shù)組則保存了組播時需要的端口信息,進行組播時遍歷這個數(shù)組,逐條轉(zhuǎn)發(fā)。

      2.1 組播算法

      組播算法的核心思想是將接收配置表的信息進行重組后轉(zhuǎn)化成接收轉(zhuǎn)發(fā)表,當(dāng)多核中間件進行轉(zhuǎn)發(fā)時,讀取轉(zhuǎn)發(fā)表的信息就可以完成組播消息轉(zhuǎn)發(fā)。配置表和轉(zhuǎn)發(fā)表的轉(zhuǎn)換是遍歷配置表里的所有消息ID,當(dāng)配置表中有多個相同的消息ID時,代表這些相同的消息ID為組播消息。轉(zhuǎn)發(fā)表過濾并記錄這些相同的消息ID,并保存在數(shù)組中,在進行轉(zhuǎn)發(fā)時,遍歷這個數(shù)組就可以逐條轉(zhuǎn)發(fā)[3]。

      假設(shè)接收配置表為集合T={T[0],T[1],T[2],T[3]…},假設(shè)接收轉(zhuǎn)發(fā)表集合S={S[0],S[1],S[2],S[3]…}

      (1)初始狀態(tài),轉(zhuǎn)發(fā)表接收集合S={0}為空,配置表接收集合T={T1,T2,T3,T4…}。接收轉(zhuǎn)發(fā)表結(jié)構(gòu)體創(chuàng)建時被初始化為0。

      (2)遍歷接收配置表的每一項,并和接收轉(zhuǎn)發(fā)表的每一項的消息ID進行比對。

      (3)如果接收配置表的消息ID和接收轉(zhuǎn)發(fā)表的消息ID不同,則將接收配置表的消息ID等信息復(fù)制到接收轉(zhuǎn)發(fā)表的當(dāng)前最后一項中。

      (4)如果接受配置表的消息ID和接收轉(zhuǎn)發(fā)表的消息ID相同,則說明有組播消息,因為在組播消息中多個接收的消息ID相同,在轉(zhuǎn)發(fā)表中需要將這些相同的消息ID進行記錄,相同消息的ID不再在轉(zhuǎn)發(fā)表中占用新的結(jié)構(gòu)體空間,而是將這些相同的ID放到一個結(jié)構(gòu)體空間中,只需要記錄其portID即可,這樣在進行轉(zhuǎn)發(fā)過的過程中,收到消息后,遍歷所有對應(yīng)的發(fā)送PortID即可。

      2.2 內(nèi)部轉(zhuǎn)發(fā)算法

      由于vxWorks653 3.0提供了基于port的核間通信機制,因此分區(qū)之間的應(yīng)用即可以通過FC總線進行通信,也可以不經(jīng)過FC總線,中間件收到分區(qū)的消息后,直接轉(zhuǎn)發(fā)到對應(yīng)的接收分區(qū)。這樣可以減輕FC總線通信壓力。

      集合T代表轉(zhuǎn)發(fā)表中發(fā)送信息,包括發(fā)送消息msgID、發(fā)送端口portID、內(nèi)部轉(zhuǎn)發(fā)標志、內(nèi)部轉(zhuǎn)發(fā)對應(yīng)的接收索引等。集合R代表轉(zhuǎn)發(fā)表中的接收信息,包括接收消息msgID、接收端口portID、內(nèi)部轉(zhuǎn)發(fā)標志、內(nèi)部轉(zhuǎn)發(fā)對應(yīng)的發(fā)送索引等。

      遍歷轉(zhuǎn)發(fā)表中接收信息的每一項,判斷其內(nèi)外轉(zhuǎn)發(fā)標志,如果是外部,即標志為EXTRAL,代表消息從FC總線接收,此時內(nèi)部轉(zhuǎn)發(fā)對應(yīng)的發(fā)送索引設(shè)置為-1。

      如果是內(nèi)部,即標志為INTERNAL,代表消息直接從分區(qū)中接收。遍歷轉(zhuǎn)發(fā)表中的發(fā)送信息的每一項,如果發(fā)送信息中的消息msgID和接收信息中的消息msgID相同,則發(fā)送信息中的結(jié)構(gòu)體記錄接收信息的索引,同樣接收信息的結(jié)構(gòu)體記錄發(fā)送信息的索引。

      3 應(yīng)用程序接收任務(wù)

      應(yīng)用程序接收任務(wù)負責(zé)從FC總線接收數(shù)據(jù)或者從其他分區(qū)中接收數(shù)據(jù)然后轉(zhuǎn)發(fā)到對應(yīng)的分區(qū)應(yīng)用中。

      圖3 應(yīng)用程序接收任務(wù)流程圖

      (1)遍歷接收轉(zhuǎn)發(fā)表中的每條信息,判斷內(nèi)部外部標志。

      (2)如果是外部標志,則說明任務(wù)從FC總線接收數(shù)據(jù),然后再組播到對應(yīng)的分區(qū)應(yīng)用中。其中單播是組播的一種情況,只是需要轉(zhuǎn)發(fā)的消息個數(shù)為1,這樣就可以都統(tǒng)一按照組播轉(zhuǎn)發(fā)。

      (3)如果是內(nèi)部標志,則說明任務(wù)是從其他分區(qū)中接收數(shù)據(jù),然后再組播到對應(yīng)的分區(qū)應(yīng)用中。其中單播是組播的一種情況,只是需要轉(zhuǎn)發(fā)的消息個數(shù)為1,這樣就可以都統(tǒng)一按照組播轉(zhuǎn)發(fā)。

      4 應(yīng)用程序發(fā)送任務(wù)

      應(yīng)用程序發(fā)送任務(wù)負責(zé)將分區(qū)應(yīng)用中的數(shù)據(jù)發(fā)送到FC總線或者轉(zhuǎn)發(fā)到對應(yīng)的其他分區(qū)應(yīng)用中。

      (1)遍歷發(fā)送轉(zhuǎn)發(fā)表中的每條信息,判斷內(nèi)部外部標志。

      (2)如果是外部標志,則說明任務(wù)從應(yīng)用分區(qū)中接收數(shù)據(jù)再發(fā)送到FC總線。

      (3)如果是內(nèi)部,則說明任務(wù)從應(yīng)用分區(qū)中接收數(shù)據(jù)直接組播到其他分區(qū)中。其中單播是組播的一種情況,只是需要轉(zhuǎn)發(fā)的消息個數(shù)為1,這樣就可以都統(tǒng)一按照組播轉(zhuǎn)發(fā)。

      5 結(jié)束語

      本文提出了基于FC總線的多核通信中間件實現(xiàn)方案,該方案對于分區(qū)間通信本文提供了兩個可以配置的方案,即發(fā)送分區(qū)將數(shù)據(jù)發(fā)送到多核通信中間件,中間件根據(jù)配置信息,即可以將數(shù)據(jù)發(fā)送到FC總線后再經(jīng)過FC交換機轉(zhuǎn)到多核通信中間件,中間件再將數(shù)據(jù)發(fā)送到接收分區(qū)中。還可以將數(shù)據(jù)直接轉(zhuǎn)發(fā)到接收分區(qū)中。這樣可以減輕FC子卡的通信壓力。同時本文中的多核通信中間件還實現(xiàn)了消息多播功能。經(jīng)過測試,該方案轉(zhuǎn)發(fā)效率高,配置靈活。

      圖4 應(yīng)用程序發(fā)送任務(wù)流程圖

      猜你喜歡
      接收數(shù)據(jù)中間件應(yīng)用程序
      沖激噪聲背景下基于幅度預(yù)處理的測向新方法*
      刪除Win10中自帶的應(yīng)用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      低復(fù)雜度多輸入多輸出雷達目標角度估計方法
      RFID中間件技術(shù)及其應(yīng)用研究
      電子制作(2018年14期)2018-08-21 01:38:10
      基于VanConnect中間件的設(shè)計與開發(fā)
      電子測試(2018年10期)2018-06-26 05:54:02
      單片機模擬串口數(shù)據(jù)接收程序的實現(xiàn)及優(yōu)化
      中間件在高速公路領(lǐng)域的應(yīng)用
      一種支持智能環(huán)境構(gòu)建的中間件
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      基于PCMCIA的ARINC429通信卡設(shè)計
      微處理機(2010年3期)2010-06-13 11:32:54
      济宁市| 郎溪县| 临湘市| 曲麻莱县| 乐陵市| 平罗县| 新余市| 中方县| 类乌齐县| 孙吴县| 滦平县| 共和县| 宜良县| 青田县| 福鼎市| 金寨县| 凤山市| 于都县| 兴仁县| 环江| 昌吉市| 平原县| 凤冈县| 天全县| 碌曲县| 南木林县| 公主岭市| 瑞丽市| 庆元县| 正安县| 义马市| 册亨县| 临澧县| 咸宁市| 桂阳县| 彰武县| 博爱县| 铜川市| 南漳县| 杂多县| 大余县|