一、MQTT简介

一、MQTT 简介与起源

MQTT(Message Queuing Telemetry Transport),即消息队列遥测传输协议,由 IBM 在 1999 年开发。最初,MQTT 是用于将石油管道上的传感器与卫星相链接,旨在为受限设备和低带宽、高延迟或不可靠的网络而设计。其起源可以追溯到 IBM 的 MQ 系列产品,虽然名字中有“Message Queue”,但实际上 MQTT 并不使用传统的消息队列,而是采用了发布和订阅的消息传递模式。

随着物联网的快速发展,MQTT 逐渐成为热门的通信协议。它广泛应用于车联网、智能家居、物流、即时聊天应用和移动消息推送等领域。据统计,目前 MQTT 已经连接了数以亿计的设备,并且这个数字还在不断增长。在物联网场景中,设备通常具有计算能力有限、网络带宽低、信号不稳定等特点,而 MQTT 的轻量级、低带宽消耗、异步通信和可靠性等特性,使其非常适合这些设备之间的通信。

MQTT 的设计目标是在资源受限的环境中提供稳定、可靠的通信基础。它采用二进制协议格式和紧凑的消息头,使得协议交换最小化,降低了网络流量。例如,MQTT 的固定头部长度仅为 2 字节,非常适合嵌入式设备的运算能力和带宽都相对薄弱的场景。同时,MQTT 支持三种不同的消息发布服务质量,可以根据应用需求选择合适的级别,确保消息的可靠传递。

总之,MQTT 从诞生之初就专为受限设备和低质量网络而设计,随着物联网的发展,它的重要性日益凸显,成为了物联网通信的关键协议之一。

二、MQTT 的基本概念与工作原理

(一)基本概念

MQTT 全称 Message Queuing Telemetry Transport,是一种基于发布/订阅模式的轻量级通信协议。在 MQTT 体系中,主要有三个核心概念:发布者(Publisher)、订阅者(Subscriber)和代理服务器(Broker)。

发布者负责将消息发布到特定的主题上。订阅者则订阅自己感兴趣的主题,一旦有消息发布到该主题,代理服务器就会将消息分发给订阅者。这种通信模型是异步的,发布者和订阅者之间不需要直接建立连接,而是通过代理服务器进行消息的传递。

MQTT 的协议头非常简单,固定头部长度仅为 2 字节,这使得它在资源受限的设备上也能高效运行。同时,MQTT 支持不同的服务质量(QoS)级别,包括最多一次、至少一次和只有一次。例如,在对实时性要求高但不太关注消息可靠性的场景,可以选择 QoS 0;而在一些对消息准确性要求较高的场景,如金融交易系统等,则可以选择 QoS 2。

(二)工作原理

MQTT 的工作原理主要包括消息发布过程和订阅过程。消息发布者将消息发布到代理服务器时,会指定消息的主题和内容。代理服务器接收到消息后,会根据主题将消息存储起来。

订阅者向代理服务器发送订阅请求,指定自己感兴趣的主题。代理服务器会将订阅者加入到相应主题的订阅列表中。当有新的消息发布到某个主题时,代理服务器会根据订阅列表,将消息分发给订阅了该主题的所有订阅者。

在网络传输方面,MQTT 构建在 TCP/IP 协议之上,为消息的可靠传输提供了底层连接。在消息发布和订阅过程中,还会关联相应的服务质量级别和主题名称,以确保消息能够按照预期的方式进行传递。例如,当选择 QoS 1 级别时,如果发布者没有收到代理服务器的确认消息,它会再次发送消息,直到收到确认为止,确保消息至少到达一次。

三、MQTT 的优势特点

(一)轻量级高效

MQTT 的消息格式极为简洁,这使得它在网络带宽的消耗方面非常低。例如,其最小报文仅为 2 个字节,相比其他通信协议,能够大大减少网络传输的负担。同时,采用发布/订阅模式,发布者只需将消息发送到代理,无需关心具体的接收者,极大地降低了客户端之间的直接通信和复杂性。这种模式在资源受限的设备上表现尤为突出,如嵌入式设备、传感器等,能够在有限的资源条件下高效运行,减少设备的资源占用,提高设备的运行效率。

(二)可扩展性强

