段 斌
(會澤縣公安消防大隊,云南曲靖654200)
轉速是大部分控制系統重要的控制參數,轉速測量的精度和實時性影響到整個系統的快速性、穩定性。因此產生了很多針對具體應用對象的測速方式,其中最為常用的是測速發電機和光電編碼器測速。這兩種測速方式在精度和反應速度上都能很好地滿足要求,但它們的硬件成本偏高。
本文在追求測速精度、實時性與硬件成本平衡的原則下提出了一種新的測速方法。它是基于兩路霍爾傳感器作為測速敏感元件,將傳動齒輪兩個相鄰齒尖之間的轉動時間以脈沖形式傳輸給單片機采集,單片機可由此計算出轉速和判斷轉向。
在傳動系統中選擇合適的測速齒輪,該齒輪與所需測量轉速的傳動比可以確定,齒輪轉動方向與所需測量的轉動方向一致。將兩路霍爾傳感器固定在轉軸上,調整霍爾傳感器與齒輪之間的距離,當齒尖轉動到傳感器時,齒尖在傳感器作用距離內,傳感器輸出感應脈沖信號,當齒根部分轉到傳感器時,傳感器不響應。
霍爾傳感器將檢測到的信號通過整形電路傳輸給單片機,單片機對信號進行實時采集,檢測出兩個齒輪之間的轉動時間,從而計算得到轉速。轉速的計算公式為

式中,ω為轉速,單位為r/s;K為轉速與測速齒輪的傳動比;t為兩個相鄰齒輪之間的采集時間,單位為ms;D為測速齒輪的直徑,單位為mm;N為測速齒輪的齒數。
在測速霍爾傳感器逆時針方向上安裝一個判斷方向的霍爾傳感器。單片機外部中斷設置為上升沿觸發,傳動齒輪逆時針轉動觸發測向中斷,若此時測速傳感器檢測為高電平,則順時針轉動測向傳感器觸發中斷時測速傳感器檢測為低電平。因為在齒輪逆時針和順時針轉動中,測向中斷觸發的時間相差半個周期,也就是齒尖的運動周期,所以測速傳感器的檢測也相差半個周期,在逆、順時針轉動中測速傳感器的檢測值應不一樣。
測速硬件控制單元以Atmel公司生產的AT89C51RD2單片機作為微處理器進行核心程序的設計,來實現所需轉速測量與方向判斷等功能。單片機外圍電路包括:信號整形電路、D/A轉換電路、運算放大電路、H橋電路、通信接口電路等。原理框圖如圖1所示。
圖1中,作為測速敏感器件的霍爾傳感器將檢測信號通過整形電路輸入到單片機外部中斷端口;單片機實時采集檢測信號,定時器與計數器計算轉速;DA模塊與H橋電路將轉速與方向轉換成電壓信號顯示在屏幕上,電壓幅值對應轉速的大小,正負對應轉動方向;串口提供測速控制模塊與外界通信的接口;單片機實時監測轉速,超過閾值則報警。信號輸入及單片機電路如圖2所示。

