摘要 對于普通的帶傳動裝置進(jìn)行較高精度的速度控制,傳統(tǒng)的檢測及控制器件未必能讓人滿意,。光電鼠標(biāo)芯片因以其高精度,、低現(xiàn)場環(huán)境要求、低價格等因素非常適用于位置檢測場合,。鑒于此,,結(jié)合光電鼠標(biāo)芯片與AT89S51單片機,通過對普通帶傳動裝置的改進(jìn),,可使其傳動做到快速,、穩(wěn)定、準(zhǔn)確,。測試表明,,這種檢測及控制方式是行之有效的。 關(guān)鍵詞 PS/2協(xié)議 低速 PID控制 單片機接口 光學(xué)鼠標(biāo) 速度測量 引言 帶傳動是工業(yè)生產(chǎn)中普遍使用的傳輸裝置,,其常用的速度檢測裝置是安裝在電機旋轉(zhuǎn)端的光電編碼器,;但設(shè)備在長期使用中,因磨損等不可預(yù)計情況,,使得電機轉(zhuǎn)速與帶傳動速度出現(xiàn)嚴(yán)重的不一致,。這種半閉環(huán)控制方式在需要較高精度的帶傳動速度控制上誤差很大。光柵尺等因價格昂貴,、對現(xiàn)場環(huán)境要求高,,往往對于普通工況中帶傳動裝置的改裝并不很適用。鑒于此,,本文提出了使用一般商用的光電鼠標(biāo)代替?zhèn)鹘y(tǒng)的檢測器件的方法,,通過AT89S51單片機實現(xiàn)現(xiàn)場的PID控制,使帶傳動速度達(dá)到滿意的要求,。 1 檢測系統(tǒng)硬件組成 1.1 OM02光學(xué)傳感器芯片及鼠標(biāo)控制器 這款光學(xué)CMOS傳感器是一款針對個人計算機所配置的非接觸式光電鼠標(biāo)芯片,,集成有數(shù)字信號處理器(DSP)、雙通道正交輸出端口等,。在芯片底部有一個感光眼,,能夠不斷地對物體進(jìn)行拍照,并將前后兩次圖像送入DSP中進(jìn)行處理,,得到移動的方向和距離,。DSP產(chǎn)生的位移值,轉(zhuǎn)換成雙通道正交信號,,配合鼠標(biāo)控制器,,將雙通道正交信號轉(zhuǎn)化成單片機能夠處理的PS/2數(shù)據(jù)格式。設(shè)備安裝在一套塑料的光學(xué)透鏡設(shè)備上,,并配有一個高強度的LED,。此外,它可提供高達(dá)400點/in的分辨率以及16 in/s以內(nèi)的檢測速度。 圖1為鼠標(biāo)芯片傳感器的裝配圖,。因OM02芯片為CMOS型傳感器,,因此必須配有與之相適應(yīng)的高強度發(fā)光二極管,發(fā)射角度(與底板之間的夾角)為30°~45°,。在標(biāo)準(zhǔn)安裝配合后,,底板距離工作表面的有效距離在0~2 mm內(nèi),OM02芯片可進(jìn)行正常的數(shù)據(jù)接收檢測,。 圖1 鼠標(biāo)芯片傳感器裝配圖 1.2 檢測控制原理及系統(tǒng)硬件設(shè)計 本系統(tǒng)采用全閉環(huán)控制方式,,如圖2所示。將鼠標(biāo)檢測到的位移增量反饋回單片機,,并進(jìn)行數(shù)字式PID控制,,然后將運算結(jié)果通過D/A轉(zhuǎn)換芯片傳給變頻器,進(jìn)而控制電機的轉(zhuǎn)速,。 圖2 光電鼠標(biāo)檢測控制原理框圖 系統(tǒng)主要由電動機,、傳動部分、執(zhí)行部分和控制部分組成,。機械傳動系統(tǒng)作為機器的重要組成部分,不僅應(yīng)能實現(xiàn)預(yù)期功能,而且應(yīng)具有良好性能,。為此,采用三相交流異步電機(Y263M14型,0.12 kW),、變頻器(富士FRN0.4C1S4C),、30∶1蝸輪蝸桿減速器、v型B相帶傳輸裝置,、P204型球軸承及軸承座等作為模擬工業(yè)設(shè)備的主要傳動及執(zhí)行部分,。通過單片機調(diào)整數(shù)模轉(zhuǎn)換器的輸出電壓U,可改變變頻器的輸出頻率,,從而改變電機轉(zhuǎn)速,。 2 單片機程序設(shè)計 2.1 鼠標(biāo)通信協(xié)議原理 鼠標(biāo)與單片機的數(shù)據(jù)通信方式采用PS/2通信協(xié)議。PS/2鼠標(biāo)的物理接口為6腳圓形接口,。使用中只需第1引腳Data,、第3引腳GND,、第4引腳+5VPower和第5引腳Clock這4個引腳即可,。 鼠標(biāo)履行一種雙向同步串行通信協(xié)議,在時鐘信號的作用下串行發(fā)送或者接收數(shù)據(jù),。通常情況下,,單片機在總線上具有總線控制優(yōu)先權(quán),可在任何時候抑制來自于鼠標(biāo)的通信,。從鼠標(biāo)到單片機的數(shù)據(jù)在時鐘的下降沿被讀?。幌喾矗瑔纹瑱C到鼠標(biāo)的數(shù)據(jù)在時鐘的上升沿被讀取,。時鐘信號總由鼠標(biāo)內(nèi)部的芯片提供,,時鐘頻率一般在10~20 kHz。 (1) 單片機對鼠標(biāo)的通信 根據(jù)協(xié)議要求,,單片機對鼠標(biāo)的控制只需把時鐘線拉低最少100 μs以上來禁止其通信,,并且單片機拉低數(shù)據(jù)線使之處于請求發(fā)送狀態(tài)。如圖3所示,,時鐘線升為高電平后被PS/2設(shè)備重新拉低,,即可開始單片機向鼠標(biāo)的通信。 圖3 單片機對PS/2設(shè)備通信的時序 (2) 鼠標(biāo)對單片機的通信 因單片機對總線具有控制權(quán),,當(dāng)鼠標(biāo)要向單片機發(fā)送信息時,,必須先檢查時鐘線是否為高電平。如圖4所示,,當(dāng)時鐘線出現(xiàn)高電平,、數(shù)據(jù)線出現(xiàn)低電平時,表明鼠標(biāo)請求發(fā)送,,單片機可以接收來自鼠標(biāo)的數(shù)據(jù),。 圖4 鼠標(biāo)對單片機通信的時序 (3) 單片機發(fā)送的控制數(shù)據(jù) 按照鼠標(biāo)的PS/2協(xié)議規(guī)范,實際編程時先對鼠標(biāo)發(fā)送0xff使其復(fù)位,,默認(rèn)采樣頻率為100次/s,,縮放比例為1∶1,數(shù)據(jù)報告禁止,。使用0xea命令進(jìn)入stream模式,,使用0xe8、0x03命令設(shè)置解析度為8點/mm,,使用0xf4命令使能數(shù)據(jù)報告,。配合AT89S51單片機的定時器功能,將其時間常數(shù)設(shè)置為0.1 s,,每次中斷時發(fā)送0xeb命令讀取位移數(shù)據(jù)信息,,每發(fā)出一次,單片機接收到的位移數(shù)據(jù)包都包含有位移信息和按鍵動作信息,。具體格式如表1所列,。編譯時也只需提取X3的有效數(shù)據(jù)包即Y方向位移增量。 表1 3D型鼠標(biāo)接收數(shù)據(jù)格式 2.2 PID控制軟件算法 對該交流變頻調(diào)速系統(tǒng)建模,,首先取電壓輸入為一個隨機值,,再測得其轉(zhuǎn)速值。取兩個數(shù)值構(gòu)成一個數(shù)據(jù)對,,然后對大量數(shù)據(jù)對用Matlab仿真求得其幅頻特性和相頻特性,,并且對其幅頻特性和相頻特性進(jìn)行相似的擬合,。根據(jù)擬合的曲線可以近似求得其傳遞函數(shù)為: 使用神經(jīng)網(wǎng)絡(luò)PID自適應(yīng)控制對系統(tǒng)進(jìn)行Matlab的仿真測試,效果令人滿意,。但因其輸入層,、隱含層、輸出層的多階矩陣運算使得單片機的運算時間大幅度增加,,造成時間上的不確定因素增大,;同比使用增量型PID控制,盡管后者需調(diào)整3個控制參數(shù),,但同樣可使精度達(dá)到預(yù)期的效果,,運算時間也大幅度下降,為此選用增量型PID算法作為控制算法,。 增量式數(shù)字PID的控制算法為: 其中kp為比列系數(shù),,ki為積分系數(shù),kd為微分系數(shù),;e(k)為當(dāng)前位移增量與上一次位移增量的變化量,; 同理,e(k-1),、e(k-2)各為往前時間間隔的位移變化量,。 利用單片機串行中斷接收功能,可在PC機上實時在線調(diào)節(jié)PID的kp,、ki,、kd參數(shù)。 3 上位機監(jiān)測設(shè)計 通過單片機的串口發(fā)送端,,在LabVIEW中編寫程序來完成PC 機與數(shù)據(jù)通信設(shè)備的數(shù)據(jù)交換,,直接通過串口接收外部數(shù)據(jù)并進(jìn)行圖形顯示,并可將數(shù)據(jù)存放在txt文件當(dāng)中,。在LabVIEW中主要是使用VISA控件實現(xiàn)串行口直接數(shù)據(jù)通信,,通過RS232串行接口和LabVIEW實現(xiàn)數(shù)據(jù)的通信。 圖5 帶運動的時間位移圖 使用read string控件對數(shù)據(jù)進(jìn)行接收,,并通過Waveform graph控件就可以顯示實時波形,。在LabVIEW中自帶的范例中,數(shù)據(jù)的接收并非是連續(xù)不斷的,,而要通過一定的延時,;因此,為了不間斷地接收單片機發(fā)送的串口數(shù)據(jù)包,,須將前面的寫和延時都去掉,。因串口接收到的數(shù)據(jù)是字符型的,而我們所需要的是整型數(shù)據(jù),,因此可通過強制轉(zhuǎn)換將數(shù)據(jù)轉(zhuǎn)換為單精度整型,。創(chuàng)建數(shù)組,將數(shù)據(jù)和數(shù)組初始化相結(jié)合得到一個完整的數(shù)組,,通過Waveform graph控件以及移位寄存器即可實現(xiàn)上位機的實時顯示與記錄,。 4 檢測控制性能評價 PS/2接口最大的使用頻率是33 kHz。本實驗單片機使用12 MHz的晶振,,可輕松實現(xiàn)接口功能,。但受其芯片特性的影響,盡管OM02的鼠標(biāo)芯片最高可使用的分辨率為400DPI,但在使用較高分辨率的情況下,,鼠標(biāo)傳輸?shù)恼`碼率將有所上升,,其位移精度也將受到質(zhì)疑。為保證位移量的準(zhǔn)確性,,采用200DPI的分辨率,,配合看門狗,精度誤差和程序穩(wěn)定性將大為好轉(zhuǎn),。 測試結(jié)果如圖5所示,,圖中縱坐標(biāo)為位移增量點,每一點為0.125 mm,。帶在較低速的運行中盡管存在速度的上下跳動變化,,但跳動量較小。圖中帶速度的設(shè)定值為32點,,即40.00 mm/s(靈敏度為0.125 mm/s),,速度平均值為39.987mm/s(測量數(shù)據(jù)引自速度曲線剛開始穩(wěn)定時的前1000個時間點)。因其光電鼠標(biāo)傳感器在正常工作環(huán)境中使用,,系統(tǒng)呈線性變化,,對此可引入速度修正系數(shù)k,以提高檢測精確度,。 結(jié)語 使用光電鼠標(biāo)作為檢測帶運動的速度傳感器,,其價格低廉、準(zhǔn)確性高且使用方便,,配合單片機的數(shù)字式PID編程控制以及LabVIEW虛擬儀器的圖形檢測顯示,,可以很好地對速度要求較低、精度要求不太高的設(shè)備進(jìn)行改裝,,使其輸出速度穩(wěn)定,。又因為光電鼠標(biāo)技術(shù)已趨于成熟,一般情況下對檢測表面的粗糙度要求不高,,在比較惡劣的工況下仍可保證運行無障礙,。近些年所推出的激光鼠標(biāo),其分辨率可達(dá)到0.01 mm,,效果甚佳,。該實驗在某企業(yè)的生產(chǎn)部門進(jìn)行了現(xiàn)場測試,,效果理想。 編者注: 本文為期刊縮略版,,全文見本刊網(wǎng)站www.mesnet.com.cn,。 參考文獻(xiàn) [1] OM02 OpTIcal Mouse sensor Data Sheet,2004. [2] 趙玉昆.PS/2鼠標(biāo)和單片機的接口[J]. 上海應(yīng)用技術(shù)學(xué)院學(xué)報, 2004,4(1). [3] 林鄧偉,刑文生. 光電鼠標(biāo)芯片組在無接觸檢測運動物體中的應(yīng)用[J]. 微計算機信息,,2006,22(72). [4] 宋健. 數(shù)字PID算法在噴霧機器人導(dǎo)航系統(tǒng)中的應(yīng)用[J]. 濰坊學(xué)院學(xué)報,,2003,3(6). 陳智博,,主要研究方向為機械電子工程,; 林永忠(本科),主要研究方向為自動檢測與控制,; 蔡鐘山,、劉聃(本科),主要研究方向為檢測技術(shù)與自動化裝置,; 肖威威(本科),,主要研究方向為機械制造及自動化。 (收修改稿日期:2008-10-18) |
|
來自: 瓜爺耶 > 《鼠標(biāo)》