數據采集是通過(guò)采樣電路將輸入的模擬信號轉換成離散信號,并送入CPU進(jìn)行處理,已經(jīng)廣泛應用在現代工業(yè)控制的各個(gè)方面。數據采集的速度和精度,很大程度上影響到整個(gè)系統的工作能力。常用數據采集方案是以MCU或者DSP為核心,控制數據采集并對數據進(jìn)行相應處理,A/D轉換器的啟動(dòng)、通道選擇、數據傳輸和讀取均依靠軟件編程來(lái)實(shí)現。由于受MCU或者DSP執行指令時(shí)間的限制,這種采集方案的速率和效率較低,難以適應各種高速信號采集的需要,另外,各種復雜系統中,CPU要協(xié)調各外圍設備工作時(shí)序,收發(fā)指令,同時(shí)還要完成各種控制算法。若采集數據量較大,占用大量CPU資源,限制CPU工作能力,則會(huì )大大降低整個(gè)系統的工作效率。 本文針對應用于伺服控制系統的8通道數據采集方案進(jìn)行設計,依靠FPGA硬件完成數據采集時(shí)序控制以及數據的預處理過(guò)程,將處理后的數據輸送給CPU,使 CPU有足夠的資源完成伺服算法。由于FPGA運行速度快,能夠保證數據采集的實(shí)時(shí)性和準確性。 系統硬件設計如圖1所示。 ![]() 1 硬件電路設計 1.1 A/D轉換電路設計 本設計采用MAXIM公司的8通道MAX1300芯片。該A/D轉換芯片最大可支持115 kS/s采樣速率,以及最大±12 V單端電壓輸入以及±24 V差分電壓輸入,同時(shí)由于其比普通A/D轉換芯片具有更高的精度(16位數據輸出),而且體積小、使用方便、適合使用在各項指標嚴格的伺服系統中。圖2為 MAX1300硬件設計圖。 ![]() MAX1300外圍電路較其他A/D芯片更為簡(jiǎn)單,支持三種總線(xiàn)方式與CPU連接:SPI方式、QSPI方式、MICROWIRE方式。圖2中 MAX1300與FPGA連接只使用了CS、DIN、SCLK、DOUT四個(gè)引腳,不占用數據總線(xiàn),這在一定程度上節約了電路板面積,減少了硬件電路設計的難度。CH0~CH7為模擬電壓輸入通道,AVDD1~2為模擬電壓端,DVDD為數字電壓端,AGND1~AGND3為模擬地,DGND與DGNDO 為數字地。DVDDO為IO口電壓,根據MAX1300連接器件IO電壓不同,DVDDO選擇不同電壓值,支持范圍2.7~5.25 V,FPGA選用ALTERA公司CYCLONE系列EP1C6Q240C6,IO電壓為3.3 V,所以DVDDO接3.3 V電壓。REF和REFCAP為參考電壓輸入接口,器件內部有4.096 V電壓參考,使用內部電壓參考時(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數據輸入引腳,用于對芯片進(jìn)行相應配置(工作時(shí)鐘方式,電壓范圍)。DOUT為數據輸出,用于輸出轉換后的數字信號。SCLK為時(shí)鐘輸入引腳。進(jìn)行采集時(shí),DIN引腳在CS變低后的第一個(gè)高電平認為是數據的起始位,隨后數據選擇采集通道,數據在每個(gè)SCLK時(shí)鐘的上升沿進(jìn)入MAX1300。從第16個(gè)時(shí)鐘開(kāi)始,轉換后的數據在每個(gè)SCLK的下降沿經(jīng) DOUT引腳輸出。 1.2 CPU硬件電路設計 此系統主要應用為伺服控制,CPU選用TI公司控制類(lèi)專(zhuān)用DSP芯片TMS32028335。TMS32028335為新型浮點(diǎn)運算CPU,支持最高 150 MHz工作頻率,較之以往的MCU或控制類(lèi)DSP芯片具有顯著(zhù)優(yōu)勢。其硬件設計如圖3所示。 ![]() 鑒于MAX1300經(jīng)FPGA后輸出為8路16位數據,因此CPU只使用D15~D0共16位數據線(xiàn)以及A2~A0共3位地址線(xiàn)(經(jīng)FPGA內部譯碼為8 路地址)。CS為T(mén)MS32028335外部接口片選信號,無(wú)操作時(shí)保持為高電平,當對外部地址操作時(shí),CS變低。RD為外部接口讀使能信號,WR為外部接口寫(xiě)使能信號,均在對外部地址操作時(shí)變低。VDD為T(mén)MS32028335內核電壓要求為標準1.9 V,VDDIO為IO電壓,3.3 V,與FPGA的IO接口電壓保持一致。WR信號變低時(shí),TMS32028335將通道地址和MAX1300配置數據寫(xiě)入FPGA,同時(shí)啟動(dòng) MAX1300進(jìn)行數據采集。RD信號變低時(shí),表示DSP從FPGA讀取采集完畢的數據。 TMS32028335需要完成伺服系統主要的伺服算法工作,其根據算法需要,在適當時(shí)刻通過(guò)FPGA啟動(dòng)MAX1300,CS變低,WR變低,數據線(xiàn)和地址線(xiàn)信息寫(xiě)入FPGA,啟動(dòng)MAX1300采集數據。當采集工作完成后,對數據進(jìn)行讀取,CS變低,RD變低,從FPGA讀取數據進(jìn)行處理,完成伺服算法。 2 FPGA時(shí)序控制 MAX1300正常工作需要32個(gè)工作時(shí)鐘,而普通MCU或DSP芯片SPI通信端口最大支持16個(gè)工作時(shí)鐘,使用起來(lái)很不方便,因此實(shí)際工作中采用 FPGA控制MAX1300的工作時(shí)序及數據采集,DSP讀取MAX1300采集并經(jīng)FPGA處理后的數據。FPGA內部時(shí)序設計如圖4所示。 ![]() 如圖4所示,FPGA時(shí)序設計主要由數據發(fā)送模塊TRANSMIT、數據接收模塊RECEIVE、數據處理模塊PROCESS、A/D采集控制模塊 AD_CONTROL以及存儲FIFO組成。 實(shí)際采集中,AD_CONTROL模塊按DSP要求控制MAX1300時(shí)序工作。需要采集數據時(shí),START信號變低后(START連接DSP的WR信號),AD_CONTROL讀取TMS32028335數據線(xiàn)和地址線(xiàn)信息(地址線(xiàn)選擇MAX1300采集通道,數據線(xiàn)加載MAX1300配置數據),并將相應數據AD_DATA寫(xiě)入TRANSMIT模塊(配置MAX1300,選擇采集通道)。隨后ADCS信號變低,同時(shí)SCLK時(shí)鐘開(kāi)始工作,TRANSMIT模塊在SCLK時(shí)鐘作用下將數據由ADOUT引腳按位輸出。在采集數據之前先對MAX1300進(jìn)行配置,選擇電壓范圍以及時(shí)鐘工作模式。隨后AD_CONTROL連續輸出32個(gè)工作時(shí)鐘,在前16個(gè)時(shí)鐘選擇數據采集通道,后16個(gè)時(shí)鐘接收MAX1300輸出數據。AD_CONTROL 模塊根據地址線(xiàn)高低電平產(chǎn)生通道選擇信號CHANNEL,同時(shí)產(chǎn)生內部FIFO工作時(shí)鐘FIFOCLK,控制存儲FIFO的讀寫(xiě)。 從第17個(gè)工作時(shí)鐘開(kāi)始,在每個(gè)時(shí)鐘的下降沿MAX1300輸出A/D轉換后的數據。數據接收模塊RECEIVE在SCLK時(shí)鐘作用下對數據接收。接收機制采用通用UART設計機理,用16倍SCLK的時(shí)鐘RDCLK對每位數據進(jìn)行16次采樣。若高電平采樣次數超過(guò)10次,則認為為“1”,否則為 “0”。當16位數據接收完畢時(shí),模塊將其轉換為并行數據輸送給數據處理模塊PROCESS。 MAX1300工作時(shí)序如圖5所示。 ![]() 為了防止A/D數據采集過(guò)程中由于外界因素產(chǎn)生各種干擾(如尖峰干擾),采用類(lèi)似于中值濾波的處理方法。設計中添加PROCESS模塊對數據進(jìn)行處理。采集數據時(shí),每個(gè)通道數據采樣10組,每組采樣3次。將每一組的中值取出后求其平均值,作為此次采樣數據的值。這樣在一定程度上去除了外界因素對結果的影響,也為CPU進(jìn)行下一步濾波減輕了負擔。PROCESS模塊對數據處理后,FIFOCS信號不變低,根據AD_CONTROL給出的CHANNEL信號,在FIFOCLK時(shí)鐘作用下將數據寫(xiě)入對應的FIFO中,每路數據對應一個(gè)FIFO模塊。 PROCESS模塊處理后的數據存儲在相應FIFO中,TMS32028335在適當時(shí)刻進(jìn)行讀取。讀取數據時(shí), CS和RD信號變低,FPGA根據地址線(xiàn)A2~A0,內部通過(guò)譯碼產(chǎn)生RDCS1、RDCS2等信號(內部譯碼部分圖5中未標出),從相應FIFO讀取相應通道的采集數據。 本文提出一種新型8通道數據采集系統,適合應用在高精度伺服控制系統中。詳細介紹了A/D轉換模塊和CPU硬件設計電路,采用FPGA完成整個(gè)電路時(shí)序控制工作。同時(shí),在FPGA內部設置數據預處理模塊,對所采集數據進(jìn)行前置處理,減輕CPU負擔,加大其數據處理的能力。經(jīng)實(shí)際工作測試,該設計很好地完成8通道、16位數據采集處理工作,達到系統指標要求。 參考文獻 [1] ASHENDEN P J. VHDL設計指南[M]. 北京:機械工業(yè)出版社,2005. [2] Altera Corporation. Cyclone Device Handbook,Volume 1, 2008,5. [3] 韓西寧,許暉,焦留芳.基于FPGA的同步數據采集處理系統的設計與實(shí)現[J]. 電子技術(shù)應用, 2009,35(1): 89-91. 作者:王順利(中國科學(xué)院長(cháng)春光學(xué)精密機械與物理研究所,吉林,長(cháng)春,130033;中國科學(xué)院研究生院,北京,100039);戴明,孫麗娜, 李志強(中國科學(xué)院長(cháng)春光學(xué)精密機械與物理研究所,吉林,長(cháng)春,130033);李波(海軍駐長(cháng)春地區航空軍代表室,吉林,長(cháng)春,130033) 來(lái)源:電子技術(shù)應用 2009(11) |