《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的一種新型8通道數(shù)據(jù)采集系統(tǒng)
基于FPGA的一種新型8通道數(shù)據(jù)采集系統(tǒng)
王順利1,2, 戴 明1, 孫麗娜1,, 李 波3,, 李志強(qiáng)1
1.中國(guó)科學(xué)院長(zhǎng)春光學(xué)精密機(jī)械與物理研究所, 吉林 長(zhǎng)春 130033;2. 中國(guó)科學(xué)院研究生院,
摘要: 以FPGA為核心控制模塊,搭載MAX1300為數(shù)據(jù)采集模塊,完成8通道、16位精度數(shù)據(jù)采集系統(tǒng)。采集數(shù)據(jù)在FPGA內(nèi)部?jī)?chǔ)存,,DSP在適當(dāng)時(shí)刻對(duì)其進(jìn)行讀取以完成伺服控制工作。針對(duì)以往數(shù)據(jù)采集系統(tǒng)的局限,,F(xiàn)PGA內(nèi)部對(duì)所采集數(shù)據(jù)進(jìn)行預(yù)處理,,減輕了CPU數(shù)據(jù)處理強(qiáng)度和負(fù)擔(dān)。詳細(xì)介紹了各芯片硬件電路設(shè)計(jì),,給出FPGA內(nèi)部各功能模塊邏輯圖,。
關(guān)鍵詞: FPGA 數(shù)據(jù)采集 DSP TI
Abstract:
Key words :

摘  要:title="FPGA">FPGA為核心控制模塊,搭載MAX1300為數(shù)據(jù)采集模塊,,完成8通道,、16位精度數(shù)據(jù)采集系統(tǒng)。采集數(shù)據(jù)在FPGA內(nèi)部?jī)?chǔ)存,,DSP在適當(dāng)時(shí)刻對(duì)其進(jìn)行讀取以完成伺服控制工作,。針對(duì)以往數(shù)據(jù)采集系統(tǒng)的局限,F(xiàn)PGA內(nèi)部對(duì)所采集數(shù)據(jù)進(jìn)行預(yù)處理,,減輕了CPU數(shù)據(jù)處理強(qiáng)度和負(fù)擔(dān),。詳細(xì)介紹了各芯片硬件電路設(shè)計(jì),給出FPGA內(nèi)部各功能模塊邏輯圖,。
關(guān)鍵詞:  數(shù)據(jù)采集; FPGA; DSP

    數(shù)據(jù)采集是通過(guò)采樣電路將輸入的模擬信號(hào)轉(zhuǎn)換成離散信號(hào),,并送入CPU進(jìn)行處理,已經(jīng)廣泛應(yīng)用在現(xiàn)代工業(yè)控制的各個(gè)方面,。數(shù)據(jù)采集的速度和精度,,很大程度上影響到整個(gè)系統(tǒng)的工作能力。常用數(shù)據(jù)采集方案是以MCU或者DSP為核心,,控制數(shù)據(jù)采集并對(duì)數(shù)據(jù)進(jìn)行相應(yīng)處理,,A/D轉(zhuǎn)換器的啟動(dòng)、通道選擇,、數(shù)據(jù)傳輸和讀取均依靠軟件編程來(lái)實(shí)現(xiàn),。由于受MCU或者DSP執(zhí)行指令時(shí)間的限制,,這種采集方案的速率和效率較低,難以適應(yīng)各種高速信號(hào)采集的需要,,另外,,各種復(fù)雜系統(tǒng)中,CPU要協(xié)調(diào)各外圍設(shè)備工作時(shí)序,,收發(fā)指令,,同時(shí)還要完成各種控制算法。若采集數(shù)據(jù)量較大,,占用大量CPU資源,,限制CPU工作能力,則會(huì)大大降低整個(gè)系統(tǒng)的工作效率,。
    本文針對(duì)應(yīng)用于伺服控制系統(tǒng)的8通道數(shù)據(jù)采集方案進(jìn)行設(shè)計(jì),依靠FPGA硬件完成數(shù)據(jù)采集時(shí)序控制以及數(shù)據(jù)的預(yù)處理過(guò)程,,將處理后的數(shù)據(jù)輸送給CPU,,使CPU有足夠的資源完成伺服算法。由于FPGA運(yùn)行速度快,,能夠保證數(shù)據(jù)采集的實(shí)時(shí)性和準(zhǔn)確性,。
  系統(tǒng)硬件設(shè)計(jì)如圖1所示。


