基于FPGA 的數(shù)據(jù)采集系統(tǒng)設(shè)計
摘要:結(jié)合高速FPGA的特點, 設(shè)計了一套數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)以FPGA作為采集系統(tǒng)的核心, 應(yīng)用FPGA的內(nèi)部邏輯實現(xiàn)時序控制,對數(shù)據(jù)進(jìn)行采集、顯示,并將處理后的結(jié)果通過USB口傳輸?shù)缴衔粰C。該系統(tǒng)具有電路結(jié)構(gòu)簡單、功耗低等優(yōu)點, 可用于溫度、壓力等傳感器信息以及電壓、電流的數(shù)據(jù)采集。
1 引言
在科學(xué)技術(shù)研究和工業(yè)生產(chǎn)的各行業(yè)中, 常常需要對各種數(shù)據(jù)進(jìn)行采集, 如液位、溫度、 壓力、頻率等信息的采集。隨著數(shù)字技術(shù)的發(fā)展, 一些高性能的FPGA (Field Programmable Gate Array)和高速的A/D 應(yīng)用于數(shù)據(jù)采集系統(tǒng)中, 大大提高了系統(tǒng)的測量精度、數(shù)據(jù)采集處 理速度、數(shù)據(jù)傳輸速度等。本文設(shè)計了一種應(yīng)用EP1K10TC100 FPGA 和單片機的數(shù)據(jù)采集 系統(tǒng)。該系統(tǒng)具有數(shù)據(jù)采集速度高、功耗低、數(shù)據(jù)傳輸方便等優(yōu)點。
2 設(shè)計設(shè)計
基于 FPGA 的數(shù)據(jù)采集系統(tǒng)的總體功能模塊如下圖1 所示。系統(tǒng)有由FPGA、串行被動 配置模塊、USB 通信模塊、電源模塊、顯示模塊、模數(shù)轉(zhuǎn)換模塊、數(shù)模轉(zhuǎn)換模塊等幾個模 塊組成。
主控芯片采用ACEX1K 系列的EP1K10TC100-3。ACEX 系列是當(dāng)今Altera CPLD 中應(yīng) 用前景最好的器件系列之一[1,2],該系列的FPGA 由邏輯陣列塊LAB(Logic array block)、 嵌入式陣列塊EAB(embedded array block)、快速互聯(lián)以及IO 單元構(gòu)成,每個邏輯陣列塊 包含8 個邏輯單元LE(logic element)和一個局部互聯(lián)。每個邏輯單元則由一個4 輸入查找 表(LUT)、一個可編程觸發(fā)器、快速進(jìn)位鏈、級連鏈組成,多個LAB 和多個EAB 則可通過快速通道互相連接[3]。EAB 是ACEX 系列器件在結(jié)構(gòu)設(shè)計上的一個重要部件,他是輸入 端口和輸出端口都帶有觸發(fā)器的一種靈活的RAM 塊,其主要功能是實現(xiàn)一些規(guī)模不太大的 FIFO、ROM、RAM 和雙端口RAM 等。
3 系統(tǒng)硬件設(shè)計與實現(xiàn)
3.1 數(shù)據(jù)采集模塊
系統(tǒng)數(shù)據(jù)采集采用DAC0832。ADC0832 是美國國家半導(dǎo)體公司生產(chǎn)的一種8 位分辨 率、雙通道A/D 轉(zhuǎn)換芯片,最高分辨可達(dá)256 級,可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其內(nèi) 部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V 之間。芯片轉(zhuǎn)換時間僅為 32μS,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗,以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強。獨 立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。通過控制數(shù)據(jù)輸入端,可以 輕易的實現(xiàn)通道功能的選擇。
FPGA 的 I/O 口直接與DAC0832 連接[4],通過VHDL 語言配置FPGA 芯片,以達(dá)到對 DAC0832 數(shù)模轉(zhuǎn)換的時序控制。ADC0809 與FPGA 的連接電路比較簡單,只要把控制引腳 和數(shù)據(jù)輸出引腳連接到 I/O 口上。
3.2 串行被動配置模塊
因為基于SRAM 工藝FPGA 存在掉電易失性特點,所以配置模塊的主要是在每次上電 后對FPGA 進(jìn)行重新配置[4]。編程文件可以放在通用程序存儲器中, 在FLEX 器件上電后, 由芯片外部控制器自動地從通用存儲器中讀出編程文件并送到FLEX 器件進(jìn)行配置, 數(shù)據(jù)傳 送方式可以為串行,也可以為并行。被動串行(PS)配置模式的配置接口連接到芯片的5 個 引腳,分別為:nSTATUS、nCONFIG、CONF_DONE、DCLK、DATA0。 ICR 電路原理如圖2 所示。
ICR 控制電路的工作過程為:經(jīng)MAXPLUS II 編譯生產(chǎn)的配置文件(.sof)通過格式轉(zhuǎn)換 成為 (.rbf)。然后,通過PC 機的串行通信口,經(jīng)AT89C2051 單片機控制存儲在AT24C256 中。單片機再根據(jù)系統(tǒng)的要求,通過P1.2、P1.3、P1.4、P3.0 和P3.1 等5 個I/O 口,將其存 儲在AT24C256 中的配置數(shù)據(jù)下載到電路中的FPGA 器件中去。
3.3 USB 通信模塊
USB 接口芯片采用ISP1581。該芯片全面符合USB2.0 規(guī)范,具有高速的并行通用接 口,可在高速模式下工作,理論最高傳輸速度達(dá)到480Mbps[5]。除了控制端點外,ISP1581 還 有7 個輸入( IN) 端點和7 個輸出( OUT)端點。每個端點可以靈活配置數(shù)據(jù)傳輸方式以及數(shù) 據(jù)緩存區(qū)( FIFO) 的大小, 端點FIFO 最大容量可以達(dá)到2KB。ISP1581 芯片在配置枚舉時 需要單片機固件的支持, 一旦正確完成了配置和驅(qū)動加載, 單片機對于ISP1581 芯片就如同 普通存儲器一樣可以進(jìn)行讀寫操作, 以發(fā)送或接收數(shù)據(jù)。
3.4 顯示模塊
LED 采用四位共陽極數(shù)碼管顯示。共陽極四位一體數(shù)碼管采用動態(tài)掃描工作方式,在 數(shù)碼管中每一位的字段位a、b、c、d、e、f、g 和dp 分別連接在一起,其工作原理與共陰 極數(shù)碼管工作原理一致,只不過共陽極輸入數(shù)碼管的發(fā)光電平(有效電平)是0,和共陰極 數(shù)碼管相反。在數(shù)碼管顯示電路中運用了一個驅(qū)動芯片74LS47,運用這個驅(qū)動主要解決如 下幾個問題:(1)電平正負(fù)轉(zhuǎn)換,(2)譯碼,可以節(jié)約I/O 口的占用。74 LS47 接受四位BCD 碼輸入,并通過7 個與/或門譯碼后輸出,用于驅(qū)動數(shù)碼管,其輸出的低電平驅(qū)動共陽極數(shù) 碼管,低電平輸出電流在24mA 以上。
3.5 電源模塊
該設(shè)計中內(nèi)核電壓和I/O 口電壓都采用2.5V.因為該芯片對電源要求很嚴(yán)格,所以通過 穩(wěn)壓塊來實現(xiàn)電源轉(zhuǎn)換。在該電路中通過一片1117-2.5 穩(wěn)壓塊由5V 轉(zhuǎn)化而來。電路連接便 捷簡單,輸出電流可以達(dá)到1A,基本上能滿足該系統(tǒng)的需求。
4 被動串行配置程序設(shè)計
PS 配置方式的時序圖如圖3 所示。
配置前必須先設(shè)置該芯片EP1K10TC100-3 上的下載模式選擇引腳MSEL1、MSEL0。 設(shè)置方式:當(dāng)MSEL1=0,MSEL0=0 時系統(tǒng)為PS 或AS 模式當(dāng)MSEL1=1, MSEL0=0 時系統(tǒng)為PPS 模式,當(dāng)MSEL1=1,MSEL0=1 時系統(tǒng)為PPA 模式。在這里設(shè)置成使MSEL1 =0、MSEL0=0 在PS 配置過程中:當(dāng)nCONFIG 產(chǎn)生下降沿脈沖時啟動配置過程,在DCLK 上升沿, 將數(shù)據(jù)移入目標(biāo)芯片中。
在配置過程中,系統(tǒng)需要實時監(jiān)測,一旦出錯,nSTATUS 將被拉 低,系統(tǒng)識別到這個信號后,立即重新啟動配置過程。配置數(shù)據(jù)全部正確地移入目標(biāo)芯片內(nèi) 部后,CONF_DONE 信號跳變?yōu)楦?,此后,DCLK 必須提供幾個周期的時鐘(具體周期數(shù) 與DCLK 的頻率有關(guān)),確保目標(biāo)芯片被正確初始化,進(jìn)入用戶工作模式。配置流程圖如圖 4 所示:
圖4 被動串行配置流程圖
5 總結(jié):
本文創(chuàng)新點: 系統(tǒng)采用ACEX1K 系列的EP1K10TC100-3 FPGA 作為控制和處理的核心, 簡化了系統(tǒng)的硬件設(shè)計, 具有功耗低、速度快等優(yōu)點;采用基于微控制器的FPGA 器件的 ICR 控制系統(tǒng),具有線路結(jié)構(gòu)簡單、開發(fā)容易、體積小、成本低的優(yōu)點;采用USB 與上位 機通信,代替?zhèn)鹘y(tǒng)的串口數(shù)據(jù)傳輸, 提高了數(shù)據(jù)傳輸速率和可擴展性,而且USB 可以總線 供電,在數(shù)據(jù)采集系統(tǒng)中耗電量小。
參考文獻(xiàn):
[1].ACEX1K datasheethttp://www.dzsc.com/datasheet/ACEX1K+_1307867.html.
[2].EP1K10TC100-3datasheethttp://www.dzsc.com/datasheet/EP1K10TC100-3_2529519.html.
[3].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[4].DAC0832datasheethttp://www.dzsc.com/datasheet/DAC0832_253651.html.
[5].ADC0832 datasheethttp://www.dzsc.com/datasheet/ADC0832+_123000.html.
[6].ADC0809 datasheethttp://www.dzsc.com/datasheet/ADC0809+_123186.html.
[7].PC datasheethttp://www.dzsc.com/datasheet/PC+_2043275.html.
[8].AT89C2051 datasheethttp://www.dzsc.com/datasheet/AT89C2051+_810086.html.
[9].AT24C256 datasheethttp://www.dzsc.com/datasheet/AT24C256+_1128512.html.
[10].ISP1581datasheethttp://www.dzsc.com/datasheet/ISP1581_410269.html.
[11].74LS47datasheethttp://www.dzsc.com/datasheet/74LS47_1134230.html.
[12].BCD datasheethttp://www.dzsc.com/datasheet/BCD+_1225719.html.
來源:xinxin0次