首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CAN协议 J1939「建议收藏」

转自:http://blog.sina.com.cn/s/blog_bf97bd7e0102wl2y.html 这几天在公司看了SAE推行的 J1939标准(SAE:美国汽车工程协会),这里整理下学习要点...(Message):一个或多个具有相同参数组编号(PGN)的CAN数据帧;(一个或多个 CAN数据帧具有相 同PGN号,就是报文) 包(Packet):一个单一的CAN数据帧就是1个包;(一个报文包含参数组的长度小于等...(每个CAN数据帧拥有相同的标识符,但每个包中数据不同) 协议数据单元(PDU): 格式如下图: 优先级 扩展数据页(保留) 数据页位 PDU格式 PDU特定域 源地址 数据域 域 P R DP...在分配页一的PGN之前,先分配完页零的可用PGN。...序列号 1-255(1Byte) 2-8 分组数据(7 Bytes) 注意多包参数组的最后一个包可能需要不到8个字节数据

1.8K20

计算机网络学习笔记-链路层

p=1 《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》 第六章:链路层 网络层解决了分组如何从一个网络到达另一个网络的路由问题(以子网为单位),但是分组如何在子网内部的相邻节点之间传输...)) frame(帧) 链路层的数据单元(PDU) 链路层负责从一个节点通过链路将(帧中的)数据报发送到相邻的物理节点。...不同的链路协议提供不同的服务 链路层提供的服务 成帧,链路接入: 将数据报封装在帧中,加上帧头、帧尾部 如果采用的是共享性介质,信道接入获得信道访问权 在帧头部使用“MAC”(物理)地址来标示源和目的...,将至交给上层 接到主机的系统总线上 硬件、软件和固件的综合体 差错检测和纠正 错误检测 说明: EDC:差错检测和纠正位(冗余位) D:数据由差错检测保护,可以包含头部字段 在数据传输的过程中数据有可能发生错误...错误 能够检查出所有长度小于等于r位的错误 出现长度为 r+1的突发错误,检查不出的概率是1/2r-1 出现长度大于r+1的突发错误,检查不出的概率是1/2r 多点访问协议

