?? 信號機是一個典刑的嵌入式系統,嵌入式系統是以應用為中心來設計,對功能、性能、可靠性、成本、功耗、體積等有嚴格的要求,既要滿足智能交通系統對信號機智能化、多功能的要求,又要最大化信號機的性價比,因此本設計選擇基于arm核的32位嵌入式RISC處理器——AT91RM9200來完成智能交通信號機控制板的硬件設計,以達到使信號機在交通系統中成為收集與處理交通流量數據、通信聯網以及區域協調控制平臺的設計目標。
????? 1 引言
?????? 目前我國的城市交通控制主要還是靠道路交通信號控制機(以下簡稱信號機)。國內的信號機主要分為兩類:一類采用8/16位單片機作為處理器,交通控制功能簡單、方案單一,以RS 232或RS485為通訊方式,難以與控制中心聯網以及實現區域交通協調控制等功能,不能適應現代化大路口交通控制的要求;另一類則是基于工控機或PC104,功能雖然強大,但由于工控機或PC104都是按通用計算機標準設計,并非專門針對信號機應用設計,該類信號機硬件結構復雜且很多功能并不需要,成本也高,國外的信號機(如西門子公司的2070和美國的EAGLE)開發起步早,水平高,已有各種自適應聯網型信號機產品,但一般不適用于中國混合交通的實際情況,且價格昂貴,操作不方便。
?????? 信號機是一個典刑的嵌入式系統,嵌入式系統是以應用為中心來設計,對功能、性能、可靠性、成本、功耗、體積等有嚴格的要求,既要滿足智能交通系統對信號機智能化、多功能的要求,又要最大化信號機的性價比,因此本設計選擇基于arm核的32位嵌入式RISC處理器——AT91RM9200來完成智能交通信號機控制板的硬件設計,以達到使信號機在交通系統中成為收集與處理交通流量數據、通信聯網以及區域協調控制平臺的設計目標。
??????? 2 信號機系統硬件設計
?????? 2.1 系統總體硬件結構
?????? 智能交通系統要求信號機可以向控制中心實時提供多種道路信息和車流量數據信息,接收控制中心的控制命令,并能夠獨立執行一些復雜的算法,可以根據交通流量變化實時條件路口信號燈的綠燈時間,因此考慮現有信號機的不足,根據信號機功能發展的趨勢和要求,本文設計的信號機控制板具有控制參數輸入、控制狀態輸出、控制參數保存、燈態輸出控制、交通流信息(主要是車流量)實時檢測與歷史數據存儲、多種燈態控制方案與算法模型存儲、支持以太網及與手持終端設備通訊等基本功能。整個系統硬件結構如圖1所示。
???????????? ??????????????????????????
?????? 2.1.1 AT91RM9200微處理器介紹
?????? 嵌入式微處理器是整個嵌入式系統的核心,AT91RM9200是Atmel公司推出的基于當前流行的arm920T內核的一款32位RISC微控制器,工作在180MHz頻率下的運算速度可達200MIPS。專門針對系統控制、通訊領域的應用。AT91RM9200芯片的功能結構如圖2所示。
????????????????????????
?????? AT91RM9200集成了豐富的外圍功能模塊,滿足多種應用場合,豐富適合于實時控制,可以支持實時操作系統(RTOS),為需要多功能、低成本、低功耗的計算密集型應用提供了一個單芯片級的解決方案。AT91RM9200是一款性價比極高的微處理器,經過比較選擇AT91RM9200作為信號機控制板處理器。
?????? 2.1.2 控制板外圍模塊
?????? 控制板設計主要包括以下幾個部分:
?????? (1)電源/晶振模塊:
?????? 控制主板使用12/5V兩套電源供電,AT91RM9200工作于3.3/1.8V兩種電壓,系統其他器件盡量選擇工作電壓為3.3V。
?????? AT91RM9200使用12MHz/32.768kHz兩種晶振,主晶振12MHz經過芯片內倍頻處理分別為arm920T核與系統提供180MHz和60MHz的時鐘頻率。32.768kHz慢時鐘用于AT91RM9200的啟動。
?????? (2)存儲器模塊。
?????? (3)網絡模塊。
?????? (4)串口模塊和GPS接口:
?????? AT91RM9200提供4個USART,分別將他們分配給RS232和RS485。控制板上預留GPS接口位置,用于未來擴展信號機無線通訊功能,GPS使用RS232同AT91RM9200通信。
?????? (5)RTC模塊:
信號機在通訊、干線或者區域協調控制中需要使用統一的時間來同步,因此設計RTC(實時時鐘)用來對時。RTC可以提供可編程的實時時鐘:年(含閏年)、月、日、時、分、秒、星期及一個鬧鐘中斷,并可以在掉電后使用備用電源工作。
?????? (6)系統總線擴展模塊。
?????? 2.2 主要硬件模塊電路設計
?????? 下面詳細說明存儲單元、網絡和系統總線擴展模塊的硬件設計。
?????? 2.2.1 存儲器模塊
?????? 本文設計的信號機需要存放嵌入式操作系統及其文件系統、應用程序和其他在運行或系統掉電后需要保存的數據;另外當系統啟動后,操作系統和程序運行還需要更大的空間。AT91RM9200內部集成的ROM和RAM的容量不能夠滿足信號機的要求,因此設計了外存儲單元來擴展存儲空間,由16MB和FLASH和64MB的SDRAM組成信號機的外存儲系統。
?????? AT91RM9200的地址空間是4GB,他被劃分成16個256MB的區域;
?????? 區域0為內部存儲器空間;
?????? 區域1-8是給由EBI控制的外部設備(擴展的片外存儲器和外接的設備)使用的,片選信號為引腳NCS0-7;
?????? 區域15是AT91RM9200集成的片內外圍功能(包括系統和用戶外圍)使用的地址空間,當系統上電或重啟時,根據引腳BMS的電平狀態,系統選擇是從內部ROM(BMS=1)還是從存儲區域1即NCS0片選區域(BMS=0)啟動。
?????? (1)本設計選用1片8M×16b數據寬度的FLASH,共16MB,作為程序代碼存儲器和信號機運行時的永久數據存儲器。FLASH存儲器在系統中主要用于存放引導程序bootloader、操作系統內核鏡像和應用程序代碼等,系統上電或者復位后從FLASH中運行bootloader,由bootloader初始化硬件并將操作系統拷貝到SDRAM中去執行。所以將FLASH存儲器分配到AT91RM9200的BANK0(存儲區域1)地址空間,即將AT91RM9200的NCSO連接到FLASH的片選端CE0。FLASH輸出使能端OE接AT91RM9200的NOE;寫使能端WE接AT91RM9200的NWE;模式選擇端BYTE上接高電平,使FLASH工作在16位數據模塊,16位模塊FLASH與AT91RM9200的基本連接如圖3所示。
?????????????? ???????????????????????????
? (2)為了提高系統運行的效果,系統啟動后將FLASH中代碼拷貝到SDRAM中,由SDRAM作系統程序運行場所。為了發揮AT91RM9200處理器32位數據處理性能,本設計選用2片4BANK×4M×16b(32MB)SDRAM,并聯組成32b的RAM,總共64MB空間,完全可以滿足嵌入式操作系統及各種復雜功能的運行要求。
????????????????????????
????
?????? 如圖4為用2片SDRAM并聯構建32位SDRAM存儲系統的簡圖,其中一片作為高16位,另一片作為低16位,他們的數據線分別接AT91RM9200數據總線的D[16..31]和D[0..15]。SDRAM是被分配到AT91RM9200的BANK1(存儲區域2)地址空間的,即將AT91RM9200的NCS1端分別接到2片DSRAM的CS片選端。因為SDRAM的第10位地址線A10還有給SDRAM預充電的作用,所以AT91RM9200提供給SDRAM專用的地址線——SDA10,來代替通用地址線MA10,并且因為32位數據讀寫是4字節對齊的,所以AT91RM9200的地址線MA[2..11,13,14]接SDRAM地址線A[0..9,11,12]。
?????? 2.2.2 10/100 Mb/s以太網模塊
?????? 傳統的RS 232和RS 485通信方式已經不適應遠距離、大信息量的數據傳輸,而充分利用現有發達的網絡系統,實現信號機聯網的功能,也是智能交通發展的要求,AT91RM9200芯片本身集成有網絡控制器件和28B的FIFOs棧和專用數據控制器(DMA)的接收和發送通道,硬件實現了OSI網絡參考模型中介于物體層和邏輯鏈路層之間的介質訪問MAC子層,但是沒有提供物理層接口,因此需要外接一個物體層傳輸控制器來提供接入以太網的通道。用Intel的LXT972快速以太網PHY傳輸控制芯片進行數據的網絡收發。
?????? LXT972和AT91RM9200網絡控制器通過介質無關接口(MII)可以很方便地連接。在LXT972和RJ45接口之間需要用網絡隔離變壓器來連接,網絡隔離變壓器起信號傳輸、阻抗匹配、波形修復、雜波抑制以及高電壓隔離等作用,以保護系統的安全。LXT972的RX+/RX-、TX+/TX-接到網絡隔離變壓器上,再由變壓器引出相應信號連接到RJ45接口上,網絡模塊以標準RJ45接口與以太網相連。其網絡模塊連接方式如圖5所示。
???????? 2.2.3 系統總線擴展模塊
?????? 考慮到信號機的體積、靠靠性及提高信號機的模塊化程度,方便設備的升級、擴展、控制板上并不直接實現控制參數輸入、車流量檢測等功能,信號機從控制板引出數據總線、地址總線和必要的控制信號,設計統一的系統總線,控制板通過總線來操作各個功能板,如信號燈驅動板、車輛檢測板以及操作面板的鍵盤輸入和LED顯示輸出,控制板和各個功能板都卡裝在插槽接口。
?????? 由于信號機的系統總線設計使用ISA總線標準,因此總線時序同ARM的讀寫時序不同,所以首先需要對arm時序和ISA時序做轉化。底板總線需要的數據、地址、讀寫等控制信號等都先由CPLD進行時序轉換后再發送到總線上去。底板總線使用16位數據總線,7位地址總線,分配給底板總線的地址空間是AT91RM9200的BANK2區(存儲區域3),片選信號端NCS2。對底板總線的讀寫操作由AT91RM9200的EBI(外部總線接口)來控制,嵌入式操作系統以I/O內存的方式來對他們進行管理。AT91RM9200的可編程時鐘輸出端PCK0用來給底板總線提供時鐘信號,由CPLD對他進行分頻處理,產生需要的多個時鐘頻率。
??? 信號機使用操作面板的小鍵盤進行參數設置和方案設定,并用LED模塊顯示信號燈閃爍。操作面板的鍵盤、LED設計采用“串行”操作,即面板的鍵盤信號先進行“并/串”轉換后,以兩線同步串行方式傳輸到控制板的CPLD,作“串/并”轉換后再發送給AT91RM9200。
?????? 在操作面板自己的CPLD內,模塊“8279”的工作方式,采集鍵盤信號,同樣AT91RM9200發送給LED顯示的命令數據先在CPLD中實現“并/串”轉換,以兩線同步串行方式,傳輸給操作面板,由操作面板的CPLD處理后控制LED。這種方案大大減少控制主板與操作面板之間的聯線,模塊化程度更好。系統總線擴展模塊如圖6所示。
?????????????
???????? 3 嵌入式Linux系統
?????? 信號機功能比較簡單時并不需要使用操作系統,而只是運行一個控制循環程序,利用中斷來處理發生的事件,這樣程序結構比較凌亂,難以維護或升級,功能也受限。基于工控機或PC104的信號機上一般運行通用操作系統,如Windows或DOS,前者功能雖然強大,卻過于龐大,不適合信號機這樣的嵌入式系統,可靠性差、容易造成死機;后者則功能較弱,已經不適合信號機功能發展的要求。
?????? 智能信號機的功能發展需要同時運行多個任務,如信號燈控制、通訊、車流量檢測等等,這就要對多任務進行合理的調度;另外信號機接收和處理的信息、數據的增多,尤其是需要大量保存歷史車流量數據供信號燈控制模型計算和中心查詢使用,單靠表或數組來管理是復雜而效率低下的,因此文件管理也是必不可少的一項功能。
?????? 嵌入式Linux是一款優秀的嵌入式操作系統。他采用微內核體系結構,這使得核心小巧而可靠,易于ROM固化,并可模塊化擴展;支持多種文件系統,如EXT2,VFAT,NTFS等;內核直接提供完善的網絡支持。
?????? 本文選擇功能和可靠性都很成熟的Linux-2.4.19內核版本以及針對AT91RM9200體系結構的補丁patch-2.4.19-rmk7。給標準內核源代碼打上補丁后,該內核就可應用于AT91RM9200了。這就大大節省了產品開發時間,剩下的主要移植工作就是根據信號機的硬件功能編寫或者修改相應的驅動程序,并在編碼內核時選擇需要的功能,此處不再贅述。
?????? Linux操作系統在開發板上為應用程序運行提供了一個強大的軟件平臺。
應用程序的開發調試有兩種模式:
?????? (1)和內核一起編譯,在系統啟動后運行,這種方法修改程序比較麻煩,必須重新編碼內核,因此適合于簡單的嵌入式系統。
?????? (2)在宿主機上的交叉編碼環境下進行編碼,生成目標板上可執行的二進制文件,再通過串口和網口下載到目標板上執行,用該方法調試程序方便靈活,更適合于復雜的系統。
?????? 本文采用第二種方法來調試程序。將目標板(控制板)的調試串口和宿主機(PC機)串口相連,然后宿主機上運行minicom作為目標板的控制臺。將宿主機和目標板用交叉網線連接,并設置二者的IP在同一網段。在宿主機上打開NFS(網絡文件系統)服務;目標板mount宿主機的IP,如mount-o nolock 192.168.2.97://test,這樣從目標板文件系統的test文件夾就可以訪問到宿主機的根文件系統,宿主機上編譯好的可執行文件,直接可以從目標板上看到并運行。
?????? 測試表明信號機控制板的軟硬件系統都可以穩定運行,各部分功能也正常工作,證明了設計結果達到了預期的設計目標。
?????? 4 結語
?????? 本文介紹了基于AT91RM9200微處理器的智能交通機控制板的硬件設計以及嵌入式Linux軟件平臺。該設計方法改進了原信號機功能,增加了網絡通信功能,并保留了過去的通信串口以保持兼容。整個開發板結構設計和總線接口信號都同原信號機主板一樣,可以直接在現在的信號機上使用,而不用整個修改已經開發成熟的信號機,簡化了開發工作。
?????? 嵌入式Linux系統也使硬件功能得到更好的管理和使用,并為信號機的軟件運行提供了一個強大的平臺,Linux系統下接入網絡和進行文件管理更加容易安全。在Linux基礎上可以更方便地開發更智能的信號燈控制算法以及其他功能。同時整個信號機系統的軟硬件可靠性也得到了提高。
評論
查看更多