国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多普勒天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

2015-01-05 05:54姚振東
關(guān)鍵詞:信號(hào)處理內(nèi)核命令

宗 安,姚振東,佘 勇,李 建

(成都信息工程學(xué)院電子工程學(xué)院中國(guó)氣象局大氣探測(cè)重點(diǎn)開(kāi)放實(shí)驗(yàn)室,四川成都610225)

0 引言

X波段磁控管接收相參多普勒天氣雷達(dá)是一種較短波長(zhǎng)的雷達(dá),具有高性能價(jià)格比的特點(diǎn),在中小尺度天氣探測(cè)方面,仍然具有優(yōu)勢(shì)[1]。在中國(guó),這種雷達(dá)主要應(yīng)用于地市級(jí)與縣級(jí)的人工影響天氣作業(yè)指揮和氣象災(zāi)害應(yīng)急服務(wù),也可提供專業(yè)氣象服務(wù)的實(shí)時(shí)天氣資料,并在支線航站(機(jī)場(chǎng))的氣象保障方面肩負(fù)重要作用。過(guò)去,這種雷達(dá)在較低距離分辨力(約0.5~1 km)的情況下使用,數(shù)據(jù)率相對(duì)較低,使用總線插卡式采集接口,甚至USB接口就能實(shí)現(xiàn)實(shí)時(shí)的雷達(dá)數(shù)據(jù)采集和對(duì)雷達(dá)的命令交互,不需要專門(mén)的高速數(shù)據(jù)采集系統(tǒng)。在更高的距離分辨力(不大于150 m)條件下,傳遞反射率因子、平均速度和速度譜寬(ZVW)3個(gè)基數(shù)據(jù)的同時(shí),為了日后的數(shù)據(jù)分析和更好地完善處理算法,需保存字長(zhǎng)增加的大動(dòng)態(tài)范圍原始復(fù)基帶(I/Q)數(shù)據(jù),總數(shù)據(jù)率超過(guò)原來(lái)的10倍,需要高速數(shù)據(jù)采集系統(tǒng)才能勝任。

為此,專門(mén)設(shè)計(jì)一個(gè)基于千兆以太網(wǎng)的多普勒天氣雷達(dá)高速數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)較大數(shù)據(jù)率的雷達(dá)原始復(fù)基帶數(shù)據(jù)和基數(shù)據(jù)的實(shí)時(shí)采集,以及雷達(dá)控制命令和狀態(tài)數(shù)據(jù)(伺服控制系統(tǒng)、發(fā)射機(jī)系統(tǒng))的交互。

考慮到Xilinx公司的FPGA器件zynq-7000具有很好的結(jié)構(gòu)和資源,以及可以使用的IP Core和便于開(kāi)發(fā)的優(yōu)點(diǎn)[2-3],充分利用其片上系統(tǒng)(SOC)的結(jié)構(gòu)特點(diǎn)以及可實(shí)現(xiàn)軟件系統(tǒng)運(yùn)行完成初始化配置和簡(jiǎn)單運(yùn)算的靈活性,極大地簡(jiǎn)化系統(tǒng)的外部硬件構(gòu)件和提高了內(nèi)部硬件資源的利用率。

1 硬件系統(tǒng)的構(gòu)建

Zynq-7000系列的型號(hào)XC7Z020器件,集成了兩個(gè)雙核Cortex-A9處理器內(nèi)核,以及Artix-7系列的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA);并配置豐富的片內(nèi)外設(shè)資源,如DDR控制器、USB控制器、SPI flash控制器、SD/SDIO外設(shè)控制器和千兆網(wǎng)以太網(wǎng)控制器等[3]。以XC7Z020為數(shù)據(jù)采集處理系統(tǒng)的核心器件,配置必要的外圍接口和驅(qū)動(dòng)硬件,形成高速數(shù)據(jù)采集系統(tǒng)如圖1所示。

圖1 數(shù)據(jù)采集處理系統(tǒng)硬件方塊圖

Cortex-A9雙處理器內(nèi)核有很強(qiáng)的處理能力,最高工作主頻可達(dá)400 MHz,是處理系統(tǒng)(Processing System,PS)的核心;片上存儲(chǔ)器、外部存儲(chǔ)接口和IO外設(shè)為其優(yōu)質(zhì)資源。系統(tǒng)用到可由PS支配的千兆以太網(wǎng)、DDR3、SD卡以及串口終端等外部設(shè)備。其中,千兆網(wǎng)控制器實(shí)現(xiàn)一個(gè)10/100/1000Mbps的以太網(wǎng)MAC、兼容IEEE802.2-2008標(biāo)準(zhǔn)、工作在全雙工或者半雙工的模式下,實(shí)現(xiàn)MAC控制發(fā)送接收、地址過(guò)濾、同步邏輯和DMA控制等操作[4-5]。與控制器相連接的物理以太網(wǎng)芯片接口(PHY)使用88E1518,該器件在噪聲環(huán)境下能以很低的功耗以每秒千兆的數(shù)據(jù)速率實(shí)現(xiàn)穩(wěn)定傳輸性能[6]。異步串行接口UART使用USB轉(zhuǎn)UART芯片CY7C64225,在計(jì)算機(jī)中安裝驅(qū)動(dòng)后就可以通過(guò)USB接口對(duì)其進(jìn)行異步串行數(shù)據(jù)交互。SD卡和DDR3分別用于存儲(chǔ)程序和數(shù)據(jù)。

