王先全,張虹光,雷毅談,余 堯,朱桂林
(1.重慶理工大學(xué)電子信息與自動(dòng)化學(xué)院,重慶 400054;2.機(jī)械檢測技術(shù)與裝備教育部工程研究中心,重慶 400054)
?
基于FPGA多路時(shí)柵位移傳感器數(shù)據(jù)采集與處理系統(tǒng)
王先全1,張虹光2,雷毅談2,余 堯2,朱桂林2
(1.重慶理工大學(xué)電子信息與自動(dòng)化學(xué)院,重慶 400054;2.機(jī)械檢測技術(shù)與裝備教育部工程研究中心,重慶 400054)
為解決多路時(shí)柵傳感器協(xié)同工作而相互干擾的問題,減少多路傳感器協(xié)同工作時(shí)數(shù)據(jù)采集的復(fù)雜程度。用分時(shí)激勵(lì)、分時(shí)采集和排隊(duì)發(fā)送數(shù)據(jù)來消除多路傳感器相互影響的思想,設(shè)計(jì)了基于FPGA的高精度分時(shí)激勵(lì)電路、采集電路和串口發(fā)送電路。利用QUARTUS Ⅱ9.0開發(fā)平臺(tái),用SignalTap Ⅱ進(jìn)行邏輯分析,并通過兩個(gè)時(shí)柵位移傳感器搭建試驗(yàn)平臺(tái)。試驗(yàn)表明,采用分時(shí)激勵(lì)和分時(shí)采集的方法,傳感器的精度從原來的±3″提高到±1″,可以有效解決多傳感器相互干擾的問題。
時(shí)柵位移傳感器;狀態(tài)機(jī);FPGA;分時(shí)激勵(lì);分時(shí)采集
時(shí)柵位移傳感器是時(shí)空轉(zhuǎn)換思想實(shí)現(xiàn)位移測量的新型傳感器,通過坐標(biāo)轉(zhuǎn)換與相對(duì)論的理論與系統(tǒng),使用時(shí)鐘脈沖插補(bǔ)空間位移[1-2]。實(shí)現(xiàn)高分辨力、高精度的空間位移測量。
傳統(tǒng)的時(shí)柵位移傳感器信號(hào)處理系統(tǒng)只針對(duì)單個(gè)傳感器,包含一個(gè)激勵(lì)電路、相位/周期檢測電路和一個(gè)數(shù)據(jù)通訊接口[2-3]。但是在某些特殊情況下要求同時(shí)使用兩個(gè)或者多個(gè)傳感器,相應(yīng)地配置兩個(gè)或多個(gè)信號(hào)處理系統(tǒng),不僅成本高、控制復(fù)雜,而且多個(gè)傳感器同時(shí)工作而互相干擾也難以處理,導(dǎo)致傳感器精度的下降。為能夠適應(yīng)這種特殊要求,利用高速FPGA,通過有限狀態(tài)機(jī)和鎖相環(huán)技術(shù)實(shí)現(xiàn)時(shí)柵位移傳感器相位/周期的檢測和數(shù)據(jù)高效準(zhǔn)確的發(fā)送。為避免多傳感器之間的相互干擾,采用分時(shí)激勵(lì)、分時(shí)采集的手段,保證傳感器的精度,且成本低、控制簡單。
柵位移傳感器通過對(duì)動(dòng)測頭和定測頭的周期與相位差的檢測,分別輸出周期和相位信息[4]。為實(shí)現(xiàn)多路時(shí)柵數(shù)據(jù)高速、穩(wěn)定的發(fā)送,利用了FPGA設(shè)計(jì)實(shí)現(xiàn)多路時(shí)柵位移傳感器數(shù)據(jù)采集與處理系統(tǒng),系統(tǒng)的總體設(shè)計(jì)如圖1所示。
圖1 總體設(shè)計(jì)圖
激勵(lì)模塊產(chǎn)生高精度三相互成120°正弦激勵(lì),傳感器選擇模塊為指定傳感器添加激勵(lì),激勵(lì)通過傳感器形成行波,行波經(jīng)過放大、濾波、整形,在周期/相位檢測模塊中處理并得到周期/相位信息??刂婆c編碼模塊一方面控制三相激勵(lì)發(fā)出激勵(lì)源,施加指定傳感器并把該傳感器的感應(yīng)信號(hào)送至相位/周期檢測模塊,通過這種控制實(shí)現(xiàn)分時(shí)激勵(lì)、分時(shí)采集;另一方面將周期/相位信息、傳感器選擇信息、采集點(diǎn)數(shù)信息,并按一定規(guī)律編碼成一個(gè)32位二進(jìn)制數(shù)據(jù);通過狀態(tài)機(jī)設(shè)計(jì)的UART模塊送至PC機(jī),供PC機(jī)進(jìn)行進(jìn)一步數(shù)據(jù)處理和誤差運(yùn)算。解決分時(shí)激勵(lì)、分時(shí)采集、排隊(duì)發(fā)送問題。
2.1 高精度激勵(lì)電源的設(shè)計(jì)
高精度激勵(lì)電源是獲取高質(zhì)量時(shí)柵傳感器原始信號(hào)的基礎(chǔ)。系統(tǒng)選用FPGA配合2片16位雙通道高精度DAC轉(zhuǎn)換芯片AD5547,利用硬件電路配合軟件產(chǎn)生高精度三相激勵(lì)電源。硬件設(shè)計(jì)圖如圖2所示。
圖2 激勵(lì)源硬件設(shè)計(jì)圖
為使激勵(lì)電源更精確,整周選取4 096個(gè)點(diǎn)逼近400 Hz的正弦信號(hào),為節(jié)約存儲(chǔ)空間,利用正弦信號(hào)的對(duì)稱性,只選取1/4周期個(gè)數(shù)據(jù)點(diǎn),通過計(jì)算完成整周正弦信號(hào)的設(shè)計(jì),用時(shí)鐘信號(hào)為80 MHz的FPGA控制2片DAC,產(chǎn)生三相正弦激勵(lì)電源。
FPGA中包括1 024個(gè)數(shù)據(jù)點(diǎn)、運(yùn)算器和控制器3個(gè)主要部分。運(yùn)算器通過存儲(chǔ)區(qū)數(shù)據(jù),根據(jù)不同象限數(shù)據(jù)增減性和正負(fù)性的差異,利用存儲(chǔ)區(qū)數(shù)據(jù)點(diǎn)運(yùn)算產(chǎn)生整周正弦數(shù)據(jù)。控制器控制運(yùn)算器輸出可靠的數(shù)據(jù)(DA、DB),讀取對(duì)應(yīng)數(shù)據(jù)的地址信息(ADDRA、ADDRB)。寫入數(shù)據(jù)時(shí)對(duì)DAC給定地址芯片的RW低電平,通過A0、A1選取通道,然后數(shù)據(jù)DATA寫入DAC,寫入數(shù)據(jù)后LDAC輸出高電平更新DAC緩存數(shù)據(jù)。三相分別做以上操作后RS同時(shí)低電平有效,同步三相輸出,產(chǎn)生三相激勵(lì)電源。
2.2 相位和周期檢測模塊的設(shè)計(jì)
時(shí)柵位移傳感器就是要用高頻時(shí)鐘信號(hào)測量感應(yīng)信號(hào)的周期和動(dòng)、定測頭的相位差,通過計(jì)算得到傳感器的角位移[5]。為提高傳感器的精度,利用鎖相環(huán),設(shè)計(jì)了相位/周期檢測的系統(tǒng)。系統(tǒng)時(shí)鐘80 MHz,通過鎖相環(huán)倍頻到240 MHz,并根據(jù)鎖相的功能實(shí)現(xiàn)不同相位的時(shí)鐘信號(hào),用VHDL語言編寫控制器、相位/周期檢測器和加法器,控制器根據(jù)定、動(dòng)測頭放大整形后方波的過零點(diǎn),控制相位/周期檢測器檢測對(duì)應(yīng)的時(shí)鐘信號(hào)[3-4],加法器把四路檢測器檢測到的數(shù)據(jù)相加,得到高精度的相位/周期信息。鎖存器鎖存數(shù)據(jù)并根據(jù)控制器的指示輸出相位和周期信息。系統(tǒng)框圖如圖3所示。
圖3 相位/周期檢測設(shè)計(jì)框圖
2.3 控制與編碼模塊的設(shè)計(jì)
控制與編碼模塊主要對(duì)數(shù)據(jù)進(jìn)行有規(guī)律的編碼和控制分時(shí)激勵(lì)、分時(shí)采集兩個(gè)功能。編碼是按一定編碼規(guī)則將數(shù)據(jù)整合成有規(guī)律的32位數(shù)據(jù),每個(gè)數(shù)據(jù)位都有其特定的含義。然后將32位已編碼數(shù)據(jù)按照8位1組的形式放在控制器的緩存中,通過UART發(fā)送到上位機(jī)。表1 給出數(shù)據(jù)位數(shù)和代表的意義。
表1 編碼數(shù)據(jù)說明表
控制是按一定的設(shè)計(jì)時(shí)序和控制信號(hào)通斷實(shí)現(xiàn)分時(shí)激勵(lì)、分時(shí)采集??梢苑譃榭刂萍?lì)、控制傳感器選擇、控制采集點(diǎn)數(shù)和控制串口發(fā)送。激勵(lì)電源選通后,控制模擬多路選擇器設(shè)計(jì)的傳感器選擇模塊,選擇傳感器并選通該通道的信號(hào)。當(dāng)對(duì)于某些特殊需求需要多點(diǎn)采集,控制器生成點(diǎn)數(shù)信息,編碼后的32位數(shù)據(jù)通過控制器每8位1組,按一定時(shí)間間隔放在UART的緩存中,并告知串口數(shù)據(jù)裝載成功,可以發(fā)送。
2.4 選擇模塊設(shè)計(jì)
傳感器選擇模塊利用模擬多路選擇器,控制與編碼模塊控制選擇器,實(shí)現(xiàn)對(duì)傳感器的選擇。傳感器輸出選擇根據(jù)多路選擇器思想,在FPGA中設(shè)計(jì)選擇器。實(shí)現(xiàn)對(duì)傳感器輸出信號(hào)的選擇。為保證選擇的同步性,兩個(gè)選擇器同時(shí)給出選擇信號(hào),確保信號(hào)通道通暢。
2.5 狀態(tài)機(jī)設(shè)計(jì)UART
通用異步串行收發(fā)器可以和多種標(biāo)準(zhǔn)串行數(shù)據(jù)總線相接,其數(shù)據(jù)結(jié)構(gòu)簡單,發(fā)送數(shù)據(jù)位可變,協(xié)議簡潔,在工程中被廣泛使用[6-7]。為使模塊中的數(shù)據(jù)通訊穩(wěn)定、高速,應(yīng)用FPGA中的狀態(tài)機(jī)設(shè)計(jì)UART的時(shí)序。該模塊要設(shè)計(jì)一個(gè)波特率發(fā)生器,應(yīng)用時(shí)鐘是80 MHz,如分頻到9 600。約520分頻實(shí)現(xiàn)9 600波特率。實(shí)驗(yàn)中選取9 600波特率。其狀態(tài)轉(zhuǎn)換圖如圖4所示。
圖4 發(fā)送器狀態(tài)轉(zhuǎn)移圖
發(fā)送狀態(tài)機(jī)一共有5個(gè)狀態(tài):X_IDLE(空閑);X_START(起始);X_WAIT(移位等待);X_SHIFT(移位);X_STOP(停止位)。
電路復(fù)位后將進(jìn)入空閑狀態(tài),發(fā)送器等待數(shù)據(jù)發(fā)送命令XMIT_CMD的上升沿,而CMD_P是為防止出現(xiàn)邏輯錯(cuò)誤,對(duì)XMIT_CMD進(jìn)行脈沖寬度后處理的命令信號(hào)。發(fā)送器將進(jìn)入起始狀態(tài),開始發(fā)送起始位(邏輯零)同時(shí)進(jìn)入等待狀態(tài),滿足發(fā)送條件就移位發(fā)送,單個(gè)數(shù)據(jù)發(fā)送完后回到等待狀態(tài),數(shù)據(jù)幀發(fā)送完畢后停止,等待下一次發(fā)送。
2.6 頂層文件的設(shè)計(jì)
在FPGA中選擇并設(shè)計(jì)自帶的鎖相環(huán),添加到頂層文件中,把各個(gè)模塊在FPGA中編譯并在邏輯分析儀SignalTap Ⅱ上進(jìn)行邏輯分析。把模塊封裝成硬件模塊電路,根據(jù)設(shè)計(jì)把電路模塊連接,編譯通過后,綁定管腳下載到EP3C25EI4417N中。圖5為FPGA的電路模塊連接圖。
圖5 頂層文件圖
試驗(yàn)選用兩個(gè)傳感器測試數(shù)據(jù)采集系統(tǒng)的可行性。搭建了基于PMAC卡控制的高精度直驅(qū)式誤差采樣與對(duì)比試驗(yàn)系統(tǒng),該系統(tǒng)配備了高精度的光柵傳感器(RON886)作為誤差標(biāo)定基準(zhǔn)。試驗(yàn)裝置如圖6所示。
圖6 試驗(yàn)平臺(tái)實(shí)體圖
兩個(gè)傳感器同軸安裝,傳感器之間不加屏蔽裝置,同時(shí)比較使用兩個(gè)獨(dú)立系統(tǒng)和使用單個(gè)分時(shí)激勵(lì)、分時(shí)采集系統(tǒng)。試驗(yàn)結(jié)果表明多路時(shí)柵位移傳感器數(shù)據(jù)采集和處理系統(tǒng)切實(shí)可行,數(shù)據(jù)精度高。采集系統(tǒng)有效避免了兩個(gè)傳感器互相干擾,簡化系統(tǒng),降低成本。精度由最初試驗(yàn)的±3″提高到改進(jìn)系統(tǒng)后的±1″。
通過上述系統(tǒng)的設(shè)計(jì),利用FPGA配合16位DAC產(chǎn)生時(shí)柵位移傳感器的高精度激勵(lì)電源,提高原始信號(hào)的質(zhì)量。設(shè)計(jì)鎖相環(huán)實(shí)現(xiàn)系統(tǒng)的周期測量和相位比較,提高了分辨力和測量精度。編碼實(shí)現(xiàn)多傳感器、多數(shù)據(jù)編碼,有助于誤差分析和數(shù)據(jù)處理??刂茖?shí)現(xiàn)分時(shí)激勵(lì)、分時(shí)采集,解決多傳感器協(xié)同工作時(shí)的干擾問題,保證了傳感器的測量精度。有限狀態(tài)機(jī)UART實(shí)現(xiàn)數(shù)據(jù)發(fā)送,數(shù)據(jù)發(fā)送穩(wěn)定高效。
[1] 彭東林.時(shí)柵位移傳感器與新型機(jī)床動(dòng)態(tài)檢測系統(tǒng).北京:科學(xué)出版社,2010:56-58.
[2] 彭東林,劉小康,張興紅,等.時(shí)柵位移傳感器原理與發(fā)展歷程.重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2010(10):40-45.
[3] 鄭方燕,王寶珠.基于SOPC的時(shí)柵位移傳感器信號(hào)處理系統(tǒng)設(shè)計(jì).傳感技術(shù)學(xué)報(bào),2012(10):1429-1432.
[4] 馮濟(jì)琴,謝啟河,彭東林,等.基于FPGA的時(shí)柵傳感器信息處理系統(tǒng).儀表技術(shù)與傳感器,2013(6):11-12.
[5] 彭東林,劉成康,譚為民. 時(shí)空坐標(biāo)轉(zhuǎn)換與柵式位移傳感器研究.儀器儀表學(xué)報(bào),2000 (4):338-242.
[6] 袁志軍.基于FPGA的高速率多串口擴(kuò)展的設(shè)計(jì)與實(shí)現(xiàn):[學(xué)位論文].哈爾濱:哈爾濱工業(yè)大學(xué),2008.
[7] 徐云.基于FPGA的多路高速串口設(shè)計(jì)與實(shí)現(xiàn):[學(xué)位論文].西安:西安電子科技大學(xué),2010.
作者簡介:王先全(1968 — ),教授,碩士,主要研究領(lǐng)域?yàn)橹悄軅鞲衅骱陀?jì)算機(jī)軟件。E-mail:wangxq@cqut.edu.cn
Multiple Time Grating Sensors Data Acquisition System Based on FPGA
WANG Xian-quan1,ZHANG Hong-guang2,LEI Yi-tan2,YU Yao2,ZHU Gui-lin2
(1. Department of Electronic Engineering Chongqing University of Technology, Chongqing 400054, China; 2.EngineeringResearch Center of Mechanical Testing Technology and Equipment,Ministry of Education,Chongqing 400054,China)
To solve the problem of interfere when multiple time grating sensors work cooperatively and reduce the complexity of data acquisition, using time-sharing excitation, time-sharing acquisition and queuing to send data , this paper designed an FPGA-based high-precision time-sharing excitation circuit, acquisition circuit and state machine serial transmission circuit. Using QUARTUS Ⅱ 9.0 development platform, then logical analyzed in the logic analyzer SignalTap Ⅱ, we built two time grating sensors experimental platform. Experimental results show that the use of the method time-sharing excitation and time-sharing making the acquisition accuracy of the sensor from the original ± 3”up to ± 1”, which can effectively solve the multi-sensor mutual interference.
time grating sensor;state machine;FPGA;time-sharing excitation;time-sharing acquisition
趙燕君(1965—),工程師,主要研究方向:電力系統(tǒng)運(yùn)行與檢修。E-mail:ql26333@163.com
國家自然科學(xué)基金資助項(xiàng)目(51275551);重慶市自然科學(xué)基金資助項(xiàng)目(cstc2012jjA40062)
2014-01-17 收修改稿日期:2014-10-18
TP274
A
1002-1841(2015)01-0108-03