ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

CSAE 53-2020解读:车路协同应用层标准与消息集

CSAE 53-2020解读:车路协同应用层标准与消息集

简介:面向车联网、智能交通与车载通信研发测试人员的标准原文文档,聚焦合作式智能运输系统中车用通信系统的应用层规范与数据交互要求,可用于 V2X 应用设计、接口对齐和标准合规自查。文件为 CSAE 53-2020 第一阶段版本,替代 2017 版,正文涵盖范围、规范性引用文件、术语与缩略语、系统介绍与标准范围,并给出基础应用的需求分析、应用定义及基本要求,涉及前向碰撞预警、交叉路口碰撞预警、左转辅助、盲区/变道预警、逆向超车预警、紧急制动预警等场景。包内共 1 个 PDF 文件,大小约 15.57MB,单份文档便于检索与归档。已有 1274 人学习,适合需要查阅原始条款、核对应用层消息与交互流程的工程师和研究人员作为案头参考。

1. 一句话说清 CSAE 53-2020:车与车之间那份“聊天规则手册”

路口两辆车差点撞上,两边的仪表同时响了警报——一辆是合资品牌,一辆是国产新势力,它们凭什么能互相“听懂”?靠的不是缘分,而是一份编号为 CSAE 53-2020 的文件,全名《合作式智能运输系统 车用通信系统 应用层及应用数据交互标准(第一阶段)》。把它当成车与车、车与路之间的“聊天规则手册”就好:谁先开口、每句话包含哪些字段、字段用什么格式写、隔多久说一次,全都写死在里头。搞懂它,你就明白路上那些“会说话的车”到底在交换什么信息,也明白为什么有的预警反应很快、有的预警总是晚半拍。

2. 为什么要有这份标准:没有它,每辆车都在自说自话

设想一条城市快速路上同时跑着十几个品牌的车,每家的工程师都觉得自己定义的“刹车提醒”数据包最合理:A 厂把速度放在第 3 个字节,B 厂放在第 7 个字节;C 厂用米每秒,D 厂用千米每小时。结果就是每辆车都在广播,但谁也解不开别人的包。这份标准存在的全部理由,就是把“说什么”统一下来,让不同厂商的车辆之间、车辆与道路基础设施之间能够互联互通。它不规定你用哪种无线技术,只规定开口之后第一句话该长什么样。

2.1 车上的盒子到底装了什么:四块拼图

标准在系统介绍部分拿车载单元举例,把一个“会说话的车”拆成四块。第一块是无线电通信子系统,负责接收和发送空中信号,一个车载设备里可以装一个,也可以装好几个。第二块是定位系统,通常包含卫星导航接收器,提供车辆的位置、方向、速度和时间,还能靠车速信号、惯性测量单元、差分定位等手段把精度再往上抬。第三块是车载设备处理单元,跑程序生成要发出去的信号,也处理收到的信号。第四块是天線,负责射频信号的收发。

这四块通过接口连到应用电子控制单元,应用跑在那里,最后通过人机交互界面提醒驾驶员,形式可以是图像、声音或者振动。有些设计里,应用单元和处理单元干脆做在同一个物理设备中。把这套架构摆出来不是为了讲硬件,而是想说明一件事:后面所有应用能不能成立,前提都是位置够准、时间够同步、算得够快。一份预警晚到 300 毫秒,驾驶员能做的动作就完全不一样了。

2.2 应用层站在哪一层:只管“说什么”,不管“怎么喊”

参照通用的通信系统分层模型,车用通信系统从下往上大致分为物理层、数据链路层、网络层、传输层、应用层,最上面是系统应用。这份标准明确只管应用层,以及应用层与上下相邻两层的接口,也就是图 2 里画的那个范围。它不指定底层用哪种通信技术,可以架在各种传输层、网络层、数据链路层和物理层之上。

换个说法:它管的是快递面单上必须写什么、怎么写,不管这单货是走货车还是走飞机。往上,它定义了一套应用编程接口,让不同的应用开发者各自开发功能,不必操心对方用的是什么通信方式或通信设备;往下,它定义了一套服务提供接口,让车用通信系统能和不同通信方式的设备兼容。这种“只管中间一层”的切法,本质上是在给技术迭代留余地——底层通信技术几年一换,面单格式不必跟着推倒重来。