配置的ADC采集模塊用于輸入雷達(dá)中頻信號(hào);RS232隔離與驅(qū)動(dòng)模塊用于和雷達(dá)狀態(tài)控制單元通信,讀取雷達(dá)收發(fā)機(jī)與電源等工作狀態(tài)并控制雷達(dá)運(yùn)行,同時(shí)實(shí)現(xiàn)內(nèi)外電路的隔離;SPI-RS422隔離與驅(qū)動(dòng)模塊用于和雷達(dá)伺服系統(tǒng)通信,讀取雷達(dá)天線(座)方位俯仰與狀態(tài)信息并控制天線運(yùn)動(dòng),同時(shí)實(shí)現(xiàn)內(nèi)外電路的隔離。

FPGA中包含資源豐富的可編程邏輯PL(Programmable Logic),包括可配置邏輯塊、乘法器、時(shí)鐘管理單元、48位的累加器和預(yù)加器、大量的隨機(jī)存儲(chǔ)器(RAM)等,為數(shù)字中頻接收機(jī)和天氣雷達(dá)數(shù)字信號(hào)處理以及相應(yīng)接口提供足夠的硬件資源。

2 雷達(dá)數(shù)據(jù)采集

雷達(dá)的工作是邊掃描、邊采集、邊處理和邊傳輸?shù)倪B續(xù)不間斷過(guò)程,在雷達(dá)角度和距離分辨力的前提下,數(shù)據(jù)量極大,這就要求采集系統(tǒng)必須具備穩(wěn)定可靠的高速傳輸性能。

2.1 高速通帶采樣

ADC采集模塊采用16位250MSPS采樣率的中頻(IF)采樣模數(shù)轉(zhuǎn)換器AD9467,在最高中頻170 MHz、全量程范圍2.5 Vp-p時(shí),具有75.5 dBFS的信噪比,適合天氣雷達(dá)高動(dòng)態(tài)范圍需要,輸出兼容LVDS電平,性價(jià)比高。

對(duì)于1 uS發(fā)射脈沖,30 MHz雷達(dá)中頻信號(hào)的帶寬為1 MHz,屬于窄帶信號(hào)。根據(jù)仙農(nóng)通帶采樣定理,可使用欠采樣技術(shù)以降低采樣頻率。但是,考慮到過(guò)采樣及抽取增益的優(yōu)勢(shì),采用100 MSPS的過(guò)采樣率進(jìn)行通帶采樣,處理后的采樣率為1 MSPS,獲得20 dB的處理增益,信噪比相應(yīng)提高20 dB,不考慮其他處理,系統(tǒng)實(shí)際動(dòng)態(tài)范圍將超過(guò)95 dB。采樣后,獲得100 MSPS的數(shù)字中頻信號(hào)。

2.2 數(shù)字下變頻

由100 MSPS相同頻率的數(shù)控振蕩器(Numerically Controlled Oscillator,NCO)產(chǎn)生復(fù)中頻本振信號(hào)(正余弦各24位),與輸入的數(shù)字中頻信號(hào)混頻(相乘),完成數(shù)字下變頻(Digital Down-Conversion,DDC)功能。

由基于積分級(jí)聯(lián)梳狀濾波器(Cascade Integrator Comb filter,CIC)的多次抽取電路完成對(duì)下變頻后的復(fù)基帶信號(hào)的濾波和降采樣率抽取,輸出各20位的復(fù)基帶I/Q信號(hào),如圖2所示。此過(guò)程完成后需要進(jìn)行磁控管發(fā)射微波信號(hào)的隨機(jī)初相校正。

圖2 數(shù)字下變頻示意圖

2.3 信號(hào)處理與信息提取

信號(hào)處理主要實(shí)現(xiàn)地物和超折射雜波的抑制,以及ZVW參數(shù)的估計(jì)等,其他任務(wù)留給雷達(dá)系統(tǒng)的主控計(jì)算機(jī)完成。

由于地物和超折射雜波的低頻特性,可采用高通濾波器進(jìn)行抑制。但是,如果這樣做,會(huì)導(dǎo)致天氣回波低頻成分損失。目前普遍推崇頻域高斯模型自適應(yīng)處理(GMAP)具有原理上的優(yōu)越性,能最大限度地補(bǔ)償天氣回波信號(hào)損失。然而,由于采樣時(shí)間不足,從時(shí)域到頻域的變換將產(chǎn)生失真,且頻率分辨力不夠,使其幾乎失去應(yīng)用意義?;跁r(shí)域高斯模型自適應(yīng)處理(Gaussian Model Adaptive Processing in Time Domain,GMAP-TD)的方法才可兼顧雜波抑制的性能并保證天氣回波信號(hào)質(zhì)量[7]。通過(guò)FPGA的PL實(shí)現(xiàn)這些可選方法。

ZVW參數(shù)估計(jì)可通過(guò)時(shí)域脈沖對(duì)處理(PPP)或頻域(FFT)算法實(shí)現(xiàn)。前者可實(shí)現(xiàn)通過(guò)參差重復(fù)頻率緩解速度模糊的工作模式;后者則需要改為雙(或多)批重復(fù)頻率緩解速度模糊的工作模式,而這種模式存在天線掃描目標(biāo)變化問(wèn)題,且時(shí)頻變換的原則性問(wèn)題依然存在。因此,仍使用PPP主流算法。

等效反射率因子Z(dBZ)的計(jì)算見(jiàn)公式(1),Pr為雷達(dá)測(cè)量到的平均回波功率(dBm),R為回波距離(km);LA為路徑衰減(線性表示);C為雷達(dá)常數(shù),通過(guò)公式(2)計(jì)算得到。

