軌道電路是信號聯鎖的室外重要設備,起著保證行車和調車作業安全的作用。它能監督檢查某一固定區段內的線路(包括站線)是否有列車運行、調車作業或車輛占用的情況,并能顯示該區段內的鋼軌是否完整。它是以鋼軌為導線,軌縫間用接續線連續起來,一端接電源,另一端連接受電器,通過軌道電流來工作。 軌道電路能否正常工作直接影響到列車的安全行駛,因此,對軌道電路的檢測尤為重要,目前市場上的檢測設備還很少,而且普遍存在功耗大,價格昂貴,體積大等不足。為此,本文通過對軌道電路分析研究,設計一種高精度的壓力測試儀器來模擬火車對軌道的壓力,從而驗證軌道電路的性能。 系統的組成及其工作原理 本系統以PIC16F876A單片機為核心,通過軟件編程實現其對數據處理、系統實時控制。系統框圖如圖1所示,由主控MCU模塊、A/D采樣模塊、電源管理模塊、顯示模塊和傳感器組成。 圖1 系統結構圖 本系統各部分的主要功能是:電源管理主要負責對電池電壓進行檢測和升壓穩壓,當電壓低于3V,系統停止工作,并進行欠壓報警。主控MCU負責對采集來的壓力信號進行數學計算,將電壓信號轉換為壓力值,在數碼管上顯示,并可以進行手動調零及滿量程調整。系統精度要求是±0.1kN;可以進行超量程報警和未接傳感器報警。為了達到低功耗的目的,在軟件中做了休眠和關機的功能。 系統硬件設計 1 電源管理電路設計 電源管理主要是對電池電壓進行升壓和穩壓,同時還能夠進行過壓保護和低壓報警功能。采用TPS60230芯片組成升壓電路,TPS60230是TI公司生產的一種新型電荷泵DC/DC轉換器。其應用原理如圖2所示。電池的電壓2~5.4V接入TPS60230輸入腳IN,圖中C1、C2為電荷泵電容,采用等效電阻小的電容。R1、R2分壓來確定低電壓報警門限,當低于R1、R2的分壓值時,LBO輸出低電平,單片機查詢到有低電平后就控制模擬開關切斷后續電路電源;輸出5V接后面的模擬開關和單片機。 圖2 電源管理電路 2 單片機與采樣電路設計 根據精度要求,本系統采用ADI公司的16位A/D芯片AD7705,AD7705芯片將放大、濾波和A/D轉換單元集于一體,是一種低成本、寬動態范圍、高分辨率的A/D轉換芯片。AD7705與單片機通過SPI進行數據通信,連接如圖3所示,其中,CH1和CH2為差模輸入通道,REF為滿量程電平,通過調節RP1來設置滿量程電平。單片機作為主機,通過四線(CS、SCLK、DI、DO)SPI與AD7705相連,DRDY為數據轉換完成信號,低電平有效,與單片機RC2口相連,單片機查詢到RC2口有低電平時,就開始向AD7705發讀寄存器指令來獲取AD值。CH1+和CH1-為來自壓力傳感器的壓力信號,CH2+和CH2-為調零電位器送來的信號。 圖3 采樣電路 3 顯示與報警電路設計 顯示與報警電路如圖4所示,顯示部分采用7段4位數碼管顯示,PORTB口連接數碼管的段碼,RC0、RC1、RC6、RC7口經過三極管驅動放大控制數碼管的選擇端。當單片機檢測到RA1口有低電平信號后,控制模擬開關切斷后續電路的電源,與此同時,D1和蜂鳴器B發出報警信號。當壓力超過系統量程時,D2和蜂鳴器報警。為了區分低壓報警和超量程報警,D1和D2采用不同的顏色,蜂鳴器在等間隔內響的次數不同。 圖4 顯示與報警電路 系統軟件設計 1 采樣和數據處理 ①AD7705的讀寫時序 AD7705通過四線SPI與單片機通信,其讀寫時序圖如圖5(a)、(b)所示,讀寫過程中串行數據高位在前,低位在后。DRDY為低電平說明A/D已經轉換完畢,數據已準備好,可以啟動讀寫指令。任何時候要對AD7705進行讀寫操作都須檢查DRDY是否為低。 圖5 AD7705讀寫時序圖 ②AD7705的寄存器 第一個是通信寄存器(communication Register),選擇采集通道、下一次操作是讀還是寫,以及下一次讀寫哪一個寄存器。 第二個是設置寄存器(Setup Register),決定校準模式、增益設置、極性設置以及緩沖模式。 第三個是時鐘寄存器(CLOCK Register),設置濾波器記憶時鐘控制位。 軟件編程思路也是按這個順序寫的,先設置通信寄存器,其次寫設置寄存器,最后設置時鐘寄存器。設置完之后,只要檢測到DRDY為低電平,就可以啟動時鐘來讀取AD7705數據寄存器中已轉換好的數據。 2 數據處理算法思路 數據處理主要是將電壓信號轉換成壓力值,將采集來的數據進行轉換。已知:傳感器的參數為10mV對應的是30kN,A/D的滿量程電壓為1.5V,設采集的A/D值為K,設換算后的壓力為X,10mV對應的A/D值為D,增益為64,則由以上參數可求出: (1) (2) 式(2)就是轉換后的壓力值和采集的A/D值的關系。 因為單片機不支持浮點運算,為了能精確的顯示結果,用軟件模擬浮點除法運算,其主要思想是:定義一整型變量INTD,將除的結果存入INTD中,因為是整型變量,所以除法的結果只取了整數部分,例如5/4=1,模擬除法的算法主要依據這一特性。 第一步,如果采集來的值K大于932,K/932存入整型變量中即可得到整數部分。 第二步,用K對932取余得到R,顯然R小于932,然后 得到小數點后第一位,再用R×10對932取余得到R1,小數點后第二位 ,以此類推,得到小數點后第三位dec3。 第三步,如果采集來的值K小于932,直接進行第二步操作。 第四步,與邏輯零點進行比較,得到理論壓力值,并進行BCD轉換在數碼管上顯示。 圖6 軟件流程圖 3 程序編程思路及流程圖 系統軟件編程采用狀態機機制,上電之后進行各個模塊的初始化,包括I/O口初始化、定時器初始化、SPI初始化等。初始化完后進入系統循環,在循環體中根據任務標志位進行任務處理,主要任務有:欠壓處理、數據采集、睡眠、關機等。在數據處理時,先采集通道2的值,然后采集通道1,如果傳感器未接,則采集來的值為零或者近似零,系統報警等待。如果采集來的值大于零,則參與運算。求出理論值顯示。 |