CANoe中的Channel-based access和Network-based access
“Channel-based access是基于总线搭建车载网络的,就是创建总线通道接入多个ECU节点,这符合LIN或CAN网络的网络布局
”
“
而对于以太网来说,交换机才是它的标志,所有数据通过以太网端口进行转发,所有的设备连接在交换机的端口上,这就是为什么Network-based access又称为Port-based network access
”
当然CANoe的以太网也可以用Channel-based access来搭建,但是这种方式需要在Simulation Setup上创建Eth channel通道,还需要把它和物理端口进行映射,如果只有两个节点,一般采用直连,如果有多个节点,使用Switch模式连接
那么Channel-based access和Network-based access如何设置呢
两种方式
鉴于Channel-based access大家都很熟悉了,我们了解下什么是Network-based access,以及如何配置
Network-based access
Port
端口是Application(如CANoe、CANape)的仿真节点或真实设备(如ECU)的接入点
仿真节点接入虚拟端口,真实ECU接入物理端口
每个端口都有一个唯一的名称,并且恰好分配给一个Segment
Port(Physical)
每个Vector设备提供一定数量的以太网物理接口,每个物理连接只分配一个物理端口,Application可以通过物理端口配置物理层属性
物理端口可以分配给Segment进行物理连接,未分配的物理端口将禁用物理连接并且无法进行通信
Port(Virtual)
虚拟端口不代表任何物理连接,因此,无法配置物理层属性
仿真节点(例如CAPL程序或交互式生成器块)通过虚拟端口连接到以太网
可以创建的虚拟端口数量受硬件限制(例如VN5640最多支持32个虚拟端口)
在大多数情况下,虚拟端口由Application自动创建,无需用户设置,它和物理端口需要手动配置到Segment上不同
Segment
Segment充当端口之间的耦合元件
必须至少创建一个Segment并连接到一个物理端口
每个segment都有一个唯一的名称,并且恰好分配给一个网络
Segment有两种类型,Switch和Link
Switch Segment
Switch segment提供二层交换机的基本功能,可以将任意数量的端口分配给一个switch segment
Link Segment
一个Link Segment总是完全透明地连接两个端口
Link segment用于透明转发以太网数据包和物理层的状态(例如链路开启/关闭、OPEN Alliance TC10 唤醒/睡眠)
当要考虑两个端口之间的消息流量时使用link segment,因为这样不会有其他设备通过switch发过来的报文,比如广播报文
TAP (Test Access Point)
连接两个物理端口,具有非常低且恒定的延迟(≤ 6 µs)
Direct Connection
一个物理端口到一个虚拟端口的连接
Network
Application的Simulation Setup上可以创建Ethernet network,可以理解成是创建一个局域网
一个network有一个或多个segment,其实就是一个局域网有一个或多个交换机
Uplink
上行链路将接口连接到主机,可以配置过滤器以减少上行链路上的数据传输
其实就是VN5650这样的盒子连接到电脑上的那根usb线
Host: Vector Application
从设备固件版本11.1开始,USB和/或以太网可用作Vector应用程序的上行链路
Host: Mirroring
以太网数据包可以通过镜像上行链路进行镜像,例如,数据记录器可以连接到镜像端口
如何搭建网络
例如以下示例的网络拓扑
该示例包含两个复杂的网络节点(N3和N4),每个节点都有一个集成交换机
这两个网络节点将与网络节点N1和N6一起进行仿真
网络节点N2和N5是真正的ECU
11.1版之前的设备固件允许每个以太网接口最多一个switch segment,因此,需要两个以太网接口,这里说的以太网接口就是CANoe硬件设备连接电脑的usb接口
以太网接口通过两个应用通道(ETH1和ETH2)连接到CANoe,这导致在CANoe的Simulation setup中需要新建两个以太网网络
左侧就是用11.1之前的固件版本搭建的示例的网络拓扑,采用的Channel-based access
右侧就是用11.1之后的固件版本搭建的示例的网络拓扑,采用的Network-based access
很明显能看出,11.1之前的硬件一个硬件只支持一个switch segment,所以如果想搭建示例中的网络拓扑,就必须用两台CANoe硬件设备
而且11.1之前的硬件必须采用Channel-based access,所以要在Simulation Setup里创建ETH1和ETH2两个channel,在这两个channel上创建仿真节点
能看出有Bus总线标记,且新建的仿真节点和总线相连接
而对于network-based access,只需要在创建的network里添加仿真节点即可
可以看出有Switched标记,且新建的仿真节点不会有连接线
11.1版本之后的设备固件允许自由分Segment,因此,可以使用此版本定义具有关联端口的两个Switch segment
两个Segment都分配到同一个网络Network1,Simulation Setup中仅需要一个以太网网络(网络名称=Network1)
报文的接收和发送方向
接口接收到的以太网数据包总是标有Rx方向,在这种情况下,数据包是由应用程序(例如CANoe模拟)生成还是来自真实网络无关紧要
从接口发送到真实网络或模拟/应用程序的数据包(例如,由于Switch segment中的转发规则)被标记为Tx数据包
对于Channel-based access来说,Application发到总线上的,在trace窗口里消息显示Tx,从总线上收到的消息显示Rx
而对于Network-based access来说,Application发到switch端口上的报文,对端口来说,是接收的,在trace窗口里显示Rx,Application接收到的报文,是从switch端口发出来的,就显示Tx
我创建了两个仿真节点,192.168.1.2和192.168.1.3,用192.168.1.2 ping 192.168.1.3,在trace窗口中发现
我明明只ping了一次,为什么会显示两个ping报文,而且方向相反,其实是因为
总结下来就是
“
Trace窗口里捕获的消息是Application里的所有仿真节点发送和接收的报文,它们的方向以switch端口接收和转发为标准,接收的是Rx,发送的是Tx
”
在CANoe/CANalyzer中,Trace窗口Sim列可用于显示CANoe/CANalyzer发送了哪些数据包
配置以太网硬件
以太网接口的所有相关属性都使用Ethernet Device Configuration对话框进行配置,该对话框是从Vector Hardware Config 应用程序打开的
选择识别到的支持以太网的设备,右击选择Ethernet Device Configuration,就可以配置以太网接口
上面示例的网络拓扑如果用Network-based access的模式配置的话
就会是这样
上面的以太网设备配置框表明
“
具有网络(Network1) 网段(Switch_N3、Switch_N4) 物理端口(N2、SWN3、N5、SWN4) 虚拟端口(N1、N3、N4、N6)将由Application动态创建,不需要在以太网设备配置中进行配置,所以没有显示在这里 ”
“
相当于建立了一个局域网Network1,里面设置了两个交换机Switch_N3和Switch_N4,然后把硬件设备上的物理端口1和3配置到Switch_N3上(可以通过拖拽的形式),把端口2和4配置到Switch_N4上
”
至于Simulation Setup里Network1上的仿真节点,会自动创建虚拟端口
各种应用程序和设备固件版本的兼容性
从下图可以看出
想使用Network-based access必须软硬件都支持设备固件版本满足11.1以上
像VN5610(A)、VN5640和VT6306接口,可以使用所有设备固件版本,包括版本11.1
较新的接口(例如VN5430、VN5620...)仅支持设备固件版本 ≥ 11.1
设备固件版本取决于安装的驱动程序版本
而Application从CANoe12.0版本支持固件版本11.1
自动迁移
使用CANoe/CANalyzer 12.0 SP4,可以自动把工程从Channel-based access迁移到Network-based access
迁移向导将指导你逐步转换CANoe/CANalyzer配置以及硬件配置
自动迁移在以下情况下效果最佳:
有一个channel-based的CANoe/CANalyzer工程和连接的硬件以及正确的应用通道分配 或channel-based的CANoe/CANalyzer工程和包含硬件配置设置与应用通道分配的vaset文件
迁移完成后,你的配置将处于Network-based access模式,并将引用硬件配置文件
应用硬件配置会将硬件切换到基于端口的网络访问模式并将硬件配置写入以太网接口
手动迁移
首先,必须激活Network-based access,在激活后,将为Simulation Setup中的每个节点创建模拟端口
然后使用Ethernet Hardware Configuration来创建合适的hardware configuration
最后一步,可以在跟踪窗口中添加两列Port(s)和Sim
端口在各模块中作用
Ports in CANoe
端口定义了刺激连接的位置,或者网络中测量的数据是哪些
Simulation/Stimulation
将节点添加到仿真设置后,会在端口配置对话框中自动添加一个仿真端口
当测量开始时,CANoe 将此端口分配给连接接口上网络中可用的Segment(具有相同名称)
Measuring
端口还用于定义在网络中测量信息的位置
必须在Port Configuration的Measurement Ports列表中添加与测量相关的端口
Trace Window
trace窗口有Port项和sim项
Sim
表明以太网数据包是否从 CANoe 发送
Port
显示测量到的以太网数据包经过的端口名称
以上文章参考Vector文档AN-IND-1-023_Ethernet_VN_Family_From_Firmware_Version_11.1.pdf