雷增強,許輝勇,程 剛,沈良吉,陳志學
基于CPLD的增量式調焦編碼器讀出電路的設計
雷增強1,許輝勇2,程 剛1,沈良吉1,陳志學1
(1. 西安應用光學研究所,陜西 西安 710065;2. 西安微電子技術研究所,陜西 西安 710065)
在紅外熱像儀調焦系統設計中,通過電機帶動調焦鏡組沿直線導軌往復運動,從而對調焦鏡組的位置精確變化實現焦距的變化。為了精確控制調焦鏡組的位置,調焦控制系統需要高分辨率的編碼器實時反饋調焦鏡組的位置,以實現對調焦鏡組的閉環控制。紅外熱像儀調焦控制系統中采用增量式光電編碼器作為調焦鏡組位置的反饋測量元件。針對增量式編碼器的特點,利用CPLD(complex programmable logic device)豐富的邏輯資源和可編程的靈活性,設計了一種讀出電路,可以實時精確反饋調焦鏡組的位置。經實際項目驗證,該方案可以實時并精確地讀出增量式光電編碼器的位置信息,具有一定的抗干擾能力,可以實現高精度的位置伺服控制,滿足系統要求。
閉環控制;增量式光電編碼器;CPLD;讀出電路
紅外熱像儀調焦系統是通過改變光學組件之間的相對位置來實現焦距變化,從而完成多個視場成像的。在現有工程樣機調焦控制過程中,通過步進電機帶動紅外熱像儀調焦鏡組的位置精確變化,從而實現產品焦距的變化。在熱像儀的調焦機構中,位置傳感器固定在電機驅動的調焦鏡組支架上[1],使其滑動位置與調焦鏡組的位置變化保持一致,于是就可以通過此位置傳感器來實現調焦鏡組位置的實時性反饋,實現調焦閉環控制。在傳統的紅外調焦控制系統中,由于電阻式角位移傳感器的結構簡單、易于制造、價格便宜、性能穩定、輸出功率大[2],常常用作獲取位置變化,但是其分辨率低。在高精度的調焦控制系統中,電位器式傳感器就無法滿足設計要求,因此必須使用高分辨率的傳感器來獲取位置變化。
光電編碼器在現代電機控制系統中常用以檢測轉子的位置與速度,是通過光電轉換將輸出軸上的機械幾何位移量轉換成脈沖或數字量的高精度角位置測量傳感器。由于其具有分辨率高、響應速度快、體積小、輸出穩定等特點,被廣泛應用于電機伺服控制系統中[3]。光電編碼器分為絕對值編碼器和增量式編碼器兩種,鑒于絕對式光電編碼器價格高、制造工藝復雜,不易實現小型化的缺陷,增量式編碼器具有成本低、測角測速精度高,可以實現小型化等優勢[4]。在紅外熱像儀調焦控制中,增量式編碼器被用于檢測閉環控制的位置反饋信號。
增量式光電編碼器有這樣一個特點:編碼器每產生一個輸出脈沖信號就對應一個增量位移,但是不能得到輸出軸轉動的絕對位置信息。增量式光電編碼器能夠產生與位移增量等值的脈沖信號,提供一種對連續位移量離散化或增量化以及位移變化的傳感方法,是相對于某個基準點的相對位置增量[5]。增量式光電編碼器的輸出信號為方波信號A、B信號及Z基準定位信號,A、B信號波形相同,而在相位上相差90°,Z信號計算增量式編碼器軸轉過的圈數。增量式編碼器每旋轉一周,A與B輸出脈沖個數相同,其脈沖數決定了增量式編碼器的精度[6],通過讀取編碼器的輸出脈沖數(A/B)和編碼器軸轉過的圈數(Z),便可計算出其相對位移量。由于增量式光電編碼器不具有計數和接口電路,因此本文利用復雜可編程邏輯器件(Complex Programmable Logic Device, CPLD)內部豐富的邏輯資源和可編程的靈活性,設計出一種基于CPLD的增量式編碼器讀出電路,具備分辨精度高、性能可靠、調試維護靈活等優點,并行輸出計數結果與單片機通信。
增量式編碼器直接利用光電轉換原理輸出3組方波脈沖A、B、Z相。其中A、B為兩信號相位相差90°的正交方波脈沖,A相或B相的每個脈沖代表調焦鏡組旋轉了一定角度。Z相每旋轉一圈輸出一個脈沖。由于增量式編碼器只輸出方波脈沖,所以它自己不能記憶自己的旋轉方位,需要計數器來計數。此外,需要通過A、B的兩脈沖的相位關系來確定調焦鏡組的旋轉方向。轉動中,A相超前B相90°,則轉動方向為正向;B相超前A相90°,則轉動方向為反向,如圖1[7]所示。
本設計選用的增量式光電編碼器型號為R219,其主要的性能指標有:
①光電編碼器的分辨率為16384CPR,即每旋轉一圈(360°)輸出16384個脈沖;
②最高轉速10000 rpm;
③編碼器輸出的差分信號分成3組:A+、A-、B+、B-、Z+、Z-,其中A+和A-、B+和B-、Z+和Z-分別為差分輸出。
在設計過程中需要先將3組差分信號轉換成單端信號輸入到CPLD管腳上。本設計選用AM26 LV32IDR四路差分線接收器,可以完成三路差分信號轉換成3.3V單端信號輸出的功能。如圖2所示。
鑒于光電編碼器的分辨率為16384CPR,即每旋轉一圈(360°)輸出16384個脈沖,分辨精度為:
360°/16384=0.0219°
根據項目實際需要,要求編碼器的可分辨精度小于0.015°。因此設計中利用CPLD實現編碼器的輸出脈沖信號的4倍頻,這樣編碼器每旋轉一圈(360°)輸出16384×4個脈沖,即65536個信號。對編碼器的輸出脈沖信號4倍頻后,編碼器的分辨精度可以達到:
360°/65536=0.0054°
可見對編碼器的輸出脈沖信號4倍頻后,編碼器的分辨精度得到了大幅度提升,完全可以滿足項目需要。
設計中采用ALTERA公司的CPLD,型號為10M50SCE144I7G。主時鐘選用16M晶振,可以滿足設計需要。
采用自上而下的模塊化設計方法,基于CPLD的增量式編碼器讀出電路頂層設計方案如圖3所示,分為信號去抖及整型、信號四倍頻、轉向識別、脈沖計數、圈數計數、輸出數據有效檢測、并行輸出7個軟件模塊。其中零位信號作為調焦控制中的基準信號。