提示:接口分两个方向,向上的叫应用编程接口,向下的叫服务提供接口。看标准第 7 章时先分清方向,否则容易把“应用要调用的”和“设备要实现的”搞反。

2.3 定位精度从 5 米收紧到 1.5 米:一次修订暴露的痛点

2020 版代替 2017 版,技术变化主要三处。第一处最要命:交叉路口碰撞预警、左转辅助、异常车辆提醒、车辆失控预警、道路危险状况提示、限速预警、弱势交通参与者碰撞预警、绿波车速引导、车内标牌、紧急车辆提醒这十个应用,基本性能要求里的定位精度从“不超过 5 米”改成了“不超过 1.5 米”。第二处是把所有基础应用里“数据更新频率不超过”的写法改成了“数据更新频率典型值”。第三处是调整应用层交互数据集,与另一份面向车联网无线通信消息层的技术要求文件保持一致。

5 米为什么不够?城市道路一条车道也就三米出头宽,5 米误差意味着一辆车可能被判断到隔壁车道甚至再隔壁。交叉路口场景里,把旁边车道停着的车当成自己车道正前方的障碍,就是天天误报;反过来该报不报,就是漏报。1.5 米大致能把车辆锁定在本车道范围内,误判率才降得下来。至于“不超过”改成“典型值”,是给工程实现松绑:原来写死上限,硬件抖动一下、网络拥塞一下就可能过不去,改成期望水平后,具体折中留给场景去谈。

3. 17 个基础应用拆开看:安全、效率、信息服务三条线

标准从安全、效率、信息服务三大类里挑了 17 个典型应用作为第一期内容,每个应用都按六个方面描述:应用定义和预期效果、主要场景、系统基本原理、通信方式、基本性能要求、数据交互需求。这六个方面构成了一个完整的“验收清单”——不光告诉你这个功能是干什么的,还告诉你什么情况下该报、什么情况下不该报、报得有多快、需要交换哪些字段。很多人翻标准只盯场景图,恰恰漏掉了“不该报”那一半。

3.1 安全类应用:提前一秒知道前车踩了刹车

12 个安全类应用里,前向碰撞预警被写得最细,四个主要场景值得逐个看。场景一是主车正常行驶,远车在同一车道正前方停着,主车即将撞上时发出预警,而且预警时机要保证驾驶员收到后有时间采取措施。场景二是远车停在相邻车道前方,这时主车行驶不会撞上,驾驶员不应该收到预警——这一条是整份标准里最容易被忽略的设计:它规定了误报边界。会报警不难,难的是不该报的时候闭嘴。

场景三是远车在同一车道前方慢速行驶或正在减速,同样要预警。场景四最能体现车用通信的价值:主车跟着一辆车正常行驶,更前方同一车道还停着一辆车,视线被前车完全挡住;前车为了躲避突然变道,主车面前凭空冒出一辆车。这种场景下摄像头和雷达都被遮挡,而停着的那辆车一直在广播自己的位置,主车就能提前知道前面有东西。标准还特意写明,中间那辆遮挡视线的车有没有通信能力,不影响这个场景成立。

其余安全类应用各管一段:交叉路口碰撞预警处理横向来车,左转辅助盯对向直行车,盲区预警和变道预警看侧后方,逆向超车预警在借道超车时评估对向来车,紧急制动预警靠事件触发而不是周期广播,异常车辆提醒和车辆失控预警针对那些行为已经不正常的目标,道路危险状况提示、限速预警、闯红灯预警由路侧发声,弱势交通参与者碰撞预警把行人设备也纳入进来。

3.2 效率与信息服务类:绿灯还剩几秒、前方堵不堵

效率类有四个。绿波车速引导是路侧把信号灯的相位和配时广播出来,车端结合自己的位置和速度,算出一个能连续通过路口的速度区间,让驾驶员不必靠运气赶绿灯。车内标牌把路侧的标志标牌内容送进车内,施工、限高、管制这类信息不必等驾驶员肉眼看见。前方拥堵提醒把远处的排队情况提前告知。紧急车辆提醒让救护车、消防车的接近方向提前暴露给周边车辆。

信息服务类只有一个:汽车近场支付。停车场、加油这类场景,把支付环节放到车机上完成。它被单列一类,是因为它的通信需求和安全性要求跟前面那些安全应用完全不是一回事,时延要求宽松得多,但对身份和交易可靠性的要求高。