MQTT 支持大量客户端同时连接和通信,这使其在物联网等需要连接大量设备的场景中具有很大的优势。据统计,一些 MQTT 服务器可以处理数百万个并发连接。它支持多种类型的网络连接方式,包括 TCP/IP、WebSocket 等,这使得 MQTT 可以在不同的网络环境下灵活部署。例如,在智能家居系统中,各种智能设备可以通过不同的网络连接方式接入 MQTT 代理服务器,实现设备之间的互联互通。同时,可扩展性还体现在消息的缓存和智能路由方面,可以通过集群代理实现大规模的连接,使用负载均衡器将负载分配到更多的单个服务器上,提高系统的整体性能和可靠性。

(三)可靠性高

MQTT 提供了三种消息传输质量级别(QoS),分别是 QoS 0(最多一次)、QoS 1(至少一次)和 QoS 2(仅一次)。这些级别允许开发者根据不同的应用场景需求选择合适的消息传输质量,确保消息的可靠传输。例如,在工业自动化控制场景中,对消息的可靠性要求较高,可以选择 QoS 2 级别,确保每条消息只被接收一次,避免重复或丢失。此外,MQTT 还支持持久会话,即使客户端与服务器之间的连接断开,之前订阅的主题和 QoS 设置也会被保存,以便在连接恢复时重新订阅,保证了消息的连续性和可靠性。

(四)易于实现使用

MQTT 协议的设计简洁明了,易于理解和实现。社区中提供了大量的客户端库和服务器实现,包括开源和商业产品,使得开发者可以轻松地集成 MQTT 到他们的项目中。例如,使用 Python 的 paho-mqtt 库,可以快速实现 MQTT 客户端的开发。同时,MQTT 支持异步通信,发布者可以发送消息而无需等待订阅者的响应,这使得系统更加灵活和高效,减少了延迟,提高了应用程序的响应性。

(五)安全性好

MQTT 协议支持通过 TLS/SSL 加密来保护客户端与服务器之间的通信,确保数据的安全传输。例如,在金融交易系统中,数据的安全性至关重要,通过启用 TLS/SSL 加密,可以防止数据被窃取或篡改。此外,MQTT 还支持用户名和密码认证、客户端证书等多种认证方式,以保护系统免受未授权访问的威胁。通过这些安全措施,MQTT 可以在不同的应用场景中提供可靠的安全保障,确保数据的机密性、完整性和可用性。

四、MQTT 的应用场景

(一)物联网领域

MQTT 在物联网领域发挥着重要作用,连接各类物联网设备,实现实时监测和控制。

1. 智能家居

在智能家居系统中,MQTT 用于连接智能设备与中心控制系统。例如,智能灯泡、安防摄像头、温度传感器等设备作为客户端连接到中央消息服务器(MQTT Broker)。用户通过订阅特定主题来控制或监测这些设备,实现对家居环境的远程监控和管理。居室环境智能调节方面,通过安装温度、湿度、光照强度传感器等与智能窗帘、灯具以及暖气系统等执行器,MQTT 协议以其高效和稳定性确保了无缝的家居控制体验。设备状态同步也通过 MQTT 的轻量级发布/订阅通信模式实现,确保即使在带宽较低的网络环境中,智能家居设备之间也能实时交换状态信息,提供实时响应和家居自动化。

2. 工业物联网

在工业环境中,MQTT 协议连接传感器、执行器、机器和其他工业设备,实现实时监控、远程控制和数据分析。生产线数据透明化与优化板块利用 MQTT 传输生产过程数据,通过实时监控设备状态,预测维护周期,优化资源分配来提高生产效率。设备间的即时通讯在机器故障预警、生产调度等方面扮演着重要角色,保证了快速、可靠的信息交流。

3. 车联网

车联网中,MQTT 用于车辆之间的通信以及车辆与云端系统的通信。车辆状态实时监测是 MQTT 发挥威力的领域,通过接入不同传感器的数据传输,车辆能对自身状态进行实时反馈,包括油量、轮胎压力、发动机性能等。在紧急事件快速响应中,MQTT 能够迅速将车辆碰撞、故障等信息传送到云平台或紧急服务中心,亦用于车载娱乐系统与外界进行数据交换。车联网体系中的车辆、手机 APP 端、路侧等设备端连接到车载设备 T-Box,通过 MQTT 接入,实现对千万量级的以上终端的并发接入能力。

(二)移动应用

MQTT 在移动应用中有广泛的应用场景。

1. 推送通知

移动应用频繁利用推送通知来告知用户关于新消息、更新或其它重要事件。利用 MQTT 的持久会话和 QoS 等级,开发者能够确保通知以最合适的方式传达给终端用户。即使移动设备处于离线状态,服务端也可以存储推送消息,当设备上线时,可以立即接收到这些消息。

