侵权投诉
订阅
纠错
加入自媒体

鸿课堂O大唐高鸿王世良:C-V2X模组架构的定义与思考

2020-07-03 10:47
C114通信网
关注

二、如何定义C-V2X模组

C-V2X对于模组的具体要求,主要包括四点:车规级、合规性、灵活性和开放性。

1、车规级是对硬件的要求,主要如下:

尺寸:(SMT要求≤40mm*mm)

工作温度:(-40~+85℃)

高温高湿:(+85℃,85%RH 1000小时)

温度冲击:(-40~+85℃ 1000次)

2、合规性是指根据符合行业标准,保证互联互通。

由于C-V2X是一套自成体系的标准而且还是新技术,相关标准也尚在完善过程中,在

这个背景下,合规性也就显得异常重要。以空口配置为例,之前的车联网系统采用的空口配置都是10兆赫兹带宽,资源池的配置是整个带宽一个资源池,每个子信道的大小为10,共5个子信道,无论是OBU还是RSU都共享相同的资源池。另外Bitmap的长度是20,这样就不需要考虑预留子帧的问题。

随着为车联网应用正式颁发了20兆赫兹专用带宽以后,CCSA定义了新的配置,将20兆分成了两个10兆的资源池,每个资源池的大小能源为10兆,每个池的子信道大小仍是10,每个资源池有5个子信道。其中,低频的资源池是OBU发送专用,高频的资源池为RSU发送专用,同时两个资源池都可以作为接收资源池。另外Bitmap的长度也修改为100,由于100不能被10240整除,所以就需要考虑预留子帧。

空口配置仅仅是合规性的一个例子,其他例子还包括不同业务使用的AID是否规范,接口字段是否符合标准定义。以上这些都会对C-V2X模组在应用过程中能否正常收发数据产生影响,所以合规性也是C-V2X模组的一个重要方面。

3、灵活性是指,可以根据具体需求选择应用逻辑的处理方式。

在车联网的系统里,C-V2X模组的功能涵盖到协议栈的哪一层是一个比较值得深入探讨的问题。下图呈现了C-V2X协议栈层结构,自下而上分别是射频、物理层、MAC层、RLC层、PDCP层、网络层(其中网络层又分成了DSM层和适配层两个子层)、安全层、消息层和应用场景。那么C-V2X模组应该将接口开放到哪一层呢?

按照传统模组的思路,可以将接口开放到数据链路层之上,之下的部分属于传统通信圈的特长,而之上的部分则为应用圈的特长。

我们为了便于区分,将第一种称为通信的归通信,第二种称为应用的归应用,这两种方式在应用过程中需要根据具体需求而定。

通信的归通信:如果开放到数据链路层,那么对OBU而言,高层可以由Tier 1或者主机厂完成开发,RSU可以由RSU的制造商或者运营商负责开发。

应用的归应用:接口也可以开放到应用层,因为应用层之下的处理流程都在标准上进行了详细的定义,包括帧的格式,数据收发的行为等。如果C-V2X模组将在这几部分的工作都完成,那么在处理应用场景时,就不需要关注数据传输的细节和影响互联互通的流程,仅需要关注应用逻辑的处理。

通信的归通信方式

按照这种方式划分需要再仔细研究网络层的标准,下图展示了网络层数据面的处理,数据面的处理是比较简单的。

来自应用层的数据先到达DSMP层,加上DSMP的包头,然后再到达适配层,再加上适配层的包头,最后作为接入层的净荷发送到PDCP层,作为PDCP的SDU。比较复杂一点的是控制面,按照标准的规定,在发送或接收一个数据包时,随着数据包要附带一些原语作为控制字段来指示上层或下层应该如何对数据包进行处理。以发送为例,来自应用层的数据包需要指示这个数据包的AID和优先级,数据包到达网络层之后,网络层会将这些数据再指示给适配层。

