《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 多路數(shù)據(jù)采集系統(tǒng)的設計

多路數(shù)據(jù)采集系統(tǒng)的設計

2009-04-08
作者:常鐵原, 王 欣, 陳文軍

??? 摘? 要: 采用多通道的模數(shù)轉換芯片AD7656,在并行接口模式下,同時進行6路數(shù)據(jù)采集。通過硬件實現(xiàn)對多路數(shù)據(jù)采集系統(tǒng)的控制,并用VHDL語言設計的狀態(tài)機在QuartusⅡ開發(fā)軟件中進行仿真。?

??? 關鍵詞: CPLD; 多路并行數(shù)據(jù)采集; AD7656; FIFO; 狀態(tài)機

?

??? 在許多測控系統(tǒng)中,經(jīng)常會需要對多路信號進行采集、傳輸、存儲與處理。例如三相電能表的數(shù)據(jù)采集,通常是用三片單相計量芯片。本文介紹的方案只用一片A/D芯片就可以完成三相信號的同時采集,并用CPLD控制,實現(xiàn)了多路并行數(shù)據(jù)采集和高速的存儲,這樣可以在很大程度上提高系統(tǒng)的信號采集和處理能力[1]。?

1 系統(tǒng)設計?

??? 本系統(tǒng)要進行多路數(shù)據(jù)采集,選用了A/D芯片AD7656。AD7656能進行6路數(shù)據(jù)同時采集,系統(tǒng)要求每20ms采128點,6路信號共采768點,每點為2B,也就是一個周期采1 536×8bit,采集完后寫入存儲器中,F(xiàn)IFO存儲器IDT7203為2K×9bit,所以可以選用IDT7203。本系統(tǒng)除了A/D轉換電路、數(shù)據(jù)緩存電路、對鎖相環(huán)的分頻電路外,還需要有地址譯碼電路??删幊踢壿嬈骷﨏PLD集成了各種門陣列,通過用硬件描述語言寫程序可實現(xiàn)以上各種功能[2]。鎖相環(huán)采用4046芯片,CPLD分頻后的信號與輸入信號進行比較,通過鎖相環(huán)倍頻,此信號作為采樣信號的同步信號。圖1為系統(tǒng)總體設計方案。?

?

?

??? 此系統(tǒng)中CPLD是主控芯片,它用硬件描述語言VHDL寫程序來控制A/D轉換器的數(shù)據(jù)采集及向FIFO中存儲數(shù)據(jù)和讀取數(shù)據(jù)。當數(shù)據(jù)達到要求時,給CPU一個信號,通知CPU,待CPU取走數(shù)據(jù)后,給狀態(tài)機一個復位信號,等待下一輪的數(shù)據(jù)存取。由于CPLD是從數(shù)字邏輯角度入手,所以編程要從時序、邏輯兩個角度同時進行考慮。?

2 芯片的選擇?

2.1 A/D轉換器?

??? 系統(tǒng)的A/D轉換芯片采用的是AD7656,它是6通道16位逐次逼近型ADC,在供電電壓為5V,采樣速率為最大即250kS/s時,功耗僅為160mW[3]。而且它有兩種工作模式:串行接口模式和高速的并行接口模式,本系統(tǒng)應用的是并行接口模式。在數(shù)據(jù)轉換時,有3個轉換信號CONVSTA/B/C,用來控制每對或每4個或每6個ADC同時采樣。3個CONVST管腳可以控制3對獨立的模數(shù)轉換器同時采樣。如果將3個CONVST管腳連接在一起后,就可對6個ADC同時進行采樣。其內(nèi)部轉換時序如圖2所示。?

?

?

2.2 FIFO存儲器?