1 硬件電路設(shè)計(jì)
1.1 A/D轉(zhuǎn)換電路設(shè)計(jì)

  本設(shè)計(jì)采用MAXIM公司的8通道MAX1300芯片,。該A/D轉(zhuǎn)換芯片最大可支持115 kS/s采樣速率,以及最大±12 V單端電壓輸入以及±24 V差分電壓輸入,,同時(shí)由于其比普通A/D轉(zhuǎn)換芯片具有更高的精度(16位數(shù)據(jù)輸出),而且體積小,、使用方便,、適合使用在各項(xiàng)指標(biāo)嚴(yán)格的伺服系統(tǒng)中。圖2為MAX1300硬件設(shè)計(jì)圖,。


     MAX1300外圍電路較其他A/D芯片更為簡(jiǎn)單,支持三種總線方式與CPU連接:SPI方式,、QSPI方式、MICROWIRE方式,。圖2中MAX1300與FPGA連接只使用了CS,、DIN、SCLK,、DOUT四個(gè)引腳,,不占用數(shù)據(jù)總線,這在一定程度上節(jié)約了電路板面積,,減少了硬件電路設(shè)計(jì)的難度,。CH0~CH7為模擬電壓輸入通道,AVDD1~2為模擬電壓端,,DVDD為數(shù)字電壓端,,AGND1~AGND3為模擬地,,DGND與DGNDO為數(shù)字地。DVDDO為IO口電壓,,根據(jù)MAX1300連接器件IO電壓不同,,DVDDO選擇不同電壓值,支持范圍2.7~5.25 V,,F(xiàn)PGA選用ALTERA公司CYCLONE系列EP1C6Q240C6,,IO電壓為3.3 V,所以DVDDO接3.3 V電壓。REF和REFCAP為參考電壓輸入接口,,器件內(nèi)部有4.096 V電壓參考,,使用內(nèi)部電壓參考時(shí),REF與REFCAP分別接1 μF和0.1 μF電容接地,。MAX1300支持三種采樣模式:external clock mode,、external acquisition mode和 internal clock mode,其中external clock mode支持到最高采樣速率115 kS/s,該模式下SSTRB引腳閑置,可以懸空,。
  CS引腳為片選引腳,芯片所有輸入輸出操作只有在CS為低電平時(shí)才有效,。DIN引腳為MAX1300數(shù)據(jù)輸入引腳,用于對(duì)芯片進(jìn)行相應(yīng)配置(工作時(shí)鐘方式,,電壓范圍),。DOUT為數(shù)據(jù)輸出,用于輸出轉(zhuǎn)換后的數(shù)字信號(hào),。SCLK為時(shí)鐘輸入引腳,。進(jìn)行采集時(shí),DIN引腳在CS變低后的第一個(gè)高電平認(rèn)為是數(shù)據(jù)的起始位,,隨后數(shù)據(jù)選擇采集通道,,數(shù)據(jù)在每個(gè)SCLK時(shí)鐘的上升沿進(jìn)入MAX1300。從第16個(gè)時(shí)鐘開(kāi)始,,轉(zhuǎn)換后的數(shù)據(jù)在每個(gè)SCLK的下降沿經(jīng)DOUT引腳輸出,。
