摘 要: 針對多種采集信號類型,設(shè)計了一種采用CPLD實現(xiàn)信號采集控制、信號處理、通訊及輸出控制等功能的復合數(shù)據(jù)采集" title="數(shù)據(jù)采集">數(shù)據(jù)采集控制板,并分析了其相關(guān)應(yīng)用性能。
關(guān)鍵詞: CPLD EPP接口 編碼器 數(shù)據(jù)采集
在需要采集多路模擬信號、開關(guān)信號、頻率(計數(shù))信號以及編碼器信號等的數(shù)據(jù)采集應(yīng)用中,利用通用板卡構(gòu)成計算機測控系統(tǒng)是可行的,但對于產(chǎn)品的批量應(yīng)用,其成本與綜合性能不能令人滿意。技術(shù)成熟的CPLD芯片的應(yīng)用,可以很好地將邏輯控制、數(shù)字信號處理等功能集于一身,使以往需要利用多塊信號板卡才能完成的任務(wù)整合于同一采集控制器中,從而有效地提高測控系統(tǒng)的可靠性,降低測控系統(tǒng)的實現(xiàn)成本。
本文設(shè)計一種基于CPLD的數(shù)據(jù)采集控制板。它能實現(xiàn)信號采集與控制、信號處理、通訊及輸出控制等功能。
1 總體設(shè)計方案
本專用數(shù)據(jù)采集控制板利用CPLD作為主控制器,統(tǒng)一協(xié)調(diào)通道切換與數(shù)字信號處理、實現(xiàn)數(shù)據(jù)采集與接口傳輸邏輯控制。該數(shù)據(jù)采集控制板共有四種類型的信號輸入和一種開關(guān)信號量輸出。圖1給出其基本硬件模塊組成。
利用CPLD的資源和結(jié)構(gòu)特點是本設(shè)計的核心。為提高編碼器輸入信號" title="輸入信號">輸入信號的分辨力,配套設(shè)計一個四倍頻電路,并在通道后端設(shè)計一個脈沖靜態(tài)計數(shù)電路,使輸入信號轉(zhuǎn)換為8bit信號掛接到采集板總線上。八路模擬輸入信號主要依靠CPLD實現(xiàn)通道切換和A/D" title="A/D">A/D采樣,采樣數(shù)據(jù)也以8bit信號并行進入總線。考慮到提高計數(shù)精度的要求,對兩路頻率輸入信號設(shè)計了一個動態(tài)計數(shù)電路,使計數(shù)值通過總線讀出。I/O" title="I/O">I/O切換控制、EPP接口電路等都按一定的邏輯要求采用同一CPLD元件來實現(xiàn)。如此可使硬件電路十分簡單,并有利于上位機編程實現(xiàn)。
2 數(shù)據(jù)接口
根據(jù)IEEE1284標準,在標準并行口(SPP)、增強并行口(EPP)和擴展并行口(ECP)三種模式中,EPP模式既具有雙向數(shù)據(jù)傳輸功能,又具有較高的數(shù)據(jù)傳輸能力,且編程操作相對容易,最適合在數(shù)據(jù)采集系統(tǒng)中使用[1]。
從硬件設(shè)計角度考慮,EPP接口的主要功能之一是將采集到的數(shù)據(jù)上傳給計算機或?qū)㈤_關(guān)控制命令下載到采集控制板(數(shù)據(jù)流對應(yīng)8bit數(shù)據(jù)端口);之二是實現(xiàn)硬件接口之間的信號通訊握手(控制狀態(tài)對應(yīng)其它I/O端口)。EPP協(xié)議定義了四種數(shù)據(jù)傳輸基本操作:數(shù)據(jù)讀、數(shù)據(jù)寫、地址讀、地址寫。工作時首先寫入I/O鎖存地址即模塊操作的I/O地址,然后進行相應(yīng)的讀出或?qū)懭氩僮?。如果不需I/O地址變化,那么就不再進行I/O地址鎖存操作。EPP模式下一共定義17根信號線,除8根雙向地址線和數(shù)據(jù)復用線外,還有輸出控制信號線WRITE、DSTROBE、ASTROBE、INIT,其中WRITE、DSTROBE和ASTROBE用于表示數(shù)據(jù)讀寫操作。WRITE為低時表示正在進行寫操作,DSTROBE為低表示進行數(shù)據(jù)操作,而ASTROBE為低則表示進行地址操作。EPP的INIT信號用來復位打印機,本設(shè)計用來預置光電編碼器的初始計數(shù)值。另外還有五根狀態(tài)信號線。WAIT信號由外設(shè)發(fā)出,高電平表示正在進行讀寫操作,低電平表示操作完成。但本設(shè)計沒有利用該信號,因為前面三個讀寫信號已完全能滿足要求。MAX197數(shù)據(jù)轉(zhuǎn)換結(jié)束信號EOC連接到并口的SELECT線上,主機查詢到SELECT線為低時,表示一次A/D轉(zhuǎn)換結(jié)束,可以讀取轉(zhuǎn)換結(jié)果。其余三根狀態(tài)線空置作為備用。 表1給出了IEEE1284協(xié)議EPP模式下的管腳定義。
根據(jù)IEEE1284標準對EPP模式的地址、數(shù)據(jù)讀寫操作的規(guī)定,可采用圖2的邏輯結(jié)構(gòu)分別實現(xiàn)地址寫、數(shù)據(jù)寫和數(shù)據(jù)讀。在圖2中,輸入信號中STB表示寫信號,ASTB表示地址寫信號,DSTB表示數(shù)據(jù)寫信號;輸出信號中Add_WR表示地址寫信號、高電平有效,Add_WRN表示地址寫信號、低電平有效,Data_WR表示數(shù)據(jù)寫信號、高電平有效、Data_WRN表示數(shù)據(jù)寫信號、低電平有效;Data_RD表示數(shù)據(jù)讀信號。如此設(shè)計的目的是使該接口能方便地適應(yīng)各種邏輯器件的操作要求。圖3給出了采用MAXPLUS軟件對上述邏輯信號進行仿真的操作時序波形。
EPP模式可在上位機BIOS中設(shè)置或通過寫ECR寄存器直接設(shè)置(并行適配器基地址為0X378H,I/O端口地址為77AH)。
3 編碼器信號處理
對于編碼器輸入信號,針對增量式光電編碼器的輸出具有A相、B相方波正交信號,而且二者相序取決于編碼器的正反轉(zhuǎn)方向,設(shè)計了一個四倍頻及判向電路,如圖4所示。
在圖4中,CLK信號來自獨立振蕩源,其頻率高于編碼器最大輸出頻率四倍以上,但也不宜過高,以免導致CPLD內(nèi)部結(jié)構(gòu)中信號競爭等問題。INA和INB分別為編碼器輸入的A相信號和B相信號,CNT_UP和CNT_DN分別為輸出的正轉(zhuǎn)倍頻信號和反轉(zhuǎn)倍頻信號。為保證編碼器處于任何轉(zhuǎn)角位置都能可靠地讀出數(shù)據(jù),編碼器倍頻信號最終以16bit靜態(tài)計數(shù)碼方式輸出,CNT_UP和CNT_DN分別作為后續(xù)靜態(tài)計數(shù)電路的“加”和“減”計數(shù)輸入信號端。在限定轉(zhuǎn)動角度≤6×360°情況下,對于16bit計數(shù)碼,計數(shù)電路允許的最大計數(shù)值為65536,計數(shù)值可以按高低八位分兩次讀出。為提高編碼器工作可靠性,也可以考慮進行格雷碼轉(zhuǎn)換。圖5給出的是圖4電路的信號仿真波形。
4 頻率測量
對于頻率輸入信號,采用等精度測頻方法測量頻率。這種方法在實際閘門時間為被測信號頻率整數(shù)倍的條件下,對被測信號計數(shù)時產(chǎn)生的±1個字誤差可以完全消除掉[3],并可使整個頻率區(qū)域保持恒定的測試精度。
圖6給出了等精度測量原理圖,其測量原理為:首先給出閘門開啟信號(預置門控信號SWITCH的上升沿),此時計數(shù)器CNT1和CNT2并不開始計數(shù),而是等到被測信號SIGIN的上升沿到來時,計數(shù)器才開始真正計數(shù)。經(jīng)過一段時間后,預置閘門關(guān)閉信號(門控信號SWITCH的下降沿)到來時,計數(shù)器并不立即停止計數(shù),而是等到被測信號SIGIN的上升沿到來時才結(jié)束計數(shù),完成一次測量過程。此時可分別讀出計數(shù)器CNT1和CNT2的計數(shù)值OUT1和OUT2,用被測信號SIGIN的計數(shù)值OUT2除以標準信號CLK的計數(shù)值OUT1,再乘以標準信號CLK的頻率值就得到了被測信號SIGIN的頻率值。
使用時為提高測量精度,基準信號CLK可以采用高精度的時鐘源,因?qū)r鐘源和被測信號同步計數(shù),計數(shù)時間長度不會影響計算結(jié)果。圖7給出了等精度測頻法信號仿真波形圖。
5 A/D轉(zhuǎn)換器與I/O切換控制
對于模擬輸入信號,采用12bit的MAX197作為A/D信號轉(zhuǎn)換器。該控制字" title="控制字">控制字器件工作的基本過程是:首先由地址總線選通MAX197,然后通過數(shù)據(jù)總線向MAX197內(nèi)部寄存器寫入模擬通道控制字。該控制字決定了所選的通道號、通道輸入電壓范圍、極性以及內(nèi)部或外部觸發(fā)采集方式等。例如,輸入電壓范圍為雙極性、內(nèi)部觸發(fā)采集方式、第一通道,則應(yīng)寫入16進制數(shù)48H,而對第八通道則寫入4FH??刂谱謱懭牒?,MAX197立即啟動通道轉(zhuǎn)換,經(jīng)過約10μs后轉(zhuǎn)換完畢。轉(zhuǎn)換結(jié)果放置在數(shù)據(jù)總線上,首先將其高低位切換腳HBEN置為低,此時數(shù)據(jù)總線先讀取結(jié)果的低八位,再置HBEN為高,則結(jié)果的高四位放在MAX197的D0~D3口上。同時置腳INT為低,通知控制器轉(zhuǎn)換完成。MAX197的轉(zhuǎn)換結(jié)果用補碼表示,最高位為符號位。
本系統(tǒng)中還具有八路開關(guān)量輸入輸出功能切換控制。這兩種功能分別由CPLD內(nèi)部的74244和74373實現(xiàn)。接口邏輯如圖8所示。外部接口通過光耦隔離輸入輸出。開關(guān)量寫入的順序是先由地址總線選通74373,然后寫入相應(yīng)的命令字。數(shù)字量讀入與此類似。具體控制信號由 EPP總線讀寫邏輯給出。
?
6 驅(qū)動軟件實現(xiàn)
考慮到NI公司LabView環(huán)境圖形化編程簡便、易于實現(xiàn)等特點,通過設(shè)計動態(tài)鏈接函數(shù)庫(DLL)與直接端口操作相結(jié)合實現(xiàn)采集板硬件驅(qū)動。在程序編制過程中,先利用VC++生成DLL,然后在LabView中使用CLF節(jié)點調(diào)用DLL。對于直接端口操作,使用LabView中的“In Port”和“Out Port”節(jié)點,對端口實現(xiàn)操作。當然,為使用方便起見,也可以將I/O切換控制、編碼器、A/D數(shù)據(jù)采集、計數(shù)器等硬件特有功能設(shè)計成專用模塊供LabView直接圖形化調(diào)用。
采集控制板的上述硬件模塊方案設(shè)計,可以利用適當規(guī)模的CPLD實現(xiàn)。此舉除了成本優(yōu)勢外,還有體積減小、硬件集成度提高等優(yōu)點,也為提高采集器可靠性創(chuàng)造了條件。CPLD的各種邏輯功能設(shè)計,由于有功能強大的仿真軟件工具,設(shè)計過程的快速高效也不言而喻。上述設(shè)計已經(jīng)在其實用測控設(shè)備中投入應(yīng)用,在無板載FIFO情況下,A/D速度可以達到40kHz以上;有板載FIFO情況下,A/D速度可以達到A/D采集元件標稱上限。EPP端口完全能滿足板載功能模塊的各類數(shù)據(jù)傳輸要求。通過現(xiàn)場反饋的情況來看,采集控制器本身的工業(yè)環(huán)境抗干擾性能和運行穩(wěn)定性均表現(xiàn)良好。
參考文獻
1 陳培玉,闕沛文. EPP并口與ADSP2181 DSP的接口設(shè)計[J]. 電測與儀表, 2003;40(11)
2 張 斌,姚英學,陳朔東. 復合式光電編碼器信號處理電路的設(shè)計. [J ].機械工程師,2003;(10)
3 侯俊勇. 高速高精度頻率測量系統(tǒng)的CPLD實現(xiàn)[J]. 儀器儀表學報,2003;24(z2)
3 張志明,李蓉艷,王 磊. 等精度頻率信號采集測試系統(tǒng)[J].儀器儀表學報,2003;23(z1)
4 林 凱,何 川,毛樂山. 基于LabVIEW的多通道振動測試與分析系統(tǒng). [J ]. 清華大學學報(自然科學版),2003;43(5)