基于ARM7和CPLD的數(shù)字公交站亭系統(tǒng)設(shè)計
2 系統(tǒng)硬件設(shè)計
2.1 站亭終端控制模塊
站亭終端控制模塊的核心芯片 ARM 向上通過GPRS 模塊連接控制中心,并完成對控制中心下發(fā)的數(shù)據(jù)幀(包括控制命令和顯示信息) CA 驗證;向下將需要顯示的漢字點陣信息寫入由兩塊SRAM 采用“乒乓邏輯”組成的高速數(shù)據(jù)緩存,控制CPLD 對緩存中的數(shù)據(jù)準(zhǔn)確讀取。GPRS 模塊選用BenQ M22 GPRS 無線模塊,該模塊可以實現(xiàn)自動網(wǎng)絡(luò)連接和協(xié)議處理,無需后臺計算機(jī)支持,它與ARM 之間采用RS-232 串口通信標(biāo)準(zhǔn)實現(xiàn)通信,波特率為57.6k。ARM 選用NXP 公司生產(chǎn)的LPC2378,LPC2378 是ARM7TDMI-S 處理器,可在高達(dá)72MHz 的工作頻率下運行,芯片內(nèi)部具有UART、硬件I2C、SPI 和定時器外圍部件[2],它豐富的片內(nèi)外資源、快速的響應(yīng)性和較高的性價比都很適合用于高速串口通信和CA 認(rèn)證。此外,基于安全考慮,與ARM 相連的還有散熱裝置,包括溫度傳感器和散熱風(fēng)扇, ARM通過溫度傳感器實時監(jiān)控站亭終端的溫度,一旦發(fā)現(xiàn)溫度超過設(shè)定值,立即啟動散熱風(fēng)扇,保證系統(tǒng)能長時間不間斷工作。站亭終端控制模塊還包括Flash、JTAG 調(diào)試端口等。
2.2 站亭終端顯示模塊
站亭終端顯示模塊由 CPLD、LED 掃描驅(qū)動電路、LED 顯示點陣組成。LED 顯示屏的掃描驅(qū)動電路部分是由CPLD 來實現(xiàn)的。 CPLD 讀取高速緩存中的數(shù)據(jù),其內(nèi)部固化的數(shù)字邏輯產(chǎn)生屏幕顯示控制信號,包括串行數(shù)據(jù)移位信號、數(shù)據(jù)鎖存信號、行掃描信號等,完成對LED 顯示屏的掃描驅(qū)動過程。CPLD 功能用硬件描述語言VHDL 編程實現(xiàn),從而可以大大縮短開發(fā)周期,使設(shè)計靈活、修改方便,同時CPLD 高集成度、高速高可靠性、開發(fā)周期短的特點,大大改善了電路性能。在此CPLD 選用ALTERA 公司MAXⅡ系列EPM1270 芯片,它有116 個I/O 口,1270 個邏輯單元,具有高性能,低功耗等性能特點,滿足要求。
3 系統(tǒng)軟件設(shè)計
3.1 CA 認(rèn)證
控制中心和站亭終端通過 GPRS 建立無線通信,為了保證數(shù)據(jù)在通信過程中的完整性,本設(shè)計采用基于hmac-sha1 算法的CA 消息認(rèn)證確保信息不受非法攻擊和篡改。hmac-sha1是一種基于密鑰的報文完整性的驗證方法,其安全性是建立在Hash 算法基礎(chǔ)上的。它要求通信雙方共享密鑰、約定算法、對報文進(jìn)行Hash 運算,形成固定長度的認(rèn)證碼(MAC)。通信雙方通過認(rèn)證碼的校驗來確定報文的合法性。這個算法廣泛用作加密、數(shù)字簽名、報文驗證等,它能有效的抵抗窮舉攻擊,防止信息幀數(shù)據(jù)被任意地篡改和顛覆,最大限度地保證系統(tǒng)運行的安全性。
基于 hmac-sha1 算法的CA 認(rèn)證步驟如下:
設(shè) K、N 分別為控制中心和站亭終端約定的密鑰和同步序列號,B 表示數(shù)據(jù)塊的大小(位為單位),K0 為B 長度的密鑰K。
發(fā)送方
Step1:利用密鑰K,求出相應(yīng)的B 長度的K0。
Step2:利用hmac-sha1 算法,生成消息摘要MAC 碼。
Step3:N 加1,并同時更新本地的N。
Step4:采用DES 數(shù)字簽名技術(shù),對消息和消息摘要MAC 碼等進(jìn)行加密,并發(fā)送給站亭終端。
接收方
Step5:先對接收到的數(shù)據(jù)運用對應(yīng)的解密算法進(jìn)行解密,再重復(fù)Step1 和Step2 的計算,生成一個MAC 碼,如果和收到的消息摘要MAC 碼相符,則表明數(shù)據(jù)合法。
Step6:如果收到的N 小于本地存儲的N,則屬于重傳,可以進(jìn)行同步或丟棄,否則表示數(shù)據(jù)是新鮮的、合法的。
3.2 ARM 的軟件設(shè)計
ARM是站亭終端的核心芯片,為了保證整個站亭終端系統(tǒng)運行的速度和穩(wěn)定性,它的軟件設(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)圖
評論