??? 系統(tǒng)采用IDT7203,它是一種2K×9bit雙端口存儲器,可以實現(xiàn)先進先出算法,它能高速存儲和讀取數(shù)據(jù),并且該存儲器的兩個端口時鐘是相互獨立的,所以既能進行異步讀寫操作又能進行同步讀寫操作。當寫信號為低電平時,A/D轉換的數(shù)據(jù)會不斷存入FIFO中,當讀信號為低電平時,要進行讀操作,將數(shù)據(jù)讀入CPU。當向FIFO中寫入數(shù)據(jù)時,利用其各個標志來顯示其數(shù)據(jù)的溢出或不足。為了防止數(shù)據(jù)溢出,當最后一個寫信號的上升沿來臨時全滿標志FF變低。存儲空間的一半滿時,下一個寫操作下降沿到來時,半滿標志HF變低。當所有的數(shù)據(jù)已經(jīng)從FIFO中讀出,空標志EF變低,禁止更多的讀操作。圖3為FIFO的異步讀寫時序。?

?

?

2.3 可編程邏輯器件CPLD?

??? 系統(tǒng)采用ALTERA公司的MAX7000系列中的EPM7064芯片。采用此芯片除了能控制高速的A/D數(shù)據(jù)采集、高速的數(shù)據(jù)存儲和讀取,還能將整個設備電路中的一些譯碼等模塊一并設計進去,從而在很大程度上減小了設備的體積。而且它是可以由用戶進行編程以實現(xiàn)所需邏輯功能的數(shù)字集成電路,它具有設計周期短、可靠性高、修改方便等優(yōu)點。?

2.4 鎖相環(huán)?

??? 系統(tǒng)采用MOTOROLA公司的MC14046芯片,把輸入的信號進行倍頻,作為采樣的同步信號。?

3 系統(tǒng)實現(xiàn)?

??? 本系統(tǒng)利用軟件QuartusⅡ完成CPLD程序的編寫,主要是由時鐘模塊和狀態(tài)機控制模塊組成。在時鐘的驅動下,狀態(tài)機的狀態(tài)向下一個狀態(tài)轉換。A/D轉換和FIFO的存儲,在CPLD控制下并行執(zhí)行[4]。?

3.1時鐘產(chǎn)生模塊?

??? 時鐘是由外部晶振產(chǎn)生的,本系統(tǒng)采用20MHz的晶振,由于所設計的狀態(tài)機中采樣一個點需要5個狀態(tài),共需0.25μs,也就是最大采樣頻率是4MHz。系統(tǒng)要求20ms采樣128點,輸入50Hz的信號經(jīng)過鎖相環(huán)的128倍頻,輸出頻率為6 400Hz,晶振要經(jīng)過3 125次分頻才能得到這樣的采樣同步信號。時鐘信號驅動狀態(tài)機的各個狀態(tài)的轉換,每出現(xiàn)一個同步信號采集一個點。?

3.2 狀態(tài)機?

??? 狀態(tài)機輸入信號有時鐘信號CLK和CPU發(fā)出的通知A/D轉換器和FIFO復位的信號INT0;輸出信號有A/D轉換器的復位信號ADRST、轉換信號ADCONVST、片選信號ADCS、讀信號ADRD及FIFO的寫信號FWR、復位信號FRST、通知CPU取數(shù)的信號INT1。?

??? 狀態(tài)機在時鐘信號驅動下,完成A/D轉換及數(shù)據(jù)的存儲和讀取,不斷將下一個狀態(tài)中的內(nèi)容賦值給當前狀態(tài)。圖4為其狀態(tài)圖。CPU向CPLD發(fā)送信號INT0,當INT0為低電平時進入下一個狀態(tài),AD7656及FIFO都復位,準備就緒。本系統(tǒng)把3個CONVST引腳連接在一起,即可對6個通道同時采樣。在AD7656的CONVST信號為低電平時,AD7656準備好要進行轉換,如果CONVST信號又變?yōu)楦唠娖綍r,將啟動AD7656進行轉換,轉換時間是3μs。這也就是說,CONVST信號能保持3μs,轉換就可以完成。轉換開始后,BUSY信號會自動變?yōu)楦唠娖剑⑶乙恢北3指唠娖?,等待轉換完成后,BUSY信號則會自動變?yōu)榈碗娖?,此時可以進行讀操作。如果采用并行接口模式并且以字節(jié)輸入,轉換完成之后,當片選信號CS一直保持低電平不變時,連續(xù)12個讀信號可以依次連續(xù)被讀出。當FWR信號為低電平時,可以向FIFO中寫數(shù)據(jù)。?

