通讯协议是上位机通过 VMXXX 模块支持的数字接口完成信息交互的数据格式、传输步骤、
通讯速率等的一系列预先约定。上位机必须按照本章描述的通讯协议规则来完成与 VMXXX 的数据交互工作。
寄存器机制
VMXXX 内部维护有若干寄存器,模块在寄存器参数值的控制下完成振弦传感器的测量工作。
寄存器的值总是以整数形式存在,基本操作单位为“字”(2 字节整数,大端模式),有掉电保 存和掉电丢失两种类型(对应“读/写”和“只读”两种属性)。通过模块的数字接口可完成对 寄存器的读取和写入(修改)操作。寄存器写(修改)寿命典型值为 10 万次,读取次数没有限制。
数据模式
寄存器数据值采用大端模式,数据的高字节保存在内存的低地址中,而数据的低字节保存
在内存的高地址中,数据帧传输时先传输低地址字节后传输高字节。每个寄存器对应两个字节则单个寄存器的值=低字节值*256+高字节值。
使用握手协议
在读写寄存器时,建议使用 VMXXX 模块的握手协议(非必须),当检测到模块空闲时发起寄存器操作
硬件握手
基于 RTS 输出信号的时域特点,此管脚还可作为数字接口的硬件握手信号使用。当模块的
UART 接口为 RS232 时,RTS 管脚已经转换为 RS232 电平信号,直接连接上位机 RS232 接口的 CTS即可。
软件握手
模块开始一次测量时,从 UART 接口主动发送 XOFF 信号(0x13),表示模块开始忙于测量数据,当测量完成时主动发送 XON 信号(0x11),表示模块本次测量完成,正处于空闲状态。在开启模块的软件握手功能后,若需要向模块发送指令,建议 UART 的通讯流程为:首先等待模块返回 XON 信号(0x11),当收到 XON 信号或等待超时后立即向模块发送指令。
注:在一主多从的总线应用中,严禁开启模块的软件握手功能。
冲突解决
当模块收到上位机指令时原则上会立即处理并返回应答信息,若模块“正忙”时,VMXXX 采
用测量优先的原则,等待当前测量周期结束才会响应。不同的工作参数会有不同的“忙”时长(详见“3.15 测量时长与优化”),在发送指令后,若模块未能及时回复,应继续等待其响应并返回响应信息。在模块未回复前,向模块发送多条指令没有意义,模块仅会响应最先收到的一条指令。
注:数字接口通讯会在一定程度上影响振弦传感器频率采集精度,不要过于频繁的对数字
接口发送指令