类别应用数量代表应用主要通信方式
安全12前向碰撞预警、交叉路口碰撞预警、盲区预警V2V、V2I、V2P
效率4绿波车速引导、车内标牌、前方拥堵提醒V2I、V2V
信息服务1汽车近场支付V2I

3.3 通信方式的分工:V2V、V2I、V2P 与事件触发

标准里的通信方式有四种写法。V2V 是车与车之间直接广播,前向碰撞预警、盲区预警、逆向超车预警都靠它。V2I 是车与路侧单元通信,限速预警、闯红灯预警、绿波车速引导这类必须有路侧参与。V2P 是车与行人设备通信,弱势交通参与者碰撞预警会用到。还有一种 V2V-Event,意思是事件触发而非周期广播,紧急制动预警、异常车辆提醒、车辆失控预警属于这一类。

这个区分很实用。周期广播的消息要按固定频率持续发送,占带宽;事件触发的消息只在状态异常时猛发几次,省资源但要保证送达。附录 B 就是按通信需求给这些应用做了分类,频率和时延要求不一样的应用,工程上的取舍完全不一样。看应用定义的时候顺手看一眼它标的是哪种通信方式,基本就能猜出它对时延有多敏感。

3.4 这 17 个应用是怎么挑出来的

标准附录 A 给了第一期应用的评选方法,附录 B 是按通信需求做的分类表,附录 C 是规范性的前向碰撞预警基本性能指标依据。三个附录的位置很说明问题:先有筛选逻辑,再有分类,最后给一个应用做性能指标的示范。

挑应用的底层逻辑大致是三条:场景要明确,得能用文字和图示说清“谁在什么位置、发生了什么”;问题要能靠通信解决,如果靠雷达就能搞定且成本更低,优先级就往后排;性能指标要可验证,定位精度、更新频率、时延这些得能测出来。这三条也解释了为什么第一期只有 17 个——不是想不到更多,是能同时满足这三条的还不够多。

4. 消息集长什么样:从整条消息拆到一个个数据元素

第 6 章是整份标准里篇幅最大的部分,从第 43 页一直铺到第 115 页,七十几页几乎都在定义数据。它的组织方式是一层套一层:消息帧装消息体,消息体里放数据帧,数据帧由数据元素拼成。理解了这四层关系,再厚的定义表也能顺着读下来。反之,直接翻到某一页看字段名,很容易迷失在缩写里——那些三四个字母的代号,几乎每个都对应一个应用场景里的具体判断依据。

4.1 四层结构:消息帧、消息体、数据帧、数据元素

最外层是消息帧,可以理解成一个统一的包裹容器,所有在空口上跑的消息都套在这个壳里,好处是接收端拿到任何一个包都能用同一套逻辑先拆壳。壳里面是消息体,具体分成几类:基本安全消息描述车辆自身的状态,信号灯消息描述路口红绿灯的相位和倒计时,路侧单元消息描述路侧感知到的交通参与者,路侧交通事件消息描述突发的道路状况。这几类消息对应不同的应用场景,前向碰撞预警主要吃基本安全消息,闯红灯预警和绿波车速引导主要吃信号灯消息。

再往里是数据帧,一个消息体里的字段太多,就按语义打成若干个帧,比如“车辆位置”相关的字段打成一帧,“车辆运动状态”相关的字段打成一帧。最里层是数据元素,是不可再拆的最小单位:一个速度值、一个航向角、一个精度标识。打个比方,消息帧是快递箱,消息体是箱子上贴的面单类型,数据帧是面单上划出来的分区,数据元素就是每个格子里填的那个字。

4.2 ASN.1 与 UPER:为什么要用这么“别扭”的写法

标准里定义数据结构用的不是表格,而是一种叫抽象语法记法的形式语言,配套的编码规则是压缩编码。前者负责描述“这个数据长什么样”:有哪些字段、每个字段的取值范围、哪些是可选的;后者负责把它压成二进制位。这不是为了显得高深,而是两个现实约束逼出来的。

第一个约束是带宽。一辆车每秒要广播好几次自身状态,周围几十辆车同时在发,每次几十个字节,用文本格式写“速度:25.0,航向:180”这种内容,光字符就浪费掉大半空口容量。压缩编码把整数值按位挤在一起,同样的信息量能省下可观的比例。第二个约束是跨语言跨平台。抽象语法记法是一种中立的描述方式,工具链能据此自动生成各种编程语言的编解码代码,不同厂商的实现之间才有互通的把握。