2. 即时消息

消息应用程序(如聊天软件)需要快速、可靠的消息传输机制。MQTT 的低延迟特性使得它非常适合这类应用。移动设备可实时接收和发送信息,而且节省带宽优势显著。通过有效减少消息头的大小及采用紧凑的编码方式,即使在网络状况不良或数据流量限制的环境中,移动应用也能高效通信。

3. 位置跟踪

位置服务类应用经常使用 MQTT 来上报设备的实时位置,并接收相关位置的推送信息。基于 MQTT 的位置跟踪,因其实时性强且省电,适合长期后台运行。MQTT 的长时间连接机制与定时心跳包结合,有效平衡了保持连接与省电之间的矛盾。

4. 物联网设备控制

在移动设备控制家居物联网设备的应用中,MQTT 被广泛应用。其订阅/发布模式对多设备状态同步尤为友好,提供了高效、易用的远程控制方案。即使在移动应用和物联网设备网络质量不一致的情况下,MQTT 能确保控制指令准确无误地传达,并同步设备状态,避免误操作。

5. 实时数据同步

针对数据频繁更新的服务类应用,如股票交易、体育比赛直播等,MQTT 提供了优秀的实时数据同步解决方案。借助其高效的消息分发机制,实现了极低延迟的数据更新。与轮询方式相比,MQTT 机制大大降低了数据传输的延迟,为用户提供了更加及时的信息更新。

五、MQTT 的实现与使用

(一)开源实现与商业解决方案

MQTT 有许多优秀的开源实现,比如 Eclipse Mosquitto,它是一个轻量级的 MQTT 服务器,使用 C 语言实现,支持 MQTT v3.1/v3.1.1/v5.0 版本协议,可以在 Linux、macOS、Windows 等操作系统上运行。此外,还有 EMQ X Broker,它是一个高度可伸缩的分布式 MQTT 服务器,具有高性能和稳定性,支持许多其他 IoT 协议比如 CoAP、LwM2M 等。不过,EMQ X 在一些情况下是收费软件。RabbitMQ 也是一个常见的消息队列服务器,部分支持 MQTT 协议。

在商业解决方案方面,HiveMQ MQTT Client 是 HiveMQ 开发的一个开源 MQTT 客户端库,专门用于 Java 语言,提供了简单易用的 API,并且支持多种 MQTT 协议的版本。虽然 HiveMQ 有一些商业支持,但也提供了社区版供开发者使用。

多种系统语言都可以向 MQTT 发送消息,例如 Java 可以使用 Eclipse Paho 和 HiveMQ MQTT Client 等框架,Python 可以使用 paho-mqtt 库。这些工具为不同语言的开发者提供了便捷的方式来实现与 MQTT 服务器的交互。

(二)常用开发语言和框架

MQTT 在多种开发语言中都有广泛的应用和相应的框架。

在 Java 语言中,常用的框架有 Eclipse Paho 和 HiveMQ MQTT Client。Eclipse Paho 提供多种语言的实现,包括 Java。安装时,在 Maven 的 pom.xml 文件中添加依赖

<dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.client.mqttv3</artifactId><version>1.2.5</version>
</dependency>

即可使用。它提供了一组用于创建 MQTT 客户端的 API,可以方便地连接到 MQTT 服务器、订阅主题和发布消息。

HiveMQ MQTT Client 则是专门为 Java 语言开发的,通过在 Maven 项目的依赖中添加

<dependency><groupId>com.hivemq</groupId><artifactId>hivemq-mqtt-client</artifactId><version>1.2.1</version>
</dependency>

来使用。它提供了简单易用的 API,支持多种 MQTT 协议的版本。

对于 PHP 语言,虽然目前没有特别知名的专门针对 MQTT 的框架,但可以通过一些扩展或自定义的方式来实现与 MQTT 服务器的交互。

在 C++语言中,可以使用一些开源的 MQTT 库来进行开发。

总之,不同的开发语言都有相应的工具和框架来支持 MQTT 的开发,开发者可以根据自己的项目需求和熟悉的语言来选择合适的框架。

(三)安全性和认证机制

MQTT 的安全性至关重要,主要通过加密和认证方式来确保数据的安全传输。

一方面,使用 TLS/SSL 加密传输层是基础且关键的安全措施。在 MQTT 通讯协议栈中,通过在客户端与服务器之间建立 TLS/SSL 加密通道来确保数据传输过程中的隐私与安全,有效防止中间人攻击,确保消息的机密性与完整性。例如,可以替换默认端口,采用经证书机构签署的证书,以及加强客户端和服务器的身份验证过程。

