《電子技術應用》
您所在的位置:首頁 > EDA与制造 > 设计应用 > 基于VHDL的旋转编码器接口电路的实现
基于VHDL的旋转编码器接口电路的实现
来源:微型机与应用2011年第1期
薛沛祥,袁少强
(北京航空航天大学 自动化科学与电气工程学院,北京 100191)
摘要: 用VHDL语言设计的增量式旋转编码器接口电路,实现了四倍频、双向计数的功能以及与单片机的接口。给出了在MAX Plus II环境下的VHDL源代码和时序仿真结果。本设计在角度测量、位移测量和高度测量等方面有广泛的应用价值。
Abstract:
Key words :

摘  要:VHDL語言設計的增量式旋轉編碼器接口電路,實現(xiàn)了四倍頻、雙向計數的功能以及與單片機的接口。給出了在MAX Plus II環(huán)境下的VHDL源代碼和時序仿真結果。本設計在角度測量、位移測量和高度測量等方面有廣泛的應用價值。
關鍵詞: 旋轉編碼器;四倍頻;VHDL;Max Plus II

 旋轉編碼器是一種高精度的角位置測量傳感器,具有分辨率高、響應速度快等特點,被廣泛應用在以位置或角度為對象的控制系統(tǒng)中。將編碼器安裝在電機軸的非負載端跟隨轉動,其反饋信號傳遞給控制器,構成對電機的閉環(huán)控制[1]。
 增量式旋轉編碼器發(fā)出兩路正交脈沖,即兩路(A、B)相位差90°的方波,其相位關系標志電機的轉向,當A相超前B相90°時,標志電機正轉,如圖1所示;當B相超前A相90°時,標志電機反轉,如圖2所示。編碼器旋轉一圈,輸出脈沖數固定,通過累加A、B兩相信號的脈沖數可以計算電機轉過的角度。

 本文用VHDL語言設計了一種增量式旋轉編碼器的接口電路,可以配置在CPLD或者FPGA上,實現(xiàn)對編碼器輸出信號的四倍頻、雙向可逆計數和與單片機接口的功能。下面介紹各個電路的設計原理和實現(xiàn)源碼。
1 四倍頻電路設計原理
 對于每個確定的編碼器,其脈沖周期T對應的角位移固定為q,其量化誤差為q/2。若將A和B信號四倍頻,則計數脈沖的周期將減小到T/4,量化誤差減小為q/8,從而使角位移測量精度提高4倍[2]。
 如圖1和圖2所示,在任意一個周期T內,A、B兩路信號各變化了兩次,分別產生一次上升沿和一次下降沿,若用Y對A、B兩路信號的跳變沿計數,則在一個脈沖周期內,信號Y就會出現(xiàn)4次變化,實現(xiàn)編碼器信號的四倍頻。
2 轉向鑒別電路設計原理
 在信號跳變沿時檢測另一相信號的電平值可以判斷轉向[3]。例如,在A相信號上升沿時檢測B相信號電平,若B為低電平(如圖1),表示電機正轉;若B為高電平(如圖2),表示電機反轉。結合上面所述四倍頻原理,計數規(guī)則總結如下。
 (1)檢測到以下狀態(tài)表示電機正轉,加計數:
 ①A相上升沿,B=0;②A相下降沿,B=1;③B相上升沿,A=1;④B相下降沿,A=0。
 (2)檢測到以下狀態(tài)表示電機反轉,減計數:
 ①B相上升沿,A=0;②B相下降沿,A=1;③A相上升沿,B=1;④A相下降沿,B=0。
3 與單片機接口設計原理
    編碼器的脈沖計數值一般要傳送給單片機或其他控制器進行處理,而CPLD的全局時鐘的頻率高于單片機的時鐘頻率,為保證CPLD和單片機之間計數值傳輸的正確性,單片機首先發(fā)送信號給CPLD,將計數值鎖存后再進行傳輸。CPLD與單片機接口示意圖如圖3所示。本設計中CPLD檢測到單片機鎖存信號的上升沿后將當前計數值鎖存[4],然后在單片機位選信號的上升沿和下降沿分時將16 bit計數值的高8位和低8位傳送給單片機8 bit I/O端口。

