【導讀】光電芯片因以其高精度、低現場環(huán)境要求、價格低廉等因素非常適用于位置檢測場合。本文結合光電鼠標芯片與AT89S51單片機,通過對普通帶傳動裝置的改進,可使其達到快速、穩(wěn)定、準確的傳動速度。
檢測系統(tǒng)硬件組成
OM02光學傳感器芯片及鼠標控制器
這款光學COMS傳感器是一款針對個人計算機所配置的非接觸式光電鼠標芯片。他集成有數字信號處理器(DSP)、雙通道正交輸出端口等。在芯片底部有一個感光眼,能夠不斷的對物體進行拍照,并將前后兩次圖像送入DSP中進行處理,得到移動的方向和距離。DSP產生的位移值,轉換成雙通道正交信號,配合鼠標控制器,將雙通道正交信號轉結成單片機能夠處理的PS/2數據格式。設備安裝在一套塑料的光學透鏡設備上,并一個配備有一個高強度的LED。此外,他可提供高達400點/英寸的分辨率以及16英寸/秒以內的速度檢測。
圖1為鼠標芯片的安裝裝配圖。因OM02芯片為COMS型傳感器,因此必須配備有與之相適應的高強度發(fā)光二極管,發(fā)射角度與底板夾角30。~45。 范圍內。在標準安裝配合后,底板距離工作表面的有效距離在0mm~2mm內,OM02芯片可進行正常的數據接收檢測。
圖1:鼠標芯片傳感器裝配圖
檢測控制原理
本系統(tǒng)采用全閉環(huán)控制方式,如下圖圖2,將鼠標檢測到位移增量反饋回單片機,并進行數字式PID控制,運算結果通過D/A轉換芯片傳給變頻器,從而控制電機的轉速。
圖2:光電鼠標檢測控制原理框圖
本實驗系統(tǒng)主要由原動機、傳動部分、執(zhí)行部分和控制部分組成。機械傳動系統(tǒng)作為機器的重要組成部分,不僅應能實現預期功能,而且應具有良好性能。為此,本實驗采用三相交流異步電機(Y2-63M1-4型,0.12KW)、變頻器(富士FRN0.4C1S-4C),30:1蝸輪蝸桿減速器、v型B相帶傳輸裝置、P204型球軸承及軸承座等作為模擬工業(yè)設備的主要的傳動及執(zhí)行部分。通過單片機調整數模轉換器的輸出電壓U,可改變變頻器的輸出頻率,從而改變電機轉速。
單片機程序設計
鼠標通信協議原理
鼠標與單片機的數據通信方式采用PS/2通信協議。
PS/2鼠標的物理接口為6腳圓形接口,使用中只需1引腳Data、3引腳GND、4引腳+5VPower和5引腳Clock這4個引腳即可。
鼠標履行一種雙向同步串行通信協議,在時鐘信號的作用下串行發(fā)送或者接受數據。通常情況下,單片機在總線上具有總線控制優(yōu)先權,可在任何時候抑制來自于鼠標的通信。從鼠標到單片機的數據在時鐘的下降沿被讀取,相反,單片機到鼠標的數據在時鐘的上升沿被讀取。時鐘信號總由鼠標內部芯片提供,時鐘頻率一般在10~20KHz。
單片機對鼠標的通信
根據協議要求,單片機對鼠標的控制只需把時鐘線拉低最少100us以上來禁止其通信,單片機拉低數據線使之處于請求發(fā)送狀態(tài)。如圖3所示,當時鐘線升為高電平后被PS/2設備重新拉低,可開始單片機向鼠標的通信。
圖3:單片機對PS/2設備通訊時序
[page]
鼠標對單片機的通信
因單片機對總線具有控制權,當鼠標要向單片機發(fā)送信息時,必須先檢查時鐘線是否為高電平。如圖4所示,當時鐘線出現高電平,數據線出現低電平,表明鼠標請求發(fā)送,單片機可以接受來自鼠標的數據。
圖4:鼠標對單片機通訊時序
單片機發(fā)送的控制數據
按照鼠標的PS/2協議規(guī)范,實際編程時先對鼠標發(fā)送0xff使其復位,默認采樣頻率為100次/秒,縮放比例1:1,數據報告禁止。使用0xea命令進入stream模式、使用0xe8,0x03命令設置解析度為8點/毫米。使用0xf4命令使能數據報告。配合AT89S51單片機的定時器功能,將其時間常數設置為0.1s,每次中斷時發(fā)送0xeb命令讀取位移數據信息,每發(fā)出一次,單片機接收到的位移數據包都包含有位移信息和按鍵動作信息。具體格式為表1所示。編譯時也只需提取X3的有效數據包即Y方向位移增量
PID控制軟件算法
使用神經網絡PID自適應控制對系統(tǒng)進行matlab的仿真測試,效果頗令人滿意。但因其輸入層、隱含層、輸出層的多階矩陣運算使得單片機的運算時間大幅度的增加,造成時間上的不確定因素增大,同比使用增量型PID控制,盡管后者需調整三個控制參數,但同樣可使精度達到我們預期的效果,運算時間則大幅度下降,為此仍可選用增量型PID算法作為控制。算法增量式數字PID的控制算法為:
U(k)=U(k-1)+*(e(k)-e(k-1))+*e(k)+*(e(k)-2e(k-1)+ e(k-2))
其中e(k)為當前位移增量與上一次位移增量的變化量, 同理e(k-1)、e(k-2)各為往前時間間隔的位移變化量。
利用單片機串行中斷接收功能,可在PC機上實時調節(jié)PID的kp,ki,kd參數。
上位機監(jiān)測設計
通過單片機的串口發(fā)送,在LabVIEW中編寫程序來完成PC 機控制數據通信設備進行數據交換,直接通過串口接收外部數據并進行圖形顯示,并可以將數據存放在txt文件當中。在Labview中主要是通過VISA控件實現串行口直接數據通信,通過RS-232串行接口和Labview實現數據的通信。
圖5:帶運動時間位移圖
使用read string控件可以用來顯示。數據接收并非連續(xù)不斷的接收,而是通過一定的延時。為實現不間斷的接收單片機發(fā)送的串口數據包,須將前面的寫和延時都去掉。因串口接收到的數據是字符型的,通過強制轉換將數據轉換為單精度整型。創(chuàng)建數組將數據和數組初始化相結合得到一個完整的數組,通過Waveform graph控件以及移位寄存器即可實現上位機的實時顯示與記錄。
檢測控制性能評價
PS/2接口最大的始終頻率是33kHz。本實驗單片機使用12MHz的晶振,可輕松完成接口功能。但受其芯片的特性的影響,盡管OM02的鼠標芯片最高可使用的分辨率為400DPI,但在使用較高分辨率的情況下,鼠標傳輸的誤碼率將有所上升,其位移精度也將受到質疑。為保證位移量的準確性,采用200DPI的分辨率,配合看門狗,精度誤差和程序穩(wěn)定性將大為好轉。
結語
使用光電鼠標作為檢測帶運動的速度傳感器,其價格低廉、準確性高而且使用方便,再配合單片機的數字式PID控制以及l(fā)abview軟件的圖形檢測,可以很好的對速度要求較低、要求精度不是非常高的設備進行改裝,使其達到輸出速度穩(wěn)定。又因為光電鼠標技術已趨于成熟,在一般分辨率的情況下下對檢測表面的要求不高,在比較惡劣的工況下仍可保證運行無障礙。而近些年所推出的激光鼠標,其分辨率可達到0.01毫米,效果甚佳。該實驗在北京某半導體企業(yè)進行了現場測試,效果理想。