- 博客(500)
- 资源 (61)
- 收藏
- 关注

原创 《CAPL编程语言》来啦!!!
这里不只有CAPL语法介绍:还会用代码演示CAPL的基本函数:这里不只有多个总线或协议介绍:还会用代码实现多种通信方式:这里不只有CANoe功能介绍:还会用操作告诉你:最后还会用题目和讲解让你了解:下图列出部分知识点:
2023-07-06 15:45:06
1552
5

原创 【史上最全最细最深】CANoe文章合集来袭(持续更新中,目前已50万字,83篇文章)
本专栏除了包含其他作者常规的CANoe介绍的文章、CANoe功能介绍的文章外,更有:CANoe使用场景如何实现、你见过或没见过的CANoe的各种疑难杂症(有的问题Vector官方都从来没有发现过),vTESTstudio大全、车载以太网在CANoe中的使用和实现、SOA新型通信模式(这应该是网上没有过的),更不要说传统的CAN、LIN总线、UDS诊断等在CANoe中使用方法了。应有尽有,前所未有!
2023-01-04 10:04:45
5040
3

原创 【全网唯一细节深入】TC8一致性测试文章合集来袭(持续更新中,目前共101篇文章)
TC8作为车载以太网一致性测试规范,在车载以太网测试中具有最重要的位置。不管是PHY芯片厂商,还是ECU零部件供应商,或者是测试方案提供商,即使是整车厂都要求具备TC8测试执行、实现和分析能力。本专栏作为全网唯一介绍TC8测试的最全面最细节最深入的专栏,提供TC8测试关于测试原理、测试方法、测试目的、报文解析、知识点解读等全方位的内容。走过路过,不要错过!
2022-11-29 14:11:38
9035
4
原创 车载以太网数据流量抓取手段全解析
在车载以太网的开发、测试与故障诊断过程中,数据流量抓取是不可或缺的关键环节。通过对流量的精准捕获与深入分析,工程师能快速定位问题、优化系统性能并验证功能的可靠性。以下将详细介绍几种常见的车载以太网数据流量抓取手段,剖析它们的实现原理、适用场景以及各自的优缺点,以帮助大家更好地选择适合的抓取方案。
2025-06-06 16:43:58
918
原创 TC8:SOMEIP_ETS_031-032
检查method echoUINT8Array8BitLength的参数当长度字段为8bit时的序列化和反序列化长度字段的标准长度为32bit,如果设置为8bit,对序列化和反序列化都会引发错误。
2025-05-20 16:02:40
70
原创 TC8:SOMEIP_ETS_029-030
检查当method echoUINT8Array16BitLength的参数中长度字段为16bit时,SOME/IP协议层是否能对参数进行序列化和反序列化。对于可变长度的数组而言,必须用长度字段表示数组长度。否则接收方无法判断有效数据。SOMEIP_ETS_028: echoUINT8Array测试用例中,长度字段的长度为4个字节,32bit。如果我们把长度字段的长度改为16bit,对于接收方而言,还是按照32bit作为长度字段,用它的值判断数组长度,这样肯定对不上号。这就是这条测试用例的目的。
2025-05-16 16:58:39
190
原创 TC8:SOMEIP_ETS_027-028
检查method方法echoUINT8的参数及其顺序能够被顺利地发送和接收说白了就是检查UINT8数据类型参数在SOME/IP协议层的序列化与反序列化是否正常。UINT8相比于测试用例SOMEIP_ETS_021: echoINT8中的SINT8数据类型来说,属于无符号整数,也就是只有正数没有负数。
2025-05-06 11:26:57
81
原创 TC8:SOMEIP_ETS_021-022
检查method方法echoINT8的参数及其顺序能够被顺利地发送和接收各种数据类型的参数要按照一定的规则编码成字节数据作为SOME/IP有效载荷传输到目标主机。目标主机收到SOME/JIP报文后,再按照相同的规则解码成正确的数据类型的参数。这就是SOME/IP协议中数据的序列化和反序列化。!!!这就是我们为什么要在TC8 SOME/IP测试用例中包含序列化和反序列化测试的原因。
2025-04-30 17:22:25
139
原创 【CAPL实战:以太网】对IPv4报文的Payload部分进行分片并创建分片包
我们今天要编写一个自定义函数,不是对网络层的数据部分分段,而是对一条给定的IPv4报文(我们姑且称之为源报文)的Payload部分,按照我们的需求,把想要的部分取出,封装成一条分片包。因为我们想让分片包的IPv4 Header尽量保持和源报文的IPv4 Header里的字段相同,又不想对所有字段一个一个赋值,所以对分片包的IPv4 Header的数据做整体的赋值。对参数的各种意外情况做了排他性后,就可以取出源报文的IPv4 Header和Payload的数据了,分别存到两个buffer中。
2025-04-24 18:14:14
121
原创 【CAPL实战:以太网】实现IP地址相关功能的自定义函数
2001:0db8:85a3:0000:0000:8a2e:0370:7334"还可以写成"2001:0db8:85a3::8a2e:0370:7334”,这样的写法也是正确的。(IPv4地址没有IPv6地址那样的缩写方式,且"172.16.02.52"这样的写法是错误的)如何把IPv4地址或IPv6地址转换到字节数组中呢?如果就给你上面的字符串形式的地址"172.16.2.52"或"2001:0db8:85a3:0000:0000:8a2e:0370:7334",你如何判断是IPv4的还是IPv6的?
2025-04-18 14:43:53
68
原创 【CAPL实战:以太网】MAC地址由整数形式转换为字符串形式的自定义函数
假设MAC地址为:01:02:03:04:05:06,字符串形式当然是:“01:02:03:04:05:06”,数字形式呢?所以我们要做的是如何把0x010203040506转换为"01:02:03:04:05:06"。0x010203040506 --> 调用函数ethGetMacAddressAsString()转换为"06:05:04:03:02:01" --> 通过某种方式颠倒字符串位置为"01:02:03:04:05:06"。一文中,我们说因为大小端存储的关系,也就有两种思路来实现。
2025-04-14 16:36:48
157
原创 【CAPL实战:以太网】MAC地址由字符串形式转换为整数形式的自定义函数
假设MAC地址为:01:02:03:04:05:06,字符串形式为:“01:02:03:04:05:06”,如果作为整数形式赋值到以太网帧的MAC地址字段上时,是用0x010203040506还是0x060504030201呢?“01:02:03:04:05:06"转换为"06:05:04:03:02:01”,然后调用ethGetMacAddressAsNumber()函数。能实现我们想要的效果吗?所以最终我们想实现的就是:"01:02:03:04:05:06"要如何转换为0x010203040506。
2025-04-14 14:51:32
82
原创 一文了解什么是复合型数据类型?
按照数据长度来说,最小的长度有bit,每8个bit组合在一起就是byte,2个byte的数据我们称为word,4个byte的数据我们称为dword,8个byte的数据我们称为qword。其次,数据的查找很方便,根据键查找关联的值。由于计算机的最小存储单元是1个字节,没有专门用来表示bit位的数据类型,所以我们一般都是用字节以上的数据,结合指定bit位的索引或下标,来表示某个bit位。虽然数组和结构体可以存储大量的数据,但它们的定义是静态的,存储要连续,会有自身的局限性。我们所熟知的数据有哪些呢?
2025-04-07 10:44:45
627
原创 【CANoe示例分析】SOMEIPWithvCDL_16
本示例来源于官方提供的示例工程:0004_基于vCDL实现SOMEIP通信_Demo\0004_基于vCDL实现SOMEIP通信_Demo\SOMEIPWithvCDL。
2025-04-01 17:11:46
92
原创 【CANoe示例分析】Easy
在CANoe软件上也可以打开此工程:File|Sample Configurations|CAN - General|Easy。
2025-03-24 18:15:44
116
原创 如何用CAPL定制化输出内容到Write窗口
Write窗口在CANoe中用于测量过程中输出出现的重要系统消息。比如日志功能的触发,测量完成后生成的统计报文或采集范围。还可以为用户的测量提供补充说明,并且在出现问题时,也会输出显示在Write窗口中,用户点击错误链接可以查看发生错误的原因,有助于故障的排除。此外,通过CAPL函数write()打印的文本信息也会显示在Write窗口。通常在执行脚本过程中,需要显示一些重要的提示信息时会调用write函数,比如执行到哪一步,又或者是某些阶段性的参数的值。而我最常用write函数的地方是调式脚本时。
2025-03-21 18:21:47
187
原创 CANoe中如何实现测试用例执行前的准备部分
XML Test Modules把测试用例和准备部分都作为XML中的capltestcase元素,好处是可以在提前显示在执行界面,测试用例根据需要勾选,但准备部分必须勾选,且准备部分要在所有测试用例的上面。MainTest()作为CAPL测试节点的主入口,虽然能够按照顺序执行所有的测试用例,但是界面显示方面并不友好,只有执行完或者执行时的测试用例才会显示在界面上,不能提前显示,更不能在界面上选择要执行的用例,需要在MainTest()中对不需要执行的testcase注释掉。
2025-03-11 10:11:38
907
原创 IPv4和IPv6协议的选择:Happy Eyeballs算法介绍
如果DNS查询是等到所有的IP地址全部返回后再建立连接,就会出现一个查询未能返回或返回时间显著较长,等待第二个地址可能会显著延迟第一个地址的连接建立。Happy Eyeballs是一种应用于网络双栈环境的算法,于2011年被提出,旨在解决IPv4和IPv6共存时可能出现的连接延迟问题,提高用户体验。Happy Eyeballs算法的竞速策略:对所有收到的两个地址族IPv4和IPv6的所有IP地址进行有序排序,竞速使用IP地址尝试建立连接。同一个DNS域名有可能会解析出多个IP地址,IPv4的,IPv6的。
2025-01-17 08:51:40
535
原创 TCP/IP传输层端口号的资源分配
我在《以太网协议在汽车应用中的动与静》一文中聊过以太网的灵活与汽车的稳定本身就是相悖的,这在传输层端口号的分配上充分体现。在TCP/IP协议中,应用程序通过传输层协议TCP/UDP传输数据,接收方传输层收到数据后,根据传输层端口号把接收的数据上交给正确的应用程序。我们可以简单地认为传输层端口号是应用程序的标识,这就是为什么我们说应用程序在使用TCP/IP协议通信时要打开传输层端口号或者绑定端口号的原因。而在RFC6335文档中,详细定义了IANA对端口号的管理,包括端口号的分类、分配和注册流程。
2025-01-13 09:43:27
963
原创 【CAPL实战:以太网】CAPL如何设置TCP/IP传输层动态端口范围
如果传入的是一个0值,就表示应用程序对于端口号没有要求,系统就会从所有的还未使用的端口资源中随机选择一个端口号来绑定。由于是客户端首先开始发送数据,发送的报文中除了服务器的端口(目的端口)外,还会携带客户端自己的端口信息(源端口)。所以我们可以认为客户端没有必要一定绑定静态端口号,绑定的端口号可以是一个动态端口。但在车载以太网中,对于车内的通信场景或功能都是提前规划好的,比如I/BCALL还有RTP环视视频流这些,它们的目的端口需要分配静态端口号资源,只能从49152-65535里分配。
2025-01-11 14:12:44
427
原创 以太网协议在汽车应用中的动与静
以太网的这些灵活的特性可以保证设备在未知的网络中尽可能地保证互联互通,可以说灵活是优势,但是在车载以太网中,灵活意味着未知,未知对汽车这种高安全性、高可靠性的产品来说却是可怕的、危险的。车载以太网以整车为局域网,本身是一个私有网络,整车以太网架构被设计出来后,所有的终端(ECU)、网关(GW)、交换机(Switch)都已确定,网络拓扑在车辆中也不会更改,所有通信设备也不会出现随时离开或接入网络的情况,可以认为网络架构和拓扑是静态的。以太网的帧结构简单且灵活,可以支持多种网络层协议,如IPv4、IPv6等。
2025-01-07 18:26:46
626
原创 一文了解什么是MQTT协议
在上面的示例中,一个温度传感器和一个湿度传感器作为MQTT客户端连接到MQTT代理。想要了解MQTT协议有没有用在汽车中,用在哪些功能场景中,首先要知道:什么是MQTT协议?MQTT中的分发不是传统意义上C/S模式中服务器的工作,而是MQTT代理来进行,它也是一个服务器,但不是传统意义上C/S中的服务器。了解了MQTT协议订阅/发布模型和通信过程后,我们再来讨论,为什么MQTT是一种轻量级协议?不管是发布者还是订阅者,在MQTT模型中都属于客户端,它们不会进行直接通信,不是C/S模型中一员。
2024-12-25 17:51:22
554
原创 CANoe在项目开发前期的多种用途
就像我在CAPL课程中为了给同学们讲解AUTOSAR网络管理测试脚本时编写了脚本模拟被测件DUT的网络管理状态切换和通信行为,在以太网课程中为了给小伙伴讲解以太网测试脚本而编写了脚本模拟被测件DUT的以太网接收和发送行为,顺便还设计了一个简单的类UpperTester原理的脚本。如果你设计整车网络拓扑,并细化所有网络节点的通信行为,前期验证所有节点在整个网络中的通信正常是必需的,CANoe可以吗?各位都是汽车行业的专家,尤其测试领域的大佬,CANoe在2和3阶段的用途想必并不陌生,这里不多赘述。
2024-12-12 17:33:06
157
原创 CAPL如何设置或修改CANoe TCP/IP协议栈的底层配置
MSS = MTU - tcpHeader - ipHeader,也就是MTU = MSS(1360) + tcpHeader(20) + ipHeader(20) = 1400,说明CAPL是可以动态设置网络底层配置参数的!然后在CAPL中设置此网卡MTU值为1400,然后创建UDP套接字,一次性发送2000个字节,在Trace窗口看看首帧报文二层Data的长度。所以我们还不能用UDP协议来验,应该用TCP协议来验,也就是在TCP三次握手时通过Tester的MSS值推导出自己的MTU值。
2024-12-11 17:52:40
531
原创 在CANoe中Ping多播地址的若干问题
既然UDP多播报文(目的IP和目的MAC是多播地址)能够被Dut接收,那么ICMP Echo Request多播报文(目的IP和目的MAC是同样的多播地址)是不能也能被Dut接收并回复Response呢?执行结果: 回复Response,说明Dut有接收ICMP Echo Request报文(目的IP地址是多播,目的MAC地址是单播)。Tester如果组装一条UDP多播报文呢,Dut能收到吗?执行结果:加入多播组的Dut能接收到UDP多播报文!执行结果:加入多播组的Dut能接收到UDP多播报文!
2024-12-06 17:03:01
263
原创 【CANoe示例分析】Basic UDP Multicast(CAPL)
在CANoe软件上也可以打开此工程:File|Sample Configurations|Ethernet - Simulation of Ethernet ECUs|Basic UDP Multicast(CAPL)
2024-12-05 19:26:04
365
原创 【CAPL实战:以太网】CAPL如何实现主机加入和离开多播组 And 主机作为数据源如何发送多播报文
多个主机要接收某个数据源发送的数据流时,通常要加入多播组。所谓的多播组也只是接收同一个数据源消息的所有主机的集合,这个集合用一个多播IP地址来表示和标识。我们说主机加入多播组其实并不准确,应该是主机里的某个应用程序要加入多播组。数据源要发送多播报文的方式有两种,一种就是组装UDP多播报文直接从网卡上发送出去,但这很明显不符合应用程序的通信逻辑。加入多播组的接收方能接收到多播报文的数据"Hello"吗?在CAPL中,发送多播报文前,需要指定发送多播报文的网络接口。你会发现UDP多播报文发不出来。
2024-12-04 14:38:30
132
原创 CANoe Trace窗口过滤栏消失的几种解决方法(附上最终解决方案)
CANoe软件15-18版本更新release!在Windows操作系统中找到已安装的更新,把version 23H2:Update KB5040442卸载掉。但缺点也很明显,不能再更新系统,否则问题又有可能出现,只能算是暂时解燃眉之急。或者还有另一种更好的方式,使用官方提供的dll文件替换来解决这个问题。但这个方式也有缺点,不能卸载后重新安装CANoe软件。想加入课程和微信群的同学后台联系我,一起进步!
2024-09-05 22:51:09
3976
1
原创 【CAPL实战:以太网】CAPL如何实现在网络节点中添加路由Entry
其实不只是CANoe的网络节点,所有设备的应用程序如果要通过Socket套接字发送报文,在网络层都需要根据路由表里配置的路由条目选择发送路径。这个路由条目可以是静态配置,也可以是自动添加。如果CANoe的网络节点添加一个网络接口,配置IP地址和子网掩码:
2024-08-22 17:00:36
305
原创 【CAPL实战:以太网】CAPL在创建套接字时不绑定端口号时需要注意的地方
在CAPL中我们使用UdpOpen()和TcpOpen()两个函数创建Socket套接字,传入IP地址和Port口绑定IP地址和Port口,作为发送报文时的源IP地址和源Port口。如果对源IP地址和源Port口没有要求,不需要绑定IP地址和Port口,可以在调用UdpOpen()和TcpOpen()时传入0,如此套接字绑定的IP地址和Port口将随机。
2024-08-21 16:54:05
262
原创 【CAPL实战:以太网】如何模拟一个被测件的ARP缓存表存储和更新动态条目的一些脚本编写思路
ARP,地址解析协议,其根本目的是根据对方的IP地址请求对方的MAC地址,填入待发送的报文的目的MAC地址字段中从网卡上发送出去。这不是我们今天要讲的重点!当主机收到ARP请求时,首先要做的并不是回复ARP响应告诉对方自己的MAC地址,而是把ARP请求报文中的源IP和源MAC存入自己的ARP缓存表中作为一条动态条目。这也不是我们今天要讲的重点!我们今天讲的重点是在CANoe中添加的网络节点,如何在CAPL程序中模拟它的ARP缓存表存储和更新动态条目的一些脚本编写思路。目的有如下几点:
2024-08-15 18:09:06
559
原创 【CAPL实战:以太网】CAPL使用结构体的方式组装一条DoIP车辆识别请求报文(payload type 0x0003)
payload type为0x0003的车辆识别请求报文携带车辆VIN码,也就是车架号。这是由17个字符组成的字符串。当放入车辆识别请求报文时,需要把字符串转换成ASCII码。
2024-08-13 17:36:51
409
原创 【CAPL实战:以太网】CAPL使用结构体的方式组装一条DoIP车辆识别请求报文(payload type 0x0002)
EID是ECU节点的MAC地址,有6个字节,无法用一个整数常量表示,只能用byte数组表示。所以,MAC地址"02:00:00:00:00:52"如何转换成{0x02, 0x00, 0x00, 0x00, 0x00, 0x52}是重点。
2024-08-13 16:38:50
288
原创 【CAPL实战:以太网】CAPL使用结构体的方式组装一条DoIP车辆识别请求报文(payload type 0x0001)
用另一个结构体表示车辆识别请求报文,上面表示DoIP头部通用部分的结构体作为它的一个成员。由于车辆识别请求报文没有payload部分,只有通用报头部分,但这并妨碍我们用结构体定义它。
2024-08-12 18:02:16
294
原创 【AutoSar网络管理】验证ecu在接收到循环发送的外部网络管理报文时一直处于ReadySleep状态
如果您对更多汽车总线、CAN网络、UDS诊断、车载以太网、CANoe工具、CAPL编程语言等知识感兴趣,请订阅其他专栏并阅读相关文章。如果您想快速提升自己,开拓自己的职业发展,请联系作者本人参加相关课程。
2024-08-02 17:12:17
309
原创 【AutoSar网络管理】检查ecu的ReadySleep状态的timeout值符合要求(方法2)
如果您对更多汽车总线、CAN网络、UDS诊断、车载以太网、CANoe工具、CAPL编程语言等知识感兴趣,请订阅其他专栏并阅读相关文章。如果您想快速提升自己,开拓自己的职业发展,请联系作者本人参加相关课程。
2024-08-02 17:03:06
260
原创 【AutoSar网络管理】检查ecu的ReadySleep状态的timeout值符合要求
如果您对更多汽车总线、CAN网络、UDS诊断、车载以太网、CANoe工具、CAPL编程语言等知识感兴趣,请订阅其他专栏并阅读相关文章。如果您想快速提升自己,开拓自己的职业发展,请联系作者本人参加相关课程。
2024-08-02 16:45:04
217
原创 【AutoSar网络管理】验证ecu能够从RepeatMessage状态切换到ReadySleep
如果您对更多汽车总线、CAN网络、UDS诊断、车载以太网、CANoe工具、CAPL编程语言等知识感兴趣,请订阅其他专栏并阅读相关文章。如果您想快速提升自己,开拓自己的职业发展,请联系作者本人参加相关课程。
2024-08-02 16:33:47
294
ieee-standard-for-secondgeneration-ieee-1857-video-coding.pdf
2022-06-22
IEEE Standard for Radio over Ethernet Encapsulations and Mapping
2022-06-22
IEEE Standard for Service Composition Protocols of Next Generati
2022-06-22
IEEE Standard for Extensions to Standard Test Interface Language
2022-06-22
ieee-standard-for-selforganizing-management-protocols-of-next-ge
2022-06-22
ieee-standard-for-wireless-access-in-vehicular-environments-wave
2022-06-22
ieee-standard-for-the-perceptual-quality-assessment-of-threedime
2022-06-22
IEEE Standard for a Real-Time Operating System (RTOS) for Small-
2022-06-21
IEEE Standard for Head-Mounted Display (HMD)-Based Virtual Reali
2022-06-21
IEEE Standard for Error Correction Coding of Flash Memory Using
2022-06-21
IEEE Standard for Environmental and Social Responsibility Assess
2022-06-21
IEEE Standard for Camera Phone Image Quality
2022-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人