現(xiàn)場可編程邏輯陣列(FPGA)資源豐富,結(jié)構(gòu)靈活,近年來發(fā)展迅猛。針對其特點,本文設(shè)計了基于FPGA的增量式光電編碼器的接口電路,實現(xiàn)了對增量式編碼器脈沖信號的倍頻、鑒相及計數(shù)等功能。最后仿真驗證了設(shè)計的可行性。為進一步實現(xiàn)高精度的位置伺服控制提供基礎(chǔ)。
光電編碼器是目前伺服系統(tǒng)中應(yīng)用最多的傳感器,它通過光電轉(zhuǎn)換將輸出軸上的機械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量。光電編碼器與電機相連,當(dāng)電機轉(zhuǎn)動時,帶動碼盤旋轉(zhuǎn),便發(fā)出轉(zhuǎn)速或轉(zhuǎn)角信號。
目前光電編碼器已經(jīng)普遍應(yīng)用在雷達、光電經(jīng)緯儀、地面指揮儀、機器人、數(shù)控機床和高精度閉環(huán)調(diào)速系統(tǒng)等諸多領(lǐng)域。根據(jù)其刻度方法及信號輸出形式,可分為增量式、絕對式以及混合式3種。
絕對型編碼器在轉(zhuǎn)軸的每一個位置均可讀出唯一對應(yīng)的數(shù)字碼,抗干擾、無需掉電記憶,但其制造工藝復(fù)雜、價格是增量型編碼器的幾倍到幾十倍。因此在實際的應(yīng)用中,增量型編碼器占據(jù)了統(tǒng)治地位。
增量式編碼器工作原理
增量式編碼器由光源、碼盤、檢測光柵、光電檢測器件和光電轉(zhuǎn)換電路組成,其原理如圖1所示。
圖1 增量式編碼器原理圖
當(dāng)碼盤隨同被測轉(zhuǎn)軸轉(zhuǎn)動時,檢測光柵保持不動。光線穿過碼盤和檢測光柵的縫隙照射在光電檢測器件上,光電檢測器件即會輸出相位相差900電度角的近似于正弦波的兩組差分電信號,這兩組差分信號再經(jīng)脈沖整形轉(zhuǎn)換為普通的單端電平信號,最后對兩個單端電平信號進行倍頻、鑒相和計數(shù)等操作,以得到碼盤旋轉(zhuǎn)的方向和位置。
本文旨在解決增量編碼器倍頻、鑒相、計數(shù)的問題,充分利用FPGA豐富的邏輯模塊和IO模塊,設(shè)計了一種簡單的接口電路,并行輸出結(jié)果以供進一步操作,如圖2所示。
圖2 編碼信號處理模塊
倍頻、鑒相、計數(shù)原理分析
編碼器碼盤和檢測光柵有兩組對應(yīng)的等間距透光縫隙,相互錯開1/4節(jié)距,用于在旋轉(zhuǎn)過程中對光電發(fā)送及接收裝置產(chǎn)生通斷變化,使得光電檢測器件輸出相位上相差90o的信號A、B。根據(jù)A和B的相位關(guān)系可判斷出碼盤的旋轉(zhuǎn)方向。
當(dāng)A相位超前B90o時,DIR(方向信號)為高電平,電機正轉(zhuǎn);當(dāng)A滯后B90o時,DIR(方向信號)為低電平,電機反轉(zhuǎn)。碼盤信號經(jīng)過計數(shù)器計數(shù)后得出碼盤旋轉(zhuǎn)的角度才能轉(zhuǎn)換為位置信息,計數(shù)器加減以方向信號為依據(jù)。
與此同時,碼盤上還有一個開孔用來判斷碼盤的絕對位置,即碼盤每旋轉(zhuǎn)一周將產(chǎn)生一個索引信號I,有的也用I作為對位、清零信號。如圖3所示。
圖3 編碼器輸出信號
編碼器每旋轉(zhuǎn)一周,A相和B相所輸出的脈沖數(shù)相同,脈沖數(shù)決定了編碼器的精度。
由圖3可知,在一個編碼脈沖輸出周期中,A和B信號共產(chǎn)生了4個跳變沿。捕捉每個跳變并且進行計數(shù),即:當(dāng)A為高電平時,B在上升沿則加1,下降沿則減1;A為低電平時,B在下降沿則減l,上升沿則加l;B為高電平時,A在上升沿則減1,下降沿則加l;在B為低電平時,A在上升沿則加1,下降沿則減l。
如此在每個周期內(nèi),碼盤正轉(zhuǎn)時計數(shù)4次,反轉(zhuǎn)時也計數(shù)4次,使計數(shù)脈沖數(shù)量增加了4倍。若一個編碼脈沖信號量化誤差為φ,則四倍頻后的量化誤差降為φ/4,其角位移的測量精度提高了4倍,同時光電碼盤的分辨率也提高了4倍。
信號四倍頻設(shè)計的關(guān)鍵在于捕捉A、B信號的上升沿和下降沿。本設(shè)計采用數(shù)字型電路即D觸發(fā)器作為延遲環(huán)節(jié)來檢測邊沿的變化,A、B相倍頻脈沖寬度和延時時間均由時鐘(外部有源晶振提供)控制,倍頻后的脈沖寬度一致,可以有效地克服傳統(tǒng)RC微分型或積分型邊沿檢測電路的不足。
A、B信號經(jīng)D觸發(fā)器后的信號分別記為A1、B1。將A1、B1作為倍頻的原始信號,將消除A、B信號中尖脈沖帶來的影響,提高了系統(tǒng)的抗干擾性能。A1、B1再經(jīng)過一個D觸發(fā)器,延時一個時鐘周期,將產(chǎn)生A2、B2信號。
即A2、B2分別滯后A1、B1一個時鐘周期,且A1、A2的相位分別滯后B1、B290o(假定此時電機反轉(zhuǎn),B1超前A190o),為了實現(xiàn)預(yù)期目的,需要能夠完全捕捉到一個周期內(nèi)脈沖的上升沿和下降沿,即圖4的圓黑點。
從圖4中虛線所示的狀態(tài)可知,A1和A2,B1和B2兩組信號里都有一組不同的電平狀態(tài),故采用3個異或門以求得信號的4倍頻信號F4_CLK。與此同時,采用兩個與非門來求得方向信號。
圖4 A、B信號經(jīng)D觸發(fā)器后的信號圖
光電編碼器線數(shù)為1024,四倍頻后旋轉(zhuǎn)一圈產(chǎn)生4096個脈沖,其精度為0.0879o。為滿足精度要求,本設(shè)計采用的是16位可逆計數(shù)器,計數(shù)范圍為-65536~65535,利用Altera公司的設(shè)計軟件自帶的LPM(宏功能模塊)模塊實現(xiàn)該計數(shù)模塊。
接口電路的設(shè)計與實現(xiàn)
本設(shè)計使用的軟件是Altera公司的Quartus II,選用的芯片是CycloneⅢ的EP3C16Q240。該芯片有15408個邏輯單元,56個乘法器,4個鎖相環(huán),20個全局時鐘網(wǎng)絡(luò),存儲器容量為504Kbit,最高工頻率可為437.5MHz,輸入輸出電壓3.3V[8],如此強大的資源足以實現(xiàn)設(shè)計預(yù)期的功能。
1 子模塊的原理圖設(shè)計
FPGA具有動態(tài)可系統(tǒng)重構(gòu)和靜態(tài)可重復(fù)編程的特性,使得可以像軟件一樣通過編程來修改硬件的功能。我們可以通過原理圖輸入或者HDL(硬件描述語言)來設(shè)計實現(xiàn)一個數(shù)字系統(tǒng)。根據(jù)上一節(jié)原理的介紹,生成倍頻、鑒相、計數(shù)模塊的頂層文件原理圖,如圖5所示。
圖5 頂層原理圖
其中,輸入為正交編碼信號A、B,輸出為16位計數(shù)結(jié)果。該頂層原理圖分為兩部分,一個是倍頻、鑒相模塊,如圖6所示;一個是使用自帶的宏功能模塊實現(xiàn)的計數(shù)模塊。編碼信號經(jīng)倍頻、鑒相后產(chǎn)生四倍頻信號F4_CLK、方向信號ENADD,再經(jīng)過pluse_count實現(xiàn)16位可逆計數(shù)功能。當(dāng)ENADD為高電平即碼盤正轉(zhuǎn)時,實現(xiàn)加法計數(shù);當(dāng)ENADD為低電平即碼盤反轉(zhuǎn)時,實現(xiàn)減法計數(shù)。
圖6 倍頻、鑒相原理圖
2 編譯及下載
在Quartus II中依次進行如下操作:新建工程、選擇目標(biāo)芯片、繪制原理圖、管腳分配、芯片參數(shù)及配置選項設(shè)置,即可對設(shè)計文件進行編譯。
編譯完成后將在工程文件夾下將生成后綴名為sof和pof的兩個下載文件,這兩個文件的區(qū)別在于:前者是通過JTAG口下載到FPGA芯片中(配置FPGA芯片),直接運行程序,而掉電后程序消失;后者是通過AS口下載到配置芯片中,上電后將自動完成配置,運行程序。
前者下載的速度快,一般用于FPGA的調(diào)試過程;而后者由于是燒寫EPCS配置芯片(實際上是串行FLASH),速度較慢,一般用于開發(fā)后期的程序固化。本次設(shè)計也是遵循調(diào)試階段采用JTAG模式燒寫下載,待程序確定后采用AS模式燒寫下載。
波形仿真及分析
編譯通過后,我們使用Quartus II自帶的仿真器進行功能仿真以驗證設(shè)計的邏輯是否正確。在建立矢量源文件時,首先設(shè)置編碼信號A超前B 90o得到仿真結(jié)果如圖7所示;然后設(shè)置編碼信號B超前A 90o得到仿真結(jié)果如圖8所示。
從圖7、圖8中可以看出,當(dāng)信號A超前B 90o即電機正轉(zhuǎn)時,方向信號為高電平,實現(xiàn)四倍頻且一個周期內(nèi)加法計數(shù)4次;反之,當(dāng)信號B超前A 90o即電機反轉(zhuǎn)時,方向信號為低電平,同樣實現(xiàn)四倍頻且一個周期內(nèi)減法計數(shù)4次。由此可知,仿真結(jié)果與理論分析完全一致,本接口電路邏輯正確,具有實際意義。
在實際調(diào)試階段中,連接好編碼器和電路板,通過QuartusII的Signaltap II來捕捉和顯示實時信號,所得的結(jié)果與預(yù)期也是一致的,從而進一步驗證了設(shè)計的可靠性。
圖7 信號A超前B 90o仿真結(jié)果
圖8 信號B超前A 90o仿真結(jié)果
小結(jié)
基于FPGA的增量式編碼器的接口設(shè)計實現(xiàn)了對編碼信號數(shù)據(jù)的采集和處理,克服了使用ASIC(專用集成電路)對數(shù)據(jù)進行處理而產(chǎn)生的編譯復(fù)雜、通用性差等缺點。該接口電路具有適用性好、集成度高、抗干擾性強、運行可靠、數(shù)據(jù)處理快等優(yōu)點,適用于各種需要使用增量式編碼器測量位置和速度的場合。
編輯:lyn
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601239 -
接口電路
+關(guān)注
關(guān)注
8文章
461瀏覽量
57025 -
光電編碼器
+關(guān)注
關(guān)注
7文章
113瀏覽量
31284
發(fā)布評論請先 登錄
相關(guān)推薦
評論