但是,适配层在向接入层发送时就不能直接发,因为这两个字段空口都不认识,因此适配层就需要做一个工作,就是将AID和优先级进行转换。AID需要转化成destination Layer-2 ID,优先级则需要转换成PPPP。这个工作的完成需要基于3GPP定义的一个配置文件MO(Management Object Configuration),MO保存着AuthorizedV2XServiceList,也就是授权的V2X列表这样一个字段,这个字段将规定的某个具体的AID应该映射成哪个destination Layer-2 ID。另外,这个配置文件中还包存着PPPPtoPDBMappingRule的一个字段,它规定了PPPP到PDB的映射规则。那么再往前一步,从优先级到PPPP的映射则是在CCSA的网络层规范中完成的,这个工作也需要适配层来负责。

因此从界面清晰的角度来讲,3GPP标准范畴的处理,最好应该封装在模组内部,也就是说如果采用通信归通信这种划分方式的话,最合适的切割界面应该是在DSM层与适配层之间。

应用的归应用方式

下图展示了网络层、安全层、应用层这些高层更多的处理细节,我们从下往上看可以得到多种划分方式。

如果在网络层与与安全性层之间划分,这两层中间传递的数据定义都非常明确,是标准的成帧数据。

如果再向上一层划分在安全层与消息层之间,这两层之间的数据定义也非常明确,是标准的成帧数据,如果划分在这一层,那么C-V2X模组即保证了向高层递交的数据都是合法的,这样能够大大地简化应用的处理。

如果再向上半层,可能就不是很合适。这一层的数据对于发送侧是ASN.1编码前的杂乱数据,对于接收侧则是ASN.1解码后的杂乱数据,这些数据都没有标准的帧格式定义。如果在两层之间,可能还是在两个处理器之间进行传输的话,那无疑还要再进行一次解帧与组帧的过程,从端到端传输的角度而言就增加了四次的处理,分别是两次解帧和两次组帧,那么对于时延敏感的C-V2X应用而言,这是有害无益的。

当然划分的接口可以再向上移一步,对于数据进行一定的预处理,这样一来可以减少传输的数据量;再者经过预处理之后,可以减轻应用处理器处理应用场景时的复杂度,这样做就是有意义的了。但是这个接口没有标准化,需要根据具体的应用场景进行自定义。

最后,划分的接口可以再向上移一步,可以对数据进行完整的处理,并最终输出交通安全预警。这种方式比较适合于辅助驾驶,因为预警的结果可以直接输出到HMI进行提示就行了。自动驾驶如果按照这种方式划分,并不是很合适,因为自动驾驶的主处理器,需要更多的细节与其他传感的数据进行融合。

除了上述业务层面,模组的管理也很重要,它极大地决定了模组的易用性。比如前面讲的各种空口的配置,首先模组能够提供支持,其次是需要灵活,如果每个配置都要单独版本,那么使用时将会非常的不方便,最好的处理方式是一个版本可以通过修改参数完成不同配置之间的切换。

4、开放性要求模组保证拥有各类接口,提供功能自定义和升级服务

模组要开放,能够提供各类的接口,允许用户自定义修改,不管模组的功能涵盖了哪一层,其内部都是很复杂的。因此,能够及时反馈十分重要,例如内部的状态随时可查,如果发生了异常,能够及时的通知应用进行处理。比如,GNSS因为信号原因等因素突然失锁了,如果时锁时间过长,就会导致模组的时钟失步。此时的模组实际上已经不能与其他模组通信了,这就需要模组能够主动地通知应用进行干预,比如提醒驾驶员卫星信号出现异常,提示驾驶员更加谨慎地驾驶等等;其次,在模组发生异常时应该能够记录并提取日志,以便于分析异常,或者判断其处理是否合理;另外,对于模组而言,尤其是产业上,在培育阶段,固件升级是在所难免的,所以模组能够提供升级能力也是一个必选项。

<上一页  1  2  3  4  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

    文章纠错
    x
    *文字标题:
    *纠错内容:
    联系邮箱:
    *验 证 码:

    粤公网安备 44030502002758号