2. 中交第一公路勘察设计研究院有限公司, 西安 710065
2. CCCC First Highway Consultants Co. Ltd., Xi’an 710065, China
通信技术与智能交通系统的迅速发展使得车联网(Internet of vehicles, IoV)成为目前的研究热点. 车联网能够借助新一代通信技术, 使得车与车(vehicle to vehicle, V2V)、车与人(vehicle to pedestrian, V2P)、车与路边设施(vehicle to infrastructure, V2I)能够实现全方位动态信息实时交互, 即实现V2X通信(vehicle to everything, V2X)[1], 进一步提升汽车智能化水平, 实现智能、高效、安全的智能运输系统. 车联网环境下, 汽车在分享自身信息的同时也接收其他汽车的信息及路况信息, 从而增强自身的环境感知能力达到协同控制, 对驾驶员提前预警潜在的危险, 减少交通事故、交通堵塞的发生.
目前, 行业内对于V2X通信技术路线包括两条, 一条是基于IEEE1609系列标准的车载环境无线接入(wireless access in vehicular environment, WAVE)技术, 是一种由IEEE制定的专用于车联网环境中的无线接入技术. WAVE理论研究发展较早, 目前在欧美、日本积极开展了相关的技术研究以及测试工作. 另一条技术路线是由我国主导推动的基于3GPP R14的长期演进车对外界信息交互技术LTE-V2X (long term evolution-vehicle to everything)[2, 3]. 2017年3月, 3GPP完成了Release 14版本的LTE-V2X标准化[4], 其作为面向车路协同的通信综合解决方案, 在高速移动环境中实现低时延、高可靠、高速率、安全的通信, 满足车联网的多种应用. 而目前在国内, 正处于LTE-V2X相关标准制定阶段, 主要以大唐、华为、高通等通信产业链企业、车企和电信运营商为主的产业阵营推进发展[5].
LTE-V2X对LTE蜂窝网络环境下的车辆主动安全应用进行了通信优化, 采用蜂窝方式与直通方式相结合的方式, 支持包括V2I、V2V、V2P等各类场景应用. 蜂窝式利用基站作为集中式的控制中心和数据信息转发中心, 来完成集中式调度、拥塞控制和干扰协调[6], 用户设备通过上行链路(uplink, UL)向基站传输V2X消息, 基站再通过下行链路(downlink, DL)将V2X消息传输给其他用户设备, 用户设备与基站之间通过Uu接口通信. 直通式加入了副链路(sidelink, SL)的概念, 使得车辆消息不需要经过基站的转发, 通过设备到设备通信接口PC5完成车车之间的直接通信. LTE-V2X中, 可以设置普通路侧单元(road side unit, RSU)和基站类型的RSU, 两种RSU与用户设备通信所使用的接口不同, 从而进一步增强对各类V2X操作场景的支持. 如图1为LTE-V2X的应用场景, 在该场景中, 基站类型RSU发挥中继功能作用, 通过基站转发无线蜂窝数据, 在车辆间进行数据交换, 这种方式采用LTE-V2X-Cell相关协议, 而当需要车车直接进行通信时, 采用LTE-V2X-Direct相关协议完成数据交换.
国内对于车联网研究起步相对较晚, 但发展势头迅猛. 为实现车联网通信, 行业内一些相关的车企及终端设备厂商也纷纷推出各自支持国标协议栈的V2X通信终端, 如万集科技、东软、星云互联以及高新兴等. 然而由于在技术标准中相关规定较泛化, 导致不同企业在开发过程中对标准的理解有偏差, 出现定位信息不准确、通信设备底层硬件不兼容、消息帧结构不一致、通信性能不稳定等问题[7], 产品体系结构间存在差异, 因此目前还不能实现全面互联互通, V2X通信产品的商业化规模应用仍需努力推进. 国内一些高校和科研机构也在车联网方面展开研究, 这些研究主要集中在理论分析与模型仿真中[8], 也有部分试验场内部测试[9]与车联网终端设计[10, 11], 但都缺少LTE-V2X协议栈的设计与实现以及针对协议栈的通信测试. 因此, 设计一款满足协议要求、实现可靠通信的LTE-V2X协议栈对于推进车联网设备成熟落地具有重要意义.
1 LTE-V2X协议栈总体设计
LTE-V2X协议栈是实现V2X通信的前提, 采集到的车辆状态信息和位置信息由协议栈进行编码封装, 并通过不同的空中接口发送到其他车辆设备、路侧设备或基站. 根据3GPP发布的TS22.185[12]、TR 36.885[13]以及中国IMT-2020(5G)推进组[14]对LTE-V2X协议栈的性能要求, LTE-V2X协议栈应满足的主要性能要求如表1所示.
协议栈总体分层如图2所示, LTE-V2X协议栈应该包括应用层、网络层、数据链路层和物理层. 相比于WAVE系统协议栈[15], LTE-V2X协议栈网络层有着明显变化. 在WAVE中无线资源按照信道划分来分别提供不同的业务, 而在LTE系统中, 无线资源都在资源池中, 发送消息时选取空闲的资源块进行发送, 以此提高资源的利用率[16]. 因此LTE系统没有信道概念, 即没有WAVE系统中信道切换相关内容, 而是增添适配层对协议栈原语进行适配.
其中, 协议栈各层的功能为:
1) 应用层. 主要包括用户应用和消息层, 消息层即不同的应用程序中所使用的短程无线接入专用通信消息的数据帧和数据元素的集合, 向上支持用户应用, 向下对接网络层.
2) 网络层. 网络层由数据子层和管理子层两部分构成. 数据子层传输应用间的数据流, 以及不同管理实体间或管理实体与用户应用间的数据流. 管理子层主要实现系统配置与维护功能.
2 硬件平台设计通过对协议栈总体功能以及协议栈各层进行分析, 协议栈硬件平台设计应包含两部分: 搭载协议栈的主控平台和通信模组. 其中, 网络层以上的相关协议在主控平台运行, 网络层以下的数据发送与传输由通信模组实现.
考虑到车联网主控平台需要具备优异处理能力以及低功耗低成本等特性, 本文采用恩智浦处理器平台IMX6QP搭建协议栈主控平台. 该处理器是基于Cortex A9架构的4核ARM芯片, 运行频率可达1.2 GHz, 性能优越, 并且该平台提供高清多媒体接口(high definition multimedia interface, HDMI)、全球定位系统(global positioning system, GPS)接口、千兆以太网接口及用于汽车应用的车辆控制器局域网(controller area network, CAN)接口等, 满足扩展需求, 适合汽车应用开发.
通信模组采用中兴通讯的ZM8350通信模组, 该模组支持5.9 GHz频段的单PC5接口, 可驱动V2V, V2I以及V2P的信息交换, 并支持高精度定位. 定位模块采用北斗接收机, 可接收北斗系统和GPS系统的定位数据. 设备整体图与具体硬件组成如图3所示, 其中通信模组与主控平台固定置于设备内部.
3 LTE-V2X协议栈设计
V2X消息构造以及消息内容填充是协议栈需要实现的主要功能. 上层应用通过协议栈接口对协议栈进行消息注入与传出, 通过创建本地套接字方式进行通信. 图4为协议栈数据流, 其中车联网相关信息由传感器采集, 在消息层创建消息帧并填充, 消息帧编码后送入网络层, 网络层根据消息类型对消息帧进行封装并送入接入层, 接入层对数据包封装后交给物理层由相应的空中接口发送. 在接收端, 接入层在指定频段接收到数据包后先进行筛选, 拆封帧头送入网络层, 网络层根据数据子层封装的帧头再次筛选, 剥离数据子层帧头送入应用层解码, 最终将信息交给上层应用.
协议栈各层之间均为模块化设计, 每一层开发完成后都进行独立封装, 每层暴露相关接口与其他层进行交互.
3.1 协议栈网络层设计协议栈网络层是协议栈核心内容, 包括数据子层和管理子层两部分, 图5为管理子层与数据子层主要操作流程. 管理子层实现对消息订阅者以及提供者的管理, 并对消息订阅者及提供者发出的请求进行处理, 生成专用业务公告(dedicated service advertisement, DSA)消息. 数据子层是协议栈的关键协议, 负责对应用层传输的消息进行封装, 并对MAC层的消息进行解封, 再按照消息中帧头规定的参数对数据进行传递, 最终形成专用短消息(dedicated short message, DSM). 数据子层的设计中, 有关接入层的相关接口由通信模组提供. 管理子层和数据子层处于并列状态, 管理子层和数据子层的具体设计需根据各自功能来完成.
3.1.1 管理子层设计
管理子层说明如何获取消息传输时需要的参数, 其中专用管理实体(dedicated management entity, DME)负责不同通信实体之间的调度, 包含4项功能: 应用注册、根据应用要求发送或接收DSA、管理信息库(management information base, MIB)配置与维护, 各项功能的具体设计如下.
1) 应用注册
上层应用需先在DME处注册成为一个用户应用后, 才可以使得DME管理DSM.
2) 短消息服务管理
车联网通信中, 上层应用需要发送DSM到其他设备, DME接受请求后, 在管理信息库中生成对应的服务请求条目, 上层应用将相关数据传入数据子层, 由专用短消息协议(dedicated short message protocol, DSMP)创建DSM帧头, 适配层创建适配层帧头. 在接收端接收到DSM时, DME识别DSM中的应用标识, 筛选收到的DSM是否为上层应用所感兴趣的, 从而决定是否采用该DSM帧.
3) 业务公告服务管理
DSA用于向车辆用户广播可选服务信息, 发送端上层应用向DME发起服务请求, DME在管理信息库生成请求条目. 由于DME不具备直接向接入层传递数据帧的能力, DME根据请求生成DSA并向DSMP发起请求, 之后在数据子层由DSMP进行下一步封装, DSA帧构建流程如图6, DSA帧头定义为struct DME_DSA_Hdr, 包含DSA帧头定义及DSA扩展域定义. DSA消息的帧包含帧头和应用信息两部分, 这些内容都应封装在DSM的data部分, 与设置好的DSM帧头一同打包, 通过套接字发送. 在接收端想要接收感兴趣的消息时, 同样向DME发起服务请求, 由DME判断该公告是否有感兴趣的内容从而选择是否采用.
4) MIB配置与维护
MIB负责对协议栈的应用配置信息及状态信息进行存储与维护, DME可通过发起查询或设置请求对MIB进行操作. MIB数据库结构体定义为struct tDMEMIB, 声明数据库中各项数据并存储临时MIB数据. DME_MIB_Set()与DME_MIB_Get()函数分别用于将管理数据库信息保存到MIB文件或读取MIB文件, 业务的应用标识对应一个MIB信息表.
3.1.2 数据子层设计数据子层包括DSMP和适配层. DSMP主要功能是在不同通信实体间传输数据. 数据从一个通信实体发送, 通过请求原语request, 分别经过应用层、网络层、数据链路层和物理层逐层完成数据的传递, 数据在底层通过空中接口发送, 到达接收端的接入层, 在接收端实体再经过逐层传递, 最终将数据传输到接收端的应用层, 交付给各个应用.
当数据从上层应用层接入之后, 首先封装DSM帧头, DSM帧头用来标定数据在向上层以及下层传输的部分参数, 包括DSMP版本、可选域指示、预留、扩展域、应用标识、数据长度以及数据, DSM帧头定义为struct DSMP_Hdr, 并嵌套DSMP扩展域结构体struct DSMP_Ext, DSM消息帧结构如图7. 其中数据部分以及数据长度都是由应用层处理, 并进行数据的填充和封装. 本文中DSMP版本取值为0, DSMP可选域指示取值为1表示后面的扩展域出现, 取值为0表示后面的扩展域不出现. 其中, 预留域的预留比特取值0, 扩展域预留可用于其他信息, 包含其他信息标识、其他信息长度和其他信息内容3部分, 应用标识AID用于区分应用服务商的各种不同应用. 数据长度表示应用层数据实体的字节长度, 数据即为数据实体. 构建不同DSM帧头接口的定义见表2.
适配层的功能是提供底层接入技术与上层之间的传输适配, 接收由上层发来的DME数据包或DSMP数据包, 根据待发送数据包所使用底层接口的不同, 将数据包传输到对应的底层接入接口并传输数据包, 或根据底层接入的数据包区分其相应的上层协议类型, 将数据包递交给上层协议栈. 如果适配层无法区分接受到的数据包相应的上层协议类型, 则丢弃该数据包. 适配层帧包含适配层帧头及适配层有效载荷, 适配层帧头为协议类型, 用于指示上层数据包所使用的协议类型, 适配层帧头定义为struct ADA_Hdr, 适配层有效载荷封装上层数据包, 创建适配层帧头接口为CreatAdaHdr().
适配层帧头、DSM帧头、DSM消息体初始化完成后, 将以上内容放到同一缓冲区, 即形成一个完整的DSM消息.
3.2 协议栈应用层开发应用层处于协议栈的上层, 负责对顶级应用层和下层网络层传输的消息分别进行封装和解封, 按照其他帧头规定的参数进行数据传递, 并在不同的通信实体间进行数据收发.
按照国标规定, 协议栈应用层分为用户应用和消息层, 消息层需要完成5类基本消息体数据结构的定义, 包括车辆基本安全信息(basic safety message, BSM), 地图消息(map message, MAP), 信号相位与时序消息(signal phase and timing message, SPAT), 路侧单元信息(roadside information, RSI)路侧安全信息(roadside safety message, RSM). 5个消息体由专用于数据表示的抽象语法标记(abstract syntax notation one, ASN.1)语言进行描述, 适用于结构化数据传输[17], 遵循“消息集–数据帧–数据元素”的逻辑, 数据集编解码采用非对齐压缩编码规则(unaligned packet encoding rules, UPER).
3.2.1 BSM消息体设计根据ASN.1标准对于BSM消息定义以及消息体数据集之间的嵌套关系, 结构体BSM定义包含两个部分: 结构体BSMRequired和结构体BSMOptional. BSMRequired包含位置、速度、高度、经纬度、航向角等车辆基本信息, BSMOptional包含方向盘角度置信度、位置综合精度、防抱死制动状态、制动踏板状态等. 这些信息由CAN总线以及GPS定位模块获取, CAN总线信息及定位数据通过同步信号对齐, 存储在消息层, 通过BSMCreate()函数创建BSM并填充相关信息.
在完成BSM消息的构造后形成.asn文件, 使用编解码编辑器asnlc, 在BSMEncode_To_()函数中选择UPER编码方式对.asn文件进行编译, 生成应用层设计所需要的消息体数据结构, 最终将BSM填充到DSM中并发送.
3.2.2 其他消息体设计其余4类消息体(MAP、SPAT、RSI、RSM)构造与BSM消息相同, 但消息传输机制不同. 这四类消息是通过RSU广播给车辆, 之后在车辆之间进行消息的传输. 车辆接收消息的过程为: RSU填充消息报头(信道号、优先级等), RSU结合MAP数据部分进行套接字传输, 对消息进行广播. 消息的发送过程为: 车辆设置消息报头, 车辆对消息进行套接字传输, 发送预定义的DSM并进行广播.
4 LTE-V2X通信性能测试LTE-V2X协议栈开发完成后需要进行实际场景下的通信测试, 包括消息收发测试及通信性能测试. 测试需两套协议栈分别作为发送端和接收端, 测试中使用Putty软件通过串口连接两套设备进行操作.
4.1 消息收发测试测试内容主要包括5类消息集在协议栈上的发送与接收, 即协议栈支持发送端设置BSM、MAP、SPAT、RSM、RSI五类消息类型. 测试主要面向车车通信, 因此在消息收发测试中使用BSM消息进行测试, 发送端程序运行结果如图8(a). 接收端运行接收消息程序, 监听空中接口发来的消息, 结果如图8(b).
发送端构造BSM消息后对消息体进行打印输出, BSM消息体具体内容见图9, 主要包括用户标识、当前车辆位置信息、车辆各类加速度信息、车辆档位、刹车等状态信息、车辆尺寸信息、划分的车辆类型以及其他扩展信息. 消息填充完成之后调用底层接口发送消息, 接收端接收到BSM消息后提取数据包中的消息体, 对消息体进行分割并打印消息体内容. 由测试结果可以看出发送端和接收端消息内容打印一致, 协议栈收发消息运行正常, 能够实现基本消息的收发.
4.2 通信性能测试
为测试协议栈在不同真实场景下的通信能力, 本文选取静止与直行两种典型交通场景, 使用2辆搭载协议栈的车辆开展通信测试. 在实际场景中车辆通信100 m范围以内的通信较为关键, 因此测试着重关注车辆运动状态下100 m (半径)范围内的设备通信情况.
4.2.1 测试指标选取本文选取时延(Delay)和丢包率(PER)两个指标测试协议栈的通信能力. 其中时延是指从数据分组(或报文)从发送端应用层服务数据单元开始到达接收端应用层服务数据单元所需的单向传输时间. 一般情况下, LTE-V2X的端到端时延与接入层参数、网络拥塞状况等相关, 最终影响时延、分组丢失率等一系列指标. 对于LTE-V2X现阶段的应用需求, 为了满足实际车联网应用, 端到端时延应保持在100 ms以内[18]. 丢包率是指在一定覆盖范围和信道质量条件下, 接收端丢失应当收到数据包的概率. 按照要求在规定覆盖范围内, 对于普通安全应用最大时延100 ms的要求下接收可靠性不得低于80%.
4.2.2 测试场景及结果分析
1) 静止场景下通信测试
如图10所示两辆测试车分别静止停在直行道路上不同的位置, 其中一方为发送端另一方为接收端. 测试过程中发送端以10 Hz频率发送数据包大小为300字节的BSM消息, 每次发送200个数据包共发送10次, 消息发送方式为半静态调度. 查询并记录发送端与接收端的日志, 分别计算每次实验的时延与丢包率, 实验结果如图11所示. 最后将两辆测试车分别静止停在直行道路相距200 m的位置上, 测试过程中发送端以10 Hz频率分别发送数据包大小为150字节、300字节、600字节的BSM消息, 每次发送200个数据包共发送10次, 计算不同数据包长度下的通信时延和丢包率, 实验结果如图12所示.
从测试结果可以看出, 在600 m通信范围内通信距离对通信时延影响不大, 每处平均值约为16 ms, 时延在5 ms左右上下浮动, 上分位数值均在20 ms以内. 当通信距离增加至800 m时, 通信时延较之前有所增大但变化不明显, 平均值和上分位数分别在20 ms和22 ms左右. 丢包率在600 m通信范围内相对稳定, 平均值在3%左右, 总体值在4%以内. 随着通信距离增至800 m, 丢包率较之前有明显的增加, 平均值接近6%且数据上下浮动较大. 由静止场景下通信性能测试结果可以看出, 通信距离为800 m时通信时延与丢包率相对较大, 原因是LTE-V2X其本身存在有效通信距离的限制. 而在数据包长度变化条件下, 由图12可以看出随着数据包长度的增加, 通信时延略有增加且小于5 ms, 丢包率仍保持在3%左右, 由此可见数据包长度对于时延及丢包率的影响并不明显.
2) 直行道路下通信测试
如图13所示, 两辆测试车辆在直行道路上以相同的速度匀速行驶(跟驰), 车辆间距保持在50 m左右, 分别测试车速为20 km/h、40 km/h、60 km/h的时延与丢包率. 其中, 前方车辆作为发送端, 后方跟驰车辆为接收端, 其他相关参数设置同静止场景实验, 跟驰场景下实验结果如图14.
跟驰场景下, 通信时延随速度增大而增大, 而丢包率受速度影响较小, 数据相对稳定, 平均丢包率均小于3%. 相较于静止场景下, 动态场景下时延异常值增多, 但总体数据特征相似, 平均值均小于20 ms.
上述两种场景下的协议栈通信性能测试结果表明车辆距离对于时延与丢包率均有影响. 其中静止场景测试中随着车辆相距距离增大, 时延与丢包率都有所增加. 跟驰场景测试中随着车速逐渐增加时延变化较为明显, 而丢包率与速度呈弱相关. 除此之外, 在两种不同场景下通信时延与丢包率虽有所波动, 但仍符合车联网普通安全相关应用的需求, 说明协议栈总体通信性能良好.
5 结论与展望
本文针对目前车联网通信需求以及标准要求, 为LTE-V2X协议栈提供一套切实可行的系统硬件平台和软件解决方案, 并对设计的协议栈进行不同场景下的通信测试. 测试结果表明该协议栈能够实现V2X消息收发, 满足实际车联网场景的应用, 为车联网通信终端落地提供现实借鉴意义. 然而, 本文协议栈设计中没有考虑通信安全问题, 且测试指标选取与测试场景设置相对单一, 未能模拟真实道路路况或多车信号耦合干扰下系统的通信性能. 未来应进一步完善通信安全机制, 设计高速移动场景与包含遮蔽物场景下的多指标通信测试, 并考虑多车环境下的通信拥塞等问题.
[1] |
刘宗巍, 匡旭, 赵福全. V2X关键技术应用与发展综述. 电讯技术, 2019, 59(1): 117-124. DOI:10.3969/j.issn.1001-893x.2019.01.020 |
[2] |
5G Automotive Association. 白皮书: The case for cellular V2X for safety and cooperative driving. https://5gaa.org/wp-content/uploads/2017/10/5GAA-whitepaper-23-Nov-2016.pdf. (2016-11-23).
|
[3] |
IMT-2020 (5G) 推进组. 白皮书: C-V2X白皮书. http://www.caict.ac.cn/kxyj/qwfb/bps/201806/P020180621609834833905.pdf. (2018-06-22).
|
[4] |
葛雨明. 我国LTE-V2X标准化及测试验证进展. 移动通信, 2019, 43(11): 36-39. DOI:10.3969/j.issn.1006-1010.2019.11.006 |
[5] |
郭蓬, 袁俊肖, 戎辉, 等. LTE-V2X标准分析及发展现状的研究. 中国汽车, 2019(1): 59-62. |
[6] |
张京, 温豪. LTE-V2X车联网技术、标准与应用分析. 数字通信世界, 2019(6): 17, 87. |
[7] |
林琳, 李璐, 葛雨明. 车联网通信标准化与产业发展分析. 电信科学, 2020, 36(4): 15-26. |
[8] |
常雪阳, 许庆, 李克强, 等. 通信时延与丢包下智能网联汽车控制性能分析. 中国公路学报, 2019, 32(6): 216-225. |
[9] |
杜昊, 吕玉琦, 丁启枫. LTE-V2X终端实验室射频、性能测试方法研究. 数字通信世界, 2019(1): 13-14, 72. DOI:10.3969/J.ISSN.1672-7274.2019.01.006 |
[10] |
牛坤, 丁志中, 王煜. 车联网终端的设计与实现. 计算机系统应用, 2016, 25(7): 82-88. |
[11] |
冯舒, 南洋, 董馨, 等. 基于车路协同C-V2X技术设计与应用研究. 汽车文摘, 2020(8): 39-44. |
[12] |
ETSI TS 122 185-2020, LTE; Service requirements for V2X services (V16.0.0; 3GPP TS 22.185 version 16.0.0 Release 16)
|
[13] |
3GPP. 3GPP TR 36.885 v14.0. 0 3rd generation partnership project; technical specification group radio access network; study on LTE-based V2X services (release 14). France: 3GPP, 2016.
|
[14] |
IMT-2020(5G)推进组, C-V2X工作组. LTE-V2X性能测试规范(实验室). https://max.book118.com/html/2018/0321/158071246.shtm. (2017-10-10).
|
[15] |
汪涛, 李曦. 车联网WAVE协议介绍. 现代电信科技, 2014(3): 8-11. |
[16] |
陈山枝, 胡金玲, 时岩, 等. LTE-V2X车联网技术、标准与应用. 电信科学, 2018, 34(4): 1-11. |
[17] |
Hammi B, Monteuuis JP, Daniel ES, et al. ASN. 1 specification for ETSI certificates and encoding performance study. Proceedings of the 2017 18th IEEE International Conference on Mobile Data Management. Daejeon: IEEE, 2017. 291–298.
|
[18] |
李凤, 房家奕, 赵丽. 3GPP LTE-V2X标准进展及技术介绍. 电信网技术, 2016(6): 40-45. |