论文部分内容阅读
欧美、日本在上个世纪九十年代已经开始研发电子收费系统。我国在21世纪初开始研究专用短程通信协议,并在2007年正式发布,它统一了RSU与OBU之间的通信规则。国内很多研究单位主要致力于三方面的开发:RSU设备、OBU设备、DSRC协议开发。本文按照国标GBT20851,对DSRC协议进行了软件实现。目的是实现协议功能、提高交易效率、缩减通信时间。本文基于arm+linux的平台。分别对物理层、数据链路层、应用层及设备应用层进行了设计与实现。物理层主要由射频芯片BK5823实现的,这里BK5823的驱动以模块的形式加载到linux内核中。由于DSRC协议是不对称协议,即实现通信的两端软件不一致。数据链路层在RSU与OBU的实现方式不一样。RSU中通过一个状态机实现,这个状态机有3个状态,十几种事件。OBU端的状态机只有1种状态,它是一个被动设备。数据链路层的设计参考了停止等待协议。在数据链路层中,利用了hash表作为存储帧的数据结构,同时利用linux的众多机制(异步通知、内存分配、中断上下部等)保证了通信的实时性。应用层中T-KE设计最主要包括编码解码、分段并段等功能。应用层使用ASN.1抽象语言描述的,这里使用eclipse插件来作为ASN.1编译器。这样可以将ASN.1结构映射为C语言结构体。利用PER编解码库实现C语言到比特流的转换。分段、并段的功能设计思想参考了TCPIP协议中的分片、重组的思想。I-KE层设计了两个状态机。RSU端四个状态的状态机完成了I-KE层的功能,而OBU端状态机也有三种状态。这部分完成了DSRC协议“握手”的过程。应用层实现了B-KE的接口功能。设备应用层主要是设计ICC卡和PSAM模块。这里使用握奇公司的TimeCOS卡作为ICC卡和PSAM。使用ISO7816协议对TimeCOS卡进行操作。建立了ETC的应用文件夹、实现了安全传输功能。利用访问许可、信息鉴别、密文传输三种方式实现了安全传输功能。最后对每个模块进行了测试。分别对RSU模块、OBU模块、安全传输模块等进行了测试。模块测试时,测试用例分别使用正常帧和非正常帧进行测试,得出结果与预期一致。测试结果表明,此协议软件实现性能良好,符合DSRC协议的功能。