(1.北京工業(yè)大學(xué)電子信息與控制工程學(xué)院 北京 100124;2.北京印刷學(xué)院高端印刷裝備信號(hào)與信息處理北京市重點(diǎn)實(shí)驗(yàn)室,北京,102600)
基于單片機(jī)的電機(jī)轉(zhuǎn)速測(cè)量與顯示系統(tǒng)設(shè)計(jì)
張哲煜1,李玉杰2
(1.北京工業(yè)大學(xué)電子信息與控制工程學(xué)院 北京 100124;2.北京印刷學(xué)院高端印刷裝備信號(hào)與信息處理北京市重點(diǎn)實(shí)驗(yàn)室,北京,102600)
針對(duì)當(dāng)前工業(yè)控制領(lǐng)域中的電機(jī)轉(zhuǎn)速顯示,提出了一種基于AT89C2051單片機(jī)的全數(shù)字式轉(zhuǎn)速顯示系統(tǒng)設(shè)計(jì)方案,并完成系統(tǒng)的軟硬件設(shè)計(jì)。該系統(tǒng)通過(guò)硬件實(shí)現(xiàn)了電機(jī)轉(zhuǎn)速采集、信息處理以及速度顯示的架構(gòu);通過(guò)軟件實(shí)現(xiàn)了計(jì)時(shí)、脈沖計(jì)數(shù)、轉(zhuǎn)速計(jì)算以及轉(zhuǎn)速顯示的功能。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,工作穩(wěn)定可靠,達(dá)到了設(shè)計(jì)要求。
單片機(jī);轉(zhuǎn)速;編碼器;電機(jī)
近年來(lái),電機(jī)轉(zhuǎn)速的測(cè)量在工業(yè)控制和民用電器領(lǐng)域中得到了較高的關(guān)注,尤其是在精確度和易于實(shí)現(xiàn)方面。電機(jī)轉(zhuǎn)速的測(cè)量主要包括轉(zhuǎn)速采集、信號(hào)處理和轉(zhuǎn)速顯示三方面。轉(zhuǎn)速采集的方法分為模擬式和數(shù)字式兩種,模擬式采用測(cè)速發(fā)電機(jī)作為檢測(cè)裝置,得到的信號(hào)是模擬量;數(shù)字式通常采用光電編碼器、霍爾元件等作為檢測(cè)元件,得到的信號(hào)是脈沖信號(hào)。本文是采用數(shù)字式的光電編碼器進(jìn)行轉(zhuǎn)速采集,并以單片機(jī)AT89C2051作為核心進(jìn)行采集信號(hào)的處理和轉(zhuǎn)速的顯示。具體是通過(guò) Altium Designer軟件設(shè)計(jì)并繪制這兩部分的原理圖,然后將原理圖轉(zhuǎn)化成PCB圖來(lái)制作所需要的PCB電路板,最后通過(guò)Keil uVision4對(duì)單片機(jī)編程后完成設(shè)計(jì)的軟件部分。
1.1 信號(hào)采集原理
轉(zhuǎn)速測(cè)量是通過(guò)編碼器采集信號(hào),再經(jīng)過(guò)單片機(jī)處理后傳送輸出給數(shù)碼管顯示的。轉(zhuǎn)速信號(hào)采集作為整個(gè)系統(tǒng)的前端通道,目的是將外界的非電參量,通過(guò)某種方式轉(zhuǎn)換成可量化的電參量,這一環(huán)節(jié)通常通過(guò)編碼器來(lái)實(shí)現(xiàn)。編碼器的轉(zhuǎn)速測(cè)量方式種類(lèi)很多,有電容式、光電式、電磁式等,其中光電式測(cè)量系統(tǒng)具有慣性小、噪聲低、分辨率高和精度高等優(yōu)點(diǎn),以及高性能材料的出現(xiàn),使得激光光源、光柵等相繼出現(xiàn)和被廣泛應(yīng)用,更增加了光電編碼器對(duì)轉(zhuǎn)速測(cè)量的精確度。光電編碼器的工作原理如圖1所示,是通過(guò)光電轉(zhuǎn)換的方式將電機(jī)帶動(dòng)的輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量來(lái)工作的。光電編碼器通常包情況下含五條線(xiàn),兩根作為電源線(xiàn)(正極和負(fù)極),另外三根作為脈沖線(xiàn)(A相、B相、Z)。編碼器的工作電壓是直流電壓,通常選擇+5V電源供電。當(dāng)固定在電機(jī)軸上的光電編碼器隨電機(jī)軸轉(zhuǎn)動(dòng)時(shí),A相、B相都會(huì)產(chǎn)生脈沖輸出,且兩脈沖相差90度相位角,A線(xiàn)用于測(cè)量脈沖個(gè)數(shù),B線(xiàn)與A線(xiàn)相互配合來(lái)測(cè)量出轉(zhuǎn)動(dòng)方向,假如A相脈沖比B相脈沖超前,那么電機(jī)正轉(zhuǎn),否則電機(jī)為反轉(zhuǎn),由此可測(cè)出電機(jī)轉(zhuǎn)速與電機(jī)轉(zhuǎn)動(dòng)方向(即光電編碼器轉(zhuǎn)動(dòng)方向)。Z線(xiàn)是零脈沖線(xiàn),主要起著計(jì)數(shù)作用。由于光電編碼器型號(hào)確定后,相應(yīng)的旋轉(zhuǎn)一圈的脈沖個(gè)數(shù)也會(huì)確定,所以Z線(xiàn)通常是可以省略的。

