说明

在UDS协议中,其中有一点我视作为基础,即帧传输。也即是数据传输这一块,在UDS的帧传输中,分为4种:

  1. SF单帧
  2. FF第一帧
  3. CF连续帧
  4. FC流控制帧

首先,我们抛开以上的东西,假设一个销售商(超市)和一个供应商之间存在某种通信协议,该协议大致规定了货物的发送和接收。即:

  1. 供应商每次提供给超市的货物的数量与种类。

经过分析,发现,就只有以上的这些东西。假设,之间的传输是通过货车来运输的,我们知道,对于同一辆货车所载的货物是一定的,当然,这里需要转换一下,即UDS data的传输是基于CAN协议的。所以,不能单单理解为所载的货物,我认为理解为信息稍微好点。

以下为分析:

  1. 如果供应商给销售商发货物,当货物很少的时候,可以只用一辆货车载货物。
  2. 当货物有点多的时候,就需要控制信息了,即表明哪是我的第一辆车,哪是第二辆车。
  3. 销售商对货物的接纳需要有个控制,协定好供应商每多少天发送多少货物过来,直到两者之间的某种服务结束。
  4. 当供应商要发很多货物给超市的时候,当这个数量超过了超市的可接收的范围,表明问题来了,超市可以有权不接收这些货物。

对于UDS中的数据传输,如果按照以上这些的话,需要有如下的信息。

  1. 帧类别
  2. 帧数据数
  3. 帧数据

以上说了,帧类别4种,每一帧的数据数不超过8(此处后面解释),为了利用空间,完全可以压缩在一个byte进行表示。即Byte的前4bit表示帧类型,后4位表明该帧数据区域的个数。

UDS帧传输的更多相关文章

  1. thrift之TTransport层的分帧传输类TFramedTransport

    帧传输类就是按照一帧的固定大小来传输数据,所有的写操作首先都是在内存中完成的直到调用了flush操作,然后传输节点在flush操作之后将所有数据根据数据的有效载荷写入数据的长度的二进制块发送出去,允许 ...

  2. UDS报文解读

    UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽 ...

  3. SDL实现限制帧速

    很多人都在SDL_PollEvent和SDL_WaitEvent之间纠结.前者会带来更好的帧数表现,但是CPU占用极大,可以直接吃掉一个核心.后者则基本不占用CPU,但是帧数会受到影响.有没有办法使两 ...

  4. 深入理解linux网络技术内幕读书笔记(十)--帧的接收

    Table of Contents 1 概述 1.1 帧接收的中断处理 2 设备的开启与关闭 3 队列 4 通知内核帧已接收:NAPI和netif_rx 4.1 NAPI简介 4.1.1 NAPI优点 ...

  5. Android和C#实时视频传输Demo

    说起去年的Demo.以今天的免费整齐优势. 原理很easy,虽然没有写android申请书.但,好了~ 高级语言是相通的.傲慢约.就这么简单研究了一下api后,找到相机对象有一个预览回调方法. 意识到 ...

  6. 3G下的无压缩视频传输(基于嵌入式linux) (转载)

    本课题研究嵌入式系统在数据采集,3G无线通信方面的应用,开发集视频采集.地理信息采集.无线传输.客户机/服务器模式于一体的车载终端,实现终端采集视频与GPS信息的传输,支持服务器端显示视频与GPS信息 ...

  7. 在传统以太网中,为什么要有最小帧长度(64 bytes)和最大帧长度(1500 bytes)的限制?

    遇到的问题:以太网的数据帧封装如下图所示,包含在IP数据报中的数据部分最长应该是( )字节? A.1434 B.1460 C.1480 D.1500 答案:C 原因: 以太网(IEEE 802.3)帧 ...

  8. CAN总线过载帧

    过载帧 过载帧与主动错误帧具有相同的格式.但是,过载帧只能在帧间间隔产生,因此可通过这种方式区分过载帧和错误帧(错误帧是在帧传输时发出的).过载帧由两个字段组成,即过载标志和随后的过载定界符.过载标志 ...

  9. 以太坊RLPx传输协议

    本文主要内容翻译自:The RLPx Transport Protocol,其中添加了一些个人的理解,由于密码学水平有限,不正确之处望指正.另外原文可能已经更新,最新内容请直接阅读原文. 本文档定义了 ...

随机推荐

  1. git 推送

    echo "# shops" >> README.md git init git add README.md git commit -m "first com ...

  2. Jquery 实现密码框的显示与隐藏【转载自http://blog.csdn.net/fengzhishangsky/article/details/11809069】

    <html> <head>  <script type="text/JavaScript"  src="jQuery-1.5.1.min.j ...

  3. Servlet之Filter详解

    参考文献:http://www.cnblogs.com/zlbx/p/4888312.html Filter,过滤器,顾名思义,即是对数据等的过滤,预处理过程.为什么要引入过滤器呢?在平常访问网站的时 ...

  4. 安装php时的配置选项

    ./configure --prefix=/home/samba/anthony/web --enable-mbstring --enable-fastcgi --enable-fpm --with- ...

  5. Http常用状态码

    HTTP状态码(HTTP Status Code) 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 所有状态解释:点击查看 1xx(临时响应 ...

  6. winform只能有一个实例运行且打开已运行窗口

    static class Program { private static Mutex onlyOne; [STAThread] static void Main() { onlyOne = new ...

  7. Lua之元表

    Lua之metatable 一.元表 Lua中的每个值都有一套预定义的操作集合,也可以通过metatable(元表)来定义一个值的行为,metatable包含了一组meatmethod(元方法). L ...

  8. PHP数组处理函数的使用array_map(三)

    /*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上 * 1.语法:array array_map ( callback callback, array arr1 ...

  9. hibernate4中取得connection的方法

    在hibernate3中,使用了c3p0连接池,尝试了多种办法取得connection对象,以下两种可以使用. Java代码  Connection conn; // 方法1:hibernate4中将 ...

  10. checkstyle配置文件说明

    属性说明 basedir代码所在的位置 AbstractClassNameformat: 定义抽象类的命名规则 PackageNameformat: 定义包名的命名规则 TypeNameformat: ...