另一方面,采用强密码策略及访问控制列表(ACL)也非常重要。这涉及密码复杂度、更换频率以及特定用户对话题的访问权限。ACL 还能限制客户端对系统资源的使用,通过只允许特定客户端发布或订阅特定的话题,来降低非授权访问的机会。

此外,MQTT 还支持消息载荷加密。虽然 TLS/SSL 确保了传输通道的加密,但对于特别敏感的数据,可以使用 AES 或 RSA 等算法对消息载荷进一步加密。对于需要更高安全性的场景,应采用端到端加密,即使在 TLS 受到威胁的情况下,消息的内容也不会轻易被泄露。

同时,为了提高安全性,可以引入双因素认证机制。这要求用户在使用常规凭证之外,还需提供额外的验证因素,如一次性密码(OTP)或生物识别信息,从而增加非授权用户成功入侵系统的难度。

定期检查和更新安全配置也是必不可少的。通过定期进行安全审计,有助于识别潜在的安全风险并实施相应的缓解措施。随着威胁情报的不断演变,需要更新 MQTT 服务器和客户端配置,来应对新出现的威胁。

在 MQTT 的连接过程中,还可以使用用户名和密码认证。有些 MQTT 服务端需要客户端在连接时提供用户名和密码,只有客户端正确提供了用户名和密码后,才能连接服务端。否则服务端将会拒绝客户端连接,客户端也就无法发布和订阅消息。例如,在 ESP8266 连接 MQTT 服务端时,可以在程序中调用 connect 函数时,提供 MQTT 服务端连接的用户名和密码信息。这些信息可以在程序中预先定义,如const char * mqttUserName = “test-user”;const char * mqttPassword = “ranye-iot”;。

六、MQTT 的未来发展趋势

(一)MQTT over QUIC

MQTT over QUIC 展现出巨大的潜力,有望成为下一代 MQTT 协议标准。QUIC 作为一种运行于 UDP 之上的传输协议,具有多路复用的特性,能够有效减少连接开销与消息延迟。根据相关数据统计,目前互联网至少 40%的流量是基于 QUIC 的,前 1000 万个网站中的 25%已经支持 HTTP/3 协议,这充分说明了 QUIC 的广泛应用前景。

与传统的 MQTT over TLS/SSL 相比,MQTT over QUIC 在初次建立连接时仅需 1 RTT,并可以利用 0 RTT 连接恢复的特性来加速重连,极大地降低了延迟,提高了数据传输速率。在诸如移动网络下的车联网以及要求极低时延的工业物联网场景下,MQTT over QUIC 能够发挥重要作用,有效提升用户体验。例如,在车联网用户面对的山区、矿场、隧道等信号死角或被动切换基站的场景中,QUIC 低连接开销和多路径支持的特性能够有效解决连接中断和恢复困难的问题。

目前,开源 MQTT 消息服务器 EMQX 在其最新的 5.0 版本中引入了 MQTT over QUIC 支持,并且正以 OASIS MQTT 技术委员会成员身份积极推进 MQTT over QUIC 的标准化落地。可以预见,在不久的将来,MQTT 也将和 HTTP/3 一样使用 QUIC 作为其主要传输层。

(二)MQTT Serverless

MQTT Serverless 模式为开发者带来了诸多优势。在这种模式下,开发者无需管理基础设施,能够更加专注于应用的业务逻辑,从而提高了敏捷性、可扩展性和成本效益。

传统的物联网应用在云上或企业私有环境中部署 MQTT 消息服务往往需要数分钟甚至数小时,而 Serverless MQTT 只需点击几下就能快速完成部署。例如,2023 年 3 月,EMQX Cloud 推出了全球首个 Serverless MQTT 服务,为用户提供了 5 秒极速部署和更灵活的计费方式。这种按量计费的定价模式,对于因业务变动带来的设备连接变化、流量不稳定等场景非常友好,能够帮助用户大幅节约开支。

Serverless MQTT 有望推动 MQTT 更广泛的应用,激发不同行业的创新协作。我们甚至可能看到每个物联网和工业物联网开发者都能拥有一个免费的 Serverless MQTT 消息服务器。

(三)MQTT 多租户架构

MQTT 多租户架构在物联网应用中具有重要意义。不同用户或租户的物联网设备可以连接到同一个大规模的 MQTT 集群,同时保持其数据和业务逻辑与其他租户隔离。

