KWP2000协议学习笔记(一)
KWP2000协议是汽车行业最常用的通信协议之一,属于标准OBDII协议的一种,KWP又称为关键字协议,下面从通信过程,物理层特性,系统进入,帧结构、命令交互、交互时间参数、常用命令来介绍。以后会针对这些要素具体分析,比如物理层特性具体深入到硬件电路方面,现在先简单大概的描述下。
通讯过程
诊断仪在K-线上传送一个唤醒模式(WUP)的信号该信号在一段空闲时间以后以25ms的低电平开始在TWUP的时间后接着第一个下降沿诊断仪发送启动通信服务的第一个位,诊断仪必须使用10416的波特率进行初始化和通信
物理层特性
通常采用波特率10416;
空闲电平通常为12V;数据位格式为1+8+1,没有校验位。
系统进入初始化
有快速初始化和5bps初始化两种方式。其中5bp初始化常是车型年限较老的,或者柴油卡车类型。
快速初始化:由诊断仪发送25ms的拉低电平(常态是高电平),然后是25ms的高电平,再发送系统进入数据,系统进入数据通常为5个字节,ECU响应7个字节,完成系统初始化交互。具体参见下图:
5bps初始化:诊断仪发送5bps的地址码,回馈若干个字节作为回应,回馈的字节来源于字节,回馈的第一字节是0x55,ECU响应0x55方波,测试仪根据测试此方波的时间间隔来计算波特率KW1,KW2,设备对KW2取反发回给ECU(也可能不发,如果不发,这初始化直接完成),ECU对地址码取反发回给设备,完成系统初始化交互。其中0x55这个字节用来规定后面的通信波特率。
帧结构
帧格式:FMT(帧头) TRG(目标地址)SRC(源地址)LEN(长度)DATA(数据)CS(校验码)
举例:
发送:81 10 f1 01 81 03
接收:81 f1 10 01 c1 43
- 1
- 2
命令交互
回复的格式通常是pos位(有效位)+0X40,目标地址和源地址互换
5bps协议的会比较特殊
各个车型各个系统的系统ID不一样,通常需要要采集数据,比如发动机0xE0对应0xE8
交互时间参数
ECU应答的字节间隔时间间隔P1,通常为5ms
诊断仪请求和ECU应答或两个ECU应答的间隔时间P2,通常为0ms
ECU应答结束和新的诊断仪请求开始间隔时间P3,通常为75ms~90ms
诊断仪请求的字节间隔时间P4,通常为20ms
P1必须大于实际侦测到的字节间间隔,一般情况比实际侦测到的字节间间隔多3ms
服务命令
系统进入:0x81
系统退出:0x82
写数据流:0x3b
通信保持:0x3E
读故障码状态:0x17
清除故障码:0x14
读版本信息:0x1A
读数据流:0x21
读故障码:0x18
读冻结帧:0x12
输入输出控制:0x30
开始运行时:0x31
停止运行时:0x32
请求运行时结果:0x33
请求下载:0x34
传递数据:0x36
请求传输退出:0x37
加密:0x27
访问通信参数:0x83
KWP2000协议学习笔记(一)相关推荐
- KWP2000协议学习笔记(二)
KWP协议 帧:帧头,帧数据,校验 帧头:物理地址定位及其他网络信息 帧数据:数据体. 在一汽车系统中,有多个ECU,他们通过一个公共的K线联结,每个ECU都有一个唯一的物理地址,例如,enging的 ...
- Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】
Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...
- Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】
Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...
- POP3协议学习笔记
今日得闲,于是将POP3的学习笔记也整理出来! 互联网上的TCP/IP,POP3/SMTP等资料多如牛毛,这里只是自己一点点心得,另外对于各位网络方面的大牛请安静的路过,我可不喜欢在关公面前耍大刀.. ...
- CoAP协议学习笔记 1.3 用UDP工具来调试CoAP
1 前言 CoAP的调试,目前没找到好用的工具,网上说的火狐插件现在也不能用了,多希望手头的TCP/UDP网络调试工具就可以支持. 既然CoAP是基于UDP来组包的,那肯定是可以实现. 所以这篇文章给 ...
- 网络协议学习笔记 · 22
IPv6 · 流媒体 · 即时通讯 · 缓存 · 网络爬虫 VPN 作用 VPN与代理的区别 实现原理(隧道协议) 网络爬虫 简易实例 robots.txt 无线网络 缓存(Cache) 响应头 请求 ...
- CoAP协议学习笔记 1.2 一张表了解 CoAP 协议
1 前言 对于CoAP协议的学习,这份100多页的文档肯定没法背下来.我们只需把协议当作工具书,大体知道主体的内容,在遇到细节问题时再去具体章节找问题. 本篇笔记中先对 CoAP 协议内容做个基础了解 ...
- CoAP协议学习笔记 3.1 CoAP协议翻译 加密基础介绍
CoAP协议学习笔记可点此查看. 1 前言 在之前的学习中,没有过多关注加密.但实际部分厂家的IoT平台(阿里云.OneNET)已经启用了相关安全处理,有必要深入学习下. 在 CoAP 协议 RFC7 ...
- BGP协议学习笔记——BGP基础
BGP协议学习笔记--BGP基础(BGP概念.BGP报文.BGP状态机.BGP关系建立.BGP路由通告) 说明:本文学习笔记整理自网络.华为公开产品文档.华为公开PPT及部分的自我理解 一.BGP简介 ...
最新文章
- 通过命令行启动 Microsoft File Transfer Manager
- CTFshow 爆破 web25
- composer Failed to decode zlib stream
- C语言实现随机生成0~100的数
- python bottle框架 重定向_Python的web框架bottle静态文件的路径
- postman+newman生成html报告
- Ubuntu 安装 Linux Deepin 截图工具(.deb)
- 在DialogFragment中显示大图片
- 手动创建一个标准web工程
- webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
- 二元logistic模型案例_二元Logistic模型(上)
- 2012年全国医院排名(转)
- 5G无线技术基础自学系列 | 时域资源
- 重磅!首届倍增科学技术研究院高级研究员研讨会胜利召开
- 中国历史各王朝的知识点总结记忆
- HTL里面使用sling model的时候传参问题
- 20、Java——迷你图书管理器(对象+集合)
- 【已解决】部分安卓手机,部分ios机型,调微信的jssdk方法失败
- 【8022】产品管理与产品营销的区别
- 要求: 编写一个程序,提示用户输入: 姓名 ,身份证号(需要一次输完,中间用逗号分隔)随后打印用户的星座。 提示:输入功能用C实现会很简单,其他语言的话,就不用输入姓名和逗号了,直接输入身份证号就