(1.北京工業(yè)大學電子信息與控制工程學院 北京 100124;2.北京印刷學院高端印刷裝備信號與信息處理北京市重點實驗室,北京,102600)
基于單片機的電機轉速測量與顯示系統(tǒng)設計
張哲煜1,李玉杰2
(1.北京工業(yè)大學電子信息與控制工程學院 北京 100124;2.北京印刷學院高端印刷裝備信號與信息處理北京市重點實驗室,北京,102600)
針對當前工業(yè)控制領域中的電機轉速顯示,提出了一種基于AT89C2051單片機的全數(shù)字式轉速顯示系統(tǒng)設計方案,并完成系統(tǒng)的軟硬件設計。該系統(tǒng)通過硬件實現(xiàn)了電機轉速采集、信息處理以及速度顯示的架構;通過軟件實現(xiàn)了計時、脈沖計數(shù)、轉速計算以及轉速顯示的功能。實驗結果表明,系統(tǒng)結構簡單,工作穩(wěn)定可靠,達到了設計要求。
單片機;轉速;編碼器;電機
近年來,電機轉速的測量在工業(yè)控制和民用電器領域中得到了較高的關注,尤其是在精確度和易于實現(xiàn)方面。電機轉速的測量主要包括轉速采集、信號處理和轉速顯示三方面。轉速采集的方法分為模擬式和數(shù)字式兩種,模擬式采用測速發(fā)電機作為檢測裝置,得到的信號是模擬量;數(shù)字式通常采用光電編碼器、霍爾元件等作為檢測元件,得到的信號是脈沖信號。本文是采用數(shù)字式的光電編碼器進行轉速采集,并以單片機AT89C2051作為核心進行采集信號的處理和轉速的顯示。具體是通過 Altium Designer軟件設計并繪制這兩部分的原理圖,然后將原理圖轉化成PCB圖來制作所需要的PCB電路板,最后通過Keil uVision4對單片機編程后完成設計的軟件部分。
1.1 信號采集原理
轉速測量是通過編碼器采集信號,再經(jīng)過單片機處理后傳送輸出給數(shù)碼管顯示的。轉速信號采集作為整個系統(tǒng)的前端通道,目的是將外界的非電參量,通過某種方式轉換成可量化的電參量,這一環(huán)節(jié)通常通過編碼器來實現(xiàn)。編碼器的轉速測量方式種類很多,有電容式、光電式、電磁式等,其中光電式測量系統(tǒng)具有慣性小、噪聲低、分辨率高和精度高等優(yōu)點,以及高性能材料的出現(xiàn),使得激光光源、光柵等相繼出現(xiàn)和被廣泛應用,更增加了光電編碼器對轉速測量的精確度。光電編碼器的工作原理如圖1所示,是通過光電轉換的方式將電機帶動的輸出軸上的機械幾何位移量轉換成脈沖或數(shù)字量來工作的。光電編碼器通常包情況下含五條線,兩根作為電源線(正極和負極),另外三根作為脈沖線(A相、B相、Z)。編碼器的工作電壓是直流電壓,通常選擇+5V電源供電。當固定在電機軸上的光電編碼器隨電機軸轉動時,A相、B相都會產(chǎn)生脈沖輸出,且兩脈沖相差90度相位角,A線用于測量脈沖個數(shù),B線與A線相互配合來測量出轉動方向,假如A相脈沖比B相脈沖超前,那么電機正轉,否則電機為反轉,由此可測出電機轉速與電機轉動方向(即光電編碼器轉動方向)。Z線是零脈沖線,主要起著計數(shù)作用。由于光電編碼器型號確定后,相應的旋轉一圈的脈沖個數(shù)也會確定,所以Z線通常是可以省略的。
圖1 光電編碼器工作原理圖Fig.1 working principle of photoelectric encoder
1.2 數(shù)碼管顯示原理
最常用的數(shù)碼管是七段式和八段式LED數(shù)碼管,八段比七段多了一個小數(shù)點DP,剩余其他的基本相同。一個八段數(shù)碼管可用來顯示一個十進制或十六進制的數(shù)字,它內(nèi)部是由九個發(fā)光二極管所構成的。簡單來說,要產(chǎn)生數(shù)字圖案,就是要點亮相應位置的發(fā)光二極管。例如要產(chǎn)生數(shù)字,必須且只能點亮A、B、C、D、E、F、G七段的發(fā)光二極管;要產(chǎn)生數(shù)字,則須點亮A、C、D、F、G這五段的發(fā)光二極管;再如果是幾個數(shù)碼管級聯(lián)后產(chǎn)生有小數(shù)部分,則個位的DP二極管必須被點亮,以此類推,見圖2。其中,數(shù)碼管通過供電方式又可分為共陰和共陽兩種,共陰是將陰極作為為數(shù)碼管的公共端(接電源負極),當陽極接電源正極時,發(fā)光二極管就會被點亮;共陽是將陽極作為數(shù)碼管的公共端(接電源正極),當陰極接電源負極時,發(fā)光二極管就會被點亮。表1為共陰極八段數(shù)碼管數(shù)字編碼,顯示了0~9十個字符的編碼,DP為小數(shù)點,‘1’代表點亮,‘0’代表熄滅。
圖2 數(shù)碼管字段說明Fig.2 digital tube field description
表1 共陰極八段數(shù)碼管數(shù)字編碼Tab.1 Digital coding of eight segments of cathode
根據(jù)實際控制的需要,設計了基于單片機的電機測速與顯示系統(tǒng)的硬件電路,如圖 3所示。電機轉速的測量主要包括四個部分:電機、轉速采集、信號處理和轉速顯示,該方案主要對信號處理和轉速顯示兩部分進行設計。其中,電機可根據(jù)需要選取,這里選取的是額定功率為185W,額定電流為1.2A,額定轉速為1600r/min的直流電動機,而轉速采集的編碼器需要選取光電式,這里選取的型號為HEDS-9100#J00,因為光電編碼器定下后,一圈的脈沖數(shù)就定下了,單片機里程序的相應參數(shù)也就固定了。
圖3 電機測速與顯示系統(tǒng)框圖Fig.3 Motor speed and display system block diagram
2.1 采集信號處理電路
轉速測量的信號處理部分電路主要由單片機信號處理電路、電源轉換電路、濾波電路和相關電路組成,單片機是整個測量系統(tǒng)的核心部分,負責對前端光電編碼器采集來的脈沖信號進行處理、計算、以及信號的同步、計時等任務;其次,測量的數(shù)據(jù)經(jīng)單片機計算后,將得到的轉速電壓信號值傳送到顯示接口INT0、INT1中,再通過導線輸送到顯示電路板,用八段數(shù)碼管顯示轉速值。在本系統(tǒng)中考慮到計數(shù)的范圍、使用的定時/計數(shù)器的個數(shù)及 I/O接口,選擇AT89C2051單片機作為主芯片。電源轉換電路是通過變壓器將市電轉換成16V交流電,然后通過LM7805轉換成+5V直流電給單片機和D觸發(fā)器供電。而濾波電路是通過給電源電路添加電容來濾波的,目的是除去電源里的干擾。D觸發(fā)器選擇的是74LS74型,它起著計數(shù)器以及處理輸入、輸出信號和時鐘頻率之間相互影響的作用。
單片機的接口電路如圖4所示,其中,單片機RXD、TXD是為仿真器預留的接口,單片機的T1和74LS74(1)的2CP相連并與光電編碼器(HEDS-9100#J00)的CHA連接,74LS74(1)的2D和74LS74(2)的1CP相連并與光電編碼器的CHB連接。INT0、INT1是與轉速顯示電路相連接的轉速輸出接口。
2.2 轉速顯示電路
該部分電路由移位寄存器(74LS164)、共陰數(shù)碼管及100Ω電阻組成。其中,采用了獨立的五組移位寄存器與數(shù)碼管組合單元,顯示四位整數(shù)與一位小數(shù)。當時鐘 (CP)每次由低電平變?yōu)楦唠娖綍r,數(shù)據(jù)就會向高位移動一位,然后將結果輸入到 Q0(Q0是兩個數(shù)據(jù)輸入端(DSA和 DSB)的邏輯與),它會將上升時鐘沿之前的狀態(tài)保持一個建立時間的長度。單片機把采集到的轉速脈沖轉換成編碼數(shù)據(jù)傳輸給第7腳(P3.3),再傳輸?shù)斤@示電路的最低位移位寄存器74LS164(即小數(shù)部分);當轉速大于1,即編碼數(shù)據(jù)有整數(shù)部分時,會從最低位的移位寄存器第13腳(Q7)溢出,到達個位移位寄存器的數(shù)據(jù)輸入端(DSA與DSB),以此類推,將轉速完整的顯示在數(shù)碼管上;當高位的數(shù)碼管沒用到時則顯示熄滅狀態(tài),見圖5,其中,CP、Din與轉速測量電路的單片機6,7引腳相連。
圖4 單片機接口電路Fig.4 Single chip microcomputer interface circuit
圖5 轉速顯示電路Fig.5 Speed display circuit
圖6 軟件流程圖Fig.6 Software flow chart
因為移位寄存器74LS164只有串入并出的作用,并沒有譯碼功能,所以在編寫顯示驅(qū)動程序時,需要提前計算并列寫出與該電路對應的LED段選碼(可參考表1),然后由單片機AT89C2051的P3.3口送入74LS164的串行輸入端,再并行輸出到LED的段選端。這種穩(wěn)定的靜態(tài)顯示方式的優(yōu)點是省去了CPU的動態(tài)掃描過程,節(jié)省了時間、減小了數(shù)碼管顯示的不穩(wěn)定性。轉速測量的軟件部分主要包括周期測量和轉速計算兩個過程程序的編寫,圖6是程序流程圖。先測量兩次轉速后,將計算得來的兩個轉速值分別存入兩個緩沖單元(D觸發(fā)器),為單片機進行下一步的數(shù)據(jù)處理做準備。
系統(tǒng)軟件的核心是對周期測量程序的編寫,信號周期測量是否準確將會直接影響到系統(tǒng)的測量精確度。周期測量的程序一般可分為測量初始化、測量過程和測量結束三個部分。測量初始化程序主要包括被測參數(shù)的初始化程序、定時器T0的初始化程序、外部中斷0的初始化程序及外部中斷1的初始化程序四部分。測量過程中,對每個信號都會測量5個下降沿,然后從中得到4個周期的時間,最后將第4個下降沿的時間與第2個下降沿的時間作差,就得到兩個周期的時間和,除以2就得到了每個信號的單周期時間T1。由于11.0592是單片機始終的晶振,時鐘周期是1/11.0592M,因而定時器的周期是12/11.0592,所以實際的單周期時間應為T2=T1*12/11.0592。測量結束程序是用來關閉定時器及外部中斷的。
本文設計的基于AT89C2051單片機的轉速測量系統(tǒng),硬件電路結構簡單、模塊分明、抗干擾性好,程序運算速度快、響應準確。該設計實現(xiàn)了單片機準確測量電機轉速并將其顯示在數(shù)碼管上的功能,而且配有向上位機發(fā)送數(shù)據(jù)的端口,測量范圍比較寬:0 r/min-10000r/min,精確度可達到0.1 r/min,已達到了比較理想的狀態(tài)。由于基于單片機的轉速測量系統(tǒng),具有精度高、測速快、價格低廉等優(yōu)點,相信定會在今后的工業(yè)或商業(yè)中得到廣泛的應用。
[1] 王曉芬. 直流電機調(diào)速系統(tǒng)的設計[J].現(xiàn)代工業(yè)經(jīng)濟和信息化,2015,(6):68 Wang Xiao-fen. Design of DC motor speed control system [J]. modern industrial economy and information technology, 2015,(6):68
[2] 李勛,劉源,李靜東等.單片機實用教程[M].北京:北京航空航天大學出版社,2005.5:143.
[3] 閻石,編.數(shù)字電子技術基礎[M].北京:高等教育出版社,2006.5.
[4] 李金波,劉明黎.基于霍爾傳感器的轉速測量系統(tǒng)的設計[J].河南科技學院學報,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] 張毅剛,彭喜源,彭宇.單片機原理及應用[M].北京:高等教育出版社,2010:45-100.
[6] 趙樹磊,謝吉華,劉永鋒.基于霍爾傳感器的電機測速裝置[J].江蘇電器,2008,(6):53-56. Zhao Shu-lei,Xie Ji-hua,Liu Yong-feng. [J]. Jiangsu electric appliance,2008,(6): 53-56.
[7] 陳德益.基于嵌入式單片機的電機控制系統(tǒng)設計[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年——),北京市人,男,本科生。研究方向:信號與信息處理、計算機測控。
李玉杰 (1971年),北京人,碩士生導師,教授
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