式(2)中,各變量及其量綱如下:雷達(dá)常數(shù) C(mm6/m3),波長(zhǎng) λ(cm),發(fā)射脈沖功率 Pt(KW),發(fā)射脈寬τ(uS),饋線損耗LT、天線發(fā)射接收增益GT、GR(線性表示),方位俯仰波束寬度θ、φ(度)。

采用參差重復(fù)頻率緩解速度模糊的工作模式,其平均徑向速度V可由公式(3)計(jì)算[8]。

2個(gè)交替脈沖間隔τl和τh選擇5∶4比率,θτ為對(duì)應(yīng)τl脈沖間隔的兩脈沖回波的1階相關(guān) ^Rl(τl)的相角,θh則為對(duì)應(yīng)于 τh的1階相關(guān) ^Rh(τh)的相角。由此,根據(jù)相應(yīng)的0階相關(guān)功率譜 ^Sl和^Sh,可以估算回波速度譜寬,如公式(4)。

通過(guò)處理器中的PL實(shí)現(xiàn)天氣雷達(dá)的ZVW參數(shù)的估計(jì)。

3 命令與狀態(tài)的交互

命令與狀態(tài)的交互主要通過(guò)2個(gè)串行接口完成,分別使用SPI同步串行協(xié)議和UART異步串行協(xié)議。

3.1 SPI通信的FPGA實(shí)現(xiàn)

SPI同步串行通信接口(RS422電平標(biāo)準(zhǔn))用于和伺服控制系統(tǒng)通信,通過(guò)數(shù)據(jù)采集處理系統(tǒng)的中介,由千兆以太網(wǎng)至主控計(jì)算機(jī)完成天線的角碼、轉(zhuǎn)速、工作狀態(tài)等數(shù)據(jù)的傳送,并接收控制命令。

伺服控制系統(tǒng)通過(guò)天線座及其上安裝的旋轉(zhuǎn)變壓器獲取天線方位、俯仰角度的電信號(hào),最后轉(zhuǎn)換成數(shù)字角碼的形式,完成軸角信息采集。由此方可實(shí)現(xiàn)天線的定位與掃描。

SPI工作于主從模式,時(shí)鐘4 MHz,字長(zhǎng)16位,伺服控制系統(tǒng)為主機(jī),數(shù)據(jù)采集處理系統(tǒng)為從機(jī)。SPI接收到的數(shù)據(jù)經(jīng)由PS中的Cortex-A9周轉(zhuǎn),以存儲(chǔ)緩沖方式匹配時(shí)鐘差異。SPI接口的接收模塊中,設(shè)有接收數(shù)據(jù)長(zhǎng)度計(jì)數(shù)器,計(jì)數(shù)值鎖存于寄存器數(shù)組中;每次PS中的應(yīng)用程序讀取完接收數(shù)據(jù)后,將接收寄存器數(shù)組及接收長(zhǎng)度計(jì)數(shù)器清空。發(fā)送模塊中,設(shè)有發(fā)送始能信號(hào)和發(fā)送數(shù)據(jù)長(zhǎng)度計(jì)數(shù)器時(shí)鐘信號(hào);當(dāng)發(fā)送始能高時(shí),長(zhǎng)度計(jì)數(shù)時(shí)鐘的上升沿將輸入的數(shù)據(jù)鎖存到寄存器中,發(fā)送數(shù)據(jù)長(zhǎng)度計(jì)數(shù)器加1;當(dāng)發(fā)送始能信號(hào)低時(shí),開(kāi)始發(fā)送數(shù)據(jù)。

3.2 UART通信的FPGA實(shí)現(xiàn)

UART異步串行通信接口(RS232電平標(biāo)準(zhǔn))用于和收發(fā)系統(tǒng)通信,與SPI相似,完成收發(fā)機(jī)的工作參數(shù)/狀態(tài)、環(huán)境參數(shù)、開(kāi)機(jī)及發(fā)射時(shí)間累積等數(shù)據(jù)傳送,以及接收計(jì)算機(jī)對(duì)雷達(dá)及收發(fā)機(jī)的控制命令。

UART由波特率發(fā)生器、接收和發(fā)送3個(gè)模塊構(gòu)成。類似代碼較多,這里從略。

4 雷達(dá)數(shù)據(jù)傳輸

天氣雷達(dá)數(shù)據(jù)量大,要實(shí)時(shí)傳至主控計(jì)算機(jī)。千兆以太網(wǎng)能較好地滿足這種極高的傳輸速率要求。FPGA中以Cortex-A9作為控制器,設(shè)置、調(diào)度和使用物理以太網(wǎng)接口芯片88E1518,實(shí)現(xiàn)高速傳輸功能,完成雷達(dá)數(shù)據(jù)采集過(guò)程。

4.1 UDP通信協(xié)議及其socket類實(shí)現(xiàn)

TCP/IP網(wǎng)絡(luò)通信協(xié)議,具有兼容性強(qiáng)、易于實(shí)現(xiàn),成本低的優(yōu)點(diǎn)。該協(xié)議含鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層共4層。鏈路層數(shù)據(jù)鏈路層是負(fù)責(zé)接收IP數(shù)據(jù)包并通過(guò)網(wǎng)絡(luò)發(fā)送,或者從網(wǎng)絡(luò)上接收物理幀,抽出IP數(shù)據(jù)包,交給IP層。網(wǎng)絡(luò)層對(duì)完成數(shù)據(jù)包分組以及協(xié)議實(shí)現(xiàn);傳輸層用于格式化信息和數(shù)據(jù)的可靠傳輸,應(yīng)用層完成特定功能的處理程序[9]。