圖1 控制電路原理框圖
單片機AT89C51RD2具有2路外部中斷、計數器、定時器和豐富的I/O控制接口,能夠滿足速度測量和外圍電路的控制。單片機外接11.0592 MHz的晶振,看門狗芯片保證程序的穩定運行。信號整形電路利用光隔離器件TLP521將檢測信號整形為脈沖方波信號輸入單片機的外部中斷端口P3.2、P3.3。串口與上位機通信。
數模轉換及轉速輸出電路如圖3所示。D/A模塊選用美國TI公司生產的TLC5620。它是一款帶有串行控制的4路8位電壓輸出數/模轉換器,給D/A模塊用參考源供+5 V參考電壓。將最低轉速到最大轉速轉換為0~5 V的電壓模擬信號;放大器選用LM224,將0~5 V對應的轉速信號放大。H橋電路選用4個高速、低功耗的光隔離器件PVA3354N搭建,單片機可根據轉動方向來選通橋電路,使得電壓具有正負來對應轉速的方向。
設置微處理器中斷為下降沿觸發,當傳感器2輸入脈沖到下降沿觸發中斷,判斷傳感器1的輸出是高電平還是低電平。如為高電平,轉速為正方向(順時針方向),單片機通過P0.4、P0.5腳控制選通H橋的N12和N14,N13與N15端截止?!稗D速+”端為放大器輸出端電壓,“轉速-”端接地,轉速輸出端為正電壓。反之,選通H橋的N13和N15,N12與N14端截止?!稗D速+”端接地,“轉速-”端為放大器輸出端電壓,轉速輸出端為負電壓。
報警電路如圖4所示。單片機檢測到轉速超過限定的閾值后,單片機控制繼電器停止電機,同時限制D/A模塊輸出+5 V的幅值,直到轉速降為閾值以下。報警通過IO引腳控制電子開關來驅動電機電源繼電器的通斷來實現。
由于測速涉及到比較多的運算,用匯編不太方便實現,所以軟件編程采用的是C語言編程,它不僅處理運算方便,且具有更強的可讀性。編譯環境為Keil uVision3。
程序采用模塊化程序設計思想,采用了雙中斷模式。主程序為一個循環程序,等待外部中斷0的兩次產生,即旋轉過兩個齒尖,計算兩個齒尖的轉動時間,流程圖如圖5所示。

圖2 信號輸入及單片機電路

圖3 數模轉換及轉速輸出電路

圖4 報警電路
ExtenFlag0是外部中斷0的標志位,定時器為0.1 ms單位計數(可根據轉速的范圍來設置定時器)。在響應兩次外部中斷0后,單片機將采集兩次中斷之間的時間轉換為轉速,兩個中斷之間的時間為0.1 ms的整數倍(即定時器計數個數CNTNum)加上0.1 ms的小數倍(即計數器當前計數)。如轉速大于設定值,控制電路報警;如CNTNum計數大于60 000(6 s)時認為轉速過慢處于停機狀態。
兩路霍爾傳感器檢測的信號對應單片機的兩路外部中斷端口0和1,其中外部中斷0是通過定時器來測量兩個齒尖之間的時間。而轉動的方向是通過兩路霍爾傳感器檢測信號的相位差來確定的。外部中斷0和1的中斷服務程序流程圖如圖6所示。
外部中斷0服務程序的主要功能是測量兩次中斷之間的時間,當第一次響應中斷時啟動計數器和中斷標志位加一,退出中斷。第二次響應中斷,停止計數器,記錄計數器的計數值和定時器的CNTNum計數數量可得到兩個轉過齒輪之間的時間,最后中斷標志位加一,退出中斷。
外部中斷1服務程序的主要功能是判斷轉動方向,進入測向中斷服務程序,如外部中斷0對應的測速霍爾傳感器輸入為高電平信號,判定為正向(逆時針)轉動,控制H橋電路正向輸出;如為低電平,判定當前轉動為負向(順時針)轉動,控制H橋電路負向輸出。

圖5 主程序流程圖
在本設計中,轉速的測量精度和實時性主要取決于霍爾傳感器的性能和它的安裝位置,經測試這種測速方式在精度和性能方面都不及測速發電機和光電編碼器,但能夠滿足一般的測速要求。此設計使用較少的器件,容易實現,具有良好的實用性和經濟性,值得在許多測速系統中推廣。

圖6 INT0與INT1中斷服務程序流程圖
[1]吳騰奇.霍爾傳感器及其應用[J].傳感器世界,1997,(1):28-34.
[2]何立民.單片機高級教程:應用與設計[M].北京:北京航空航天大學出版社,2007.
[3]夏俊超,陳敏刑,曾 勝.基于單片機的高精度轉速測量算法[J].化工機械,2006,3(33):141-144.