振弦采集模块的通讯协议( IIC)
IIC 通讯协议本身即是基于设备地址和寄存器的物理层通讯协议, VMXXX 使用 IIC 接口对传感器的访问,请遵循前述硬件接口时序及协议说明即可。
IIC 访问时使用与 UART 相同的寄存器地址,地址定义请详见“3.5 寄存器概述” 。需要注意的是寄存器的类型为“ 字” ,占用 2 字节,在使用 IIC 读写寄存器时,读取和写入的字节数必须为偶数。
IIC 中的 STOP 信号是不可省略的,若省略则当次访问不会生效。
向寄存器写操作时,在每次发送 STOP 后应延时 10ms 后再发起下次访问。通过 IIC 修改单个寄存器后会立即保存,而连续寄存器的修改不会自动保存(仅当时生效),
下次上电自动恢复,若要保存所有寄存器的当前值,需要向 FUN 寄存器写入功能码 0x0C(详见“7.1 功能码汇总” )。
IIC 为同步串行接口, 在 IIC 总线中作为从设备的 VMXXX 无法主动输出任何数据,本手册中所述的与自动上传有关的特性均是指 UART 接口。
主动上传测量数据( UART)
默认情况下 VMXXX 模块总是以从机身份与主机完成数据交互, 在这种主从结构中, VMXXX 从
不主动上传数据, 可通过修改自动上传寄存器( ATSD_SEL)来实现模块主动输出测量数据功能,
ATSD_SEL 寄存器的每 1 位对应了一种数据类型,见下表。
当某位被设置为 1 时, 模块通过 UART 接口主动上传数据。 除实时信号幅值数据外,其它数据均在每次完成传感器频率计算及温度采集后自动以字符串形式上传。 自动上传的数据以“ $”
开始,字符串结构为: $aa=bbbb-[cc]-[dd]\r\n
$:固定符号
aa:数据类型标识,见上表说明
=:固定符号
bbbb:数据值
cc:数据单位,无单位数据为空
dd: 附加信息,当为信号实时幅值数据时, dd 表示数据索引值
\r\n:回车符