一種基于32位ARM 7微處理器LPC2119和實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ的斜井防跑車裝置控制器實(shí)現(xiàn)方法
1 引言
煤炭作為我國(guó)的基礎(chǔ)能源,占到國(guó)內(nèi)能源消費(fèi)的近四分之三,在我國(guó)經(jīng)濟(jì)與社會(huì)發(fā)展中起著重要的作用。煤炭生產(chǎn)安全事關(guān)國(guó)計(jì)民生,安徽省1966~2003年煤礦事故中,運(yùn)輸事故死亡750人,占17%。運(yùn)輸是煤礦生產(chǎn)的重要環(huán)節(jié),從運(yùn)輸巷道的布置情況來分,有立井、斜井、平巷3種運(yùn)輸形式。在斜井運(yùn)輸中,由于超載、失修、誤操作等原因,發(fā)生提升車輛斷繩、脫鉤現(xiàn)象,使運(yùn)行的車輛沿斜井軌道向下的加速運(yùn)動(dòng),即所謂的斜井跑車。煤礦安全規(guī)程規(guī)定:在斜井串車提升井巷中,必須安設(shè)能夠?qū)⑦\(yùn)行中斷繩、脫鉤的車輛阻止住的跑車防護(hù)裝置。
斜井提升跑車防護(hù)裝置一般有傳感器、控制器、執(zhí)行機(jī)構(gòu)和擋車器等幾部分組成。其中正確靈敏地拾取跑車信號(hào)并發(fā)出控制指令是跑車防護(hù)裝置發(fā)揮作用的關(guān)鍵;現(xiàn)有的斜井跑車防護(hù)裝置中有機(jī)械聯(lián)鎖原理的、PLC作為控制器的,電子電路作為控制器的,存在著壽命短、維修量大、算法不靈活、抗干擾能力差等缺陷。本設(shè)計(jì)提出了一種基于32位ARM 7微處理器LPC2119和實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ的斜井防跑車裝置控制器實(shí)現(xiàn)方法。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 裝置組成
該防護(hù)裝置是一種常閉型裝置,由控制器、執(zhí)行結(jié)構(gòu)、擋車裝置和測(cè)速與到位傳感器構(gòu)成。如圖1所示。

傳感器A,B完成礦車速度測(cè)定及方向識(shí)別,傳感器C完成機(jī)車下行時(shí)發(fā)出放下?lián)踯囇b置信號(hào)或機(jī)車上行時(shí)發(fā)出提起擋車裝置信號(hào),傳感器E,F(xiàn)分別用于檢測(cè)擋車裝置提升和下放到位信號(hào)。
當(dāng)?shù)V車以正常速度行車時(shí),擋車裝置自動(dòng)開啟讓礦車通過,然后自動(dòng)關(guān)閉擋車裝置。當(dāng)發(fā)生跑車或脫車等情況,由于速度異常擋車裝置閉合,將礦車擋住。
2.2 控制器設(shè)計(jì)
控制器通過傳感器A,B獲得機(jī)車速度,通過傳感器C獲得機(jī)車運(yùn)行位置,并實(shí)時(shí)提升或放下?lián)踯囇b置,通過傳感器E,F(xiàn)獲得擋車裝置位置信號(hào)。同時(shí)通過鍵盤設(shè)定防護(hù)速度,一般情況運(yùn)行速度不大于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ù)位電路,它包含一個(gè)看門狗定時(shí)器、一個(gè)微處理器復(fù)位模塊、一個(gè)供電失敗比較器及一個(gè)手動(dòng)復(fù)位輸入模塊。系統(tǒng)電源采用78M05,LM1117-3.3,LM1117-1.8三種電路產(chǎn)生所需的工作電壓。
(2)輸出通道設(shè)計(jì):本系統(tǒng)輸出通道輸出的信號(hào)為編碼信號(hào),符合MC145026編碼規(guī)范,用于對(duì)執(zhí)行機(jī)構(gòu)的控制,為了隔離被控對(duì)象對(duì)系統(tǒng)的干擾,采用光耦4N33進(jìn)行隔離。輸出通道如圖3所示。
(3)輸入通道設(shè)計(jì):輸入通道主要傳輸傳感器信號(hào),采用TLP521-4光電器件進(jìn)行隔離,同時(shí)采用三極管限流防止外部接線短路。輸入通道如圖4所示。

