物联网的通信协议

这篇具有很好参考价值的文章主要介绍了物联网的通信协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

物联网的通信协议



通信的目的是为了传递信息

由于要实现设备之间的数据传输,寻找物物之间最合适的连接方式是我们必须要考虑的。这些通信方式各有优劣,适用于不同的应用场景。

物联网的通信方式可大致分为如下几类

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

物联网的有线通信也就是以太网、光缆等有实体线路的通信方式,IEEE802.3标准制定了以太网的标准,以太网使用双绞线作为媒介,在没有中继的情况下,可以覆盖200米的范围。有线通信可以保证通信的质量、时延和成本,还可以在恶劣的环境下正常运行,但通信范围小、不便于携带的问题也无法解决。

物联网的无线通信技术很多,主要分为两类:一类是Zigbee、WiFi、蓝牙、Z-wave等短距离通信技术;另一类是LPWAN(low-power Wide-Area Network,低功耗广域网),即广域网通信技术。LPWA又可分为两类:一类是工作于未授权频谱的LoRa、SigFox等技术;另一类是工作于授权频谱下,3GPP支持的2/3/4G蜂窝通信技术,比如EC-GSM、LTE Cat-m、NB-IoT等。高速率业务主要使用3G、4G技术;中等速率业务主要使用GPRS技术。低速率业务目前还没有很好的蜂窝技术来满足,而它却有着丰富多样的应用场景,很多情况下只能使用GPRS技术勉力支撑。

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件
这里可以看到Lora和NB-IOT是比较像的,区别主要是Lora频谱在部分段免费(可自建),而NB-IOT是要在运营商上运行的。对于需要视频流的远距离传输需求,组网的只有4G+WIFI合适了。

无线通信还可分为非授权频谱无线连接和授权频谱无线连接,也就是花钱租网络。
授权频谱无线连接就是我们常见的蜂窝通信,也就是运营商的网络
1G:AMPS
2G:TDMA,CDMA,GSM…
3G:UMTS,HSDPA,WCDMA…
4G:LTE,EC-GSM,eMTC…

非授权频谱无线连接又可以进一步划分为短程通信,和广域通信
短程通信
超宽带:UWB
宽带:WIFI(永远在线)
窄带:蓝牙(高功耗),NFC(近距离通信),zigBee(节点阻塞)

广域通信
Lora

一、UART串口通信

串口通信的英文缩写是UART(Universal Asynchronous Receiver Transmitter) 全称是通用异步收发器。

1.1 串口通信

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

两个设备用一根线串起来,发送方在线的一头将数据转换为二进制序列,用高低电平按照顺序依次发送01信号,接收方在线的另一头读取这根信号线上的高低电平信号,对应转化为二进制的01序列。这就是最基本的串口通信的概念,

1.2 异步收发

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件
如果给上图的两个设备再加一根线,让左边的设备也可以成为接收方,右边的设备也可以成为发送方,那么对于左右两个设备而言,发送和接受便可以在两根线上同时进行,这时,发送和接收是异步的。

1.3 波特率

波特率就是每秒传输的0和1的二进制数,接收方和发送方波特率必须相同,不然会发生乱码的情况。物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

因为每次都要保证收发方的波特率一致很不方便,所以一些基于时钟的通信协议如I2C总线协议、SPI总线协议,都是以时钟线来保证信息的收发同步的。

1.4 串口通信协议的数据帧

在串口通信中,最基本的一帧数据,至少包含了 起始位+数据位+停止位(校验帧可有可无)。
数据的传输方向一般是最高有效位MSB.
在UART串口中,RX 代表信息接收端,TX 代表信息发送端。

1.5 优缺点

1.5.1 优点

(1)硬件简单
(2)低延时
(3)直接连接

1.5.2 缺点

(1)点对点通信,不适合复杂网络通信
(2)通信距离和速率受限于串口线缆的长度和质量
(3)缺乏协议,通信双方需要自行定义消息格式和解析规则

二、I2C

2.1 I2C

I²C(Inter-integrated Circuit)最早是飞利浦在1982年开发设计的一种总线协议。I²C总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换。

2.2 I2C

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

