當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于Linux平臺(tái)的天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

 Linux是開放源代碼、網(wǎng)絡(luò)化的操作系統(tǒng),具有穩(wěn)定、高效、內(nèi)核可自由配置等特點(diǎn)。采用Linux 操作系統(tǒng)作為開發(fā)平臺(tái)與采用VxWorks 和Windows 作為開發(fā)平臺(tái)相比不僅有免費(fèi)的優(yōu)勢(shì),而且對(duì)于發(fā)展核心技術(shù),提高信息安全有著極其重要的意義,是自主研發(fā)的一個(gè)方向。隨著我國天氣雷達(dá)的快速發(fā)展,天氣雷達(dá)在民用和軍事領(lǐng)域的應(yīng)用越來越廣泛。目前,天氣雷達(dá)高速數(shù)據(jù)采集、傳輸?shù)裙δ艽蠖蓟赪indows平臺(tái)進(jìn)行開發(fā)實(shí)現(xiàn),實(shí)現(xiàn)由Windows平臺(tái)向Linux平臺(tái)的轉(zhuǎn)換,對(duì)于發(fā)展中國自主知識(shí)產(chǎn)權(quán)氣象軟件核心技術(shù), 提高信息安全有著極其重要的意義。本文基于Linux 操作系統(tǒng)(2.6.23內(nèi)核),實(shí)現(xiàn)了天氣雷達(dá)高速數(shù)據(jù)采集及處理,對(duì)天氣雷達(dá)系統(tǒng)由Windows平臺(tái)向Linux平臺(tái)移植具有參考價(jià)值。

1 數(shù)據(jù)采集系統(tǒng)分析

1.1 工作原理

天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)由I/Q數(shù)據(jù)采集、FIFO緩沖、FPGA控制模塊及PCI總線芯片PLX9054組成,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
 

其核心部分為FPGA控制模塊,主要實(shí)現(xiàn)4個(gè)功能:(1)根據(jù)雷達(dá)量程和距離分辨率調(diào)整AD采樣時(shí)鐘的頻率;(2)控制AD兩路采樣數(shù)據(jù)寫入FIFO 緩沖以及DMA 傳輸時(shí)從FIFO中連續(xù)讀出數(shù)據(jù); (3)與PCI總線控制芯片PLX9054 進(jìn)行控制交互, 實(shí)現(xiàn)局部總線的讀寫控制、地址譯碼和中斷觸發(fā);(4)與PLX9054 進(jìn)行數(shù)據(jù)交互,使用FPGA內(nèi)部RAM保存控制天氣雷達(dá)發(fā)射機(jī)和接收機(jī)工作的命令及數(shù)據(jù),完成對(duì)雷達(dá)工作的控制。

I/Q數(shù)據(jù)采集輸出數(shù)據(jù)速度為2.4 Mb/s(I、Q數(shù)據(jù)各為24 bit),通過FPGA控制,合并寫入到FIFO緩沖。FIFO緩沖為32 bit、深度為16 KB的數(shù)據(jù)緩存,有效位為24 bit;與計(jì)算機(jī)總線的接口采用32 bit的PCI總線接口芯片PLX9054,PC機(jī)通過它完成與數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)交互。

1.2 PC機(jī)與采集系統(tǒng)數(shù)據(jù)訪問

1.2.1 局部地址分配

PC機(jī)與天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)訪問通過PCI總線芯片PLX9054實(shí)現(xiàn),訪問目標(biāo)為FIFO緩沖和FPGA片內(nèi)RAM。對(duì)FIFO緩沖和FPGA片內(nèi)RAM分配不同局部地址,通過對(duì)局部地址總線進(jìn)行譯碼確定需要訪問的目標(biāo)。FIFO 數(shù)據(jù)采用DMA傳輸方式連續(xù)讀出, 每次傳輸長(zhǎng)度最大為8 KB,因此,設(shè)置FIFO空間32 bit局部地址范圍為0x20000000~0x2000FFFF,映射空間為PCI 地址空間bar2。

FPGA片內(nèi)RAM位寬為32 bit, 采用局部地址范圍為0x40000000~0x400FFFFF。映射空間為PCI地址空間bar3。[!--empirenews.page--]

1.2.2 數(shù)據(jù)訪問方式

FIFO緩沖為可編程FIFO,由FPGA根據(jù)片內(nèi)存儲(chǔ)的雷達(dá)參數(shù)進(jìn)行控制。當(dāng)FIFO中數(shù)據(jù)達(dá)到設(shè)置的大小時(shí),觸發(fā)PCIPLX9054引發(fā)PCI中斷,通過該中斷向驅(qū)動(dòng)程序申請(qǐng)發(fā)起DMA 傳輸。驅(qū)動(dòng)程序響應(yīng)該中斷后設(shè)置PCIPLX9054的DMA寄存器, 發(fā)起方向從局部總線到PCI總線的DMA傳輸,完成FIFO數(shù)據(jù)向PC機(jī)的傳輸。

