一種高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)
4 CPLD在數(shù)據(jù)采集卡中的應(yīng)用
CPLD作為整個數(shù)據(jù)采集過程的控制核心,負(fù)責(zé)地址譯碼、多路開關(guān)選通、A/D轉(zhuǎn)換啟動、將轉(zhuǎn)換結(jié)果寫入FIFO以及兩片F(xiàn)IFO之間的切換等一系列操作。它的三個功能模塊分別為:地址譯碼模塊、多路開關(guān)控制模塊、A/D采樣及FIFO控制模塊。
4.1 地址譯碼模塊
該模塊實(shí)現(xiàn)了CPLD內(nèi)部與PC/104總線的接口單元。本數(shù)據(jù)采集卡是作為PC/104的標(biāo)準(zhǔn)外設(shè)進(jìn)行工作的。PC/104規(guī)定,外設(shè)的操作地址為A[9:0],在系統(tǒng)軟件設(shè)計(jì)中要防止地址沖突。PC/104中使用A0~A9地址位來表示I/O端口地址,即可有1 024個口地址,前512個供系統(tǒng)板使用,后512個供擴(kuò)充插槽使用,當(dāng)A9=O時(shí)表示系統(tǒng)板上的口地址;當(dāng)A9=1時(shí)表示擴(kuò)充插槽接口卡上的口地址。因此本數(shù)據(jù)采集板的基地址由A[9:4]來確定,偏移地址由地址線的A[3:O]確定,選擇該地址就意味著相應(yīng)的操作,CPLD對地址進(jìn)行譯碼后就產(chǎn)生相應(yīng)的控制。在Qu-artusⅡ上設(shè)計(jì)的地址譯碼模塊原理圖程序如圖4所示。
地址譯碼的工作過程為:在撥碼開關(guān)上手工設(shè)基地址,在CPLD內(nèi)部劃出一片74LS688地址比較器,比較CPU發(fā)出的基地址與手工設(shè)定的基地址是否一致,若不一致,則地址譯碼電路不工作,進(jìn)而整個數(shù)據(jù)采集板都不工作;若一致,則74LS688輸出低電平,使得偏移地址譯碼電路中的4-16譯碼器74LS154正常工作,在IOR,IOW信號的作用下產(chǎn)生各種控制信號,使數(shù)據(jù)采集板正常工作。
4.2 多路開關(guān)控制模塊
該模塊實(shí)現(xiàn)了對八選一多路選擇開關(guān)ADG508A的選通控制。通過控制使能引腳EN以及CH0~CH2引腳,可對多路開關(guān)的輸入通道進(jìn)行可編程選擇。PC/104CPU通過地址譯碼選中CSWE[2],并寫入數(shù)據(jù)D0~D7,就可以選擇不同的通道導(dǎo)通。在QuartusⅡ上設(shè)計(jì)的多路開關(guān)控制模塊原理圖程序如圖5所示。
4.3 A/D采樣及FIFO控制模塊
該模塊主要負(fù)責(zé)A/D芯片的轉(zhuǎn)換時(shí)序,實(shí)現(xiàn)對A/D采樣的合理控制,同時(shí)將轉(zhuǎn)換數(shù)據(jù)存入FIFO中,并且控制著兩片F(xiàn)IFO的輪流存儲,實(shí)現(xiàn)大量數(shù)據(jù)的采集。PC/104CPU通過地址譯碼選中CSWE[O],寫入數(shù)據(jù)D0~D7,將與門inst15打開,輸出端ENCODE1輸出100 MHz的時(shí)鐘信號,PWRDWN1端輸出為低電平,啟動A/D轉(zhuǎn)換,同時(shí),與門inst14被打開,WCLK1端輸出100 MHz時(shí)鐘,將轉(zhuǎn)換后的數(shù)據(jù)存入FIFO(1)中。選中CSRD[0],寫人數(shù)據(jù)D0~D7,將與門inst21打開,OE2端輸出低電平,使CY7C4261(2)輸出使能,RCLK2端輸出100 MHz的時(shí)鐘信號,將數(shù)據(jù)讀出。當(dāng)FIFO(1)存儲滿時(shí),CPLD控制由FIFO(2)來進(jìn)行存儲,同時(shí)將FIFO(1)中的數(shù)據(jù)讀出;當(dāng)FIFO(2)存儲滿時(shí),轉(zhuǎn)由FIFO(1)進(jìn)行存儲,同時(shí)將FIFO(2)中數(shù)據(jù)讀出。如此反復(fù),直至預(yù)定的延時(shí)時(shí)間止,實(shí)現(xiàn)了兩片F(xiàn)IFO的輪流存儲和讀取,進(jìn)而達(dá)到了采集大量數(shù)據(jù)的目的。另外,在每次采樣及向FIFO中存儲數(shù)據(jù)之前,都要求選通CSWE[5]或CSWE[6]將FIFO芯片復(fù)位,使其讀指針和寫指針都指向第一個物理存儲地址。在QuartusⅡ上設(shè)計(jì)的A/D采樣及FIFO控制模塊原理圖程序如圖6所示。
CPLD硬件控制邏輯設(shè)計(jì)的關(guān)鍵是分析各個器件的工作時(shí)序和采樣保持時(shí)間,A/D轉(zhuǎn)換時(shí)間以及數(shù)據(jù)存入FIFO的時(shí)間等。在設(shè)計(jì)的時(shí)序處理進(jìn)程中,要根據(jù)CPLD的工作頻率計(jì)算各個等待周期,等器件準(zhǔn)備好以后才能進(jìn)行下一個處理。
5 結(jié)語
采用CPLD和FIFO器件設(shè)計(jì)了一種基于PC/104總線的高速數(shù)據(jù)采集卡,它可以作為PC/104總線標(biāo)準(zhǔn)模件使用。該采集板上的大部分控制邏輯被集成到CPLD芯片中,大大減少了擴(kuò)展卡上的器件數(shù)量,同時(shí)降低了系統(tǒng)成本,提高了系統(tǒng)的可靠性。該數(shù)據(jù)采集板非常適合搭建高密度、小體積的便攜式測試設(shè)備,可廣泛應(yīng)用于武器控制系統(tǒng)的測試等多種場合,對控制系統(tǒng)的模擬量信號進(jìn)行快速、實(shí)時(shí)的數(shù)據(jù)采集和分析。
評論