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