作者:良知犹存

转载授权以及围观:欢迎添加微信:becom_me

发现K线没有过多的文章描述,作为一个开发过K线的人,不写些文章帮助后来的人岂不是太浪费开发经验了呢。

总述

    KWP2000是一套协议,它符合OSI七层协议模型,即即ISO14230-1,ISO14230-2,ISO14230-3,ISO14230-4这4个协议文件。

ISO14230-1协议规定了物理层标准,要求使用K线

ISO14230-2 规定了链路层,即帧格式、计时器等、错误处理机制以及交换关系。

ISO14230-3 规定了应用层,及链路层中的数据域是如何解析的,怎么样为用户提供服务(请求数据、接受数据、解析数据),这部分参考了ISO14229-1协议。

ISO14230-4 则是对一种特殊应用(排放相关系统要求),他分别对ISO14230-1,ISO14230-2,ISO14230-3作出了特例化要求和一些补充,又形成了一个体系协议(这个不太相关)

目前欧洲汽车领域广泛采用了基于CAN总线的KWP2000,即ISO 15765等协议,而基于K线的KWP2000物理层和数据链路层协议基本淘汰,国内也只有一些底端车型有用,但是在摩托车领域,电喷普及进程中,ECU广泛使用BOSH和德尔福等厂家设备的时候,都在同步使用KWP2000协议,开发相关设备的时候,还是需要懂k线协议的。

一、物理接口

K线的特点:

最大通讯速率达10.4 kbit/s(和现在动辄几十、几百M的通讯速度来比,确实很小)

诊断报文最大长度255Byte,k线是单总线,属于关键字协议,通过不同ID实现主从的应答。

总线电平:0~12V

一般电喷的摩托车的ECU不是BOSH就是德尔福或者日本产的,它负责控制整车的运动相关的逻辑,就是整车的CPU。

设备开发K线电路的选择

一般我们开发时候会选择相应的通讯的芯片,如图为K线芯片的电路,使用的是SI9241的k线芯片,一端连接到MCU的串口TX RX引脚,另一端接入K线

K线通讯现在基本上属于被逐渐淘汰的使用,只不过在摩托车电喷的领域还在使用。所以K线芯片也大都停产了,现有的芯片也基本都是以库存料为主,量不大但是很贵,所以设计有一套其他方式做的K线电路,一边连接到K线,一边连接到MCU的串口引脚,通讯很稳定,可以给大家做参考。

其次,大家也可以在某宝购买一些K线测试的开发板,用作测试,用来加快开发的进度。

如图为K线完整的一次初始化应答的信息抓取:

二、通信关键字

搭建好了硬件,这个时候我们需要进行软件的攻关了。首先准备好相关ECU的协议介绍手册。查看相应的协议规则,以及相应的关键词识别位置。

如图K线通讯几种常见的数据格式:

大家看到上面的一些数据格式刚开始可能有些头疼,但是实际上我们用的时候只会有一种使用,我以我使用过的举例解释(如上第二种数据格式)。

StartCommunication:

TEST->ECU  (设备端发往ECU请求应答的数据)hex:C1 33 F1 81 66

ECU ->TEST (ECU 应答设备的回复)hex :83 F1 11 C1 E9 8F BE

其中:0xF1代表 设备端的默认地址,0x11代表 ECU的地址

C1(FMT格式字节,0xC1转化为2进制为,11000001,bit7~6 为11,代表请求信息,bit5~0 为1,数据字节长度为1,如下只有一个数据byte SDIRQ)

33(Target字节) 

F1(Source字节)

81(SDIRQ,关键字,属于数据段) 

66(0xC1+0x33+0xF1+0x81 = 0x266,取一个byte的大小,所以去掉高位变成0x66)

此时候关键字就是81

由上可以知道,K线通讯的注意点:

1.信息里面包括该信息的数据段的长度;

2.协议数据在最后一个byte进行累加和的校验,用来判断数据;

3.协议信息中进行读取关键ID即可判断出当前应答服务的机制;

通过这些信息,我们大致对协议就有一个判断,我们可以通过一些关键词的填写,进行与ECU通信,获得我们需要的信息。例如读取ECU的故障码。

如下是不同的服务ID对应的不同ECU应答信息

这就是我分享的开发Kwp2000的协议,由于太晚了,所以也准备休息了,明天继续分享我的开发经验。如果大家有什么更好的思路,欢迎分享交流哈。