4 實現(xiàn)電路的源代碼
    本設計利用D觸發(fā)器的延時作用檢測信號跳變沿,D輸入端接脈沖信號,則Q輸出端是上一個CLK周期的脈沖信號狀態(tài)。在CLK的上升沿檢測Q端輸出和D端信號電平值是否一致,不一致表示出現(xiàn)跳變沿。
設A和B是A、B相的源信號,經過D觸發(fā)器后A、B相信號記為A1、B1,則計數規(guī)則表示為:


5 仿真結果
 利用ALTERA的開發(fā)工具MAX+PlusⅡ,輸入VHDL文本文件,目標設備為EPM7128SLC84[5],CLK周期為200 ns,A、B的周期為2 000 ns,編譯后仿真波形如圖4~圖7所示。

 圖4是編碼器正轉時的仿真波形,在A相信號的1個周期,兩條標記線內,計數值OUTPUT由初始值4增加到8,實現(xiàn)四倍頻加計數。
 圖5是編碼器反轉時的仿真波形,在A相信號的1個周期內,計數值OUTPUT由初始值15減少到11,實現(xiàn)四倍頻減計數。
 圖6是編碼器由正轉切換為反轉時的仿真波形。如圖中標記線所示,B相超前A相后的第一個CLK的上升沿,計數方向立即改變,由加計數變?yōu)闇p計數。
 如圖7中標記線所示,在鎖存信號lock上升沿時16 bit計數值鎖存于OUT_lock;位選信號choose上升沿后的第一個CLK上升沿,8 bit計數值OUTPUT8輸出OUT_lock的高8位;choose下降沿時OUTPUT8輸出OUT_lock的低8位。
 由上述仿真波形可以看出,本電路的設計實現(xiàn)了編碼器的轉向鑒別、四倍頻、雙向計數以及與單片機通信的功能。
    本文設計的編碼器接口電路,結構簡單、可靠性高,即使在正反轉頻繁切換的場合也能高精度地工作。本接口電路已應用在單級旋轉倒立擺控制系統(tǒng)中,且運行良好。
參考文獻
[1] 夏冬梅,孫林.基于CPLD的增量式旋轉編碼器接口電路模塊設計[J].機械制造與自動化,2009,38(5):156-157,160.
[2] 史曉娟,李海芹.基于CPLD的四倍頻鑒相計數電路在運動控制器中的應用[J].制造技術與機床,2008(6):85-87.
[3] 馬志建,戴炬,張峰,等.基于CPLD的編碼器倍頻鑒相計數電路設計[J].儀器儀表用戶,2009,16(4):82-84.
[4] 黃任.AVR單片機與CPLD/FPGA綜合應用入門[M].北京:北京航空航天大學出版社,2004.
[5] 王志鵬,付麗琴.可編程邏輯器件開發(fā)技術MAX+plusⅡ[M].北京:國防工業(yè)出版社,2005.

此內容為AET網站原創(chuàng),未經授權禁止轉載。
主站蜘蛛池模板: 久久成年人免费电影| 久久国产日韩欧美| 伊人久久婷婷色综合98网| 国产精品亚发布| 国产中文字幕亚洲| 国产国产精品人在线视| 国产成人av在线| 欧美精品免费在线| 国产激情综合五月久久| 国产精品老女人精品视频| 青青成人在线| 99久久精品免费看国产四区| 日韩中文字幕av在线| 久久精品国产精品亚洲| 久久天天躁狠狠躁夜夜躁| 69精品小视频| 国产精品入口福利| 日产精品高清视频免费| 91老司机精品视频| 国产欧美欧洲在线观看| 久久久久久美女| 日本精品一区| 日本高清久久天堂| 久久亚洲精品网站| 日本一区免费看| 欧美成在线观看| 久久精视频免费在线久久完整在线看| 久久亚洲精品网站| 91精品在线播放| 91免费视频网站在线观看| 日韩一区二区在线视频| 国产视频精品网| 免费毛片一区二区三区久久久| 岛国一区二区三区高清视频| 欧美一区三区二区在线观看| 99国产在线| 国产精品美女网站| 精品久久久久久综合日本| 国产成人精品视| 久久久亚洲福利精品午夜| 日韩精品成人一区二区在线观看|