文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)04-0055-03
隨著現(xiàn)代社會(huì)信息技術(shù)的高速發(fā)展,數(shù)據(jù)采集的快速性,、穩(wěn)定性,、精確性成為數(shù)據(jù)采集的重要指標(biāo)。傳統(tǒng)數(shù)據(jù)采集系統(tǒng)采用單片機(jī)與DSP作為控制器,,控制模數(shù)轉(zhuǎn)換器(ADC),、存儲(chǔ)器及其各自的外圍電路,,對(duì)數(shù)據(jù)進(jìn)行采集并處理。然而,,單片機(jī)本身的指令周期及其處理速度的限制使其很難達(dá)到多通道高速采集數(shù)據(jù)的要求,,并且單片機(jī)控制各功能模塊需要軟件來(lái)支持,軟件運(yùn)行時(shí)間在整個(gè)采樣時(shí)間中占有很大的比例,效率較低[1],;以FPGA作為控制器的多通道采集系統(tǒng),具有較高的時(shí)鐘頻率,,較快的運(yùn)行速度,具有開(kāi)發(fā)周期短,、功耗低,、開(kāi)發(fā)費(fèi)用低等優(yōu)點(diǎn)。因此,,本設(shè)計(jì)采用FPGA作為控制器對(duì)數(shù)據(jù)進(jìn)行采集,。
1 系統(tǒng)總體架構(gòu)
多路模擬信號(hào)經(jīng)過(guò)A/D模數(shù)轉(zhuǎn)換后,將輸入的模擬信號(hào)轉(zhuǎn)為數(shù)字信號(hào),,該數(shù)字信號(hào)通過(guò)FPGA核心單元,,經(jīng)過(guò)USB傳輸?shù)接?jì)算機(jī)中并存儲(chǔ)。該數(shù)據(jù)適用于控制過(guò)程,、存儲(chǔ),、處理,并顯示在計(jì)算機(jī)中,。FPGA不僅控制A/D轉(zhuǎn)換器,還應(yīng)完成對(duì)USB及內(nèi)部FIFO的讀寫控制,,實(shí)現(xiàn)了其邏輯控制功能,。系統(tǒng)整體原理圖如圖1所示。
2 主要芯片選型
2.1 FPGA芯片
FPGA設(shè)計(jì)數(shù)字系統(tǒng)電路時(shí),,設(shè)計(jì)靈活,,集成度高,工作速度快,可以很大地降低成本,。本設(shè)計(jì)采用Altera公司的Cyclone II 系列的EP2C35F484芯片,,該芯片系統(tǒng)門數(shù)為35 000個(gè),I/O端口為475個(gè),,1.20 V的電源電壓,,能在-40℃~+100℃的溫度下工作,完全能達(dá)到設(shè)計(jì)的要求。
2.2 A/D轉(zhuǎn)換芯片
通過(guò)對(duì)系統(tǒng)的采樣率,、分辨率,、通道數(shù)等要求的分析,本設(shè)計(jì)采用的是一片低功耗ADS7825芯片進(jìn)行模數(shù)轉(zhuǎn)換,。ADS7825是一片4通道,、16位模數(shù)轉(zhuǎn)換器,,其數(shù)據(jù)采樣及轉(zhuǎn)換時(shí)間不超過(guò)25 μs,可輸入-10.0 V~+10.0 V的模擬電壓,。ADS7825的最大優(yōu)點(diǎn)就是經(jīng)過(guò)A/D轉(zhuǎn)換后的數(shù)據(jù)既可以并行輸出也可以串行輸出,,它可以被配置在一個(gè)連續(xù)轉(zhuǎn)換模式,按順序數(shù)位化所有4個(gè)通道,,使用非常方便,。
2.3 USB傳輸芯片的選型
使用USB2.0通用串行接口總線,USB接口特點(diǎn)是即插即用和支持熱插拔,,并且傳輸速率高,,USB2.0支持高達(dá)480 Mb/s的數(shù)據(jù)傳輸速率。系統(tǒng)采用了應(yīng)用廣泛,、性能穩(wěn)定的Cypress公司CY7C68013芯片,實(shí)現(xiàn)了USB接口的擴(kuò)展,,能夠與計(jì)算機(jī)之間實(shí)現(xiàn)高速的數(shù)據(jù)傳遞。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 A/D轉(zhuǎn)換電路
在使用ADS7825時(shí),,將其片選引腳CS置低電平,,讀數(shù)/啟動(dòng)轉(zhuǎn)換引腳R/C給予一個(gè)下降沿,以啟動(dòng)A/D轉(zhuǎn)換器,。當(dāng)BUSY保持低電平時(shí),, A/D進(jìn)入到采樣保持和轉(zhuǎn)換的過(guò)程中;當(dāng)BUSY為高電平,,R/C為高電平時(shí),,A/D進(jìn)入到開(kāi)始讀取數(shù)據(jù)過(guò)程。在此過(guò)程中,,必須先將R/C置高電平,,再將BUSY置高電平,否則可能會(huì)引起數(shù)據(jù)還未讀完,,就開(kāi)始了新的轉(zhuǎn)換,,導(dǎo)致數(shù)據(jù)的丟失[2]。
ADS7825的輸出有兩種模式:一種為并行輸出,,另一種為串行輸出,,其工作原理不同。為了能實(shí)現(xiàn)多通道高速采集系統(tǒng),,設(shè)計(jì)采用并行輸出的方式,。
并行輸出的工作原理:將片選引腳CS置低電平,給予R/C下降沿,,以啟動(dòng)A/D轉(zhuǎn)換器,。檢測(cè)BUSY引腳的狀態(tài),當(dāng)BUSY引腳為低電平時(shí),,表示A/D數(shù)據(jù)的轉(zhuǎn)換還在進(jìn)行,;當(dāng)BUSY為高電平時(shí),,數(shù)據(jù)轉(zhuǎn)換完成,開(kāi)始讀取數(shù)據(jù),。讀取數(shù)據(jù)時(shí),,要輸出16位數(shù)據(jù),輸出只有8個(gè)引腳,,需要BYTE引腳的功能,,當(dāng)BYTE引腳為高電平時(shí),輸出的是低8位數(shù)據(jù),;當(dāng)BYTE引腳為低電平時(shí),,輸出的是高8位數(shù)據(jù)[3]。ADS7825外圍電路圖如圖2所示,。
3.2 USB通信接口
CY7C68013有Ports,、Slave FIFO和GPIF 3種接口方式。本設(shè)計(jì)采用Slave FIFO接口方式,。Slave FIFO是從機(jī)方式,,即FX的CPU不直接參與USB數(shù)據(jù)處理,而是簡(jiǎn)單地把FX作為USB和外部數(shù)據(jù)處理邏輯(如ASIC,、DSP和IDE(串行接口引擎)控制器)之間的通道,,數(shù)據(jù)流并不經(jīng)過(guò)CPU,而是通過(guò)FX的FIFO直接傳輸,。FIFO通過(guò)外部主機(jī)控制,,同時(shí),F(xiàn)IFO提供所需的時(shí)序信號(hào),、握手信號(hào)(滿,、空等)和輸出使能等[4]。
圖3為FPGA與USB接口示意圖,采用Slave FIFO模式,,外部時(shí)鐘使用的是FPGA提供的12.5 MHz的時(shí)鐘信號(hào),F(xiàn)D[15:0]為16位雙向數(shù)據(jù)總線,,因此最大傳輸速度可達(dá)200 Mb/s,FLAGA,、FLAGB、FLAGC是CY7C68013FIFO的標(biāo)志管腳,,SLOE用于使能數(shù)據(jù)總線FD的輸出,;FIFOADR[1:0]用于選擇和FD連接的端點(diǎn)緩沖區(qū);SLRD和SLWR可分別作為FIFO的讀寫選通信號(hào),。
FPGA控制進(jìn)程如下[5]:
(1)IDLE:當(dāng)寫事件發(fā)生時(shí),,跳轉(zhuǎn)到狀態(tài)1;
(2)狀態(tài)1:通過(guò)改變FIFOADR[1:0],指向FIFO,,跳到狀態(tài)2,;
(3)狀態(tài)2:如果“FIFO滿”為假,,則跳到狀態(tài)3,否則在狀態(tài)2循環(huán)等待,;
(4)狀態(tài)3:傳送總線驅(qū)動(dòng)數(shù)據(jù),每個(gè)IFCLK激活SLWR,,跳到狀態(tài)4;
(5)狀態(tài)4:是否還有數(shù)據(jù)要傳送,,有數(shù)據(jù)則跳到狀態(tài)2,,無(wú)數(shù)據(jù)則要傳送跳到IDLE。
異步Slave FIFO 讀狀態(tài)如圖4所示,。
4 FPGA控制程序設(shè)計(jì)及仿真
4.1 ADS7825仿真控制設(shè)計(jì)
基于FPGA實(shí)現(xiàn)對(duì)ADS7825模數(shù)轉(zhuǎn)換器的控制,,并讀出其轉(zhuǎn)換的數(shù)據(jù)。采用Verilog HDL硬件描述語(yǔ)言,,實(shí)現(xiàn)對(duì)ADS7825的控制與數(shù)據(jù)的讀出,,并在Quartus Ⅱ9.0開(kāi)發(fā)工具中綜合編譯并映射到FPGA中運(yùn)行,其仿真結(jié)果如圖5所示,。
仿真程序如下:
case(ad_state)
{......
4′b0010: begin //高字節(jié)讀取
data_16bit[15:8]
<= ads7825data_8bit[7:0];
ad_state <= 4'b0110;
end
4′b0101: begin //低字節(jié)讀取
data_16bit[7:0] <= ads7825data_8bit[7:0];
ad_state <= 4′b0111;
data_valid <= 1′b1;
//數(shù)據(jù)開(kāi)始完畢,,外部允許讀取寄存器
end
......
}
波形結(jié)果顯示了該模塊在設(shè)置好時(shí)鐘頻率50 MHz和片選信號(hào)的情況下,通過(guò)ADS7825模數(shù)轉(zhuǎn)換器轉(zhuǎn)換的高8位和低8位的數(shù)據(jù),,F(xiàn)PGA邏輯控制單元能夠快速準(zhǔn)確地接收,,轉(zhuǎn)換成16位數(shù)據(jù),并輸出對(duì)ADS7825的邏輯控制信號(hào),,從而實(shí)現(xiàn)了FPGA對(duì)ADS7825模數(shù)轉(zhuǎn)換器準(zhǔn)確無(wú)誤的控制和數(shù)據(jù)的接收,,充分體現(xiàn)了系統(tǒng)的快速性、準(zhǔn)確性,,穩(wěn)定性,。
4.2 USB傳輸控制仿真模塊
CY7C68103為每個(gè)端口都提供了空滿標(biāo)志位,設(shè)計(jì)利用FPGA對(duì)CY7C68013的空滿狀態(tài)的檢測(cè),完成輸出對(duì)CY7C68013的控制信號(hào),,控制讀寫過(guò)程[6],。仿真波形如圖6所示。
仿真程序如下[7-8]:
always @(negedge CLK or negedge RESET)
begin
if(!RESET)
begin
SLWR_reg <= 1′b0;
SLCS <= 1'b0;
SLOE <= 1'b1;
SLRD <= 1'b1;
end
else
begin
SLOE <= 1'b1;
SLRD <= 1'b1;
SLCS <= 1'b0;
if(full == 1′b1) // SLWR_reg is generated
only when full is low.
begin
SLWR_reg <= ~SLWR_reg;
end
else
begin
SLWR_reg <= 1′b1;
end
end
end
本設(shè)計(jì)介紹了以FPGA芯片EP2C35F484為主體,,配合ADS7825和USB傳輸控制器CY7C68013構(gòu)成的數(shù)據(jù)采集系統(tǒng),。利用FPGA的邏輯控制功能,實(shí)現(xiàn)對(duì)ADS7825與CY7C68013的邏輯控制,,實(shí)現(xiàn)對(duì)數(shù)據(jù)快速,、準(zhǔn)確的采集。利用Altera公司的Quartus Ⅱ9.0開(kāi)發(fā)工具,,采用Verilog HDL硬件描述語(yǔ)言實(shí)現(xiàn)了對(duì)數(shù)據(jù)的傳輸,,仿真結(jié)果表明本設(shè)計(jì)的可行性,從而實(shí)現(xiàn)了對(duì)4路模擬信號(hào)的采集與傳輸,,具有良好的穩(wěn)定性,。
參考文獻(xiàn)
[1] 胡敦利,,肖力,尤文艷. 基于FPGA的測(cè)試控制板卡的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用,,2012,38(1):10-13.
[2] 王霞,,李剛. 具有串行和并行輸出接口的模數(shù)轉(zhuǎn)換器——ADS7825[J].國(guó)外電子元器件,1999(1):30-33.
[3] 張?jiān)?,高彥,,王彥?ADS7825模數(shù)轉(zhuǎn)換芯片及其在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,2002,10(6):49-53.
[4] 夏宇聞. Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M]. 北京:北京航空航天大學(xué)出版社,,2008:44-46.
[5] 張思杰,,趙泰,汪振興,,等. 基于FPGA的USB接口數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用,,2011,37(5):64-69.
[6] 張俊濤,王豫瑩.基于FPGA和USB2.0的高速數(shù)據(jù)采集系統(tǒng)[J].儀表技術(shù)與傳感器,,2011(10):173-174.
[7] 吳繼華,,王誠(chéng). Altera FPGA/CPLD設(shè)計(jì)(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005:88-96.
[8] 吳繼華,王誠(chéng). Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M]. 北京:人民郵電出版社,,2005:91-100.