VPW协议解析
http://www.dpfdoctor.net/content/?220.html
SAE J1850 VPW协议也是OBD II标准中的一种,通常应用于GM车系中。
VPW英文全称是Variable Pulse Width Modulated,即可变脉宽调制。
下面从物理层特性、电平接口、帧结构、命令交互、交互时间参数、常用命令字等几个方面来介绍这种协议。
Ø 物理层特性:
采用10.4KB/S的波特率;通讯电平通常为7.5V;每个字节采用8位二进制数形式,没有起始位、停止位和校验位;通讯引脚为J1850 BUS+,既为OBD-2PIN。
Ø 电平接口:
协议通讯采用10.4Kbps VPW方式,初始电平为0V,在第1帧数据前有一个163至239微秒(us)的高电平表示SOF(帧头即数据开始标志),
接下来以不同长短的高低电平表示二进制数据0或1,其中:
高电平宽度介于34-96us表示“1”,高电平宽度介于96-163us表示“0”,
低电平宽度介于34-96us表示“0”,低电平宽度介于96-163us表示“1”,
传输时按字节顺序,且每个字节都是高位在前,低位在后的顺序,高低电平相间用于表示传输的数据,
字节与字节之间没有间隔,传送完一帧数据之后有一个宽度大于239us的低电平表示EOF(帧尾即帧结束标志)。
Ø 帧结构:
GM车型中的帧结构:
Tools: 0x6C + ECU地址 + 设备地址 + Fun_ID + (command information) + CRC
ECU: 0x6C + 设备地址 + ECU地址 + Fun_ID + (command information) + CRC
OBDII中的帧结构:
Tools: 0x68 + 0x6A + ECU地址 + Fun_ID + (command information) + CRC
ECU: 0x48 + 0x6B + 设备地址 + Fun_ID + (command information) + CRC
ECU地址为每个系统的标示号,设备地址一般为0xF1或0xF0;
而Fun_ID为不同功能的标示号,ECU响应的Fun_ID在tools命令的基础上+0x40;
CRC(循环冗余校验)为校验字节。
Ø 命令交互:命令交互通常情况下为1对1,但也存在1对多或者多对1的情况。
下面是两组命令交互举例:
GM:
Tools: 6CH 10H F1H 20H 64H
ECU: 6CH F1H 10H 60H 72H
OBDII:
Tools: 68H 6AH F1H 01H 00H 17H
ECU: 48H 6BH 10H 41H 00H BEH 3FH B8H 10H C9H
在交互中,因为发送命令的对象不一样,所以目标地址和源地址是进行了互换;
同时,ECU响应设备的命令字在设备命令字的基础上+0x40
Ø 交互时间参数:
设备发出命令后到ECU应答命令的时间间隔为320微秒(us)到100毫秒(ms)。
ECU应答命令后到设备发下一条命令的时间间隔为320微秒(us)到100ms。
如果设备或ECU同时发送多帧命令时,每帧之间的时间间隔为3到5ms。
同一帧命令中的字节与字节之间无时间间隔。
Ø 常用命令字:
GM车型中的常用命令字:
系统进入:20H
数据流设置:2CH
数据流读取:2AH
读故障码:19HH
清除故障码:14H
读版本信息:3CH
OBD II中常用命令字:
读数据流:01H
读故障码:03H
清除故障码:04H
读版本信息:09H
VPW协议解析的更多相关文章
- ts 协议解析
pes : http://wenku.baidu.com/link?url=KjcA0qXqZ1bWVQTa8i1YOmygofldSQL7Pjj-zGRw1e_6_LFmVLo5DIWF0SNwVn ...
- [转]netty对http协议解析原理
本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述 标示 ...
- twemproxyRedis协议解析探索——剖析twemproxy代码正编
这篇文章会对twemproxyRedis协议解析代码部分进行一番简单的分析,同时给出twemproxy目前支持的所有Redis命令.在这篇文章开始前,我想大家去简单地理解一下有限状态机,当然不理解也是 ...
- B/S 架构中,网络模型的分解与协议解析
前言 如果是C/S专业毕业的或者是学过计算机网络课程的童鞋们,相信大家都知道网络模型的划分,本文首先来聊一聊目前对于B/S结构中,网络模型分解的两种方式. 没错,相信大家看到这个图片的时候就已经明白了 ...
- 详解BLE 空中包格式—兼BLE Link layer协议解析
BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(pa ...
- netty对http协议解析原理解析
本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述 标示 ...
- MODBUS协议解析中常用的转换帮助类(C#)
p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...
- AOSP中的HLS协议解析
[时间:2018-04] [状态:Open] [关键词:流媒体,stream,HLS, AOSP, 源码分析,HttpLiveSource, LiveSession,PlaylistFetcher] ...
- WebSocket协议解析
WebSocket协议解析 转载请注明出处:WebSocket解析 现在,很多网站为了实现推送技术,所用的技术都是轮询.轮询是指在特定的时间间隔(如每一秒),由浏览器对服务器发起HTTP请求,然后由服 ...
随机推荐
- bootstrap-datetimepicker在经过GC(Google Closure Compiler)压缩后无法使用的解决方案
将压缩级别由simple改成whitespace 问题就是这样之后压缩后的文件大了很多 <?xml version="1.0"?> <project name=& ...
- nested push animation can result in corrupted navigation bar
2013-12-06 10:15:51.668 CodingForFun[4569:70b] nested push animation can result in corrupted navigat ...
- JavaScript定时器与执行机制解析
从JS执行机制说起 浏览器(或者说JS引擎)执行JS的机制是基于事件循环. 由于JS是单线程,所以同一时间只能执行一个任务,其他任务就得排队,后续任务必须等到前一个任务结束才能开始执行. 为了避免因为 ...
- python在linux上的GUI无法弹出界面
在进行python写GUI程序的时候,使用Tkinter,发现无法执行程序,报错如下: X connection to localhost:10.0 broken(explicit kill or s ...
- python中pip的安装
1.下载路径如下 https://pypi.python.org/simple/ 在其中查找到pip的安装包:然后找到路径 https://pypi.python.org/simple/pip/ 2. ...
- bzoj 2038 [2009国家集训队]小Z的袜子(hose)(莫队算法)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2038 [题意] 给定一个有颜色的序列,回答若干个询问:区间内任选两个颜色相同的概率. ...
- linux中的配置文件
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个 ...
- 1、Hadoop架构
1.Hadoop 是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多小的工作单元放到任何集群节点上执行. 作业(job):一个 ...
- c语言分析函数调用关系图(call graph)的几种方法
一.基于 Doxygen或 lxr 的API形式的文档系统. 二.基于CodeViz, CodeViz是<Understanding The Linux Virtual Memory Manag ...
- sql数据库delete删除后怎么恢复,这是网上找的答案。。希望大神验证指教一下
使用Log Explorer查看和恢复数据 Log Explorer 4.1.可用于SQL Server2005的日志查看工具 下载地址: http://download.csdn.net/sourc ...