提示:数据元素的分辨率和取值范围直接决定编码占几位。改动一个取值范围,可能让整段编码长度变化,收发两端必须同步升级,否则解出来的数会整体错位。

4.3 一条前向碰撞预警走完全程:从广播到方向盘震动

把链路串一遍。远车按固定频率广播基本安全消息,里面带着自己的位置、速度、航向、加速度和制动状态。主车的无线电通信子系统收到信号,处理单元把压缩编码解开,交给应用层。应用层先判断这辆车是不是在自己前方同一车道——这一步就吃掉定位精度的大部分预算,1.5 米和 5 米的差别在这里体现得最直接。判定同车道之后,用两车距离除以相对速度估算碰撞预计时间,低于阈值就通过人机交互界面提醒驾驶员,可以是图像、声音,也可以是方向盘振动。

标准对系统延迟的定义是:从远车或路侧单元等设备发出数据,到主车接收、经网络层处理、传递给应用层的时间,这份文件里特指应用层端到端的延迟。注意它不含驾驶员反应时间,那个得在性能指标里另外算。

# 用两车广播信息粗算碰撞预计时间,仅示意判定逻辑 def ttc_seconds(hv_speed, rv_speed, gap_m): # 相对速度:主车比远车快多少,单位米每秒 rel = hv_speed - rv_speed if rel <= 0: return float("inf") # 主车不比远车快,不构成追尾趋势 return gap_m / rel # 距离除以相对速度,单位秒 POS_ERR = 1.5 # 定位精度上限,从测距结果里扣掉 gap = max(0.0, 42.0 - POS_ERR) # 名义间距 42 米,扣掉误差余量 print(round(ttc_seconds(25.0, 5.0, gap), 2)) # 输出 1.85

这段代码里,hv_speed是主车速度,单位米每秒,rv_speed是远车速度,gap_m是两车间距。25 米每秒约合 90 公里每小时,远车 5 米每秒约合 18 公里每小时,名义间距 42 米,扣掉 1.5 米定位误差后算出 1.85 秒。真实实现里还要加上航向角判断、车道曲率匹配、加速度外推,阈值也不是一个固定数,而是随车速变化的一组曲线——附录 C 给出的正是前向碰撞预警基本性能指标的推导依据。这段代码真正想说明的是:定位误差不是纸面上的一个参数,它会直接进入最后那个秒数。

5. 几个最容易搞混的地方:应用层标准不等于通信技术标准

翻这份标准的人最常犯的错,是把几个层级完全不同的东西当成同一件事。有人以为它是通信协议,有人以为它是自动驾驶法规,还有人以为拿到它就能直接写出一套能上路的预警系统。这几类误解的根源都一样:没分清“说什么”“怎么传”“谁来用”是三件独立的事。下面五组概念,初学者几乎必踩其中至少两个。

5.1 易混点一:这份标准与消息层技术要求不是一回事

易混点在于,两份文件都带“车用通信系统”字样,都定义了一大堆数据字段,看目录会觉得高度重叠。为什么会混?因为 2020 版修订时确实做了一件事——把应用层交互数据集与那份消息层技术要求文件对齐了,两份文件的数据结构存在对应关系,翻的时候会看到相似的字段名。

怎么区分?看职责边界。这份标准管应用层,回答的是“实现前向碰撞预警需要交换哪些信息、交换得多快、判据是什么”。消息层那份管的是消息怎么封装、怎么寻址、怎么在接入层传出去。一个比喻:前者规定信封里那封信写什么内容,后者规定信封怎么写地址、贴多少邮资。做应用开发主要看这份,做通信模组和协议栈才需要两份对着看。

5.2 易混点二:把“应用层”当成“应用程序”

易混点在于,“应用层”这个词在日常语境里常被理解成“装了多少个 App”。为什么会混?因为手机用久了,应用就是软件,直觉上会把车上的应用层也当成某个具体软件。

怎么区分?车用通信系统里的应用层是分层模型中的一层,是一套关于消息集和数据结构的约定,它本身不是一个能点开的程序。真正的应用程序跑在应用电子控制单元上,调用标准定义的那套接口去收发数据。换句话说,应用层是语法和词汇表,应用程序是用这套语法写出来的文章。同一套应用层标准,可以支撑几十种不同的应用实现。

5.3 易混点三:以为它能够替代雷达和自动刹车

