当前标签 / 通信 / 总共4篇

Android中使用MQTT协议通信

MQTT介绍

物联网 (IoT) 设备必须连接互联网。通过连接到互联网,设备就能相互协作,以及与后端服务协同工作。互联网的基础网络协议是 TCP/IP。MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。

IoT通信

MQTT 最初由 IBM 于上世纪 90 年代晚期发明和开发。它最初的用途是将石油管道上的传感器与卫星相链接。顾名思义,它是一种支持在各方之间异步通信的消息协议。异步消息协议在空间和时间上将消息发送者与接收者分离,因此可以在不可靠的网络环境中进行扩展。虽然叫做消息队列遥测传输,但它与消息队列毫无关系,而是使用了一个发布和订阅的模型。

在使用物联网的过程中经常会遇到需要客户端(设备)被动接收服务器的消息的过程,这个过程使用HTTP协议要付出很大代价的,而 AMOP(高级消息队列协议) 使用异步消息总线来解决此类问题,除了AMOP 外 XMPP (可扩展通讯和表示协议)也是一种即时消息协议,但与MQTT相比XMPP在设备和网络上需要的资源要多得多。

由于物联网的环境是非常特别的,所以MQTT遵循以下设计原则:

  1. 精简,不添加可有可无的功能。
  2. 发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递。
  3. 允许用户动态创建主题,零运维成本。
  4. 把传输量降到最低以提高传输效率。
  5. 把低带宽、高延迟、不稳定的网络等因素考虑在内。
  6. 支持连续的会话控制。
  7. 理解客户端计算能力可能很低。
  8. 提供服务质量管理。
  9. 假设数据不可知,不强求传输数据的类型与格式,保持灵活性。

MQTT协议应用场景

阅读更多

PC和Android模拟器之间虚拟串口通信

前言

很多时候我们在做串口通信的时候需要去模拟串口来调试,这样可以极大的方便我们的工作,不然的话可能需要连接硬件设备,比较麻烦。一般情况下我们先在电脑上模拟串口后初步调试,最后阶段在硬件设备上实际调试。

工具介绍

Virtual Serial Port Driver

Virtual Serial Port Driver

该软件提供虚拟串行端口的仿真,并通过虚拟零调制解调器电缆对可用的串行端口进行配对。与此软件配对的两个应用程序可以交换数据。每个端口上的每个数据都显示在计算机的设备管理器中以便查看,同时COM端口模拟其预期设置和运行进程。用户可以创建虚拟端口,而不必担心串行端口不足和物理硬件拥挤。该软件的下一个优势是能够与ActiveX、DDL和核心级实用程序等技术集成。

官网地址:https://www.virtual-serial-port.org/

阅读更多

Modbus的ASCII和RTU通信

Modbus介绍

Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。Modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

Modbus 是一个请求/应答协议。也叫做 SlaveMasterServerClient

同一种设备在不同领域的不同叫法,Slave和Server意思相同,Master和Client意思相同。

  • Slave:工业自动化用语;响应请求;
  • Master:工业自动化用语;发送请求;
  • Server:IT用语;响应请求;
  • Client:IT用语;发送请求;

协议分类

ModBus协议是应用层报文传输协议(OSI模型第7层),它定义了一个与通信层无关的协议数据单元(PDU),即PDU=功能码+数据域。     

Modbus通信栈

阅读更多

Android中的串口通信

串口通讯

在计算机之间、计算机内部各部分之间,通信可以以串行和并行的方式进行。一个并行连接通过多个通道(例如导线、印制电路布线和光纤)在同一时间内传播多个数据流;而串行在同一时间内只连接传输一个数据流

虽然串行连接单个时钟周期能够传输的数据比并行数据更少,前者传输能力看起来比后者要弱一些,实际的情况却常常是,串行通信可以比并行通信更容易提高通信时钟频率,从而提高数据的传输速率。

串口通讯和并行通讯的区别

可以从上图看到,并行通讯可以一次传输8字节的数据,而串口一次只传输一个字节。但是通常串行通信都凭借其更低廉的部署成本成为更佳的选择,尤其是在远距离传输中。许多集成电路都具有串行通信接口来减少引脚数量,从而节约成本。

串口通讯的接口标准有很多,最常见的为RS-232、RS-485和USB等,下面我们看一下RS-232的接口标准。

串口通讯示意图

阅读更多