1.2 CPU硬件電路設(shè)計(jì)
  此系統(tǒng)主要應(yīng)用為伺服控制,CPU選用TI公司控制類專用DSP芯片TMS32028335,。TMS32028335為新型浮點(diǎn)運(yùn)算CPU,,支持最高150 MHz工作頻率,較之以往的MCU或控制類DSP芯片具有顯著優(yōu)勢(shì),。其硬件設(shè)計(jì)如圖3所示,。


    鑒于MAX1300經(jīng)FPGA后輸出為8路16位數(shù)據(jù),因此CPU只使用D15~D0共16位數(shù)據(jù)線以及A2~A0共3位地址線(經(jīng)FPGA內(nèi)部譯碼為8路地址),。CS為TMS32028335外部接口片選信號(hào),,無(wú)操作時(shí)保持為高電平,當(dāng)對(duì)外部地址操作時(shí),,CS變低,。RD為外部接口讀使能信號(hào),,WR為外部接口寫使能信號(hào),均在對(duì)外部地址操作時(shí)變低,。VDD為TMS32028335內(nèi)核電壓要求為標(biāo)準(zhǔn)1.9 V,,VDDIO為IO電壓,3.3 V,,與FPGA的IO接口電壓保持一致,。WR信號(hào)變低時(shí),TMS32028335將通道地址和MAX1300配置數(shù)據(jù)寫入FPGA,,同時(shí)啟動(dòng)MAX1300進(jìn)行數(shù)據(jù)采集,。RD信號(hào)變低時(shí),表示DSP從FPGA讀取采集完畢的數(shù)據(jù),。
 TMS32028335需要完成伺服系統(tǒng)主要的伺服算法工作,其根據(jù)算法需要,在適當(dāng)時(shí)刻通過(guò)FPGA啟動(dòng)MAX1300,,CS變低,WR變低,,數(shù)據(jù)線和地址線信息寫入FPGA,,啟動(dòng)MAX1300采集數(shù)據(jù)。當(dāng)采集工作完成后,,對(duì)數(shù)據(jù)進(jìn)行讀取,CS變低,,RD變低,,從FPGA讀取數(shù)據(jù)進(jìn)行處理,完成伺服算法,。
