453_J1939命令地址PGN 65240(FED8)的使用
全部学习笔记汇总: https://github.com/GreyZhang/J1939_basic
前面了解了一下广播多帧报文的实现分析,当时发送了一个0xFED8(65240)PGN的信息。但是,这种数据的组包顺序以及规则没有弄清楚。
我没有系统阅读过全部的J1939的资料,因此直接借助了网络资源。找到了一份文件,对此的解释如下:
这一组报文的发送必须是通过BAM来实现,因此这是之前我们看到的功能的实现原因。之前的报文发送,采用的正好就是BAM多帧报文。相关的代码如下:
而报文发送的解释,在我找到的文档如下:
这部分正好是对上面代码的解释。
这部分是多帧报文的数据包,一共是2包数据。其中,第一帧报文发送了被控CA的NAME的前7个字节。第二帧报文发送了CA的NAME的第8个字节。这样,两帧报文发送了8个字节的NAME。而接下来,第二帧报文还有一个字节的信息,是修改的地址。
这样,我之前看过的代码再看一下。
第一段代码,先组装了PGN的信息,BAM发送的目标地址是全局地址。每个消息的第一个字节的信息是数据包的编号,其他的则按照上面的内容进行组装。无效的数据场填充成了0xFF。
修改后的新地址是132,也就是十六进制的0x84。
相关的功能运行,测试一下。
首先,各自的地址声明报文。数据场中,是CA的NAME。
接下来的处理,前面5次请求都是从0x81发送给0x84的。因此,0x80的节点没有任何响应。接下来的按键,触发了命令地址功能。其中,第一条报文就是通过EC00的PGN BAM来通知接下来进行多针报文发送。数据场中,第一个字节的0x20正好是十进制的32,是一个固定值。接下来,09代表9个字节的数据。2则是代表两个报文发完全部的数据。接下来的FF是预留的数据位。00FED8,则是接下来需要利用DT发送数据的PGN。再往下,是两个数据包。其中,33以及一串0与前面的0x80节点的NAME一致。而后面的84,则是新的地址。
其实,上面截图里面的广播一行是多出来的一行解析显示,并不是多了一份报文。对比最原始的log还是可以看的出来的。
最后一条报文的功能则是原来的0x80的CA在接收到命令之后,重新进行了地址声明。后续继续测试,两个按键则可以正常通信了。
在网络资料中看到,一般情况下,这个功能之后,修改软件之后的CA应该修改自己的地址并且存储EEPROM。
453_J1939命令地址PGN 65240(FED8)的使用相关推荐
- linux命令地址,[命令] Linux IP 命令 IP(管理地址)
内容目录: 内容一:通过 ip 命令查看网卡信息 1.1 通过 ip 命令查看所有网卡的信息 1.2 通过 ip 命令查看某一张网卡的信息 1.2.1 通过 ip 命令查看某一张网卡的信息的格式 1. ...
- Redis各个命令官网地址
在学习Redis的时候,熟悉redis的各种操作命令是非常重要的,因为Redis各种操作都是需要各种命令的参与才能得到正确的结果,下面给出Redis官网命令地址 官网命令地址:https://redi ...
- OD命令大全(OllyDbg命令)
以下命令适用于 OllyDbg 的快捷命令栏插件(显示于程序的状态栏上方) CALC 判断表达式 WATCH 添加监视表达式 AT / FOLLOW Disassemble at address 在地 ...
- 网卡清空缓存命令_九个常用的网络命令 ,很实用!
内容来源:云极安 一.ping命令 ping是个使用频率极高的实用程序,主要用于确定网络的连通性.这对确定网络是否正确连接,以及网络连接的状况十分有用.简单的说,ping就是一个测试程 ...
- Linux基础常用命令
ps -ef用于查看全格式的全部进程,其中"ps"是在Linux中是查看进程的命令,"-e "参数代表显示所有进程,"-f"参数代表全格式. ...
- Linux(Ubuntu)常用命令(二)
归档管理: 打包: tar -cvf xxx.tar 打包对象 (一般来说就是 -cvf 一起用)但这种不压缩的打包通常不用,接下来会说. -options:-c 生成档案文件,创建打包文件. ...
- linux 网络通讯 命令,Linux—网络通讯管理命令
一.ping命令 1. ping主机名2. ping域名 [root@localhost~]# pingwww.baidu.com3. pingIP地址 [root@localhost~]# ping ...
- 虚拟机中dns配置好了但是域名ping不同_弱电工程中常用的几个网络命令,学会后轻松变高手...
现在的弱电工程可以成为网络工程了,基本上全是数字化.网络化了,所以我们需要掌握一定的网络知识,今天就分享一些常用的网络命令,设备调试.维护的时候用的到 正文: ping命令 ping是个使用频率极高的 ...
- linux的sed命令是什么,linux sed命令
linux sed命令 简介: sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令 ...
最新文章
- 通过分离dataSource 让我们的code具有更高的复用性.
- jsp是在html中添加什么作用域,JSP九个内置对象 四大作用域 动作指令
- bootstrap4 左侧导航栏 优秀 大气_志愿服务嘉年华|“持志隽永 赴愿奔行优秀志愿服务项目展示第六期...
- chrome 获取剪贴板内容_Chrome 开发者工具的11 个高级使用技巧
- Map和hashmap
- 通才和专家:如何选择
- employee.java,Java基础系列(六):对象与类(上)
- js计算浮点数出现小数;解决js计算小数问题;js数组相加出现小数;
- 【图像加密】基于matlab GUI+Logistic+Tent+Kent+Henon图像加密与解密【含Matlab源码 1745期】
- oracle 字段对错,oracle 两表之间字段赋值错误解析
- 微型计算机原理及应用是啥,微型计算机原理及应用技术(第3版)
- java对象复制_Java对象的复制三种方式
- html tbody id 赋值,IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
- LaTex(PART IV) 各级标题
- 2光16电全千兆二层管理型宽温工业级环网交换机 光纤自愈环网工业级以太网交换机
- 轻松制作美容美发线下门店电子优惠券的实用方法分享
- DSPE-PEG-TAT,TAT-PEG-DSPE,磷脂-聚乙二醇-靶向穿膜肽TAT供应
- LUA中判断GameObject是否被Destory
- 如何建设自己的网站 博客
- Python应用实战案例:Python编程环境配置(Anaconda、Jupyter、GPU环境)
热门文章
- 嵌入式软件开发,快五年,没有成就感,快迷失自己了
- 每一个成功男人的背后,一定有另一个支持他的男人
- 安装vue脚手架出现GET httpsregistry.npmmirror.comvue-cli-g response 404 status
- 2021-11-13vjudge第四题D - a/b + c/d
- 终于搞懂了!字符串拼接的各种姿势以及底层的小知识
- e的-jwt次方的模
- 网站实现微博登录自动关注微博的权限,scope权限!
- 艾永亮:特仑苏有机奶的进阶之路,不断助力实现成为更好的自己
- PAT A1006 Sign In and Sign Out
- Learning to detect open classes for universal domain adaption