意义
路由表做为路由测试的需求之一,是车载测试工程师完成路由测试必须熟悉的需求文档。因此,我们需要理解路由表定义的内容。
报文路由表
报文路由表主要定义了采用报文路由的方式进行路由的所有路由关系。如下图:
- Signal Name
信号名称,对于报文路由来说此列在路由表一般不做描述;在前文对报文路由的定义做了详细介绍,简单说就是报文路由是将完整的报文从源网段路由到目标网段,不对信号的位置和值做任何处理,所以说是按照整帧报文进行路由的。 - Message Name
报文名称,目的是对正常报文进行辨识标识,就跟咱们人名一样,这个名称一般是唯一的。一般主机厂的命名方式为:
- 报文的发送节点_报文标识符
- 报文的发送节点_报文功能含义简写
- 报文ID:报文标识符,标识报文唯一性的属性,命名为0x…(代表16进制)。CAN报文帧类型分为标准帧和扩展帧,标准帧ID长度为11bit,扩展帧为29bit,本文展示的是标准帧。
备注:报文是信号的载体,所有信号的发送是以报文为载体进行的。 - DLC
DLC,全称为Data Length Control,是CAN通信中的一个重要参数。在CAN通信协议中,DLC用于指示一个报文的数据字段所包含的字节数。这个信息对于接收端来说非常重要,因为只有知道数据的长度,才能正确地解析和处理接收到的报文。 - Message Periodic
报文周期,顾名思义定义的是该报文发送的周期,比如按照10ms、50ms、100ms等进行发送。 - Source Network
源网段,也就是该报文是从哪个网络发送出来的。对于报文来说一定是由整车的某个ECU进行发送的,并且该ECU一定挂载在整车的某一网络上。 - Event
有些主机厂的报文路由表会有Event属性。其含义是事件型,也就是满足一定触发条件才会发送,比如咱们在车上按了升窗的按钮,该报文就会发送出来。但是一般该属性用于描述信号,比如Event、Cycle、CE、IfActive、CA。 - Target Network
目标网段,也就是源网段发送的报文应该发往哪个目的地,应该由哪个目标网络的ECU进行接收并处理。 - Routing Type
路由类型,主要定义该报文应该按照怎样的方式进行理路由。比如:直接报文路由、周期报文路由、直接信号路由、周期信号路由。之前专题已经介绍,大家可以去进行查阅,链接如下:
车载网关测试入门1【路由功能】
信号路由表
信号路由表定义了采用信号路由进行路由的所有路由关系。如下图:
- Signal Name
信号名称,和报文名称差不多,主要定义信号的含义,让工程师能直观了解该信号的含义。上文也讲到过,报文是信号的载体,信号的发送离不开报文。 - Signal Type
信号类型,Event、Cycle、CE、IFActive、CA,表示该信号是以什么方式进行发送的。
-
Event:事件型,事件触发即发送,比如按开窗按钮,该信号就会触发发送,随之该信号对应的报文也就发送。
-
Cycle:周期型,也就是该信号是以一定周期进行循环发送的。
-
CE:周期事件型,事件未触发时,信号以规定周期进行循环发送,当事件触发后,该信号以快周期发送规定次数。周期事件型信号一般对实时性要求比较高,但是为了减少总线的负载,采用此方式。
-
IFActive:使能型,和事件型类似,使能发送类型由报文中的一个或多个信号触发,引起报文传输。当触发信号的“当前信号值≠非使能值时”,约束条件满足,触发条件发生,使能报文立刻以周期时间 T 循环发送。当信号值由使能值变为非使能值时并且再无其它使能信号,相应报文发送规定次数。
-
CA:周期使能型
CA意思是Cycle if Active,当触发信号的“当前信号值=非使能值时”,报文以周期时间 T 循环发送,当触发信号的“当前信号值≠非使能值时”,约束条件发生,触发条件满足时,使能报文以周期发送直到“当前信号值=非使能值时”。
- Signal Size
信号长度,也就是该信号在报文中占用的bit位是多少。 - Signal Position
信号位置,也就是该信号在报文的位置,因为该信号可能在发送端报文和接收端报文的位置可能不一致,所以需要按照需求得出该信号在源报文的位置和该信号在目标报文的位置。一般这个信号位置是通过测试工程师根据通信矩阵定义的Signal Size、Start_bit以及信号排布方式得来的。Start_bit就是该信号的起始bit,排布方式分为Intel、Motorola LSB、Motorola MSB,这样我们通过信号起始位置、长度以及排布方式就能知道该信号在报文中的位置了。
三种信号排布方式的如下表:
维度 | Intel格式 | Motorola格式 | LSB | MSB |
---|---|---|---|---|
核心定义 | 小端字节顺序(低字节在前) | 大端字节顺序(高字节在前) | 低位优先(从右到左传输) | 高位优先(从左到右传输) |
适用范围 | 字节级排列 | 字节级排列 | 位级排列 | 位级排列 |
典型场景 | x86 CPU、CAN总线 | 网络协议、PowerPC | UART、某些SPI模式 | 以太网、I2C |
信号路由表其他属性和报文路由表类似,就不一一列举了,参考上文报文路由表属性即可 。
通信矩阵部分属性补充
- Msg_Cycle_Time_Fast
报文发送的快速周期,指当报文发送类型不为周期型时,报文发送的快速周期,一般主机厂会明确定义,如:10ms、50ms等。 - Msg_Nr_Of_Reption
报文快速发送的次数指当报文发送类型不为周期型时,报文快速发送的次数,一般主机厂会明确定义次数,比如开窗事件触发后,开窗控制信号会发送3次,目的是避免由于丢帧导致执行器不能接收到。 - Msg_Delay_Time
报文延时时间指当报文发送类型不为周期型时,相同ID报文之间的最小间隔。 - Factor
精度,十六进制值的比例因子是为了计算信号的物理值。公式如下:
[物理值] = ( [十六进制值] * [精度] ) + [偏移量] - Offset
偏移量用来计算信号的物理值。 - Signal_Min_Value_Phy
物理最小值指总线实际换算出来的最小值。比如:100km/h - Signal_Max_Value_Phy
物理最大值指总线实际换算出来的最大值。 - Signal_Min_Value
总线最小值指总线上的最小值。 - Signal_Max_Value
总线最大值指总线上的最大值。 - Initial_Value
初始值指如果在本地唤醒、远程唤醒后网络启动时没有可用的有效信号,预定义的值将被发送(取决于需求)。 - Invalid_Value
无效值一般用于节点丢失时的替代值。比如源信号丢失N倍周期后发送的值。 - Inactive_Value
非使能值仅用于使能型及周期使能型报文。
总结
通过对路由表的解读,我们就能获取到进行路由功能测试的时候,CANoe上位机应该按照什么方式进行模拟发送,怎么进行测试结果通过与否的判断。大家可以结合以往专题(车载网关测试入门1【路由功能】)的测试点进行综合理解,希望对大家进行路由很测试有一些帮助。