I²C最少只需要两根线,和异步串口类似,但可以支持多个从(slave)设备,和SPI不同的是,I²C可以支持多主机(mul-master)系统,允许有多个master并且每个master都可以与所有的slaves通信(master之间不可通过I²C通信,并且每个master只能轮流使用I²C总线)。master是指启动数据传输的设备并在总线上生成时钟信号以驱动该传输,而被寻址的通信设备都作为slaves。

I²C通讯只需要2条双向总线:串行数据线SDA和串行时钟线SCL

2.3 数据有效性

SDA 线上的数据必须在时钟的高电平周期保持稳定,SDA的高或低电平状态只有在 SCL 线的时钟信号是低电平时才能改变。

2.4 起始条件S和停止条件P

起始条件S:当SCL高电平时,SDA由高电平向低电平转换;

停止条件P:当SCL高电平时,SDA由低电平向高电平转换。

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

起始和停止条件一般由主机产生。总线在起始条件后处于busy的状态,在停止条件的某段时间后,总线才再次处于空闲状态。

2.5 数据格式

I2C传输的数据以字节为单位,每个字节必须为8位,可以传输任意多个字节,I2C的数据格式具有以下特点:

(1)每个字节后必须跟一个响应位 ACK物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件
的SCL上ACK),因此实际上传输一个字节(8位)的数据需要花费9位的时间。

(2)SDA上首先传输字节的最高位,从上图中我们可以看出,位数编号的发送顺序从左至右 是 Bit7-Bit0

数据接收方收到传输的一个字节数据后,需要给出响应,此时处在第九个时钟,发送端释放SDA线控制权 ,将SDA电平拉高,由接收方控制。接收方表示成功的接收到了8位一个字节的数据,便将SDA拉低为低电平,即ACK信号,表示应答

2.6 协议数据单元PDU

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

2.7 优缺点

2.7.1 优点

(1)I2C总线可以连接多个设备,使用唯一的地址进行寻址
(2)适用于中等速率的通信需求
(3)硬件资源占用少

2.7.2 缺点

(1)I2C通信受距离限制,适用于近距离通信
(2)需要配置设备的I2C地址
(3)实时性较差

三、SPI

3.1 SPI

SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线。SPI协议主要用于短距离的通信系统中,特别是嵌入式系统,很多芯片的外围设备,比如LED显示驱动器、I/O接口芯片、UART收发器等都广泛的采用SPI总线协议。

3.2 通信原理

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多
个从设备。在英文中,通常把主设备称作为 Master, 从设备称作为 Slave.
物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件
SPI理论上需要4根线才能进行双向数据传输,3根线可以进行单向传输:
SPI理论上的4根接线分别是以下四种:
物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

3.3 数据有效性

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

3.4 优缺点

3.4.1 优点

(1)支持全双工通信,发送数据和接收数据可以同时进行。
(2)通信简单
(3)数据传输速率快

3.4.2 缺点

(1)接线繁杂,需要至少四根接线
(2)在多个从机的情况下,每个从机都需要接入一根CS片选信号线,浪费芯片的IO资源。

四、Socket通信

4.1 Socket

Socket 是在应用层和传输层之间的一个抽象层,它把 TCP/IP 层复杂的操作抽象为几个简单的接口,供应用层调用实现进程在网络中的通信。Socket 起源于 UNIX,在 UNIX 一切皆文件的思想下,进程间通信就被冠名为文件描述符(file descriptor),Socket 是一种“打开—读/写—关闭”模式的实现,服务器和客户端各自维护一个“文件”,在建立连接打开后,可以向文件写入内容供对方读取或者读取对方内容,通讯结束时关闭文件。

另外我们经常说到的Socket 所在位置如下图:
物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

4.2 TCP和UDP

世界上有很多种套接字(socket),比如 DARPA Internet 地址(Internet 套接字)、本地节点的路径名(Unix套接字)、CCITT X.25地址(X.25 套接字)等。我们只介绍第一种套接字——Internet 套接字,它是最具代表性的,也是最经典最常用的。以后我们提及套接字,指的都是 Internet 套接字。根据数据的传输方式,可以将 Internet 套接字分成两种类型。

4.2.1 流格式套接字SOCK_STREAM