FPGA片內(nèi)RAM通過PCI地址映射,使用IO操作方式進(jìn)行數(shù)據(jù)讀寫訪問。

2 Linux程序?qū)崿F(xiàn)

天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)基于Linux2.6內(nèi)核平臺(tái)程序,由基于PCI總線的設(shè)備驅(qū)動(dòng)程序、數(shù)據(jù)采集及處理程序組成。

2.1 設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)

設(shè)備驅(qū)動(dòng)程序的功能是在Linux2.6系統(tǒng)平臺(tái)下,通過對(duì)PCI總線控制芯片PLX9054的控制,實(shí)現(xiàn)PC機(jī)與采集板的數(shù)據(jù)交互,實(shí)現(xiàn)雷達(dá)采集數(shù)據(jù)的實(shí)時(shí)接收及雷達(dá)工作狀態(tài)的控制。從功能結(jié)構(gòu)上,設(shè)備驅(qū)動(dòng)主要由設(shè)備裝載及初始化、提供給用戶層的接口函數(shù)、中斷及DMA數(shù)據(jù)傳輸三部分組成。

2.1.1 設(shè)備裝載及卸載

設(shè)備裝載和卸載即是Windows系統(tǒng)中設(shè)備驅(qū)動(dòng)安裝和卸載。在Linux2.6中,裝載和卸載主要通過調(diào)用系統(tǒng)提供的PCI總線驅(qū)動(dòng)注冊(cè)函數(shù)pci_register_drive和注銷函數(shù)pci_unregister_driver來實(shí)現(xiàn),其注冊(cè)的driver數(shù)據(jù)結(jié)構(gòu)如下:

static struct pci_driver plx9054_pci_driver = {

.name = ‘pci9054‘,

.id_table = plx9054_pci_tbl,

.probe = plx9054_probe,

.remove = plx9054_remove,

};

當(dāng)系統(tǒng)引導(dǎo)時(shí),高速數(shù)據(jù)采集系統(tǒng)板上電后,板上PCI總線固件對(duì)PLX9054設(shè)備進(jìn)行缺省配置,為設(shè)備的每個(gè)地址區(qū)域分配好資源。裝載函數(shù)在驅(qū)動(dòng)中用module_init聲明,進(jìn)行設(shè)備的初始化工作,調(diào)用PCI總線驅(qū)動(dòng)注冊(cè)函數(shù),根據(jù)id_table定義的信息對(duì)PCI設(shè)備PLX9054進(jìn)行探測(cè)識(shí)別,完成PLX9054設(shè)備驅(qū)動(dòng)的PCI總線注冊(cè),然后調(diào)用驅(qū)動(dòng)注冊(cè)的probe函數(shù),完成PLX9054設(shè)備使能、PCI地址空間映射、PLX9054設(shè)備數(shù)據(jù)結(jié)構(gòu)初始化、設(shè)備注冊(cè)(注冊(cè)為字符設(shè)備)等操作。卸載函數(shù)用module_exit聲明,是裝載的逆過程,通過調(diào)用PCI總線驅(qū)動(dòng)卸載函數(shù),繼而調(diào)用注冊(cè)的remove函數(shù)、注銷設(shè)備及PCI地址空間映射、釋放分配給設(shè)備的數(shù)據(jù)結(jié)構(gòu)空間等操作,完成系統(tǒng)資源釋放。[!--empirenews.page--]

2.1.2 設(shè)備接口函數(shù)

設(shè)備接口函數(shù)為用戶提供與設(shè)備進(jìn)行交互的不同功能接口,主要完成用戶與設(shè)備的讀、寫及設(shè)備控制訪問等功能,其數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)為:

static const struct file_operations plx9054_fops = {

.owner = THIS_MODULE,

.open = plx9054_open, /*打開設(shè)備*/

.release = plx9054_close, /*釋放設(shè)備*/

.ioctl = plx9054_ioctl, /*IO操作*/

.read = plx9054_read, /*讀設(shè)備*/

};

這個(gè)數(shù)據(jù)結(jié)構(gòu)在設(shè)備裝載過程中,作為設(shè)備注冊(cè)的參數(shù)完成與設(shè)備掛接、使用戶在系統(tǒng)調(diào)用中能訪問到上述關(guān)聯(lián)的設(shè)備接口函數(shù)。

