亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于單片機的旋轉編碼器鑒相方法研究

        2010-08-08 00:52:26胡榮貴
        關鍵詞:單片機檢測方法

        徐 海,胡榮貴,張 東

        (1.電子工程學院 研究生一隊,安徽 合肥 230037;2.電子工程學院 602室,安徽 合肥 230037)

        旋轉編碼器作為速度和位移的反饋傳感器廣泛應用于家電、無線電設備控制中,同時在電動機、電梯等需要對運動速度和位移信息反饋的自動化控制場合也起著重要作用。編碼器通常有A相、B相兩路輸出信號,信號包含了被測對象的旋轉方向以及旋轉角度等信息,通常需要由硬件電路或單片機程序進行鑒相處理。本文根據(jù)旋轉編碼器以及單片機的特點,研究并總結了利用單片機進行鑒相的方法,同時給出了相應的鑒相算法。

        1 旋轉編碼器簡介

        1.1 旋轉編碼器的分類

        根據(jù)結構和工作原理不同,編碼器可以分為光電式編碼器、電磁式編碼器和機械接觸式編碼器。其中,光電式編碼器由于具有較高的精度、抗干擾能力強、接口簡單、使用方便等特點得到了廣泛應用。

        根據(jù)測量的參數(shù)不同,編碼器又可分為旋轉式和直線式編碼器。旋轉式編碼器用于測量轉角轉速,直線式編碼器用于直線位移、運動速度的精密測量。

        旋轉編碼器又可分為增量式編碼器和絕對式編碼器。增量式編碼器每轉過1個單位,編碼器就輸出1個脈沖,故稱為增量式。絕對式編碼器是直接輸出數(shù)字量的傳感器,它的特點是不需要計數(shù),在轉軸的任何一個位置都可讀出一個與位置對應的數(shù)字碼。

        1.2 編碼器工作原理

        大多數(shù)直線式和旋轉式編碼器都是光透過光電碼盤和光欄板夾縫形成忽明忽暗的光信號,硅光敏器件把光信號轉換成兩組近似于正弦的電信號輸送出去,然后根據(jù)需要把這些信號進行差值或數(shù)字化處理,兩組正弦信號 A、B在相位上相差 90°。經(jīng)放大整形后變成 A、B兩組相位相差90°的方波。根據(jù)A、B之間的相位關系即通過鑒相可確定旋鈕的正反轉。當A超前于B時為正轉,而當B超前于A時為反轉,如圖1所示。旋轉編碼器的輸出脈沖寬度隨著旋轉速度而變化,即轉速越高其脈沖寬度越窄。通常每圈的計數(shù)脈沖有360個、500個、1 000個等,用戶可根據(jù)精度的需要進行選擇。

        2 鑒相方法及相應算法

        在1個脈沖周期時間T內(nèi),單片機應該能準確判斷出A點相對于B點的相位情況。根據(jù)開始采樣檢測的時刻不同,在T內(nèi)可以將采樣的波形分為如圖2所示的4種不同的組合情況。若兩點產(chǎn)生波形的組合不在下列4種情況中,則表明由于外部干擾或抖動產(chǎn)生了異常的波形,通常把這種波形稱為“毛刺”。

        圖1 編碼器輸出脈沖示意圖

        圖2 編碼器周期內(nèi)輸出波形的4種組合

        依據(jù)單片機工作方式通常有以下兩種鑒相方法:

        (1)查詢法

        單片機的I/O引腳直接連接A、B點,通過循環(huán)采樣讀取A、B點電平,來判斷當前旋鈕是否旋轉以及旋轉的方向。A點電平與B點電平有4種不同的組合:00、01、10、11,可以根據(jù) 4種組合狀態(tài)之間的變化進行鑒相。若正旋轉,則可得到對應的序列{00,10,11,01,00},反旋轉則有對應的序列{00,01,11,10,00}。 如表 1 所示的判斷表中,行表示當前A、B點電平值組合,列表示上一次變化前A、B點電平值組合,檢測到發(fā)生1次電平變化即可進行鑒相。需要指出的是,若A、B兩點電平相比上次均發(fā)生了變化,則無法進行判斷,這說明檢測時遺漏了脈沖或產(chǎn)生了“毛刺”。

        表1 A、B相位判斷表

        為了保證采樣A、B電平時沒有脈沖遺漏,對采樣頻率要求比較高。通常需要保證在編碼器以最快速度旋轉時,在A、B任一點2次電平變化之間有2次以上的采樣,以便可以比較最近2次的電平,去除因為其他外界條件變化產(chǎn)生的抖動。試驗表明,對于常用的編碼器,采樣的時間間隔約為1 ms,即可以基本上避免抖動。

        在1個時間周期 T內(nèi),A、B點電平會變化 4次,即單片機可以根據(jù)1個脈沖信號做出4次判斷,具有倍頻的效果。但是由于毛刺的存在,在不要求倍頻的場合,通常采用多次檢測判斷來識別毛刺,以增強判斷的可靠性。通過設立兩個緩沖區(qū)用來分別存儲A、B點的電平,當檢測到A、B兩點中任何一點電平發(fā)生變化時,把A、B兩點的電平值分別存入各自緩沖區(qū)中。當檢測到電平變化發(fā)生N次時,通過分別比對正、反旋轉序列來進行判斷。假設 N=4(即每1個周期 T進行 1次判斷),檢測到 4次變化后,A緩沖區(qū)內(nèi)的值為 0、1、1、0,B緩沖區(qū)內(nèi)的值為 0、0、1、1,則比對序列{00,10,11,01}可得為正旋轉。假設N=3,檢測 3次變化后,A緩沖區(qū)內(nèi)的值為 0、0、0,B 緩沖區(qū)內(nèi)的值為 0、1、0, 無法匹配序列{00、01、00},則判斷為產(chǎn)生毛刺。如果只檢測1次,會做出00->01反轉、01->00正轉的判斷,導致誤判。

        該鑒相方法具體程序流程如圖3所示。按此算法設計的程序,由于判斷比較指令較多,運行時間較長,總體響應速度比較低。為了克服這一缺點,可以采用將電平狀態(tài)組成地址的方法,去掉繁瑣的判斷與比較,使得運行時間大大縮短,從而提高響應速度。組成地址的方法是:設N次變化進行1次鑒相,第 n次變化前,A、B電平值分別記為 An、Bn(其中 0<n<N+1)。則可以組成地址A1B1A2B2……ANBN。每個地址在Flash程序存儲區(qū)中都對應一個值用來鑒相,或者可以直接存放程序地址,用程序計數(shù)器直接加載跳轉到鑒相完成后的處理程序。例如,設N=3,-1對應反向旋轉,1對應正向旋轉,0表示異常不處理或狀態(tài)無變化。根據(jù)正、反旋轉序列可以得到如表2所示的組合地址存放數(shù)據(jù)表。設1個字節(jié)長度的全局變量buf作為緩沖區(qū)用來存儲電平狀態(tài)值,同時作為Flash存儲區(qū)的低字節(jié)地址。記錄A、B點電平值時采用的是先將buf左移兩位,然后同000000AnBn相“與”的方式。存儲 3次后,得到buf為 00 A1B1A2B2 A3B3,將該值作為Flash尋址地址的低6位,取出數(shù)據(jù)即可得到鑒相結果。這種方法實際上是采取了用程序存儲空間來換取時間的思路。

        圖3 鑒相算法流程

        在單片機上實現(xiàn)循環(huán)檢測一般有3種方法:

        ①直接在后臺循環(huán)程序中添加任務。

        表2 組合地址存放數(shù)據(jù)表

        ②采用定時中斷,在中斷處理程序中檢測A、B點電平并進行處理。

        ③兩種方式相結合。由于中斷處理程序處理時間過長會增加中斷沖突的概率,所以在定時中斷處理程序中僅檢測電平值,進入緩沖區(qū)后中斷立即返回。緩沖區(qū)判斷處理部分交由后臺程序完成。

        (2)外部中斷法

        編碼器在連接單片機I/O引腳的同時也連接到外部中斷引腳INTA、INTB上,如圖4所示。

        INTA、INTB為單片機外部中斷接口。采用這種處理方式,要求單片機的外部中斷能夠支持中斷嵌套和邊沿觸發(fā)。由圖1可知,A點相位落后于B點,在A點方波下降沿B點均為低電平。B點的相位超前A點,在B點方波下降沿A點均為高電平。所以,下降沿觸發(fā)外部中斷時,根據(jù)采樣另一個引腳的電平,可以判斷出相位差別。同理,上升沿觸發(fā)的情況與下降沿觸發(fā)相類似。邊沿觸發(fā)方式相位判斷如表3所示。

        圖4 編碼器外部中斷方式連接方法

        表3 邊沿觸發(fā)方式相位判斷表

        也可以將外部中斷觸發(fā)條件設為雙邊沿觸發(fā),根據(jù)圖1可以發(fā)現(xiàn)其規(guī)律為:在邊沿觸發(fā)時,若兩個點電平相等,則邊沿觸發(fā)的點相位超前;若兩點電平不等,則邊沿觸發(fā)的點相位落后。例如在T1時刻,A點上升沿觸發(fā),A點電位低,B點電位高,所以A的相位落后 B。在T2時刻,B點下降沿觸發(fā),A和B均為高電平,所以B點相位領先于A。

        采用上升沿或下降沿觸發(fā),產(chǎn)生的是2倍頻,而雙邊沿觸發(fā)條件則是4倍頻。對不特別要求倍頻的場合可以采用只連接1個外部中斷的方法,判斷方法同連接2個外部中斷的方法相同。采用1個引腳外部中斷,采用上升沿或下降沿觸發(fā)為單倍頻,雙邊沿觸發(fā)為2倍頻。

        在不特別要求倍頻的場合,中斷方式可以采用類似查詢方法的序列比對來增強判斷的可靠性:每次中斷將A、B點電平放入緩沖區(qū),設立一個全局變量記錄中斷次數(shù),每中斷 N次(N>1),將緩沖區(qū)值比對 1次,正反轉序列進行1次判斷,也可以采用組合地址的方法來縮短中斷響應時間。

        3 糾錯方法

        由于編碼器工作的環(huán)境可能比較惡劣,輸出脈沖較易受干擾,產(chǎn)生毛刺;在編碼器快速旋轉時,尤其是在倍頻工作時,由于采樣速率不夠,可能導致采樣的脈沖有遺漏。這些都會導致鑒相得出錯誤的結果,需要在單片機程序實現(xiàn)中對這些情況進行糾正。如前所述,可以在單片機處理程序中用比對序列的方法來避免誤判。此外還有以下3種方法:

        (1)輔助硬件

        一般是將編碼器的A、B相連接到施密特觸發(fā)器或濾波電容,然后再同單片機相連,通過觸發(fā)器來對輸出脈沖進行整形,從而達到去除毛刺的效果。

        (2)統(tǒng)計糾錯

        旋鈕的勻速轉動一般不會產(chǎn)生毛刺,快速轉動情況下產(chǎn)生毛刺的情況比較突出。對于1次操作,旋轉的方向應該是相同的。根據(jù)這個原理,將1次操作中每次旋轉的方向記錄下來,理論上每次判斷的結果應該相同方向,實際上有個別反方向的判斷,則可以視為毛刺。

        (3)實驗糾錯

        不同的編碼器性能不同,產(chǎn)生的毛刺也不同。實驗表明,相同的程序并不是都能適應所有的編碼器。可以利用示波器觀察旋轉時A、B脈沖波形及將采樣值通過單片機串口發(fā)送到PC機的方式,對編碼器產(chǎn)生的脈沖波形進行統(tǒng)計分析,包括對勻速旋轉、快速旋轉、加速旋轉、減速旋轉等所有可能情況產(chǎn)生的值進行統(tǒng)計分析。

        4 實驗及結果

        采用ATMEL公司的AVR1280單片機和E6C-CW25CF型旋轉編碼器分別對查詢法和外部中斷方法進行編程實驗,將AVR1280單片機串口通過電平轉換電路,同PC機串口連接。在單片機程序中,將每次采樣的值轉發(fā)到串口,則采樣數(shù)據(jù)通過串口傳送到PC機顯示。

        4.1 不同采樣時間下脈沖遺漏情況

        單片機程序采用定時中斷的方式讀取I/O引腳電平,程序采用查詢法,分別設定時器中斷為16 ms、2.5 ms、1 ms對采樣的輸出結果進行觀察:16 ms時,勻速旋轉旋鈕也會產(chǎn)生脈沖的遺漏;2.5 ms勻速旋轉時,脈沖遺漏的情況得到改善,但是加速旋轉仍會有脈沖遺漏情況;1 ms時,脈沖無遺漏現(xiàn)象發(fā)生。

        4.2 糾錯能力實驗

        采用圖4的方法連接編碼器,將引腳分別連接到外部中斷INT0、INT1上。同樣在中斷發(fā)生時,在中斷處理程序中可以采樣A、B電平通過串口發(fā)送到PC機顯示觀察。將外部中斷都設置成雙邊沿觸發(fā),對旋鈕進行旋轉實驗,發(fā)現(xiàn)編碼器快速旋轉時,程序容易產(chǎn)生反方向的誤判。采用序列比對的方法,每中斷4次進行1次鑒相,可以很好地糾正該問題。結果表明,若使用中斷方式4倍頻工作,很難依靠單片機軟件得到可靠的鑒相結果,需要加強硬件電路。

        本文提出的單片機鑒相方法,可以避免一些復雜多余的硬件設計,節(jié)約了成本。對采用編碼器的嵌入式系統(tǒng)的軟硬件開發(fā)有一定的參考價值。

        [1]姜艷平.編碼器發(fā)展與應用[J].新自動化,2006(10):61-63.

        [2]李德兵.旋鈕式鍵盤及其與AT89C52接口技術[J].單片機與嵌入式系統(tǒng)應用,2003(6):73-74.

        [3]崔麗.2009年國內(nèi)旋轉編碼器市場分析 [J].電氣時代,2009(5):28-30.

        [4]王子博.編碼器四倍頻的單片機高速算法設計[J].控制與檢測,2007(11):73-74.

        [5]余昌盛.旋轉編碼器抗抖動接口電路設計[J].計算機應用,2004(8):33-35.

        [6]ATmel.ATmega1280/V user’s manual[R].2549K-01/07.2007.

        猜你喜歡
        單片機檢測方法
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        基于單片機的SPWM控制逆變器的設計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        可能是方法不對
        小波變換在PCB缺陷檢測中的應用
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        狠狠色成人综合网| av在线不卡免费中文网| 曰韩少妇内射免费播放| 黄瓜视频在线观看| 久久综合色鬼| 成人影院免费视频观看| 蜜桃视频网站在线观看一区| 一本色道无码道在线观看| 国产啪精品视频网站丝袜| 插入中文字幕在线一区二区三区| 99久久国内精品成人免费| 玩弄丰满奶水的女邻居| 日本一区二区精品88| 久久精品国产一区二区涩涩 | 91视色国内揄拍国内精品人妻| 48久久国产精品性色aⅴ人妻| 精品88久久久久88久久久| 国产精品一区二区久久毛片| 美女视频在线观看亚洲色图 | 中文字幕av无码一区二区三区| 中文字幕avdvd| 日日噜噜噜夜夜狠狠久久蜜桃| 中国美女a级毛片| 亚洲综合无码一区二区三区| 中文字幕一区,二区,三区| 日本久久久免费观看视频| 亚洲综合色区另类av| 女性自慰网站免费看ww| 亚洲蜜臀av一区二区三区漫画| 亚洲精品国偷拍自产在线| 又爆又大又粗又硬又黄的a片| av大片在线无码永久免费网址 | 国产精品极品美女自在线观看免费| 国产999精品久久久久久| 亚洲免费不卡av网站| 亚洲国产一区二区三区精品| 无码国产伦一区二区三区视频| 国产日韩A∨无码免费播放| 清纯唯美亚洲经典中文字幕| 午夜精品久久久久久久无码| 国产精品久久久久久久成人午夜|