傳輸層協(xié)議有2種:傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報(bào)協(xié)議UDP。TCP協(xié)議是面向連接的可靠性數(shù)據(jù)傳輸協(xié)議,UDP通信協(xié)議是面向數(shù)據(jù)報(bào)傳輸層,設(shè)計(jì)中使用UDP協(xié)議傳輸,其數(shù)據(jù)報(bào)及封裝如圖3所示。一個(gè)UDP數(shù)據(jù)報(bào)由首部和數(shù)據(jù)2部分組成。首部由源端口(發(fā)送端端口號(hào))、目的端口(接收端端口號(hào))、長(zhǎng)度(包括報(bào)頭和數(shù)據(jù)部分在內(nèi)的總字節(jié)數(shù))、校驗(yàn)和4個(gè)域組成,每個(gè)域占2個(gè)字節(jié)。UDP數(shù)據(jù)報(bào)封裝之后,傳送至IP協(xié)議層;IP協(xié)議層將整個(gè)UDP數(shù)據(jù)報(bào)作為數(shù)據(jù),添加IP頭后傳送至網(wǎng)絡(luò)層;網(wǎng)絡(luò)層添加幀頭和IP數(shù)據(jù)組合成一幀數(shù)據(jù)傳輸出去。

圖3 UDP數(shù)據(jù)報(bào)及封裝示意圖

套接字API是專門(mén)用于網(wǎng)絡(luò)通信的API函數(shù),通過(guò)調(diào)用相關(guān)的函數(shù)就可以完成數(shù)據(jù)通信。套接字API中常用的系統(tǒng)函數(shù)有:套接字創(chuàng)建函數(shù)socket、連接函數(shù)connect、IP地址與端口綁定函數(shù)blind、發(fā)送數(shù)據(jù)函數(shù) sendto、接收數(shù)據(jù)函數(shù) recvfrom 等[10]。

UDP通信網(wǎng)絡(luò)在linux環(huán)境中設(shè)置的關(guān)鍵代碼如下:

查詢方式接收數(shù)據(jù)時(shí)存在一個(gè)致命弱點(diǎn),即程序運(yùn)行到socket網(wǎng)絡(luò)通信的接收函數(shù)時(shí),若沒(méi)有接收到數(shù)據(jù),程序?qū)⒊掷m(xù)等待,直到有數(shù)據(jù)接收到為止。這將導(dǎo)致程序處于等待狀態(tài)而不能及時(shí)響應(yīng)其他處理任務(wù),出現(xiàn)“假死狀態(tài)”。

4.2 數(shù)據(jù)格式

數(shù)據(jù)采集板與計(jì)算機(jī)之間的通信使用十六進(jìn)制、“標(biāo)識(shí)碼+數(shù)據(jù)”的分類格式,通過(guò)判斷后形成相應(yīng)的命令。計(jì)算機(jī)發(fā)送的命令分為3大類:數(shù)據(jù)采集類、伺服控制類和發(fā)射機(jī)系統(tǒng)控制類。

數(shù)據(jù)采集標(biāo)識(shí)碼長(zhǎng)度為6個(gè)字節(jié):SCNdBz,主要向計(jì)算機(jī)傳回標(biāo)識(shí)碼、伺服方位、俯仰角度、以及經(jīng)過(guò)信號(hào)處理之后的回波數(shù)據(jù)總共1006*16 bit,共要傳送6組數(shù)據(jù)約96 kb。這些數(shù)據(jù)要在1 ms以內(nèi)傳輸完畢,傳輸速度要大于96 Mbps。

數(shù)據(jù)采集命令分有、無(wú)雜波抑制,有、無(wú)噪聲剔除等。數(shù)據(jù)結(jié)果分等效反射率因子、平均速度及速度譜寬等。命令共有13種,常用4種。伺服控制標(biāo)識(shí)符有24種,長(zhǎng)度為4個(gè)字節(jié),包括定位、自檢、RHI掃描、PPI掃描等操作。發(fā)射機(jī)控制標(biāo)識(shí)符十幾種,長(zhǎng)度也為4個(gè)字節(jié),包括開(kāi)發(fā)射機(jī)、開(kāi)高壓、開(kāi)燈絲、關(guān)燈絲、關(guān)高壓、發(fā)射機(jī)狀態(tài)信息等操作。

這些命令格式很相似,以數(shù)據(jù)采集命令“SCNdBz”為例作一表述,這里S代表采集回波,C代表有雜波;N代表有噪聲,dBz代表等效反射率因子,數(shù)據(jù)格式見(jiàn)表1。

表1 數(shù)據(jù)格式

4.3 啟動(dòng)文件制作

數(shù)據(jù)采集處理系統(tǒng)有調(diào)試時(shí)的JTAG啟動(dòng)和運(yùn)行時(shí)的SD卡啟動(dòng)2種方式。SD卡啟動(dòng)的工作模式,開(kāi)機(jī)時(shí),由ARM完成對(duì)FPGA配置。SD卡啟動(dòng)過(guò)程如下:

(1)上電后,燒寫(xiě)在BootROM中的程序啟動(dòng),初始化芯片,讀 SD卡第一分區(qū),尋找 Boot.bin文件,Boot.bin中須包含F(xiàn)SBL(First stage boot loader)程序。

(2)FSBL初始化采集板。如果提供了bitstream文件,初始化FPGA之后Boot.bin中第二塊代碼將在CPU中運(yùn)行。

