摘要:提出了一種基于ARM7 和CPLD 架構(gòu)的數(shù)字公交站亭系統(tǒng),。系統(tǒng)通過GPRS 模塊與公交控制中心實(shí)時(shí)通信,使用CA 認(rèn)證保證通信的安全性,,采用兩塊SRAM 組成具有“乒乓邏輯”的高速緩存確保顯示數(shù)據(jù)的連續(xù)性,,可實(shí)現(xiàn)同一站亭多條線路信息動(dòng)態(tài)顯示,、實(shí)時(shí)車輛到站預(yù)報(bào)、公眾信息發(fā)布,、線路信息及時(shí)更新以及系統(tǒng)在線升級等功能,,具有實(shí)時(shí)性好、安全性高,,可擴(kuò)展性強(qiáng)等特點(diǎn),。
針對現(xiàn)有印刷公交站亭提供信息少、無法提供車輛到站預(yù)報(bào),、增加線路或者修改線路信息麻煩等不足,,本文提出了一種新數(shù)字公交站亭系統(tǒng)。該系統(tǒng)基于ARM7 和CPLD 架構(gòu),,通過GPRS 與公交控制中心通信,,采用CA 認(rèn)證保證通信的安全性,能實(shí)現(xiàn)實(shí)時(shí)車輛到站預(yù)報(bào),、公眾信息(如天氣預(yù)報(bào),、重要新聞、交通路況,、緊急狀態(tài)信息)發(fā)布,、線路信息及時(shí)更新以及系統(tǒng)在線升級等功能,具有實(shí)時(shí)性好,、安全性高,,可擴(kuò)展性強(qiáng)等特點(diǎn),有助于全面提升城市公交站的信息服務(wù)水平,。
1 數(shù)字公交站亭系統(tǒng)總體結(jié)構(gòu)及工作原理
該系統(tǒng)分為控制中心,、站亭終端通信模塊、站亭終端控制模塊,、站亭終端顯示模塊四個(gè)部分,,總體結(jié)構(gòu)框圖如圖1,各個(gè)部分組成和工作原理介紹如下:
(1) 控制中心:負(fù)責(zé)全市或者某區(qū)域公交車運(yùn)行情況的監(jiān)控,,包括:信息采集,、信息處理、公交實(shí)時(shí)調(diào)度,、站臺(tái)顯示控制等功能,。控制中心通過GPRS 與每個(gè)站亭終端建立無線通信,,實(shí)現(xiàn)對站亭終端的相關(guān)控制,。此外,控制中心還根據(jù)安裝在公交車輛上的GPS 定位車輛位置,,結(jié)合車輛速度和路況信息,,實(shí)時(shí)更新車輛到站時(shí)間預(yù)報(bào),。
(2) 站亭終端控制模塊:由核心芯片 ARM 和其外圍器件組成,通過GPRS 模塊接收控制中心下發(fā)的信息幀,,執(zhí)行由控制中心發(fā)出的控制命令,,并根據(jù)控制中心發(fā)出的顯示信息,完成字庫查找,,寫入由兩塊SRAM 組成的高速數(shù)據(jù)緩存,,兩塊SRAM 采用“乒乓邏輯”,即某一時(shí)刻ARM 芯片向一片SRAM 寫入顯示數(shù)據(jù),,另一片此時(shí)被CPLD 讀取,,二者輪流切換,保證數(shù)據(jù)的高速性和顯示的連續(xù)性,。為保證系統(tǒng)的安全性,,每個(gè)站亭終端都有一個(gè)密鑰,此密鑰在設(shè)備初始化的時(shí)候?qū)懭?,外部接口不能訪問到此密鑰信息,,ARM 根據(jù)此密鑰完成對接收信息幀的解密,如果遇到無法完成驗(yàn)證的信息幀,,系統(tǒng)認(rèn)為該信息幀被篡改,予以丟棄,。此外,,由于每個(gè)站亭終端需長時(shí)間連續(xù)工作,為了防止溫度過高使系統(tǒng)工作不正常甚至導(dǎo)致火災(zāi),,每個(gè)站亭終端裝有散熱裝置,,包括溫度傳感器和散熱風(fēng)扇, ARM 通過溫度傳感器獲取站亭終端內(nèi)部的溫度,,一旦發(fā)現(xiàn)溫度超過設(shè)定值,,立即啟動(dòng)散熱風(fēng)扇,保證系統(tǒng)能長期工作,。
(3) 站亭終端顯示模塊:由 CPLD,、LED 掃描驅(qū)動(dòng)電路、LED 點(diǎn)陣顯示屏組成,,CPLD讀取由兩塊SRAM 組成的高速緩存中的數(shù)據(jù),,完成對LED 顯示屏的掃描驅(qū)動(dòng)過程,其內(nèi)部固化的數(shù)字邏輯產(chǎn)生屏幕顯示控制信號(hào),,包括串行數(shù)據(jù)移位信號(hào),、數(shù)據(jù)鎖存信號(hào)、行掃描信號(hào)等,,LED 顯示屏行掃描電路和列數(shù)據(jù)電路根據(jù)這些信號(hào)驅(qū)動(dòng)LED顯示屏,。
圖 1 系統(tǒng)總體結(jié)構(gòu)框圖
2 系統(tǒng)硬件設(shè)計(jì)
2.1 站亭終端控制模塊
站亭終端控制模塊的核心芯片 ARM 向上通過GPRS 模塊連接控制中心,,并完成對控制中心下發(fā)的數(shù)據(jù)幀(包括控制命令和顯示信息) CA 驗(yàn)證;向下將需要顯示的漢字點(diǎn)陣信息寫入由兩塊SRAM 采用“乒乓邏輯”組成的高速數(shù)據(jù)緩存,,控制CPLD 對緩存中的數(shù)據(jù)準(zhǔn)確讀取,。GPRS 模塊選用BenQ M22 GPRS 無線模塊,該模塊可以實(shí)現(xiàn)自動(dòng)網(wǎng)絡(luò)連接和協(xié)議處理,,無需后臺(tái)計(jì)算機(jī)支持,,它與ARM 之間采用RS-232 串口通信標(biāo)準(zhǔn)實(shí)現(xiàn)通信,波特率為57.6k,。ARM 選用NXP 公司生產(chǎn)的LPC2378,,LPC2378 是ARM7TDMI-S 處理器,可在高達(dá)72MHz 的工作頻率下運(yùn)行,,芯片內(nèi)部具有UART,、硬件I2C、SPI 和定時(shí)器外圍部件[2],它豐富的片內(nèi)外資源,、快速的響應(yīng)性和較高的性價(jià)比都很適合用于高速串口通信和CA 認(rèn)證,。此外,基于安全考慮,,與ARM 相連的還有散熱裝置,,包括溫度傳感器和散熱風(fēng)扇, ARM通過溫度傳感器實(shí)時(shí)監(jiān)控站亭終端的溫度,,一旦發(fā)現(xiàn)溫度超過設(shè)定值,,立即啟動(dòng)散熱風(fēng)扇,保證系統(tǒng)能長時(shí)間不間斷工作,。站亭終端控制模塊還包括Flash,、JTAG 調(diào)試端口等。
2.2 站亭終端顯示模塊
站亭終端顯示模塊由 CPLD,、LED 掃描驅(qū)動(dòng)電路,、LED 顯示點(diǎn)陣組成。LED 顯示屏的掃描驅(qū)動(dòng)電路部分是由CPLD 來實(shí)現(xiàn)的,。 CPLD 讀取高速緩存中的數(shù)據(jù),,其內(nèi)部固化的數(shù)字邏輯產(chǎn)生屏幕顯示控制信號(hào),包括串行數(shù)據(jù)移位信號(hào),、數(shù)據(jù)鎖存信號(hào),、行掃描信號(hào)等,完成對LED 顯示屏的掃描驅(qū)動(dòng)過程,。CPLD 功能用硬件描述語言VHDL 編程實(shí)現(xiàn),從而可以大大縮短開發(fā)周期,使設(shè)計(jì)靈活,、修改方便,同時(shí)CPLD 高集成度、高速高可靠性,、開發(fā)周期短的特點(diǎn),大大改善了電路性能,。在此CPLD 選用ALTERA 公司MAXⅡ系列EPM1270 芯片,它有116 個(gè)I/O 口,,1270 個(gè)邏輯單元,,具有高性能,低功耗等性能特點(diǎn),,滿足要求,。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 CA 認(rèn)證
控制中心和站亭終端通過 GPRS 建立無線通信,為了保證數(shù)據(jù)在通信過程中的完整性,本設(shè)計(jì)采用基于hmac-sha1 算法的CA 消息認(rèn)證確保信息不受非法攻擊和篡改,。hmac-sha1是一種基于密鑰的報(bào)文完整性的驗(yàn)證方法,,其安全性是建立在Hash 算法基礎(chǔ)上的。它要求通信雙方共享密鑰,、約定算法,、對報(bào)文進(jìn)行Hash 運(yùn)算,形成固定長度的認(rèn)證碼(MAC),。通信雙方通過認(rèn)證碼的校驗(yàn)來確定報(bào)文的合法性,。這個(gè)算法廣泛用作加密、數(shù)字簽名,、報(bào)文驗(yàn)證等,,它能有效的抵抗窮舉攻擊,防止信息幀數(shù)據(jù)被任意地篡改和顛覆,最大限度地保證系統(tǒng)運(yùn)行的安全性。
基于 hmac-sha1 算法的CA 認(rèn)證步驟如下:
設(shè) K,、N 分別為控制中心和站亭終端約定的密鑰和同步序列號(hào),,B 表示數(shù)據(jù)塊的大小(位為單位),,K0 為B 長度的密鑰K。
發(fā)送方
Step1:利用密鑰K,,求出相應(yīng)的B 長度的K0,。
Step2:利用hmac-sha1 算法,生成消息摘要MAC 碼,。
Step3:N 加1,,并同時(shí)更新本地的N。
Step4:采用DES 數(shù)字簽名技術(shù),,對消息和消息摘要MAC 碼等進(jìn)行加密,,并發(fā)送給站亭終端。
接收方
Step5:先對接收到的數(shù)據(jù)運(yùn)用對應(yīng)的解密算法進(jìn)行解密,,再重復(fù)Step1 和Step2 的計(jì)算,,生成一個(gè)MAC 碼,如果和收到的消息摘要MAC 碼相符,則表明數(shù)據(jù)合法,。
Step6:如果收到的N 小于本地存儲(chǔ)的N,,則屬于重傳,可以進(jìn)行同步或丟棄,,否則表示數(shù)據(jù)是新鮮的,、合法的。
3.2 ARM 的軟件設(shè)計(jì)
ARM是站亭終端的核心芯片,,為了保證整個(gè)站亭終端系統(tǒng)運(yùn)行的速度和穩(wěn)定性,,它的軟件設(shè)計(jì)是基于嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ[5]進(jìn)行的,這樣可充分利用操作系統(tǒng)高效的任務(wù)調(diào)度算法,,并且使得程序的開發(fā)和擴(kuò)展變得更加方便,。其任務(wù)結(jié)構(gòu)如圖2。
圖 2 ARM 軟件總體結(jié)構(gòu)圖
ARM 上電或復(fù)位后,,首先進(jìn)行系統(tǒng)初始化,,包括操作系統(tǒng)的初始化和硬件中斷、定時(shí)器,、通信接口的初始化,,系統(tǒng)初始化之后,先后創(chuàng)建如下任務(wù):
Task_RS232Com:串口通信任務(wù),,完成與GPRS 模塊之間的通信,,接收控制中心下發(fā)的信息幀;
Task_LEDControl:LED 顯示控制任務(wù),,將需要顯示的數(shù)據(jù)(包括線路信息和實(shí)時(shí)車輛到站預(yù)報(bào)等)寫入由SRAM2 和SRAM3 組成的高速數(shù)據(jù)緩存,,并把寫入的地址傳送給CPLD,控制CPLD 讀取緩存中的數(shù)據(jù),;
Task_LineProcess:線路信息管理任務(wù),,保存公交線路信息的更新;
Task_TempProtect:溫度保護(hù)任務(wù),,定時(shí)讀取溫度傳感器提供的溫度值,,一旦發(fā)現(xiàn)超過設(shè)定值,系統(tǒng)立即開啟散熱風(fēng)扇進(jìn)行散熱,,確保系統(tǒng)正常工作,;
Task_update:系統(tǒng)更新任務(wù),完成系統(tǒng)在線升級,;
3.4 CPLD 的軟件設(shè)計(jì)
CPLD 通過產(chǎn)生串行數(shù)據(jù)移位信號(hào),、數(shù)據(jù)鎖存信號(hào)、行掃描信號(hào)等,,完成對LED 顯示屏的掃描驅(qū)動(dòng)過程,。它的軟件設(shè)計(jì)框圖如圖3,,主要包括以下幾個(gè)部分:(1)時(shí)鐘產(chǎn)生器:產(chǎn)生各種頻率的時(shí)鐘信號(hào);(2)讀切換電路:受ARM 的控制,,在兩塊SRAM 之間切換,,完成對高速數(shù)據(jù)緩存的讀取,;(3)讀地址產(chǎn)生器:使CPLD 能在由兩塊SRAM 組成的高速緩存中準(zhǔn)確尋址,;(4)掃描控制電路:根據(jù)高速緩存中讀取的數(shù)據(jù),產(chǎn)生相應(yīng)的掃描控制信號(hào),,通過LED 驅(qū)動(dòng)電路接口,,送入列數(shù)據(jù)電路和行掃描電路;(5)JTAG 口:提供在線調(diào)試的接口,。
圖 3 CPLD 軟件設(shè)計(jì)框圖
本文提出的基于 ARM7 和CPLD 的數(shù)字公交站亭系統(tǒng),,通過GPRS 模塊與控制中心實(shí)時(shí)通信并且采用CA 認(rèn)證保證系統(tǒng)運(yùn)行的實(shí)時(shí)性和安全性,能有效解決現(xiàn)有的公交站亭存在公交站牌提供的信息少,、無法提供車輛到站預(yù)報(bào),,增加線路或者修改線路信息麻煩等許多不足。該系統(tǒng)提供的實(shí)時(shí)車輛到站預(yù)報(bào)使乘客在公交車站候車區(qū)可通過站亭終端的LED 顯示屏查看所有等候車輛的線路信息和到站時(shí)間,,使他們做到心中有數(shù),,能夠有效緩解候車乘客等車的焦慮心情;同時(shí)公眾信息發(fā)布能及時(shí)提供包括天氣預(yù)報(bào),、交通路況和其它重要信息,,為乘客們的出行帶來方便。此外,,系統(tǒng)具有在線升級功能,,方便日后系統(tǒng)的更新和維護(hù)??傊?,數(shù)字公交站亭系統(tǒng)有助于全面提升城市公交車站的信息服務(wù)水平,在未來城市智能交通的建設(shè)當(dāng)中有著廣闊的應(yīng)用前景,。