《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM智能交通信號機(jī)控制板開發(fā)
基于ARM智能交通信號機(jī)控制板開發(fā)
摘要: 本文介紹了基于AT91RM9200微處理器的智能交通機(jī)控制板的硬件設(shè)計(jì)以及嵌入式Linux軟件平臺,。該設(shè)計(jì)方法改進(jìn)了原信號機(jī)功能,,增加了網(wǎng)絡(luò)通信功能,并保留了過去的通信串口以保持兼容,。整個(gè)開發(fā)板結(jié)構(gòu)設(shè)計(jì)和總線接口信號都同原信號機(jī)主板一樣,,可以直接在現(xiàn)在的信號機(jī)上使用,,而不用整個(gè)修改已經(jīng)開發(fā)成熟的信號機(jī),簡化了開發(fā)工作,。
關(guān)鍵詞: ARM 智能交通
Abstract:
Key words :

   信號機(jī)是一個(gè)典刑的嵌入式系統(tǒng),,嵌入式系統(tǒng)是以應(yīng)用為中心來設(shè)計(jì),對功能,、性能,、可靠性、成本,、功耗,、體積等有嚴(yán)格的要求,既要滿足智能交通系統(tǒng)對信號機(jī)智能化,、多功能的要求,,又要最大化信號機(jī)的性價(jià)比,因此本設(shè)計(jì)選擇基于arm核的32位嵌入式RISC處理器——AT91RM9200來完成智能交通信號機(jī)控制板的硬件設(shè)計(jì),,以達(dá)到使信號機(jī)在交通系統(tǒng)中成為收集與處理交通流量數(shù)據(jù),、通信聯(lián)網(wǎng)以及區(qū)域協(xié)調(diào)控制平臺的設(shè)計(jì)目標(biāo)。
      1 引言

       目前我國的城市交通控制主要還是靠道路交通信號控制機(jī)(以下簡稱信號機(jī)),。國內(nèi)的信號機(jī)主要分為兩類:一類采用8/16位單片機(jī)作為處理器,,交通控制功能簡單、方案單一,,以RS 232或RS485為通訊方式,,難以與控制中心聯(lián)網(wǎng)以及實(shí)現(xiàn)區(qū)域交通協(xié)調(diào)控制等功能,不能適應(yīng)現(xiàn)代化大路口交通控制的要求,;另一類則是基于工控機(jī)或PC104,,功能雖然強(qiáng)大,但由于工控機(jī)或PC104都是按通用計(jì)算機(jī)標(biāo)準(zhǔn)設(shè)計(jì),,并非專門針對信號機(jī)應(yīng)用設(shè)計(jì),,該類信號機(jī)硬件結(jié)構(gòu)復(fù)雜且很多功能并不需要,,成本也高,國外的信號機(jī)(如西門子公司的2070和美國的EAGLE)開發(fā)起步早,,水平高,,已有各種自適應(yīng)聯(lián)網(wǎng)型信號機(jī)產(chǎn)品,但一般不適用于中國混合交通的實(shí)際情況,,且價(jià)格昂貴,,操作不方便。

       信號機(jī)是一個(gè)典刑的嵌入式系統(tǒng),,嵌入式系統(tǒng)是以應(yīng)用為中心來設(shè)計(jì),,對功能、性能,、可靠性,、成本、功耗,、體積等有嚴(yán)格的要求,,既要滿足智能交通系統(tǒng)對信號機(jī)智能化、多功能的要求,,又要最大化信號機(jī)的性價(jià)比,,因此本設(shè)計(jì)選擇基于arm核的32位嵌入式RISC處理器——AT91RM9200來完成智能交通信號機(jī)控制板的硬件設(shè)計(jì),以達(dá)到使信號機(jī)在交通系統(tǒng)中成為收集與處理交通流量數(shù)據(jù),、通信聯(lián)網(wǎng)以及區(qū)域協(xié)調(diào)控制平臺的設(shè)計(jì)目標(biāo),。

        2 信號機(jī)系統(tǒng)硬件設(shè)計(jì)

       2.1 系統(tǒng)總體硬件結(jié)構(gòu)

       智能交通系統(tǒng)要求信號機(jī)可以向控制中心實(shí)時(shí)提供多種道路信息和車流量數(shù)據(jù)信息,接收控制中心的控制命令,,并能夠獨(dú)立執(zhí)行一些復(fù)雜的算法,,可以根據(jù)交通流量變化實(shí)時(shí)條件路口信號燈的綠燈時(shí)間,因此考慮現(xiàn)有信號機(jī)的不足,,根據(jù)信號機(jī)功能發(fā)展的趨勢和要求,,本文設(shè)計(jì)的信號機(jī)控制板具有控制參數(shù)輸入、控制狀態(tài)輸出,、控制參數(shù)保存,、燈態(tài)輸出控制、交通流信息(主要是車流量)實(shí)時(shí)檢測與歷史數(shù)據(jù)存儲,、多種燈態(tài)控制方案與算法模型存儲,、支持以太網(wǎng)及與手持終端設(shè)備通訊等基本功能。整個(gè)系統(tǒng)硬件結(jié)構(gòu)如圖1所示,。

             系統(tǒng)硬件結(jié)構(gòu)                          

       2.1.1 AT91RM9200微處理器介紹

       嵌入式微處理器是整個(gè)嵌入式系統(tǒng)的核心,,AT91RM9200是Atmel公司推出的基于當(dāng)前流行的arm920T內(nèi)核的一款32位RISC微控制器,工作在180MHz頻率下的運(yùn)算速度可達(dá)200MIPS。專門針對系統(tǒng)控制,、通訊領(lǐng)域的應(yīng)用,。AT91RM9200芯片的功能結(jié)構(gòu)如圖2所示。

                 at91rm9200芯片的功能結(jié)構(gòu)       

       AT91RM9200集成了豐富的外圍功能模塊,,滿足多種應(yīng)用場合,,豐富適合于實(shí)時(shí)控制,可以支持實(shí)時(shí)操作系統(tǒng)(RTOS),,為需要多功能、低成本,、低功耗的計(jì)算密集型應(yīng)用提供了一個(gè)單芯片級的解決方案,。AT91RM9200是一款性價(jià)比極高的微處理器,經(jīng)過比較選擇AT91RM9200作為信號機(jī)控制板處理器,。

       2.1.2 控制板外圍模塊

       控制板設(shè)計(jì)主要包括以下幾個(gè)部分:

       (1)電源/晶振模塊:

       控制主板使用12/5V兩套電源供電,,AT91RM9200工作于3.3/1.8V兩種電壓,系統(tǒng)其他器件盡量選擇工作電壓為3.3V,。

       AT91RM9200使用12MHz/32.768kHz兩種晶振,,主晶振12MHz經(jīng)過芯片內(nèi)倍頻處理分別為arm920T核與系統(tǒng)提供180MHz和60MHz的時(shí)鐘頻率。32.768kHz慢時(shí)鐘用于AT91RM9200的啟動,。

       (2)存儲器模塊,。

       (3)網(wǎng)絡(luò)模塊。

       (4)串口模塊和GPS接口:

       AT91RM9200提供4個(gè)USART,,分別將他們分配給RS232和RS485,。控制板上預(yù)留GPS接口位置,,用于未來擴(kuò)展信號機(jī)無線通訊功能,,GPS使用RS232同AT91RM9200通信。

       (5)RTC模塊:

