摘 要:本文對光柵尺的數(shù)據(jù)采集進(jìn)行了研究,對其輸出的脈沖信號(hào)使用FPGA進(jìn)行了采集,在FPGA內(nèi)部采用細(xì)分,辨向,計(jì)數(shù),緩存的處理手段實(shí)現(xiàn)了光柵尺的脈沖信號(hào)處理,使用Verilog HDL語言實(shí)現(xiàn)了處理邏輯,并通過了仿真驗(yàn)證。處理后的數(shù)據(jù)緩存到FIFO中輸出給了USB接口,以通過其傳輸給上位機(jī)。
關(guān)鍵詞:光柵尺 FPGA USB 數(shù)據(jù)處理
中圖分類號(hào):TM938 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2011)03(c)-0089-01
引言
光電軸角編碼器,又稱光電角位置傳感器。它以高精度計(jì)量圓光柵為檢測元件,通過光電轉(zhuǎn)換,將輸入的角位置信息轉(zhuǎn)換成相應(yīng)的數(shù)字代碼,并可與計(jì)算機(jī)及顯示裝置相連接,不僅能夠?qū)崿F(xiàn)數(shù)字測量與數(shù)字控制,而且與其它同類用途的傳感器相比,具有精度高,測量范圍廣體積小、重量輕,使用可靠,易于維護(hù)等優(yōu)點(diǎn),具有較高的性能價(jià)格比,因此已普遍應(yīng)用在雷達(dá)、光電經(jīng)緯儀、地面指揮儀、機(jī)器人、數(shù)控機(jī)床和高精度閉環(huán)調(diào)速系統(tǒng)等諸多領(lǐng)域,是自動(dòng)化設(shè)備理想的角度傳感器[1]。
本文使用RENISHAW公司生產(chǎn)的光柵尺解碼器對光電軸角編碼器進(jìn)行讀數(shù),讀數(shù)頭通過26針的D型插座輸出2組差分增量信號(hào),然后使用FPGA對其輸出的信號(hào)進(jìn)行采集處理,然后通過USB接口把數(shù)據(jù)傳送到上位機(jī)。
1 原理及實(shí)現(xiàn)
光柵尺讀數(shù)頭的輸出脈沖是相位相差90°的兩路脈沖方波,當(dāng)軸沿著逆時(shí)針方向旋轉(zhuǎn)時(shí),A信號(hào)領(lǐng)先于B信號(hào)相位90°,當(dāng)軸沿著順時(shí)針方向旋轉(zhuǎn)時(shí),B信號(hào)領(lǐng)先于A信號(hào)相位90°。A,B信號(hào)頻率的高低變化反映了軸旋轉(zhuǎn)速度的改變。
辨向邏輯的任務(wù)就是分清楚軸是順時(shí)針還是逆時(shí)針旋轉(zhuǎn),通過分析A,B路的輸出波形可以總結(jié)出,當(dāng)檢測到A信號(hào)的正跳變沿時(shí),檢查B信號(hào)的狀態(tài)。若此時(shí)B信號(hào)為低,則可知旋轉(zhuǎn)沿著逆時(shí)針方向旋轉(zhuǎn),若此時(shí)B信號(hào)為高,則是沿著逆時(shí)針方向旋轉(zhuǎn)的。
細(xì)分邏輯的任務(wù)就是提高光柵精度,通過對A和B信號(hào)的全部上升沿和下降沿進(jìn)行計(jì)數(shù),不需要專用的細(xì)分模塊,即可實(shí)現(xiàn)四細(xì)分;并通過在每個(gè)跳變沿判斷A與B的電平高低來實(shí)現(xiàn)辨向。
根據(jù)上述的原理可以寫出verilog HDL的部分代碼如下。
always @(rst or a)
if (!rst) q <= 524288;
else
begin
if (a==b) q=q-1;
else q=q+1;
end
always @(rst or b)
if (!rst) q <= 524288;
else
begin
if (a==b) q=q+1;
else q=q-1;
end
通過XILINX ISE的仿真圖如圖1所示:
可以看出該模塊完整的實(shí)現(xiàn)了對光柵尺的細(xì)分辨向及計(jì)數(shù)的功能。
2 與上位機(jī)的接口
細(xì)分辨向后的數(shù)據(jù)通過一個(gè)鎖存器存起來,并且以一定的頻率輸送到內(nèi)部的FIFO中,內(nèi)部FIFO與一片CY7C68013連接,CY7C68013是高集成、低功耗 USB 2.0 微控制器。
EZ-USB FX2(CY7C68013) 的一個(gè)低功耗版本。通過將USB2.0收發(fā)器、串行接口引擎(SIE)、增強(qiáng)型8051微控制器,以及可編程外設(shè)接口集成到一個(gè)芯片中,賽普拉斯研發(fā)出一個(gè)極具成本優(yōu)勢的解決方案,不僅能在極短時(shí)間內(nèi)完成從立項(xiàng)到投放市場的過程,而且其低功耗特點(diǎn)使得總線供電應(yīng)用成為可能[2]。FPGA與CY7C68013的連接圖如圖2所示。
通過編寫用于實(shí)現(xiàn)FPGA與CY68013的接口模塊程序,USB固件程序,USB設(shè)備驅(qū)動(dòng)程序以及客戶端應(yīng)用程序就可以實(shí)現(xiàn)FPGA與外部上位機(jī)的通信,由于USB通信的模塊已經(jīng)很成熟,這里就不列出具體的代碼。
3 結(jié)語
本系統(tǒng)只是導(dǎo)航采集系統(tǒng)中的一個(gè)小部分,在實(shí)際的工程中所要采集的數(shù)據(jù)遠(yuǎn)遠(yuǎn)不止這兩組,但是通過FPGA的并行性能和良好的可擴(kuò)張性,可以輕松的實(shí)現(xiàn)12組數(shù)據(jù)的并行采集,并且在FPGA的控制邏輯下可以保證很高的實(shí)時(shí)性和可靠性。
參考文獻(xiàn)
[1]董莉莉,熊經(jīng)武.光電編碼器的發(fā)展動(dòng)態(tài)[J].光學(xué)精密工程,2000(8):24~27.
[2]Cypress Semiconductor Corporation.EZ-USB FX2 TechnicalReference Manual(Version2.1).www.cypress.com.2003.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文