基于S3C44B0X智能交通信號(hào)機(jī)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引 言
目前,國(guó)內(nèi)的信號(hào)機(jī)主要分為兩類:一類采用8/16位單片機(jī)作為處理器,交通控制功能簡(jiǎn)單、方案單一,以RS232 或RS485 為通訊方式,難以與控制中心聯(lián)網(wǎng)以及實(shí)現(xiàn)區(qū)域交通協(xié)調(diào)控制,不能適應(yīng)現(xiàn)代化大路口交通控制的要求;另一類則是基于工控機(jī)或PC104,功能雖然強(qiáng)大,但由于工控機(jī)或PC104都是按通用計(jì)算機(jī)標(biāo)準(zhǔn)設(shè)計(jì),并非專門(mén)針對(duì)信號(hào)機(jī)應(yīng)用設(shè)計(jì),該類信號(hào)機(jī)硬件結(jié)構(gòu)復(fù)雜且許多功能并不需要,成本也高。國(guó)外的信號(hào)機(jī)(如西門(mén)子公司的2070 和美國(guó)的EAGLE) 開(kāi)發(fā)起步早,水平高,已有各種自適應(yīng)聯(lián)網(wǎng)型信號(hào)機(jī)產(chǎn)品,但一般不適用于中國(guó)混合交通的實(shí)際情況,且價(jià)格昂貴,操作不方便[1]。
信號(hào)機(jī)是一個(gè)典型的嵌入式系統(tǒng),嵌入式系統(tǒng)是以應(yīng)用為中心來(lái)設(shè)計(jì),對(duì)功能、性能、可靠性、成本、功耗、體積等有嚴(yán)格要求,既要滿足智能交通系統(tǒng)對(duì)信號(hào)機(jī)智能化、多功能化的要求,又要最大化信號(hào)機(jī)的性價(jià)比,因此本文設(shè)計(jì)選擇基于ARM 核的32 位嵌入式RISC 處理器S3C44B0X來(lái)完成智能交通信號(hào)機(jī)硬件設(shè)計(jì),以達(dá)到使信號(hào)機(jī)在交通控制系統(tǒng)中成為收集與處理交通流量數(shù)據(jù)、通信聯(lián)網(wǎng)以及區(qū)域協(xié)調(diào)控制平臺(tái)的設(shè)計(jì)目標(biāo)。
2 信號(hào)機(jī)系統(tǒng)硬件設(shè)計(jì)
2. 1 系統(tǒng)總體硬件結(jié)構(gòu)
智能交通系統(tǒng)要求信號(hào)機(jī)向控制中心實(shí)時(shí)提供多種道路信息和車流量數(shù)據(jù)信息,接收控制中心的控制命令,獨(dú)立執(zhí)行一些復(fù)雜的算法,并可以根據(jù)交通流量的變化來(lái)實(shí)時(shí)調(diào)整綠燈時(shí)間,因此考慮到現(xiàn)有信號(hào)機(jī)的不足,根據(jù)信號(hào)機(jī)功能發(fā)展的趨勢(shì)和要求,本文設(shè)計(jì)的信號(hào)機(jī)具有控制參數(shù)輸入、控制狀態(tài)輸出、控制參數(shù)保存、燈態(tài)輸出控制、車流量實(shí)時(shí)檢測(cè)與歷史數(shù)據(jù)存儲(chǔ)、多種燈態(tài)控制方案與算法模型存儲(chǔ)、交通指示牌控制、以太網(wǎng)及與手持終端設(shè)備通訊等基本功能。整個(gè)系統(tǒng)硬件框圖如圖1 所示。
2.2交通信號(hào)機(jī)主要硬件電路設(shè)計(jì)
2.2.1 S3C44B0X微處理器介紹[2]
S3C44B0X微處理器提供了豐富的內(nèi)置部件,包括:8KB cache,內(nèi)部SRAM,LCD控制器,帶自動(dòng)握手的2通道UART,4通道DMA,外部存儲(chǔ)器控制器,帶有PWM功能的5通道定時(shí)器,I/O端口,RTC,IIC總線接口,10位ADC,IIS總線接口,同步SIO接口和PLL倍頻器。
圖1 信號(hào)機(jī)硬件框圖
2.2.2 最小系統(tǒng)模塊
最小系統(tǒng)包括電源模塊、RTC模塊和存儲(chǔ)器模塊。
(1)電源模塊
信號(hào)機(jī)采用12/5V電源供電,S3C44B0X工作于3.3V和2.5V,系統(tǒng)其他器件盡量選擇工作電壓為3.3V和5V。
(2)RTC(實(shí)時(shí)時(shí)鐘)模塊
信號(hào)機(jī)在通訊、干線或者區(qū)域協(xié)調(diào)控制中需要使用統(tǒng)一的時(shí)間來(lái)同步,因此設(shè)計(jì)RTC(實(shí)時(shí)時(shí)鐘)用來(lái)對(duì)時(shí)。S3C44B0X內(nèi)部集成RTC單元,它只需要外接一個(gè)32.768kHz的晶振就能工作。RTC提供可編程的實(shí)時(shí)時(shí)鐘:年、月、日、時(shí)、分、秒、毫秒、星期及定時(shí)報(bào)警和產(chǎn)生節(jié)拍,并可以在掉電后使用后備電源工作。
(3)存儲(chǔ)器模塊
信號(hào)機(jī)需要存放引導(dǎo)程序、嵌入式操作系統(tǒng)及其文件系統(tǒng)、應(yīng)用程序和其他在運(yùn)行需要保存的數(shù)據(jù),另外當(dāng)系統(tǒng)啟動(dòng)后,操作系統(tǒng)和程序運(yùn)行還需要更大的空間,因此設(shè)計(jì)了外存儲(chǔ)單元來(lái)擴(kuò)展存儲(chǔ)空間,存儲(chǔ)器模塊包括8MB的SDRAM 、2MB的NorFlash和16MB的NandFlash。圖2為存儲(chǔ)系統(tǒng)的簡(jiǎn)圖
圖2 存儲(chǔ)系統(tǒng)模塊
SDRAM采用現(xiàn)代公司的HY57V641620,用于程序運(yùn)行,S3C44B0X芯片本身提供了SDRAM接口,我們只須對(duì)存儲(chǔ)器控制器相關(guān)的寄存器進(jìn)行適當(dāng)?shù)呐渲茫籒orFlash采用SST公司的39VF160,主要用于存放引導(dǎo)程序Bootloader和操作系統(tǒng)µClinux內(nèi)核鏡像,系統(tǒng)上電或復(fù)位后從FlashROM中運(yùn)行Bootloader,由Bootloader初始化硬件并將µClinux拷貝到SDRAM中運(yùn)行;NandFlash采用三星公司的K9F2808,主要用于存放應(yīng)用程序和數(shù)據(jù),S3C44B0X沒(méi)有像支持SDRAM一樣提供NandFlash存儲(chǔ)器接口,讀寫(xiě)要靠軟件編程來(lái)完成。
2.2.3液晶顯示與鍵盤(pán)模塊
液晶顯示與鍵盤(pán)模塊用來(lái)手動(dòng)設(shè)置或者修改交通信號(hào)機(jī)的控制參數(shù)。S3C44B0X內(nèi)置LCD驅(qū)動(dòng)控制器,能自動(dòng)產(chǎn)生LCD驅(qū)動(dòng)控制所需的控制信號(hào),因此S3C44B0X可以與諸如黑白灰度、STN型彩色等LCD直接連接,而不需要另外加LCD控制器;鍵盤(pán)模塊通過(guò)ZLG7290B擴(kuò)展一個(gè)4×4的鍵盤(pán)矩陣,ZLG7290B通過(guò)IIC串行總線與處理器進(jìn)行連接。
2.2.4以太網(wǎng)模塊
傳統(tǒng)的RS232和RS485通信方式已經(jīng)不適應(yīng)遠(yuǎn)距離、大信息量的數(shù)據(jù)傳輸,而充分利用網(wǎng)絡(luò)系統(tǒng),實(shí)現(xiàn)信號(hào)機(jī)聯(lián)網(wǎng),也是智能交通發(fā)展的要求。 S3C44B0X本身沒(méi)有集成網(wǎng)絡(luò)控制器,本文選用NE2000兼容的典型以太網(wǎng)控制器芯片RTL8019來(lái)擴(kuò)展以太網(wǎng),圖3為以太網(wǎng)模塊。
圖3 以太網(wǎng)模塊
2.2.5 16C554模塊
將信號(hào)燈驅(qū)動(dòng)任務(wù)分解,每項(xiàng)任務(wù)由具有單片機(jī)的智能化小系統(tǒng)承擔(dān),這些小系統(tǒng)與主控板通信,并由主控板協(xié)調(diào)整個(gè)系統(tǒng)工作,至于通信形式,自然是串行總線[3]。本文采用TI公司的TL16C554擴(kuò)展4個(gè)串口,用于主控板與信號(hào)燈驅(qū)動(dòng)板、車流量檢測(cè)板、交通指示牌進(jìn)行通信。由于信號(hào)燈驅(qū)動(dòng)板和車流量檢測(cè)板是直接插在主控板上的,因機(jī)內(nèi)串行總線的長(zhǎng)度不大,一般在1米左右,故無(wú)須進(jìn)行RS232電平轉(zhuǎn)換即可用很高的波特率進(jìn)行串行通信。圖4為T(mén)L16C554模塊簡(jiǎn)圖。
圖4 TL16C554模塊
3 信號(hào)機(jī)控制軟件設(shè)計(jì)
信號(hào)機(jī)功能比較簡(jiǎn)單時(shí)并不需要使用操作系統(tǒng),而只是運(yùn)行一個(gè)控制循環(huán)程序,利用中斷來(lái)處理發(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ù)組來(lái)管理是復(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是專門(mén)針對(duì)沒(méi)有MMU的CPU,為嵌入式系統(tǒng)做了許多小型化的工作,目前支持包括S3C44B0X等微處理器。µClinux采用一種平板式(Flat)的內(nèi)存模型來(lái)去除對(duì)MMU的依賴,改變了用戶程序的加載方式,開(kāi)發(fā)了運(yùn)行于µClinux的C函數(shù)庫(kù)(µCLibc)。 µClinux內(nèi)核可完成進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、設(shè)備控制、網(wǎng)絡(luò)實(shí)現(xiàn)等功能,內(nèi)核采用模塊化設(shè)計(jì),許多功能塊可以獨(dú)立的加上和卸下,我們?cè)谠O(shè)計(jì)內(nèi)核時(shí)把這些內(nèi)核模塊作為可選的選項(xiàng),可以在編譯系統(tǒng)內(nèi)核時(shí)指定,對(duì)內(nèi)核重新編譯時(shí),選擇嵌入式設(shè)備所需要的功能模塊,刪除冗余的功能模塊,通過(guò)對(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é)束語(yǔ)
本文介紹了基于S3C44B0X微處理器的智能交通信號(hào)機(jī)的硬件設(shè)計(jì)以及µClinux軟件平臺(tái)。該設(shè)計(jì)方案改進(jìn)了原信號(hào)機(jī)功能,增加了網(wǎng)絡(luò)通訊功能,并保存了過(guò)去的串口通信以保持兼容。整個(gè)開(kāi)發(fā)板結(jié)構(gòu)設(shè)計(jì)的串行接口與原信號(hào)機(jī)主板一樣,可以直接在現(xiàn)在的信號(hào)機(jī)上使用,而不用整個(gè)修改已經(jīng)開(kāi)發(fā)成熟的信號(hào)機(jī),簡(jiǎn)化了開(kāi)發(fā)工作。
本文作者創(chuàng)新點(diǎn):在兼容原來(lái)信號(hào)機(jī)功能的基礎(chǔ)上,將嵌入式處理器和嵌入式操作系統(tǒng)結(jié)合起來(lái)應(yīng)用于信號(hào)機(jī)上。
參考文獻(xiàn):
[1] 許榮.基于ARM智能交通信號(hào)機(jī)控制板開(kāi)發(fā)[J].現(xiàn)代電子技術(shù),2006,7:138-141
[2] 胥靜.嵌入式系統(tǒng)設(shè)計(jì)與開(kāi)發(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] 李巖,榮盤(pán)祥.基于S3C44B0X嵌入式µClinux系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005,1
[5] 尹耕欽,唐緒偉.城市交通信號(hào)燈模擬控制系統(tǒng)[J].微計(jì)算機(jī)信息,2005,10-1:68-87