sdi-12实现最新分析和总结.pdfVIP

  • 189
  • 0
  • 约1.56万字
  • 约 16页
  • 2021-08-02 发布于湖北
  • 举报
SDI-12 串行总线实现 图 1:总线时序 唤醒信号: 12MS 高电平( Least)+8.33MS 低电平; 主机指令发送; 从机应答发送。 对于时序偏差的容忍度是± 0.4MS,唯一的例外是 Stop Bit 和下一个 Start Bit 之间的 时间间隔的最大值为 1.66MS 不允许偏差。 主机将数据线设置为高至少 12MS将被认为是一个 Break ; 从机在数据线设置为高 6.5MS 以内不会认为是 Break ,而设置为高 12MS以上必定认为 是 Break ; 从机在接收地址之前,必须要等待 8.33MS 的前导低电平; 在接收到 Break 信号 100MS以内,传感器必须被唤醒,并做好监测 Start Bit 的准备; 主机在发送完命令的最后一个 Bit 以后,必须在 Stop Bit 结束后 7.5MS 内让出总线的 控制权; (容忍度: +0.4MS) 在接收到 Break 和 Command 以后,被地址定位的从机将数据总线设置为低 8.33MS (容 忍度:— 0.4MS),应答的第一个 Byte 的 Start Bit 应在 Command 的最后一个 Stop Bit 发送后 15MS 发送(容忍度: +0.4MS); 从机在发送完最后一个应答 Byte 以后,应该在 7.5MS 以内释放总线的控制权 (容忍度: +0.4MS); 在应答和指令的两个 Bytes 的 Stop Bit 和 Start Bit 之间的时间间隔不能超过 1.66MS,没 有容忍,这使得对 M 命令的应答被限制在 380MS 以内; 传感器必须在接受到一个无效地址或者在接受到最后一个 Mark Bit 的 100MS 后进入睡 眠模式(容忍度: +0.4MS); 如果上一个指令是不同的地址,或者最后一个 Market Bit 已经发送了 87MS,在发送命 令前应加上 Break 。 Break 的规则 在需要从休眠状态唤醒一个传感器时, 主机将发送一个 Break Bit。传感器在接受到最后 一个 Mark Bit 的 100MS 后或者接收到一个无效地址后将再次进入休眠状态。因此,如果上 一个指令是不同的地址,或者最后一个 Market Bit 已经发送了 87MS,在发送命令前应加上 Break。 如果接收到的服务通知将在 87MS 以内执行 D0 指令, 主机不一定要发送 Break。然而如 果延迟的时间超过了 87MS ,则必须发送一个 Break 来唤醒设备。 重试 主机必须支持重试,传感器在接收到 Break 以后有 100MS 的时间来唤醒设备,且在被 唤醒前不会接收任何指令。 传感器在检测到数据总线空闲 100MS 以后将再次进入休眠模式。 重试:在发送命令后没有接到回应的情况下,主机将等到命令的最后一个 Bit 发送 16.67MS 以后 87MS 以前重新发送命令(不需要 Break)。在重试两次以上以后仍未接收到正 确的回应新号,如果最后一次重试是在 Break 的 100MS 以后(保证设备拥有完整的 100MS 的唤醒时间) ,将重新发送包括 Break 在内的所有命令(两次以上) 。 重试的条件如下: 1、 传感器没有回应;

文档评论(0)

1亿VIP精品文档

相关文档