流格式套接字(Stream Sockets)也叫“面向连接的套接字”,是一种可靠的、双向的通信数据流,数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送。其特点:
(1)数据在传输过程中不会消失;
(2)数据是按照顺序传输的;
(3)数据的发送和接收不是同步的(有的教程也称“不存在数据边界”)。
它使用了 TCP 协议(The Transmission Control Protocol,传输控制协议),TCP 协议会控制你的数据按照顺序到达并且没有错误。
浏览器所使用的 http 协议就基于面向连接的套接字,因为必须要确保数据准确无误,否则加载的 HTML 将无法解析。

4.2.2 数据报格式套接字SOCK_DGRAM

数据报格式套接字(Datagram Sockets)也叫“无连接的套接字”。计算机只管传输数据,不作数据校验,如果数据在传输中损坏,或者没有到达另一台计算机,是没有办法补救的。也就是说,数据错了就错了,无法重传。因为数据报套接字所做的校验工作少,所以在传输效率方面比流格式套接字要高。有以下特点:
(1)强调快速传输而非传输顺序;
(2)传输的数据可能丢失也可能损毁;
(3)限制每次传输的数据大小;
(4)数据的发送和接收是同步的
数据报套接字也使用 IP 协议作路由,但是它不使用 TCP 协议,而是使用 UDP 协议(User Datagram Protocol,用户数据报协议)。
QQ 视频聊天和语音聊天就使用 SOCK_DGRAM 来传输数据,因为首先要保证通信的效率,尽量减小延迟,而数据的正确性是次要的,即使丢失很小的一部分数据,视频和音频也可以正常解析,最多出现噪点或杂音,不会对通信质量有实质的影响。

4.3 Socket通信过程

Socket 保证了不同计算机之间的通信,也就是网络通信。对于网站,通信模型是服务器与客户端之间的通信。两端都建立了一个 Socket 对象,然后通过 Socket 对象对数据进行传输。通常服务器处于一个无限循环,等待客户端的连接。下面是面向连接的 TCP 时序图:
物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件

4.4 优缺点

4.4.1 优点

(1)适用于网络通信,可以在不同设备间进行通信
(2)TCP套接字提供可靠的数据传输,确保数据准确性和顺序性
(3)支持多种编程语言

4.4.2 缺点

(1)编程较为复杂,需要处理连接、断开等情况
(2)涉及IP地址和端口的配置,需要正确配置才能建立通信连接
(3)需要在网络环境中使用,不适合直接连接在物理硬件上

五、MQTT

MQTT是应用层协议,和超文本传输协议(HTTP)等是一个层次。

5.1 消息队列遥测传输MQTT

原始的socket通信,并不能保障信息可以到达接收方,数据的可靠性包括实时性都会有一定的影响, 所以这个时候就需要一种网络通信协议Protocal 来保障信息的传递, 保障服务质量。互联网的基础网络协议是 TCP/IP。MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。

5.2 MQTT的发布和订阅模型

在基于MQTT协议的IOT网络里面里面有这么几个角色:物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件
(1)发布者 Publisher 负责发布消息, 例如传感器采集数据,然后发送当前传感器的信息

(2)订阅者 Subscriber 订阅消息,根据获得的传感器数据做出对应的动作。

(3)*服务器 Server * 信息的中转站,负责将信息从发布者传递到订阅者。

MQTT在客户端实现叫MQTT Client,在服务器端实现叫MQTT Broker。

每个单片机(Client)仅与PC(Server)保持一个长连接, 有什么数据就告诉Server, 如果有其他单片机或者PC跟这个单片机通信, 也只能通过这个Server来获取, 同时也要注意,这个数据获取的过程是被动的, 单片机没有主动轮询, 整个过程是异步的, 数据传过来,自动调用回调函数, 所以Server就成了这个单片机与这个周边设备通信的唯一的渠道,这个机制使得整个过程更加轻量级与高效 。

5.3 通信协议流程

物联网的通信协议,嵌入式,物联网,单片机,嵌入式硬件
通信所用的数据帧 Data Frame主要由主题编号 Topic ID 还有信息 Message 两部分组成。

发布者与订阅者之间是没办法直接感知到对方的存在的, 订阅者与发布者之间通过数据帧 Data Frame 里面的主题编号Topic ID 来获取自己想要的数据。

