摘要:提出了一种基于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 站亭终端显示模块
站亭终端显示模块由 CPLD、LED 扫描驱动电路、LED 显示点阵组成。LED 显示屏的扫描驱动电路部分是由CPLD 来实现的。 CPLD 读取高速缓存中的数据,其内部固化的数字逻辑产生屏幕显示控制信号,包括串行数据移位信号、数据锁存信号、行扫描信号等,完成对LED 显示屏的扫描驱动过程。CPLD 功能用硬件描述语言VHDL 编程实现,从而可以大大缩短开发周期,使设计灵活、修改方便,同时CPLD 高集成度、高速高可靠性、开发周期短的特点,大大改善了电路性能。在此CPLD 选用ALTERA 公司MAXⅡ系列EPM1270 芯片,它有116 个I/O 口,1270 个逻辑单元,具有高性能,低功耗等性能特点,满足要求。
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,则属于重传,可以进行同步或丢弃,否则表示数据是新鲜的、合法的。
3.2 ARM 的软件设计
ARM是站亭终端的核心芯片,为了保证整个站亭终端系统运行的速度和稳定性,它的软件设计是基于嵌入式实时操作系统μC/OS-Ⅱ[5]进行的,这样可充分利用操作系统高效的任务调度算法,并且使得程序的开发和扩展变得更加方便。其任务结构如图2。
图 2 ARM 软件总体结构图
ARM 上电或复位后,首先进行系统初始化,包括操作系统的初始化和硬件中断、定时器、通信接口的初始化,系统初始化之后,先后创建如下任务:
Task_RS232Com:串口通信任务,完成与GPRS 模块之间的通信,接收控制中心下发的信息帧;
Task_LEDControl:LED 显示控制任务,将需要显示的数据(包括线路信息和实时车辆到站预报等)写入由SRAM2 和SRAM3 组成的高速数据缓存,并把写入的地址传送给CPLD,控制CPLD 读取缓存中的数据;
Task_LineProcess:线路信息管理任务,保存公交线路信息的更新;
Task_TempProtect:温度保护任务,定时读取温度传感器提供的温度值,一旦发现超过设定值,系统立即开启散热风扇进行散热,确保系统正常工作;
Task_update:系统更新任务,完成系统在线升级;
3.4 CPLD 的软件设计
CPLD 通过产生串行数据移位信号、数据锁存信号、行扫描信号等,完成对LED 显示屏的扫描驱动过程。它的软件设计框图如图3,主要包括以下几个部分:(1)时钟产生器:产生各种频率的时钟信号;(2)读切换电路:受ARM 的控制,在两块SRAM 之间切换,完成对高速数据缓存的读取;(3)读地址产生器:使CPLD 能在由两块SRAM 组成的高速缓存中准确寻址;(4)扫描控制电路:根据高速缓存中读取的数据,产生相应的扫描控制信号,通过LED 驱动电路接口,送入列数据电路和行扫描电路;(5)JTAG 口:提供在线调试的接口。
图 3 CPLD 软件设计框图
本文提出的基于 ARM7 和CPLD 的数字公交站亭系统,通过GPRS 模块与控制中心实时通信并且采用CA 认证保证系统运行的实时性和安全性,能有效解决现有的公交站亭存在公交站牌提供的信息少、无法提供车辆到站预报,增加线路或者修改线路信息麻烦等许多不足。该系统提供的实时车辆到站预报使乘客在公交车站候车区可通过站亭终端的LED 显示屏查看所有等候车辆的线路信息和到站时间,使他们做到心中有数,能够有效缓解候车乘客等车的焦虑心情;同时公众信息发布能及时提供包括天气预报、交通路况和其它重要信息,为乘客们的出行带来方便。此外,系统具有在线升级功能,方便日后系统的更新和维护。总之,数字公交站亭系统有助于全面提升城市公交车站的信息服务水平,在未来城市智能交通的建设当中有着广阔的应用前景。