基于S3C44B0X智能交通信號(hào)機(jī)的設(shè)計(jì)
3 信號(hào)機(jī)控制軟件設(shè)計(jì)
信號(hào)機(jī)功能比較簡單時(shí)并不需要使用操作系統(tǒng),而只是運(yùn)行一個(gè)控制循環(huán)程序,利用中斷來處理發(fā)生的事件,這樣的程序結(jié)構(gòu)比較凌亂,難以維護(hù)和升級(jí),功能也受限?,F(xiàn)代智能信號(hào)機(jī)功能發(fā)展需要同時(shí)運(yùn)行多個(gè)任務(wù),如信號(hào)燈控制、通訊、車流量檢測(cè)等,這就需要對(duì)多任務(wù)進(jìn)行合理的調(diào)度,另外信號(hào)機(jī)接收和處理的信息、數(shù)據(jù)的增多,尤其是需要大量保存歷史車流量數(shù)據(jù)提供給信號(hào)燈控制模型計(jì)算和中心查詢使用,單靠表或數(shù)組來管理是復(fù)雜而低效的,因此文件管理也是必不可少的一項(xiàng)功能。
嵌入式Linux是一款優(yōu)秀的嵌入式操作系統(tǒng),它采用微內(nèi)核體系結(jié)構(gòu),這使得內(nèi)核小巧而可靠,易于ROM固化,可模塊化擴(kuò)展,支持多種文件系統(tǒng),并直接提供完善的網(wǎng)絡(luò)支持。本文選用µClinux作為嵌入式操作系統(tǒng),µClinux是專門針對(duì)沒有MMU的CPU,為嵌入式系統(tǒng)做了許多小型化的工作,目前支持包括S3C44B0X等微處理器。µClinux采用一種平板式(Flat)的內(nèi)存模型來去除對(duì)MMU的依賴,改變了用戶程序的加載方式,開發(fā)了運(yùn)行于µClinux的C函數(shù)庫(µCLibc)。 µClinux內(nèi)核可完成進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、設(shè)備控制、網(wǎng)絡(luò)實(shí)現(xiàn)等功能,內(nèi)核采用模塊化設(shè)計(jì),許多功能塊可以獨(dú)立的加上和卸下,我們?cè)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/設(shè)計(jì)">設(shè)計(jì)內(nèi)核時(shí)把這些內(nèi)核模塊作為可選的選項(xiàng),可以在編譯系統(tǒng)內(nèi)核時(shí)指定,對(duì)內(nèi)核重新編譯時(shí),選擇嵌入式設(shè)備所需要的功能模塊,刪除冗余的功能模塊,通過對(duì)內(nèi)核的重新配置,可以使系統(tǒng)運(yùn)行所需要的內(nèi)核顯著減小,從而縮減資源使用量,使系統(tǒng)運(yùn)行所需硬件資源顯著減少[4]。
交通信號(hào)機(jī)應(yīng)用軟件由3個(gè)通信協(xié)議模塊和5個(gè)算法模塊構(gòu)成。3個(gè)通信協(xié)議模塊是:控制中心通訊協(xié)議、串口通信協(xié)議和IIC通訊協(xié)議。5個(gè)算法模塊:定時(shí)控制、感應(yīng)控制、多時(shí)段控制、黃閃控制和綠波帶控制。圖5是基于µClinux的交通信號(hào)機(jī)的軟件工作流程。
圖5 µClinux的工作流程
如果是8019中斷,系統(tǒng)調(diào)用控制中心的通訊協(xié)議,獲得控制中心的控制信息;如果是IIC中斷,系統(tǒng)調(diào)用IIC通訊協(xié)議,獲得手動(dòng)修改的控制信息;如果是串口中斷,系統(tǒng)再查詢是16C554的哪個(gè)串口中斷,然后調(diào)用相應(yīng)的協(xié)議,如果是關(guān)于車流量檢測(cè)的,就給車流量檢測(cè)板發(fā)出控制指令,如果是信號(hào)燈控制板,就給紅綠燈控制器發(fā)出控制指令,或者給交通指示牌發(fā)出相應(yīng)的控制信息,不管什么中斷發(fā)生,都要調(diào)用正在運(yùn)行的算法重新計(jì)算參數(shù)。
4.結(jié)束語
本文介紹了基于S3C44B0X微處理器的智能交通信號(hào)機(jī)的硬件設(shè)計(jì)以及µClinux軟件平臺(tái)。該設(shè)計(jì)方案改進(jìn)了原信號(hào)機(jī)功能,增加了網(wǎng)絡(luò)通訊功能,并保存了過去的串口通信以保持兼容。整個(gè)開發(fā)板結(jié)構(gòu)設(shè)計(jì)的串行接口與原信號(hào)機(jī)主板一樣,可以直接在現(xiàn)在的信號(hào)機(jī)上使用,而不用整個(gè)修改已經(jīng)開發(fā)成熟的信號(hào)機(jī),簡化了開發(fā)工作。
本文作者創(chuàng)新點(diǎn):在兼容原來信號(hào)機(jī)功能的基礎(chǔ)上,將嵌入式處理器和嵌入式操作系統(tǒng)結(jié)合起來應(yīng)用于信號(hào)機(jī)上。
參考文獻(xiàn):
[1] 許榮.基于ARM智能交通信號(hào)機(jī)控制板開發(fā)[J].現(xiàn)代電子技術(shù),2006,7:138-141
[2] 胥靜.嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例詳解—基于ARM的應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005,1
[3] 石松泉,尚文剛.可重構(gòu)交通信號(hào)控制機(jī)的設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2005,6(22):214-220
[4] 李巖,榮盤祥.基于S3C44B0X嵌入式µClinux系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005,1
[5] 尹耕欽,唐緒偉.城市交通信號(hào)燈模擬控制系統(tǒng)[J].微計(jì)算機(jī)信息,2005,10-1:68-87
評(píng)論