信號機(jī)在通訊,、干線或者區(qū)域協(xié)調(diào)控制中需要使用統(tǒng)一的時(shí)間來同步,,因此設(shè)計(jì)RTC(實(shí)時(shí)時(shí)鐘)用來對時(shí)。RTC可以提供可編程的實(shí)時(shí)時(shí)鐘:年(含閏年),、月,、日、時(shí),、分,、秒、星期及一個(gè)鬧鐘中斷,,并可以在掉電后使用備用電源工作,。

       (6)系統(tǒng)總線擴(kuò)展模塊。

       2.2 主要硬件模塊電路設(shè)計(jì)

       下面詳細(xì)說明存儲單元,、網(wǎng)絡(luò)和系統(tǒng)總線擴(kuò)展模塊的硬件設(shè)計(jì),。

       2.2.1 存儲器模塊

       本文設(shè)計(jì)的信號機(jī)需要存放嵌入式操作系統(tǒng)及其文件系統(tǒng),、應(yīng)用程序和其他在運(yùn)行或系統(tǒng)掉電后需要保存的數(shù)據(jù);另外當(dāng)系統(tǒng)啟動后,,操作系統(tǒng)和程序運(yùn)行還需要更大的空間,。AT91RM9200內(nèi)部集成的ROM和RAM的容量不能夠滿足信號機(jī)的要求,因此設(shè)計(jì)了外存儲單元來擴(kuò)展存儲空間,,由16MB和FLASH和64MB的SDRAM組成信號機(jī)的外存儲系統(tǒng),。

       AT91RM9200的地址空間是4GB,他被劃分成16個(gè)256MB的區(qū)域,;

       區(qū)域0為內(nèi)部存儲器空間,;

       區(qū)域1-8是給由EBI控制的外部設(shè)備(擴(kuò)展的片外存儲器和外接的設(shè)備)使用的,片選信號為引腳NCS0-7,;

       區(qū)域15是AT91RM9200集成的片內(nèi)外圍功能(包括系統(tǒng)和用戶外圍)使用的地址空間,,當(dāng)系統(tǒng)上電或重啟時(shí),根據(jù)引腳BMS的電平狀態(tài),,系統(tǒng)選擇是從內(nèi)部ROM(BMS=1)還是從存儲區(qū)域1即NCS0片選區(qū)域(BMS=0)啟動,。

       (1)本設(shè)計(jì)選用1片8M×16b數(shù)據(jù)寬度的FLASH,共16MB,,作為程序代碼存儲器和信號機(jī)運(yùn)行時(shí)的永久數(shù)據(jù)存儲器,。FLASH存儲器在系統(tǒng)中主要用于存放引導(dǎo)程序bootloader、操作系統(tǒng)內(nèi)核鏡像和應(yīng)用程序代碼等,,系統(tǒng)上電或者復(fù)位后從FLASH中運(yùn)行bootloader,,由bootloader初始化硬件并將操作系統(tǒng)拷貝到SDRAM中去執(zhí)行。所以將FLASH存儲器分配到AT91RM9200的BANK0(存儲區(qū)域1)地址空間,,即將AT91RM9200的NCSO連接到FLASH的片選端CE0,。FLASH輸出使能端OE接AT91RM9200的NOE;寫使能端WE接AT91RM9200的NWE,;模式選擇端BYTE上接高電平,,使FLASH工作在16位數(shù)據(jù)模塊,16位模塊FLASH與AT91RM9200的基本連接如圖3所示,。

               16位模塊flash與at91rm9200的基本連接                           

 

       (2)為了提高系統(tǒng)運(yùn)行的效果,,系統(tǒng)啟動后將FLASH中代碼拷貝到SDRAM中,由SDRAM作系統(tǒng)程序運(yùn)行場所,。為了發(fā)揮AT91RM9200處理器32位數(shù)據(jù)處理性能,,本設(shè)計(jì)選用2片4BANK×4M×16b(32MB)SDRAM,并聯(lián)組成32b的RAM,,總共64MB空間,,完全可以滿足嵌入式操作系統(tǒng)及各種復(fù)雜功能的運(yùn)行要求。

                        

