振弦采集模块UART 通讯协议

news2025/7/13 8:18:47

振弦采集模块UART 通讯协议

UART 接口支持标准的工业 MODBUS 通讯协议( 03、 04、 06、 16 指令码)和自定义的简单 AABB协议以及$字符串指令集。 前两种协议均支持基于模块地址和总线连接的一主多从应用结构, 在总线中, VMXXX 模块始终作为从机使用( 被动等待指令, 不主动上传数据,但“ 自动上传数据”和“ 软件握手” 除外, 详见后续对应章节说明)。

 


建议使用专用的 VMTool 工具进行寄存器指令的生成和测试,关于 VMTool 的基本用法,请详见“ 第四章:参数配置工具的使用” 。根据下述通讯协议规则,读写寄存器。在使用 MODBUS 或 AABB 通讯协议时, 请确认模块的软件握手参数处于关闭状态(默认)。

(一) MODBUS 通讯协议
在 MODBUS 协议下, VMXXX 内部所有寄存器被定义为“ 保持寄存器” (详见 MODBUS 通讯协议标准说明),模块支持基于 MODBUS 协议的多个连续寄存器读取、单个寄存器写入、多个连续寄存器写入三种指令, 对应指令码分别为 0x03(或 0x04)、 0x06、 0x10。 下面逐一说明每种指令码的指令和返回数据帧格式。


( 1) 03/04( 0x03/0x04) 指令码: 读取多个连续的寄存器数据,指令格式如下
指令数据帧结构

 


例:读取地址为 0x01 的模块寄存器值,寄存器开始地址为 0,连续读取 10 个寄存器
主机发送指令: 0x01 0x03 0x00 0x00 0x00 0x0A 0xC5 0xCD

从机返回应答: 0x01 0x03 0x14 0x00 0x01 0x00 0x60 0x00 0x00 0x00 0x00 0x00 0x000x00 0x01 0x01 0xF4 0x00 0x00 0x00 0x64 0x00 0xC8 0x5F 0x8F(下划线为读取到的 10 个寄存器值)
主机发送指令: 0x01 0x04 0x00 0x00 0x00 0x0A 0x70 0x0D
从机返回应答: 0x01 0x04 0x14 0x00 0x01 0x00 0x60 0x00 0x00 0x00 0x00 0x00 0x000x00 0x01 0x01 0xF4 0x00 0x00 0x00 0x14 0x14 0xC8 0xB7 0x62(下划线为读取到的 10 个寄存器值)
读取多个连续寄存器时, 单次读取不要超过 64 个寄存器, 不要试图读取不存在的寄存器( 地址大于 63 的寄存器)。

( 2) 06( 0x06) 指令码: 修改单个寄存器的值, 指令格式如下

 

例: 将地址为 0x01 的模块中的寄存器 8 的值修改为 100
主机发送指令: 0x01 0x06 0x00 0x08 0x00 0x64 0x09 0xE3
从机返回应答: 0x01 0x06 0x00 0x08 0x00 0x64 0x09 0xE3
( 3) 16( 0x10) 指令码: 修改连续的多个寄存器的值, 指令格式如下


例:修改地址为 0x01 的模块中 0~31 寄存器的值
主机发送指令( 16 进制指令): 01 10 00 00 00 20 40 00 01 00 60 00 00 00 03 00 00 00 01 01 F4 00 00 00 C8 C8 C8 00 01 82 35 00 05 03 E8 00 A0 05 DC 06 40 00 05 00 64 00 00 00 0A 00 0A 00 04 01 77 03 15 00 00 00 00 03 E8 00 01 00 00 00 00 00 00 A3 70(下划线数据为 32 个寄存器值)
从机返回应答: 0x01 0x10 0x00 0x00 0x00 0x20 0xXX 0xXX  VMXXX 的 UART 接收缓存为 80 字节,向模块发送多寄存器写指令时,单帧指令长度不要超限。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记一次攻防演练之vcenter后渗透利用

1. 说明 很早之前的一次攻防演练,主要是从web漏洞入手,逐渐学习vcenter后利用技术。过程由于太长,很多细节都省略了,中间踩坑、磕磕绊绊的地方太多了。。。 由于敏感性,很多地方都是打码或者是没有图,按照…

synchronized关键字