設(shè)備打開函數(shù)plx9054_open完成以下操作:設(shè)備私有數(shù)據(jù)結(jié)構(gòu)內(nèi)存空間分配及初始化,DMA連續(xù)物理內(nèi)存空間申請(qǐng),為天氣雷達(dá)最大距離探測(cè)采集數(shù)據(jù)的大?。徽{(diào)用pci_map_single將分配的DMA內(nèi)存空間映射為用于DMA傳輸?shù)刂?;DMA數(shù)據(jù)緩沖區(qū)分配(容量為2 MB),緩沖區(qū)保存每次DMA傳輸中獲取的數(shù)據(jù);調(diào)用request_irq對(duì)中斷函數(shù)p9054_interrupt進(jìn)行中斷號(hào)申請(qǐng);對(duì)天氣雷達(dá)工作參數(shù)進(jìn)行缺省配置,啟動(dòng)雷達(dá)工作。設(shè)備釋放函數(shù)PLX9054_close完成的操作與設(shè)備打開函數(shù)與PLX9054_open相反。IO操作函數(shù)PLX9054_ioctl通過sys_ioctl系統(tǒng)調(diào)用,完成用戶與設(shè)備的信息查詢、雷達(dá)工作參數(shù)配置與查詢,如驅(qū)動(dòng)軟件版本號(hào)、雷達(dá)當(dāng)前工作各參數(shù)配置和查詢,主要用于對(duì)FPGA中RAM內(nèi)存空間的雷達(dá)工作參數(shù)數(shù)據(jù)訪問。由于這部分?jǐn)?shù)據(jù)對(duì)訪問速度要求不高,使用IO操作能很好地滿足設(shè)計(jì)要求。讀設(shè)備函數(shù)PLX9054_read將驅(qū)動(dòng)DMA數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)實(shí)時(shí)讀取到用戶空間緩沖區(qū)內(nèi),完成采集數(shù)據(jù)從設(shè)備到用戶的讀取操作。

2.1.3 中斷處理及DMA傳輸

中斷處理及DMA傳輸是驅(qū)動(dòng)的核心部分,它的設(shè)計(jì)質(zhì)量直接影響到雷達(dá)采集數(shù)據(jù)能否正確、實(shí)時(shí)地從采集系統(tǒng)板傳送到設(shè)備驅(qū)動(dòng)緩沖區(qū),并實(shí)時(shí)被用戶獲取。中斷處理工作流程如圖2所示。

 

由于DMA數(shù)據(jù)緩沖區(qū)遠(yuǎn)大于每次DMA數(shù)據(jù)傳輸大小,這對(duì)于雷達(dá)數(shù)據(jù)采集中因用戶讀取數(shù)據(jù)延遲而導(dǎo)致的緩沖區(qū)溢出有較好的抑制作用,而相對(duì)于現(xiàn)有計(jì)算機(jī)平臺(tái),2 MB內(nèi)存容量已足夠。DMA數(shù)據(jù)緩沖區(qū)設(shè)計(jì)為循環(huán)緩沖區(qū),使用讀、寫指針維護(hù),在中斷處理中更新其寫指針,在PLX9054_read中更新其讀指針,采用溢出則覆蓋的機(jī)制,既方便管理,節(jié)省資源,同時(shí)又可對(duì)溢出進(jìn)行計(jì)數(shù),很方便進(jìn)行實(shí)時(shí)性能的測(cè)試。[!--empirenews.page--]

2.2 數(shù)據(jù)采集處理程序?qū)崿F(xiàn)

數(shù)據(jù)采集處理程序是雷達(dá)高速數(shù)據(jù)采集系統(tǒng)的應(yīng)用處理程序,完成雷達(dá)高速數(shù)據(jù)采集及對(duì)采集數(shù)據(jù)的數(shù)字信號(hào)處理、輸出天氣雷達(dá)生成一次產(chǎn)品。其主要流程如圖3所示。

 

在采集I/Q數(shù)據(jù)時(shí),I/Q兩路數(shù)據(jù)采用交叉采集方式存入FIFO緩沖中,每路數(shù)據(jù)有效位為23,最高位為符號(hào)位。因此,在采集數(shù)據(jù)處理中需對(duì)讀取的數(shù)據(jù)進(jìn)行I/Q數(shù)據(jù)分離,即將采集數(shù)據(jù)恢復(fù)為原始I、Q兩路數(shù)據(jù),同時(shí)將24 bit數(shù)據(jù)轉(zhuǎn)換為32 bit數(shù)據(jù)方式存儲(chǔ),以滿足后面數(shù)字信號(hào)處理要求。

在軟件設(shè)計(jì)中,不同數(shù)字信號(hào)處理功能采用不同數(shù)字信號(hào)處理函數(shù)實(shí)現(xiàn),在采集數(shù)據(jù)獲取前進(jìn)行選擇配置,數(shù)字信號(hào)處理功能增加可通過增加相關(guān)的數(shù)字信號(hào)處理函數(shù)來滿足,以方便功能的完善和移植。通過對(duì)I/Q數(shù)據(jù)分離后獲得的數(shù)據(jù)進(jìn)行相關(guān)數(shù)字信號(hào)處理即可獲得天氣雷達(dá)中的一次產(chǎn)品,如功率和反射率等。

本文基于Linux2.6平臺(tái),設(shè)計(jì)實(shí)現(xiàn)了天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)的驅(qū)動(dòng)和數(shù)據(jù)采集及對(duì)采集數(shù)據(jù)的數(shù)字信號(hào)處理,并在現(xiàn)有天氣雷達(dá)上完成了調(diào)試驗(yàn)證。目前,本設(shè)計(jì)已成功地應(yīng)用在現(xiàn)有的天氣雷達(dá)中。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