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