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