引言
隨著我國城市化飛速發(fā)展,路面交通擁堵問題日益嚴(yán)重。交通信號機作為緩解交通擁堵問題的重要手段之一,其核心控制器主要包括兩類:一類是單片機控制器,這類控制器基于8/16位單片機,功能簡單,控制方式單一;另一類采用工控機作控制器,功能強大,但結(jié)構(gòu)復(fù)雜且多冗余,成本高。相位控制方面,傳統(tǒng)的信號機主要為兩相位和四相位信號控制。兩相位控制時,直行方向和左轉(zhuǎn)方向同時放行,左轉(zhuǎn)車輛與對向直行車輛形成沖突,極易造成交通事故;四相位控制時,將右轉(zhuǎn)方向作為常通狀態(tài)來對待,這顯然忽視了沒有過街天橋或地下通道的情況下行人安全通行的要求。
針對上述傳統(tǒng)信號機的缺陷,本文提出了一種基于ARM芯片LM3S8962的六相位交通信號機的系統(tǒng)控制方案及其軟硬件設(shè)計方法。
1 六相位信號機控制方案
信號機的控制方案是相位設(shè)置、相序設(shè)置、信號配時的有序集合,是信號機運行的數(shù)據(jù)源,因此對信號機控制方案的研究異常重要。
1.1 平面交叉口六相位模型
本文對左轉(zhuǎn)方向、右轉(zhuǎn)方向分別加以考慮,將十字路口的信號相位分為6個相位,如圖1所示。其中,相位1,3,4,6用于機動車,相位2,5用于機動車、非機動車和行人。從該模型中可以看出,僅1,4相位放行時產(chǎn)生兩個分流點,其余各相位放行時不產(chǎn)生任何接觸點,較之傳統(tǒng)的兩相位、四相位控制模型大幅減少了交通接觸點,因此,能夠更有效地降低事故隱患。
1.2 控制模式與信號配時
本文采用對交通流時間分割的方法,按照設(shè)定的通行相序為每一相位分配一定的通行時間,在一次通行周期中,各個相位的通行對象均會得到一次通行權(quán)??紤]到未來交通控制系統(tǒng)的要求,同時兼顧傳統(tǒng)信號機的控制方式,本文為信號機設(shè)計了多時段、定周期、手動、黃閃四種控制模式。
信號配時方面,為了保證各方向的通行對象能夠安全地通過交叉口,每個方向的通行時間不能少于15 s,而為了避免各方向通行對象等待時間過長,信號周期時長不宜超過200 s。表1給出六相位信號機的一種信號配時方案,通行相序為相位1至相位6,黃閃時長3s。
由此得到信號周期時長為192 s,各方向信號燈時長如表2所示。實際控制中,應(yīng)根據(jù)各相位車流量情況對各相通行時間作適當(dāng)調(diào)整。
2 系統(tǒng)硬件設(shè)計
2.1 硬件總體設(shè)計
信號機作為一個典型的嵌入式系統(tǒng),其設(shè)計應(yīng)以應(yīng)用為中心,做到軟硬件可裁剪。本文選用LM3S8962作為主控芯片,根據(jù)信號機的功能要求,并結(jié)合LM3S8962的芯片特性,設(shè)計的信號機系統(tǒng)硬件框圖如圖2所示。
2.2 微處理器、存儲器模塊
嵌入式微處理器是整個嵌入式系統(tǒng)的核心。LM3S8962是Luminary Micro公司的基于ARM Cortex-M3內(nèi)核具有32位RISC性能的微處理器,提供豐富的片上資源,包括256 KB FLASH,64 KB SRAM,4個32位通用定時器、同步串行接口(SSI)、10/100以太網(wǎng)控制器、6組共42個GPIO端口等,支持嵌入式實時操作系統(tǒng)μC/OS-Ⅱ,適合于關(guān)注成本的片上系統(tǒng)級應(yīng)用。
LM3S8962具有256 KB FLASH空間,F(xiàn)LASH是一種不揮發(fā)性內(nèi)存,由一組可獨立擦除的1 KB區(qū)塊構(gòu)成。本系統(tǒng)軟件占用空間小,使用LM3S8 962自帶的FLASH存儲空間完全能夠滿足系統(tǒng)要求。因此,本文將μC/OS-Ⅱ系統(tǒng)內(nèi)核、控制軟件存放于第0~253區(qū)塊,控制參數(shù)存放于第254 255區(qū)塊。這樣能夠降低系統(tǒng)復(fù)雜度,提高數(shù)據(jù)訪問速度。
2.3 信號燈、倒計時模塊
本文為信號機設(shè)計了6個相位機動車及人行道共6×2×3+2×2×2=44路信號的控制。由LM3S8962的PB3-PB5,PB0-PB2,PC4-PC6,PD0-PD2,PE0-PE2,PF0/PF1/PG0這6組GPIO端口分別輸出1~6相位LED信號燈的控制信號。
本文采用8段LED數(shù)碼管作為信號機的倒計時顯示組件。6個相位及人行道均采用兩位數(shù)碼管,共6×2+4×2=20個兩位數(shù)碼管。利用LM3S89 62自帶的同步串行接口(SSI,對應(yīng)于PA2~PA5 GPIO端口),配置SSI為主模式,使用Freeseale SPI幀格式,通過SSI每次向外發(fā)送16位數(shù)據(jù)(包括8位段碼和8位位碼),再利用兩片級聯(lián)的74HC595芯片將16位串行數(shù)據(jù)轉(zhuǎn)換為16位并行數(shù)據(jù)輸出,達到將段碼、位碼同時輸出的目的。
2.4 實時時鐘、以太網(wǎng)接口模塊
信號機執(zhí)行多時段控制模式時,需要根據(jù)實時時間執(zhí)行對應(yīng)時段的控制方案,并且為方便用戶校對,需要在液晶界面上顯示實時時間。本文選用DALLAS公司的時鐘芯片DS1302,該芯片能夠?qū)δ辍⒃?、日、周、時、分、秒計時,具有閏年補償功能。使用LM3S8962的3個GPIO端口PA0,PA1,PA6分別控制DS1302的RST復(fù)位線、I/O數(shù)據(jù)線、SCLK串行時鐘線,將命令或數(shù)據(jù)按每次1個字節(jié)或31個字節(jié)的觸發(fā)模式傳入時鐘寄存器或移出RAM寄存器,實現(xiàn)LM3S8962與DS1302之間的同步通信,從而為信號機提供實時時鐘。
傳統(tǒng)的RS 232/RS 485串口,存在通信距離短、傳輸速率低等缺陷,不能滿足未來交通控制系統(tǒng)聯(lián)網(wǎng)的要求,因此本文為信號機設(shè)計了10/100Mb/s以太網(wǎng)接口。LM3S8962自帶有10/100以太網(wǎng)控制器,包括完全集成的媒體訪問控制器(MAC)和網(wǎng)絡(luò)物理(PHY)接口器件。為了實現(xiàn)信號電平耦合與阻抗匹配,避免信號機系統(tǒng)與以太網(wǎng)之間相互干擾,本文在PHY和RJ 45接口之間連接網(wǎng)絡(luò)變壓器HR601680,將發(fā)送和接收信號線分別與PHY,RJ 45對應(yīng)連接。以太網(wǎng)接口如圖3所示。
2.5 綠沖突檢測模塊
綠沖突檢測是系統(tǒng)自檢的重要部分,檢測同一時刻6個相位是否有2個或2個以上沖突相位的綠燈信號同時被點亮的情況。本文利用8位數(shù)據(jù)并入串出芯片74HC165為信號機設(shè)計了綠沖突檢測電路,使用LM3S8962的3個GPIO端口PB7,PA4,PG1分別控制74HC165的并行數(shù)據(jù)加載、時鐘脈沖輸入和串行數(shù)據(jù)的讀取,74HC165的8個輸入端分別接至6個相位及2路人行道的綠燈信號。LM3S8962根據(jù)讀取的綠燈信號狀態(tài)及綠沖突判斷規(guī)則判定是否發(fā)生綠沖突。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件包括設(shè)備驅(qū)動、控制軟件以及網(wǎng)絡(luò)通信協(xié)議三部分。
3.1 設(shè)備驅(qū)動
設(shè)備驅(qū)動程序作為系統(tǒng)軟件的基礎(chǔ),是硬件設(shè)備的接口,應(yīng)用程序通過這個接口才能控制硬件設(shè)備的工作。本信號機系統(tǒng)的驅(qū)動程序包括:FLASH讀寫驅(qū)動、SSI驅(qū)動、以太網(wǎng)控制器驅(qū)動、DS1302讀寫驅(qū)動、74HC165驅(qū)動等。
3.2 uIP協(xié)議
為了實現(xiàn)以太網(wǎng)通信,需要移植網(wǎng)絡(luò)通信協(xié)議。uIP協(xié)議棧是為小型嵌入式微處理器設(shè)計的微型TCP/IP協(xié)議棧,提供必需的網(wǎng)絡(luò)協(xié)議。本文為信號機系統(tǒng)移植uIP0.9協(xié)議棧,將信號機系統(tǒng)配置為一個小型WEB服務(wù)器。應(yīng)用程序中監(jiān)聽80端口,從uip_conn結(jié)構(gòu)體中讀取當(dāng)前連接的相關(guān)信息,由uip_connected()判斷遠(yuǎn)程主機是否連接上本機,由uip_newdata()判斷是否接收到遠(yuǎn)程主機的新數(shù)據(jù),由uip_send()向遠(yuǎn)程主機發(fā)送數(shù)據(jù)包。
3.3 軟件功能模塊
系統(tǒng)控制軟件是信號機軟件的核心,本文采用模塊化的設(shè)計方法,將控制軟件按功能分為初始化、方案處理、秒時段處理、綠沖突檢測、按鍵處理、通信等5個模塊。
初始化包括硬件和軟件初始化,硬件初始化包括對片內(nèi)FLASH、DS1302芯片、液晶模塊、以太網(wǎng)接口等的測試,軟件初始化包括初始化信號機參數(shù)、清除標(biāo)志等。
方案處理從FLASH中讀取系統(tǒng)控制模式、工作時段、信號配時、通行相序等信號機的基本工作參數(shù),并存入特定的數(shù)據(jù)結(jié)構(gòu),供其他模塊調(diào)用。
秒時段處理由每秒中斷一次的定時器完成各相位燈色信號輸出、為各相倒計時時間計數(shù)、切換通行相位等任務(wù)。
綠沖突檢測由定時器每隔特定的時間完成檢測各相位是否發(fā)生綠燈信號沖突的任務(wù)。若發(fā)生綠沖突,進行聲光報警并進入黃閃控制。
按鍵處理由外部中斷服務(wù)程序完成查詢系統(tǒng)狀態(tài)、修改系統(tǒng)參數(shù)、更改系統(tǒng)工作模式等任務(wù)。
通信部分為信號機與監(jiān)控中心的以太網(wǎng)通信,完成接收監(jiān)控中心的控制命令、發(fā)送信號機狀態(tài)參數(shù)等任務(wù)。
3.4 軟件流程
信號機上電后,首先進行初始化,如果初始化能夠正常完成,則進入方案處理,從FLASH中取出各控制模式對應(yīng)的工作參數(shù)并存入特定的數(shù)據(jù)結(jié)構(gòu)中,之后系統(tǒng)默認(rèn)進入多時段控制模式,根據(jù)當(dāng)前時段的工作參數(shù)執(zhí)行對應(yīng)的控制。當(dāng)定時器產(chǎn)生1 s中斷時,進入秒時段處理輸出燈色、倒計時信號。當(dāng)接收到按鍵請求時,進入外部中斷處理程序響應(yīng)用戶請求。當(dāng)接收到遠(yuǎn)程主機命令或者發(fā)送數(shù)據(jù)給遠(yuǎn)程主機時,進入通信處理模塊。信號機每隔一定的時間間隔進入綠沖突檢測模塊,檢測綠燈沖突。
軟件流程圖如圖4所示。
4 結(jié)語
本文介紹了基于LM3S8962的六相位交通信號機相位模型、信號配時、軟硬件設(shè)計及實現(xiàn)技術(shù)。該信號機改進了傳統(tǒng)信號機的控制方式,能夠?qū)崿F(xiàn)高性能、多相位、多模式、聯(lián)網(wǎng)控制,系統(tǒng)可靠性高、操作簡單、升級擴充性好。測試表明,該六相位信號機能夠有效減少交叉口沖突點、減少車輛延誤、提高交叉口安全程度和服務(wù)水平、保護行人安全通行、車輛暢通運行,其社會效益十分明顯。