sdram并聯(lián)構(gòu)建32位sdram存儲系統(tǒng)的簡圖

    

       如圖4為用2片SDRAM并聯(lián)構(gòu)建32位SDRAM存儲系統(tǒng)的簡圖,其中一片作為高16位,,另一片作為低16位,,他們的數(shù)據(jù)線分別接AT91RM9200數(shù)據(jù)總線的D[16..31]和D[0..15]。SDRAM是被分配到AT91RM9200的BANK1(存儲區(qū)域2)地址空間的,,即將AT91RM9200的NCS1端分別接到2片DSRAM的CS片選端,。因?yàn)镾DRAM的第10位地址線A10還有給SDRAM預(yù)充電的作用,所以AT91RM9200提供給SDRAM專用的地址線——SDA10,,來代替通用地址線MA10,,并且因?yàn)?2位數(shù)據(jù)讀寫是4字節(jié)對齊的,所以AT91RM9200的地址線MA[2..11,,13,,14]接SDRAM地址線A[0..9,11,,12]。

       2.2.2 10/100 Mb/s以太網(wǎng)模塊

       傳統(tǒng)的RS 232和RS 485通信方式已經(jīng)不適應(yīng)遠(yuǎn)距離,、大信息量的數(shù)據(jù)傳輸,,而充分利用現(xiàn)有發(fā)達(dá)的網(wǎng)絡(luò)系統(tǒng),實(shí)現(xiàn)信號機(jī)聯(lián)網(wǎng)的功能,,也是智能交通發(fā)展的要求,,AT91RM9200芯片本身集成有網(wǎng)絡(luò)控制器件和28B的FIFOs棧和專用數(shù)據(jù)控制器(DMA)的接收和發(fā)送通道,硬件實(shí)現(xiàn)了OSI網(wǎng)絡(luò)參考模型中介于物體層和邏輯鏈路層之間的介質(zhì)訪問MAC子層,,但是沒有提供物理層接口,,因此需要外接一個(gè)物體層傳輸控制器來提供接入以太網(wǎng)的通道。用Intel的LXT972快速以太網(wǎng)PHY傳輸控制芯片進(jìn)行數(shù)據(jù)的網(wǎng)絡(luò)收發(fā),。

       LXT972和AT91RM9200網(wǎng)絡(luò)控制器通過介質(zhì)無關(guān)接口(MII)可以很方便地連接,。在LXT972和RJ45接口之間需要用網(wǎng)絡(luò)隔離變壓器來連接,網(wǎng)絡(luò)隔離變壓器起信號傳輸,、阻抗匹配,、波形修復(fù)、雜波抑制以及高電壓隔離等作用,,以保護(hù)系統(tǒng)的安全,。LXT972的RX+/RX-、TX+/TX-接到網(wǎng)絡(luò)隔離變壓器上,,再由變壓器引出相應(yīng)信號連接到RJ45接口上,,網(wǎng)絡(luò)模塊以標(biāo)準(zhǔn)RJ45接口與以太網(wǎng)相連。其網(wǎng)絡(luò)模塊連接方式如圖5所示,。

