在这个年头非常重要,单片机运行存储器都是按字节计算,每一位搞单片机的同志都恨不得一位掰成两半来用,可没有几十年后片内RAM动不动就按KByte计算那么豪横。
SDI-12没有用常见的TLV(Topic-Long-Value,标题-长度-值)结构,那样太长了,他的传感器回复数据大致是这么个画风。
“1+12345.6!”,纯ASCII字符串。
‘1’是传感器号,‘+’号可以是正负号中的任意一个,后面是传感器的值,‘!’是结束符,就这么简单。
对于薛崇礼来说,SDI-12的整套传输规约反而是相当简单的,麻烦的是要操作RS-485总线实现信号线上的时序信号完成启动、握手、传输、结束的整个过程。
“数据的传输本身倒是很简单,反而是时序信号麻烦一些。”薛崇礼道,但是他也知道,这已经是最简单的了,老同学在这方面已经尽量摈弃了不必要的复杂功能。
高振东点点头:“是的,不过你可以从简单的开始做起,甚至在这个远程串口总线上,你可以先实现数据的传输,时序信号什么的,放到后面来做。”
“这样可以么?”作为还没有对SDI-12有深入研究的薛崇礼,对于这个东西的理解还没有那么深。
“可以的,实际上数据传输这部分,本来就可以拎出来单独用。反正你传感器到数据采集终端是从主模式,实际上可以节省很多握手和冲突处理过程。你可以先做一个子集,再做全集嘛。”
实际上SDI-12的简化版,甚至是切割掉硬件握手规定之后的纯数据传输部分,在后来大量被应用到土壤、水利、环保、气象等领域,因为这东西原本是花旗环保局制定的。
其他同志听他们两对话有点像听天书,但是薛崇礼却是把高振东的话听得有点明白了。
“主从模式下可以省略握手和冲突处理?”
高振东点点头,画了一个主从模式的总线挂接示意图。
“你看这里,在这种模式下,能发起通信的只有作为主机的数据采集传输器,其他的传感器都是在接收到对自己的询问之后才会发起,这样一来,握手和冲突处理就简单多了,几乎没有太多需要处理的地方,唯一需要处理的,就是地址查询指令,不要让所有的传感器同时回复地址就行,甚至在这种情况下,可以在主机端禁用掉地址查询指令。”
高振东那能凑合就凑合的德性又上来了
本章未完,请点击下一页继续阅读!