admin 管理员组文章数量: 887021
2024年1月25日发(作者:氮的化合价是几价)
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、 传感器没有回应;
2、 在接收到回应的Start Bit后,出现了8.33MS的Mark;
3、 不正确的回应。
错误回应包括:不正确的格式;奇偶校验错误;帧错误或者是总线竞争。在发送重试以前必须等待回应结束。任何以上三条件之一存在的话,将触发重试。
SDI-12 通信协议
SDI-12的主机和传感器之间通过ASCII字符进行数据交换。主机将数据线置高12MS以发送一个Break来唤醒传感器。主机发送一个命令。传感器回复一个相应的应答。每个命令都将发送给一个明确的传感器。每个命令的第一个字符是主机将要通信的那个传感器的唯一地址。其他的传感器将跳过这个命令并再次进入休眠状态。主机开始从一个传感器采集数据后,如果没有接收到正确的回应将不会同其他传感器进行通信。
一个标准的传输流程为:
1、 主机通过一个Break来唤醒SDI-12总线上的所有设备;
2、 主机广播一个带有唯一地址的命令,指示一个传感器进行测量;
3、 地址指向的传感器将在15MS以内回应测量设备将数据准备好所需的时间和将要回应的数据的字节数;
4、 如果测量数据立刻就可以准备好,主机将发送一个命令来得到测量数据。如果数据不能立刻准备好,主机将等待传感器发送一个表示数据已经准备就绪的请求。这时主机再发送命令来得到数据;
5、 传感器回应一个或多个测量数据。
数据率和帧格式
SDI-12总线的数据率是1200,下表显示了SDI-12的帧格式:
Start Bit: 奇偶校验:偶校验 End Bit:
UART设置:硬件流关闭,数据位8,校验无,停止位1,起始位1.
BAUD_M=131,BAUD_E=5 波特率:1200.
正当的字符
在SDI-12总线上传输的数据必须是可以显示的ASCII字符。有效字符为32~126,ASCII码表如下所示:
代码
0
1
2
3
4
5
6
7
8
9
10
11
字符
**
**
**
代码
32
33
34
35
36
37
38
39
40
41
42
43
字符
[空格]
!
"
#
$
%
&
'
(
)
*
+
代码
64
65
66
67
68
69
70
71
72
73
74
75
字符
@
A
B
C
D
E
F
G
H
I
J
K
代码
96
97
98
99
100
101
102
103
104
105
106
107
字符
`
a
b
c
d
e
f
g
h
i
j
k
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
**
版权声明:本文标题:sdi-12实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1706170606h502809.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
更多相关文章
《Kettle构建Hadoop ETL系统实践》大数据ETL开发工具选择Kettle的理由
ETL一词是Extract、Transform、Load三个英文单词的首字母缩写,中文意为抽取、转换、装载。ETL是建立数据仓库最重要的处理过程,也是最能体现工作量的环节,一
Linux中用命令实现文件的上传和下载
一、安装工具包 使用yum install -y lrzsz命令,即可在linux系统中安装上传和下载的工具包。 当然,在安装过程中可能会出现Cannot retrieve metalink f
Windows 7定时关机命令shutdown
在 Win7 中,shutdown实现自动关机的方法如下: 【方法一:计划任务法】开始>>> 在搜索框输入cmd >>> 回车 >>>
【6种方法】如何解锁安卓手机图案锁而不丢失数据?
“我忘记了三星 S23 的锁屏密码,现在它已锁定。有什么方法可以解锁我的三星手机而不丢失数据吗?” 我上周五在三星论坛上看到了这篇文章,当时我无法回答。经过我探索和研究了许
在windows系统环境下使用 tail 命令实时查看文件
文章目录 前言一、使用tail for Windows工具二、使用Git Bash 前言 Linux系统下我们可以使用tail -f 命令实时查看文件,下面提供两种在windows系统环境下使用tail 命令的方法。
本地windows系统中,ping本机上的linux地址,接收不到数据
目录 ping Linux地址1、确认IP地址没问题2、关闭linux系统中的防火墙3、关闭windows物理机上的防火墙4、 还原虚拟网络配置 ping Linux地址 问题: 在本地windows系统中&
大数据学习笔记 第1天 Linux(一)
大数据学习笔记 第1天 Linux(一) 一、GNULinux 简介与下载 1.1 简介 1.1.1 定义与起源 GNULinux 是类 Unix 操作系统。GNU 计划是要创建自由操作系统,Linux 是
进阶-Linux目录结构与目录结构命令
1、大纲 日志查看四剑客:catheadtailmorelesswcwhichwhereisdiffvimdiff排序:sort,uniq时间:date打包压缩
可以用来回复系统的cmd命令(仅限于windows)
Dism Online Cleanup-Image ScanHealth Dism Online Cleanup-Image CheckHealth Dism Online Cleanup-Image RestoreH
SC命令---安装、开启、配置、关闭windows服务
废话不多说,看命令行更直接! 一、直接使用cmd来进行服务的一些操作 1、安装服务 [javascript] view plain copy sc create test3 binPath &q
python拿到的数据怎么放到页面里_学会Python3模拟登录并爬取表格数据!excel高手也自叹不如!...
主要内容有: 通过requests库模拟表单提交通过pandas库提取网页表格朋友发给我一个网址,哭哭啼啼地求我:“去!把这个网页上所有年所有县所有作物的数据全爬下来,存到Access里!” 我看他可怜,勉为其难地挥挥手说:“好嘞,马上就开
Python数据分析案例47——笔记本电脑价格影响因素分析
案例背景 博主对电脑的价格和配置一直略有研究,正好最近也有笔记本电脑相关的数据,想着来做点分析吧,写成一个案例。基本上描述性统计,画图
数据库误操作,如何恢复数据(SQL事务,或数据库还原)
数据库误操作 一般指,不小心删除插入了某个数据,或是当有多个操作同时执行时,因为网络原因或者机器原因,导致整体操作只执行了一半,
[ Linux 命令基础 4 ] Linux 命令详解-文本处理命令
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域&
小米手机恢复出厂设置,数据怎么办?还能恢复吗?
在日常生活中,手机已成为我们不可或缺的伙伴。然而,在使用过程中,难免会遇到一些意外情况,比如不小心将手机恢复出厂设置,导致数据丢失
windows常见的命令操作大全
目录 一、目录文件操作 cd命令 dir命令 md命令 rd命令 move命令 copy命令 del命令 二、文本相关操作 type命令 >命令 findstr命令 |命令 三、网络相关操作 小建议&
Claude和ChatGPT到底选择谁?用真实数据对比
关于“Claude和ChatGPT到底选择谁的问题”,如果是放到2个月前,我或许会毫不犹豫选择ChatGPT,不过最近Claude的一顿更新,让我一下子
常用的Windows黑窗口cmd命令
Windows 命令提示符(cmd)提供了许多命令,用于执行各种系统管理任务、文件操作、网络配置等。以下是一些常用的命令,按照功能进行分类&#x
使用windows自带的网络命令工具抓包
1 使用windows自带的网络工具抓包 文章目录 1 使用windows自带的网络工具抓包1.1 windows下抓包过程1.2 抓包文件分析 在音视频领域,涉及到对接码流传输的各种问题,很多是
如何恢复U盘里格式化数据?别慌,有带图详细步骤!
U盘,这个小巧的存储神器,我们几乎天天都在用。但有时候,一不小心手滑,U盘就被格式化了,里面的东西好像全没了,
发表评论