多线程编程中,最让人头疼的问题莫过于线程安全,如果对存在线程安全问题的代码不加以处理,可能会带来严重的后果,例如用两个线程对同一个变量进行增加操作 class Counter {//这个 变量 是两个线程要去自增的变量public int count;…

进程调度算法详解

进程调度算法🏞️1. 调度指标🌁2. 先进先出(FIFO)🌠3. 最短作业优先(SJF)🌌4. 最短剩余时间优先(STCF)🌿5. 新度量指标:响应时间&…

linux网络编程(四)多路I/O转接服务器

文章目录1.多路I/O转接服务器2.select 方式的多路I/O转接服务器3.poll 方式的多路I/O转接服务器4.epoll 方式的多路I/O转接服务器1.多路I/O转接服务器 多路IO转接服务器也叫做多任务IO服务器。该类服务器实现的主旨思想是,不再由应用程序自己监视客户端连接&#xf…

利用stream实现行政区域列表转tree树形结构

一、数据结构 CREATE TABLE t_districts (adcode bigint NOT NULL COMMENT 主键(区域编码)\r\n,pid varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 父级区域编码,name varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci D…

MySQL的Redo log 、Undo log、 Binlog

MySQL的redo log 、undo log、 binlog redo log概念 redo log翻译过来叫重做日志,是一种保证持久化的措施,innodb存储引擎的物理日志文件 redo log是固定大小的,是循环写的过程 有了redo log之后,innodb就可以保证即使数据库发…

数据存储介绍

数据存储对象包括数据流在加工过程中产生的临时文件或加工过程中需要查找的信息。数据以某种格式记录在计算机内部或外部存储介质上。数据存储要命名,这种命名要反映信息特征的组成含义。数据流反映了系统中流动的数据,表现出动态数据的特征;…

STM32个人笔记-电源管理

笔记来源于STM32F103VET6,野火指南者,中文参考手册,HAL库开发手册和b站的野火指南者视频。观看过好多次了,但往往理解得不够全面,现记下小笔记,用来回顾。属于个人笔记。 电源监控器 STM32芯片主要通过VDD…

代码审计基础之SQL注入漏洞

1.SQL注入原理 SQL注入就是攻击者通过把恶意的SQL语句插入到Web表单的输入页面中,且插入的恶意语句会导致原有的SQL语句发生改变,从而达到攻击者的目的去让它执行一些危险的数据操作,进一步欺骗服务器去执行一些非本意的操作。 简单来讲&am…

Python BeautifulSoup4 入门使用

一、简介 BeautifulSoup4 与 lxml 一样,是一个 html 解析器,主要功能也是解析和提取数据。 BeautifulSoup4 是 爬虫 必学的技能。BeautifulSoup 最主要的功能是从网页抓取数据,Beautiful Soup 自动将输入文档转换为 Unicode 编码&#xff0c…

Verilog语言中case、casex、casez的用法和区别

casez与casex语句是case语句的两种变体, 在写testbench时用到。case 语句是一种多路条件分支的形式,可以解决 if 语句中有多个条件选项时使用不方便的问题。 一、case、casex、casez的区别 下表给出case、casex、casez的真值表: 1)在case语…

【计算机网络实验】防火墙访问控制列表实验

实验内容 防火墙访问控制列表实验 实验目的 理解访问控制列表的工作原理;了解访问控制列表的类型;学习标准访问控制列表的配置。 实验要求 1 实验拓扑图 本实验所用的网络拓扑如图1所示。 图1 ACL实验拓扑结构 2 实验步骤 Router0配置;&…

解决 npm install express 遇到的问题总结

方法1:权限 以管理员身份运行cmd执行npm install express --save命令 方法2:切换镜像源 查看镜像源 npm config get registry 如果要直接更换淘宝:npm config set registry https://registry.npmmirror.com/ 使用nrm切换 1.安装nrm npm i …

106362-34-9,(D-Ala1)-Peptide T amide

肽t的有效类似物DAPTA (aSTTTNYT-amide)在单核/巨噬细胞中显示出很强的抗hiv - 1活性,该肽抑制病毒的进入。 编号: 110545中文名称: 肽T、(D-Ala1)-Peptide T amide英文名: (D-Ala1)-Peptide T amideCAS号: 106362-34-9单字母: H2N-DAla-STTTNYT-NH2三字母: H2N-DAl…

设计模式 — 抽象工厂模式

抽象工厂模式女娲的失误实例 一实例 二抽象工厂模式的应用抽象工厂模式的优点抽象工厂模式的缺点抽象工厂模式的使用场景抽象工厂模式的注意事项女娲的失误 女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型&#…

Spark框架概述

Spark 框架概述 1.1. Spark是什么 定义:Apache Spark是用于大规模数据处理的统一分析引擎。 弹性分布式数据集RDD是一种分布式内存抽象,其使得程序员能够在大规模集群中做内存运算,并且有一定的容错方式。而这也是整个Spark的核心数据结构…

体验静态代码块

定义 public class Game {// 静态代码块static {System.out.println("static...run...");}// 构造方法public Game() {System.out.println("game...construct...");} }使用 结论 静态代码块在类被首次加载的时候触发启动

效能优化实践:C/C++单元测试万能插桩工具

研发效能是一个涉及面很广的话题,它涵盖了软件交付的整个生命周期,涉及产品、架构、开发、测试、运维,每个环节都可能影响顺畅、高质量地持续有效交付。在腾讯安全平台部实际研发与测试工作中我们发现,代码插桩隔离是单元测试工作…

theos tweak导入自定义类

有时,我们使用tweak的时候需要用到自定义的类,那么怎么引用呢? 假设我们有一个自定义类,people.h/people.m 那么分两种情况: 情况一,直接使用官方的tweak工程: 目录结构一般如下: …

[第九篇]——Docker 镜像使用

Docker 镜像使用 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。 下面我们来学习: 1、管理和使用本地 Docker 主机镜像2、创建镜像列出镜像列表 …