數據采集是分析模擬信號量數據的有效方法。而實時顯示數據是自動化檢測系統的現實需求。在測試空空導彈導引頭的過程中,導引頭的響應信號包括內部二次電源信號和模擬量電壓信號。檢測過程中要求檢測系統實時顯示導引頭的工作狀態(tài),顯示二次電源和模擬量響應電壓信號,判斷導引頭性能,同時保證在非常情況下人為對導引頭做出應急處理,保護導引頭。對于模擬量電壓信號,通常采用模數轉換、事后數據標定的方法實現。根據現實需求,研制相應檢測系統可作為導引頭日常維護和修理的重要工具。這里介紹一種基于單片機和CPLD的實時數據采集顯示系統設計方案。
2 系統構成
該系統中待采集顯示電壓信號共16路,動態(tài)電壓范圍為-22~+27 V。由于這些電壓信號變化頻率較低,或者認為頻率無變化,且檢測系統只關心其電壓值,所以在低采樣率下就可滿足系統要求。根據需求,系統設計的采樣率即顯示刷新速率在1.56 k/s以上。
采用單片機80C196KB和可編程邏輯器件EPM7128SLC為核心控制器,以80C196KB內部集成A/D轉換器作為模數轉換器實現16路電壓信號的實時數據采集、顯示、控制。該系統總體設計結構框圖如圖1所示。
整個系統主要由信號預處理、信號選通、單片機采集、雙機數據傳輸以及數據處理顯示等模塊構成。其中,信號選通模塊由CPLD和多路模擬選擇器組成。
3 系統硬件電路設計
3.1 信號預處理電路
由于待采集電壓信號輸入動態(tài)范圍較寬,且極性各異,對于單片機A/D轉換器來說,需要調理到能夠采集的電壓范圍闈0~5 V,所以要統一調理采集信號,如圖2所示。
圖2中運放LM224和MC1556均采用雙電壓供電,以提高動態(tài)信號輸入范圍;電阻均采用精度為0.1%的精密型金屬膜電阻,以提高電壓轉換精度。
在二級電壓凋理過程中,MC1556同相輸人端采用穩(wěn)壓電路以減少長時間通電情況下溫度升高對系統產生的不良影響。南于電壓跟隨器具有輸入阻抗大和輸出驅動能力強的特點,故在預處理電路的輸入端和輸出端均采用電壓跟隨電路。
3.2 信號選通電路
ADG508A是一款8通道CMOS模擬多路選擇器,具有高速轉換速度和低內阻特性,通道切換具有防短路功能。在CPLD控制下,它可對采集信號進行有序通道切換,配合單片機進行數據采集。
EPM7128SLC是一款Ahera公司生產的CPLD,其容量為128個宏單元,采用硬件描述語言VHDL對CPLD編程設置實現信號的選通控制。首先編寫分頻器模塊對1 MHz晶體振蕩器進行20分頻,輸出2路相位相錯、周期為20 μs的矩形同步信號。其中一路信號經D觸發(fā)器進行2分頻,得到占空比50%、周期為40μs的方波信號;然后編寫信號選通控制模塊。此模塊根據方波信號和另一路同步信號循環(huán)輸出控制信號,兩模塊都在MuxPlus-II環(huán)境下開發(fā),CPLD控制信號時序仿真結果如圖3所示,其中,信號FRM和ROAD是單片機主程序運行的勤務信號;CS1和CS2是2片ADG508A的片選信號:A0、A1和A2則是ADG508A通道選通控制信號。
3.3 單片機采集電路
80C196KB是Intel公司生產的一款16位CMOS單片機,片內集成有8路A/D轉換器,該轉換器包括一個8通道多路模擬開關,采樣保持電路和10位A/D轉換器。由于該系統外部有多路選擇器,故內部無需通道轉換,采用一個ACH0通道即可完成數據采集。對于采用12 MHz晶振的單片機系統,完成一次A/D轉換需22μs。80C196KB的A/D轉換器采用逐次逼近的方法完成模擬量到數字量的轉換,基準電壓設定非常關鍵,內部阻容網絡將基準電壓Vref等分為1 024個階梯,每級為Vref/1 024 V。通過與基準電壓比較,可得到10位數據轉換結果,其中基準電壓的精度以及穩(wěn)定度直接影響到測量結果的絕對精度。因此在電路中Vref采用單獨電源供電并通過基準穩(wěn)壓源如LM136的5 V提高精度及穩(wěn)定度。
80C196KB通過判斷ROAD信號在其上升沿讀取上次A/D轉換結果,同時啟動A/D轉換器轉換下一路信號,該單片機用FRM信號作為非屏蔽中斷使計數器DXL歸零,主程序循環(huán)一次,保證對16路通道信號的時分復用采集。單片機80C196KB程序流程如圖4所示。
3.4 雙機數據傳輸
為達到采集數據的實時可控性,系統設計雙機通信接口作為單片機A/D轉換數據向計算機傳輸的通道。計算機采用WDM下的EPP模式通信,速度達500 KB/s~2 MB/s。使用雙端口RAM IDT7130作為主要元件,通過通信接口,單片機將A/D轉換數據存入雙端口RAM中,計算機則實時顯示從雙端口RAM中讀取的數據。單片機通過雙端口RAM IDT7130的A端口進行寫操作,計算機則通過B端口進行讀操作。握手信號由單片機通過對ROAD信號計數產生,二者可異步讀寫操作,實現數據交換。圖5為單片機與計算機接口電路。
4 系統軟件設計
4.1 數據標定
在給定Vref=5 V,設單片機采集端口輸入電壓為Vin與之相對應的A/D轉換數字量為X,則X=1 024 Vin/5V。對于線性變換預處理電路可采用Y=5KX/1 024,其中,Y表示電壓實測值,X表示與Y對應的A/D轉換值,K為放大器增益。令K=Ymax/5 V,其中Ymax表示待測量電壓的最大值。為保證采集精度,應先計算Ymax,以保持足夠的A/D轉換有效數字。以待采集電壓0~27 V為例,預處理電路增益為27/5=5.4。
4.2 實時顯示
讀數及顯示軟件在VC++6.0環(huán)境下編寫,使用對話框模式,并口采用WDM驅動方式。軟件運行時直接打開驅動設備,同時使用AfxBeginThread()函數生成一個新線程,其控制線程函數實時更新讀取并顯示數據。由于單片機采用1O位A/D轉換器,所以一次轉換結果分兩次傳輸,分別為高位和低位傳輸。并口數據傳輸也采用8位方式。上位機在讀取數據后,2組數據經移位、加法運算后得出一個完整數據,標定后在計算機界面顯示。
5 結論
實踐證明,該實時采集顯示系統完全滿足導引頭的檢測需求。采集電壓精度可達mV級,刷新率在1.56 k/s以上。該系統采用單片機和CPLD技術,電路設計結構簡單,實際應用可靠性高、通用性強、使用靈活,且采集通道具有擴展性。但在電路設計過程中應注意:由于系統既有模擬電路又有數字電路,所以合理布線對系統至關重要,應采取合理布線措施以保證基準地線的穩(wěn)定性,從而提高采集精度。