葉沉
【摘要】 電壓采集系統(tǒng)是在工業(yè)自動化應(yīng)用中常見的一種數(shù)據(jù)采集系統(tǒng),被廣泛應(yīng)用在工業(yè)自動化控制和無線廣播發(fā)射機控制等領(lǐng)域?;贔PGA設(shè)計的含有多路通信串口的電壓采集系統(tǒng)是以FPGA為核心器件,通過控制模數(shù)轉(zhuǎn)換芯片對模擬電壓進行采樣,將采樣結(jié)果通過多路串口傳輸?shù)蕉鄠€上位機的一種數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)通過在FPGA內(nèi)部復(fù)用功能模塊的方式,在一個系統(tǒng)中提供多達八個通信串口資源,解決了在需要多個串口同時上傳數(shù)據(jù)的情況下,有些電壓采集系統(tǒng)通信串口數(shù)量不足的問題。
【關(guān)鍵詞】 FPGA 電壓采集 模數(shù)轉(zhuǎn)換 多路通信串口
在對無線廣播發(fā)射機的工作狀態(tài)進行現(xiàn)場監(jiān)控時,需要對發(fā)射機的多個節(jié)點電壓量進行采集,并將采集到的多組電壓值上傳至監(jiān)控平臺的多個PC端進行分析和顯示?;贔PGA設(shè)計的含有多路通信串口的電壓采集系統(tǒng)是一個能夠采集八路模擬電壓量的電壓采集系統(tǒng),該系統(tǒng)的模擬電壓輸入范圍為±5V,允許最大誤差為±0.005V,最大可提供八個通信串口,很好的滿足了對無線廣播發(fā)射機的多個節(jié)點電壓量進行采集和傳輸?shù)男枨??!?/p>
該電壓采集系統(tǒng)采用Xilinx公司推出的Virtex5系列FPGA產(chǎn)品作為設(shè)計載體,在FPGA內(nèi)部復(fù)用設(shè)計了八個串口通信模塊,每個模塊可獨立實現(xiàn)一路串口的收發(fā)功能,串口波特率設(shè)置均為19200,數(shù)據(jù)位為8bit,無奇偶校驗,停止位1bit。
由于FPGA屬于并行邏輯電路結(jié)構(gòu),各個串口模塊可同時進行數(shù)據(jù)收發(fā)而不會相互影響,利用FPGA支持的調(diào)用IP核設(shè)計方式,在每個串口模塊的前端,為發(fā)送和接收端分別配置一個FIFO模塊,用于對通信數(shù)據(jù)進行緩存。通過對FIFO的IP核進行簡單設(shè)置,為每一個串口模塊設(shè)計出FIFO緩沖單元,提高了各路串口的傳輸效率,從而簡單有效的完成各路串口的數(shù)據(jù)緩沖功能設(shè)計。
根據(jù)對模擬電壓量的采樣需求,電壓采樣系統(tǒng)需要提供100kpps以上的采樣率才能夠滿足系統(tǒng)的整體設(shè)計要求,綜合考慮模擬電壓范圍為±5V,允許最大誤差±0.005V等設(shè)計要求,該電壓采集系統(tǒng)采用型號為AD7892的模數(shù)轉(zhuǎn)換芯片,配合多路模擬量選通器件實現(xiàn)八路模擬電壓量的采樣功能。
AD7892是一款12位的支持雙極性輸入的ADC芯片,提供串行接口和并行接口兩種輸出方式。為實現(xiàn)最佳的數(shù)據(jù)傳輸效率,該電壓采集系統(tǒng)選用的是12…bit的并行接口方式完成ADC芯片與FPGA之間的數(shù)據(jù)傳輸。
單次的采樣過程為FPGA控制多路模擬量選通器,將已經(jīng)經(jīng)過濾波的一路模擬電壓輸入信號選通至AD7892芯片的輸入端,模數(shù)轉(zhuǎn)換完成后,ADC芯片將12…bit的模擬電壓值通過并行總線輸出,同時給出輸出有效標志信號。
FPGA通過判斷該標志信號狀態(tài),在標志位有效的情況下將并行總線上12…bit的模擬電壓數(shù)據(jù)鎖存到FPGA內(nèi)部的觸發(fā)器中,然后通過添位擴充的方式將12…bit的數(shù)據(jù)擴充到16…bit,轉(zhuǎn)換成兩個字節(jié)的數(shù)據(jù),以便于按字節(jié)進行傳輸。
具體采用的擴充方式為將12…bit數(shù)據(jù)中的高位6個bit前面補充2個bit的‘0,構(gòu)成“00xxxxxx”樣式的一個高字節(jié)數(shù)據(jù),再將12…bit數(shù)據(jù)中的低位6個bit前面補充2個bit的‘1,構(gòu)成“11xxxxxx”樣式的一個低字節(jié)數(shù)據(jù)。
擴充好個兩個字節(jié)的數(shù)據(jù)首先按順序依次存入串口的發(fā)送FIFO中進行數(shù)據(jù)緩沖,待該路串口的發(fā)送端沒有數(shù)據(jù)待發(fā)送時,系統(tǒng)從FIFO中讀取數(shù)據(jù)到串口發(fā)送端進行數(shù)據(jù)的發(fā)送。
PC端通過串口接收到該路的數(shù)據(jù)后,對每個字節(jié)數(shù)據(jù)的前2個bit進行判別,并按照先處理“00xxxxxx”字節(jié)得到高位的6個bit采樣數(shù)據(jù),后處理“11xxxxxx”字節(jié)得到地位的6個bit采樣數(shù)據(jù),按先后順序便可以還原出單路一次采樣得到的12…bit的模擬電壓值。
傳統(tǒng)的電壓采集系統(tǒng)的設(shè)計,通常采用的是單片機或DSP處理器與ADC芯片組合的設(shè)計方式,這種設(shè)計方式的優(yōu)點是開發(fā)工具支持C語言進行設(shè)計編程,便于對系統(tǒng)的開發(fā)與調(diào)試,開發(fā)成本較低。
但由于現(xiàn)場應(yīng)用需求的特殊性,系統(tǒng)需要同時提供八個通信串口,并且要求能夠?qū)崟r的將采集數(shù)據(jù)上傳至多個PC終端,而單片機或DSP處理器一般只提供2個到3個串口外設(shè)。
雖然通過軟件編程方式可以再額外模擬出幾路串口,但系統(tǒng)的穩(wěn)定性和通信速度都會大大降低,無法滿足現(xiàn)場應(yīng)用的需求。
采用Virtex5系列FPGA作為該電壓采集系統(tǒng)的核心電路,與12位模數(shù)轉(zhuǎn)換芯片AD7892的組合既實現(xiàn)了多串口通信,又達到了很好的硬件處理能力,拓展了電壓采集系統(tǒng)的應(yīng)用范圍。
參 考 文 獻
[1]…徐文波,田耘.《Xilinx…FPGA開發(fā)使用教程》.…2012
[2]…薛小剛,葛毅敏.《Xilinx…ISE…9.X…FPGA/CPLD設(shè)計指南》….…2007
[3]…孫航,胡靈博,于聯(lián)鋒,樊彧.《Xilinx可編程邏輯器件應(yīng)用與系統(tǒng)設(shè)計》.…2008