(3)SSBL接管CPU,做一些準(zhǔn)備工作之后啟動(dòng)Linux內(nèi)核,內(nèi)核將加載設(shè)備驅(qū)動(dòng),啟動(dòng)文件系統(tǒng)等。

(4)內(nèi)核啟動(dòng)完畢后,用戶方可使用操作系統(tǒng),如運(yùn)行應(yīng)用程序、修改文件等。

因此,要使高速采集系統(tǒng)正常工作就需要bitstream文件、FSBL程序、U-Boot、內(nèi)核鏡像文件、文件系統(tǒng)等文件[11]。

4.3.1 FPGA的配置文件及啟動(dòng)文件

高速數(shù)據(jù)采集后的信號(hào)處理、SPI通信和RS232串口通信都是在PL中實(shí)現(xiàn),這些使用verilog語(yǔ)言實(shí)現(xiàn)的功能模塊要添加到包含PS和PL的嵌入式系統(tǒng)工程中,將PL中的處理模塊以用戶自定義IP核的模式加載在工程中,作為PS的外設(shè),通過(guò)AXI4通信總線相連。工程創(chuàng)建過(guò)程如下:

(1)在Xilinx Platform Studio開(kāi)發(fā)環(huán)境中創(chuàng)建一個(gè)Base System Builder工程,設(shè)計(jì)中使用官方提供的帶有千兆網(wǎng)口、HDMI等外設(shè)配置的工程,并將除了千兆網(wǎng)以外的其他外設(shè)全部刪除。

(2)在工程中添加用戶自定IP核:添加SPI核和RS232核時(shí),在選擇文件類型時(shí)只選擇添加HDL文件即可,但添加信號(hào)處理模塊的IP核時(shí),需要選擇添加網(wǎng)絡(luò)文件選項(xiàng)。本設(shè)計(jì)中的三個(gè)用戶自定義IP核均使用AXI-Lite總線的從模式,與PS交換數(shù)據(jù)使用寄存器方式,且最大寄存器個(gè)數(shù)為32個(gè),每個(gè)寄存器的位寬32 bit。

(3)在工程界面中的IP Catalog對(duì)話框中的Project Local PCores下的User下將顯示所用用戶自定義IP核,雙擊每個(gè)自定義IP核名稱即可將IP核添加到工程,在選擇ARM處理器時(shí)選擇處理器0中。添加完用戶自定義的IP核之后,需要對(duì)各個(gè)IP核相關(guān)文件修改,主要有:修改MPD文件,添加端口;修改用戶邏輯的頂層文件,完成端口映射以及功能模塊的頂層例化;在工程中的port標(biāo)簽下修改端口連接,將端口映射到PL部分的外部端口上;在Addresses標(biāo)簽下可修改IP地址,系統(tǒng)使用系統(tǒng)分配的地址;最后修改ucf外部端口映射文件[10]。

(4)添加并修改自定義的IP核后,先編譯綜合生成PL的配置文件bitstream文件;其次點(diǎn)擊export design調(diào)用SDK軟件并自動(dòng)加載生成的beatstream文件,創(chuàng)建ZYNQ FSBL工程,編譯生成FSBL啟動(dòng)配置文件;最后將FPGA配置文件、FSBL啟動(dòng)配置文件、設(shè)備文件u-boot.elf文件一起,使用創(chuàng)建ZYNQ啟動(dòng)文件(Creat ZYNQ Boot Image)工具生成系統(tǒng)啟動(dòng)文件Boot.bin。系統(tǒng)啟動(dòng)的u-boot文件需要在linux環(huán)境中創(chuàng)建,詳見(jiàn)文獻(xiàn)[10]構(gòu)建嵌入式Linux系統(tǒng)中的內(nèi)容。

4.3.2 設(shè)備樹(shù)及內(nèi)核鏡像文件

內(nèi)核鏡像文件以及設(shè)備樹(shù)文件的生成需要在linux操作系統(tǒng)中完成。為方便起見(jiàn),在Windows開(kāi)發(fā)環(huán)境中安裝的VMware虛擬機(jī)系統(tǒng)中安裝Ubuntu 12.04版本的linux操作系統(tǒng),并將官方網(wǎng)站下載的適用于Zedboard平臺(tái)的linux內(nèi)核文件解壓后放入linux系統(tǒng)中的/home目錄下面[12]。

在linux內(nèi)核文件中的scripts/dtc目錄下的digilent-zed.dts文件進(jìn)行修改,修改后使用如下命令編譯:

./scripts/dtc/dtc-I dts-O dtb-o./devicetree.dtb arch/arm/boot/dts/digilent-zed.dts

此命令的輸入文件在arch/arm/boot/dts/digilentzed.dts,輸出文件devicetree.dtb存放于當(dāng)前目錄下,運(yùn)行完成之后產(chǎn)生設(shè)備樹(shù)文件。

內(nèi)核鏡像文件的生成分配置和編譯兩步,可使用以下命令進(jìn)行配置:

make ARCH=arm digilent-zed-defconfig

make ARCH=arm menuconfig

配置完成后,使用make命令編譯即可得到內(nèi)核鏡像文件,至此啟動(dòng)所需文件已齊備。

4.4 驅(qū)動(dòng)及應(yīng)用程序設(shè)計(jì)