圖1 光電編碼器工作原理圖Fig.1 working principle of photoelectric encoder
1.2 數(shù)碼管顯示原理
最常用的數(shù)碼管是七段式和八段式LED數(shù)碼管,八段比七段多了一個(gè)小數(shù)點(diǎn)DP,剩余其他的基本相同。一個(gè)八段數(shù)碼管可用來(lái)顯示一個(gè)十進(jìn)制或十六進(jìn)制的數(shù)字,它內(nèi)部是由九個(gè)發(fā)光二極管所構(gòu)成的。簡(jiǎn)單來(lái)說(shuō),要產(chǎn)生數(shù)字圖案,就是要點(diǎn)亮相應(yīng)位置的發(fā)光二極管。例如要產(chǎn)生數(shù)字,必須且只能點(diǎn)亮A、B、C、D、E、F、G七段的發(fā)光二極管;要產(chǎn)生數(shù)字,則須點(diǎn)亮A、C、D、F、G這五段的發(fā)光二極管;再如果是幾個(gè)數(shù)碼管級(jí)聯(lián)后產(chǎn)生有小數(shù)部分,則個(gè)位的DP二極管必須被點(diǎn)亮,以此類(lèi)推,見(jiàn)圖2。其中,數(shù)碼管通過(guò)供電方式又可分為共陰和共陽(yáng)兩種,共陰是將陰極作為為數(shù)碼管的公共端(接電源負(fù)極),當(dāng)陽(yáng)極接電源正極時(shí),發(fā)光二極管就會(huì)被點(diǎn)亮;共陽(yáng)是將陽(yáng)極作為數(shù)碼管的公共端(接電源正極),當(dāng)陰極接電源負(fù)極時(shí),發(fā)光二極管就會(huì)被點(diǎn)亮。表1為共陰極八段數(shù)碼管數(shù)字編碼,顯示了0~9十個(gè)字符的編碼,DP為小數(shù)點(diǎn),‘1’代表點(diǎn)亮,‘0’代表熄滅。

圖2 數(shù)碼管字段說(shuō)明Fig.2 digital tube field description

表1 共陰極八段數(shù)碼管數(shù)字編碼Tab.1 Digital coding of eight segments of cathode
根據(jù)實(shí)際控制的需要,設(shè)計(jì)了基于單片機(jī)的電機(jī)測(cè)速與顯示系統(tǒng)的硬件電路,如圖 3所示。電機(jī)轉(zhuǎn)速的測(cè)量主要包括四個(gè)部分:電機(jī)、轉(zhuǎn)速采集、信號(hào)處理和轉(zhuǎn)速顯示,該方案主要對(duì)信號(hào)處理和轉(zhuǎn)速顯示兩部分進(jìn)行設(shè)計(jì)。其中,電機(jī)可根據(jù)需要選取,這里選取的是額定功率為185W,額定電流為1.2A,額定轉(zhuǎn)速為1600r/min的直流電動(dòng)機(jī),而轉(zhuǎn)速采集的編碼器需要選取光電式,這里選取的型號(hào)為HEDS-9100#J00,因?yàn)楣怆娋幋a器定下后,一圈的脈沖數(shù)就定下了,單片機(jī)里程序的相應(yīng)參數(shù)也就固定了。

