郭彥茹

摘 要: 基于51單片機的轉速測量系統通過光電編碼器對電機脈沖信號進行采集,實現對脈沖信號的產生、整形,完成對單片機處理后信息的輸出和顯示,可對電機轉速進行遠程控制。鍵盤模塊調節設置初始轉速上限,當轉速大于上限則聲光報警。由于采用了單片機和光電傳感器,該系統具有硬件電路簡單、測量精度高、性能穩定可靠等優點,適用于自動控制、自動檢測及各種轉速測量與控制領域。
關鍵詞: 電機; 光電編碼器; 脈沖測速電路; 脈沖信號采集
中圖分類號: TN911.23?34 文獻標識碼: A 文章編號: 1004?373X(2015)01?0120?02
Abstract: The rotational speed measurement system based on 51 SCM is discussed in this paper. The pulse signal of motor is collected by optoelectronic encoder to realize generation and reshaping of the pulse signal, as well as information output and display after processing by SCM. The speed of electrical machine can be controlled remotely. The initial speed upper limit is reset by keyboard module. The sound and light alarm occurs when the speed is higher than the upper limit. The system has simple hardware circuit, high measuring accuracy, stable and reliable performance due to application of the SCM and photoelectric sensor. It is applicable to automatic control, automatic detection, rotary speed measurement and control.
Keywords: motor; photoelectric encoder; pulse tachometer circuit; pulse signal acquisition
1 總體設計思路
本模塊首先通過光電編碼器獲得脈沖信號,將脈沖整形后[1],輸送給單片機進行計數,經過一定時間(200 ms)后計算出電機轉動的速度值,通過4位數碼管顯示出來(此時如果轉速超過設定的上限值則啟動聲光報警),顯示范圍為0~9 999。同時,單片機將速度信號通過比例計算,得到對應的電壓值(1 500 r/min對應5.0 V),輸出0.0~5.0 V的電壓模擬信號,通過PCB板上兩個接頭,實現連接外部設備的使用和測量,同時將電壓值顯示在兩位八段數碼管上,顯示精度為小數點后一位(0.0 V)。
為實現對電機的遠程控制,通過鍵盤設置轉速上限(初始值為1 500 r/min)的報警值,當轉速超過設置值時聲光報警。模塊本身可以通過電位器實現對電機的手動調速。系統基本設計如圖1所示。
2 各部分設計
2.1 單片機選擇
經過綜合考慮各功能的實現,選用宏晶公司推出的小型單片機STC12C5202AD?LQFP?32。它是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統的8051,但速度增快了8~12倍。
2.2 單片機功能實現
該模塊采用按鍵電平復位方式實現復位功能;利用E2PROM保證鍵盤設置的轉速上限值得以保存,當斷電后再次通電時,上限值為設置后的數值而不是設定的初始值;通過單片機自帶的A/D轉換口進行輸出顯示前必要的A/D轉換。
設定T1接口為外部計數器,T0用于數碼管顯示及形成閘門信號,選用工作狀態1(即M1M0=01時,定時器所選擇的狀態)。系統使用最常見的11.059 2 MHz的晶振,設定定時/計數器T0每10 ms中斷一次,用以數碼管的顯示,每200 ms讀取一次計數器T1中的數值[2]。
2.3 硬件電路設計
本設計使用一個4位共陽數碼管顯示電機轉速,一個2位共陽數碼管顯示0.0~5.0 V的電壓(其中5.0 V對應1 500 r/min的轉速)。
用于設定上限轉速的鍵盤電路由3個按鍵組成(K1,K2,K3),K1用于進入(此時數碼管顯示由實際的轉速值切換為需要設定的報警上限值)或退出電機轉速上限報警值設置界面,K2用于調整數值的大小,K3用于選擇需要調整數值的某一位數碼管。
A/D轉換通過單片機內部引腳實現。STC12C5202AD單片機的ADC是逐次比較型ADC。逐次比較型ADC由一個比較器和D/A轉換器構成,通過逐次比較邏輯,從最高位開始,順序地對每一輸入電壓與內置D/A轉換器輸出進行比較,經過多次比較,使轉換所得的數字量逐次逼近輸入模擬量對應值。逐次比較型ADC轉換器具有速度高、功耗低等優點。
D/A轉換的實現采用了美國德州儀器公司生產的TLC5615。它具有串行接口的數/模轉換器,其輸出為電壓型,最大輸出電壓是基準電壓值的兩倍;帶有上電復位功能,即把 DAC 寄存器復位至全零;性能比早期電流型輸出的 DAC 要好,只需要通過 3 根串行總線就可以完成 10 位數據的串行輸入。
2.4 軟件部分
2.4.1 主程序設計
主程序設計流程如圖2所示。
在顯示部分,顯存分別為D_MEM,D_MEM+1,D_MEM+2,其中D_MEM,D_MEM+1用于顯示轉速,D_MEM+2用于顯示電壓,BLINK(20H)(位地址00H~07H)為閃爍位控制,2FH(位地址70H~7FH)用作標志位。
P2口控制8段數碼管顯示,分別由P0.0,P0.1,P0.2,P0.3,P1.1,P1.0控制顯示速度的4位數碼管和顯示電壓的兩位數碼管。
2.4.2 其他子程序
脈沖計算程序、速度轉換對應電壓程序、鍵盤設置程序、比較報警上限程序、A/D轉換程序、D/A轉換程序、E2ROM保存程序、數碼顯示程序、延時子程序以及其他數值轉換和計算子程序[3]。
3 誤差分析
根據綜合調試實測速度值得出表1,誤差波動范圍如圖3所示。
平均誤差分析:
(0%+0%+0.1%+0.4%+0.09%+0.07%)÷6=0.11%
根據數據分析,該模塊的設計達到了很好的準確度。
4 結 論
本模塊的實用性非常強,在運用電機的場合檢測電機的實時轉速是十分必要的,采用光電式測速系統正是由于其低慣性、低噪聲、高分辨率和高精度的優點,同時本文的設計也實現了對電機轉速的簡單控制和轉速過快時的報警提示。設計中通過軟件硬件各種手段盡可能地減小了誤差,保證了檢測數據的可靠性。
參考文獻
[1] 湯鴻來,吳顯祥,李璐瑩.光電編碼器的輸出接口和電路系統[J].電子技術,1990(10):34?36.
[2] 段晨東.單片機原理與接口技術[M].北京:清華大學出版社,2008.
[3] 何立民.MCS?51系列單片機應用系統設計[M].北京:北京航空航天大學出版社,1990.
[4] 吳勇,李林濤,陳世純,等.基于Arduino開發環境的光電編碼器檢測儀的設計[J].現代電子技術,2014,37(2):124?126.
[5] 馮希,梁雁冰,張濤.基于FPGA的多路增量式光電編碼器測角電路設計方法[J].現代電子技術,2008,31(19):175?177.
[6] 張琴琴,楊建宏,劉琳.基于DSP的絕對式光電編碼器串行接口設計[J].現代電子技術,2012,35(14):185?188.