驅(qū)動(dòng)程序是操作系統(tǒng)中的應(yīng)用程序和硬件設(shè)備數(shù)據(jù)交互的橋梁,分為字符型設(shè)備驅(qū)動(dòng)、塊設(shè)備驅(qū)動(dòng)和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)3大類。系統(tǒng)的外設(shè)驅(qū)動(dòng)主要是網(wǎng)絡(luò)型設(shè)備驅(qū)動(dòng)和字符型設(shè)備驅(qū)動(dòng),其中千兆網(wǎng)驅(qū)動(dòng)程序已經(jīng)集成于內(nèi)核系統(tǒng)中,SPI、RS232串口和信號(hào)處理3個(gè)設(shè)備使用字符型設(shè)備驅(qū)動(dòng)。應(yīng)用程序是系統(tǒng)運(yùn)行的靈魂,直接影響到數(shù)據(jù)傳輸系統(tǒng)的可靠性、穩(wěn)健性。系統(tǒng)中,程序要實(shí)現(xiàn)千兆網(wǎng)UDP通信、異步串口通信和同步SPI通信,通信速度各不相同,串口通信速率為9600 bps,SPI通信速度為4 Mbps,信號(hào)處理之后的數(shù)據(jù)為96 kb。且要求1 ms內(nèi)傳輸完畢,否則幀與幀之間存在數(shù)據(jù)覆蓋,因此傳輸?shù)乃俣却笥?6 Mbps。這3種通信速度和數(shù)據(jù)量大小都不同,如果只用單線程的順序執(zhí)行程序是無(wú)法實(shí)現(xiàn)系統(tǒng)的要求,要使用定時(shí)器、多線程等處理。

4.4.1 驅(qū)動(dòng)程序設(shè)計(jì)

串口和SPI接收到的數(shù)據(jù)存儲(chǔ)在一定長(zhǎng)度的寄存器中,每個(gè)數(shù)據(jù)都有幀頭,以防止數(shù)據(jù)混亂。每次讀取串口數(shù)據(jù)和SPI中的數(shù)據(jù)后,將緩存寄存器中的所有數(shù)據(jù)清空。信號(hào)處理后獲得視頻信號(hào)數(shù)據(jù)存儲(chǔ)在深度為1024、位寬為16 bit的雙端口ROM中。雙端口ROM讀寫(xiě)使用不同的時(shí)鐘,解決讀寫(xiě)速率不匹配的問(wèn)題。

以信號(hào)處理模塊的驅(qū)動(dòng)程序?yàn)槔?。信?hào)處理后的數(shù)據(jù)存儲(chǔ)在雙端RAM中,同時(shí)設(shè)置一些控制端口。驅(qū)動(dòng)中數(shù)據(jù)交換是通過(guò)總線模式進(jìn)行,使用10個(gè)寄存器,其功能見(jiàn)表2。

表2 數(shù)據(jù)采集寄存器及功能表

字符型設(shè)備驅(qū)動(dòng)程序包含設(shè)備加載、卸載以及文件操作函數(shù)。驅(qū)動(dòng)程序加載時(shí)系統(tǒng)調(diào)用module-init宏實(shí)現(xiàn)模塊的初始化操作,在驅(qū)動(dòng)中radar-processinit函數(shù)主要完成以下工作:

(1)內(nèi)核注冊(cè)MISC型設(shè)備驅(qū)動(dòng);

(2)將信號(hào)處理模塊物理地址映射到虛擬地址;

調(diào)用module-exit宏實(shí)現(xiàn)信號(hào)處理模塊的驅(qū)動(dòng)卸載,radar-process-exit函數(shù)完成模塊的清除工作,具體實(shí)現(xiàn)虛擬地址釋放和刪除設(shè)備文件[13]。

驅(qū)動(dòng)程序中定義了對(duì)信號(hào)處理處理模塊的讀寫(xiě)和打開(kāi)、關(guān)閉等操作接口函數(shù),文件操作結(jié)構(gòu)為:

其中,radar-process-open 和 radar-process-release為打開(kāi)和關(guān)閉操作封裝函數(shù) 在 radar-processopen中完成打開(kāi)設(shè)備,radar-process-ioctl函數(shù)用于對(duì)雷達(dá)處理器的寫(xiě)操作,通過(guò)內(nèi)核函數(shù)copy-from-user實(shí)現(xiàn)。

radar-process-read函數(shù)實(shí)現(xiàn)雷達(dá)數(shù)據(jù)讀取并傳到應(yīng)用層程序中,數(shù)據(jù)傳遞使用地址傳輸模式,而不是使用內(nèi)核函數(shù)copy-to-user,具體實(shí)現(xiàn)代碼如下:

驅(qū)動(dòng)程序中讀取數(shù)據(jù)通過(guò)buffer指針傳到應(yīng)用程序。驅(qū)動(dòng)設(shè)計(jì)完成后,在linux環(huán)境中編譯生成ko文件,并將其加載到內(nèi)核中運(yùn)行,才能在應(yīng)用程序中讀寫(xiě)硬件設(shè)備。驅(qū)動(dòng)文件可使用insmod和rmsmod命令動(dòng)態(tài)添加模塊加載,也可將驅(qū)動(dòng)編譯到內(nèi)核中,系統(tǒng)啟動(dòng)時(shí)自動(dòng)將驅(qū)動(dòng)運(yùn)行。動(dòng)態(tài)添加驅(qū)動(dòng)的方式比較靈活,易于調(diào)試[14]。

4.4.2 應(yīng)用程序設(shè)計(jì)

