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