楊建華,馬 超,齊 華
(西安工業(yè)大學,電子信息工程學院,西安710021)
慣性導航產(chǎn)品INS(inertial navigation system)在制造中會產(chǎn)生標度因數(shù)誤差、安裝誤差、零偏誤差等,因此,需要特定的標定方法對產(chǎn)品參數(shù)進行補償以改善導航精度,標定平臺為一個帶高低溫箱的高精度三軸轉臺與標定系統(tǒng)[1-2]。為盡可能一次性標定較多產(chǎn)品,一般設計多個數(shù)據(jù)采集通道。慣導產(chǎn)品標定時,將其固定于三軸轉臺內(nèi)框,在預置的溫度下,通過改變轉臺三軸位置以及旋轉速率,分別采集慣導產(chǎn)品的各種姿態(tài)數(shù)據(jù)[3-4]。姿態(tài)數(shù)據(jù)代入誤差模型方程中,可以解算出需要補償?shù)恼`差參數(shù)。數(shù)據(jù)通常以脈沖信號、電壓模擬量信號、串口數(shù)據(jù)等形式輸出。
為了幫助學生理解電子系統(tǒng)設計在工程實踐中的應用,提高學生從單元模塊設計到系統(tǒng)設計的能力以及數(shù)?;旌显O計的能力,在此設計了基于FPGA 的慣導姿態(tài)數(shù)據(jù)采集實驗系統(tǒng)[5-6]。針對數(shù)據(jù)采集系統(tǒng)在工程中的應用,完成了基于FPGA 的慣導姿態(tài)數(shù)據(jù)采集實驗系統(tǒng)的硬件系統(tǒng)搭建和數(shù)字邏輯電路設計,實現(xiàn)同時對48 路姿態(tài)數(shù)據(jù)以及4路溫度模擬量數(shù)據(jù)的信號調(diào)理、數(shù)字濾波及高精度數(shù)據(jù)采集。
所設計的采集系統(tǒng),能夠?qū)崿F(xiàn)對慣性導航產(chǎn)品姿態(tài)數(shù)據(jù)的高速高精度采集,其控制核心采用Altera 的Cyclone V 系列5CEBA4F23C7N 型號FPGA芯片; 可以同時完成4 個慣導產(chǎn)品的自動標定,同時采集48 路脈沖信號,脈沖信號表示陀螺儀輸出的角速率和加速度計的線加速度,4 路表示產(chǎn)品溫度的電壓模擬量信號。采集數(shù)據(jù)通過USB 接口上傳到上位機進行進一步分析與處理。系統(tǒng)的功能結構如圖1 所示。
圖中,48 路脈沖信號通過光耦合器HCPL2630和施密特觸發(fā)器74LVT14,實現(xiàn)脈沖信號的隔離和整形;4 路電壓模擬量信號通過高速模數(shù)轉換器AD9627 實現(xiàn)模數(shù)轉換。在FPGA 芯片內(nèi)部設計系統(tǒng)采集狀態(tài)機,根據(jù)數(shù)據(jù)地址狀態(tài)機按序每5 ms 讀取一次各個采集單元的數(shù)值,存入FPGA 內(nèi)部設計的FIFO 中,然后通過USB 芯片發(fā)送到上位機,進行保存、處理和顯示。
圖1 數(shù)據(jù)采集系統(tǒng)功能結構Fig.1 Functional structure of data acquisition system
為保證實驗系統(tǒng)板能夠良好運行,需要對其輸入信號進行完全電氣隔離,防止轉臺運行過程中其它來源的電信號對測試系統(tǒng)產(chǎn)生干擾[7-8]。在此采用光電耦合器對輸入脈沖信號進行隔離,選用Fairchild 半導體公司生產(chǎn)的HCPL2630 芯片作為隔離芯片。
HCPL2630 為雙通道數(shù)字隔離,轉換速度可達10 MBit/s,輸出TTL 電平信號,輸出信號與輸入信號電平相反,其內(nèi)部是以“電—光—電”信號的轉化方式來隔離輸入端和輸出端。
脈沖信號在經(jīng)過雙通道數(shù)字隔離器HCPL2630后,變?yōu)門TL 電平信號,但是電平發(fā)生了反相,脈沖的上升沿和下降沿也不夠理想。選用Philips 公司的74LVT14 反相芯片,可使脈沖電平恢復到原來的邏輯,同時由于其施密特觸發(fā)方式,使得脈沖信號在下降沿和上升沿變得更加陡峭,利于后端計數(shù)電路進行準確計數(shù)。
實驗系統(tǒng)共48 路脈沖信號,其中一路脈沖信號的隔離與整形電路如圖2 所示。
圖2 脈沖信號隔離整形電路Fig.2 Circuit of pulse signal isolation and shaping
4 路溫度信號AD 采集采集電路如圖3 所示。先通過運放AD8055 和分壓電阻把-5~5 V 輸入的電壓縮小為-1~1 V。該范圍輸入電壓通過AD8138芯片,轉換為差分信號輸入到雙通道高速模數(shù)轉換器AD9627,F(xiàn)PGA 控制模數(shù)轉換器完成數(shù)據(jù)采集。
圖3 溫度信號采集電路Fig.3 Temperature signal acquisition circuit
FPGA 內(nèi)部數(shù)字邏輯電路主要設計脈沖信號數(shù)字濾波單元、高精度無縫計數(shù)單元、溫度數(shù)據(jù)采集單元和數(shù)據(jù)傳輸協(xié)調(diào)控制單元等邏輯電路。
慣導組件輸出的脈沖信號在采集前要經(jīng)過轉臺滑環(huán)和長電纜線,在此過程中脈沖信號可能會發(fā)生畸變和疊加,產(chǎn)生一些干擾脈沖[9-10]。數(shù)字光耦(HCPL2630)可以隔離噪聲和濾除干擾,但對高頻干擾脈沖則無法消除。針對每一路計數(shù)電路,設計了數(shù)字邏輯濾波單元用以消除干擾脈沖,確保系統(tǒng)對脈沖信號采集和測量的準確性。
因慣導組件原始輸出固定脈寬的脈沖隊列,故采用閾值比較法進行濾波。將需要濾除干擾脈沖的最小脈沖寬度設為閾值,與輸入脈沖信號的脈寬比較,大于閾值的判定為有效信號,小于閾值的則判定為干擾信號。數(shù)字濾波電路邏輯結構如圖4 所示。
圖4 濾波原理Fig.4 Filter schematic
閾值為濾除干擾的最小脈寬設定值,可以通過上位機來進行閾值寬度設定。當輸入脈沖信號fin上升沿到來時,啟動計數(shù)器1,對基準時鐘f0計數(shù),并將計數(shù)結果送入比較器與閾值作比較:當計數(shù)結果大于閾值時,比較器輸出低電平,控制觸發(fā)器將fout置高;當計數(shù)結果小于閾值時,比較器輸出高電平,觸發(fā)器輸出fout不變。
當fin的下降沿到來時,計數(shù)器1 停止計數(shù),計數(shù)器2 啟動,該計數(shù)器設計為一個減法計數(shù)器,預設值為閾值,其借位輸出信號可產(chǎn)生高電平,取反后用作觸發(fā)器的清零端將fout置為低電平。計數(shù)器2 的實際作用是脈寬信號保持,在fin上升沿到來時,觸發(fā)器輸出fout信號將會有閾值乘以f0周期的延遲。為了保持脈沖信號的寬度和波形,計數(shù)器2將會延遲后再輸出清零信號,以保證fout輸出信號與輸入脈沖的脈寬基本一致。數(shù)字濾波單元仿真結果圖5 所示,d 為通過上位機設定的8 位最小脈寬閾值;f0為計數(shù)基準時鐘;頻率為50 MHz; fin為脈沖信號輸入;enable 為鎖存信號,fout為濾波后輸出信號。
由仿真結果可見該邏輯單元有效濾除了干擾脈沖信號。
對慣導產(chǎn)品的性能測試中,需要對慣導產(chǎn)品輸出脈沖進行實時計數(shù)。該計數(shù)過程不僅要對每1 s的輸出脈沖進行計數(shù),而且要對每5 ms 的輸出脈沖進行計數(shù),同時在讀取5 ms 計數(shù)值時不中斷計數(shù)器工作。在此設計了無縫計數(shù)電路對慣導產(chǎn)品的輸出進行計數(shù)。單路脈沖信號無縫計數(shù)電路如圖6所示。
使用74161 計數(shù)器和74374 鎖存器實現(xiàn)帶鎖存功能的16 位計數(shù)器。該計數(shù)器可以一直處于不間斷工作狀態(tài),每5 ms 的計數(shù)值最高可達65536,頻率最高可達13 MHz。對計數(shù)值的讀取是每5 ms的即時讀取,讀取過程中計數(shù)器正常計數(shù),因此實現(xiàn)對輸入脈沖的無縫計數(shù)。
該電路不會產(chǎn)生累積誤差,由于計數(shù)器工作期間始終無需清零,5 ms 間隔內(nèi)的計數(shù)值由微處理器將本次中斷讀取數(shù)值與上一次中斷讀取數(shù)值求差得到,而1 s 的計數(shù)值是將200 個5 ms 計數(shù)值疊加求得的,這樣就消除了每次清零可能帶來的±1 個計數(shù)誤差。
圖6 無縫計數(shù)電路Fig.6 Seamless counting circuit
用Verilog 語言,在FPGA 內(nèi)部設計數(shù)據(jù)傳輸協(xié)調(diào)控制狀態(tài)機模塊如圖7 所示,直接操作CY7C68013的FIFO 來完成讀寫控制。
圖7 狀態(tài)機模塊邏輯電路Fig.7 Logic circuit of state machine module
模塊中各引腳的功能如下:SLOE 為使能端;SLRD 為讀操作端;SLWR 為寫操作端;INPKTEND為主動發(fā)送操作端(當FIFO 上的數(shù)據(jù)小于規(guī)定大小,而又要強制上傳給PC 時使用);DATA_IN 為16位數(shù)據(jù)輸入總線;DATA_OUT 為16 位數(shù)據(jù)輸出總線;FLAGA 為FIFO空標志;FLAGB為FIFO滿標志;FIFO_ADR 實現(xiàn)對CY7C68013 中4 個大端點FIFO 的使能。IFCLK 可以引入外部時鐘(僅用于同步Slave FIFOs 模式)。FPGA 的引腳控制這些端口,達到對USB 端的存儲FIFO 進行操作的目的。
圖5 數(shù)字濾波電路仿真結果Fig.5 Simulation results of digital filter circuit
由于異步Slave FIFOs 模式的讀寫狀態(tài)簡單,穩(wěn)定性好,系統(tǒng)采用異步方式讀取FIFO。狀態(tài)機中實現(xiàn)異步Slave FIFO 寫操作的狀態(tài)轉移如圖8 所示。
圖8 異步Slave FIFOs 的狀態(tài)機轉換Fig.8 State machine transition of asynchronous Slave FIFOs
各狀態(tài)的功能如下:
IDLE 為空閑狀態(tài),什么都不做;
狀態(tài)1使FIFOADR[1:0]指向IN FIFO(即選擇CY68013 的4 個大數(shù)據(jù)量FIFO 中的1 個,固件程序已將此FIFO 配置為寫模式);
狀態(tài)2如果FIFO 滿標志為假(即FLAGC 引腳為高電平時),則進狀態(tài)3,否則在本狀態(tài)等待;
狀態(tài)3驅(qū)動數(shù)據(jù)到數(shù)據(jù)線上,使SLWR 有效(低電平),一個CLK_STATE 后再無效(高電平),以使FIFO 寫指針遞增,進狀態(tài)4;
狀態(tài)4如需傳輸更多的數(shù),返回狀態(tài)2,否則進狀態(tài)IDLE。
在現(xiàn)有實驗條件下,對系統(tǒng)的性能指標進行了測試。系統(tǒng)測試硬件搭建如圖9 所示。使用Keysight 33210A 任意波形發(fā)生器(精度為±20×10-6/a)對實驗系統(tǒng)精度測試,為方便計算誤差,設置為0.1 kHz~6 MHz 內(nèi)整數(shù)頻率點,信號發(fā)生器輸出頻率與系統(tǒng)測量所得頻率值對比結果見表1。
圖9 系統(tǒng)測試硬件Fig.9 System test hardware
表1 系統(tǒng)測量結果Tab.1 System measurement results
由表1 測量數(shù)據(jù)可知,系統(tǒng)可以獲得精度較高的頻率測量結果,相對誤差隨著頻率增大而減小,數(shù)據(jù)采集誤差符合系統(tǒng)設計標準。
復雜數(shù)?;旌舷到y(tǒng)設計是電子系統(tǒng)設計的重要內(nèi)容之一,模擬電路與數(shù)字電路、單元電路與系統(tǒng)電路的有機結合,可以培養(yǎng)學生分析問題、解決實際工程實踐問題的能力,它一直是電子系統(tǒng)設計教學中的短板。基于FPGA 的慣導姿態(tài)數(shù)據(jù)采集實驗系統(tǒng)在課程設計的成功實施,既可使學生將所學的理論知識與工程實踐相結合,系統(tǒng)地理解模擬與數(shù)字系統(tǒng)的理論知識,又可使學生掌握復雜數(shù)?;旌舷到y(tǒng)工程實踐知識,培養(yǎng)學生的工程實踐能力,達到工程教育認證對學生培養(yǎng)的要求。