網(wǎng)絡(luò)模塊


         2.2.3 系統(tǒng)總線擴(kuò)展模塊

       考慮到信號機(jī)的體積,、靠靠性及提高信號機(jī)的模塊化程度,方便設(shè)備的升級、擴(kuò)展,、控制板上并不直接實(shí)現(xiàn)控制參數(shù)輸入,、車流量檢測等功能,信號機(jī)從控制板引出數(shù)據(jù)總線,、地址總線和必要的控制信號,,設(shè)計(jì)統(tǒng)一的系統(tǒng)總線,控制板通過總線來操作各個(gè)功能板,,如信號燈驅(qū)動板,、車輛檢測板以及操作面板的鍵盤輸入和LED顯示輸出,控制板和各個(gè)功能板都卡裝在插槽接口,。

       由于信號機(jī)的系統(tǒng)總線設(shè)計(jì)使用ISA總線標(biāo)準(zhǔn),,因此總線時(shí)序同ARM的讀寫時(shí)序不同,所以首先需要對arm時(shí)序和ISA時(shí)序做轉(zhuǎn)化,。底板總線需要的數(shù)據(jù),、地址、讀寫等控制信號等都先由CPLD進(jìn)行時(shí)序轉(zhuǎn)換后再發(fā)送到總線上去,。底板總線使用16位數(shù)據(jù)總線,,7位地址總線,分配給底板總線的地址空間是AT91RM9200的BANK2區(qū)(存儲區(qū)域3),,片選信號端NCS2,。對底板總線的讀寫操作由AT91RM9200的EBI(外部總線接口)來控制,嵌入式操作系統(tǒng)以I/O內(nèi)存的方式來對他們進(jìn)行管理,。AT91RM9200的可編程時(shí)鐘輸出端PCK0用來給底板總線提供時(shí)鐘信號,,由CPLD對他進(jìn)行分頻處理,產(chǎn)生需要的多個(gè)時(shí)鐘頻率,。

       信號機(jī)使用操作面板的小鍵盤進(jìn)行參數(shù)設(shè)置和方案設(shè)定,,并用LED模塊顯示信號燈閃爍。操作面板的鍵盤,、LED設(shè)計(jì)采用“串行”操作,,即面板的鍵盤信號先進(jìn)行“并/串”轉(zhuǎn)換后,以兩線同步串行方式傳輸?shù)娇刂瓢宓腃PLD,,作“串/并”轉(zhuǎn)換后再發(fā)送給AT91RM9200,。

       在操作面板自己的CPLD內(nèi),模塊“8279”的工作方式,,采集鍵盤信號,,同樣AT91RM9200發(fā)送給LED顯示的命令數(shù)據(jù)先在CPLD中實(shí)現(xiàn)“并/串”轉(zhuǎn)換,以兩線同步串行方式,,傳輸給操作面板,,由操作面板的CPLD處理后控制LED,。這種方案大大減少控制主板與操作面板之間的聯(lián)線,模塊化程度更好,。系統(tǒng)總線擴(kuò)展模塊如圖6所示,。

             