易混点在于,前向碰撞预警听起来和车上已经有的自动紧急制动很像,都涉及“前面有车、要撞了、赶紧处理”。为什么会混?因为两者的触发条件在物理量上是同一个——碰撞预计时间。

怎么区分?看感知来源和职责。雷达和摄像头是“自己看”,靠发射电磁波或成像判断前方有没有障碍;这份标准定义的是“别人告诉你”,靠对方车辆主动广播自己的状态。前者在非视距场景下会被遮挡,场景四那种“前车变道后突然露出一辆停着的车”正是它的盲区;后者能穿透遮挡,但前提是对方也装了设备并且愿意广播。还有一层区别:预警只负责提醒人,制动是执行,两者不在一个层级。把预警当成自动刹车,是把提示音当成了刹车踏板。

5.4 易混点四:把团体标准当成强制法规

易混点在于,标准文本写得非常像法规:有范围、有规范性引用文件、有“应”和“不应”、有性能指标。为什么会混?因为它的排版遵循统一的标准编写规则,读起来天然带着权威感。

怎么区分?看它的性质。这是一份团体标准,由行业学会发布,供自愿采用,不是市场准入的强制门槛。它规定的是“这么做能互通”,不是“不这么做就违法”。文本里也写明适用于基于各种通信方式的车用通信系统应用场景的开发、验证及商用,重点在开发验证环节的参照价值。对开发方来说,它是减少扯皮的技术依据;对采购方来说,它是验收时可以引用的条款。把它当法规去背,方向就偏了。

5.5 易混点五:“第一阶段”被当成“初级版”

易混点在于,副标题里的“第一阶段”很容易被读成“功能比较简单的试用版”。为什么会混?因为软件行业习惯了用版本号暗示成熟度。

怎么区分?这里的第一阶段指的是应用集合的推进批次,不是技术成熟度。17 个应用是筛选出来的、场景明确、指标可验证的那一批,能同时满足这三条的本来就不多。后续批次不是把这一批做得更高级,而是往里加新的应用类型。所以看到“第一阶段”不要降低对它的重视程度——恰恰相反,能被选进第一批的,都是当下工程落地最迫切的场景。

6. 什么时候该翻这份标准,什么时候别指望它

判断标准其实很简单:你手上的问题,是不是“两辆车、一辆车和一个路侧设备之间该交换哪些信息”。如果是,这份文件能省掉大量反复沟通。举个具体例子,某个团队要做车载单元上的前向碰撞预警,第一步不该是写代码,而是翻第 5 章找到前向碰撞预警那节,把四个主要场景抄成测试用例,特别是场景二那条“相邻车道前方停止不应预警”,很多人会漏掉,等上路测才发现误报率高得离谱。第二步翻第 6 章,确认基本安全消息里哪些数据元素是判定同车道和算碰撞预计时间必需的。第三步翻第 7 章,看应用层接口和服务提供接口的调用约定,把数据流打通。三步走完,功能和验收标准同时有了。

场景适合翻这份标准不适合依赖它
应用功能定义与场景设计场景、判据、误报边界都写清楚了具体车型的交互设计
数据字段与编码约定消息集、数据结构、编码规则齐全底层无线链路参数
性能指标参考定位精度、更新频率、时延有要求硬件选型与成本测算
跨厂商互通联调接口规范可作为共同语言各家的实现细节与缺陷定位

别指望它的地方也得说清楚。它不指定底层通信技术,所以无线链路质量、覆盖范围、抗干扰这些问题它一概不管;它不定义测试方法,性能指标给了但怎么测、在什么场地测,得另找依据;它不涉及功能安全等级和信息安全机制,交易类应用涉及的身份认证、防篡改,这份文件只是开了个头。曾经有个团队拿着这份标准的性能指标去谈验收,对方一句“测试环境和判定准则在哪一页”就把人问住了——指标是有的,测法不在里面。

我自己的习惯是:每次启动一个涉及车路协同的功能,先在白板上画出四个圈——谁在说话、说的是哪类消息、需要哪些数据元素、延迟预算是多少,然后才去翻目录对号入座。顺序反了,很容易被几十页字段定义带着跑,看完一圈还是不知道自己要写什么。这份标准的价值不在于让你背下所有缩写,而在于让你在动手之前就知道边界在哪、误报的坑有多深。希望帮到你。

本文还有配套的精品资源,点击获取

返回列表