一種基于32位ARM 7微處理器LPC2119和實時操作系統(tǒng)μC/OS-Ⅱ的斜井防跑車裝置控制器實現(xiàn)方法
1 引言
煤炭作為我國的基礎(chǔ)能源,占到國內(nèi)能源消費的近四分之三,在我國經(jīng)濟與社會發(fā)展中起著重要的作用。煤炭生產(chǎn)安全事關(guān)國計民生,安徽省1966~2003年煤礦事故中,運輸事故死亡750人,占17%。運輸是煤礦生產(chǎn)的重要環(huán)節(jié),從運輸巷道的布置情況來分,有立井、斜井、平巷3種運輸形式。在斜井運輸中,由于超載、失修、誤操作等原因,發(fā)生提升車輛斷繩、脫鉤現(xiàn)象,使運行的車輛沿斜井軌道向下的加速運動,即所謂的斜井跑車。煤礦安全規(guī)程規(guī)定:在斜井串車提升井巷中,必須安設(shè)能夠?qū)⑦\行中斷繩、脫鉤的車輛阻止住的跑車防護裝置。
斜井提升跑車防護裝置一般有傳感器、控制器、執(zhí)行機構(gòu)和擋車器等幾部分組成。其中正確靈敏地拾取跑車信號并發(fā)出控制指令是跑車防護裝置發(fā)揮作用的關(guān)鍵;現(xiàn)有的斜井跑車防護裝置中有機械聯(lián)鎖原理的、PLC作為控制器的,電子電路作為控制器的,存在著壽命短、維修量大、算法不靈活、抗干擾能力差等缺陷。本設(shè)計提出了一種基于32位ARM 7微處理器LPC2119和實時操作系統(tǒng)μC/OS-Ⅱ的斜井防跑車裝置控制器實現(xiàn)方法。
2 系統(tǒng)硬件設(shè)計
2.1 裝置組成
該防護裝置是一種常閉型裝置,由控制器、執(zhí)行結(jié)構(gòu)、擋車裝置和測速與到位傳感器構(gòu)成。如圖1所示。
傳感器A,B完成礦車速度測定及方向識別,傳感器C完成機車下行時發(fā)出放下?lián)踯囇b置信號或機車上行時發(fā)出提起擋車裝置信號,傳感器E,F(xiàn)分別用于檢測擋車裝置提升和下放到位信號。
當(dāng)?shù)V車以正常速度行車時,擋車裝置自動開啟讓礦車通過,然后自動關(guān)閉擋車裝置。當(dāng)發(fā)生跑車或脫車等情況,由于速度異常擋車裝置閉合,將礦車擋住。
2.2 控制器設(shè)計
控制器通過傳感器A,B獲得機車速度,通過傳感器C獲得機車運行位置,并實時提升或放下?lián)踯囇b置,通過傳感器E,F(xiàn)獲得擋車裝置位置信號。同時通過鍵盤設(shè)定防護速度,一般情況運行速度不大于4 m/s。本控制器以LPC2119為核心,由最小系統(tǒng)、輸入通道和輸出通道等構(gòu)成,其硬件結(jié)構(gòu)圖如圖2所示。
(1)最小工作系統(tǒng):最小工作系統(tǒng)以Philips公司的LPC2000系列ARM 7微控制器LPC2119為核心,采用11.059 2 MHz晶振,并利用MAX708SD組成復(fù)位電路,它包含一個看門狗定時器、一個微處理器復(fù)位模塊、一個供電失敗比較器及一個手動復(fù)位輸入模塊。系統(tǒng)電源采用78M05,LM1117-3.3,LM1117-1.8三種電路產(chǎn)生所需的工作電壓。
(2)輸出通道設(shè)計:本系統(tǒng)輸出通道輸出的信號為編碼信號,符合MC145026編碼規(guī)范,用于對執(zhí)行機構(gòu)的控制,為了隔離被控對象對系統(tǒng)的干擾,采用光耦4N33進行隔離。輸出通道如圖3所示。
(3)輸入通道設(shè)計:輸入通道主要傳輸傳感器信號,采用TLP521-4光電器件進行隔離,同時采用三極管限流防止外部接線短路。輸入通道如圖4所示。
3 控制器軟件設(shè)計
控制器采用μC/OS-Ⅱ操作系統(tǒng)作為應(yīng)用軟件的平臺,可以避免傳統(tǒng)的前后臺程序設(shè)計時伴隨系統(tǒng)功能增加而造成程序編寫量呈指數(shù)增加以及資源調(diào)度不當(dāng)發(fā)生的死鎖現(xiàn)象,同時也提高了系統(tǒng)的實時性和可靠性。
3.1 μC/OS-Ⅱ的移植
μC/OS-Ⅱ是一個源碼開放的嵌入式多任務(wù)實時操作系統(tǒng)內(nèi)核。其核心代碼結(jié)構(gòu)簡潔精練,具有足夠的穩(wěn)定性和安全性。μC/OS-Ⅱ的移植對處理器有一定的要求,比如必須具有響應(yīng)中斷的能力,并同時具有開關(guān)中斷的指令,處理器必須可支持一定數(shù)量的硬件堆棧,并且應(yīng)該有對堆棧指令進行讀/寫操作的指令等。同時在移植時編譯器應(yīng)該具有產(chǎn)生可重入代碼的能力。本設(shè)計所選用的處理器LPC2119以及開發(fā)工具ADS1.2能滿足移植要求。μC/OS-Ⅱ的文件系統(tǒng)結(jié)構(gòu)包括核心代碼部分、配置代碼部分、處理器相關(guān)代碼部分。其中處理器相關(guān)代碼部分是移植時需要修改的部分,它包括OS CPU.H,OS CPU C.C,OS CPU A.S三個文件,OC CPU.H包括數(shù)據(jù)類型定義、堆棧單位定義、堆棧增長方向定義、關(guān)中斷和開中斷宏定義等。OSCPU C.C它包含6個函數(shù),其中,OSInetEnter()是任務(wù)堆棧初始化函數(shù)是必須的,其他5個函數(shù)都是鉤子函數(shù)可以為空。OS_CPU_A.S這部分需要對處理器和寄存器進行操作,用匯編語言編寫,包括四個函數(shù):
OSStartHighRdy()函數(shù)被OSStart()調(diào)用,使就緒的最高優(yōu)先級任務(wù)運行;OSCtwSw()在任務(wù)級切換函數(shù)中調(diào)用,保存任務(wù)環(huán)境變量、將當(dāng)前SP存入TCB中、載入就緒最高優(yōu)先級任務(wù)的SP、中斷返回等、OSIntCtxSw()在退出中斷服務(wù)函數(shù)OSIntExit()中調(diào)用,實現(xiàn)中斷級任務(wù)的切換。OSTickISR()是系統(tǒng)時鐘節(jié)拍中斷服務(wù)函數(shù),它為內(nèi)核提供時鐘節(jié)拍,頻率越高系統(tǒng)負荷越重;使用硬件定時器作為時鐘中斷源,定時中斷頻率一般為10~100 Hz。
3.2 用戶任務(wù)設(shè)計
在嵌入式系統(tǒng)中,合理的劃分任務(wù)及優(yōu)先級,不但能簡化軟件設(shè)計的復(fù)雜性、任務(wù)調(diào)度的正確性,而且還能增強系統(tǒng)的穩(wěn)定性、健壯性以及實時性。
本系統(tǒng)軟件主要功能有:
(1)礦車運行速度計算;
(2)礦車運行方向的識別;
(3)執(zhí)行機構(gòu)控制;
(4)擋車裝置到位檢測;
(5)礦車下行和上行時擋車裝置關(guān)閉或打開。
基于μC/OS-Ⅱ?qū)崟r操作系統(tǒng),根據(jù)自動信號系統(tǒng)的功能要求,劃分了,任務(wù)以及優(yōu)先級,任務(wù)優(yōu)先級取偶數(shù),為以后系統(tǒng)升級留下空間。如表1所示
TaskStart()是μC/OS-Ⅱ初始化后運行的第一個任務(wù),由它來創(chuàng)建自動信號系統(tǒng)的其他任務(wù),該任務(wù)執(zhí)行一次后刪除,自身不再執(zhí)行。Task_Control()任務(wù)對執(zhí)行機構(gòu)進行控制。Task_Speed_Check()對礦車速度進行計算,依據(jù)圖1中A,B傳感器的工作狀況有兩種速度計算方法,當(dāng)A,B完好時,v=L/t,其中L為A,B二者之間的距離,當(dāng)A,B有1臺損壞時,v=l/t,其中L為礦車輪距;Task_Position_Check()完成擋車裝置到位檢測并即時發(fā)送信息給Task_Control()關(guān)斷電機電源;Task_Up-down_Check()檢測機車上行、下行位置,并即時發(fā)送信息給Task_Control()開啟或關(guān)閉擋車裝置;Task_Clock()系統(tǒng)實時時鐘驅(qū)動Task_Up_down_Check(),Task_Position_Check()任務(wù),各任務(wù)關(guān)系如圖5所示。
在起始任務(wù)中,建立郵箱、信號量以及各個任務(wù);郵箱及信號量如下:
軟件流程框圖如圖6所示。
4 結(jié) 語
(1)ARM系列微處理器LPC2119及實時操作系統(tǒng)μC/OS-Ⅱ應(yīng)用于應(yīng)用于斜井防跑車控制器設(shè)計中,增加了系統(tǒng)的可靠性實時性以及靈活性;
(2)基于LPC2119和μC/OS-Ⅱ的斜井防跑車控制裝置控制器各項功能已初步得到驗證。