在Linux系統(tǒng)中運(yùn)行的應(yīng)用程序要實(shí)現(xiàn)數(shù)據(jù)傳輸和命令交互的功能,包括UDP網(wǎng)絡(luò)通信、發(fā)射機(jī)系統(tǒng)控制及狀態(tài)讀取和伺服系統(tǒng)控制及角度、轉(zhuǎn)速等信息獲取。由于RS232異步串口通信速率較慢、狀態(tài)獲取不能影響其他功能的正常運(yùn)行,UDP接收函數(shù)在沒(méi)接收到數(shù)據(jù)時(shí)一直等待而不做其他操作,這使單線程程序無(wú)法滿足設(shè)計(jì)的要求,因此使用多線程編程和定時(shí)器編程。應(yīng)用程序設(shè)計(jì)使用一個(gè)主線程和兩個(gè)子線程,共三個(gè)線程,UDP接收程序占用一個(gè)線程,spi接收占用一個(gè)線程,主線程中完成服務(wù)器發(fā)送的命令的解析以及相關(guān)函數(shù)的調(diào)用,線程之間通信使用變量,定時(shí)器函數(shù)用于RS232串口通信的數(shù)據(jù)讀取。多線程的創(chuàng)建可使用 pthread-create函數(shù)[15]。

UDP網(wǎng)絡(luò)接收函數(shù)使用一個(gè)線程,此線程中除了接收計(jì)算機(jī)中傳輸?shù)臄?shù)據(jù)外,還要對(duì)接收到的命令進(jìn)行檢測(cè),除數(shù)據(jù)采集命令外,其他控制命令只執(zhí)行一次,此線程的實(shí)現(xiàn)代碼如下:

定時(shí)器函數(shù)用于異步串口通信數(shù)據(jù)讀取,每隔一秒鐘調(diào)用串口讀取函數(shù)并將數(shù)據(jù)清空,更新全局變量數(shù)據(jù),當(dāng)接收到計(jì)算機(jī)應(yīng)用程序的讀取發(fā)射機(jī)系統(tǒng)狀態(tài)命令時(shí),無(wú)需等待即可將發(fā)射機(jī)的相關(guān)數(shù)據(jù)傳送至計(jì)算機(jī)。

主函數(shù)完成UDP網(wǎng)絡(luò)通信套接字創(chuàng)建及IP地址、通信端口綁定,定時(shí)器初始化,創(chuàng)建線程,打開(kāi)SPI模塊、RS232模塊和信號(hào)處理設(shè)備,命令解析以及數(shù)據(jù)讀取傳送,具體流程如圖4所示。應(yīng)用程序設(shè)計(jì)完成之后,在linux環(huán)境中使用交叉編譯工具生成的可執(zhí)行文件才能在數(shù)據(jù)采集系統(tǒng)中運(yùn)行。

圖4 主線程流程圖

5 系統(tǒng)測(cè)試與結(jié)果

一個(gè)制作完成的高速數(shù)據(jù)采集系統(tǒng)如圖5所示。

圖5 高速數(shù)據(jù)采集系統(tǒng)

對(duì)高速數(shù)據(jù)采集系統(tǒng)的測(cè)試主要分為功能測(cè)試和穩(wěn)定性測(cè)試。功能測(cè)試主要有通信速率測(cè)試、伺服系統(tǒng)控制、發(fā)射機(jī)系統(tǒng)控制、數(shù)據(jù)采集測(cè)試,穩(wěn)定性測(cè)試限于條件,考慮采用正常采集數(shù)據(jù)時(shí)系統(tǒng)連續(xù)正常工作時(shí)間長(zhǎng)度的方法考量。

功能測(cè)試時(shí)由計(jì)算機(jī)終端應(yīng)用軟件發(fā)送控制命令,經(jīng)信號(hào)采集板接收后傳送至相應(yīng)的控制分系統(tǒng)。經(jīng)測(cè)試,數(shù)據(jù)采集系統(tǒng)中的千兆網(wǎng)通信速率容易達(dá)到640 Mbps;能準(zhǔn)確地控制伺服系統(tǒng)完成定位、自檢、RHI掃描、PPI掃描等控制;控制發(fā)射機(jī)系統(tǒng)完成開(kāi)(關(guān))高壓(端接假負(fù)載,未送到天線上發(fā)射)、開(kāi)(關(guān))燈絲等控制以及發(fā)射機(jī)當(dāng)前工作狀態(tài)信息的回傳;用信號(hào)源潰入中頻信號(hào),經(jīng)采集系統(tǒng)的前端——中頻接收機(jī)和信號(hào)處理器后的反射率因子、平均徑向速度和速度譜寬等雷達(dá)基數(shù)據(jù)能實(shí)時(shí)無(wú)丟失地送到計(jì)算機(jī)中。

穩(wěn)定性測(cè)試時(shí)使用計(jì)算機(jī)終端處理軟件正常的控制數(shù)據(jù)采集系統(tǒng)連續(xù)工作168小時(shí),其間數(shù)據(jù)采集系統(tǒng)沒(méi)有出現(xiàn)數(shù)據(jù)丟失、命令不響應(yīng)、系統(tǒng)重啟等故障問(wèn)題。有限時(shí)間和次數(shù)的試驗(yàn),表明系統(tǒng)在多普勒天氣雷達(dá)數(shù)據(jù)采集傳輸中的適用性;在實(shí)際應(yīng)用中,還需考驗(yàn)其抗干擾能力等環(huán)境適應(yīng)性以及長(zhǎng)期穩(wěn)定可靠工作等性能。

6 結(jié)論與展望

