请问物联网大佬们,市面上不同的平台,是如何相互通讯的?

别关注我想静静


提问者可能是业余爱好者或者做上层软件的,我尽量用通俗的语言来解释一下。

两个硬件要互相通信就需要协议,协议这个东西说白了就是一系列的规则,硬件层面的来说规定了速度,信号的电压,等等之类的,比如最简单的rs232串口,电压一般是1的话大于9v,然后还有一个波特率,就是每个bit的时间是多少,对方才能用和你相同的速度采集你发送的信息,说了硬件层面的还有软件层面的,比如带不带检验,是带不带停止位等等,只有所有的都相同,两个硬件才能互相通信,简单点说协议就好比不同国家说的语言,只有用同一个语言才能交流。

协议说完了说说这些硬件怎么通信,一般来说不同协议通信方式的特点不同,有的速度慢但是抗干扰,有的速度快但是距离短……所以选择合适的协议和方式很重要。

嵌入式常见的方式有:uart(TTL电平,232电平和485电平),spi,iic,can总线,以太网等等,这些都是低速的接口,还有高速的串行通信

一般来说串行的接口速度更快一些,比如SATA就是一种串行的接口,而且是一种差分的信号。

最后举几个具体的例子,比如arduino和树莓派怎么通信,arduino只有uart,spi,和iic。但是spi和iic是分主从的,一般只能把arduino作为一个从设备,树莓派啥时候需要啥时候发起通信读取信息,而uart是对等的全双工通信,主动给对方发送数据,被动的接收对方数据,再具体点,把树莓派的uart接口的txd接到arduino的rxd,反过来树莓派的rxd和arduino的txd,最后把两个板子的GND也连到一起,剩下的就是软件的事了。

在arduino的程序里调用uart发送的函数,把需要的字符作为参数传给这个函数,当执行到这个函数的时候就会有一个信号序列到树莓派上,当然树莓派也要走程序,或者把对应的串口输出定向到控制台,这个时候你就可以看见发送过来的数据了!

太多了说不过来


大树NB


通过iot标准来通迅的,例如,你的硬件要加入啊里的平台,就需要符合阿里的iot标准,啊里的平台才可以识别到你的硬件获取的数据,


LM凌敏


不同平台的通信都是基于各种协议的。

什么事协议呢?

协议就是一套规则,例如:中国人和中国人沟通采用普通话,那么如果一个不会英语的中国人和说英语的美国人是无法沟通的,这中间的语言就是这种协议,而当这个中国人学会了英语他就能和这个美国人沟通了,这就是说这个采用了英语这条协议。

各个平台之间的通信,通常采用的是TCP/IP

协议,这是用的最广的协议,不同平台采用的编程语言可能不同,但是他们用不同代码都可以写TCP/IP通信,

以python语言为例:

TCP通信一般只需要五个步骤,

1、初始化套字节

2、绑定IP

3、确定可连接数

4、等待连接

5、收发数据

硬件之间的通信,一般有I2C,SPI,UART


分享到:


相關文章: