作者:良知犹存 转载授权以及围观:欢迎添加微信: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的协议,由于太晚了,所以也准备休息了,明天继续我的开发经验。如果大家有什么更好的思路,欢迎交流哈。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算