圖1 增量式編碼器正轉和反轉

圖2 差分信號轉單端信號

圖3 編碼器接口電路頂層設計圖
經芯片AM26LV32IDR轉換的編碼器單端信號A、B、Z信號,以及零位信號送到CPLD的輸入端,為了消除信號的尖脈沖干擾,提高系統的抗干擾能力,保證信號的完整性,輸入到CPLD的信號都必須經過D觸發器的脈沖整型。D觸發器的輸入信號分別為a、b、z、sig_zero,輸入時鐘的頻率要小于A信號的頻率,本文設計的輸入時鐘頻率為A信號頻率的3/4。對應的輸出信號為a_ff1、b_ff1、z_ff、sig_zero_ff。同時為了濾除信號的高頻雜波,設計了低通濾波器,低通濾波器的截止頻率為A信號頻率的1.1倍,實現了對編碼器輸出信號的濾波和整型,這樣便解決了編碼器差分傳輸過程中帶來的信號畸變,提高了抗干擾能力。
由于增量式編碼器的可分辨精度無法達到項目要求,因此本設計提出通過軟件四倍頻的靈活方式來增加編碼器每旋轉一圈的輸出脈沖數[8],即提高編碼器的可分辨精度。
增量式編碼器的輸出方波信號A、B波形相同,僅在相位上相差90°。將A、B信號分別經過一個D觸發器延時一個時鐘,D觸發器的輸入信號為a_ff1、b_ff1,輸出信號為a_ff2、b_ff2。利用數字信號處理學的相關知識可以實現A、B信號的四倍頻。sig_fclk為四倍頻模塊輸出信號。
熱像儀伺服控制系統通過A、B的兩脈沖的相位關系來確定調焦鏡組的旋轉方向。增量式編碼器轉動中,當A相超前B相90°,則轉動方向為正向;當B相超前A相90°,則轉動方向為反向。結合圖1的編碼器輸出脈沖圖,在A的信號脈沖下降沿時,如果B信號脈沖為高電平(1),則表示編碼器正轉,方向標志信號sig_dir記為1;在A的信號脈沖下降沿時,如果B信號脈沖為低電平(0),則表示編碼器反轉,方向標志信號sig_dir記為0。這樣便可以輕松識別編碼器的轉向。
增量式光電編碼器旋轉一圈輸出16384個脈沖,經過信號四倍頻模塊后,實現了輸出脈沖的四倍頻,這樣編碼器旋轉一圈,輸出65536個脈沖信號sig_fclk。首先利用編碼器的清零信號對編碼器脈沖計數器清零,然后利用方向標志信號sig_dir進行計數方向選擇。當sig_dir=1時,此時表示光電編碼器正轉,計數器coun進行加1操作;若sig_dir=0時,此時表示光電編碼器反轉,計數器coun進行減1。這樣便可以實現對編碼器脈沖的精確計數。
編碼器圈數計數可以有兩種方式:一種利用清零信號對Z信號進行清零,然后利用方向標志信號sig_dir對Z信號進行計數。當sig_dir=1時,此時表示光電編碼器正轉,對計數器圈數cirl_coun進行加1操作;若sig_dir=0時,此時表示光電編碼器反轉,對計數器圈數cirl_coun進行減1操作。另一種計數方式就是利用編碼器脈沖計數器來進行圈數計數,在設計中將編碼器脈沖計數器coun設置成24bit,這樣高8位便是編碼器圈數,低16位對應編碼器脈沖計數值。第一種計數方式在項目中使用時,發現如果編碼器在進行圈數計數時發生抖動時,方向控制信號會出現錯亂,便會導致編碼器圈數計數器計數錯碼。第二種方式由于是采用編碼器脈沖計數器“進位”方式對編碼器圈數進行計數,即使在計數中偶爾出現抖動,計數偏差也可以控制在編碼器脈沖計數器中,并不會對編碼器圈數計數器產生誤碼影響。因此采用第二種方式對編碼器圈數進行計數。
由于熱像儀伺服控制系統是通過對編碼器的計數來實時檢測調焦鏡組位置,從而實現閉環控制。編碼器的零位控制信號至關重要。因此要求熱像儀伺服控制系統每次上電時,必須有個尋找零位控制信號的過程。而在編碼器找到“零位”之前,編碼器的計數器值是不受控制的,也就是此時的計數器處于失控狀態,并不能用來檢測調焦鏡組的位置。只有當編碼器找到零位控制信號后,編碼器的計數器值才是有效的,才能用于檢測閉環控制的位置反饋信號。編碼器輸出數據有效檢測模塊主要功能是檢測編碼器計數值何時有效,并將有效計數值鎖存。
并行輸出模塊主要是將編碼器輸出數據有效檢測模塊鎖存的有效計數值并行輸出到單片機的I/O口上。
利用QuartusII11.0的signalTap II Logic Analyzer實時捕獲關鍵信號的時序仿真結果如圖4和圖5所示.
圖4增量式編碼器正轉時,sig_dir=1,編碼器可以根據四倍頻的脈沖信號實現準確穩定計數增加。圖5增量式編碼器反轉時,sig_dir=0,編碼器可以根據四倍頻的脈沖信號實現準確穩定計數減少。

