当前位置: 首页 > news >正文

蘑菇街网站服务邳州市建设局网站

蘑菇街网站服务,邳州市建设局网站,我想找阿里巴巴做网站推广,河南开元建设有限公司网站物联网的通信协议 目录 物联网的通信协议一、UART串口通信1.1 串口通信1.2 异步收发1.3 波特率1.4 串口通信协议的数据帧1.5 优缺点1.5.1 优点1.5.2 缺点 二、I^2^C2.1 I^2^C2.2 I^2^C2.3 数据有效性2.4 起始条件S和停止条件P2.5 数据格式2.6 协议数据单元PDU2.7 优缺点2.7.1 优…物联网的通信协议 目录 物联网的通信协议一、UART串口通信1.1 串口通信1.2 异步收发1.3 波特率1.4 串口通信协议的数据帧1.5 优缺点1.5.1 优点1.5.2 缺点 二、I^2^C2.1 I^2^C2.2 I^2^C2.3 数据有效性2.4 起始条件S和停止条件P2.5 数据格式2.6 协议数据单元PDU2.7 优缺点2.7.1 优点2.7.2 缺点 三、SPI3.1 SPI3.2 通信原理3.3 数据有效性3.4 优缺点3.4.1 优点3.4.2 缺点 四、Socket通信4.1 Socket4.2 TCP和UDP4.2.1 流格式套接字SOCK_STREAM4.2.2 数据报格式套接字SOCK_DGRAM 4.3 Socket通信过程4.4 优缺点4.4.1 优点4.4.2 缺点 五、MQTT5.1 消息队列遥测传输MQTT5.2 MQTT的发布和订阅模型5.3 通信协议流程5.3 优缺点5.3.1 优点5.3.2 缺点 通信的目的是为了传递信息 参考文章http://wiki.1zlab.deepsenserobot.com/wiki/micropython-esp32/mqtt/https://www.cnblogs.com/myitnews/p/13790067.html 一、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²CInter-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位的时间。 2SDA上首先传输字节的最高位从上图中我们可以看出位数编号的发送顺序从左至右 是 Bit7-Bit0 数据接收方收到传输的一个字节数据后需要给出响应此时处在第九个时钟发送端释放SDA线控制权 将SDA电平拉高由接收方控制。接收方表示成功的接收到了8位一个字节的数据便将SDA拉低为低电平即ACK信号,表示应答 2.6 协议数据单元PDU 2.7 优缺点 2.7.1 优点 1I2C总线可以连接多个设备使用唯一的地址进行寻址 2适用于中等速率的通信需求 3硬件资源占用少 2.7.2 缺点 1I2C通信受距离限制适用于近距离通信 2需要配置设备的I2C地址 3实时性较差 三、SPI 3.1 SPI SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 种同步串行接口技术是一种高速的全双工同步的通信总线。SPI协议主要用于短距离的通信系统中特别是嵌入式系统很多芯片的外围设备比如LED显示驱动器、IO接口芯片、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 descriptorSocket 是一种“打开—读/写—关闭”模式的实现服务器和客户端各自维护一个“文件”在建立连接打开后可以向文件写入内容供对方读取或者读取对方内容通讯结束时关闭文件。 另外我们经常说到的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适用于网络通信可以在不同设备间进行通信 2TCP套接字提供可靠的数据传输确保数据准确性和顺序性 3支持多种编程语言 4.4.2 缺点 1编程较为复杂需要处理连接、断开等情况 2涉及IP地址和端口的配置需要正确配置才能建立通信连接 3需要在网络环境中使用不适合直接连接在物理硬件上 五、MQTT 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)仅与PCServer保持一个长连接, 有什么数据就告诉Server, 如果有其他单片机或者PC跟这个单片机通信 也只能通过这个Server来获取 同时也要注意这个数据获取的过程是被动的 单片机没有主动轮询 整个过程是异步的 数据传过来自动调用回调函数 所以Server就成了这个单片机与这个周边设备通信的唯一的渠道这个机制使得整个过程更加轻量级与高效 。 5.3 通信协议流程 通信所用的数据帧 Data Frame主要由主题编号 Topic ID 还有信息 Message 两部分组成。 发布者与订阅者之间是没办法直接感知到对方的存在的 订阅者与发布者之间通过数据帧 Data Frame 里面的主题编号Topic ID 来获取自己想要的数据。 举一个远程控制LED灯亮灭的例子 1ESP32与PC连入同一个局域网下 获取PC 的IP地址 2PC开启 MQTT Broker 开启Server模式 3ESP32传入PC的IP地址还有端口号创建一个MQTT_Client 4ESP32的MQTT_Client与PC上的MQTT_Server创建一个长连接 5ESP32的MQTT_Client 订阅Topic LED_CONTROL 6PC上创建一个CLIENT Client里面传入本地IP与MQTT Broker服务的端口号 与PC上面的Server建立一个长连接 7PC上的Client 发送数据帧 Topic ID 指令 Topic ID为LED Control 8数据发送给Server Server发现ESP32开发板订阅了LED_CONTROL 这个主题 然后就通过ESP32与Server创建的连接发送该数据帧。 9ESP32接收到这个数据帧发现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通信有一定的开销可能会影响实时性需求较高的应用
http://www.yutouwan.com/news/437601/

相关文章:

  • 如何给网站增加图标图书馆网站建设费用
  • 页面设计站在学员的角度哪个网站做系统好
  • 贺州网站建设公司ppt的制作方法
  • 玉溪网站建设设计wordpress多站点多域名插件
  • iis 网站建设中wordpress login
  • 永久免费建站程序梧州网站制作
  • 秦皇岛网站制作服务wordpress优秀插件
  • vs2015 做网站哪个网站diy做宝宝衣服
  • 使用dw如何给网站做电影农家乐网站建设多少钱
  • 广东建设教育协会网站网站空间管理站
  • 做什么网站开发好英迈寰球网站建设
  • 郑州网站优化技巧现货交易平台合法吗
  • 网站后台如何做文件下载连接wordpress 页面下载文件
  • 网站开发长沙建一个网站需要什么
  • 网站设计 知识产权自建个人网站
  • 柳州企业网站开发平台深圳福田天气
  • node.js做网站好累嘉禾手机网站建设
  • 网站建设推荐公司中国互联网协会是做什么的
  • 北京网站建设app开发旅游后台网站
  • 卖东西的网站怎么做如何把静态图片做成动态视频
  • 乱起封神是那个网站开发的?做seo排名
  • 揭阳网站建设宁波品牌网站推广优化公司
  • 昆明哪家网站做得好杭州19楼官网
  • 网站快照怎么更新深圳网站建设全包
  • 滨州建设工程备案网站怎么接网站来做
  • 无锡建设信息中心网站网站开发属于软件开发
  • 建站网站数据搜索网站开发的未来展望
  • 山东网站建设报价西安免费公司网站设计
  • 网站建设公司哪家好要选磐石网络建设网站公司联系方式
  • org的域名网站专业优化网站排名