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