一種網格接收機的數據緩存與發送裝置及方法
2023-09-19 20:05:45 3
一種網格接收機的數據緩存與發送裝置及方法
【專利摘要】一種網格接收機的數據緩存與發送裝置,包括由FPGA和DDR3存儲器組成的緩存模塊,片上系統及駐機軟體組成的TCP通信模塊。其中FPGA通過接口電路與DDR3存儲器相連,並通過外部系統總線與片上系統相連,片上系統具有乙太網接口,可以將數據發送到網絡。本發明為接收機的FPGA晶片掛接DDR3存儲器,數據可在中頻處理後直接由FPGA寫入DDR3存儲器,使得接收機可以不間斷的高速採集。FPGA向片上系統提供FIFO接口來支持異步數據搬移,在TCP通信模塊中採用數據通道專門用於數據的發送,確保數據流在整個發送過程中都不會中斷。
【專利說明】一種網格接收機的數據緩存與發送裝置及方法
【技術領域】
[0001]本發明屬於無線電監測領域,尤其是一種網格接收機的數據緩存與發送裝置及該裝置的工作方法。
【背景技術】
[0002]網格化已是無線電監測的一個重要發展方向,網格化的接收機不再是孤立的單站作業點,而是作為一個傳感器,為監測系統提供頻譜感知的能力。各個接收機通過網絡相互連通,所測量的數據均發送到遠端伺服器進行比對融合和處理。由於網格化需要在監測區域內布設大量的接收機,因此接收機必須是小型化、低成本和易安裝的,臺式接收機不在考慮之列。此外,相比於傳統的接收機,網格化更加強調接收機對數據的本地緩存和網絡傳輸能力。在網格化的無線電監測系統中,接收機所採集的數據需要傳送到遠程的工作站進行處理。在目前有限的網絡帶寬下,當高速採集時,數據往往不能及時得到傳輸,因而需要接收機緩存數據。如果使用接收機內嵌入式系統自帶的內存,其寫入速度和容量均達不到要求。在數據傳輸方面,要求網格接收機在發送數據時不能中斷數據流,確保數據流到達遠程主機時與原始採集時保持一致。
[0003]目前小型化的接收機,其數字部分採用FPGA+ARM的架構,兩者之間通過ARM的外部系統總線進行數據傳輸。對FPGA編程實現數字中頻處理,每處理完一幀數據,FPGA發出中斷請求通知CPU將數據讀走。CPU在中斷例程中,將數據從FPGA複製到內存中,然後控制FPGA啟動下一幀的採集,複製到內存中的數據幀由其他模塊進行後續的處理。
[0004]在程控時,遠程主機與接收機的交互基於遠程過程調用(RPC)的應用層協議。在該方式下,接收機被動的響應程控指令。當需要獲取接收機的採集數據時,遠程主機向接收機發送一條查詢指令,RPC協議將指令解釋成遠程調用接收機的一個過程,接收機在此過程中把測量結果發送出去,遠程主機方可繼續執行下一步操作。
【發明內容】
[0005]本發明的目的就是針對現有網格接收機缺乏高速大容量的緩存功能,無法實現高速採集,FPGA要等待CPU讀完數據之後才可進行後續處理,數據採集不連續的不足,提出了一種網格接收機的數據緩存與發送裝置及方法。
[0006]本發明採用如下技術方案:
[0007]—種網格接收機的數據緩存與發送裝置,包括數據緩存模塊和TCP通信模塊,所述緩存模塊包括FPGA和DDR3存儲器,所述FPGA通過接口電路與DDR3存儲器相連,並通過外部系統總線與TCP通信模塊中的片上系統相連,所述TCP通信模塊由片上系統及駐機軟體組成,所述片上系統設有乙太網接口。
[0008]優選地,所述接口電路由控制線、數據通路和時鐘線組成。
[0009]優選地,所述FPGA上設有供所述片上系統讀取DDR3存儲器數據的FIFO接口。
[0010]優選地,所述TCP通信模塊包括管理單元、控制通道和數據通道三部分。
[0011]優選地,所述TCP通信模塊的管理單元包括監聽器、消息響應器、通道映射表和通道工廠。
[0012]優選地,所述TCP通信模塊的控制通道包括指令分離器和準數據通道鍊表。
[0013]優選地,所述TCP通信模塊的數據通道包括一個發送代理。
[0014]一種網格接收機的數據緩存與發送方法,採用DDR3存儲器的異步讀寫,通過FPGA的流驅動作為駐機軟體搬移數據的硬體控制接口,採用TCP通信模塊進行數據發送,數據緩存與發送過程主要包含三個階段:
[0015]緩存,網格接收機接收的數據由FPGA寫入DDR3存儲器中進行緩存,並由FPGA利用接口總線的空閒時間將數據輸送到FIFO接口 ;
[0016]搬移,所述駐機軟體中,有一個頻譜數據搬移線程專門對數據幀進行搬移,該線程執行以下步驟:
[0017]步驟一,判斷掃描參數列表是否為空,為空就休眠50毫秒繼續執行步驟一,否則取出列表頭節點;
[0018]步驟二,根據節點參數信息中的快速傅立葉變換點數在進程堆上創建相應大小的緩衝區;
[0019]步驟三,以該緩衝區地址和大小為參數,通過Device1Control O函數調用流驅動的數據搬移函數,由後者把FPGA FIFO裡數據搬移到緩衝區中,其中DeviceloControlO為作業系統的一個API函數;
[0020]步驟四,對測量數據進行對數轉換和頻響補償,並製作該幀的頭部,頭部包括頻率、快速傅立葉變換點數、時間戳信息;
[0021]步驟五,以目前關聯的數據通道的套接字句柄為參數,把步驟三中的兩個數據塊打包送往TCP通信模塊;
[0022]步驟六,如果TCP通信模塊接收,則執行步驟一,否則繼續嘗試步驟五;
[0023]傳輸,數據的傳輸由接收機的TCP通信模塊實現,數據的傳輸過程包括以下步驟:
[0024]步驟a,申請數據連接,遠程主機欲接收數據,首先通過已建立的控制通道向接收機發送「埠 」指令,該指令向接收機提出了建立數據連接的申請,在指令幀中包含了遠程主機用於該數據通道連接的TCP埠號,接收機收到該指令後,經過指令分離、指令解析和分發,最終由TCP通信模塊自身負責響應。在響應過程中,TCP通信模塊首先委託通道工廠創建出一個未連接的數據通道實例,並將此通道添加到控制通道的準數據通道鍊表,然後通過控制通道向遠程主機發送應答;
[0025]步驟b,建立連接,遠程主機在收到應答之後,就以申請連接時的埠號向接收機發起連接請求;接收機收到請求後,找到與該連接請求埠號一致的準數據通道,為該準數據通道建立連接;
[0026]步驟C,發送,接收機的內部模塊總是通過數據通道向遠程主機發送數據。發送時,內部模塊以數據通道的套接字句柄,數據塊的引用為參數,向TCP通信模塊提出發送請求,由TCP通信模塊負責將數據塊發送到網絡。
[0027]發送的具體過程由TCP通信模塊控制,TCP通信模塊首先根據套接字句柄查找通道映射表找到對應的數據通道,然後就把數據塊的發送任務委託給了數據通道,數據通道在判斷通道狀態正常後,就把發送任務委託給發送代理,發送代理實現了發送的真正細節;
[0028]發送代理擁有一個64k字節的環形緩衝區,環形緩衝區被抽象成首尾相接,採用臨界區保護,可以多線程訪問。通常情況下,寫入數據運行於數據採集線程的上下文,發送數據運行於主線程的上下文。緩衝中的數據先入先出,緩衝的空間可循環利用;
[0029]採集線程中的數據塊發送請求被委託給發送代理後,發送代理首先把數據塊的大小與環形緩衝的可用空間相比較。如果可用空間無法容納該數據塊,就拒絕該請求;否則就把數據塊添加到緩衝中數據的尾部,更新數據尾部標記,並向窗口投遞一條數據發送消息。
[0030]該消息經過主線程的分發,最終會由數據通道接收到。數據通道初步解析消息參數後,委託發送代理繼續響應消息。發送代理會在三次迭代中儘可能多的發送環形緩衝中的數據,在迭代過程中如果環形緩衝已空或者發送受到阻塞,都會中途退出。在迭代完成後,如果環形緩衝仍有數據沒有發送,則向窗口投遞一條數據發送消息,留待下次響應消息時發送。
[0031]本發明具有以下有益效果:
[0032]1、在緩存模塊中掛接DDR3存儲器,數據可在中頻處理後直接由FPGA寫入DDR3存儲器,使得接收機可以高速採集。
[0033]2、FPGA分時控制DDR3存儲器的讀寫,為CPU訪問DDR3存儲器提供FIFO接口,CPU在讀取數據時不會造成數據採集的中斷。
[0034]3、採用專門的TCP通路傳輸數據,使數據流與控制流相分離,數據流可以高速連續的傳送到遠程主機。
[0035]4、網格接收機TCP通信模塊的組成結構,分為管理單元、控制通道和數據通道三部分,接收機可以同時與多個遠程主機交互,不同類型的測量數據可通過多個數據通道並行發送。
[0036]5、通過發送代理的方式,一方面向外界屏蔽了數據發送的複雜性,另一方面環形緩衝區的設計和由消息驅動的發送過程保證了數據發送的高效。
【專利附圖】
【附圖說明】
[0037]圖1為網格接收機內部框圖;
[0038]圖2為DDR3存儲器與FPGA的連接部分框圖;
[0039]圖3為接收機的TCP通信模塊結構框圖。
【具體實施方式】
[0040]下面結合附圖和具體實施例對本發明的【具體實施方式】做進一步的說明:
[0041]專用名詞介紹:
[0042]FPGA:現場可編程門陣列,DDR3:第三代雙倍數據率同步動態隨機存取存儲器,FIFO:先入先出隊列,TCP:傳輸控制協議。
[0043]如圖1所示,一種網格接收機的數據緩存與發送裝置,包括數據緩存模塊和TCP通信模塊,緩存模塊包括FPGA和DDR3存儲器,所述FPGA通過接口電路與DDR3存儲器相連,並通過外部系統總線與TCP通信模塊中的片上系統相連,所述TCP通信模塊由片上系統及駐機軟體組成,所述片上系統設有乙太網接口,可以將數據發送到網絡。所述FPGA通過接口電路連接有DDR3存儲器,在本發明中DDR3存儲器的存儲容量為4GB,片上系統與遠程主機通過TCP通信模塊實現通信,片上系統的CPU採用ARM Cortex-A8核的處理器,主頻800MHz,具有百兆LAN網口,外部系統總線具有16位的數據線和24位的地址線,時鐘頻率133MHzο接收機採用Window Embedded Compact 7嵌入式作業系統。
[0044]如圖2所示,所述連接FPGA與DDR3存儲器的接口電路由控制線、數據通路和時鐘線組成。
[0045]所述FPGA上設有供所述片上系統讀取DDR3存儲器數據的FIFO接口,FPGA內部通過Xilinx FPGA存儲器接口生成器生成IP核,IP核包含物理層、控制器和用戶接口層,物理層直接和DDR3存儲器相連接。用戶接口層用於接收用戶控制接口發送過來的寫地址、寫數據和讀地址。控制器是整個IP核的核心,負責處理用戶接口層發送的命令,產生滿足用戶需求的激活、讀、寫、預充電、自刷新等命令。在該IP核的基礎上,FPGA控制DDR3存儲器部分的設計得以大大簡化,編程人員只需要按照IP核用戶操作端的時序要求進行讀寫操作即可。由於DDR3存儲器不能同時又讀又寫,FPGA需要採用分時策略,把讀寫操作分離。FPGA內部採用流水作業,在生成下一幀IQ數據的同時對上一幀進行快速傅立葉變換運算和DDR3存儲器寫入操作,按照無縫採集的要求,運算和寫入的時間一定會小於IQ數據幀的生成時間,在該時間差內,DDR3存儲器的接口總線是空閒的,因而FPGA可利用此時間差將DDR3存儲器中的數據輸送到FIFO中。
[0046]如圖3所示,所述TCP通信模塊包括管理單元、控制通道和數據通道三部分。
[0047]所述TCP通信模塊的管理單元包括監聽器、消息響應器、通道映射表和通道工廠,其中監聽器處理8080埠的連接請求,如果允許建立連接,就利用通道工廠創建通道對象。消息響應器用於響應網絡事件,當窗口在收到網絡事件消息後會通知TCP通信模塊,然後由消息響應器把消息分發到對應的通道;通道映射表記錄通道套接字句柄和通道對象的對應關係,每個已建立的控制通道和數據通道均記錄在該表中,可以通過套接字句柄迅速找到其通道對象。通道工廠負責創建控制通道和數據通道的實例。
[0048]所述TCP通信模塊的控制通道包括指令分離器和準數據通道鍊表。指令分離器對接收緩衝的數據流進行處理,將數據流分割成一個個指令幀,然後通過接收機的指令分發模塊發送到接收機各個內部模塊響應。控制通道還包含一個準數據通道鍊表,保存那些隸屬於該控制通道,但尚未真正建立連接的數據通道。
[0049]所述TCP通信模塊的數據通道包括一個發送代理,該代理在接受接收機內部模塊欲發送的數據後,以Windows消息為驅動,異步地把數據發送到遠程主機。
[0050]一種網格接收機的數據緩存與發送方法,採用DDR3存儲器的異步讀寫,通過FPGA的流驅動作為駐機軟體搬移數據的硬體控制接口,採用TCP通信模塊進行數據發送,數據緩存與發送過程主要包含三個階段:
[0051]緩存,網格接收機接收的數據由FPGA寫入DDR3存儲器中進行緩存,並由FPGA利用接口總線的空閒時間將數據輸送到FIFO接口 ;
[0052]搬移,所述駐機軟體中,有一個頻譜數據搬移線程專門對數據幀進行搬移,該線程執行以下步驟:
[0053]步驟一,判斷掃描參數列表是否為空,為空就休眠50毫秒繼續執行步驟一,否則取出列表頭節點;
[0054]步驟二,根據節點參數信息中的快速傅立葉變換點數在進程堆上創建相應大小的緩衝區;
[0055]步驟三,以該緩衝區地址和大小為參數,通過Device1Control O函數調用流驅動的數據搬移函數,由後者把FPGA FIFO裡數據搬移到緩衝區中,其中DeviceloControlO為作業系統的一個API函數;
[0056]步驟四,對測量數據進行對數轉換和頻響補償,並製作該幀的頭部,頭部包括頻率、快速傅立葉變換點數、時間戳信息;
[0057]步驟五,以目前關聯的數據通道的套接字句柄為參數,把步驟三中的兩個數據塊打包送往TCP通信模塊;
[0058]步驟六,如果TCP通信模塊接收,則執行步驟一,否則繼續嘗試步驟五;
[0059]傳輸,數據的傳輸由接收機的TCP通信模塊實現,數據的傳輸過程包括以下步驟:
[0060]步驟a,申請數據連接,遠程主機欲接收數據,首先通過已建立的控制通道向接收機發送「埠 」指令,該指令向接收機提出了建立數據連接的申請,在指令幀中包含了遠程主機用於該數據通道連接的TCP埠號;
[0061]步驟b,建立連接,遠程主機在收到應答之後,就以申請連接時的埠號向接收機發起連接請求;接收機收到請求後,找到與該連接請求埠號一致的準數據通道,為該準數據通道建立連接。
[0062]步驟C,發送,接收機的內部模塊總是通過數據通道向遠程主機發送數據。發送時,內部模塊以數據通道的套接字句柄,數據塊的引用為參數,向TCP通信模塊提出發送請求,由TCP通信模塊負責將數據塊發送到網絡。
[0063]發送的具體過程由TCP通信模塊控制,TCP通信模塊首先根據套接字句柄查找通道映射表找到對應的數據通道,然後就把數據塊的發送任務委託給了數據通道,數據通道在判斷通道狀態正常後,就把發送任務委託給發送代理,發送代理實現了發送的真正細節。
[0064]發送代理擁有一個64k字節的環形緩衝區,環形緩衝區被抽象成首尾相接,採用臨界區保護,可以多線程訪問。通常情況下,寫入數據運行於數據採集線程的上下文,發送數據運行於主線程的上下文。緩衝中的數據先入先出,緩衝的空間可循環利用。
[0065]採集線程中的數據塊發送請求被委託給發送代理後,發送代理首先把數據塊的大小與環形緩衝的可用空間相比較。如果可用空間無法容納該數據塊,就拒絕該請求;否則就把數據塊添加到緩衝中數據的尾部,更新數據尾部標記,並向窗口投遞一條數據發送消息。
[0066]該消息經過主線程的分發,最終會由數據通道接收到。數據通道初步解析消息參數後,委託發送代理繼續響應消息。發送代理會在三次迭代中儘可能多的發送環形緩衝中的數據,在迭代過程中如果環形緩衝已空或者發送受到阻塞,都會中途退出。在迭代完成後,如果環形緩衝仍有數據沒有發送,則向窗口投遞一條數據發送消息,留待下次響應消息時發送。
[0067]當然,上述說明並非是對本發明的限制,本發明也並不僅限於上述舉例,本【技術領域】的技術人員在本發明的實質範圍內所做出的變化、改型、添加或替換,也應屬於本發明的保護範圍。
【權利要求】
1.一種網格接收機的數據緩存與發送裝置,包括數據緩存模塊和TCP通信模塊,其特徵是,所述緩存模塊包括FPGA和DDR3存儲器,所述FPGA通過接口電路與DDR3存儲器相連,並通過外部系統總線與TCP通信模塊中的片上系統相連,所述TCP通信模塊由片上系統及駐機軟體組成,所述片上系統設有乙太網接口。
2.如權利要求1所述的一種網格接收機的數據緩存與發送裝置,其特徵是,所述接口電路由控制線、數據通路和時鐘線組成。
3.如權利要求1所述的一種網格接收機的數據緩存與發送裝置,其特徵是,所述FPGA上設有供所述片上系統讀取DDR3存儲器數據的FIFO接口。
4.如權利要求1所述的一種網格接收機的數據緩存與發送裝置,其特徵是,所述TCP通信模塊包括管理單元、控制通道和數據通道三部分。
5.如權利要求4所述的一種網格接收機的數據緩存與發送裝置,其特徵是,所述TCP通信模塊的管理單元包括監聽器、消息響應器、通道映射表和通道工廠。
6.如權利要求4所述的一種網格接收機的數據緩存與發送裝置,其特徵是,所述TCP通信模塊的控制通道包括指令分離器和準數據通道鍊表。
7.如權利要求4所述的一種網格接收機的數據緩存與發送裝置,其特徵是,所述TCP通信模塊的數據通道包括一個發送代理。
8.—種網格接收機的數據緩存與發送方法,採用DDR3存儲器的異步讀寫,通過FPGA的流驅動作為駐機軟體搬移數據的硬體控制接口,採用TCP通信模塊進行數據發送,其特徵是,數據緩存與發送過程主要包含三個階段: 緩存,網格接收機接收的數據由FPGA寫入DDR3存儲器中進行緩存,並由FPGA利用接口總線的空閒時間將數據輸送到FIFO接口 ; 搬移,所述駐機軟體中,有一個頻譜數據搬移線程專門對數據幀進行搬移,該線程執行以下步驟: 步驟一,判斷掃描參數列表是否為空,為空就休眠50毫秒繼續執行步驟一,否則取出列表頭節點; 步驟二,根據節點參數信息中的快速傅立葉變換點數在進程堆上創建相應大小的緩衝區; 步驟三,以該緩衝區地址和大小為參數,通過Device1Control O的系統API調用流驅動的數據搬移函數,由後者把FPGA FIFO裡數據搬移到緩衝區中; 步驟四,對測量數據進行對數轉換和頻響補償,並製作該幀的頭部,頭部包括頻率、快速傅立葉變換點數、時間戳信息; 步驟五,以目前關聯的數據通道的套接字句柄為參數,把步驟三中的兩個數據塊打包送往TCP通信模塊; 步驟六,如果TCP通信模塊接收,則執行步驟一,否則繼續嘗試步驟五; 傳輸,數據的傳輸由接收機的TCP通信模塊實現,數據的傳輸過程包括以下步驟: 步驟a,申請數據連接,遠程主機欲接收數據,首先通過已建立的控制通道向接收機發送「埠 」指令,該指令向接收機提出了建立數據連接的申請,在指令幀中包含了遠程主機用於該數據通道連接的TCP埠號; 步驟b,建立連接,遠程主機在收到應答之後,就以申請連接時的埠號向接收機發起連接請求;接收機收到請求後,找到與該連接請求埠號一致的準數據通道,為該準數據通道建立連接; 步驟C,發送,接收機的內部模塊總是通過數據通道向遠程主機發送數據。發送時,內部模塊以數據通道的套接字句柄,數據塊的引用為參數,向TCP通信模塊提出發送請求,由TCP通信模塊負責將數據塊發送到網絡。
【文檔編號】G06F13/10GK104317747SQ201410525557
【公開日】2015年1月28日 申請日期:2014年10月9日 優先權日:2014年10月9日
【發明者】楊青, 孫發力, 李樹芳, 何鵬 申請人:中國電子科技集團公司第四十一研究所