朱 昊,黄嘉乐,胡 静,宋铁成
(东南大学信息科学与工程学院,江苏南京210096)
随着科学技术的进步和公共交通规模的扩大,城市公共交通系统智能化已成为趋势[1] 。智能公共交通物联网集成了电子传感、数据通讯以及计算机处理等技术,建立起一种实时、准确和高效的综合运输管理系统。射频自动识别(RFID)技术是智能公共交通物联网中的一项重要传感技术。RFID标签中存储着车辆与用户信息,物联网管控终端通过RFID读卡器获取这些信息,并通过数据通信网络传输到后台服务器,实现物品的识别与信息的传递。
本文首先给出了基于RFID的智能公共交通物联网的总体方案,重点论述了其中管控终端的实现方案,并介绍了管控终端软、硬件的设计与实现,最后根据实际应用情况进行总结与展望。
图1所示的智能公共交通物联网系统包括管控终端,中控网关以及后台服务器3个组成部分。通过对中控网关的合理部署,可以有效地采集周边各类公共交通工具的信息与用户(乘客)信息。管控终端通过RFID读卡器,可以进行信息采集和用户卡扣费等工作,并将数据发送给中控网关。中控网关对各管控终端的数据进行汇总,组包后上传到后台服务器进行处理。用户(乘客)可以借助本系统,通过智能公交卡方便地搭乘各类公共交通工具或是租借公共自行车,实现“公交一卡通”,也可以通过互联网对用户卡信息进行查询,或是办理卡片业务。公共交通运营部门的管理员可以通过网络实时获取各管控终端的信息,并执行相应的车辆调度与控制策略。
图1 智能公共交通物联网系统框图
系统的实现需要考虑如下几个问题:
(1)系统各组成部分的功能要求;
(2)管控终端,中控网关以及后台服务器相互之间的接入控制协议;
(3)如何规划基于RFID的智能卡,实现安全可靠的“公交一卡通”。
本文重点论述了其中与管控终端相关的部分,下面将分别介绍管控终端的功能要求,管控终端的接入控制协议以及系统的智能卡方案。
管控终端是智能公共交通物联网系统中重要的组成部分,其主要功能要求包括信息采集与辅助管控两个部分,如图2所示。
图2 管控终端功能框图
管控终端采集的信息主要包括车辆信息以及用户(乘客)信息。其中车辆信息固定储存在车卡中,包括车辆编号、类型等内容,是车辆在系统中的身份标识,管控终端通过读取车卡来进行车辆识别。用户(乘客)信息存储在用户卡中,包括用户账号、身份、金额等信息,管控终端通过读取用户卡来获取用户(乘客)信息。对于公交、地铁、出租车系统,管控终端还可以进行车辆乘客数的辅助统计。由中控网关将各管控终端的数据添加上位置、时间等信息后发送到后台进行处理。
此外,管控终端具备远程升级程序/费率、用户卡扣费、硬件自检和人机交互等功能模块,可以有效地辅助公共交通系统运营者进行系统的管理与控制。系统管理员可以上传管控终端的应用程序和费率表,对系统进行远程升级。管控终端可以通过白名单进行用户卡有效性的验证,并根据费率进行扣费。管控终端可以自我检测各模块硬件是否存在故障。人机交互模块能够把交易信息有效地传达给用户/乘客,车载的管控终端还可以通过人机交互模块向司机传达由后台发布的信息。
为了使管控终端能够适用于不同的应用环境,本文提出了两种通信连接方式:①在各终端位置保持固定的应用环境下,以CAN总线的方式与中控网关相连,可以实现低成本,长距离,高速率的可靠通信,这类固定终端可以应用于公共自行车系统中的自行车锁止器[2]。②在终端可以移动,同时不固定接入的一个中控网关的应用环境下,采用WiFi无线连接方式可以有效地实现数据传输,这类移动终端可以应用于各类车辆信息采集系统[3]。下面将分别介绍固定终端与移动终端的接入控制协议。
(1)固定终端的接入控制协议
系统的CAN总线中采用CAN2.0B协议中的扩展数据帧来进行数据传输,每帧包含29位标识符,以及8字节的数据。CAN通信帧结构如图3所示。在图中,流水号用于通信帧的标号,每次通信后递增。帧编号用于区分同一条命令下的不同帧,取值为0-15,故一条命令最长为128字节。命令字为命令的标识。终端ID用于表示每个终端的唯一身份号。类型标识用于区分终端与网关。
图3 CAN通信帧结构
在CAN协议里,发送者以广播的形式把报文发送给所有的接收者。节点在接收报文时根据标识符的值决定软件是否需要该报文,如果不需要,报文就被丢弃且无需软件的干预。终端的MCU包含14个位宽可变的、可配置的过滤器组,以便只接收那些软件需要的报文,硬件过滤的做法节省了CPU开销。
(2)移动终端的接入控制协议
对于移动终端,采用Wi-Fi的方式接入中控网关,采用IEEE802.11g协议,在应用层采用TCP方式进行数据收发。与固定终端采用的CAN协议兼容,在数据段的前4字节存放标示符。不同于固定终端,每次移动终端接入系统需要一个认证过程,由中控进行动态的ID分配,接入流程如图4所示。
图4 移动终端的接入流程
随着RFID技术的发展与普及,为实现安全可靠的“公交一卡通”,目前市面上广泛使用的非接触式逻辑加密卡,其安全问题日益暴露,已经难以满足更高的安全性和更复杂的多应用的需求。本系统采用的三种卡片简要说明如下。
(1)逻辑加密卡:主要是由EEPROM存储单元阵列和密码控制逻辑单元所构成。由于采用密码控制逻辑来控制对EEPROM存储器的访问和改写。
(2)CPU卡:也称智能卡,卡内的集成电路中带有微处理器CPU、存储单元(包括随机存储器RAM、程序存储器ROM、用户数据存储器EEPROM)以及芯片操作系统COS。任何对卡片数据的访问都要通过卡内的CPU来执行,安全性能大大提升。
(3)PSAM卡:一种特殊的CPU卡,主要用于商用POS和网点终端等设备上,具有安全控制管理功能,支持多级发卡机制,适用于多应用的环境。任何对CPU卡的访问都必须借助PSAM来进行认证,从而识别仿冒的卡片;反之,用户CPU卡也可以对终端传来的PSAM模块信息进行认证,从而识别仿冒的终端读卡器[4-6]。
本系统将传统的逻辑加密卡作为车辆信息卡,用于存储车辆基本信息,将安全性更高的CPU卡来作为用户卡,通过特定的PSAM卡来生成卡片的密钥。每个系统具有一个系统级密钥,这个密钥存放在指定类型的PSAM卡中,并且不能直接进行访问。每张用户卡具有唯一的卡片序列号,将序列号作为分散因子,通过对系统级密钥进行分散,使得每张用户卡的都具有一个密钥。下面将简介卡片密钥的生成与验证过程。
记D(K)[X] 表示以X作为分散因子,K作为密钥进行分散运算;C(K)[X] 表示以X作为加密数据,K作为密钥进行加密运算。设系统级密钥为S,用户卡的唯一序列号为U,则分散后写入用户卡的密钥K=D(S)[U] 。
对于逻辑加密卡,管控终端在获取了卡片序列号U后,直接进行分散运算得到密钥K,就可以对卡片进行访问了。对于CPU卡,管控终端在获取了卡片序列号U后,还必须向卡片的CPU索取一个随机数R,然后进行运算得到K=C(D(S)[U] )[R] ,然后就可以用K对卡片进行访问。CPU卡会根据卡内存储的密钥D(S)[U] ,以及输出的随机数R进行加密计算,并将计算结果与管控终端传输来的密钥K进行比对,从而判断是否对此次访问进行授权。可以看出,CPU卡密钥的破解难度远大于逻辑加密卡,因此安全性大大提高。由于CPU卡以及PSAM卡都支持多应用,公共交通系统中的运营商可以在其中建立各自的应用文件,并采用统一的COS(片内操作系统)命令进行充值和扣费操作,“公交一卡通”成为可能。
管控终端的控制器采用Cotex-M3架构的STM32微控制器,外设包括CAN控制器、红外感应模块、RFID读卡器、无线收发器设备与可选外设。红外感应器用于感应用户的刷卡动作,用于唤醒系统。读卡器用于识别用户标签(管理员卡和用户卡等),从而进行信息的采集。管控终端采用CAN总线或WiFi方式接入中控网关,实现后台与管控终端之间的信息交互。其硬件功能框图如图5所示。
图5 管控终端的硬件框图
(1)读卡器模块
RFID读卡器采用NXP公司的RC522芯片进行设计,可以支持与所有符合ISO14443A协议的RFID标签的通信。同时RC522芯片可以关闭天线,进入掉电模式,大大降低了功耗。其天线电路采用NXP公司的参考设计,接口部分采用SPI总线与MCU进行连接。
(2)红外模块
与采用读卡器天线中断来唤醒系统相比,采用红外进行唤醒的方式大大降低了系统待机状态时的静态功耗。本系统中的红外模块采用脉冲宽度调制(PWM)方式来控制发射管,接收管先后通过一个有源高通滤波器,与一个包络检波器,最后经过一个电压比较器后输出TTL电平,如图6所示。与一般的反射式红外传感器相比,这种红外电路通过脉冲宽度调制的方式,在不降低感应距离的条件下,大大降低了传感器的工作电流。同时,电路通过调制解调的方式大大降低了其他红外光的干扰,特别是避免了太阳光的干扰,使得系统可以在强光环境下稳定工作。
图6 红外模块电路框图
(3)PSAM模块
由于STM32控制器内部自带了智能卡控制器,大大简化了设计,所以在外部只需要一个电平转换电路,进行MCU电平与ISO7816电平之间的转换。
(4)CAN控制器
CAN总线收发器采用TI公司SN65HVD1040芯片进行设计,支持最高1Mbps的传输速率。这款芯片具有总线唤醒的功能,在对系统整体功耗的降低起到了很大的作用。为实现稳定的通信功能,更好地对抗总线上的噪声,使用了磁耦隔离芯片消除了总线与系统的串扰。同时,总线上采用了防雷的设计,有效防止雷击对总线的电流浪涌冲击。
(5)无线收发器
管控终端可以通过多种方式接入中控网关,本系统选择WiFi作为接入方式。收发器采用模块化设计,收发模块通过串口线与管控终端相连接。
(6)电源控制模块
系统采用6-12V直流电源进行供电,后级用DC-DC稳压电源芯片NCP4629和TC1262分别提供5V和3.3V的电源,具有转化效率高,输出纹波小的特点。为适应户外和车载环境,电源控制模块中还加入了滤波抑制电路,起到防雷和防止电流冲击的作用。
(7)其他外设
系统提供可选的人机交互模块,主要包括LED指示灯,LCD显示器,以及语音模块。可以根据实际需要灵活的选择。
管控终端的软件包括引导程序(bootloader)与应用程序(application)两部分,分别存放在指定的物理地址中,表1说明程序存储空间的分配情况。两部分程序之间可以通过FLASH中的数据区进行数据交换,并可相互跳转。
表1 程序存储空间的分配
引导程序是系统上电后最先开始执行的内容,其主要功能包括维护系统软件版本,远程升级,以及校验应用程序等,其软件流程如图7所示。
应用程序软件设计采用分层设计模式,将整个系统的程序自上而下划分为应用层(Application Layer),操作系统抽象层(Operate System Abstraction Layer),以及硬件抽象层(Hardware Abstraction Layer)3个子层。
图7 引导程序的软件流程
(1)硬件抽象层
该层作用是将操作系统的其余部分表示为抽象的硬件设备,设备能够以独立于机器的接口被调用,在该层中,将包括管控终端系统中全部的底层硬件驱动程序。
(2)操作系统抽象层
操作系统抽象层的软件流程如图8所示。
图8 操作系统抽象层软件流程
该层是以实现多任务为核心的系统资源管理机制。与标准的操作系统不同,本系统中任务的执行都是顺序执行的。各个底层驱动模块的中断将触发相应的事件,由系统抽象层上报给应用层程序,并做相应的处理。因此,操作系统抽象层并不能称之为真正意义上的操作系统。
(3)应用层
该层是管控终端系统软件的核心部分,管控终端的全部功能都是在这里进行设计与实现的。应用层程序的核心是事件处理模块,该模块根据不同事件,调用相应的处理函数。各个事件的处理过程在其对应的功能子模块中进行设计。
本文给出了基于RFID的智能公共交通物联网的总体方案,重点介绍了其中管控终端的设计与实现,描述了组成系统的各个功能模块。目前已经研制成功完整的系统,并率先在公共自行车系统中投入测试。测试表明,该系统可以有效地采集系统车辆与用户的信息,并且安全可靠地管理用户账户与卡片。用户可以通过一张RFID智能卡,便捷地进行充值和借还车。该系统为车辆管理者和系统运营商提供大量有效信息,有助于提高资源使用率。本系统可以向城市公交车、出租车和地铁等系统推广,具有广阔的应用前景。
[1] Zhang,Fei.The current situation and development thinking of the intelligent transportation system in China[C] .2010 International Conference on Mechanic Automation and Control Engineering,MACE2010,2010:2826-2829.
[2] 谭宁.杭州公共自行车租用系统人机分析[J] .合肥:人类工效学,2011,17(3):57-59.
[3] 李晓蜂,刘佳,宋铁成.基于GPS/WLAN的车辆信息采集系统[J] .南京:东南大学学报(自然科学版),2007,37(6):954-958.
[4] 胡晨.基于SEP4020的安全金融终端的设计与实现[D] .南京:东南大学,2010.
[5] 陶维青,黄俊祥,曹军,汪芳,张孟.ESAM安全模块在预付费电表中的应用研究[J] .哈尔滨:电测与仪表,2010,47(539):58-62.
[6] 方杰.面向移动应用的RFID终端平台的研究与设计[D] .广州:广东工业大学,2011.