0 引言
目前已經有多種成熟的數據采集系統,主要用于工業生產、環境監測、航空航天和科學研究領域中。大部分實時數據采集系統選用DSP(Digital Signal Processing)控制器和微控制器作為控制核心,比較容易實現復雜的算法[1],但是它們受到信息吞吐量和帶寬的限制,不能實現并行化處理,在高速大批量數據采集時有些乏力。而有極強并行處理數據能力的現場可編程門陣列器件(Field Programmable Gate Array,FPGA)備受青睞,以FPGA為控制核心的數據采集系統也日漸興盛。FPGA具有靈活性高、可擴展性強和資源豐富的特點[2-3],而且能夠應對各種形式的接口協議,使其在數據采集系統中得到廣泛應用。有些FPGA是反熔絲的,可靠性能和穩定性能非常高,這類FPGA在特定宇航應用中是必選項。
地球臨近空間低溫、低壓、高輻射,環境極端惡劣,數據采集系統的傳感器和控制部件很容易受到影響而工作異常,甚至出現系統崩潰的現象。此環境下設計數據采集系統需要考慮穩定性。FPGA能夠實現復雜電路,能減小電路板上因布線產生的電磁干擾。與DSP控制器和其他CPU微控制器相比,FPGA生成硬件電路的特性更具有抗干擾性。前人進行可靠性處理的方法有冗余結構設計和配置存儲器的回讀校驗與重配置[4]。同時數據采集系統可靠性也有合理的評估指標,例如運行環境、系統集成、人機耦合、方案成熟性及安全性[5]。
需設計一個數據采集系統,使其運行在臨空的特定環境下,不僅實現數據采集任務,還需要實時將數據傳回地面,并能完成部分控制功能。從運行成本和環境考慮,需提高系統的可靠性和穩定性。從硬件和軟件兩方面入手進行設計,在硬件方面,FPGA抗干擾性能強,所以選取FPGA作為本系統的主控制器。采用冗余策略,設計兩路連接主控制器的傳感器電路,使得數據采集系統可靠性提高。對軟件部分,進行模塊化編程,利用有限狀態機和看門狗策略來提高系統穩健性。
1 系統硬件設計
臨空數據采集系統主要包括了以FPGA為控制器的最小系統模塊、傳感器模塊、UART串口通信模塊和控制模塊。如圖1所示,最小系統是維持FPGA控制器正常運行的外圍電路;傳感器模塊涉及溫度、角度、電流電壓等信號的采集與調理,因為硬件的冗余,信號被分為主板信號和從板信號;UART串口通信模塊包括2個RS232串口(與北斗模塊相連)、2個RS422串口(與臨空機載計算機連接);控制模塊主要包括閥門控制模塊和溫度控制模塊,溫度控制模塊用于控制加熱電阻,來維持電路板上的元器件正常運行。
1.1 最小系統模塊
本設計選用Altera公司的Cyclone IV E系列的EP4CE22F1717作為采集系統的控制器。它有22 320個邏輯單元、154個用戶輸出輸出口、132個乘法器、4個PLL(“Phase Locked Loop”鎖相環)。芯片的外部提供晶振頻率為50 MHz。
1.2 溫度采集模塊
數據系統采用PT100溫度傳感器來測量10路溫度。PT100溫度傳感器將溫度變量轉換成可以傳送的標準化電信號。此傳感器精度高,穩定性好,測溫范圍在-200 ℃~650 ℃之間,符合臨空測溫范圍要求。如圖2所示,將PT100傳感器連接到差動電路中,測量差分電壓,將此電壓信號進行整形調理,經過模數轉換芯片得到數字值暫存到FPGA中的內存中。濾波電路采用阻容濾波。儀表放大器采用TI公司的儀表放大器INA333,該放大器具有低功耗、高精度的特性。AD轉換芯片應用5 V供電電壓的TLC2543IN,允許11路外部模擬信號并行輸入,串口輸出轉換數據,具有12位的分辨率。
1.3 氣壓采集模塊
本設計選用SMI公司的SM5852系列氣壓傳感器來采集氣壓信號。SM5852傳感器的工作溫度為-40 ℃~125 ℃,能夠滿足臨空的惡劣環境,芯片內部有溫度補償算法,實現氣壓的精準測量。本文選用SM5852-003傳感器,其可測壓力范圍是0~0.3 PSI(Pounds per Square Inch)。氣壓傳感器既可以輸出數字信號,又可以輸出模擬信號。為了使系統設計簡單而且信號獲取精確高,這里直接采集傳感器的數字信號。數字信號是通過IIC協議傳輸的,并利用74LVC4245電平轉換芯片將電壓的控制器與傳感器連接在一起,將5 V的數字信號轉換為3.3 V數字信號,同時對控制模塊起到保護作用。
1.4 通信模塊
這一模塊在本系統中非常關鍵,它是連接采集器與地面監控系統的紐帶。它負責將臨空采集平臺上獲取的信息實時地傳送給機載計算機或者北斗模塊,同時實時接收來自兩個模塊的指令。采集平臺上的重要數據信息通過事先擬定的協議被組合成不同長度的幀發送給地面指揮站。為了保證數據的安全性和準確性,增加數據幀校驗環節,將求異或和作為幀校驗的方法。
本系統的FPGA控制板放置在數據采集系統的平臺上,與地面指揮站通信交互信息主要有兩類:一類是下發采集器收集到的數據信息,另一類接收地面指揮系統的指令信息。為了保證數據安全和采集系統的可靠性,對通信模塊冗余設計。通過兩個RS422接口與機載計算機相連,機載計算機再通過無線通信與地面指揮站交互信息。另外,還通過兩個RS232接口與機載北斗相連,通過北斗衛星服務與地面指揮站聯系。同時,采集器的定位信息一同下發到地面。RS422接口芯片選用ADI公司ADM2587E,RS232接口芯片采用ADI公司的ADM3251E。兩個RS422接口分為主板串口、從板串口,主板串口處理的是與主板相關的數據信息,從板串口處理與從板相關的數據信息。
2 系統軟件設計
軟件代碼開發基于Altera公司的Quartus II 13.0平臺,利用Verilog HDL語言實現代碼塊的設計與仿真。臨空數據采集系統中,FPGA控制器內信號的性質和來源各式各樣,有直接來自傳感器的數字信號,有模擬信號轉換后的數字信號,有程序內部的標志信號,有來自機載計算機的控制信號,有來自北斗模塊發來的控制信號和定位信號,有FPGA控制器發出的數據信號、電機控制信號、電路板控溫信號等。為了提高有效數據穩定地接收、存儲和發送,需要對全體信號細致分類,這對程序代碼模塊劃分有指導作用。系統軟件設計要求代碼可讀性高、可靠性高、易維護、有可擴展的余地。系統設計的思路是先做總體架構,再逐個完成子模塊的編寫,最后在頂層模塊完成信號連接。模塊化的設計思路使得系統仿真測試更容易,代碼維護性更強。
2.1 程序頂層架構
程序頂層模塊的設計影響全局,關系到系統的穩定性和可靠性。系統結構的設計是根據模塊的功能劃分,每一個模塊實現一個具體的功能,數據信息的交互通過各模塊的輸入輸出接口連接。
數據采集系統信號比較多,而且FPGA與機載計算機、北斗模塊的通信按照既定協議交互數據,即定時發送采集系統的數據,不定時接收外部指令和狀態信息,為了便于管理數據,在FPGA內開辟一塊隨機存儲器(Random Access Memory,RAM),專門針對各種信號存儲和讀取,這種數據結構使FPGA內部數據共享更容易,也不易產生讀寫數據紊亂現象[6-7]。引用Altera公司提供的IP核配置RAM,經過事先估計并留有足夠的余地,將RAM大小設置為512 B,讀寫地址線各9根,并設置讀寫使能控制端口。圖3為系統的頂層模塊架構,核心模塊是RAM區的讀寫模塊,溫度、壓力、電壓、電流信號,以及來自機載計算機或北斗的指令、位置和狀態等信號流入RAM區,而存儲的數據需要從RAM區被讀取,通過UART串口模塊發送給機載計算機和北斗模塊。
2.2 通信模塊程序設計
通信模塊借助UART串口實現雙向通信。FPGA控制器向機載計算機和北斗模塊發送數據幀,同時實時接收它們的指令與狀態數據??刂破飨騼蓚€RS422串口發送定位、主從板信息、狀態等數據幀,定位數據幀包含來自北斗模塊的定位信息,主從板數據幀囊括采集系統采集到的各類信息,狀態數據幀含有北斗模塊的狀態信息。此外,控制器向兩個RS232串口發送遙測數據幀和自檢數據幀,遙測數據幀由遙測幀頭、定位信息、主板或從板信息和遙測數據幀尾組成,自檢數據幀包括自檢信息的請求。同時,有3個UART串口實時接收來自機載計算機和北斗模塊的指令和狀態信息。程序運行時需要對各種數據幀頻繁讀寫操作,如果程序設計不合理,很容易造成程序死鎖或崩潰。鑒于串口數據的接收和發送沒有緊密地耦合,程序內部將數據接收和發送分成兩個子模塊來設計,然后在頂層模塊通過wire型變量連接。為了有效解決數據讀寫不紊亂的問題,設計狀態機來合理使用RAM區資源,增強程序的穩定性。狀態機的空閑任務會出現連接兩個always塊的使能信號,設計watchdog程序增強程序的魯棒性。
2.2.1 RAM數據段劃分
本文設計了雙端口RAM數據結構,承載采集控制系統的重要數據。依據通信協議,針對512 B的RAM區,細致地進行了數據段的劃分,如圖4所示。按照發送頻次以及組幀要求,合理分配數據幀的存儲順序。這樣設計會使控制器讀寫更可靠安全,也使代碼編寫調試更簡捷。
2.2.2 數據發送狀態機設計
信息傳送模塊是連接地面指揮系統和數據采集系統的紐帶。在臨空惡劣環境下,為了將采集到的數據和系統狀況相關信息實時準確地傳送到地面指揮站,在軟件上進行了可靠性研究和處理。
首先對傳送的數據做了校驗處理,可通過上位機軟件測試傳輸數據幀是否正確,如果校驗失敗,可丟棄此幀。本系統的發送模塊既要發送主板信息又要發送從板信息,既要傳送給機載計算機又要傳送給北斗衛星,發送幀的類型也有差異,因此,設計三段式狀態機穩定地傳送數據,以免數據發送紊亂。在狀態機的空閑任務中,FPGA等待各種數據類型幀的觸發信號,一旦接收到啟動發送信號,進入到相應的發送狀態中,將對應的數據幀發送到UART串口上,串口的觸發信號也因數據信息的差異而不同。在空閑任務中,接收到觸發信號后,需要實時對RAM區執行寫操作,寫操作完成后再進入發送狀態,不免會引起程序死鎖。為了解決這個問題,提高程序的魯棒性,在等待寫操作的部分加入看門狗程序,一旦死鎖,可以強行將程序拉回到原始等待狀態。圖5為UART串口發送模塊的狀態機示意圖。
3 系統仿真與調試
數據系統的測試主要通過兩種手段:軟件仿真和借助上位機聯調。本系統用到的仿真工具有Quartus II開發環境提供的在線邏輯分析儀、信號探針、邏輯分析儀接口等,還有外部安裝性能強大的Modelsim仿真工具。例如,在調試具有讀寫應答的IIC通信的傳感器和基于SPI通信的傳感器時,使用在線邏輯分析儀直接觀察數據波形特征,能夠快速診斷并排查錯誤。利用Modelsim仿真工具時,需要先編寫對應模塊的testbench代碼,并添加到仿真工具中,運行仿真軟件。圖6為調試UART通信模塊波形圖,可觀察RAM的讀寫地址值與數據值的對應關系,驗證代碼的邏輯。尤其在調試狀態機的運行情況時,能夠很直觀地查看狀態時序邏輯的正確性。
當集中測試所有的模塊時,為了提高調試效率,利用了基于UART通信的上位機軟件。該軟件運行在Windows 10 系統上,它通過USB接口接收FPGA發送的數據信息,并把信息可視化在面板上,直觀明了地看到FPGA采集到的數據。
4 結論
臨空環境有低溫、低壓、高輻射的特點,因此對運行在環境下數據采集系統的設計要求極為嚴格。本文從軟硬件兩方面著手進行可靠性研究,設計了應對這種復雜環境的數據采集系統,取得了良好的效果。該系統能夠可靠穩定地采集到傳感器數據,并能長時間穩定地與北斗模塊和機載計算機通信,能夠通過地面控制系統發送指令控制數據采集系統。
參考文獻
[1] MONMASSON E,IDKHAJINE L,CIRSTEA M N,et al.FPGAs in industrial control applications[J].IEEE Transactions on Industrial Informatics,2011,7(2):224-243.
[2] KANDADAI V,SRIDHARAN M,PARVATHY S M,et al.A comprehensive embedded solution for data acquisition and communication using FPGA[J].Journal of Applied Research & Technology,2017,15(1):45-53.
[3] 周珊,楊雅雯,王金波。航天高可靠FPGA測試技術研究[J]。計算機技術與發展,2017,27(3):1-5.
[4] 宋克非.FPGA在航天遙感器中的應用[J]。光機電信息,2010,27(12):49-55.
[5] 陳柯勛,王曉毅,薛輝。基于FPGA的數據采集器設計及可靠性分析[J]。科技資訊,2017,15(24):7-8.
[6] 王敬美,楊春玲。基于FPGA和UART的數據采集器設計[J]。電子器件,2009,32(2):386-389.
[7] NING Y,GUO Z,SHEN S,et al.Design of data acquisition and storage system based on the FPGA[J].Procedia Engineering,2012,29:2927-2931.
評論
查看更多