"); //-->
模块有连续测量和单次测量两种测量模式,通过向测量模式寄存器 WKMOD.[0]写入 1 使模
块工作于连续测量工作模式,写入 0 使模块工作于单次测量工作模式。WKMOD.[15]用来设置是
否在模块“忙”时禁用数字接口,当数字接口被禁用期间,模块不会收到任何经由数字接口传
输的数据或指令,当数字接口不被禁用时,模块内部维持传感器测量优先的逻辑,收到的指令
会在模块完成当次测量后得到响应。
连续测量模式
在连续测量模式下,模块每间隔一定的时间自动进行一次传感器激励和数据读取操作,相
邻两次测量的时间间隔由寄存器 MM_INTE 进行设置,单位为毫秒。
无论是连续测量模式还是单次测量模式,在每次向传感器发送激励信号之前均会等待
MM_INTE 毫秒,所以,连续测量时间间隔也称为“激励前等待时长”。
单次测量模式
单次测量是指模块一直处于“空闲”状态,当收到单次测量指令后,立即启动单次测量过
程的工作流程。在单次测量模式,每隔 3 秒在 RTS 管脚输出一次短促高脉冲(10ms)表示当前
处于单次工作模式。有四类指令可以触发一次单次测量。
(1)使用专用$指令集指令
通过 UART 接口向模块发送单次测量指令$MSFR=x 或者$MSFT=x。
例:在单次测量模式下
向模块发送单次测量指令:$MSFR=3\r\n
模块开始完成 3 次测量,当完成后输出频率测量结果数据:$FR=1343.3Hz\r\n
向模块发送单次测量指令:$MSFT=3\r\n
模块开始完成 3 次测量,当完成后输出频率和温度测量结果数据:
$FR=1343.3Hz\t$TE=30.2’C\r\n
(2)使用专用单次测量指令 0xAAAA 或 0xAAAB
通过 UART 接口向模块发送特定的单次测量指令,模块测量完成后主动上传频率和温度测量
结果
单次测量时,测量次数尽量>=3 次,且推荐使用高压激励方法、开启历史数据滤波功能。若
采用扫频法,可能首次测量失败,影响最终结果计算(若使用了历史数据滤波功能)。
例:在单次测量模式下
向模块发送单次测量指令:AA AA 01 13 68
模块开始完成 3 次测量,当完成后输出频率测量结果数据:AA AA 01 13 34 3A D6,则当
前测量到的频率值为(0x34*256+0x3A)/10=1337.0Hz。
向模块发送单次测量指令:AA AB 01 13 69
模块开始完成 3 次测量,当完成后输出频率和温度测量结果数据:AA AB 01 13 34 3A 00
F5 CC,则当前测量到的频率值为(0x34*256+0x3A)/10=1337.0Hz,温度值为 24.5℃。
(3)向系统功能寄存器写入单次测量指令码
使用数字接口,任意一种通讯协议,向系统功能寄存器 SYS_FUN 写入 0x1x、0x3x 或者 0x7x
指令码,触发一次单次测量。使用这种方法时,模块遵循主从通讯机制,在完成测量后不会主动
上传数据,可以通过读取系统状态寄存器 SYS_STA.[4]来判断当前是否已经完成了本次单次测
量,并在检测到完成时读取频率寄存器 S_FRQ 获得本次测量的频率结果。
例:在单次测量模式下使用 MODBUS 协议
向模块发送单次测量指令:01 06 00 03 00 13 38 07
模块返回 MODBUS 应答数据:01 06 00 03 00 13 38 07
模块开始完成 3 次测量,当完成后不输出任何信息,需要读取 SYS_STA.[4]来判断测量是否
完成。
(4)直接读取频率寄存器 S_FRQ
在单次测量模式下使用 MODBUS 或 AABB 通讯协议读取频率寄存器 S_FRQ,VM 模块执行 0x73
指令码,并根据使用的通讯协议返回寄存器值。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。