Kwp2000协议的应用(硬件原理使用篇)相关推荐

  1. Kwp2000协议的应用(程序原理篇)

    作者:良知犹存 转载授权以及围观:欢迎添加微信:becom_me 总述     接上篇文章Kwp2000协议的应用(硬件原理使用篇),本篇针对kwp2000协议标准的服务ID详细介绍,以及针对程序实现 ...

  2. Kwp2000协议的应用(程序后续篇)

    ​作者:良知犹存 转载授权以及围观:欢迎添加微信:becom_me 总述     接上上篇文章Kwp2000协议的应用(硬件原理使用篇),本篇继续对基于PID解析数据,如何依据J1979的标准进行解析 ...

  3. 微信小程序控制硬件第17篇 : 腾讯连连小程序通过LLSync蓝牙协议控制安信可PB-02模组,无需网络实现蓝牙本地通讯。(附带源码)

    文章目录 前言 一.注册腾讯物联开发平台设备 新建项目 新建产品 创建数据模板 选择设备开发方式 交互开发配置 新建设备 二.设备端操作 硬件简介与连接 准备软件环境 工程目录 烧录步骤 三.腾讯连连 ...

  4. 【微信小程序控制硬件⑦ 进阶篇】动起来做一个微信小程序Mqtt协议控制智能硬件的框架,为心里全栈工程师梦想浇水。

    文章目录 一.前言: 二.涉及的技术点: 三.框架的运行原理: 四.框架代码流程: 4.1 主线程: 4.2 获取设备列表显示设备,以及订阅在线的设备: 4.3 点击某设备如何实现携带此设备信息到控制 ...

  5. 计算机网络原理第一篇 概述

    计算机网络原理第一篇. 第一章: - 1.1 计算机网络在信息时代中的作用 .21世纪的一些重要特征是..数字化.网络化.和信息化,他是一个以..网络为核心的信息时代. .网络现在已经成为信息社会的命 ...

  6. 【微信小程序控制硬件 第12篇-项目篇】微信小程序蓝牙控制硬件应如何开始动手?为您全面解析微信小程序蓝牙API的使用;(附带demo)

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  7. 【微信小程序控制硬件 第13篇】安信可B站直播学习总结,微信小程序MQTT远程控制ESP8266 NodeMCU,谈谈微信生态那些事;

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  8. 【微信小程序控制硬件 第14篇】分享一下我在微信公众号和小程序上实现的几个颜色采集器,轻松集成到您项目实现调光。

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  9. 微信小程序控制硬件 第14篇 微信小程序腾讯地图控制 4G Cat.1模组 ,安信可CA-01加载定位显示当前位置。

    文章目录 一.前言 通讯协议 技术问题点 二.4G模组业务逻辑 上报基站信息 三.微信小程序控制 另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈! 微信物 ...

最新文章

  1. JiBX1.2 处理XML
  2. 重复 桂林电子科技大学第三届ACM程序设计竞赛
  3. 在Java内部类中使用外部类的成员方法以及成员变量
  4. Windows Phone 7 LongListSelector控件实现分类列表和字母索引
  5. iptables 执行清除命令 iptables -F 要非常小心的
  6. windows8 认识及使用
  7. 联想电脑(xx%电量可用已连接适配器,未充电)解决方法
  8. 词向量与垃圾邮件识别
  9. php单引号的作用,PHP中单引号和双引号的区别与作用
  10. 无迹卡尔曼滤波估计SOC的simulink模型详解
  11. 过滤器Filter的介绍
  12. 网易云短信接口调入(java)
  13. C 语言实现面向对象编程
  14. 电子通信类相关专业面试
  15. 小白白红队初成长(1)被动信息收集
  16. 利用curl进行ftp的下载和上传
  17. 能在html中打开ppt吗,怎样在PPT中直接打开网页
  18. css中flex: initial、flex:0、flex:1、flex:none、flex:auto的区别和使用场景
  19. 软件测评师--第21小时 测试工具介绍
  20. 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

热门文章

  1. 深圳金证科技股份有限公司(介绍,准备进和有意向进去的请进来看一看,保证不后悔)...
  2. golang go-sql-driver gorm 数据库报错 bad connection
  3. 聚合支付、单商户多商户支付、微信/支付宝/PayPal支付流程、支付政策法规
  4. 嵌入式 ARM 平台使用Python和PyQT开发界面应用程序
  5. 精美粉笔字教学课件PPT模板
  6. 觖决Caused by: org.quartz.SchedulerException will never fire.抛的异常
  7. 程序员吐槽_程序员神吐槽用户
  8. 图神经网络系列-Graph图基本介绍、度中心性、特征向量中心性、中介中心性、连接中心性
  9. FCPX插件-仿LR色相饱和度白平衡色彩校正HSL视频调色插件 Lightroom Controls
  10. 精密塑胶模具生产1. 模架加工