蔡朋飛,趙 飛
(中國科學院空間科學與應用研究中心微波遙感技術重點實驗室 北京 100190)
隨著微波遙感的日益廣泛應用,對輻射測量技術也提出了越來越高的要求,目前國內使用的微波輻射計大多是全功率型輻射計,這種輻射計具有較高的理論靈敏度,結構也比較簡單,但由于接收機增益的波動,其實際靈敏度及工作穩定性都比較差,而狄克型輻射計則克服了增益波動帶來的不良影響,提高了輻射計的實際靈敏度和測量精度[1]。
目前傳統狄克型輻射計的各項技術已經比較成熟,它通過調制,同步解調和積分器實現零平衡進而抑制增益變化,然而它們的實現都是通過模擬電路來實現的,這樣就導致了傳統的狄克型輻射計時序精確性和準確性不是很高,本文設計的基于FPGA的數據采集系統可將傳統的調制,同步解調和積分比較器改進為數字型,這樣就使得對輻射計的時序控制更加精確,系統也更加緊湊、小型化。
本系統以型號為EP2C8Q208的FPGA芯片作為主要的控制單元,該芯片成本低、功耗低、且配置靈活,系統主要包括電源模塊、主芯片配置模塊、數據采集模塊、存儲模塊及NIOS II數據讀取與傳輸模塊,總的框圖如圖1所示。
圖1 系統總體框圖Fig.1 Verall block diagram of the system
硬件部分主要包括電源模塊、主芯片配置模塊、數據采集模塊、存儲模塊等組成。電源模塊主要有PTH12050、LT1764等芯片組成,系統上電后,由線性電源提供12 V電源,經PTH12050后輸出5 V電壓,再經LT1764后得到3.3 V電壓和1.2 V電壓,其中3.3 V電壓主要供數據采集模塊、存儲模塊、數據傳輸模塊、FPGA的IO口使用,1.2 V是FPGA的內核電壓;數據采集模塊主要由AD7606組成,AD7606能最多采集八路信號,16位的分辨率,最大采樣率可達200 KSPS;存儲模塊主要由MT48LC16M16A2型SDRAM組成,最高時鐘頻率可達133 MHz,容量為256 M;數據傳輸模塊主要有串口傳輸模塊和網口傳輸模塊組成,串口采用max3232芯片,網口采用W5300芯片。
硬件系統的核心是在于FPGA中搭建的NIOS II軟核,它控制著外圍電路的正常工作,而外圍電路主要包括數據采集電路、數據緩存電路和上位機通信電路。數據采集電路包括ADC及ADC控制單元,本設計中為節省資源將AD7606設計成串行輸出,其設計原理圖如圖2所示,ADC的控制部分主要通過verilog HDL語言編寫的控制程序在FPGA中實現;數據緩存單元的存在是因為軟核與外設ADC的讀寫速度不一致造成的,數據緩存單元用來緩存AD控制單元送來的數據,該單元由一塊RAM組成,這塊RAM分為上下各半部分,當上半部分存滿之后開始存儲下半部分,同時NIOS II軟核讀取上半部分,依次循環,這種結構能保證數據連續采樣而不丟失[2];上位機通信電路主要是串口電路和網口電路,系統采集的數據能通過串口或者網口傳至上位機。
FPGA邏輯設計主要用來完成AD7606的控制、數據的緩存及自定義邏輯,系統上電后,AD控制部分控制AD7606的初始化及數據轉換,主要是控制CONVSTA、CONVSTB、CS、及RESET信號的時序,CONVSTA與CONVSTB是兩個通道的轉換開始信號,CS和RESET分別是片選和復位信號,當各個控制信號滿足時序要求時,AD7606即能正常工作;同時AD控制部分將采得的數據寫入Ram中,當Ram上半部分寫滿后會產生中斷來通知軟核讀取上半部分的數據,同時繼續將數據寫入下半部分,依次循環,其中Ram與軟核的通信是通過Avalon總線實現的,這中間需要自定義一個Avalon slave型的Ram讀組件,由于軟核只需要讀Ram中的數據而不需要對其進行寫操作,因此自定義組件只包含了讀地址和讀使能信號[3],通過該組件即可實現軟核與Ram的正常通信。
該部分設計主要是針對NIOS II軟核的程序開發。NIOS II處理器的軟件開發環境IDE為開發者提供了低層設備驅動及豐富的標準庫資源,并在main函數之前自動完成系統和外設的初始化,因此開發者只需做好應用程序的開發即可[4],軟件流程圖如圖4所示。
圖2 AD7606電路圖Fig.2 Schematic of AD7606
初始化部分由NIOS II軟核自帶的驅動自動完成,在采集開始之前加上一PIO使之與CONVSTA信號相與來作為AD7606的開始采樣信號,在采樣開始后采得的數據會寫入到Ram中,進而產生中斷來將數據存入到SDRAM中并輸出。
3.2.1 中斷控制
在Ram控制中,當Ram的上半部分或者下半部分寫滿時會產生中斷信號,該中斷信號與一個PIO信號相連接,通過控制與PIO相關聯的四個寄存器即可使NIOS II軟核響應中斷來實時讀取Ram中的數據[5]。
圖3 軟件流程圖Fig.3 Flow diagram of software
NIOS II處理器在響應中斷時需要調用相對應的中斷服務函數,而NIOS II中的中斷服務函數有著特定的要求,每個中斷服務函數須經注冊后才能生效[4],以下為中斷服務函數。
3.2.2 RAM的讀取
NIOS II處理器讀取外設的信息時牽涉到地址對齊問題,而要讀取Ram中的信息需采用動態地址對齊方式,在動態地址對齊方式下,NIOS II處理器一次讀操作將連續讀取4個字節的數據,所以在編寫程序時偏移地址應每次加4[6],以下是讀取RAM的程序。
3.2.3 數據的傳輸
NIOS II處理器將讀取的數據存入SDRAM后可通過串口或者網口發到上位機上。網口的數據傳輸程序比較復雜,本文只介紹串口的數據傳輸,同其他外設,使用串口時也需先注冊串口中斷,然后再寫串口中斷服務函數。UART核內有5個關鍵的寄存器,通過控制這5個寄存器即可有效控制串口的正常工作,并將采得的數據通過串口傳輸到上位機[5]。
由于微波輻射計最后檢波輸出的信號頻率比較低,且用串口傳輸的速率也比較低,所以程序中將AD7606的采樣率設置的比較低,為驗證系統性能,以5 K的采樣率對100 Hz的標準正弦波和方波進行了采樣,從采樣結果可以看出,無論是采樣幅度還是采樣精度都能滿足輻射計的要求。圖4是標準的正弦波采樣結果,圖5是標準方波采樣結果。
圖4 標準正弦波采樣結果Fig.4 Sampling results of standard sine wave
圖5 標準方波采樣結果Fig.5 Sampling results of standard square wave
文中設計的以FPGA為核心的數據采集系統,通過添加外設和自定義邏輯到NIOS II軟核實現了對系統的整體控制,而且設計比較靈活,易于實現,移植性也比較強。經試驗驗證,該系統能夠很好的實現數據采集功能,能達到微波輻射計數據采集的要求。
[1]雷震東,林士杰,張祖蔭,等.脈沖噪聲注入式零平衡型高精度微波輻射計系列[J].微波學報,1990(2):1-5.LEI Zhen-dong,LIN Shi-jie,ZHANG Zhu-yin,et al.High precision microwave Radiometer series of impulse noise injection and zero balanced[J].Microwave Journal,1990(2):1-5.
[2]楊林楠,李紅剛,張麗蓮,等.基于FPGA的高速多路數據采集系統的設計[J].計算機工程,2007,33(7):246-248.YANG Lin-nan,LI Hong-gang,ZHANG Li-lian,et al.Design of high-speed and multi-channel data acquisition system based on FPGA[J].Computer Engineering,2007,33 (7):246-248.
[3]王建國,洪勝峰.基于SOPC的視頻點播系統設計[J].計算機工程,2007,33(22):277-282.WANG Jian-guo,HONG Sheng-feng.VOD system design based on sopc[J].Computer Engineering,2007,33 (22):277-282.
[4]李蘭英.NIOS II嵌入式軟核SOPC設計原理及應用[M].北京:北京航空航天大學出版社,2006.
[5]劉福齊.基于VHDL的FPGA和NIOS II實例精煉[M].北京:北京航空航天大學出版社,2011.
[6]萬里,李剛,林凌.基于NIOS II的數據采集系統[J].新技術新工藝,2009(3):1-4.WAN Li,LI Gang,LIN Ling.Data acquisition system based on NIOS II[J].New Technology and Crafts,2009(3):1-4.