吳祿慎,馮 偉,陳華偉,王偉杰
(南昌大學(xué)機(jī)電工程學(xué)院, 南昌 330031)
?
基于編碼器的軌道里程記錄系統(tǒng)設(shè)計(jì)
吳祿慎,馮偉,陳華偉,王偉杰
(南昌大學(xué)機(jī)電工程學(xué)院, 南昌330031)
摘要:為了獲得在軌道缺陷檢測過程中檢測出的有缺陷圖片的精確里程信息,方便確定缺陷所在位置,設(shè)計(jì)一種雙單片機(jī)控制的記錄軌道里程值的系統(tǒng),詳細(xì)論述前置增強(qiáng)型單片機(jī)對(duì)編碼器輸出的脈沖信號(hào)鑒相,四倍頻細(xì)分,并根據(jù)預(yù)設(shè)圖片高度輸出脈沖信息,后置8052單片機(jī)根據(jù)獲得的脈沖信息記錄脈沖個(gè)數(shù)并計(jì)算里程值,最后通過串口將計(jì)算所得數(shù)據(jù)上傳至工控機(jī)。使用C++Builder編寫的上位機(jī)控制軟件對(duì)數(shù)據(jù)處理調(diào)用,以顯示每張圖片所表示的里程值。運(yùn)行結(jié)果表明,該設(shè)計(jì)在記錄并顯示里程過程中,速度響應(yīng)迅速,精度大大提高并且準(zhǔn)確穩(wěn)定。
關(guān)鍵詞:軌道缺陷檢測;光電編碼器;鑒相分頻;里程計(jì)數(shù);串口通信
記錄軌道的里程信息,是軌道缺陷檢測系統(tǒng)中不可缺少的基本功能,它可以確定軌道缺陷所在位置。針對(duì)鋼軌表面以及軌道扣件、夾板的缺陷檢測,需結(jié)合圖像處理技術(shù)的應(yīng)用,利用CCD相機(jī)拍攝軌道,對(duì)成像的圖片進(jìn)行數(shù)字圖像處理。所以,記錄每張圖片所對(duì)應(yīng)軌道的精確位置至關(guān)重要。
現(xiàn)階段,由于軌道缺陷檢測[1]儀器通常是裝載在測量小車上,通過推動(dòng)小車來實(shí)現(xiàn)檢測,因此記錄里程比較有效的方法是,將光電編碼器這種高精度的角位移測量傳感器的中空軸裝載在小車車輪軸上,當(dāng)小車運(yùn)動(dòng)時(shí),編碼器的中空軸會(huì)跟隨小車車輪軸同步轉(zhuǎn)動(dòng),這樣通過測量編碼器的旋轉(zhuǎn)角度,達(dá)到間接測量行走里程的目的[2]。
根據(jù)實(shí)際要求,選定拍攝圖片高度,單片機(jī)通過編碼器產(chǎn)生的脈沖相應(yīng)定距計(jì)數(shù),然后上傳里程信息至工控機(jī),以記錄每張圖片所對(duì)應(yīng)的軌道里程。
1總體設(shè)計(jì)
該系統(tǒng)的設(shè)計(jì)思路主要由兩大部分組成,一是里程信號(hào)采集,單片機(jī)根據(jù)實(shí)際設(shè)置的圖片高度,通過編碼器產(chǎn)生的脈沖定距采集;二是里程計(jì)數(shù)與數(shù)據(jù)傳送,單片機(jī)對(duì)輸入的計(jì)數(shù)脈沖信號(hào)和正反轉(zhuǎn)信號(hào)中斷處理并相應(yīng)向上或向下計(jì)數(shù),根據(jù)脈沖個(gè)數(shù)計(jì)算里程值并將計(jì)算所得數(shù)據(jù)通過串口傳送至工控機(jī),以實(shí)時(shí)顯示每張圖片所代表的里程值。在里程信號(hào)采集部分,考慮軌道環(huán)境惡劣,且系統(tǒng)對(duì)精度、速度有一定的要求,可采用軟件鑒相、分頻的方法,選用增強(qiáng)型單片機(jī)對(duì)編碼器輸出信號(hào)進(jìn)行辨向和四倍頻細(xì)分。里程計(jì)數(shù)部分則是采用8052系列單片機(jī)中的內(nèi)部計(jì)數(shù)器來計(jì)算脈沖個(gè)數(shù)并計(jì)算實(shí)際里程數(shù)。數(shù)據(jù)傳送則是利用8052系列單片機(jī)的串口通信功能,將計(jì)算所得數(shù)據(jù)通過串口傳送至工控機(jī)。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
2里程信號(hào)采集
光電編碼器通常情況下輸出A、B、Z三路信號(hào),如圖2所示,其中A、B信號(hào)波形相同,相位差90°,這樣可以使單片機(jī)接收到軸的旋轉(zhuǎn)方向信號(hào),實(shí)現(xiàn)雙向的定位控制,Z信號(hào)稱之為零位信號(hào)脈沖,A⊕B為異或后的信號(hào)[3]。
圖2 光電編碼器輸出信號(hào)
2.1鑒相和細(xì)分規(guī)則
光電編碼器在運(yùn)行過程中,有正轉(zhuǎn)與反轉(zhuǎn)之分,如圖3、圖4所示。當(dāng)光電編碼器正轉(zhuǎn)時(shí),A信號(hào)超前B信號(hào)90°,A、B兩信號(hào)的電平狀態(tài)值順序是10→11→01→00,當(dāng)光電編碼器反轉(zhuǎn)時(shí),A信號(hào)落后B信號(hào)90°,A、B兩信號(hào)的電平狀態(tài)值順序相應(yīng)變?yōu)?1→10→00→01。雖然順序不同,但4個(gè)狀態(tài)值是相同的,所以利用這種規(guī)律,根據(jù)A、B兩信號(hào)在一個(gè)周期內(nèi)的4種不同狀態(tài)值的有序變化,可以有效地進(jìn)行鑒相[4]。通過異或芯片,將A、B兩路信號(hào)進(jìn)行異或處理,對(duì)異或信號(hào)A⊕B上升沿與下降沿均捕獲,這樣便在光電編碼器輸出信號(hào)的一個(gè)周期內(nèi)捕獲4次,也就實(shí)現(xiàn)對(duì)其4倍頻細(xì)分[5]。
圖3 光電編碼器正轉(zhuǎn)
圖4 光電編碼器反轉(zhuǎn)
2.2鑒相和4倍頻的實(shí)現(xiàn)
為了滿足較高速的試驗(yàn)需求,系統(tǒng)采用增強(qiáng)型單片機(jī)STC12C2052AD,該款單片機(jī)是STC公司生產(chǎn)的1T單片機(jī),集高速、低功耗、超強(qiáng)抗干擾于一體的8051單片機(jī),但速度是傳統(tǒng)8051的8~12倍[6]。此外該單片機(jī)增加的PCA模塊[7],可以高效地捕獲輸入沿,增加系統(tǒng)的穩(wěn)定性,將編碼器輸出的A、B信號(hào)分別接入STC12C2052AD單片機(jī)的P1.0和P1.1端口,并對(duì)A、B兩信號(hào)進(jìn)行異或處理,可以通過芯片74LS86實(shí)現(xiàn)功能,將輸出的異或信號(hào)接入單片機(jī)P3.7端口,如圖5所示。
圖5 異或電路
單片機(jī)對(duì)異或信號(hào)A⊕B的上升沿與下降沿均捕獲并觸發(fā)中斷,然后進(jìn)入到中斷程序中,通過對(duì)這兩個(gè)端口讀取的數(shù)據(jù),便可以獲得A、B兩信號(hào)的電平狀態(tài)值,在軟件程序中,設(shè)定AB電平01、00、10、11分別對(duì)應(yīng)順序值為1、2、3、4,然后單片機(jī)將兩次讀取的端口順序值相減,若相減結(jié)果為-3或者+1,可知光電編碼器正向旋轉(zhuǎn),計(jì)數(shù)值相應(yīng)加1;若相減結(jié)果為-1或者+3,可知光電編碼器反向旋轉(zhuǎn),計(jì)數(shù)值相應(yīng)減1,最后單片機(jī)輸出正反轉(zhuǎn)信號(hào)與計(jì)數(shù)脈沖信號(hào)。正反轉(zhuǎn)信號(hào)程序流程如圖6所示。值得注意的是,計(jì)數(shù)脈沖經(jīng)振蕩器12分頻后,檢測一次需要2個(gè)機(jī)器周期,故計(jì)數(shù)頻率是振蕩器頻率的1/24,為了滿足實(shí)際需要,系統(tǒng)選擇12 MHz的外部晶振,最高計(jì)數(shù)頻率可以達(dá)到500 kHz[8]。
圖6 正反轉(zhuǎn)程序流程
3里程計(jì)數(shù)及通訊
軌道缺陷檢測小車的運(yùn)動(dòng)方向是雙向的,對(duì)于記錄里程裝置來說,就要實(shí)現(xiàn)正向運(yùn)動(dòng)加計(jì)數(shù),反向運(yùn)動(dòng)減計(jì)數(shù)。對(duì)于該軌道檢測系統(tǒng)是以圖片形式存儲(chǔ),因此需實(shí)現(xiàn)拍攝一張圖片記錄一次里程。
3.1計(jì)數(shù)原理
該系統(tǒng)是將光電編碼器的中空軸與檢測小車的車輪軸固定在一起,檢測小車車輪直徑D=59.7 mm,根據(jù)試驗(yàn)需求,選定光電編碼器輸出脈沖數(shù)為1 000 pulse/r,則每張圖片的實(shí)際長度d,即沿軌道方向的距離為
(1)
式中,N為預(yù)設(shè)的圖片高度。
現(xiàn)在以預(yù)設(shè)圖片高度為512為例,針對(duì)經(jīng)單片機(jī)STC12C2052AD鑒相和四倍頻細(xì)分之后的電路,要求每正向或反向計(jì)數(shù)
細(xì)分后的脈沖就上傳一次里程計(jì)數(shù)脈沖信號(hào)和一次正反轉(zhuǎn)信號(hào)至單片機(jī)STC89C52的T2計(jì)數(shù)器中。
STC89C52單片機(jī)是一種低功耗、高性能、CMOS、8位微控制器,它與51單片機(jī)相比,除了其內(nèi)部程序存儲(chǔ)容量增大外,還多了一個(gè)T2定時(shí)器/計(jì)數(shù)器[9]。計(jì)數(shù)器2具有自動(dòng)重新裝載(遞增或遞減計(jì)數(shù))功能,利用該功能可以直接對(duì)輸入的計(jì)數(shù)脈沖信號(hào)和正反轉(zhuǎn)信號(hào)進(jìn)行處理計(jì)數(shù)。該功能由計(jì)數(shù)器2模式控制寄存器T2MOD設(shè)定。其中當(dāng)DCEN=1時(shí),該模式允許T2EX引腳控制計(jì)數(shù)方向。當(dāng)T2EX置1時(shí),計(jì)數(shù)器2加計(jì)數(shù),當(dāng)T2EX清零時(shí),計(jì)數(shù)器2減計(jì)數(shù)[10]。
最后通過式(2)計(jì)算得出里程值
(2)
式中,T為T2計(jì)數(shù)器中的計(jì)數(shù)值。
3.2計(jì)數(shù)電路設(shè)計(jì)
硬件電路接口連接如圖7所示。正反轉(zhuǎn)信號(hào)與計(jì)數(shù)脈沖信號(hào)分別由單片機(jī)STC12C2052AD的P1.3和P1.4兩個(gè)端口輸出,正反轉(zhuǎn)信號(hào)控制計(jì)數(shù)器2的計(jì)數(shù)方向,因此與單片機(jī)STC89C52的P1.1(T2EX)端口連接;計(jì)數(shù)脈沖信號(hào)與單片機(jī)STC89C52的P1.0(T2)端口連接,使計(jì)數(shù)器2以一為單位計(jì)數(shù)。
圖7 T2計(jì)數(shù)器硬件電路
3.3串口通訊電路設(shè)計(jì)
系統(tǒng)采用RS232接口完成單片機(jī)STC89C52與工控機(jī)的通信任務(wù)。RS232具有很多優(yōu)勢:只需要通過3根線就可以在上位機(jī)與下位機(jī)之間完成全雙工的數(shù)據(jù)通信[11]。由于單片機(jī)串行通信的電平是TTL電平,若要與工控機(jī)通信連接,需要電平轉(zhuǎn)換,系統(tǒng)采用MAX232芯片進(jìn)行電平轉(zhuǎn)換[12]。硬件連接電路如圖8所示。
圖8 RS232串口電路
3.4通信協(xié)議
單片機(jī)與工控機(jī)均采用查詢方式進(jìn)行發(fā)送控制字符和數(shù)據(jù)、中斷方式接受控制字符和數(shù)據(jù)[13]。工控機(jī)采用串行口COM1,波特率9 600 bps,起始位1位,數(shù)據(jù)位8位,停止位1位,無奇偶校驗(yàn)位。每次當(dāng)單片機(jī)STC89C52更新計(jì)算結(jié)果時(shí),就向工控機(jī)發(fā)送通信指令“EB90”,工控機(jī)接收到通信信號(hào)后向單片機(jī)發(fā)送應(yīng)答通信指令“EBOO”,當(dāng)單片機(jī)接收應(yīng)答通信信號(hào)后便可以發(fā)送計(jì)算結(jié)果。
4試驗(yàn)
軌道缺陷檢測的上位機(jī)控制界面如圖9所示。該控制界面是利用Borland C++Builder V6.0編譯完成。主體部分是檢測軌道扣件的實(shí)時(shí)圖像,右側(cè)主要是參數(shù)設(shè)置、路徑保存和顯示里程等,下側(cè)主要是采集的圖像狀態(tài)情況。
在500 m的試驗(yàn)線路上,經(jīng)過反復(fù)測試,能夠準(zhǔn)確獲取并實(shí)時(shí)顯示當(dāng)前檢測位置。
圖9紅框中所示為某一時(shí)刻的實(shí)時(shí)顯示,該圖中顯示記錄的該張圖片所處位置為當(dāng)前軌道的46.5 m。
圖9 上位機(jī)控制界面
5結(jié)語
系統(tǒng)采用雙單片機(jī)結(jié)合控制,可實(shí)現(xiàn)缺陷檢測的雙向里程計(jì)數(shù),記錄每張圖片所對(duì)應(yīng)的軌道位置。此種設(shè)計(jì)不但使系統(tǒng)處理速度和精度得到極大的提高,而且使得外圍電路得到有效簡化,在實(shí)際軌道現(xiàn)場操作,試驗(yàn)結(jié)果準(zhǔn)確,為后續(xù)提高缺陷檢測系統(tǒng)實(shí)效性提供了有效保證。
參考文獻(xiàn):
[1]Mandriota C, Nitti M, Ancona N, et al. A Distante Filter-based Feature Selection for Rail Defect Detection[J]. Machine Vision and Applications, 2004,15(4):179-185.
[2]賀洪江,鐘志賢.一種差動(dòng)輪式競賽機(jī)器人的路徑跟蹤方法[J].制造業(yè)自動(dòng)化,2013-02(下):5-8.
[3]鄧兆翠,張鳳登.光電編碼器輸出脈沖可逆計(jì)數(shù)方法的對(duì)比與改進(jìn)[J].自動(dòng)化儀表,2013(4):62-65.
[4]Feillet D, Dejax P, Gendreau M. Traveling salesman problems with profits. Transportation Science[J]. 2005,39(2):188-205.
[5]陳立兵,樊瑜瑾,等.基于AVR單片機(jī)的光電編碼器定長系統(tǒng)設(shè)計(jì)[J].機(jī)床與液壓,2012(7):110-113.
[6]王興,賈曉虎,郝春麗.基于增量式光電編碼器位移傳感器研究[J].電子設(shè)計(jì)工程,2012(5):155-158.
[7]耿洪興,張樂年,等.基于STC單片機(jī)的機(jī)械手運(yùn)動(dòng)控制研究[J].電氣技術(shù)與自動(dòng)化,2010,39(5):150-152.
[8]郭天祥.新概念51單片機(jī)C語言教程:入門、提高、開發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2009.
[9]王瓊.單片機(jī)原理及應(yīng)用[M].合肥:合肥工業(yè)大學(xué)出版社,2013(6).
[10]王巧芝,等.51單片機(jī)開發(fā)應(yīng)用從入門到精通[M].北京:中國鐵道出版社,2011.
[11]章輝,葉建芳,葉建威.基于MSComm控件串口通信的實(shí)現(xiàn)[J].電子測量技術(shù),2011(8):126-129.
[12]賈志成,岳西鳳,等.基于VC++的XCTD串口實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)[J].機(jī)械設(shè)計(jì)與制造,2010(10):84-86.
[13]于艷,顧恒.MCS-51單片機(jī)和PC機(jī)間的串口通信[J].科學(xué)技術(shù)與工程,2007(4):1786-1788.
Design of Encoder-based Track Mileage Recording System
WU Lu-shen, FENG Wei, CHEN Hua-wei, WANG Wei-jie
(School of Electromechanical Engineering, Nachang University, Nanchang 330031, China)
Abstract:In order to determine the location of defective tracks conveniently, defective pictures detected should have accurate mileage information. This paper designs a track mileage recording system with double single-chip microcomputer control, describes in detail single chip microcomputer performing phase demodulation and frequency division, and outputting pulse information according to the height of the default images. 8052 single-chip microcomputer records pulse information according to the number of pulse and calculates the range value, and finally the data is uploaded to the industrial computer. C++Builder is used to write PC control software to handle and call data, and display mileage value of each image. The design proves very quick in recording and displaying with high accuracy and stability.
Key words:Orbital defect detection; Photoelectric encoder; Phase and frequency division; Mileage count; Serial port communication
中圖分類號(hào):TP23
文獻(xiàn)標(biāo)識(shí)碼:A
DOI:10.13238/j.issn.1004-2954.2015.04.013
文章編號(hào):1004-2954(2015)04-0045-04
作者簡介:吳祿慎(1953—),男,教授,博士生導(dǎo)師,E-mail:wulushen@163.com。
基金項(xiàng)目:國家自然科學(xué)基金(51065021,51365037)
收稿日期:2014-07-10