圖3 電機(jī)測(cè)速與顯示系統(tǒng)框圖Fig.3 Motor speed and display system block diagram
2.1 采集信號(hào)處理電路
轉(zhuǎn)速測(cè)量的信號(hào)處理部分電路主要由單片機(jī)信號(hào)處理電路、電源轉(zhuǎn)換電路、濾波電路和相關(guān)電路組成,單片機(jī)是整個(gè)測(cè)量系統(tǒng)的核心部分,負(fù)責(zé)對(duì)前端光電編碼器采集來(lái)的脈沖信號(hào)進(jìn)行處理、計(jì)算、以及信號(hào)的同步、計(jì)時(shí)等任務(wù);其次,測(cè)量的數(shù)據(jù)經(jīng)單片機(jī)計(jì)算后,將得到的轉(zhuǎn)速電壓信號(hào)值傳送到顯示接口INT0、INT1中,再通過(guò)導(dǎo)線(xiàn)輸送到顯示電路板,用八段數(shù)碼管顯示轉(zhuǎn)速值。在本系統(tǒng)中考慮到計(jì)數(shù)的范圍、使用的定時(shí)/計(jì)數(shù)器的個(gè)數(shù)及 I/O接口,選擇AT89C2051單片機(jī)作為主芯片。電源轉(zhuǎn)換電路是通過(guò)變壓器將市電轉(zhuǎn)換成16V交流電,然后通過(guò)LM7805轉(zhuǎn)換成+5V直流電給單片機(jī)和D觸發(fā)器供電。而濾波電路是通過(guò)給電源電路添加電容來(lái)濾波的,目的是除去電源里的干擾。D觸發(fā)器選擇的是74LS74型,它起著計(jì)數(shù)器以及處理輸入、輸出信號(hào)和時(shí)鐘頻率之間相互影響的作用。
單片機(jī)的接口電路如圖4所示,其中,單片機(jī)RXD、TXD是為仿真器預(yù)留的接口,單片機(jī)的T1和74LS74(1)的2CP相連并與光電編碼器(HEDS-9100#J00)的CHA連接,74LS74(1)的2D和74LS74(2)的1CP相連并與光電編碼器的CHB連接。INT0、INT1是與轉(zhuǎn)速顯示電路相連接的轉(zhuǎn)速輸出接口。
2.2 轉(zhuǎn)速顯示電路
該部分電路由移位寄存器(74LS164)、共陰數(shù)碼管及100Ω電阻組成。其中,采用了獨(dú)立的五組移位寄存器與數(shù)碼管組合單元,顯示四位整數(shù)與一位小數(shù)。當(dāng)時(shí)鐘 (CP)每次由低電平變?yōu)楦唠娖綍r(shí),數(shù)據(jù)就會(huì)向高位移動(dòng)一位,然后將結(jié)果輸入到 Q0(Q0是兩個(gè)數(shù)據(jù)輸入端(DSA和 DSB)的邏輯與),它會(huì)將上升時(shí)鐘沿之前的狀態(tài)保持一個(gè)建立時(shí)間的長(zhǎng)度。單片機(jī)把采集到的轉(zhuǎn)速脈沖轉(zhuǎn)換成編碼數(shù)據(jù)傳輸給第7腳(P3.3),再傳輸?shù)斤@示電路的最低位移位寄存器74LS164(即小數(shù)部分);當(dāng)轉(zhuǎn)速大于1,即編碼數(shù)據(jù)有整數(shù)部分時(shí),會(huì)從最低位的移位寄存器第13腳(Q7)溢出,到達(dá)個(gè)位移位寄存器的數(shù)據(jù)輸入端(DSA與DSB),以此類(lèi)推,將轉(zhuǎn)速完整的顯示在數(shù)碼管上;當(dāng)高位的數(shù)碼管沒(méi)用到時(shí)則顯示熄滅狀態(tài),見(jiàn)圖5,其中,CP、Din與轉(zhuǎn)速測(cè)量電路的單片機(jī)6,7引腳相連。

圖4 單片機(jī)接口電路Fig.4 Single chip microcomputer interface circuit

圖5 轉(zhuǎn)速顯示電路Fig.5 Speed display circuit

