当前标签 / 物联网 / 总共6篇

浅谈软件是如何控制硬件工作的

声明:以下知识仅限于本人对于软硬件的理解和整理并作为内部分享,因个人知识水平所限,可能存在一些遗漏和不足甚至错误的地方,如有发现可以留言指出。配合此视频看效果更佳哦~

概述

我们都知道软件是服务于硬件的,因为单纯的软件如果不跑到具体的硬件上面将是没有任何价值的。如果单纯的去谈软件是没有任何价值的,软件的开发往往依附于所运行的硬件环境。关于这个话题涉及的知识比较多,而且比较深奥,这个话题其实是《微机原理》这门课程所要解决的问题,这篇文章不打算以晦涩难懂比较深奥的知识揭开这个问题的本质,而是想基于作者(水寒)的知识积累和实践,通过一些简单的电路知识和计算机软硬件知识来了解软件和硬件是怎么交织在一起的。

数字电路

对于我们物联网而言,一般所讨论的硬件其实可以认为是数字电路相关的一套硬件电路。而数字电路和模拟电路有何区别呢?要搞清数字电路模拟电路,首先要搞清什么是数字信号什么是模拟信号。

模拟量转数字量采样过程 模拟量转数字量采样过程

如上图所示,模拟信号是在时间上取值都是连续的,自然界的信号可以说都是模拟信号。但是模拟信号利于观察但是不利于数据交互传递和表示,所以通常我们在计算机中需要将大部分的模拟信号转换为数字信号,方便实现数字电路和软硬件数据交互。

数字电路或数字集成电路是由许多**逻辑门**组成的复杂电路,与模拟电路相比,它主要进行数字信号的处理(即信号以0与1两个状态表示),因此**抗干扰能力较强**。

看到这里你也许还比较迷糊,似懂非懂的感觉,那就对啦!接下来我们以一个小实验来说明一下。

阅读更多

物联网开发中常见的几个标准协议

Let’s say you’re in the planning phase of an IoT project. You have a lot of decisions to make, and maybe you’re not sure where to start. In this article, we focus on a framework for how you can think about this problem of standards, protocols, and radios.

假设你正准备开始一个物联网项目,在开始项目之前你需要做很多选择,有可能你完全不知道从哪开始,这篇文章我们一起来看看如何选择标准的无线通信协议框架。

The framework, of course, depends on if your deployment is going to be internal, such as in a factory, or external, such as a consumer product. In this conversation, we’ll focus on products that are launching externally to a wider audience of customers, and for that, we have a lot to consider.

当然,这些无线通信协议框架是部署在你的设备内部进行通信的,物联网项目中还要考虑到一些外部的硬件,这些硬件都是在制作工厂完成的,所以本文讲重点关注一些使用比较广泛的通信产品。

阅读更多

Android中使用MQTT协议通信

MQTT介绍

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

IoT通信 IoT通信

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

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

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

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

MQTT协议应用场景 MQTT协议应用场景

阅读更多

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

前言

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

工具介绍

Virtual Serial Port Driver

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

同一种设备在不同领域的不同叫法,SlaveServer 意思相同,MasterClient 意思相同。

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

协议分类

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

Modbus通信栈 Modbus通信栈

阅读更多

Android中的串口通信

串口通讯

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

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

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

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

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

串口通讯示意图 串口通讯示意图

阅读更多