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协议学习笔记(一)相关推荐

  1. KWP2000协议学习笔记(二)

    KWP协议 帧:帧头,帧数据,校验 帧头:物理地址定位及其他网络信息 帧数据:数据体. 在一汽车系统中,有多个ECU,他们通过一个公共的K线联结,每个ECU都有一个唯一的物理地址,例如,enging的 ...

  2. Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  3. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  4. POP3协议学习笔记

    今日得闲,于是将POP3的学习笔记也整理出来! 互联网上的TCP/IP,POP3/SMTP等资料多如牛毛,这里只是自己一点点心得,另外对于各位网络方面的大牛请安静的路过,我可不喜欢在关公面前耍大刀.. ...

  5. CoAP协议学习笔记 1.3 用UDP工具来调试CoAP

    1 前言 CoAP的调试,目前没找到好用的工具,网上说的火狐插件现在也不能用了,多希望手头的TCP/UDP网络调试工具就可以支持. 既然CoAP是基于UDP来组包的,那肯定是可以实现. 所以这篇文章给 ...

  6. 网络协议学习笔记 · 22

    IPv6 · 流媒体 · 即时通讯 · 缓存 · 网络爬虫 VPN 作用 VPN与代理的区别 实现原理(隧道协议) 网络爬虫 简易实例 robots.txt 无线网络 缓存(Cache) 响应头 请求 ...

  7. CoAP协议学习笔记 1.2 一张表了解 CoAP 协议

    1 前言 对于CoAP协议的学习,这份100多页的文档肯定没法背下来.我们只需把协议当作工具书,大体知道主体的内容,在遇到细节问题时再去具体章节找问题. 本篇笔记中先对 CoAP 协议内容做个基础了解 ...

  8. CoAP协议学习笔记 3.1 CoAP协议翻译 加密基础介绍

    CoAP协议学习笔记可点此查看. 1 前言 在之前的学习中,没有过多关注加密.但实际部分厂家的IoT平台(阿里云.OneNET)已经启用了相关安全处理,有必要深入学习下. 在 CoAP 协议 RFC7 ...

  9. BGP协议学习笔记——BGP基础

    BGP协议学习笔记--BGP基础(BGP概念.BGP报文.BGP状态机.BGP关系建立.BGP路由通告) 说明:本文学习笔记整理自网络.华为公开产品文档.华为公开PPT及部分的自我理解 一.BGP简介 ...

最新文章

  1. 通过命令行启动 Microsoft File Transfer Manager
  2. CTFshow 爆破 web25
  3. composer Failed to decode zlib stream
  4. C语言实现随机生成0~100的数
  5. python bottle框架 重定向_Python的web框架bottle静态文件的路径
  6. postman+newman生成html报告
  7. Ubuntu 安装 Linux Deepin 截图工具(.deb)
  8. 在DialogFragment中显示大图片
  9. 手动创建一个标准web工程
  10. webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
  11. 二元logistic模型案例_二元Logistic模型(上)
  12. 2012年全国医院排名(转)
  13. 5G无线技术基础自学系列 | 时域资源
  14. 重磅!首届倍增科学技术研究院高级研究员研讨会胜利召开
  15. 中国历史各王朝的知识点总结记忆
  16. HTL里面使用sling model的时候传参问题
  17. 20、Java——迷你图书管理器(对象+集合)
  18. 【已解决】部分安卓手机,部分ios机型,调微信的jssdk方法失败
  19. 【8022】产品管理与产品营销的区别
  20. 要求: 编写一个程序,提示用户输入: 姓名 ,身份证号(需要一次输完,中间用逗号分隔)随后打印用户的星座。 提示:输入功能用C实现会很简单,其他语言的话,就不用输入姓名和逗号了,直接输入身份证号就

热门文章

  1. Python之爬虫 搭建代理ip池
  2. 24、基于原型的切比雪夫低通滤波器设计理论(插入损耗法)
  3. Python新建Flask项目
  4. Google 员工愤然离职,剑指这家搜索巨头已迷失方向!
  5. 【大数据笔记10】SparkStreaming——流式计算
  6. Java自定义注解身份证校验
  7. php redis pipeline管道技术
  8. USRP B210 Ubuntu基本测试
  9. 易能变频器说明书故障代码_易能变频器故障判断与处理
  10. Java开发快速上手!小米java面试几轮