編碼器四倍頻電路的單片機(jī)高速算法設(shè)計(jì)_第1頁(yè)
編碼器四倍頻電路的單片機(jī)高速算法設(shè)計(jì)_第2頁(yè)
編碼器四倍頻電路的單片機(jī)高速算法設(shè)計(jì)_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、編碼器四倍頻電路的單片機(jī)高速算法設(shè)計(jì)Fourfold Frequency Circuit Design of Encoder Based on MCU with Speedy Arithmetic 收稿日期:2007-10-16作者簡(jiǎn)介:王子博(1986-)。男,遼寧大連人,大連理工大學(xué)電子信息工程學(xué)院學(xué)生【摘要】文章針對(duì)增量式光電編碼器輸出信號(hào)的倍頻鑒向處理問(wèn)題,介紹了一種用單片機(jī)設(shè)計(jì)的編碼器四 倍額電路。通過(guò)分析軟件倍頻鑒向的原理,詳細(xì)介紹了一種新穎的高速處理算法。該設(shè)計(jì)不僅電路簡(jiǎn)單,響應(yīng)速度也比一般單片機(jī)設(shè)計(jì)方案大為提高?!娟P(guān)鍵詞】編碼器;四倍頻;單片機(jī);高速算法【引言】增量式光電編碼器

2、是一種高精度的角位置測(cè)量傳感器,具有體積小、精度高、響應(yīng)速度快、 性能穩(wěn)定等優(yōu)點(diǎn),被廣泛應(yīng)用于數(shù)控機(jī)床、工業(yè)機(jī)器人等伺服控制系統(tǒng)中。對(duì)編碼器輸出信號(hào)的 處理,是測(cè)控系統(tǒng)要解決的常見(jiàn)問(wèn)題。編碼器通常有 A相、B相、Z信號(hào)等三路輸出信號(hào)。Z信號(hào)是一個(gè)代表零位的脈沖信號(hào),可 用于調(diào)零、對(duì)位,一般不須作額外處理。A、B相信號(hào)則包含了被測(cè)對(duì)象的旋轉(zhuǎn)方向、旋轉(zhuǎn)角度等信息,通常要經(jīng)過(guò)倍頻鑒向處理之后再進(jìn)行有效利用。編碼器的A、 B相輸出信號(hào)如圖1所示。A、B相信號(hào)是相位相差 90o的正交方波脈沖串, 每個(gè)脈沖代表被測(cè)對(duì)象旋轉(zhuǎn)了一定的角度,A、B之間的相位關(guān)系則反映了被測(cè)對(duì)象的旋轉(zhuǎn)方向。當(dāng)A相超前B相,轉(zhuǎn)動(dòng)方

3、向?yàn)檎D(zhuǎn),當(dāng)B相超前A相,則為反轉(zhuǎn)。對(duì)A、B相信號(hào)典型的處理是: 將信號(hào)四倍頻,并分離出正轉(zhuǎn)脈沖P+與反轉(zhuǎn)脈沖P-,再進(jìn)行計(jì)數(shù),最后得到被測(cè)對(duì)象的位置。倍頻鑒向有多種方法,并且各具特色。概括來(lái)講,用數(shù)字電路方案的,速度高,但硬件復(fù)雜;用 單片機(jī)方案的,硬件較簡(jiǎn)單,但響應(yīng)速度較低。本文提出的四倍頻單片機(jī)設(shè)計(jì)方案,采用了獨(dú)特 的高速算法,結(jié)合功能先進(jìn)速度快的 AVR系列的單片機(jī),具有硬件電路簡(jiǎn)單,并且響應(yīng)速度高的 雙重優(yōu)點(diǎn)。,TTLo j_ o |TTLq_b o o 11I o i T o »置欣二_JUJUL圖1編碼器的A、B相輸出信號(hào)及倍頻鑒向后的正、反轉(zhuǎn)脈沖輸出【倍頻與鑒向原理】

4、如圖1所示,編碼器正轉(zhuǎn)時(shí),A B相電平狀態(tài)的變化順序?yàn)椋?0->10->11->01->00;編碼器反轉(zhuǎn)時(shí),變化順序?yàn)椋?0->01->11->10->00。用單片機(jī)編程實(shí)現(xiàn)倍頻與鑒向時(shí),一般算法是:設(shè)定一個(gè)寄存器存放上次電平狀態(tài),一個(gè)寄存器存放本次電平狀態(tài),將兩個(gè)寄存器進(jìn)行比較,即 可判斷是正轉(zhuǎn)還是反轉(zhuǎn)。正轉(zhuǎn)時(shí)輸出正向脈沖,或者進(jìn)行加計(jì)數(shù);反轉(zhuǎn)時(shí),輸出反向脈沖,或者 進(jìn)行減計(jì)數(shù)。再將本次電平狀態(tài)存到上次電平狀態(tài)寄存器中,為下次處理作準(zhǔn)備。按此算法設(shè)計(jì) 的程序,由于判斷比較指令較多,運(yùn)行時(shí)間較長(zhǎng),因而導(dǎo)致總體的響應(yīng)速度較低。為了克服這一 缺點(diǎn),這