在实现方式上,通常有租户隔离和数据库隔离两种方式。在 MQTT Broker 的多租户架构中,每个设备和租户都有一个单独的、隔离的命名空间,包括独特的主题前缀和访问控制列表(ACL),确保用户只能发布或订阅自己有权访问的主题。

多租户 MQTT 消息服务器能够减少管理开销,灵活支持复杂场景或大规模物联网应用场景。例如,一个大型组织中的部门和应用可以作为不同的租户使用同一个 MQTT 集群,提高资源利用率和管理效率。

(四)MQTT Sparkplug 3.0

MQTT Sparkplug 3.0 定义了工业设备的统一数据接入规范,具有诸多关键的新功能和改进。

它增加了对 MQTT 5.0 的支持,包括共享订阅、消息过期和流量控制等新功能。优化的数据传输使用更紧凑的数据编码和压缩算法,提高了数据传输效率。扩展的数据模型允许更详细的设备信息通信,还支持配置数据和设备元数据等其他信息的传输。

在安全性方面,包括对安全性的若干改进,如支持双向 TLS 认证、优化的访问控制机制等,为工业设备的数据通信提供了更可靠的安全保障。简化的设备管理功能,如自动设备注册和发现,简化设备配置,以及改进诊断等,使得工业设备的连接和通信更加便捷高效。

随着新版本的发布,MQTT Sparkplug 3.0 将会在工业物联网领域得到更广泛的应用,为工业数据采集、处理和分析提供更强大的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1552072.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

FastAPI 第九课 -- 表单数据

目录 一. 前言 二. 声明表单数据模型 三. 在路由中接收表单数据 四. 表单数据的验证和文档生成 五. 处理文件上传 一. 前言 在 FastAPI 中&#xff0c;接收表单数据是一种常见的操作&#xff0c;通常用于处理用户通过 HTML 表单提交的数据。 FastAPI 提供了 Form 类型&a…

C++发邮件:如何轻松实现邮件自动化发送?

C发邮件的详细步骤与教程指南&#xff1f;如何在C中发邮件&#xff1f; 无论是定期发送报告、通知客户还是管理内部沟通&#xff0c;自动化邮件系统都能显著提升工作效率。AokSend将详细介绍如何使用C发邮件&#xff0c;实现邮件自动化发送&#xff0c;帮助您轻松管理邮件通信…

车视界系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;汽车品牌管理&#xff0c;汽车颜色管理&#xff0c;用户管理&#xff0c;汽车信息管理&#xff0c;汽车订单管理系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;汽车信息&#xff0c;我…

4.1、FineReport单元格扩展和父子格

单元格扩展 1、配置数据集 2、纵向扩展 方法一&#xff1a; 方法二&#xff1a; 结果 多个字段纵向 2、横向扩展 方法一&#xff1a; 方法二&#xff1a; 结果 父子格 没什么特殊要求&#xff0c;就保持默认 1、右边的值默认以左边为左父格 2、下边的值默认以上边…

【Windows】如何取消显示Windows聚焦在桌面上生成的“了解此图片”图标

如下图所示&#xff0c;在更换Windows聚焦显示的时候&#xff0c;会在桌面多出一个“了解此图片”的图标&#xff0c;看着很烦&#xff0c;但又因为Windows聚焦自带的壁纸比其他主题的壁纸好看很多。 下面是消除办法&#xff1a; 打开注册表&#xff08;按WindowsR&#xff0…

【COSMO-SkyMed系列的4颗卫星主要用途】

COSMO-SkyMed系列的4颗卫星主要用于提供一个多用途的对地观测平台&#xff0c;服务于民间、公共机构、军事和商业领域。以下是这4颗卫星的主要用途&#xff1a; 民防与环境风险管理&#xff1a; 卫星的高分辨率雷达图像可用于监测自然灾害&#xff0c;如地震、洪水、滑坡等&am…

51单片机学习第六课---B站UP主江协科技

DS18B20 1、基本知识讲解 2、DS18B20读取温度值 main.c #include<regx52.h> #include"delay.h" #include"LCD1602.h" #include"key.h" #include"DS18B20.h"float T; void main () {LCD_Init();LCD_ShowString(1,1,"temp…

汽车革命下半场AI先锋:广汽为新“智”汽车装配大模型“底盘”

汽车革命的上半场是电动化&#xff0c;下半场是智能化&#xff0c;这是全球汽车产业普遍认同的观点。当前&#xff0c;我国汽车产业已经在电动化上半场取得了显著成效&#xff0c;在下半场智能化的全球战场能否胜出&#xff0c;关键看车企的创新意愿和研发实力。 在2024年9月1…

