基于MSP430F149單片機(jī)的光電編碼器位置檢測系統(tǒng)設(shè)計(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芯片來實(shí)現(xiàn)系統(tǒng)的復(fù)位。
數(shù)顯電路采用LED顯示方式,MSP430具有豐富的I/O口資源,采用并行方式與LED連接非常方便,這種方式既能滿足現(xiàn)場的要求,又可以降低系統(tǒng)成本。在單片機(jī)與數(shù)碼顯示連接時(shí)選擇P4.0~P4.7引腳用來輸出顯示數(shù)據(jù),P2.1,P2.2,P2.3,P2.4引腳用來控制數(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引腳相連。無論電機(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)的上升沿,通過程序的判斷就可以判斷出電機(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語言進(jìn)行程序設(shè)計(jì),大大提高了開發(fā)調(diào)試的工作效率。整個(gè)系統(tǒng)程序包括主程序,鑒相計(jì)數(shù)程序,顯示子程序,串行通訊程序幾個(gè)模塊組成。程序流程圖見圖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)來實(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ù)通過發(fā)送端口向上位機(jī)發(fā)送。串行通訊采用中斷方式可大大節(jié)省CPU資源,從而保證了系統(tǒng)的高速度,高可靠性。
5、本文創(chuàng)新點(diǎn)
本文充分利用MSP430單片機(jī)軟硬件的優(yōu)點(diǎn),簡化了外圍模塊的設(shè)計(jì),大大提升了系統(tǒng)的可靠性和穩(wěn)定性。本設(shè)計(jì)系統(tǒng)在實(shí)際自動(dòng)控制領(lǐng)域的運(yùn)行中,系統(tǒng)工作穩(wěn)定,收到了良好的效果,具有很好的實(shí)用價(jià)值。本文引用地址:http://m.butianyuan.cn/article/151133.htm
評(píng)論