系統(tǒng)總線擴(kuò)展模塊

         3 嵌入式Linux系統(tǒng)

       信號機(jī)功能比較簡單時(shí)并不需要使用操作系統(tǒng),而只是運(yùn)行一個(gè)控制循環(huán)程序,,利用中斷來處理發(fā)生的事件,,這樣程序結(jié)構(gòu)比較凌亂,難以維護(hù)或升級,,功能也受限,。基于工控機(jī)或PC104的信號機(jī)上一般運(yùn)行通用操作系統(tǒng),,如Windows或DOS,,前者功能雖然強(qiáng)大,卻過于龐大,,不適合信號機(jī)這樣的嵌入式系統(tǒng),,可靠性差、容易造成死機(jī),;后者則功能較弱,,已經(jīng)不適合信號機(jī)功能發(fā)展的要求。

       智能信號機(jī)的功能發(fā)展需要同時(shí)運(yùn)行多個(gè)任務(wù),,如信號燈控制、通訊,、車流量檢測等等,,這就要對多任務(wù)進(jìn)行合理的調(diào)度;另外信號機(jī)接收和處理的信息,、數(shù)據(jù)的增多,,尤其是需要大量保存歷史車流量數(shù)據(jù)供信號燈控制模型計(jì)算和中心查詢使用,單靠表或數(shù)組來管理是復(fù)雜而效率低下的,,因此文件管理也是必不可少的一項(xiàng)功能,。

       嵌入式Linux是一款優(yōu)秀的嵌入式操作系統(tǒng)。他采用微內(nèi)核體系結(jié)構(gòu),,這使得核心小巧而可靠,,易于ROM固化,并可模塊化擴(kuò)展,;支持多種文件系統(tǒng),,如EXT2,VFAT,,NTFS等,;內(nèi)核直接提供完善的網(wǎng)絡(luò)支持,。

       本文選擇功能和可靠性都很成熟的Linux-2.4.19內(nèi)核版本以及針對AT91RM9200體系結(jié)構(gòu)的補(bǔ)丁patch-2.4.19-rmk7。給標(biāo)準(zhǔn)內(nèi)核源代碼打上補(bǔ)丁后,,該內(nèi)核就可應(yīng)用于AT91RM9200了,。這就大大節(jié)省了產(chǎn)品開發(fā)時(shí)間,剩下的主要移植工作就是根據(jù)信號機(jī)的硬件功能編寫或者修改相應(yīng)的驅(qū)動程序,,并在編碼內(nèi)核時(shí)選擇需要的功能,,此處不再贅述。

       Linux操作系統(tǒng)在開發(fā)板上為應(yīng)用程序運(yùn)行提供了一個(gè)強(qiáng)大的軟件平臺,。