举一个远程控制LED灯亮灭的例子:

(1)ESP32与PC连入同一个局域网下, 获取PC 的IP地址

(2)PC开启 MQTT Broker, 开启Server模式

(3)ESP32传入PC的IP地址还有端口号,创建一个MQTT_Client

(4)ESP32的MQTT_Client与PC上的MQTT_Server创建一个长连接

(5)ESP32的MQTT_Client 订阅Topic LED_CONTROL

(6)PC上创建一个CLIENT, Client里面传入本地IP与MQTT Broker服务的端口号, 与PC上面的Server建立一个长连接

(7)PC上的Client, 发送数据帧 Topic ID + 指令, Topic ID为LED Control

(8)数据发送给Server, Server发现ESP32开发板订阅了LED_CONTROL 这个主题, 然后就通过ESP32与Server创建的连接发送该数据帧。

(9)ESP32接收到这个数据帧,发现TOPIC_ID: LED_CONTROL, 于是知道这个是跟LED控制相关的指令,读取到MESSAGE是LED_ON, ESP32执行指令led.on() , LED打开。

5.3 优缺点

5.3.1 优点

(1)异步消息协议
(2)面向长连接
(3)双向数据传输
(4)协议轻量级
(5)被动数据获取

5.3.2 缺点

(1)需要搭建MQTT服务器,增加了系统复杂性
(2)不适合大规模网络
(3)通信有一定的开销,可能会影响实时性需求较高的应用

六、总结

6.1 有线与无线

能用有线就用有线,数据质量是第一保证。

6.2 授权与非授权

如果两种无线通线方式效果差别不大都能完成需求时,能不花钱就不花钱,这样可以降低后期成本。

6.3 蓝牙和Zigbee

为什么现在基本手机等设备都是标配蓝牙,而不是zigbee,一个是成本,一个是zigbee大哥飞利浦建的生态系统。但Zigbee得响应速度更快,抗干扰性更强如果有这个需求的话可以考虑上Zigbee。
蓝牙1.0-5.3版本介绍

6.4 RFID和NFC

RFID是射频识别技术,是识别;NFC是近场通信技术,是通信。

6.5 MQTT和COAP

MQTT和HTTP是基于TCP的协议,CoAP(约束应用协议)是基于UDP的协议。
MQTT是长连接,CoAP协议是无连接。
MQTT通过中间代理传递消息的多对多协议,CoAP协议是Server和Client之间消息传递的单对单协议。
MQTT不支持带有类型或者其它帮助Clients理解的标签消息,CoAP内置内容协商和发现支持,允许设备彼此窥测以找到交换数据的方式。

参考文章:http://wiki.1zlab.deepsenserobot.com/wiki/micropython-esp32/mqtt/,https://www.cnblogs.com/myitnews/p/13790067.html
https://zhuanlan.zhihu.com/p/510549726
https://club.gizwits.com/thread-7555-1-1.html文章来源地址https://www.toymoban.com/news/detail-615688.html

到了这里,关于物联网的通信协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通信工程毕设 单片机自动写字机器人设计与实现 - 物联网 嵌入式 stm32

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月15日
    浏览(70)
  • 通信工程毕设 Stm32 WIFI智能家居温湿度和烟雾检测系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月02日
    浏览(63)
  • 嵌入式项目分享 stm32智能运动计步系统 - 物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(76)
  • 嵌入式项目分享 stm32机器视觉的口罩佩戴检测系统 - 单片机 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(152)
  • 嵌入式毕设分享 基于单片机的风速测量系统 - 物联网 嵌入式 stm32 arduino

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(69)
  • 嵌入式毕设分享 基于单片机的智能音响设计与实现 -物联网 嵌入式 stm32

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月22日
    浏览(60)
  • 物联网选题分享 - 单片机森林火灾监控防护预警系统 - 物联网 嵌入式

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(64)
  • 物联网项目分享 stm32实现车牌识别系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月21日
    浏览(76)
  • 嵌入式项目分享 单片机家用燃气的可视化实时监控报警仪 - 物联网 嵌入式 stm32

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月22日
    浏览(60)
  • 【单片机毕设选题】stm32实现车牌识别系统 -物联网 嵌入式 单片机

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包