圖6 軟件流程圖Fig.6 Software flow chart
因?yàn)橐莆患拇嫫?4LS164只有串入并出的作用,并沒(méi)有譯碼功能,所以在編寫(xiě)顯示驅(qū)動(dòng)程序時(shí),需要提前計(jì)算并列寫(xiě)出與該電路對(duì)應(yīng)的LED段選碼(可參考表1),然后由單片機(jī)AT89C2051的P3.3口送入74LS164的串行輸入端,再并行輸出到LED的段選端。這種穩(wěn)定的靜態(tài)顯示方式的優(yōu)點(diǎn)是省去了CPU的動(dòng)態(tài)掃描過(guò)程,節(jié)省了時(shí)間、減小了數(shù)碼管顯示的不穩(wěn)定性。轉(zhuǎn)速測(cè)量的軟件部分主要包括周期測(cè)量和轉(zhuǎn)速計(jì)算兩個(gè)過(guò)程程序的編寫(xiě),圖6是程序流程圖。先測(cè)量?jī)纱无D(zhuǎn)速后,將計(jì)算得來(lái)的兩個(gè)轉(zhuǎn)速值分別存入兩個(gè)緩沖單元(D觸發(fā)器),為單片機(jī)進(jìn)行下一步的數(shù)據(jù)處理做準(zhǔn)備。
系統(tǒng)軟件的核心是對(duì)周期測(cè)量程序的編寫(xiě),信號(hào)周期測(cè)量是否準(zhǔn)確將會(huì)直接影響到系統(tǒng)的測(cè)量精確度。周期測(cè)量的程序一般可分為測(cè)量初始化、測(cè)量過(guò)程和測(cè)量結(jié)束三個(gè)部分。測(cè)量初始化程序主要包括被測(cè)參數(shù)的初始化程序、定時(shí)器T0的初始化程序、外部中斷0的初始化程序及外部中斷1的初始化程序四部分。測(cè)量過(guò)程中,對(duì)每個(gè)信號(hào)都會(huì)測(cè)量5個(gè)下降沿,然后從中得到4個(gè)周期的時(shí)間,最后將第4個(gè)下降沿的時(shí)間與第2個(gè)下降沿的時(shí)間作差,就得到兩個(gè)周期的時(shí)間和,除以2就得到了每個(gè)信號(hào)的單周期時(shí)間T1。由于11.0592是單片機(jī)始終的晶振,時(shí)鐘周期是1/11.0592M,因而定時(shí)器的周期是12/11.0592,所以實(shí)際的單周期時(shí)間應(yīng)為T(mén)2=T1*12/11.0592。測(cè)量結(jié)束程序是用來(lái)關(guān)閉定時(shí)器及外部中斷的。
本文設(shè)計(jì)的基于AT89C2051單片機(jī)的轉(zhuǎn)速測(cè)量系統(tǒng),硬件電路結(jié)構(gòu)簡(jiǎn)單、模塊分明、抗干擾性好,程序運(yùn)算速度快、響應(yīng)準(zhǔn)確。該設(shè)計(jì)實(shí)現(xiàn)了單片機(jī)準(zhǔn)確測(cè)量電機(jī)轉(zhuǎn)速并將其顯示在數(shù)碼管上的功能,而且配有向上位機(jī)發(fā)送數(shù)據(jù)的端口,測(cè)量范圍比較寬:0 r/min-10000r/min,精確度可達(dá)到0.1 r/min,已達(dá)到了比較理想的狀態(tài)。由于基于單片機(jī)的轉(zhuǎn)速測(cè)量系統(tǒng),具有精度高、測(cè)速快、價(jià)格低廉等優(yōu)點(diǎn),相信定會(huì)在今后的工業(yè)或商業(yè)中得到廣泛的應(yīng)用。
[1] 王曉芬. 直流電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2015,(6):68 Wang Xiao-fen. Design of DC motor speed control system [J]. modern industrial economy and information technology, 2015,(6):68
[2] 李勛,劉源,李靜東等.單片機(jī)實(shí)用教程[M].北京:北京航空航天大學(xué)出版社,2005.5:143.
[3] 閻石,編.?dāng)?shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.5.
[4] 李金波,劉明黎.基于霍爾傳感器的轉(zhuǎn)速測(cè)量系統(tǒng)的設(shè)計(jì)[J].河南科技學(xué)院學(xué)報(bào),2009,37(3): 54-56. Li Jin-bo, Liu Ming-li. Design of speed measurement system based on Holzer sensor. Journal of Henan Institute of Science and Technology, 2009,37(3): 54-56.
[5] 張毅剛,彭喜源,彭宇.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2010:45-100.
[6] 趙樹(shù)磊,謝吉華,劉永鋒.基于霍爾傳感器的電機(jī)測(cè)速裝置[J].江蘇電器,2008,(6):53-56. Zhao Shu-lei,Xie Ji-hua,Liu Yong-feng. [J]. Jiangsu electric appliance,2008,(6): 53-56.
[7] 陳德益.基于嵌入式單片機(jī)的電機(jī)控制系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)仿真,2010,(1):359-362. Chen De-yi. Computer simulation of the motor control system based on embedded microcontroller [J]. computer simulation, 2010 ,(1):359-362.
張哲煜(1993年——),北京市人,男,本科生。研究方向:信號(hào)與信息處理、計(jì)算機(jī)測(cè)控。
李玉杰 (1971年),北京人,碩士生導(dǎo)師,教授
Design of motor speed measurement and display system based on single chip microcomputer
Zhang Zheyu1,Li Yujie2
(1.electronic information & Control Engineering College,Beijing,100124 2.Key Laboratory of Beijing City, city, city, city, Key Laboratory of high-end printing equipment and information processing, Beijing Institute of Graphic Communication,Beijing,102600)
In view of the current industrial control in the field of motor speed display,a full digital speed display system based on AT89C2051 microcontroller design scheme,and complete the system hardware and software design.The system realizes the structure of the motor speed,information processing and speed display through the hardware,and the function of the time, the pulse counting,the speed and the speed of the display are realized by the software.The experimental results show that the system is simple and reliable, and can meet the design requirements.
single chip microcomputer;speed;encoder;motor
TN79
A