01背景与挑战
数据采集和记录是当今车载系统开发中必不可少的环节。然而车载系统中交互的数据接口非常丰富,包括各种传感器、ECU和执行器之间的数据交互,类型可以是CAN、FlexRay、以太网、SPI、MIPI、CSI2等。传统的车载记录仪在采集和记录整个系统时面临新的挑战:
>当记录总线类型变更时,尤其是当系统中增加新的接口类型数据,需要接入专门设备时,原有的车载记录仪需要足够的扩展能力;
>当记录总线数量变更时,原有的车载记录仪需要重新组合;
>技术升级迭代后,或者系统零部件的供应商变更时,原有的车载记录仪需要复用。
为了提高测量记录系统的灵活性、可扩展性,以及增加组件的重用性,ASAM组织于2022年3月发布了CMP(Capture Module Protocol)协议1.0.0版本,将测量和记录任务解耦。CMP定义车载总线和传感器数据的捕获模块(Capture Module,CM)与数据接收端(Data Sink,如记录仪、上位机软件等)之间的通信标准,并基于以太网传输。CMP报文可以直接存储在数据接收端中(如数据接收端是分析软件,也可进一步解析报文)。
CMP支持的传输层包括IEEE 802.3及UDP。同时,根据传输的需要,捕获模块也可以将数据包分割或组包发送到数据接收端。
02CMP协议
CMP支持的通讯协议类型
CMP支持的总线及数据类型非常丰富,还包括自定义格式,目前包括:
CAN/CAN FD
LIN
FlexRay
Digital signals
UART/RS232
Analog signals
Ethernet
SPI
I2C
GigE Vision
MIPI CSI-2 D-PHY
Vendor-specific data
图1:CMP协议介绍
基于CMP协议的采集记录模型
CMP协议定义的是捕获模块(Capture Module)与数据接收端(Data Sink)之间的通讯标准。捕获模块负责将采集到的总线或传感器信号等,打包为CMP报文,上传到数据接收端。
如图2,捕获模块具有Device ID标识,每个捕获模块的Device ID唯一且在整个采集记录系统中不可重用。捕获模块通过其接口(接口具有Interface ID)采集要记录的数据,比如CAN、以太网等。对于每个捕获模块,Interface ID唯一且不可重用。捕获模块将采集到的数据以数据流的形式发送到数据接收端,数据流通过Stream ID标识。对于每个捕获模块,每个数据流的Stream ID唯一且不可重用,但在整个测量记录系统中,对于不同的捕获模块,Stream ID并不一定唯一。
图2:基于CMP的采集记录模型
基于CMP的采集记录方案实现了数据采集模块与数据接收端的解耦:
>更加灵活的捕获模块
捕获模块与数据接收端通过统一的CMP协议通讯,因此数据接收端可采集不同厂家的捕获模块。
>数据记录仪可复用
传统的数据记录仪集数据采集和存储功能为一体,当总线类型发生变更时,如2路CAN变更为2路LIN,原先的记录仪则无法满足需求。但基于CMP协议时,捕获模块与记录仪之间始终通过CMP协议通讯,可实现数据记录仪复用。
>数据包的分割及组包功能
捕获模块与数据接收端基于以太网传输,同时支持巨帧功能,可支持超长数据包的传输,或将数据短包组包上传。
>时间戳
捕获模块支持时间戳功能,传输的CMP报文包含时间戳信息。
>报文丢失检测
在CMP报文的报头中,有一个2字节SSC(Stream Sequence Counter)信号。相应Stream ID和Device ID发出的数据流,SSC初值为0。捕获模块每发送一条CMP报文,SSC加1,最大值为0xFFFF,然后再从0递增。数据接收端通过信号SSC判断传输数据是否丢失。当检测到数据丢失后,数据接收端通过DataLostEvent类型的状态报文告知捕获模块。
CMP报文类型
CMP报文类型包括以下四种:
数据报文Data Message
数据报文用于传输捕获模块采集到的数据。
状态报文Status Message
状态报文可用于传输捕获模块状态信息,包括报文丢失状态、时间同步状态、自定义状态信息等。
控制报文Control Message
控制报文用于在捕获模块和数据接收端之间交换信息,比如Cold Start应用等。
供应商自定义报文Vendor-defined Message
图3:CMP报文类型
图4:CMP报文格式
图5是Data Message的示例报文。CMP Header由8字节组成,不同类型CMP报文的CMP Header定义一致,其中MSG Typ(即Message Type)数据值代表不同的报文类型,Message Type 0x1代表Data Message。Data Message Header由16字节组成,内容包括8字节Timestamp,4字节Interface ID,1字节 Common Flags,1字节Data Message Payload Type(如0x01代表CAN,0x02代表CAN FD,0x8代表Ethernet等),以及2字节的Data Message Payload Length,来标识报文中Data Message Payload的长度。Data Message Header后传输的则是Data Message Payload,具体每种数据类型的打包方式,可参考协议详细了解。
图5:Data Messages示例
03新一代VX1161.42 CMP捕获模块
VX1161是专为高带宽数据采集和传输设计的可配置多通道接口设备。2024年6月发布的VX1161.42 CMP捕获模块板卡,将支持3路ETH TAP。VX1161.42板卡可通过VXtools工具包进行配置,配置内容包括Stream ID、Device ID、Interface ID、PTP同步等信息。VX1161.42板卡采集的数据,可通过VX1161.22数据采集板卡上传。
图6:VX1161.42
04利用CANape采集和记录CMP数据
CANape 22开始支持CMP功能,目前已经支持的CMP协议类型包括CAN、CAN FD、LIN、FlexRay以及Ethernet,支持的CMP报文类型为UDP。
当通过电脑采集CMP报文时,CANape 22支持通过VN5601或VN5620接口卡(支持USB Adapter特性)连接捕获模块来采集CMP报文;如通过VP6000/VP7000/VP75000系列进行采集,可直接将捕获模块连接至网口进行采集,如图7。
未来,Vector也将支持更多CMP特性,包括REST API、gPTP和IEEE 802.3以太网等。
图7:CMP记录硬件系统
CMP配置工具 – Hardware Mapping Assistant
CMP报文的相关参数,如Stream ID等,可通过Hardware Mapping Assistant工具配置完成。
图8:打开Hardware Mapping Assistant页面
点击左侧菜单CMP Interface Editor,可进入CMP配置页面。在CMP Configurations配置页面中,点击星号*可依次添加CMP传输报文。配置参数包括Interface Id、Stream Id、Device Id、BusType,以及UDP传输的Destination IP及Destination Port。Interface Name和Stream Name可自定义名称。
配置完CMP报文信息后,还需要在CMP Ethernet Network Configurations页面中,创建CMP Logical Network网络,将对应CMP报文映射到CMP网络中(图9),以便后续选择CMP报文网络通道。
说明:只有ETH类型需要创建CMP Ethernet Network Configurations。
图9:CMP Interface Editor配置界面
CANape采集及显示CMP报文
在CANape中,可通过创建ETH Monitor以太网监测设备,采集CMP报文。对于CMP报文中的信号,可通过添加对应数据库进行解析。
图10:Ethernet Monitor Device创建方法
设备创建完成后,可到CANape Device Configuration页面中,选择对应的CMP网络,如图11。图11中选择的网络通道CMP_ETH1,即为图9中,CMP Interface Editor中创建的CMP网络通道。
图11:CMP网络配置
点击测量开始后,Graphic Window等显示窗口可实时解析采集信号,Trace Window可显示CMP报文信息,显示效果如图12。
图12:CMP显示效果
03小 结
CMP是一种新的采集记录协议,通过解耦采集系统和记录系统,极大地提高了系统的灵活性。记录平台统一使用以太网接口接收数据,兼容各种接口类型的采集设备。未来CMP是一统数据记录江湖还是补充客户已有记录方案的缺失环节,让我们一起拭目以待。
全部0条评论
快来发表一下你的评论吧 !