大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

您現在的位置:智能制造網>技術中心>光電編碼器的計數方法

直播推薦

更多>

企業動態

更多>

推薦展會

更多>

光電編碼器的計數方法

2009年07月06日 14:27:22人氣:13690來源:上海德晶光電科技有限公司DECHING

 

1 引言
  在位置控制系統中,為了提高控制精度,準確測量控制對象的位置是十分重要的。目前,檢測位置的辦法有兩種:其一是使用位置傳感器,測量到的位移量由變送器經A/D轉換成數字量送至系統進行進一步處理。此方法雖然檢測精度高,但在多路、長距離位置監控系統中,由于其成本昂貴,安裝困難,因此并不適用;其二是使用光電編碼器[1]。光電編碼器是高精度控制系統常用的位移檢測傳感器。當控制對象發生位置變化時,光電編碼器便會發出A、B兩路相位差90度的數字脈沖信號。正轉時A超前B90度,反轉時B超前A90度。脈沖的個數與位移量成比例關系,因此通過對脈沖計數就能計算出相應的位移。該方法不僅使用方便、測量準確,而且成本較低,因此在電力拖動系統中,經常采用第二種位置測量方法。
  使用光電編碼器測量位移,準確無誤的記數起著決定性作用。由于在位置控制系統中,電機既可以正轉,又可以反轉,所以要求計數器既要能夠實現加計數,又要能夠實現減計數。相應的計數方法可以用軟件來實現,也可以用硬件來實現。
  使用軟件方式對光電編碼器的脈沖進行方向判別和計數降低了系統控制的實時性,尤其當使用光電編碼器的數量較多時,并且其可靠性也不及硬件電路。但是用軟件計數外圍電路比較簡單,所以在計數頻率不高的情況下,使用軟件計數還是有一定優勢的。對編碼器中輸出的兩路脈沖進行計數主要分兩個步驟,首先要對編碼器輸出的兩路脈沖進行鑒相,即:判別電機是正轉還是反轉;其次是進行加減計數,正轉時加計數,反轉時減計數。
2 鑒相原理
  脈沖鑒相的方法比較多,既可以用軟件實現,也可以用一個D觸發器實現。下圖是編碼器正反轉時輸出脈沖的相位關系。

 


  由圖中編碼器輸出波形可以看出,編碼器正轉時A相超前B相90度.在A相脈沖的下降沿處,B相為高電平;而在編碼器反轉時,A相滯后B相90度,在A相脈沖的下降沿處,B相輸出為低電平。這樣,編碼器旋轉時通過判斷B相電平的高低就可以判斷編碼器的旋轉方向[2]。
3 用軟件實現脈沖的鑒相、計數
 


  編碼器輸出的A向脈沖接到單片機的外部中斷INT0,B向脈沖接到I/O端口P1.0。當系統工作時,首先要把INT0設置成下降沿觸發,并開相應中斷。當有有效脈沖觸發中斷時,進行中斷處理程序,判別B脈沖是高電平還是低電平,若是高電平則編碼器正轉,加1計數;若是低電平則編碼器反轉,減1計數。
4 用硬件實現脈沖的鑒相、計數
  硬件計數在執行速度上有軟件計數不可比擬的優勢,通常采用多個可預置4位雙時鐘加減計數器74LS193 級聯組成的加減計數電路。P0-P3為計數器的4位預置數據端,與數據輸入鎖存器相接;QA-QD 為計數器的4位數據輸出端,與數據輸出緩沖器相接;MR為清零端與上電清零脈沖相接;PL為預置允許端,由譯碼控制電路觸發;CU 為加脈沖輸入端,CD為減脈沖輸入端;TCU為進位輸出端,TCD 為借位輸出端。如下圖所示:
 


  當CU和CD中一個輸入脈沖時,另一個必須處于高電平,才能進行計數工作。而從編碼器直接輸出的A、B兩路脈沖不符合要求,不能直接接到計數器的輸入端。但我們可以利用這兩路脈沖之間的相位關系對其進行鑒相后再計數。下圖給出了光電編碼器實際使用的鑒相與雙向計數電路,鑒相電路用1個D觸發器和2個與非門組成,計數電路用3片74LS193組成。
  當光電編碼器順時針旋轉時, A相超前B相90°,D觸發器輸出/Q(W1)為高電平,Q(W2)為低電平,上面與非門打開,計數脈沖通過(W3),送至雙向計數器74LS193的加脈沖輸入端CU,進行加法計數;此時,下面與非門關閉,其輸出為高電平(W4)。當光電編碼器逆時針旋轉時, A相比B相延遲90°,D觸發器輸出/Q(W1)為低電平,Q(W2)為高電平,上面與非門關閉,其輸出為高電平(W3);此時,下面與非門打開,計數脈沖通過(波W4),送至雙向計數器74LS193的減脈沖輸入端CD,進行減法計數[3]。
 


