基于ARM的六相位交通信號(hào)機(jī)設(shè)計(jì)
由此得到信號(hào)周期時(shí)長(zhǎng)為192 s,各方向信號(hào)燈時(shí)長(zhǎng)如表2所示。實(shí)際控制中,應(yīng)根據(jù)各相位車流量情況對(duì)各相通行時(shí)間作適當(dāng)調(diào)整。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 硬件總體設(shè)計(jì)
信號(hào)機(jī)作為一個(gè)典型的嵌入式系統(tǒng),其設(shè)計(jì)應(yīng)以應(yīng)用為中心,做到軟硬件可裁剪。本文選用LM3S8962作為主控芯片,根據(jù)信號(hào)機(jī)的功能要求,并結(jié)合LM3S8962的芯片特性,設(shè)計(jì)的信號(hào)機(jī)系統(tǒng)硬件框圖如圖2所示。
2.2 微處理器、存儲(chǔ)器模塊
嵌入式微處理器是整個(gè)嵌入式系統(tǒng)的核心。LM3S8962是Luminary Micro公司的基于ARM Cortex-M3內(nèi)核具有32位RISC性能的微處理器,提供豐富的片上資源,包括256 KB FLASH,64 KB SRAM,4個(gè)32位通用定時(shí)器、同步串行接口(SSI)、10/100以太網(wǎng)控制器、6組共42個(gè)GPIO端口等,支持嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ,適合于關(guān)注成本的片上系統(tǒng)級(jí)應(yīng)用。
LM3S8962具有256 KB FLASH空間,F(xiàn)LASH是一種不揮發(fā)性內(nèi)存,由一組可獨(dú)立擦除的1 KB區(qū)塊構(gòu)成。本系統(tǒng)軟件占用空間小,使用LM3S8 962自帶的FLASH存儲(chǔ)空間完全能夠滿足系統(tǒng)要求。因此,本文將μC/OS-Ⅱ系統(tǒng)內(nèi)核、控制軟件存放于第0~253區(qū)塊,控制參數(shù)存放于第254 255區(qū)塊。這樣能夠降低系統(tǒng)復(fù)雜度,提高數(shù)據(jù)訪問(wèn)速度。
2.3 信號(hào)燈、倒計(jì)時(shí)模塊
本文為信號(hào)機(jī)設(shè)計(jì)了6個(gè)相位機(jī)動(dòng)車及人行道共6×2×3+2×2×2=44路信號(hào)的控制。由LM3S8962的PB3-PB5,PB0-PB2,PC4-PC6,PD0-PD2,PE0-PE2,PF0/PF1/PG0這6組GPIO端口分別輸出1~6相位LED信號(hào)燈的控制信號(hào)。
本文采用8段LED數(shù)碼管作為信號(hào)機(jī)的倒計(jì)時(shí)顯示組件。6個(gè)相位及人行道均采用兩位數(shù)碼管,共6×2+4×2=20個(gè)兩位數(shù)碼管。利用LM3S89 62自帶的同步串行接口(SSI,對(duì)應(yīng)于PA2~PA5 GPIO端口),配置SSI為主模式,使用Freeseale SPI幀格式,通過(guò)SSI每次向外發(fā)送16位數(shù)據(jù)(包括8位段碼和8位位碼),再利用兩片級(jí)聯(lián)的74HC595芯片將16位串行數(shù)據(jù)轉(zhuǎn)換為16位并行數(shù)據(jù)輸出,達(dá)到將段碼、位碼同時(shí)輸出的目的。
2.4 實(shí)時(shí)時(shí)鐘、以太網(wǎng)接口模塊
信號(hào)機(jī)執(zhí)行多時(shí)段控制模式時(shí),需要根據(jù)實(shí)時(shí)時(shí)間執(zhí)行對(duì)應(yīng)時(shí)段的控制方案,并且為方便用戶校對(duì),需要在液晶界面上顯示實(shí)時(shí)時(shí)間。本文選用DALLAS公司的時(shí)鐘芯片DS1302,該芯片能夠?qū)δ?、月、日、周、時(shí)、分、秒計(jì)時(shí),具有閏年補(bǔ)償功能。使用LM3S8962的3個(gè)GPIO端口PA0,PA1,PA6分別控制DS1302的RST復(fù)位線、I/O數(shù)據(jù)線、SCLK串行時(shí)鐘線,將命令或數(shù)據(jù)按每次1個(gè)字節(jié)或31個(gè)字節(jié)的觸發(fā)模式傳入時(shí)鐘寄存器或移出RAM寄存器,實(shí)現(xiàn)LM3S8962與DS1302之間的同步通信,從而為信號(hào)機(jī)提供實(shí)時(shí)時(shí)鐘。
評(píng)論