提出了一种基于ARM7 和CPLD 架构的数字公交站亭系统。系统通过GPRS 模块与公交控制中心实时通信,使用CA 认证保证通信的安全性,采用两块SRAM 组成具有“乒乓逻辑”的高速缓存确保显示数据的连续性,可实现同一站亭多条线路信息动态显示、实时车辆到站预报、公众信息发布、线路信息及时更新以及系统在线升级等功能,具有实时性好、安全性高,可扩展性强等特点。
针对现有印刷公交站亭提供信息少、无法提供车辆到站预报、增加线路或者修改线路信息麻烦等不足,本文提出了一种新数字公交站亭系统。该系统基于ARM7 和CPLD 架构,通过GPRS 与公交控制中心通信,采用CA 认证保证通信的安全性,能实现实时车辆到站预报、公众信息(如天气预报、重要新闻、交通路况、紧急状态信息)发布、线路信息及时更新以及系统在线升级等功能,具有实时性好、安全性高,可扩展性强等特点,有助于全面提升城市公交站的信息服务水平。
1 数字公交站亭系统总体结构及工作原理
该系统分为控制中心、站亭终端通信模块、站亭终端控制模块、站亭终端显示模块四个部分,总体结构框图如图1,各个部分组成和工作原理介绍如下:
(1) 控制中心:负责全市或者某区域公交车运行情况的监控,包括:信息采集、信息处理、公交实时调度、站台显示控制等功能。控制中心通过GPRS 与每个站亭终端建立无线通信,实现对站亭终端的相关控制。此外,控制中心还根据安装在公交车辆上的GPS 定位车辆位置,结合车辆速度和路况信息,实时更新车辆到站时间预报。
(2) 站亭终端控制模块:由核心芯片 ARM 和其外围器件组成,通过GPRS 模块接收控制中心下发的信息帧,执行由控制中心发出的控制命令,并根据控制中心发出的显示信息,完成字库查找,写入由两块SRAM 组成的高速数据缓存,两块SRAM 采用“乒乓逻辑”,即某一时刻ARM 芯片向一片SRAM 写入显示数据,另一片此时被CPLD 读取,二者轮流切换,保证数据的高速性和显示的连续性。为保证系统的安全性,每个站亭终端都有一个密钥,此密钥在设备初始化的时候写入,外部接口不能访问到此密钥信息,ARM 根据此密钥完成对接收信息帧的解密,如果遇到无法完成验证的信息帧,系统认为该信息帧被篡改,予以丢弃。此外,由于每个站亭终端需长时间连续工作,为了防止温度过高使系统工作不正常甚至导致火灾,每个站亭终端装有散热装置,包括温度传感器和散热风扇, ARM 通过温度传感器获取站亭终端内部的温度,一旦发现温度超过设定值,立即启动散热风扇,保证系统能长期工作。
(3) 站亭终端显示模块:由 CPLD、LED 扫描驱动电路、LED 点阵显示屏组成,CPLD读取由两块SRAM 组成的高速缓存中的数据,完成对LED 显示屏的扫描驱动过程,其内部固化的数字逻辑产生屏幕显示控制信号,包括串行数据移位信号、数据锁存信号、行扫描信号等,LED 显示屏行扫描电路和列数据电路根据这些信号驱动LED显示屏。
图 1 系统总体结构框图
2 系统硬件设计
2.1 站亭终端控制模块
站亭终端控制模块的核心芯片 ARM 向上通过GPRS 模块连接控制中心,并完成对控制中心下发的数据帧(包括控制命令和显示信息) CA 验证;向下将需要显示的汉字点阵信息写入由两块SRAM 采用“乒乓逻辑”组成的高速数据缓存,控制CPLD 对缓存中的数据准确读取。GPRS 模块选用BenQ M22 GPRS 无线模块,该模块可以实现自动网络连接和协议处理,无需后台计算机支持,它与ARM 之间采用RS-232 串口通信标准实现通信,波特率为57.6k。ARM 选用NXP 公司生产的LPC2378,LPC2378 是ARM7TDMI-S 处理器,可在高达72MHz 的工作频率下运行,芯片内部具有UART、硬件I2C、SPI 和定时器外围部件[2],它丰富的片内外资源、快速的响应性和较高的性价比都很适合用于高速串口通信和CA 认证。此外,基于安全考虑,与ARM 相连的还有散热装置,包括温度传感器和散热风扇, ARM通过温度传感器实时监控站亭终端的温度,一旦发现温度超过设定值,立即启动散热风扇,保证系统能长时间不间断工作。站亭终端控制模块还包括Flash、JTAG 调试端口等。
2.2 站亭终端显示模块
3 系统软件设计
3.1 CA 认证
控制中心和站亭终端通过 GPRS 建立无线通信,为了保证数据在通信过程中的完整性,本设计采用基于hmac-sha1 算法的CA 消息认证确保信息不受非法攻击和篡改。hmac-sha1是一种基于密钥的报文完整性的验证方法,其安全性是建立在Hash 算法基础上的。它要求通信双方共享密钥、约定算法、对报文进行Hash 运算,形成固定长度的认证码(MAC)。通信双方通过认证码的校验来确定报文的合法性。这个算法广泛用作加密、数字签名、报文验证等,它能有效的抵抗穷举攻击,防止信息帧数据被任意地篡改和颠覆,最大限度地保证系统运行的安全性。
基于 hmac-sha1 算法的CA 认证步骤如下:
设 K、N 分别为控制中心和站亭终端约定的密钥和同步序列号,B 表示数据块的大小(位为单位),K0 为B 长度的密钥K。
发送方
Step1:利用密钥K,求出相应的B 长度的K0。
Step2:利用hmac-sha1 算法,生成消息摘要MAC 码。
Step3:N 加1,并同时更新本地的N。
Step4:采用DES 数字签名技术,对消息和消息摘要MAC 码等进行加密,并发送给站亭终端。
接收方
Step5:先对接收到的数据运用对应的解密算法进行解密,再重复Step1 和Step2 的计算,生成一个MAC 码,如果和收到的消息摘要MAC 码相符,则表明数据合法。
Step6:如果收到的N 小于本地存储的N,则属于重传,可以进行同步或丢弃,否则表示数据是新鲜的、合法的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)