多普勒天氣雷達(dá)數(shù)據(jù)采集系統(tǒng)是以Xilinx公司的具有SOC結(jié)構(gòu)的FPGA器件zynq7000芯片聯(lián)合千兆以太網(wǎng)物理芯片88E1518實(shí)現(xiàn)硬件結(jié)構(gòu),通過(guò)內(nèi)嵌處理器和嵌入式系統(tǒng),運(yùn)行軟件配置和操作調(diào)度來(lái)完成大量的數(shù)據(jù)傳輸和命令及狀態(tài)交互的。通過(guò)FPGA邏輯資源和內(nèi)嵌處理器的軟件運(yùn)行,系統(tǒng)的功能可以進(jìn)一步增加;由于軟硬件的“可編程”特性,系統(tǒng)也可用于其他需要高速數(shù)據(jù)采集功能的場(chǎng)合。

采集系統(tǒng)同時(shí)具有天氣雷達(dá)信號(hào)處理的功能。中國(guó)有望逐步吸收發(fā)達(dá)國(guó)家已經(jīng)出現(xiàn)的雙波長(zhǎng)、雙偏振、多普勒天氣雷達(dá)(Dual-Frequency Dual-Polarized Doppler Radar,D3R)先進(jìn)探測(cè)技術(shù),其處理的數(shù)據(jù)量和復(fù)雜程度將大為增加,“硬件處理-高速傳輸-計(jì)算機(jī)處理”的方式將經(jīng)常性地被采用,基于千兆以太網(wǎng)的采集系統(tǒng)的結(jié)構(gòu)將極為有用。而基于無(wú)線千兆以太網(wǎng)的構(gòu)思,對(duì)雷達(dá)系統(tǒng)的連接簡(jiǎn)化和維修維護(hù)將帶來(lái)更大的便利。

[1] David McLaughlin,David Pepyne,Brenda Philips,et al.Short-Wavelength Technology and the Potential For Distributed Networks of Small Radar Systems[J].Bull.Amer.Meteor.SoC.,2009,90:1797-1817.

[2] Xilinx.Inc.,A Generation Ahead for Smarter Systems:9 Reasons Why the Xilinx Zynq-7000 all Programmable Soc Platform is the Smartest Solution[BE/OL].http://www.xilinx.com/publications/prod-mktg/zynq-7000-generation-aheadbackgrounder.2014.

[3] Xilinx.Inc.,Zynq-7000 All Programmable SoC O-verview[BE/OL].http://www.xilinx.com/support/documentation/data-sheets/ds190-Zynq-7000-Overview.2014.

[4] Xilinx.Inc.,Zynq-7000 All Programmable SoC Technical Reference Manual[BE/OL].http://www.xilinx.com/support/documentation/userguides/ug585-Zynq-7000-TRM.2013.

[5] Xilinx.Inc.,7 Series FPGAs Memory Interface Solutions User Guide[BE/OL].http://www.xilinx.com/support/documentation/ip-documentation/ug586-7Series-MIS.pdf,2012.

[6] 朱晴,吳寧,顧薛平.基于FPGA的千兆網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2011,30(21):53-59.

[7] Cuong M,Nguyen,V Chandrasekar.Gaussian Model Adaptive Processing in Time Domain(GMAPTD)for Weather Radars[J].J.Atmos.Oceanic Technol.,2013,30:2571-2584.

[8] M Sachidananda,D S Zrnic.Clutter Filtering and Spectral Moment Estimation for Doppler Weather Radars Using Staggered Pulse Repetition Time(PRT)[J].J.Atmos.Oceanic Technol.,2000,17:323-331.

[9] 馬文星,一種考慮QoS的多媒體業(yè)務(wù)跨層設(shè)計(jì)[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2011,25(6).

[10] 王雷.TCP/IP網(wǎng)絡(luò)編程技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2012.

[11] 陸佳華,江舟,馬岷.嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2013.

[12] 陳可.虛擬機(jī)在計(jì)算機(jī)實(shí)踐中的應(yīng)用研究[J].科協(xié)論壇,2007,(5):26-27.

[13] 陳濤,余學(xué)才,朱良銷(xiāo),等.信號(hào)發(fā)生模塊的Linux驅(qū)動(dòng)程序設(shè)計(jì)[J].化工自動(dòng)化及儀表,2010(11):88-91.

[14] Digilent.Inc.,Getting Started With Embedded Linux-ZedBoard[EB/OL].http://www.digilentinc. com/Data/Products/EMBEDDEDLINUX/ZedBoard-GSwEL-Guide.2013.

[15] 陳向群,陳渝,譯.操作系統(tǒng)——精髓與設(shè)計(jì)原理(第七版)[M].北京:電子工業(yè)出版社,2012.

猜你喜歡
信號(hào)處理內(nèi)核命令
多內(nèi)核操作系統(tǒng)綜述①
只聽(tīng)主人的命令
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
活化非遺文化 承啟設(shè)計(jì)內(nèi)核
Linux內(nèi)核mmap保護(hù)機(jī)制研究
《信號(hào)處理》征稿簡(jiǎn)則
《信號(hào)處理》第九屆編委會(huì)
《信號(hào)處理》征稿簡(jiǎn)則
《信號(hào)處理》第九屆編委會(huì)
移防命令下達(dá)后
监利县| 永修县| 九龙城区| 嘉善县| 巴马| 龙口市| 肃北| 靖西县| 扶余县| 清丰县| 灵山县| 西乌珠穆沁旗| 丰镇市| 天全县| 苗栗市| 屏边| 大名县| 资兴市| 修水县| 巴彦淖尔市| 大足县| 宜州市| 阳新县| 乌拉特前旗| 高阳县| 琼结县| 海阳市| 师宗县| 含山县| 弥勒县| 南和县| 宣恩县| 鹿泉市| 吉首市| 伊宁县| 泰宁县| 夏津县| 东平县| 青神县| 汤阴县| 呼伦贝尔市|