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