【Orange Pi 5嵌入式应用编程】-用户空间GPIO控制

用户空间GPIO控制 文章目录 用户空间GPIO控制1、嵌入式Linux的GPIO子系统介绍1.1 sysfs文件访问GPIO1.2 通过字符设备访问GPIO1.3 库与工具2、RK3588的GPIO介绍3、用户空间操作GPIO编程3.1 硬件准备3.2 通过libgpio操作GPIO3.2.1 GPIO输出3.2.3 GPIO输入3.2.3 边沿事件检测(中断…

《Windows PE》3.2.3 NT头-扩展头

■扩展头&#xff08;可选标头仅限映像文件&#xff09; OptionalHeader字段描述了可执行文件的更多细节和布局信息&#xff0c;如图像基址、入口点、数据目录、节表等。它的具体结构取决于文件的机器架构&#xff0c;可以是IMAGE_OPTIONAL_HEADER32&#xff08;32位&#xff…

【论文笔记】Flamingo: a Visual Language Model for Few-Shot Learning

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: Flamingo: a Visual Langu…

html空单元格的占位

先上代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title></head><body> <H1>我的WEB页面</H1><table border"2px" bgcolor"#7fffd4&…

【Ubuntu】安装常用软件包-mysql

我的几个服务是部署在docker的同一个网络里&#xff0c;这样相互访问就可以通过docker容器的名字访问&#xff0c;比如容器A访问容器B&#xff0c;就可以http://B:8080/xxx 这样访问&#xff0c;不用关心ip是多少。 所以mysql前面文章给安装到主机里&#xff0c;感觉有点坑自己…

JavaScript 网页设计案例 简单的电商案例 页面切换 数据搜索 动态网页

JavaScript 网页设计案例 简单的电商案例 页面切换 数据搜索 动态网页 1. 案例描述 以下是一个简单的产品展示网页&#xff0c;用户可以通过点击不同的产品类别按钮来查看相应的产品&#xff0c;且在鼠标悬停时显示产品详情。页面还将包含一个搜索框&#xff0c;用户可以输入…

深蕾半导体Astra™ SL1620详细介绍,嵌入式物联网处理器

一&#xff0c;SL1620是什么 Astra™ SL系列是深蕾半导体推出的高度集成的嵌入式物联网处理器SoC&#xff08;System on Chip&#xff09;系列产品&#xff0c;专为多模式消费者、企业和工业物联网工作负载而设计。SL1620是Astra™ SL系列中的一款成本和功耗优化的安全嵌入式So…

解决 Failed to connect to 127.0.0.1 port XXXX: Connection refused问题

查看自己的代理&#xff0c;如果有设置&#xff0c;取消即可。注意https还是http&#xff0c;或者都取消算了 git config --global http.proxy git config --global --unset http.proxygit config --global https.proxy git config --global --unset https.proxy注意如果有人在…

进程的管道

进程之间的通信有两种&#xff0c;无名管道通信和有名管道通信&#xff0c; 为什么有通信呢&#xff0c;可以理解为你有一个同事&#xff0c;你两干一件事从不同的方向&#xff0c;哪一件事你干&#xff0c;哪一件事他干&#xff0c;你俩得知道吧&#xff0c;差不多是这个意思…

AMD硬件分析工具简介

Introduction to profiling tools for AMD hardware — ROCm Blogs **注意:** 本文博客内容此前为[ AMD实验室笔记]博客系列的一部分。 让代码功能正确只是基础&#xff0c;在许多行业中&#xff0c;还要求应用程序及其复杂的软件栈尽可能高效地运行以满足操作需求。这尤为具有…

Linux gadget 模拟触控屏 支持多点触控

通过gadget命令行生成hid设备 下面xxx自己根据需要修改&#xff0c;例如VID,PID&#xff0c;产品名称 const char *INSTALL_GADGET_CMDS[] {"modprobe libcomposite","mkdir /sys/kernel/config/usb_gadget/g1","echo xxx > /sys/kernel/config/…

华为 海思22AP10(SS524)H.265 编解码处理器用户指南

1.1 概述 22AP10 是针对多路高清 / 超高清&#xff08; 1080p/4M/5M/4K &#xff09; DVR 产品应用开发的新一代专 业 SoC 芯片。 22AP10 集成了 ARM Cortex-A7 四核处理器和性能强大的 图像分析工具 推理引擎&#xff0c;支持多种智能算法应用。同时&#xff0c; 2…