2 FPGA時(shí)序控制
 MAX1300正常工作需要32個(gè)工作時(shí)鐘,,而普通MCU或DSP芯片SPI通信端口最大支持16個(gè)工作時(shí)鐘,使用起來(lái)很不方便,,因此實(shí)際工作中采用FPGA控制MAX1300的工作時(shí)序及數(shù)據(jù)采集,,DSP讀取MAX1300采集并經(jīng)FPGA處理后的數(shù)據(jù)。FPGA內(nèi)部時(shí)序設(shè)計(jì)如圖4所示,。


    如圖4所示,,F(xiàn)PGA時(shí)序設(shè)計(jì)主要由數(shù)據(jù)發(fā)送模塊TRANSMIT、數(shù)據(jù)接收模塊RECEIVE,、數(shù)據(jù)處理模塊PROCESS,、A/D采集控制模塊AD_CONTROL以及存儲(chǔ)FIFO組成。
 實(shí)際采集中,,AD_CONTROL模塊按DSP要求控制MAX1300時(shí)序工作,。需要采集數(shù)據(jù)時(shí),START信號(hào)變低后(START連接DSP的WR信號(hào)),,AD_CONTROL讀取TMS32028335數(shù)據(jù)線和地址線信息(地址線選擇MAX1300采集通道,,數(shù)據(jù)線加載MAX1300配置數(shù)據(jù)),,并將相應(yīng)數(shù)據(jù)AD_DATA寫入TRANSMIT模塊(配置MAX1300,選擇采集通道),。隨后ADCS信號(hào)變低,,同時(shí)SCLK時(shí)鐘開(kāi)始工作,TRANSMIT模塊在SCLK時(shí)鐘作用下將數(shù)據(jù)由ADOUT引腳按位輸出,。在采集數(shù)據(jù)之前先對(duì)MAX1300進(jìn)行配置,,選擇電壓范圍以及時(shí)鐘工作模式。隨后AD_CONTROL連續(xù)輸出32個(gè)工作時(shí)鐘,,在前16個(gè)時(shí)鐘選擇數(shù)據(jù)采集通道,后16個(gè)時(shí)鐘接收MAX1300輸出數(shù)據(jù),。AD_CONTROL模塊根據(jù)地址線高低電平產(chǎn)生通道選擇信號(hào)CHANNEL,同時(shí)產(chǎn)生內(nèi)部FIFO工作時(shí)鐘FIFOCLK,,控制存儲(chǔ)FIFO的讀寫,。
 從第17個(gè)工作時(shí)鐘開(kāi)始,在每個(gè)時(shí)鐘的下降沿MAX1300輸出A/D轉(zhuǎn)換后的數(shù)據(jù),。數(shù)據(jù)接收模塊RECEIVE在SCLK時(shí)鐘作用下對(duì)數(shù)據(jù)接收,。接收機(jī)制采用通用UART設(shè)計(jì)機(jī)理,用16倍SCLK的時(shí)鐘RDCLK對(duì)每位數(shù)據(jù)進(jìn)行16次采樣,。若高電平采樣次數(shù)超過(guò)10次,,則認(rèn)為為“1”,否則為“0”,。當(dāng)16位數(shù)據(jù)接收完畢時(shí),,模塊將其轉(zhuǎn)換為并行數(shù)據(jù)輸送給數(shù)據(jù)處理模塊PROCESS。
    MAX1300工作時(shí)序如圖5所示,。


  為了防止A/D數(shù)據(jù)采集過(guò)程中由于外界因素產(chǎn)生各種干擾(如尖峰干擾),,采用類似于中值濾波的處理方法。設(shè)計(jì)中添加PROCESS模塊對(duì)數(shù)據(jù)進(jìn)行處理,。采集數(shù)據(jù)時(shí),,每個(gè)通道數(shù)據(jù)采樣10組,每組采樣3次,。將每一組的中值取出后求其平均值,,作為此次采樣數(shù)據(jù)的值。這樣在一定程度上去除了外界因素對(duì)結(jié)果的影響,,也為CPU進(jìn)行下一步濾波減輕了負(fù)擔(dān),。PROCESS模塊對(duì)數(shù)據(jù)處理后,F(xiàn)IFOCS信號(hào)不變低,,根據(jù)AD_CONTROL給出的CHANNEL信號(hào),,在FIFOCLK時(shí)鐘作用下將數(shù)據(jù)寫入對(duì)應(yīng)的FIFO中,每路數(shù)據(jù)對(duì)應(yīng)一個(gè)FIFO模塊,。
  PROCESS模塊處理后的數(shù)據(jù)存儲(chǔ)在相應(yīng)FIFO中,,TMS32028335在適當(dāng)時(shí)刻進(jìn)行讀取,。讀取數(shù)據(jù)時(shí), CS和RD信號(hào)變低,,F(xiàn)PGA根據(jù)地址線A2~A0,,內(nèi)部通過(guò)譯碼產(chǎn)生RDCS1、RDCS2等信號(hào)(內(nèi)部譯碼部分圖5中未標(biāo)出),,從相應(yīng)FIFO讀取相應(yīng)通道的采集數(shù)據(jù),。
 本文提出一種新型8通道數(shù)據(jù)采集系統(tǒng),適合應(yīng)用在高精度伺服控制系統(tǒng)中,。詳細(xì)介紹了A/D轉(zhuǎn)換模塊和CPU硬件設(shè)計(jì)電路,,采用FPGA完成整個(gè)電路時(shí)序控制工作。同時(shí),,在FPGA內(nèi)部設(shè)置數(shù)據(jù)預(yù)處理模塊,,對(duì)所采集數(shù)據(jù)進(jìn)行前置處理,減輕CPU負(fù)擔(dān),,加大其數(shù)據(jù)處理的能力,。經(jīng)實(shí)際工作測(cè)試,該設(shè)計(jì)很好地完成8通道,、16位數(shù)據(jù)采集處理工作,,達(dá)到系統(tǒng)指標(biāo)要求。

參考文獻(xiàn)
[1]     ASHENDEN P J. VHDL設(shè)計(jì)指南[M]. 北京:機(jī)械工業(yè)出版社,,2005.
[2]     Altera Corporation. Cyclone Device Handbook,,Volume 1,  2008,5.
[3]    韓西寧,,許暉,,焦留芳.基于FPGA的同步數(shù)據(jù)采集處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用,, 2009,35(1): 89-91.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。