圖4 編碼器正轉仿真結果

圖5 編碼器反轉仿真結果
利用CPLD軟件實現靈活,隨時可以修改,在線調試方便的特點,設計出增量式調焦編碼器讀出接口電路。本文根據實際工程項目需要,采用自上而下的模塊化設計方法[9],設計出滿足調焦伺服系統需要的編碼器讀出電路,可以高精度實現調焦鏡組位置的實時性反饋,完成伺服控制的閉環控制。通過硬件調試,利用Quartus中Signal TapII實時捕獲和抓取關鍵信號,通過分析驗證,編碼器讀出接口電路時序正確,可以實現工程需要。較利用電子元器件搭建的硬件電路,該接口設計電路集成化高、易于修改、方便調試、便于維護、適用性好,可稍加修改用于其它利用編碼器獲取位置信息的工程項目中。
[1] 王建瑞. 基于紅外圖像的自動調焦技術[J]. 光電技術應用, 2018, 33(3): 3-5.
WANG Jianrui. Auto focusing technology based on infrared image[J]., 2018, 33(3): 3-5.
[2] 郭藝丹. 電位器式角位移傳感器實驗綜述[J]. 呂梁教育學報, 2018, 35(4): 1.
GUO Yidan. Summary of potentiometer type angular displacement sensor experiment[J]., 2018, 35(4): 1.
[3] 劉晴晴, 韓利軍, 任磊, 等. 基于增量式光柵編碼器的高精度角位移測量方法[J].航天控制, 2017, 35(3): 3-5.
LIU Qingqing, HAN Lijun, REN Lei, et al. High-precision angular displacement measurement method based on incremental grating encoder[J]., 2017, 35(3): 3-5.
[4] 馬程浩. 光電軸角編碼器的檢測方法分析及研究[J]. 信息科學報, 2018(18): 2-3.
MA Chenghao. Analysis and research on detection method of photoelectric shaft encoder[J]., 2018(18): 2-3.
[5] 黃雍囥, 洪占勇, 文長明. 基于FPGA的增量式編碼器細分方法的研究[J]. 國外電子測量技術, 2017, 12(36): 3.
HUANG Yongxi, HONG Zhanyong, WEN Changming. Research on the subdivision method of incremental encoder based on FPGA[J]., 2017, 12(36): 3.
[6] 劉小樹, 萬秋華, 楊守旺, 等. 基于FPGA的增量式編碼器誤差自動監測系統[J]. 儀表技術與傳感器, 2017(2): 3-4.
LIU Xiaoshu, WAN Qiuhua, YANG Shouwang, et al. FPGA-based incremental encoder error automatic monitoring system[J]., 2017(2): 3-4.
[7] 岳振, 顧海峰, 李范明. 一種編碼器實時讀出電路設計及處理方法[J]. 科學技術與工程, 2013, 13(20): 5956.
YUE Zhen, GU Haifeng, LI Fanming. A real-time readout circuit design and processing method for encoder[J]., 2013, 13(20): 5956.
[8] 王立錦, 劉亞東, 焦讓, 等. 磁旋轉編碼器四倍頻電路分析與集成化設計[J]. 電子器件, 2005, 28(2): 359-360.
WANG Lijin, LIU Yadong, JIAO Rang, et al. Analysis and integrated design of quadruple frequency circuit for magnetic rotary encoder[J]., 2005, 28(2): 359-360.
[9] 陳楚, 呂石磊, 孫道宗, 等. 基于FPGA的自頂向下乘法器電路設計[J]. 數字技術與應用, 2017(11): 2-3.
Chen Chu, Lu Shilei, Sun Daozong, et al. Circuit design of top-down multiplier based on FPGA[J]. Digital Technology and Application, 2017(11): 2-3.
Design of Readout Circuit of Incremental Focusing Encoder Based on CPLD
LEI Zengqiang1,XU Huiyong2,CHENG Gang1,SHEN Liangji1,CHEN Zhixue1
(1.,710065,; 2.,710065,)
In the focusing system design of an infrared(IR) imager, the motor drives the focusing lens group to reciprocate along the linear guide rail to change the position of the focusing lens group accurately and to change the focal length. To control the position of the focus lens group accurately, the focus control system requires a high-resolution encoder to reflect the position of the focus lens groupto realize closed-loop control of the group. In the focusing control system of the IR imager, an incremental encoder is used to feedback the position of the focusing lens group. According to the characteristics of the incremental encoder, because of the rich logic resources and programmable flexibility of the complex programmable logic device, a readout circuit is designedthat can accurately feedback the position of the focusing lens group in real time. Verification in an actual project demonstrated that this scheme can read out the position of the incremental encoder accurately in real time, has reliable anti-interference ability, and meets the system requirements of high-precision position control.
closed-loop control, incremental optic-electric encoder, CPLD, readout circuit
A
1001-8891(2020)11-1029-05
2019-12-21;
2020-07-13.
雷增強(1987-),男,碩士,工程師,主要從事紅外技術應用和紅外系統信號處理技術研究。E-mail:704962189@qq.com。