99520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文入门Python的Datatable操作

    通过本文的介绍,你将学习到如何在大型数据集中使用 datatable 包进行数据处理,特别在数据量特别大的时候你可以发现它可能比 Pandas 更加强大。...对象中,datatable 的基本分析单位是 Frame,这与Pandas DataFrame 或 SQL table 的概念是相同的:即数据以行和列的二维数组排列展示。...统计总结 在 Pandas 中,总结并计算数据的统计信息是一个非常消耗内存的过程,但这个过程在 datatable 包中是很方便的。...▌帧排序 datatable 排序 在 datatable 中通过特定的列来对帧进行排序操作,如下所示: %%timedatatable_df.sort('funded_amnt_inv')_____...datatable_df[dt.f.loan_amnt>dt.f.funded_amnt,"loan_amnt"] ▌保存帧 在 datatable 中,同样可以通过将帧的内容写入一个 csv 文件来保存

    7.7K50

    Python的Datatable包怎么用?

    通过本文的介绍,你将学习到如何在大型数据集中使用 datatable 包进行数据处理,特别在数据量特别大的时候你可以发现它可能比 Pandas 更加强大。...Frame 对象中,datatable 的基本分析单位是 Frame,这与Pandas DataFrame 或 SQL table 的概念是相同的:即数据以行和列的二维数组排列展示。...统计总结 在 Pandas 中,总结并计算数据的统计信息是一个非常消耗内存的过程,但这个过程在 datatable 包中是很方便的。...▌帧排序 datatable 排序 在 datatable 中通过特定的列来对帧进行排序操作,如下所示: %%time datatable_df.sort('funded_amnt_inv') ___...datatable_df[dt.f.loan_amnt>dt.f.funded_amnt,"loan_amnt"] ▌保存帧 在 datatable 中,同样可以通过将帧的内容写入一个 csv 文件来保存

    7.2K10

    Python的Datatable包怎么用?

    通过本文的介绍,你将学习到如何在大型数据集中使用 datatable 包进行数据处理,特别在数据量特别大的时候你可以发现它可能比 Pandas 更加强大。...对象中,datatable 的基本分析单位是 Frame,这与Pandas DataFrame 或 SQL table 的概念是相同的:即数据以行和列的二维数组排列展示。...统计总结 在 Pandas 中,总结并计算数据的统计信息是一个非常消耗内存的过程,但这个过程在 datatable 包中是很方便的。...▌帧排序 datatable 排序 在 datatable 中通过特定的列来对帧进行排序操作,如下所示: %%timedatatable_df.sort('funded_amnt_inv')_____...datatable_df[dt.f.loan_amnt>dt.f.funded_amnt,"loan_amnt"] ▌保存帧 在 datatable 中,同样可以通过将帧的内容写入一个 csv 文件来保存

    6.7K30

    如何成为Python的数据操作库Pandas的专家?

    前言 Pandas库是Python中最流行的数据操作库。受到R语言的frames启发,它提供了一种通过其data-frame API操作数据的简单方法。...下面我们给大家介绍Pandas在Python中的定位。 ? 01 了解Pandas 要很好地理解pandas,关键之一是要理解pandas是一系列其他python库的包装器。...,也可以直接调用它的内部Numpy数组。...03 通过DTYPES高效地存储数据 当通过read_csv、read_excel或其他数据帧读取函数将数据帧加载到内存中时,pandas会进行类型推断,这可能是低效的。...04 处理带有块的大型数据集 pandas允许按块(chunk)加载数据帧中的数据。因此,可以将数据帧作为迭代器处理,并且能够处理大于可用内存的数据帧。 ?

    3.1K31

    既然有了IP地址,为什么还需要MAC地址?两者到底有啥区别,深入分析后终于明白了!

    一个IPv4地址由两部分组成:网络号和主机号。网络号表示该设备所属的网络,主机号表示该设备在该网络中的编号。不同长度的网络号可以划分出不同等级的网络,例如A类、B类、C类等。...一个IPv6地址由两部分组成:前缀和接口标识符。前缀表示该设备所属的网络或子网,接口标识符表示该设备在该网络或子网中的编号。...将数据帧的源MAC修改为自身,目的MAC修改为服务器S,并将数据帧转发给服务器S(此时数据帧源IP为主机A,目的IP为服务器S,源MAC为R2,IP地址和MAC地址区别尽管IP地址和MAC地址都是用来标识网络中的设备...下面是两者的主要区别:定义:IP地址是用来标识网络上的设备,MAC地址是用来标识网络适配器(NIC)的。唯一性:IP地址在网络中是具有唯一性的,但是在全球范围内会有重复的情况。...使用场景:IP地址是用来实现Internet上的数据传输,而MAC地址是用来实现局域网内的数据传输。长度:IP地址是32位二进制数,而MAC地址是48位二进制数。

    10.5K22

    SAE J1939协议(一)

    它的数据链路层定义了信息帧的数据结构、编码规则,包括通信优先权、传输方式、通信要求、总线仲裁、错误检测及处理,它负责将CAN扩展帧的29位标识符重新分组定义,使报文的标识符就能够描述报文的全部特征,包括目标地址...“CAN 2.0B”包括两种消息格式的规范,标准帧和扩展帧。 “CAN 2.0B”的兼容性意味着通过使用不同的帧格式位码,保证二者能同时在同一网络中使用。...SAE J1939消息帧格式 SAE J1939和CAN的仲裁场与控制场 参数群编号( PGN) 在CAN数据帧的数据场中需要指明参数群时所使用的编号, PGN是表示成24位。...PDU将被分组封装在一个或多个CAN数据帧中,通过物理介质传送到其他网络设备。每个CAN数据帧只可能有一种PDU。...协议数据单元( PDU) P是优先级, R是保留位, DP是数据页, PF是PDU格式, PS是特定PDU, SA是源地址 优先级(P) 这三位仅在总线传输中用来优化消息延迟,接收机必须对其做全局屏蔽

    1.5K20

    计算机网络-概述

    为了防止数据流中的比特流被误判位帧的首位标志,发送方的数据链路层在信息位中遇到5个连续的1时会自动加上1个0;接收方做该过程的逆操作,每收到5个连续的1,则自动删除后面的0,以恢复原信息。...若N(s)=V(r),则执行后续算法,否则丢弃并转到7(丢弃的帧是重复帧) 将收到的数据帧的数据交给主机 V(r)=1-v(r),更新接收状态变量,准备接收下一个数据帧。...空闲的时候网络中只有令牌在传输。如果传到有数据要发送的站点,令牌会被修改一个标志位,并带上数据成为数据帧。 在继续传递的过程中,如果计算机检测到令牌的目的地址与自己相同,会复制令牌。...中间一位DF,只有当DF=0时才允许分片 片偏移:占13位,指出较长的分组在分片后,某片在原分组中的相对位置。...片偏移以8B为偏移单位 首部检验和:占16位,只检验分组的首部 生存时间TTL:占8位,数据报在网络中可通过的路由器数的最大值。路由器在转发分组之前,先把TTL减1,若TTL=0,则该分组必须丢弃。

    1.4K30

    计算机网络_网络层详解

    在转发分组时,读取从IP数据报中首部的转发标识并在转发表中查询,其查询结果指出了该分组将被转发的路由器的链路接口。...### 特殊的IP地址 ? 5.物理地址 物理地址是数据链路层和物理层使用的地址,IP地址是网络层以及上层使用的地址 IP地址放到IP数据报的首部,物理地址放到数据链路层中MAC帧的首部。...标志 3bit 最低位: MF: 有没有更多分片 =1表示还有分片 =0表示无分片 中间位: DF: 是不是不能分片 =1表示不能分片 =0表示能分片 片偏移 13bit 经过分片之后,此分片在原分组中的相对位置...生存时间 8bit TTL(Time To Live) 之前表示数据报在网络中的寿命 后来改为跳数限制,但名字没变。 路由器在转发之前,将该值-1,当为0时,丢弃此分组。...路由器R1收到此数据报的时候,将该数据报中的目标IP地址读出,然后与自己转发表中的第一行的子网掩码进行按位与运算,得到目标的网络地址与第一行的目的网络地址对比,发现不匹配。

    1.2K21

    5-网络层(下)

    计算的最终结果是一棵树,会存储在路由表种,用来引导分组的转发 L-S路由算法特点: 优点 缺点 路由器认识一致 路由器需要较大的存储空间 LSP构造的图完全一样 计算负担很大 收敛快 适合在大型网络种使用...,是目前IGP中应用最广,性能最优的协议 OSPF特点 OSPF可以在大型网络中使用 OSPF克服了路由自环 支持VLSM,CIDR等技术,具有现代路由选择协议的特征 使用带宽作为度量值(10^8/BW...ARP请求帧和返回帧,是非常耗费资源的,所以,有诸多的优化措施: 每个主机建立一个ARP表,缓存ARP的结果 用ARP请求中的源信息来更新ARP表(在ARP请求帧中包含源机的IP和MAC地址对,所以每一个收到请求帧的主机...请求帧是二层广播帧,目标机只有跟源机在同一个LAN中才能收到请求帧,假如目标机是一个远程机(不在同一个局域网内部),则ARP无法找到目标MAC地址。...,在待传输分组不多,轻载的时候,发出的分组都能够顺利发送 拥塞 当一个子网,或子网的一部分出现太多分组时,网络性能急剧下降,导致拥塞(拥塞出现时,分组被丢弃,重传,网络吞吐量严重下降,甚至无法传输分组)

    1.7K10

    UDP的FPGA实现(中) | UDP段、IP包、MAC帧结构

    (这部分暂未研究,以后有机会一定要好好学习一哈) 16位UDP校验和: 占16bit,用来对UDP头部和UDP数据进行校验。...数据: 用户数据是打包在UDP协议中,UDP协议是基于IP协议之上的,IP协议又是走MAC层发送的,即从包含关系来说:MAC帧中的数据段为IP数据报,IP报文中的数据段为UDP报文,UDP报文中的数据段为用户希望传输的数据内容...【以下摘抄自网络】ip数据包包头内部有一个16位的标识来区分每一个ip数据包,同时3位的标志位中有一位来来表示“更多分片”,也就是说这一位置位的时候表示自该ip包被分片了并且当前这一片还不是最后一片,如果是最后一片的话就是置...MAC帧中数据和填充部分的长度必须在46~1500字节之间,这是由以太网的物理特性决定的,这个1500字节被称为链路层的MTU(最大传输单元,Max Transmit Unit),但是这并不是指链路层的长度被限制在...帧校验序列(FCS) 在NetAssist中可选是否发送帧校验序列,对接受网卡判断是否传输错误的一种方法,如果发现错误,丢弃此帧(使用CRC循环冗余校验码校验)。

    3.3K30

    计算机网络知识点全面总结

    CRC 冗余码(n 位),实际发送 k+n 位);在接收端:利用 n 位 CRC 冗余码对收到的数据进行检验 用除数 P 再除去收到的数,若余数 R=0,则证明这个帧无差错,接受 使用点对点信道的链路层...X,所有 “距离” 值加 1 对修改的每个项目(N,d,X): 若 N 不在 R 的路由表中,则添加该项目 若 N 在 R 的路由表中,且 “下一跳” 也是 X,则更新该项目 若 N 在 R 的路由表中...,知道网络层传递给他下一个分组,然后,确认信息被附在往外发送的数据帧中(使用帧头中的 ack 域)。...CRC 在发送端先把数组按照一定划分大小划分为组,假设每组 K 个比特,要传输的数据记位 M,发送方要做的就是在数据 M 后面添加用于差错检验的 n 位冗杂码,然后构成一个帧发送出去,也就是说此时发送的数据在原理基础上增加了...然后用该序列除以在计算之前规定的一个长度为(n+1)位的除数 p,根据二进制的模 2 运算,计算出余数 R。

    1.1K61

    JVM-Java虚拟机栈再学习

    栈帧(由3大部分组成) 局部变量区 基本单位:字(后续GC优化点)。...在Java程序编译为Class文件时,就在方法的Code属性的max_locals数据项中确定了该方法所需要分配的局部变量表的最大容量。 存放参数和方法内部的引用。...定义为一个从0开始的数组,byte、char、short等在存储时被转换为int类型。局部变量区是通过下标来访问的。...在编译为Class文件是,操作数栈的最大深度也被存储在方法的Code属性的max_stacks中。...(最大深度不超过max_stacks中设定的最大值) 操作数栈中的元素类型必须与字节码指令中的严格匹配,例如加法,一个int与一个float的情况。 帧数据区 解析常量池中的数据。

    23520

    LVBA:用于RGB点云建图的LiDAR-视觉联合优化

    图1 使用我们的方法优化的RGB点云地图。图中数据采集自香港大学庄月明物理楼,该方法有效优化了LiDAR和相机的位姿,在建图过程中实现了高精度和高一致性。...我们使用BALM来优化每次LiDAR扫描的6自由度(6 DoF)位姿,同时构建一个包含从LiDAR点中提取的平面特征的体素地图,该地图将在后续的视觉联合优化过程中使用。...对于 Colmap-PCD 和 LVBA,在评估 R3LIVE 数据集和 MaRS-LVIG 数据集时,利用 R3LIVE 提供初步估计,而在评估 FAST-LIVO 数据集时,使用 FAST-LIVO...评估设置:我们对三个数据集进行了映射精度评估。由于 FAST-LIVO 在 R3LIVE 数据集上的时间同步要求未满足,因此未在该数据集上评估 FAST-LIVO。...此外,LVBA 和 Colmap-PCD 仅估计关键帧的位姿,因此仅在关键帧上评估了 R3LIVE 和 FAST-LIVO。

    24210

    CAN总线的帧是???

    下面是一个带有11位标识符(CAN 2.0A)的标准CAN帧,这是大多数汽车中使用的类型。扩展的29位标识符帧(CAN 2.0B)除了更长的ID外是相同的。例如,它在重型车辆的J1939协议中使用。...CAN总线协议的8个消息字段包括: ● SOF:帧起始(Start of Frame)是一个'主导0',用来告诉其他节点一个CAN节点打算发送信息。 ● ID:ID是帧标识符——值越低,优先级越高。...● ACK:确认(ACK slot)表示节点是否已确认并正确接收了数据。 ● EOF:帧结束(EOF)标记了CAN帧的结束。 Extended CAN 扩展CAN帧使用29位标识符以及一些额外的位。...扩展CAN消息与标准消息相同,增加了以下内容: SRR - 替代远程请求(Substitute Remote Request,SRR)位替换了标准消息中的位置作为扩展格式中的占位符。...r1 - 在RTR和r0位之后,新增了一个保留位,位于DLC位之前。

    16110

    国科大CVPR 2020论文:自监督学习新方法,让数据更复杂的视频表征学习性能大提升

    论文题目为《一种基于视频播放速率感知的自监督时空表征学习方法》,类似图像在空域具有多分辨率特性,视频在时域同样具有多分辨率特性,基于此,该论文通过设计一种关于速率感知的自监督任务来进行较为全面的视频时空表征学习...这其实就对应视频的多分辨率特性:不同采样间隔下的有限视频帧在内容描述上具有时间跨度和精细程度的差异。...而本论文则是把这种特性结合到自监督学习中,设计了一种新的视频自监督任务。...图3:运动激活图 计算过程 实验结果与分析 我们将PRP作为代理任务进行预训练,保留网络主干部分作为下游目标任务的初始化模型,通过评估在目标任务中的性能来验证我们自监督方法的有效性。...这里选择了action recognition和video retrieval作为目标任务,并在两种数据集UCF101和HMDB51上分别使用三种网络主干C3D,R3D,R(2+1)D进行验证。

    1.2K10

    计算机网络基础知识整理「建议收藏」

    即M后面添加3个0 (2)现在得到M = 101001000(k+n = 9)位的数除以除数p(n = 3)位, 得到商是Q(不关心),余数R =001(n位)R就是冗余码FCS,现在加上FCS后发送的帧是...101001001 在接收端把接收到的数据M = 101001001以帧为单位进行CRC检验:把收到的每一个帧都除以相同的除数p(模2运算),然后检查得到的余数R。...如果在传输过程中没有差错,那么经过检验后得到余数R肯定是0。 在数据链路层若仅仅使用CRC差错检验技术,则只能做到对帧的无差错接收。...需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。...同步SYN控制位   在连接建立时用来同步序号,当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1。

    3.1K20

    R语言函数的含义与用法,实现过程解读

    在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得。 R的特点 (1) 有效的数据处理和保存机制。 (2) 拥有一整套数组和矩阵的操作运算符。...数据的保持与对象的清除 R所创建、操作的实体是对象。对象可以是变量、数组、字符串、函数以及由这些元素组成的其它结构; > objects()     用来显示目前存储在R中的对象的名字。...数组的运算 数组可以在算数表达式中使用,结果也是一个数组,这个数组由数据向量逐个元素的运算后组成,通常参与运算的对象应当具有相同的dim属性。...如:ls(), ls(2), ls(t) R可以在搜索路径中包含至多20个项目,列表和数据帧只能在位置2或更靠后的位置上挂接。...数据帧使用惯例 1 将每个独立的,适当定义的问题所包含的所有变量收入同一个数据帧中,并赋予合适的、易理解、易辨识的名称; 2 处理问题时,当相应的数据帧挂接于位置2,同时在第1层工作目录下存放操作的数值和临时变量

    5.7K30

    SAE J1939 协议简介(二)

    在简单介绍完J1939协议后,今天我们来讲讲J1939的数据链路层,熟悉数据链路层是开发任何一种协议软件的基础,数据链路层中的协议数据单元(PDU)格式是非常重要的。...OEM 可以对网络做相应调整,优先级域应当是可重编程的。 R 保留位 保留此位以备今后开发使用。不能将此位与 CAN 保留位混淆。所有消息应在传输中将 SAE 保留位置 0。...参数组编号用来确定或标识命令、数据、请求、确认和否定等参数组编号所确定或标识的信息需要一个或多个 CAN 数据帧进行通信。若消息长于 8 字节,必须将消息分包发送。...如果参数组的定义为多包,在少数特定场合只传输少于 9 字节的数据时,参数组以单帧 CAN 数据帧发送,其中 DLC 置 8。如果某特定参数组传输 9 字节或者更多字节,将使用“传输协议功能”。...SAE J1939 消息类型: J1939 的消息类型总共有 命令,请求,确认/响应,组功能 了解了数据链路层的结构后,那么在应用中,是如何解析一个参数呢?

    4K90
    领券