5、里采用了利用先后兩個(gè)電平狀態(tài)組成一個(gè)地址向量,進(jìn)行程序散轉(zhuǎn)的方法。這就去掉了 繁瑣的判斷與比較,使運(yùn)行時(shí)間大大縮短,從而使響應(yīng)速度得到了提高。組成散轉(zhuǎn)地址的方法是:將所有的前一個(gè)AB電平狀態(tài)作為散轉(zhuǎn)地址的高2位,所有后一個(gè)A B電平狀態(tài)作為散轉(zhuǎn)地址的低2位,合在一起共4位,排列組合共有16種狀態(tài),或者說(shuō)有16個(gè)地址。每個(gè)地址都對(duì)應(yīng)一種輸出處理操作,見(jiàn)表1。其中 00->11, 01->10, 10->01 , 11->00這 4種狀態(tài)屬于異常狀態(tài),是不應(yīng)該出現(xiàn)的,程序處理時(shí)將其忽略。表1 A B相電平狀態(tài)組合表前一個(gè)AB相電平 狀態(tài)(記為A0B0)舟-個(gè)AB相電平 狀態(tài)

6、(記為A1B1)組成散轉(zhuǎn)地址向量(二/十六進(jìn)制)處理內(nèi)容000000000x00狀態(tài)無(wú)義化,不處理000100010x01輸出反轉(zhuǎn)脈沖P-001000100x02輸出正轉(zhuǎn)脈沖 P+001100110x03異常狀態(tài),不處理010001000x04輸出正轉(zhuǎn)脈沖 P+010101010x05狀態(tài)無(wú)義化,不處理011001100x06異常狀態(tài),不處理011101110x07輸出反轉(zhuǎn)脈沖P-100010000x08輸出反轉(zhuǎn)脈沖P-100110010x09異常狀態(tài),不處理101010100x0A狀態(tài)無(wú)義化,不處理101110110x0B輸出正轉(zhuǎn)脈沖 P+110011000x0C異常狀態(tài),不處理110111

7、010x0D輸出正轉(zhuǎn)脈沖 P+111011100x0E輸出反轉(zhuǎn)脈沖P-111111110x0F狀態(tài)無(wú)義化,不處理除了要有好的算法之外,指令還要有一定技巧,才能使程序更精簡(jiǎn)。程序流程見(jiàn)圖2。圖2中,16個(gè)散轉(zhuǎn)目標(biāo)地址的處理程序,都按表 1進(jìn)行。雖然限于篇幅僅畫出了3個(gè),但不影響理解。每個(gè)目標(biāo)地址的處理內(nèi)容雖然都要占用一段程序,指令的總數(shù)比較多,但程序執(zhí)行速 度卻加快很多。這種算法,實(shí)際上是采用了用程序容量來(lái)?yè)Q取執(zhí)行速度的思路。用AVR系列單片機(jī)匯編語(yǔ)言。從頭到尾任何一個(gè)流程(包括子程序返回指令)最長(zhǎng)只需要12條匯編指令,執(zhí)行時(shí) 間不到2us,可見(jiàn)其處理速度是相當(dāng)快的?!镜湫驮O(shè)計(jì)方案】對(duì)于檢測(cè)控制

8、一體的應(yīng)用場(chǎng)合,例如用ATmega32等單片機(jī)實(shí)現(xiàn)位置檢測(cè),并完成定位輸出功能的,可以采用外部中斷的方案。A B兩相信號(hào)可分別接到單片機(jī)的兩個(gè)外部中斷輸入口INTO與INT1上。中斷方式設(shè)置為電平變化觸發(fā)中斷。即只要A B相電平狀態(tài)發(fā)生變化,就會(huì)觸發(fā)中 斷。在中斷程序中,采用上述高速算法進(jìn)行處理。與上述不同的是,最后不需要輸出正反轉(zhuǎn)脈沖,而是正轉(zhuǎn)時(shí)位置量加 1,反轉(zhuǎn)時(shí)位置量減 1。|于程序電掰|圖2高速算法子程序流程圖采用AVR系列8引腳的單片機(jī)的 ATtiny13 .結(jié)合上述高速算法,可構(gòu)成硬件電路非常簡(jiǎn)單 的獨(dú)立四倍頻鑒向電路,見(jiàn)圖3。圖中的 CD40106為施密特觸發(fā)器,對(duì)信號(hào)進(jìn)行整形處

9、理,使整 個(gè)電路更可靠。如果省略,電路將更簡(jiǎn)單。鬲一4生p»IOM106 改制笈雕 GW JW長(zhǎng)年碼HM106/6圖3 ATtiny13接線圖由于ATtiny13單片機(jī)僅用于倍頻鑒向,沒(méi)有別的任務(wù),因此可采用反復(fù)循環(huán)掃描A B相電平狀態(tài)的方式。ATtiny13的典型主頻是9.6MHz,采用上述高速算法,利用匯編語(yǔ)言編程,完成一次A B相電平狀態(tài)掃描處理,只需不到 2us的時(shí)間,相當(dāng)于 500KHz的響應(yīng)速度。而 ATtiny13單 片機(jī)的價(jià)格約為5元,可見(jiàn)這是一個(gè)電路簡(jiǎn)單、成本低廉的設(shè)計(jì)方案。而 ATtiny13本身是一款高 性能、高可靠的單片機(jī),并且內(nèi)含看門狗電路。經(jīng)實(shí)用驗(yàn)證,該電路工作可靠,性能優(yōu)良,是一款不可多得的優(yōu)秀設(shè)計(jì)。【結(jié)束語(yǔ)】本文提出的高速算法,對(duì)任何一款單片機(jī)都是有效的。由于指令少速度快,即使對(duì)運(yùn)行速度較慢的51系列單片機(jī),也可以取得較好的效果。 對(duì)采用單片機(jī)進(jìn)行四倍頻鑒向的設(shè)計(jì),具有很好的參考價(jià)值?!緟⒖嘉墨I(xiàn)】1 許理、趙英俊.基于單片機(jī)的增量式光電編碼囂接口的設(shè)計(jì)(J).機(jī)械與電子,2006(12):9-11.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論