基于MSP430F149單片機(jī)的光電編碼器位置檢測(cè)系統(tǒng)設(shè)計(jì)
Abstract:Aiming at requirement of the position detection in iron and steel industry,a photoelectrical encoder position detection system based on MSP430 is designed.In this paper,the principal of??photoelectrical encoder and the structures of the hardware and software in this position detection system is introduced in detail.In the whole system,the simple structure , stable performance and good effects are realized.
Key words: photoelectrical encoder ,position detection, MSP430 Microcontroller
在實(shí)際的工業(yè)位置控制領(lǐng)域中,為了提高控制精度,準(zhǔn)確地對(duì)控制對(duì)象進(jìn)行檢測(cè)是十分重要的。傳統(tǒng)的機(jī)械測(cè)量位移裝置已遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)代生產(chǎn)的需要,而數(shù)字式傳感器光電編碼器,能將角位移量轉(zhuǎn)換為與之對(duì)應(yīng)的電脈沖輸出, 主要用于機(jī)械位置和旋轉(zhuǎn)速度的檢測(cè),具有精度高,體積小等特點(diǎn),因此決定采用光電編碼器進(jìn)行位移檢測(cè)。
美國(guó)TI公司推出的MSP430系列16位單片機(jī),具有低功耗,運(yùn)行速度快等優(yōu)點(diǎn),正日益得到廣泛的應(yīng)用。本文將高精度MSP430單片機(jī)應(yīng)用在系統(tǒng)中,作為整個(gè)系統(tǒng)的控制器,整個(gè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾性強(qiáng),滿足了鋼鐵廠的生產(chǎn)要求。
1、光電編碼器原理
光電編碼器是集光、機(jī)、電技術(shù)于一體的數(shù)字化傳感器,其基本原理就是在特制的碼盤上按一定規(guī)律編排光柵圖案,將這些圖案用光電頭讀取,轉(zhuǎn)變?yōu)楦叩陀行蚺帕械碾娖?a target="_blank">信號(hào)。光電編碼器輸出信號(hào)為A , B , Z 3 個(gè)信號(hào),其中A , B 為相位差90°的方波信號(hào), Z 為過(guò)零脈沖信號(hào)。如圖1所示,光電編碼器每旋轉(zhuǎn)一周,A、B 相輸出同樣數(shù)量的脈沖, Z相輸出一個(gè)脈沖,脈沖的個(gè)數(shù)和電機(jī)旋轉(zhuǎn)角度,電機(jī)的運(yùn)行距離成正比關(guān)系,因此通過(guò)計(jì)算脈沖數(shù)就能計(jì)算出電機(jī)在實(shí)際運(yùn)行中所運(yùn)行的距離。
A相、B相都是光電編碼器產(chǎn)生的,這兩個(gè)信號(hào)的前沿和后沿都對(duì)應(yīng)著光電碼盤的1/4節(jié)距的信息。因此在實(shí)際中為了提高光電編碼器的定位精度通常采用四倍頻方法進(jìn)行處理。鑒相就是通過(guò)分析圖1的A相,B相信號(hào),得出電機(jī)的旋轉(zhuǎn)方向。如果A相脈沖超前B相90,說(shuō)明電機(jī)正轉(zhuǎn),如果B相脈沖超前A相脈沖90,說(shuō)明電機(jī)反轉(zhuǎn)。本系統(tǒng)設(shè)計(jì)了一種四倍頻電路,其原理圖如圖2所示,相應(yīng)的時(shí)序圖如圖3所示。由時(shí)序圖3可以看出,A和B信號(hào)經(jīng)四倍頻電路后,輸出信號(hào)為XA,XB兩個(gè)信號(hào),在同一時(shí)刻,XA,XB只有一個(gè)是脈沖信號(hào),另一個(gè)是高電平。因此,將XA,XB兩個(gè)信號(hào)連接到單片機(jī)相應(yīng)的端口上,對(duì)這兩個(gè)信號(hào)分別進(jìn)行判斷、計(jì)數(shù)和計(jì)算,就可以得出相應(yīng)的電機(jī)轉(zhuǎn)向和位移量。
2、系統(tǒng)功能
系統(tǒng)框圖見(jiàn)圖4。整個(gè)系統(tǒng)主要由差動(dòng)隔離整形,倍頻電路,鑒相計(jì)數(shù)模塊,主控芯片,通訊模塊,數(shù)顯模塊組成。光電編碼器選用SIEMENS公司的1XP8001-1型號(hào),輸出電壓為5V。從光電碼盤輸出的A,B,A-,B-經(jīng)過(guò)差動(dòng)隔離整形模塊后能減少現(xiàn)場(chǎng)對(duì)信號(hào)產(chǎn)生的干擾,尤其是共模干擾,處理后的信號(hào)經(jīng)四倍頻電路后連到主控芯片,對(duì)脈沖進(jìn)行計(jì)數(shù),處理,計(jì)算,得到被控對(duì)象的位移結(jié)果。位移結(jié)果一方面送數(shù)顯表顯示,另一方面可通過(guò)串口將位移結(jié)果送到上位機(jī),便于在上位機(jī)中進(jìn)行統(tǒng)計(jì),打印,綜合分析。
3、系統(tǒng)硬件組成
3.1 、主控芯片及外圍電路
主控芯片我們采用MSP430F149單片機(jī),它具有處理能力強(qiáng),運(yùn)行速度快,功耗低等特點(diǎn); 整個(gè)系統(tǒng)采用3.3V供電,本設(shè)計(jì)電源部分采用TI公司的TPS76033芯片實(shí)現(xiàn),該芯片能很好的滿足系統(tǒng)的要求,另外TPS76033芯片的封裝很小,又能節(jié)約PCB板面積。
復(fù)位電路采用MAX809STR芯片,復(fù)位電路可以采用R-C復(fù)位電路,但是使用復(fù)位芯要比使用R-C復(fù)位電路的可靠性高,因此我們就采用MAX809STR芯片來(lái)實(shí)現(xiàn)系統(tǒng)的復(fù)位。
????
數(shù)顯電路采用LED顯示方式,MSP430具有豐富的I/O口資源,采用并行方式與LED連接非常方便,這種方式既能滿足現(xiàn)場(chǎng)的要求,又可以降低系統(tǒng)成本。在單片機(jī)與數(shù)碼顯示連接時(shí)選擇P4.0~P4.7引腳用來(lái)輸出顯示數(shù)據(jù),P2.1,P2.2,P2.3,P2.4引腳用來(lái)控制數(shù)碼管的選通狀態(tài)。
3.2 、16位計(jì)數(shù)器
本次設(shè)計(jì)采用MSP430F149提供的計(jì)數(shù)器對(duì)倍頻后的XA,XB信號(hào)進(jìn)行計(jì)數(shù)。MSP430F149提供了兩個(gè)16位的計(jì)數(shù)器,分別是Timer_A,Timer_B,這是兩個(gè)用途非常廣泛的16位計(jì)數(shù)器,在設(shè)計(jì)中使用Timer_A計(jì)數(shù)器進(jìn)行計(jì)數(shù),將XA和XB兩個(gè)信號(hào)相或后與Timer_A相連,即XA和XB相或后與P1.0引腳相連。無(wú)論電機(jī)正轉(zhuǎn)還是反轉(zhuǎn),計(jì)數(shù)器引腳上都有脈沖信號(hào),都可進(jìn)行計(jì)數(shù)。為了判斷電機(jī)的旋轉(zhuǎn),使用計(jì)數(shù)器的捕獲模塊對(duì)XA和XB信號(hào)進(jìn)行方向判斷,Timer_A計(jì)數(shù)器中提供有3個(gè)捕獲模塊,均可以滿足系統(tǒng)的需要。編碼器四倍頻電路輸出的XA信號(hào)與捕獲模塊1相連,XB與捕獲模塊2相連,即XA信號(hào)同時(shí)與P1.2引腳相連,XB信號(hào)同時(shí)與P1.3引腳相連。捕獲模塊捕獲XA和XB信號(hào)的上升沿,通過(guò)程序的判斷就可以判斷出電機(jī)的旋轉(zhuǎn)方向。
3.3、 串行模塊
MSP430單片機(jī)使用RS-485協(xié)議與上位機(jī)進(jìn)行通訊, RS-485改進(jìn)了RS-232的缺點(diǎn),傳輸速率可達(dá)到10MB/S,傳輸距離達(dá)1200米。由于MSP430輸出的是TTL電平,而RS-485串口卡是485電平,因此需進(jìn)行電平轉(zhuǎn)換。本系統(tǒng)采用MAX485芯片實(shí)現(xiàn)TTL電平與485電平之間的轉(zhuǎn)換。硬件連接使用USART0串口,即連接時(shí)使用P3.4,P3.5引腳與MAX485的相應(yīng)引腳相連。
4、系統(tǒng)軟件實(shí)現(xiàn)
系統(tǒng)采用C語(yǔ)言進(jìn)行程序設(shè)計(jì),大大提高了開發(fā)調(diào)試的工作效率。整個(gè)系統(tǒng)程序包括主程序,鑒相計(jì)數(shù)程序,顯示子程序,串行通訊程序幾個(gè)模塊組成。程序流程圖見(jiàn)圖5。
主程序主要包括系統(tǒng)的初始化:對(duì)串口,計(jì)數(shù)器等硬件的初始化:計(jì)數(shù)值的讀取、處理、計(jì)算:調(diào)用顯示子程序,用于數(shù)據(jù)的顯示。
鑒相計(jì)數(shù)程序主要用于電機(jī)方向的判斷和計(jì)數(shù)脈沖值的處理。系統(tǒng)中電機(jī)方向的判斷是靠計(jì)數(shù)器中的捕獲模塊捕獲XA,XB信號(hào)來(lái)實(shí)現(xiàn)的。在程序中,設(shè)計(jì)一個(gè)寄存器保存電機(jī)的方向,當(dāng)電機(jī)正轉(zhuǎn)時(shí),捕獲模塊捕獲XA信號(hào)有效,在中斷服務(wù)程序中將電機(jī)方向設(shè)為正轉(zhuǎn)標(biāo)志。反之亦然,當(dāng)電機(jī)反轉(zhuǎn)時(shí),捕獲XB有效,將電機(jī)方向設(shè)為反轉(zhuǎn)標(biāo)志。在主程序中只需根據(jù)寄存器的值,就可知道電機(jī)的旋轉(zhuǎn)方向。為了防止計(jì)數(shù)器中正轉(zhuǎn),反轉(zhuǎn)的計(jì)數(shù)值發(fā)生混亂,每次捕獲發(fā)生時(shí),在中斷服務(wù)程序中都將計(jì)數(shù)器清零,重新計(jì)數(shù),保證了電機(jī)換向后數(shù)據(jù)的準(zhǔn)確性。
串行通訊模塊用于實(shí)現(xiàn)上位PC機(jī)與單片機(jī)之間的數(shù)據(jù)傳送。單片機(jī)可根據(jù)上位機(jī)的需要,將處理后的計(jì)數(shù)值上傳給上位機(jī),用于統(tǒng)計(jì),打印等。系統(tǒng)采用中斷方式進(jìn)行數(shù)據(jù)傳遞,在接受中斷服務(wù)程序中得到接受的上位機(jī)指令后,單片機(jī)就可將計(jì)數(shù)脈沖值,電機(jī)旋轉(zhuǎn)方向等數(shù)據(jù)通過(guò)發(fā)送端口向上位機(jī)發(fā)送。串行通訊采用中斷方式可大大節(jié)省CPU資源,從而保證了系統(tǒng)的高速度,高可靠性。
5、本文創(chuàng)新點(diǎn)
本文充分利用MSP430單片機(jī)軟硬件的優(yōu)點(diǎn),簡(jiǎn)化了外圍模塊的設(shè)計(jì),大大提升了系統(tǒng)的可靠性和穩(wěn)定性。本設(shè)計(jì)系統(tǒng)在實(shí)際自動(dòng)控制領(lǐng)域的運(yùn)行中,系統(tǒng)工作穩(wěn)定,收到了良好的效果,具有很好的實(shí)用價(jià)值。
更多編碼器知識(shí)請(qǐng)?jiān)L問(wèn)http://www.194w.cn/zhuanti/20111111242149.html
評(píng)論