【付费专栏】汽车通信协议
文章平均质量分 86
》LIN总线介绍,LDF文件分析
》CAN总线介绍,ISO11898规范文档分析,CAN网络管理,测试方法
》DoIP协议介绍,ISO13400规范文档分析,DoIP协议一致性测试
》SOA面向服务介绍,SOMEIP协议介绍,SOA接口测试
优惠券已抵扣
余额抵扣
还需支付
¥299.90
¥399.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
汽车通信技术
汽车通信技术专家。专注于车载网络诊断以太网测试与网络架构需求开发。涉足:汽车,网络,诊断,以太网,CANoe,SOMEIP,DoIP,TSN,SOA,Python,测试等。独立开发课程《CAPL编程语言系统性课程》《车载以太网通信测试》。
展开
-
整车刷写策略中的路由转发模式
在整车网络架构中,诊断仪给车内节点刷写软件时,通过整车OBD口,连接车辆边缘节点的以太网Tx接口。原创 2023-10-08 14:45:58 · 379 阅读 · 0 评论 -
诊断27服务介绍
在UDS诊断协议中,有一些服务,比如2E服务写入DID数据,2F服务控制输入输出,它们都会改变ECU控制器的内存数据,所以在请求这类服务时需要慎之又慎。诊断协议设计了一个安全解锁机制,让ECU在接收到某些诊断服务(2E、2F等)前需要处于解锁状态,这就是27服务实现。原创 2023-09-26 17:17:15 · 884 阅读 · 2 评论 -
CAN总线数据链路层
CAN报文帧种类:原创 2023-09-25 16:09:48 · 316 阅读 · 0 评论 -
CAN总线物理层
本文的目的并不是为了介绍或普及CAN总线相关知识,而是为了了解CAN总线,进而为CAN通信一致性测试做知识储备。CAN,控制器局域网,全称:Controller Area Network。1986年,由德国Bosch公司为汽车开发的网络技术,主要用于汽车的监测与控制,目的为适应汽车“减少线束的数量”、“通过多个网络进行大量数据的高速传输”的需求。原创 2023-09-21 15:17:49 · 368 阅读 · 1 评论 -
CDD诊断数据库的简单介绍
数据库是以结构化方式组织的一个数据集合。比如DBC数据库:Display通过结构化的方式把网络节点Display里Rx报文EngineState(0x123)层层展开。这种方层次清晰,结构分明,易于查找。CDD的全称为CANdelaStudio Diagnostic Description,它是由Vector公司制定的一个以结构化方式组织的诊断命令集。介绍信息和ECU所支持的通讯接口(CAN、LIN等)支持的DTC列表(诊断错误代码)支持的通用诊断服务支持的变种分类。原创 2023-06-15 11:09:49 · 1389 阅读 · 0 评论 -
TLS协议在ISO13400-2-2019文档中的内容解析
我很久之前写过解读ISO13400文档的系列文章:《详解ISO 13400文档(DoIP协议)》。当时没有说明解读的是哪一版13400,现在回过头看,应该是ISO13400-2-2012版本。那一版里没有TLS协议的相关内容,所以写的文章中也没有体现。我们今天只关注增加的TLS部分!原创 2023-05-30 15:24:59 · 1226 阅读 · 0 评论 -
SOME/IP中间件通信流程
本文根据文章《CAPL如何实现SOME/IP协议通信:SomeIP_IL.dll函数篇(超两万字详解)》内容,抽取总结出SOME/IP通信流程,正不正确的另说,目的是为了加深对SOME/IP中间件的理解。 首先,不管是消费方consumer,还是提供方provider,都有自己的someip中间件。本质上,它是一个程序,作为应用层和协议栈的桥梁,把应用层调用的服务接口通过someip消息的形式发送给对端。对端的someip中间件获取这个someip消息后,调用正确应用层的服务接口。原创 2023-05-17 14:23:12 · 1315 阅读 · 0 评论 -
如何制作DBC文件
DBC文件在CAN网络的设计和测试中起着非常重要的作用,通过DBC,可以把CAN网络中大量的数据解析成直观的消息和信号,方便用户分析DBC什么是DBCDatabase CAN,CAN网络的数据库文件,定义了CAN网络的节点、消息、信号的所有细节,包括每个节点会发送哪些消息和接收哪些消息,每个消息里里包含哪些信号,每个信号位于消息的哪个位置,值有哪些,每个值代表的含义是什么,等等DBC的用途是什么节点之间发送和接收CAN消息时,只会是一串数据,更细点可以说是一串字节数,再细点本质上是一串0和.原创 2021-05-21 09:21:05 · 8559 阅读 · 4 评论 -
DBC数据库中定义信号时采用的两种字节顺序:Intel、Motorola(深度好文)
我之前写过好几篇文章介绍大端小端的存储、显示和读取。在介绍DBC的文章中,也有信号在CAN消息数据中如何定义的顺序,它和大端小端采用的原理相同,但是不能带入数据大端小端存储的方法。这里千万要注意!DBC数据库中定义信号时采用的字节顺序,如果想讲明白,很简单。但是如何讲明白的同时,还能通俗易懂,让人容易记住,这是我一直思考的问题!之前看过几篇别人写的介绍信号字节顺序的文章,怎么说呢?不那么通俗易懂,尤其对于初学者来说,太八股文了,今天尝试以我的角度解读信号的字节顺序。这篇文章,我打算通过:画图、举例与分原创 2023-04-06 17:59:33 · 2827 阅读 · 0 评论 -
详解SOME/IP-SD协议文档-翻译版
1 介绍和概述这份协议规范规定了协议SOME/IP Service Discovery (SOME/IP-SD)的格式、消息序列和语义服务发现协议的主要任务是在车载通信中传达功能实体(也就是服务)的可用性,以及控制事件消息的发送行为。这允许只发送事件消息给那些需要它们的接收者(发布/订阅),此处描述的解决方案也称为SOME/IP-SD(基于IP的可扩展的面向服务的中间件-服务发现)可以看出,SOME/IP-SD有两个功能:应用程序之间传达自己的服务或获取对方的服务是否可用向其他应用程序订阅服务原创 2022-01-26 12:49:10 · 5555 阅读 · 0 评论 -
UDS-传输层参数
UDS-传输层参数前言““诊断服务作为应用层的服务功能,实现逻辑很简单,请求-响应,一来一回之间,需要对每个间断进行时间设置””之前在介绍UDS服务时,UDS由物理层、链路层、网络层和应用层组成,其中并没有传输层然而不管是ISO官方文档还是CANoe工具,把应用层的定时参数看作是传输层功能,其中有以下几种:P2Client客户端在成功发送请求消息到收到响应消息的超时时间P2Server服务器在收到请求消息后到发出响应消息时的性能要求P2*Client客户端在原创 2021-03-15 16:09:25 · 3501 阅读 · 0 评论 -
如何生成关于时钟同步功能的DTC
汽车的ECU里功能故障会生成DTC,对于支持网络时钟同步功能的ECU来说,如果时钟同步失败,或者无效的时钟同步主机发来的ptp报文,都会生成对应的DTC code所以如果想生成DTC,必须满足上面的条件,就需要模拟时钟节点给ECU发送ptp报文如果你还不了解时钟同步,请参考PTP协议时钟同步失败先想一下,如果时钟同步功能正常,ptp报文应该是什么样?先看下ptp Sync报文再看下成对的ptp Follow_Up报文你会发现,Sync和Follow_Up成对出现,它们的sequenceId原创 2021-03-27 18:47:56 · 655 阅读 · 0 评论 -
UDS-网络层和数据链路层
UDS诊断服务位于应用层,应用层下面是网络层,所以诊断数据从应用层下压到网络层,由网络层进行数据的解包、打包、传输网络层网络层用的协议是CAN协议,规范是ISO 15765-2,它是诊断对网络层的说明我们知道UDS是应用层里的诊断功能的协议,它的结构是:服务标识符(Service ID) + 子功能(SubFunction)/数据位(DataIdentifier) + 数据(Data)那应用层的结构是:应用层头部 + UDS数据结构,这里的应用层头部就是:源地址(发送节点地址)+ 目.原创 2022-05-10 11:20:04 · 4099 阅读 · 0 评论 -
Python的高阶玩法:面向对象编程思路在SOA中的使用
python语言是面向对象的编程语言。关于什么是面向过程和面向对象语言,我们以简单的"我开门"为例。我是主语,开是动作,门是对象,对于"我"来说,开门是一个过程。但是如果以"门"为切入点,"门"被打开了,这里"门"是对象那面向过程编程和面向对象编程的思路有什么区别呢?我们以"我"从屋外进入屋内为例:如果是面向过程编程的思路:"我"是按照过程一步步来实现进入屋内的目标,首先"我"开门,然后"我"关门。如果用编程实现,先编写一个开门的函数,再编写一个关门的函数,然后按照顺序调用它们如果是面向对象编程的思路:在"原创 2022-12-05 15:29:57 · 647 阅读 · 0 评论 -
SOA面向服务架构:通信逻辑与SOME/IP消息格式
client和server进行soa通信所使用的所有的参数都是配置在arxml文件中,包括:ip地址、port口、传输层协议、find service的次数,等等…原创 2022-11-08 12:24:22 · 2165 阅读 · 1 评论 -
DoIP协议:通用DoIP首部否定确认码02和03的区别
当外部测试设备(诊断仪)发送DoIP消息给DoIP实体时,DoIP实体的传输层把DoIP消息(传输层payload,即DoIP header + DoIP payload)上发给DoIP协议层。原创 2022-09-28 11:45:41 · 1585 阅读 · 0 评论 -
SOA面向服务架构:服务、服务实例、ARXML、服务接口调用、各参与方以及协议选择
服务由一组服务接口组成,代表了某个功能,比如蓝牙音乐服务原创 2022-08-04 10:46:54 · 2837 阅读 · 0 评论 -
DoIP协议一致性测试
DoIP协议,是诊断基于IP网络的通信协议,上连UDS诊断,下连TCP/IP协议栈。DoIP协议一致性测试,是DoIP协议层本身的测试,既不包括UDS应用层和诊断功能测试,也不包括TCP/IP协议栈测试。只参考ISO13400-2需求文档对于外部测试设备或诊断仪来说,它连接着汽车对外的网口。根据13400里的整车网络架构描述,汽车内部网络节点是通过一个DoIP网关和外部进行DoIP诊断通信,这个网关对外的接口连接着诊断仪,对内的接口连接着其他DoIP节点或边缘节点。............原创 2022-07-14 21:03:36 · 2064 阅读 · 0 评论 -
LIN数据库文件LDF介绍及使用
创建或编辑LDF文件,需要打开Vector LDF Explorer工具,有三种方式:通过电脑系统找到LDF Explorer双击LDF文件CANoe软件的菜单栏Tools里找到LDF Explorer第三种方式要注意,如果你菜单栏Tools里没找到,那是因为你没有配置LIN通道。只有配置了LIN通道,LDF Explorer才会出现。取消配置LIN通道,LDF Explorer消失隐藏,不信的可以去试试打开一个LDF文件,查看文件结构:主机节点:就像下面这样:发布者就是主机节点,订阅者就是从机节点,发现两原创 2022-07-13 21:11:10 · 9048 阅读 · 1 评论 -
UDS-如何在CAPL中实现读取DTC和它的状态
我们在测试某个DTC Code时,首先会触发这个DTC产生的条件,然后用CANoe的诊断控制台或ODIS工具读取ECU所有的DTC,然后在显示的DTC列表里查看是否有这个DTC出现,它的状态是否是当前DTC,然后再取消触发这个DTC的条件(不满足),然后再去读取DTC,看这个DTC的状态是否变成了历史DTC。这就是测试DTC功能的一般流程,现在我们看下如何在capl中自动地实现它DTC读DTC的诊断服务SI是0x19,它支持子功能,其中0x02子功能用于列出所有DTC及它的状态码一个DTC格式:.原创 2022-05-14 17:15:43 · 4545 阅读 · 4 评论 -
UDS-如何在CAPL中实现诊断服务的请求和响应
在以太网中,如果想实现双方通信,简单点可以把数据传给socket对象,然后调用函数send(),把数据发出去,这样协议栈会自行进行封装、连接、分片、传送、接收、解封装、获取数据、回复等操作;复杂点可以自定义一个报文,从数据链路层、网络层到传输层头部都需要自己定义,然后通过网卡发出去。对于诊断来说也一样,由于诊断服务属于应用层,下面就是网络层,你既可以在网络层定义CAN报文实现诊断请求和响应,也可以在应用层通过某个接口来实现诊断请求和响应CAN报文实现诊断服务诊断数据,映射到网络层后,报文结构是什么样.原创 2022-05-13 10:56:14 · 3298 阅读 · 0 评论 -
UDS-基于CAPL的半自动化脚本编写流程
最近一直在做诊断方面的测试,除了UDS服务规范化的东西可以通过CANoe Diva自动生成自动化脚本,每个项目的DID和子功能都有自己的定义,需要自己手动测,或者自己根据不同项目的定义写成自动化或半自动化脚本。手动测试一般使用CANoe或ODIS工具,自动化脚本使用CANoe里的capl编写。今天了解下半自动化脚本如何编写,为什么是半自动化?因为诊断的某些用例可能涉及到功能侧的配置,需要手动确认功能是否配置正确,比如用2E写入蓝牙功能是否可见,WLAN功能是否可用,USB功能是否配置上,这些你当然可以接入.原创 2022-05-11 10:41:50 · 4597 阅读 · 0 评论 -
如何模拟CAN/CANFD总线的负载
最近群里有人问如何计算CANFD总线负载,我自己用CANoe模拟了一下CAN总线的负载,大概的思路如下:首先,我们拿最大通信速率为500kbps的CAN总线来说,500kbps就是500kbit/s,也就是1秒内总线上最大允许传输的bit数为500000个我们模拟发送一条周期报文,计算1秒内它传输到总线上的bit数,然后再除以1秒内最大允许的bit数,不就得到总线的负载了嘛计算方式如下1000是1秒,也就是1000msTsendcycle是发送的周期报文的周期时间,这里以ms为单位N是一条C原创 2021-11-03 18:37:53 · 2394 阅读 · 4 评论 -
详解ISO 13400文档(DoIP协议)-5
定时和通信参数下表包含了DoIP特定的通信参数,包括超时值和各类型的DoIP消息特定的性能要求,另外,诊断协议会话层时序被映射到DoIP消息上诊断协议会话层时序被映射到DoIP消息上,这句话要细品,诊断协议是通过DoIP消息实现的,所以它的会话层时序当然会映射到DoIP消息上,这个映射,你可以把它理解成反应,或者说是作用在DoIP消息上下表中的注释一列,是我自己的进一步解析时间参数描述参数值注释A_DoIP_Ctrl此超时是指外部测试设备等待对先前发送的UDP 消息的响应的原创 2022-01-05 19:44:36 · 2556 阅读 · 2 评论 -
详解ISO 13400文档(DoIP协议)-4
Diagnostic power mode information request and response这个DoIP消息类型用于检索车辆的诊断电源模式,例如,外部测试设备可以使用此信息来验证车辆是否处于诊断电源模式,从而可以对车辆的组件进行可靠的诊断可以看出,这个DoIP消息类型是外部测试设备发送请求报文,DoIP实体把自己的诊断电源模式信息通过响应报文告知外部测试设备什么是diagnostic power mode车辆内部电源状态影响车内网络上所有ECU的诊断能力,并标识了所有网关子网络原创 2021-11-16 20:23:04 · 1961 阅读 · 2 评论 -
详解ISO 13400文档(DoIP协议)-3
Routing activation request and response对于用TCP_DATA socket传输DoIP消息的,必须激活路由,也就是在DoIP通信前,TCP三次连接成功后,需要发送Routing activation request并得到response,才能发送诊断请求,本质上是通过发送routing activation request把源逻辑地址与对应的socket关联起来,称之为注册DoIP实体既可以是DoIP节点,也可以是DoIP网关先看一下routing ac原创 2022-05-03 00:12:41 · 2488 阅读 · 0 评论 -
详解ISO 13400文档(DoIP协议)-2
此篇文章支持pdf文件格式下载,感兴趣的读者请转发至朋友圈集赞满30,后台回复作者TCP and UDP Port先来回顾下DoIP中所有的TCP和UDP端口及其用途这里先明确这几个端口号UDP_TEST_EQUIPMENT_REQUEST:随机端口UDP_DISCOVERY:13400Dynamically assigned:随机端口TCP_DATA:13400接着再逐条分析第一条车辆发现功能,由外部测试设备发送给DoIP实体,这是一条车辆识别请求消息,所以Paylo.原创 2022-05-02 20:14:29 · 3634 阅读 · 0 评论 -
详解ISO 13400文档(DoIP协议)-1
通过浏览别人的文章,虽然能快速了解自己完全不懂的协议,但是很多细节和知识点,还是应该通过学习ISO协议规范文档,对它们有更深入更全面的理解,下面我们就通过ISO 13400,全面深入地学习DoIP协议网络层需求整车网络架构从图中可以看出,汽车内部不同的ECU具有不同的网络协议,比如LIN、CAN、Ethernet等,那么想要实现各个ECU诊断功能,就需要不同的网络通信,如果外部测试设备采用DoIP的形式,而内部的ECU网络协议各不相同,如何能让外部测试设备和汽车内部所有节点通信呢?答案是网关,.原创 2021-06-30 09:12:29 · 15833 阅读 · 10 评论 -
详解SOME/IP协议文档-3
这是详解SOME/IP协议文档系列的最后一篇,需要你的转发支持SOME/IP几种通信模式Request/Response通信请求/响应模式是最常见的通信模式之一,一个通信伙伴(客户端)发送请求消息,由另一个通信伙伴(服务器)应答客户端发送的SOME/IP Request消息的Header和Payload必须符合如下要求:构建Payload根据客户端要调用的方法来设置Message IDLength字段的值设置8个字节+Payload长度将Request ID设置为对客户端来说唯一的编号.原创 2021-10-08 19:16:49 · 714 阅读 · 0 评论 -
详解SOME/IP协议文档-2
以下内容来源于AutoSar官网的AUTOSAR_PRS_SOMEIPProtocol文档SOME/IP PayloadSOME/IP Payload由事件的数据元素或方法的参数组成,大小取决于所使用的传输层协议,对于UDP,payload介于0到1400个字节之间,而由于TCP支持payload分段,所以支持更大的长度SOME/IP payload应以网络字节顺序编码,也就是大端规则传输数据结构的序列化将结构化的数据按照一定规则转换成byte字节流,然后封装到SOME/IP的paylo.原创 2021-08-28 19:43:04 · 1211 阅读 · 0 评论 -
详解SOME/IP协议文档-1
以下内容来源于AutoSar官网的AUTOSAR_PRS_SOMEIPProtocol文档SOME/IP什么是SOME/IPSOME/IP,全称Scalable service-Oriented MiddlewarE over IP,基于IP的可扩展的面向服务的中间件基于IP的基于TCP/IP通信协议可扩展的不拘泥于某一个系统,可以用在多个系统上运行面向服务的是直接为应用软件所使用的中间件程序所以SOME/IP是一套用TCP/IP协议帮助不同平台上的分布式应用.原创 2021-08-09 18:57:18 · 2060 阅读 · 2 评论 -
汽车LIN总线协议(超详细)-2
本篇为LIN总线协议的最后一篇,由于LIN协议目前使用较少,后续还有些内容感兴趣的自行了解进度表什么是进度表,为什么LIN总线需要进度表,这还要从CAN总线的仲裁机制讲起什么是仲裁机制,为什么CAN总线需要仲裁,这又要从CAN总线的几个特征讲起CAN总线在物理上由CAN高和CAN低两根线组成,它的总线电平是由两根线的电位差来判断的,而不是两根线单独传输数据,总线电平分为显性电平和隐形电平,分别表示二进制中的0和1CAN总线上挂载多个ECU单元,每个ECU单元都可以发送和接收数据,这就导.原创 2022-05-02 19:53:35 · 2093 阅读 · 0 评论 -
汽车LIN总线协议(超详细)-1
LIN,Interconnect Network,适用于速度和可靠性要求不高、低成本的场合,LIN的使用场景包括车窗、天窗、座椅、门锁、空调、照明等舒适性相关的地方LIN网络主机节点/从机节点不同协议的网络需要网关相连接,所以LIN网络与CAN总线相连时,需要加入CAN-LIN网关,这个网关一般由LIN网络的主机节点充当LIN是单线总线,最大传输速率为20kbps,它采用的是一主多从的概念,就是一个LIN网络只会有一个主机,多个从机由于物理层限制,一个LIN网络最多有16个节点,那么除去一个主机原创 2022-05-02 19:49:56 · 4694 阅读 · 1 评论