王 劍
(長江大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,湖北 荊州434023)
數(shù)據(jù)采集在測(cè)控領(lǐng)域里有廣泛的應(yīng)用,它已成為計(jì)算機(jī)測(cè)控系統(tǒng)的一個(gè)重要的環(huán)節(jié)。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中,通常采用單片機(jī)或DSP 作為主控制器來控制ADC、 存儲(chǔ)器及其他相關(guān)的外圍電路來工作[1]。 但是這些傳統(tǒng)的設(shè)計(jì)中都存在著一些不足,單片機(jī)的時(shí)鐘頻率較低且通過軟件編程來實(shí)現(xiàn)數(shù)據(jù)采集,難以實(shí)現(xiàn)高速、高性能、多通道數(shù)據(jù)采集系統(tǒng)的要求;DSP 雖然速度快, 但是它更擅長處理復(fù)雜的數(shù)學(xué)運(yùn)算,對(duì)于數(shù)采系統(tǒng)要求的簡單高速的讀寫操作來說,是一種資源的浪費(fèi)。 而FPGA(現(xiàn)場(chǎng)可編程門陣列)在高速數(shù)據(jù)采集上具有更大的優(yōu)點(diǎn),FPGA 體積小、功耗低、時(shí)鐘頻率高、內(nèi)部延時(shí)小、全部控制邏輯由硬件完成,另外編程配置靈活、開發(fā)周期短、利用硬件描述語言來編程,可實(shí)現(xiàn)程序的并行執(zhí)行、這將會(huì)大大提高系統(tǒng)的性能[2]。
在設(shè)計(jì)電路時(shí),可以有異步電路和同步電路兩種實(shí)現(xiàn)方法。
異步電路 使用組合邏輯電路實(shí)現(xiàn),沒有統(tǒng)一的時(shí)鐘信號(hào),容易產(chǎn)生毛刺和競(jìng)爭(zhēng)冒險(xiǎn);
同步電路 使用組合邏輯電路和觸發(fā)器實(shí)現(xiàn)電路功能,主要信號(hào)和輸出信號(hào)都是由時(shí)鐘驅(qū)動(dòng)觸發(fā)器產(chǎn)生,能夠避免毛刺,信號(hào)穩(wěn)定。
因此本系統(tǒng)選擇同步技術(shù)的FPGA 作為高速多路同步數(shù)據(jù)采集系統(tǒng)的控制核心。
采集系統(tǒng)上電后,由靜態(tài)存儲(chǔ)器EPC1 將固化在其中的數(shù)字邏輯電路映射到FPGA 器件EP2C5T144C8 中, 從而使FPGA 器件EP2C5T144C8 成為真正意義上的控制核心。 然后FPGA 控制模擬選擇開關(guān)進(jìn)行通道選擇,并控制8 位高速模數(shù)轉(zhuǎn)換器TLC549 進(jìn)行模擬電壓的采集,將采集到的實(shí)時(shí)數(shù)據(jù)存儲(chǔ)到外置RAM 中,然后將實(shí)時(shí)數(shù)據(jù)讀取出來,通過串口傳送給上位機(jī),數(shù)據(jù)也能通過數(shù)碼管實(shí)時(shí)顯示。 圖1 是系統(tǒng)總體硬件結(jié)構(gòu)框圖。
圖1 系統(tǒng)總體結(jié)構(gòu)
由于本系統(tǒng)采集通道數(shù)較多,實(shí)時(shí)性和同步性要求較高,要求提供的時(shí)鐘頻率高, 內(nèi)部延時(shí)小, 因此系統(tǒng)選擇FPGA 芯片EP2C5T144C8作為主控制芯片, 該芯片具有40 萬系統(tǒng)門、8064 個(gè)邏輯單元內(nèi)嵌18K位塊RAM, 包含4 個(gè)時(shí)鐘管理模塊和8 個(gè)全局時(shí)鐘網(wǎng)絡(luò), 配置芯片(EPCS1),有源晶振,下載調(diào)試接口,電源芯片:3.3V、1.2V AS、JTAG 調(diào)試接口50 MHz 最大支持264 個(gè)用戶I/O。 這些豐富的片上資源在加上其靈活的編程方式使得該芯片成為最適合的選擇[3]。
本數(shù)據(jù)采集系統(tǒng)主要工作在實(shí)際測(cè)控領(lǐng)域的現(xiàn)場(chǎng)層次,而工作現(xiàn)場(chǎng)具有環(huán)境復(fù)雜,傳感器的種類,特性亦復(fù)雜,多路采集的數(shù)據(jù)具有頻率跨度、幅度閾值較大、精度要求不同的多種復(fù)雜特點(diǎn)。因此本系統(tǒng)從功耗、成本、精度等多方面考慮選擇TLC549 芯片作為模數(shù)轉(zhuǎn)換控制芯片。該芯片是以開關(guān)電容逐次逼近原理工作的8 位串行模數(shù)轉(zhuǎn)換芯片,具有多個(gè)增強(qiáng)型串口,4MHz 片內(nèi)時(shí)鐘,最高轉(zhuǎn)換速率為40000 次/s,轉(zhuǎn)換時(shí)間最長為17μs,功耗僅為6 毫瓦。
圖2 AD 控制流程
根據(jù)以上的設(shè)計(jì)思想,整個(gè)FPGA 邏輯模塊劃分為:時(shí)鐘單元、采樣控制單元、串行傳輸模塊、通道選擇單元、存儲(chǔ)單元、結(jié)果實(shí)時(shí)顯示單元。 下面具體給出各模塊的設(shè)計(jì)過程。
時(shí)鐘單元。時(shí)鐘單元是提供時(shí)序工作節(jié)拍和同步信號(hào)序列的發(fā)生器。本設(shè)計(jì)采用了50MHz 的頻率輸出,以保證測(cè)控中同步脈沖的實(shí)時(shí)性。同時(shí),選擇基于時(shí)鐘觸發(fā)沿設(shè)計(jì),可以保證時(shí)鐘信號(hào)具有很好的延時(shí)及抖動(dòng)控制,根據(jù)該芯片自身的特性可以選擇自身時(shí)鐘資源即可完成設(shè)計(jì)要求。
采樣控制單元。 該單元控制TLC549 芯片的數(shù)據(jù)采樣、保持、模數(shù)轉(zhuǎn)換任務(wù)。 同步采樣脈沖到來時(shí)刻,根據(jù)片選信號(hào)CS 的控制,芯片進(jìn)行數(shù)據(jù)采樣、保持、模數(shù)轉(zhuǎn)換。
串行傳輸單元。該單元利用芯片提供的高速增強(qiáng)型串口與上位工控機(jī)進(jìn)行數(shù)據(jù)傳輸。
通道選擇單元。 該單元是多路數(shù)據(jù)采集的通道仲裁者。 并將尋址信號(hào)傳送至存儲(chǔ)單元處。
存儲(chǔ)單元。該單元完成數(shù)據(jù)的暫存,管理等功能,采用“乒乓原理”進(jìn)行大批量數(shù)據(jù)的寫入,讀出及管理功能,系統(tǒng)采用的雙口RAM 是在1 個(gè)SRAM 存儲(chǔ)器上具有兩套完全獨(dú)立的數(shù)據(jù)線、地址線和讀寫控制線,并允許兩個(gè)獨(dú)立的系統(tǒng)同時(shí)對(duì)其進(jìn)行隨機(jī)性訪問的存儲(chǔ)器,即共享式多端口存儲(chǔ)器。雙口RAM 最大的特點(diǎn)是存儲(chǔ)數(shù)據(jù)共享。1 個(gè)存儲(chǔ)器配備兩套獨(dú)立的地址、數(shù)據(jù)和控制線,允許兩個(gè)獨(dú)立的CPU 或控制器同時(shí)異步地訪問存儲(chǔ)單元。 因?yàn)閿?shù)據(jù)共享。 則必須具有訪問仲裁控制。 內(nèi)部仲裁邏輯控制提供以下功能:對(duì)同一地址單元訪問的時(shí)序控制;存儲(chǔ)單元數(shù)據(jù)塊的訪問權(quán)限分配:信令交換邏輯(例如中斷信號(hào))等。 雙口RAM 可用于提高RAM 的吞吐率,適用于實(shí)時(shí)數(shù)據(jù)緩存。
圖3 是采樣模塊與串口傳輸模塊的設(shè)計(jì)原理圖。
圖3 采樣模塊和串口傳輸模塊
圖4 EP2C5T144C8 管腳分配圖
本設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法, 采用VHDL 來分別設(shè)計(jì)頂層模塊和各底層模塊,該語言支持自頂向下和基于庫的設(shè)計(jì)方法,并且電路仿真和驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性。下面以采樣控制模塊為例來說明其控制算法。
本文完成高速、多通道的數(shù)據(jù)采集系統(tǒng)的FPGA 設(shè)計(jì)。 利用EDA工具和語言對(duì)FPGA 行設(shè)計(jì),并在EDA 軟件中進(jìn)行系統(tǒng)仿真和驗(yàn)證。由FPGA 在線編程的特點(diǎn)可以依據(jù)現(xiàn)場(chǎng)的具體情況,對(duì)FPGA 的內(nèi)部配置進(jìn)行修改,進(jìn)一步增加了系統(tǒng)應(yīng)用的靈活性,因此該系統(tǒng)是一種比較理想的實(shí)時(shí)高速數(shù)據(jù)采集方案。 從實(shí)際成品測(cè)試效果來看,基于EP2C5T144C8 的高速多路數(shù)據(jù)采集系統(tǒng)的具有多路同時(shí)采集處理、運(yùn)算速度高、功耗低延時(shí)小等優(yōu)點(diǎn),十分適合工業(yè)測(cè)控領(lǐng)域數(shù)據(jù)采集的要求。
[1]徐海軍,葉衛(wèi)東.FPGA 在高性能數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].計(jì)測(cè)技術(shù),2005,1(25):40-43.
[2]張偉,等.基于FPGA 的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電力情報(bào),2002,4(3):45-49.
[3]基于FPGA 的高速多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)工程,2007,4(7):247-248.
[4]王劍.可變頻幅相一體化測(cè)量系統(tǒng)研究[J].工業(yè)控制計(jì)算機(jī),2011,11(5):78-81.
[5]王劍.多點(diǎn)采樣的幅度和相位自適應(yīng)測(cè)量方法研究[J].長江大學(xué)學(xué)報(bào):自然科學(xué)版,2008,15(4):78-81.
[6]王劍.基于ZigBee 技術(shù)的遠(yuǎn)程水質(zhì)監(jiān)測(cè)系統(tǒng)關(guān)鍵技術(shù)的研究與實(shí)現(xiàn)[J].節(jié)水灌溉,2011,6:75-77.