5 利用單片機內部計數器實現可逆計數
  對以上兩種計數方法進行分析可知,用純軟件計數雖然電路簡單,但是計數速度慢,難以滿足實時性要求,而且容易出錯,用外接加減計數芯片的方法,雖然速度快,但硬件電路復雜,由上圖可以看出要做一個12位計數器需要5個外圍芯片,成本也較高。那么我們能否用單片機內部的計數器來實現加減計數呢。我們知道,8051片內有兩個16位的定時器:定時器0和定時器1,8052還有一個定時器2,這三個定時器都可以作為計數器來用。但8051內部的計數器是加1計數器,所以不能直接應用,必須經過適當的軟件編程,來實現其“減”計數功能。硬件電路如下:
 


  我們可以把經過D觸發器之后的脈沖,即方向控制脈沖(DIR)接到單片機的外部中斷INT0端,同時經過反向器后再接到另一個外部中斷INT1,并且把計數脈沖A接到單片機的片內計數器T0端即可,相對外部計數芯片來說,使用這種方法電路相對要簡單的多。系統工作時,先要把兩個中斷設置成下降沿觸發,并打開相應的中斷。當方向判別脈沖(DIR)由低—高跳變時,INT1中斷,執行相應的中斷程序,進行加計數;而當方向判別脈沖由高—低跳變時,INT0中斷,執行相應的中斷程序,進行“減”計數(實際是重新復值,進行加計數)。下面是軟件編程思路:

我們在C語言環境下來實現計數功能:
#Include
int data k=1;
void service_int0() interrupt 0 using 0
{ k-- ;/*標志位減1*/
TR0=0 ;/*停止計數*/
TH0= -TH0 ;
TL0= -TL0 ;/*把計數器重新復值,此時相當于減計數*/
TR0=1 ;/*開始計數*/
}
void service_int1() interrupt 2 using 1
{ k++ ;/*標志位加1*/
TR0=0 ;/*停止計數*/
TH0= -TH0 ;
TL0= -TL0 ;/*把計數器重新復值,此時相當于加計數*/
TR0=1 ;/*開始計數*/
}
void timer0(void) interrup 1 using2
{ if(k=0)
/*反向計數滿*/
else if(k=1)
/*計數為0*/
else
/*正向計數滿*/
}
void main(void)
{TCON=0X05 ;/*設置下降沿中斷*/
TMOD=0X05 ;/*T0為16位計數方式*/
IE=0X87 ;/*開中斷*/
TH0=0 ;
TL0=0 ;/*預置初值*/
}
  此方法采用中斷的形式進行計數,硬件電路比較簡單,程序也不復雜,執行速度較快。
6 結論
  本文分別介紹了利用軟件、外接計數芯片及單片機內部計數器實現對編碼器輸出脈沖進行計數的方法。利用軟件計數,硬件電路簡單,但占用了較多的CPU資源,執行速度較慢。利用外接計數芯片的方法計數,計數速度較快,但是要用較多的外圍芯片,硬件電路復雜。利用單片機內部計數器實現加減計數,在編碼器旋轉方向不頻繁改變的情況下,計數速度很快,而且外圍電路簡單,編程也不復雜,只是占用了兩個外部中斷和一個內部計數器。具體使用哪種計數方法,在使用時還要根據具體情況進行選擇。

                                                                                        

 

 

                                                                                                                              來源于中華機械網

全年征稿/資訊合作 聯系郵箱:1271141964@qq.com

免責聲明

  • 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
  • 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
  • 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

<
更多 >

工控網機器人儀器儀表物聯網3D打印工業軟件金屬加工機械包裝機械印刷機械農業機械食品加工設備制藥設備倉儲物流環保設備造紙機械工程機械紡織機械化工設備電子加工設備水泥設備海洋水利裝備礦冶設備新能源設備服裝機械印染機械制鞋機械玻璃機械陶瓷設備橡塑設備船舶設備電子元器件電氣設備


我要投稿
  • 投稿請發送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
  • 聯系電話0571-89719789
工業4.0時代智能制造領域“互聯網+”服務平臺
智能制造網APP

功能豐富 實時交流

智能制造網小程序

訂閱獲取更多服務

微信公眾號

關注我們

抖音

智能制造網

抖音號:gkzhan

打開抖音 搜索頁掃一掃

視頻號

智能制造網

公眾號:智能制造網

打開微信掃碼關注視頻號

快手

智能制造網

快手ID:gkzhan2006

打開快手 掃一掃關注
意見反饋
關閉
企業未開通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 闸北区| 崇左市| 苏州市| 三都| 磴口县| 林芝县| 湖州市| 涟源市| 邯郸县| 南陵县| 邵武市| 阳春市| 筠连县| 环江| 洛阳市| 康保县| 改则县| 马山县| 奇台县| 酒泉市| 临漳县| 子洲县| 嘉义县| 东光县| 南京市| 阿合奇县| 稷山县| 汉中市| 赤水市| 雅安市| 红桥区| 宁国市| 利津县| 铁力市| 旺苍县| 峡江县| 宜兴市| 太原市| 南投市| 金平| 广汉市|