?

?

??? 各個狀態(tài)的功能用VHDL表述為:?

??? when st0 => adrst <=′0′;adconvst <=′1′;adcs <=′1′;adrd <=′1′;fwr <=′1′; frst <= ′1′;?

??? when st1 => adrst <=′1′;adconvst <=′1′;adcs <=′1′;adrd <= ′1′;fwr <=′1′; frst <=′0′;?

??? ……?

??? when st10=> adrst <=′0′;adconvst <=′1′;adcs <=′1′;adrd <=′1′;fwr <=′1′; frst <=′1′;?

??? when others=>adrst <=′0′;adconvst <=′1′;adcs <=′1′;adrd <=′1′;fwr <=′1′; frst <= ′1′;?

??? 從狀態(tài)3到狀態(tài)5,即數(shù)據(jù)開始轉換至完成。當進入狀態(tài)6,數(shù)據(jù)轉換完成開始進行準備把信號讀出去,片選信號CS變低。在狀態(tài)7中,AD的讀信號RD變?yōu)榈碗娖?,準備好把?shù)據(jù)讀出去。在狀態(tài)8時,F(xiàn)WR信號變?yōu)榈碗娖?,要把?shù)據(jù)寫入FIFO中,故A/D的讀信號RD要保持為低電平,直到數(shù)據(jù)寫入FIFO中。片選信號CS、A/D的讀信號RD、FIFO寫信號FWR都變?yōu)楦唠娖?,第一位?shù)據(jù)讀完,如果數(shù)據(jù)達不到要求,回到狀態(tài)6繼續(xù)讀下一位,每讀一位信號ADRCON加1,如果連續(xù)的12個數(shù)據(jù)依次被讀出,仍達不到數(shù)據(jù)的要求,則回到狀態(tài)0,對采集到的新的數(shù)據(jù)進行存取,直到數(shù)據(jù)達到要求時,向CPU申請中斷,CPU發(fā)出地址信號,CPLD選通地址,將數(shù)據(jù)存放到該地址。?

4 仿真結果?

??? 本文采用VHDL語言,在QuartusⅡ開發(fā)軟件仿真,描述了狀態(tài)機是如何實現(xiàn)數(shù)據(jù)的采集、存儲和讀取的。仿真波形如圖5所示。?

?

?

??? 由圖5可以看到仿真結果完全滿足所要設計的邏輯功能。第3個狀態(tài)AD7656開始把模擬信號變?yōu)閿?shù)字信號,等待轉換結束后,第6個狀態(tài)到第10個狀態(tài)開始采集第一路,連續(xù)采集完12路通道中的數(shù)據(jù)并依次存入FIFO中。?

??? 本文提出了一種基于CPLD的多路數(shù)據(jù)采集系統(tǒng)的方法,可以方便地實現(xiàn)對模擬輸入信號的采樣傳輸及處理,具有速度快、可靠性高而且可升級性好等優(yōu)點,其應用領域十分廣泛。?

參考文獻?

[1] 龍姝穎,汪渤,谷重陽.一種基于CPLD的多通道數(shù)據(jù)采集系統(tǒng)的設計[J]. 微計算機信息,2006,22(20):203-204,136.?

[2]?代芬,張承學.CPLD在高速多通道數(shù)據(jù)采集中的應用[J]. 電子技術應用,2003,29(2):75-77.?

[3] 陳茹梅,郭建頌.AD7656型模數(shù)轉換器在信號采集系統(tǒng)中的應用[J].國外電子元器件,2006(2):67-71.?

[4] 潘松,黃繼業(yè),EDA技術實用教程[M]. 北京:科學出版社,2004.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。