應(yīng)用程序的開發(fā)調(diào)試有兩種模式:

       (1)和內(nèi)核一起編譯,,在系統(tǒng)啟動后運(yùn)行,這種方法修改程序比較麻煩,,必須重新編碼內(nèi)核,,因此適合于簡單的嵌入式系統(tǒng)。

       (2)在宿主機(jī)上的交叉編碼環(huán)境下進(jìn)行編碼,,生成目標(biāo)板上可執(zhí)行的二進(jìn)制文件,,再通過串口和網(wǎng)口下載到目標(biāo)板上執(zhí)行,用該方法調(diào)試程序方便靈活,,更適合于復(fù)雜的系統(tǒng),。

       本文采用第二種方法來調(diào)試程序。將目標(biāo)板(控制板)的調(diào)試串口和宿主機(jī)(PC機(jī))串口相連,,然后宿主機(jī)上運(yùn)行minicom作為目標(biāo)板的控制臺,。將宿主機(jī)和目標(biāo)板用交叉網(wǎng)線連接,并設(shè)置二者的IP在同一網(wǎng)段,。在宿主機(jī)上打開NFS(網(wǎng)絡(luò)文件系統(tǒng))服務(wù),;目標(biāo)板mount宿主機(jī)的IP,如mount-o nolock 192.168.2.97://test,,這樣從目標(biāo)板文件系統(tǒng)的test文件夾就可以訪問到宿主機(jī)的根文件系統(tǒng),,宿主機(jī)上編譯好的可執(zhí)行文件,直接可以從目標(biāo)板上看到并運(yùn)行,。

       測試表明信號機(jī)控制板的軟硬件系統(tǒng)都可以穩(wěn)定運(yùn)行,,各部分功能也正常工作,證明了設(shè)計(jì)結(jié)果達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),。

       4 結(jié)語

       本文介紹了基于AT91RM9200微處理器的智能交通機(jī)控制板的硬件設(shè)計(jì)以及嵌入式Linux軟件平臺,。該設(shè)計(jì)方法改進(jìn)了原信號機(jī)功能,增加了網(wǎng)絡(luò)通信功能,,并保留了過去的通信串口以保持兼容,。整個(gè)開發(fā)板結(jié)構(gòu)設(shè)計(jì)和總線接口信號都同原信號機(jī)主板一樣,可以直接在現(xiàn)在的信號機(jī)上使用,,而不用整個(gè)修改已經(jīng)開發(fā)成熟的信號機(jī),,簡化了開發(fā)工作,。

       嵌入式Linux系統(tǒng)也使硬件功能得到更好的管理和使用,并為信號機(jī)的軟件運(yùn)行提供了一個(gè)強(qiáng)大的平臺,,Linux系統(tǒng)下接入網(wǎng)絡(luò)和進(jìn)行文件管理更加容易安全,。在Linux基礎(chǔ)上可以更方便地開發(fā)更智能的信號燈控制算法以及其他功能。同時(shí)整個(gè)信號機(jī)系統(tǒng)的軟硬件可靠性也得到了提高,。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。