3 控制器軟件設(shè)計(jì)
控制器采用μC/OS-Ⅱ操作系統(tǒng)作為應(yīng)用軟件的平臺(tái),可以避免傳統(tǒng)的前后臺(tái)程序設(shè)計(jì)時(shí)伴隨系統(tǒng)功能增加而造成程序編寫量呈指數(shù)增加以及資源調(diào)度不當(dāng)發(fā)生的死鎖現(xiàn)象,同時(shí)也提高了系統(tǒng)的實(shí)時(shí)性和可靠性。
3.1 μC/OS-Ⅱ的移植
μC/OS-Ⅱ是一個(gè)源碼開放的嵌入式多任務(wù)實(shí)時(shí)操作系統(tǒng)內(nèi)核。其核心代碼結(jié)構(gòu)簡(jiǎn)潔精練,具有足夠的穩(wěn)定性和安全性。μC/OS-Ⅱ的移植對(duì)處理器有一定的要求,比如必須具有響應(yīng)中斷的能力,并同時(shí)具有開關(guān)中斷的指令,處理器必須可支持一定數(shù)量的硬件堆棧,并且應(yīng)該有對(duì)堆棧指令進(jìn)行讀/寫操作的指令等。同時(shí)在移植時(shí)編譯器應(yīng)該具有產(chǎn)生可重入代碼的能力。本設(shè)計(jì)所選用的處理器LPC2119以及開發(fā)工具ADS1.2能滿足移植要求。μC/OS-Ⅱ的文件系統(tǒng)結(jié)構(gòu)包括核心代碼部分、配置代碼部分、處理器相關(guān)代碼部分。其中處理器相關(guān)代碼部分是移植時(shí)需要修改的部分,它包括OS CPU.H,OS CPU C.C,OS CPU A.S三個(gè)文件,OC CPU.H包括數(shù)據(jù)類型定義、堆棧單位定義、堆棧增長(zhǎng)方向定義、關(guān)中斷和開中斷宏定義等。OSCPU C.C它包含6個(gè)函數(shù),其中,OSInetEnter()是任務(wù)堆棧初始化函數(shù)是必須的,其他5個(gè)函數(shù)都是鉤子函數(shù)可以為空。OS_CPU_A.S這部分需要對(duì)處理器和寄存器進(jìn)行操作,用匯編語言編寫,包括四個(gè)函數(shù):
OSStartHighRdy()函數(shù)被OSStart()調(diào)用,使就緒的最高優(yōu)先級(jí)任務(wù)運(yùn)行;OSCtwSw()在任務(wù)級(jí)切換函數(shù)中調(diào)用,保存任務(wù)環(huán)境變量、將當(dāng)前SP存入TCB中、載入就緒最高優(yōu)先級(jí)任務(wù)的SP、中斷返回等、OSIntCtxSw()在退出中斷服務(wù)函數(shù)OSIntExit()中調(diào)用,實(shí)現(xiàn)中斷級(jí)任務(wù)的切換。OSTickISR()是系統(tǒng)時(shí)鐘節(jié)拍中斷服務(wù)函數(shù),它為內(nèi)核提供時(shí)鐘節(jié)拍,頻率越高系統(tǒng)負(fù)荷越重;使用硬件定時(shí)器作為時(shí)鐘中斷源,定時(shí)中斷頻率一般為10~100 Hz。
3.2 用戶任務(wù)設(shè)計(jì)
在嵌入式系統(tǒng)中,合理的劃分任務(wù)及優(yōu)先級(jí),不但能簡(jiǎn)化軟件設(shè)計(jì)的復(fù)雜性、任務(wù)調(diào)度的正確性,而且還能增強(qiáng)系統(tǒng)的穩(wěn)定性、健壯性以及實(shí)時(shí)性。
本系統(tǒng)軟件主要功能有:
(1)礦車運(yùn)行速度計(jì)算;
(2)礦車運(yùn)行方向的識(shí)別;
(3)執(zhí)行機(jī)構(gòu)控制;
(4)擋車裝置到位檢測(cè);
(5)礦車下行和上行時(shí)擋車裝置關(guān)閉或打開。
基于μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng),根據(jù)自動(dòng)信號(hào)系統(tǒng)的功能要求,劃分了,任務(wù)以及優(yōu)先級(jí),任務(wù)優(yōu)先級(jí)取偶數(shù),為以后系統(tǒng)升級(jí)留下空間。如表1所示
TaskStart()是μC/OS-Ⅱ初始化后運(yùn)行的第一個(gè)任務(wù),由它來創(chuàng)建自動(dòng)信號(hào)系統(tǒng)的其他任務(wù),該任務(wù)執(zhí)行一次后刪除,自身不再執(zhí)行。Task_Control()任務(wù)對(duì)執(zhí)行機(jī)構(gòu)進(jìn)行控制。Task_Speed_Check()對(duì)礦車速度進(jìn)行計(jì)算,依據(jù)圖1中A,B傳感器的工作狀況有兩種速度計(jì)算方法,當(dāng)A,B完好時(shí),v=L/t,其中L為A,B二者之間的距離,當(dāng)A,B有1臺(tái)損壞時(shí),v=l/t,其中L為礦車輪距;Task_Position_Check()完成擋車裝置到位檢測(cè)并即時(shí)發(fā)送信息給Task_Control()關(guān)斷電機(jī)電源;Task_Up-down_Check()檢測(cè)機(jī)車上行、下行位置,并即時(shí)發(fā)送信息給Task_Control()開啟或關(guān)閉擋車裝置;Task_Clock()系統(tǒng)實(shí)時(shí)時(shí)鐘驅(qū)動(dòng)Task_Up_down_Check(),Task_Position_Check()任務(wù),各任務(wù)關(guān)系如圖5所示。


在起始任務(wù)中,建立郵箱、信號(hào)量以及各個(gè)任務(wù);郵箱及信號(hào)量如下:

軟件流程框圖如圖6所示。

4 結(jié) 語
(1)ARM系列微處理器LPC2119及實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ應(yīng)用于應(yīng)用于斜井防跑車控制器設(shè)計(jì)中,增加了系統(tǒng)的可靠性實(shí)時(shí)性以及靈活性;
(2)基于LPC2119和μC/OS-Ⅱ的斜井防跑車控制裝置控制器各項(xiàng)功能已初步得到驗(yàn)證。