摘要:本文所設(shè)計(jì)的系統(tǒng)可以測(cè)量標(biāo)準(zhǔn)軌距為1435mm軌道的水平度、軌距,可實(shí)現(xiàn)自動(dòng)檢測(cè)、自動(dòng)存儲(chǔ)。通過RS232接口與計(jì)算機(jī)數(shù)據(jù)通信后,可用軟件查詢分析所有測(cè)量數(shù)據(jù),并可打印報(bào)表。
引言
線路道岔
電子檢測(cè)尺是列車運(yùn)行安全的重要保障,其主要用途是測(cè)量軌道的軌距、水平度,目的是為了預(yù)防因外界環(huán)境溫度的影響而使鋼軌狀態(tài)變形。此外,它也可消除人工機(jī)械式測(cè)量帶來的誤差大、工作效率低等不良因素,從而進(jìn)一步提高鐵路安全保障措施。
系統(tǒng)工作原理及硬件設(shè)計(jì)
線路道岔電子檢測(cè)尺的功能包括兩項(xiàng):軌距和水平度,該儀器的結(jié)構(gòu)如圖1所示,由數(shù)字傾角(角度)傳感器、高精度位移測(cè)量傳感器、單片機(jī)及外圍電路、橫尺、直擋、測(cè)量滑塊、和液晶顯示器等部分構(gòu)成。其中高精度位移測(cè)量傳感器和測(cè)量滑塊用于測(cè)量軌距。軌距由兩部分構(gòu)成,一部分是橫尺上的標(biāo)準(zhǔn)長度部分s1(該部分為固定值),另外一部分是以標(biāo)準(zhǔn)長度末端A點(diǎn)為起點(diǎn)的測(cè)量長度s2(該部分由高精度位移測(cè)量傳感器測(cè)量得到),總的軌距s=s1+s2。考慮到溫度的影響,單片機(jī)自帶溫度傳感器,用來補(bǔ)償溫度對(duì)測(cè)量數(shù)據(jù)的影響。橫尺上的數(shù)字傾角(角度)傳感器測(cè)量橫尺的水平度(角度),通過角度和軌距可測(cè)量左右軌的高差。液晶顯示部分顯示軌距、左右軌高差和時(shí)間等信息,相關(guān)數(shù)據(jù)可以保存在儀器中,也可通過RS232接口與計(jì)算機(jī)通訊讀出來形成匯總,在計(jì)算機(jī)中保存、打印相關(guān)數(shù)據(jù)。
線路道岔電子檢測(cè)尺主要通過
位移傳感器和數(shù)字傾角(角度)傳感器對(duì)鋼軌的軌距、水平度進(jìn)行測(cè)量。傳感器信號(hào)通過RS232接口和特殊功能計(jì)數(shù)器后進(jìn)入單片機(jī),單片機(jī)計(jì)算出軌距后,再由傾角傳感器測(cè)量的傾角與軌距這兩組數(shù)據(jù),根據(jù)正弦函數(shù)算出兩軌道相差高度。單片機(jī)把這兩組數(shù)據(jù)與設(shè)定的門限值進(jìn)行比較來判斷測(cè)量點(diǎn)是否合格。液晶屏顯示輸出數(shù)據(jù)結(jié)果,鍵盤可以設(shè)定門限值、所測(cè)點(diǎn)的位置,并具備刪除和保存數(shù)據(jù)等功能。系統(tǒng)設(shè)計(jì)框圖見圖2。
數(shù)字傾角(角度)傳感器
數(shù)字傾角(角度)傳感器利用重力對(duì)流體的作用引起膜電位變化的原理而制成,是新型的慣性傳感器,它具有體積小、高靈敏度、線性好、壽命長、寬動(dòng)態(tài)范圍、高穩(wěn)定性、*抗沖擊性等特點(diǎn)。
數(shù)字傾角(角度)傳感器通過RS232與單片機(jī)接口。紅線為電源輸入,黑線為地(RS232地與電源地共用),黃線為傳感器的RS232輸入,綠線為傳感器的RS232輸出。輸入電源電壓為7V-24V,推薦值9V。傳感器應(yīng)豎直安裝,安裝面與垂直面的夾角不大于2°。安裝示意圖見圖3。
C8051F060單片機(jī)
為了減少外圍器件、提高系統(tǒng)穩(wěn)定性,采用自帶溫度傳感器的C8051F060器件,它是*集成的混合信號(hào)系統(tǒng)級(jí)MCU芯片,使用Cygnal的CIP-51微控制器內(nèi)核,CIP-51與MCS-51指令集*兼容。C8051F060內(nèi)部有1個(gè)SMBUS/I2C接口、2個(gè)具有增強(qiáng)型波特率配置的全雙工UART和1個(gè)增強(qiáng)型SPI接口,每種串行總線*由硬件實(shí)現(xiàn),都能向CIP-51產(chǎn)生中斷。C8051F060具有五個(gè)通用的16位定時(shí)器;具有6個(gè)捕捉/比較模塊的可編程計(jì)數(shù)器/定時(shí)器數(shù)組;具有片內(nèi)看門狗定時(shí)器、VDD監(jiān)視器、時(shí)鐘振蕩器。C8051F060是真正能獨(dú)立工作的片上系統(tǒng)。所有模擬和數(shù)字外設(shè)均可由用戶固件使能/禁止和配置。FLASH存儲(chǔ)器還具有在系統(tǒng)重新編程能力,可用于非易失性數(shù)據(jù)存儲(chǔ),并允許現(xiàn)場(chǎng)更新8051固件。
C8051F060有大量的數(shù)字資源需要通過4個(gè)低端I/O端口P0、P1、P2和P3才能使用。P0、P1、P2和P3中的每個(gè)引腳既可定義為通用的端口I/O(GPIO)引腳,又可以分配給一個(gè)數(shù)字外設(shè)或功能(例如:UART0或INT1)。系統(tǒng)設(shè)計(jì)者控制數(shù)字功能的引腳分配,只受可用引腳數(shù)的限制。這種資源分配的靈活性是通過使用優(yōu)先權(quán)交叉開關(guān)譯碼器實(shí)現(xiàn)的。不管引腳被分配給一個(gè)數(shù)字外設(shè)或是作為通用I/O,總是可以通過讀相應(yīng)的數(shù)據(jù)寄存器得到端口I/O引腳的狀態(tài)。
優(yōu)先權(quán)交叉開關(guān)譯碼器按優(yōu)先權(quán)順序?qū)⒍丝?~3的引腳分配給器件上的數(shù)位外(UART、SMBus、PCA、定時(shí)器等)。端口引腳的分配順序從P0.0開始,可以一直分配到P3.7。當(dāng)交叉開關(guān)配置寄存器XBR0、XBR1、XBR2和XBR3中外設(shè)的對(duì)應(yīng)使能位被設(shè)置為邏輯1時(shí),交叉開關(guān)將端口引腳分配給外設(shè)。端口0~3中所有未被交叉開關(guān)分配的引腳都可以作為通用I/O(GPIO)引腳,通過讀或?qū)懴鄳?yīng)的端口數(shù)據(jù)寄存器訪問,這是一組既可以按位尋址也可以按字節(jié)尋址的SFR。被交叉開關(guān)分配的那些端口引腳的輸出狀態(tài),受使用這些引腳的數(shù)字外設(shè)的控制。向端口資料寄存器(或相應(yīng)的端口位)寫入時(shí)對(duì)這些引腳的狀態(tài)沒有影響。
C8051F060單片機(jī)的P0.0引腳被配置為UART0的TX0,P0.1引腳被配置為UART0的RX0,UART0用來與數(shù)字傾角(角度)傳感器進(jìn)行通訊。UART0是一個(gè)具有幀錯(cuò)誤檢測(cè)和地址識(shí)別硬件的增強(qiáng)型串行口。UART0可以工作在全雙工異步方式或半雙工同步方式,并支持多處理器通信。接收數(shù)據(jù)被暫存于一個(gè)保持寄存器中,這就允許UART0在軟件尚未讀取前一個(gè)數(shù)據(jù)字節(jié)的情況下開始接收第二個(gè)輸入數(shù)據(jù)字節(jié)。一個(gè)接收覆蓋位用于指示新的接收數(shù)據(jù)已被鎖存到接收緩沖器,而前一個(gè)接收數(shù)據(jù)尚未被讀取。對(duì)UART0的控制和訪問是通過相關(guān)的特殊功能寄存器即串行控制寄存器(SCON0)和串行數(shù)據(jù)緩沖器(SBUF0)來實(shí)現(xiàn)的。用同一個(gè)SBUF0地址可以訪問發(fā)送寄存器和接收寄存器。讀SBUF0將自動(dòng)訪問接收寄存器,而寫SBUF0自動(dòng)訪問發(fā)送寄存器。UART0可以工作在查詢或中斷方式,它有兩個(gè)中斷源:一個(gè)發(fā)送中斷標(biāo)志TI0(SCON0.1,數(shù)據(jù)字節(jié)發(fā)送結(jié)束時(shí)置位)和一個(gè)接收中斷標(biāo)志RI0(SCON0.0,接收完一個(gè)數(shù)據(jù)字節(jié)后置位)。
C8051F060單片機(jī)的P0.2被配置為UART1的TX1,P0.3引腳被配置為UART1的RX1,UART1用來與上位PC機(jī)進(jìn)行通訊。對(duì)UART1的控制基本與UART0相同。
C8051F060單片機(jī)的P0.4被配置為外部中斷源(/INT0)的輸入腳,接收位移傳感器的零點(diǎn)復(fù)位信號(hào),減少由于多次來回運(yùn)動(dòng)造成的累積測(cè)量誤差。/INT0被配置為下降沿觸發(fā)輸入。
C8051F060單片機(jī)的P0.5被配置為定時(shí)器/計(jì)數(shù)器3的計(jì)數(shù)輸入腳(T3),接收位移傳感器的位移脈沖。P0.6被配置為定時(shí)器/計(jì)數(shù)器3計(jì)數(shù)方向控制腳(T3EX),用來判斷位移傳感器的移動(dòng)方向。C/T3位被置"1"時(shí),將定時(shí)器配置為計(jì)數(shù)器方式(即在T3輸入引腳上的負(fù)跳變使計(jì)數(shù)器/定時(shí)器的寄存器加1或減1)。定時(shí)器配置寄存器中的減1使能位(DCEN3)被置"1",定時(shí)器可以向上或向下計(jì)數(shù)。當(dāng)DCEN3=1時(shí),定時(shí)器的計(jì)數(shù)方向受T3EX引腳上的邏輯電平的控制。當(dāng)T3EX=1時(shí),計(jì)數(shù)器/定時(shí)器向上計(jì)數(shù);當(dāng)T3EX=0時(shí),計(jì)數(shù)器/定時(shí)器向下計(jì)數(shù)。T3EX必須在數(shù)字交叉開關(guān)中被使能并且被配置為數(shù)字輸入。
位移傳感器
采用DC20型光柵尺位移傳感器作為軌距測(cè)量工具。DC20型光柵尺采用雙層防護(hù)膠條密封,可保證*的密封性能。讀數(shù)頭滾動(dòng)系統(tǒng)采用450式五軸承滾動(dòng)系統(tǒng),保證光學(xué)感應(yīng)系統(tǒng)能長期穩(wěn)定地在光柵尺上順暢滑行以及它高等級(jí)的測(cè)量精度。
位移傳感器輸出信號(hào)波形見圖4。
調(diào)試電路
C8051F060的片內(nèi)JTAG調(diào)試電路允許使用安裝在zui終應(yīng)用系統(tǒng)上的產(chǎn)品進(jìn)行非侵入式(不占用片內(nèi)資)、全速、在系統(tǒng)調(diào)試。該調(diào)試系統(tǒng)支持觀察并修改存儲(chǔ)器和寄存器,支持?jǐn)帱c(diǎn)、觀察點(diǎn)、單步及行和停機(jī)命令。在使用JTAG調(diào)試時(shí),所有的模擬和數(shù)字外設(shè)都可全功能運(yùn)行。JTAG接口使用MCU上的4個(gè)引腳(TMS、TCK、TDI、TDO)。
萬年歷時(shí)鐘芯片電路
每次測(cè)量后記錄測(cè)量時(shí)間,以便在上位PC機(jī)形成報(bào)表。DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。
DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。DS1302與CPU的連接如圖5所示。
EEPROM電路
測(cè)量的數(shù)據(jù)保存在EEPROM中。AT24C512是ATMEL公司推出的具有I2C總線容量達(dá)512Kbit(64K×8)的EEPROM,該芯片的主要特性如下:存儲(chǔ)容量為65536byte;與100kHz、400kHz、1MHzI2C總線兼容;100000次編程/擦寫周期;單電源、讀寫電壓為1.8V~5.5V;ESD保護(hù)電壓>4kV;數(shù)據(jù)可保存40年;寫保護(hù)功能,當(dāng)WP為高電平時(shí),進(jìn)入寫保護(hù)狀態(tài);CMOS低功耗技術(shù),zui大寫入電流為3mA;128byte頁寫入緩存器;自動(dòng)定時(shí)的寫周期;具有8引腳DIP及20引腳SOIC封裝等多種封裝形式。EEPROM電路見圖6。
RS232電平轉(zhuǎn)換電路
MAX232是單電源雙RS232發(fā)送/接受芯片,采用單一+5V電源供電,只需外接4個(gè)電容,便可構(gòu)成標(biāo)準(zhǔn)的RS232通信接口。單片機(jī)和計(jì)算機(jī)、數(shù)字傾角(角度)傳感器接口電路如圖7所示。圖中的C3、C4、C5、C6是電荷泵升壓及電壓反轉(zhuǎn)部分電路,產(chǎn)生V+、V-電源供EIA電平轉(zhuǎn)換使用,C7是VCC對(duì)地去藕電容,其值均為0.1μF。電容C3~C7安裝時(shí)必須盡量靠近MAX232芯片引腳,以提高抗*力。
液晶顯示電路
JM19264A是具有192*64點(diǎn)陣的圖形點(diǎn)陣液晶模塊,它與單片機(jī)聯(lián)接構(gòu)成功能強(qiáng)、結(jié)構(gòu)簡單、人機(jī)對(duì)話界面豐富的應(yīng)用系統(tǒng)。本儀器中,單片機(jī)采用直接訪問式接口電路與液晶顯示電路進(jìn)行控制。
液晶屏顯示內(nèi)容及鍵盤布局
線路道岔電子檢測(cè)尺外部由JM19264A液晶顯示屏、RS232接口和4*4的鍵盤構(gòu)成,右端是可旋轉(zhuǎn)移動(dòng)的軸,通過軸的移動(dòng)產(chǎn)生位移信號(hào)輸入單片機(jī),單片機(jī)每隔0.5s刷新一次液晶顯示屏數(shù)據(jù)。H后的"+"號(hào)代表左端高,"-"號(hào)表示左端低。L后的"+"表示比標(biāo)準(zhǔn)值大,"-"表示比標(biāo)準(zhǔn)值小。液晶屏顯示及鍵盤布局見圖8。
線路道岔電子檢測(cè)尺的使用
在使用線路道岔電子檢測(cè)尺進(jìn)行測(cè)量時(shí),線路道岔電子檢測(cè)尺的左端緊挨著鋼軌的一側(cè),另一端用螺旋器移動(dòng)中心軸使之接觸鋼軌另一側(cè),按下鍵盤上的確認(rèn)鍵后,該系統(tǒng)便會(huì)很地將需要的數(shù)據(jù)測(cè)量出來。測(cè)量完成后按下保存鍵便可保存該點(diǎn)的數(shù)據(jù)。通過RS232與PC機(jī)連接后可獲取所測(cè)量點(diǎn)的所有信息。
抗震動(dòng)、防沖擊的結(jié)構(gòu)設(shè)計(jì)
由于線路道岔電子檢測(cè)尺輕巧便攜,因此也很容易產(chǎn)生碰撞、跌落。為了讓系統(tǒng)可靠地工作,應(yīng)避免震動(dòng)、沖擊直接作用到傳感元件上,因此在設(shè)計(jì)結(jié)構(gòu)上采取了金屬盒裝的結(jié)構(gòu)。將控制裝置緊固安裝在金屬盒內(nèi),僅留外部接口、液晶顯示屏和鍵盤在金屬盒外,避免內(nèi)部元件直接受外部沖擊、碰撞,提高了器件抗沖擊能力。
系統(tǒng)的編程
采用SiliconLaboratoriesIDE集成編輯、編譯、仿真、下載軟件包,用C語言進(jìn)行軟件編寫。系統(tǒng)通電后,首先要對(duì)單片機(jī)進(jìn)行初始化,包括單片機(jī)的I/O端口和交叉開關(guān)、定時(shí)器的初始化、兩個(gè)串行通訊口的初始化,液晶顯示器的初試化等。整個(gè)程序由器件初始化程序、液晶顯示器的初試化程序、串行口中斷程序、外部中斷0處理程序、顯示程序、鍵盤掃描處理程序、軌距和水平計(jì)算程序程序、萬年歷時(shí)鐘芯片DS1302讀寫程序、EEPROMAT24C512讀寫程序等組成。
部分源代碼程序如下:
位移測(cè)量傳感器過零信號(hào)中斷入口程序
voidInit0_ISR()interrupt0//外部中斷0,邊沿觸發(fā)
{
uchardistance_flag;//位移測(cè)量傳感器運(yùn)動(dòng)方向標(biāo)志保存字
SFRPAGE=0x01;
TMR3H=0;//過零點(diǎn),復(fù)位計(jì)數(shù)器為零.
TMR3L=0;
P05=1;
distance_flag=P0;
distance_flag=distance_flag&0x20;//位移測(cè)量傳感器B信號(hào)腳
if(distance_flag==0)
{
distance_positive_flag=0;//位移測(cè)量傳感器運(yùn)動(dòng)方向標(biāo)志位為0表示負(fù)方向運(yùn)動(dòng)
}
else
{
distance_positive_flag=1;//位移測(cè)量傳感器運(yùn)動(dòng)方向標(biāo)志位為1表示正方向運(yùn)動(dòng)
}
}
向數(shù)字傾角(角度)傳感器發(fā)送命令子程序
voidsendserial(unsignedchar*senddata,unsignedcharlen2)
{
uchari;
ES0=0;//禁止中斷for(i=0;i<len2;i++)
{
SFRPAGE=0x00;
SBUF0=*(senddata+i);//將數(shù)據(jù)送出
while(TI0==0);//發(fā)送標(biāo)志位是否產(chǎn)生
TI0=0;
}
ES0=1;//允許中斷
}
結(jié)語
線路道岔電子檢測(cè)尺從方案的調(diào)研、論證和選取及電路的設(shè)計(jì)、軟件的控制等各個(gè)環(huán)節(jié),都充分考慮外界環(huán)境的各種可能的情況,對(duì)鋼軌軌距、水平度實(shí)現(xiàn)了高數(shù)字化測(cè)量,可以起到提前排除因軌道變化引起的行車安全隱患。該裝置的準(zhǔn)確性和高速測(cè)量提高了鐵路的安全性,并降低了員工的勞動(dòng)強(qiáng)度。