RT-Thread提供的网络世界入口 -net组件

news2024/11/27 2:25:40

作为一款在RTOS领域对网络支持很丰富的RT-Thread,对设备联网功能的支持的工具就是net组件。
位于/rt-thread/components/net路劲下,作为一款基础组件,env与Studio的工程配置项界面的配置项都依赖该目录下的Kconfig。
我们对网络功能的选择,或者其配置都属于该Kconfig的管理范畴。

在这里插入图片描述
从图片中的信息可以了解到,AT,Lwip,netdev,sal这些我们相对熟悉的功能也位于该目录中。
这四个基础组件,可以驱动的网络设备的种类多到各个方面。
从有线网络的各种 ETH 的方式,带 PHY 的 enc28j60,纯接口的 RJ45,还有自带网络协议栈的 W5500都可以直接经过配置,通过我们的 net 组件实现设备联网的需求;除了有线网络的接入方式,无线网络的接入方式则更多,2G模块,3G模块,4G模块,Cat-1模块,Cat-4模块,NB-IOT模块,乃至 5G 模块这些依赖基站运营商的入网方式,例如 SIM800,EC20,AIR720,L610,N58,M5311 等,这些不同厂家,不同工作频率的模组均可以通过 NET 组件入网;WIFI 这种无需运营商直接提供的网络的入网方式,例如 ESP8266,W60x,rw007 等。

通过上面的简单介绍,大家可以基本了解Net组件的作用,即为使用RT-Thread的设备提供上网能力。
上面的联网设备,品类繁多,方式各异,但其实追踪到依赖的基础net能力其实也没有多复杂。实际上大部分的功能依赖的基础能力,只有两组而已,即AT,Lwip;而用户,也就是开发者层面,大部分就只用到SAL这一个概念。
在这里插入图片描述
通过SAL接口大家可以实现MQTT,NTP,TFTP,TCP Client,TCP Server,webclient,UDP Client,UDP Server,webnet 等这些大家经常会使用的工具。像浏览器一样访问网站,webclient;模拟一个网站,webnet;连接各种云平台,Mqtt;获取准确授时,NTP;通过网络传输文件,TFTP;诸如此类功能,SAL提供了轻松访问网络的一把钥匙。可以理解这把钥匙是向上的。

总概

对于一个给定的模组,它的联网方式有时并不是单一的;以常见的Cat-4(4G)模块为例,一方面它可以使用AT命令这种经典的方式来实现网络连接;另一方面又可以通过PPP拨号,使用lwip的方式实现网络连接。

或者在以 W60x 为例,一方面可以使用 AT 的方式来实现联网功能;另一方面又可以使用裸 IP 包的方式来实现网络连接。

在选取上网模块时,应当考虑片上资源的情况,以及网络质量的问题,选择比较适合的联网方式。

AT

在这里插入图片描述
AT命令一开始并没有那么丰富,一开始用作拨号的功能,也就是电话业务方面的内容。
后来随着时间发展,AT命令的范围也一步步进行了扩展,而逐渐支持了网络的一些功能,例如TCP,UDP的功能;而到现在,有些模块甚至直接使用AT命令扩展的方式,实现了诸如MQTT,HTTP,HTTPS之类的功能。

这些使用扩展AT命令方式实现的上层应用堆模块依赖度高。在RT-Thread的IOT Package的栏目中,可以留意到这样的软件包,例如:bc28_mqtt。

RT-Thread 的AT socket功能,则是更接近底层,实现TCP UDP这样的接口,通过SAL来实现MQTT这种上层应用。

AT组件设计目的就是使设备能发送和解析AT命令。

  • 对于AT Client来说,是由MCU向Modem发送AT命令,由Modem响应命令,并给出回复。这种方式是我们常用的,通过支持AT的模组上网的常用方式。
  • 对于AT Server来说,是由MCU作为类似Modem的功能,由其它MCU向这个MCU发送AT命令,由这个MCU响应AT命令并做出回复。

Lwip

大家基本都是看过这个TCP/IP模型的,在嵌入式的网络协议栈入口中,Lwip就是很重要的一个入口;Lwip是开源的一个协议栈,得到验证和肯定的嵌入式TCP/IP网络协议栈,Lwip的全称a lightweight TCP/IP stack,一个轻量级的TCP/IP协议栈。

所以可以知道:lwip 并不是嵌入式上唯一的 TCP/IP 协议栈,但 lwip 是经过验证的,能胜任工作的 TCP/IP 协议栈。在 RT-Thread 中,提供了三个 lwip 的版本供用户使用: lwip1.4.1,lwip2.0.2,lwip2.1.2 ;通常大家在使用有线连接的方式使用网络时,一部分是使用的 lwip 协议栈,而另一部分则是使用了 w5500 这种方式来实现。

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

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

相关文章

STM32 GPIO

STM32 GPIO GPIO简介 GPIO(General Purpose Input Output)通用输入输出口,也就是我们俗称的IO口 根据使用场景,可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 数据0就是低电平&#xff0c…

【开源三方库】Easyui:基于OpenAtom OpenHarmony ArkUI深度定制的组件框架

万冬阳 公司:中国科学院软件所 小组:知识体系工作组 简介 Easyui是一套基于ArkTS语言开发的轻量、可靠的移动端组件库,它是对OpenAtom OpenHarmony(以下简称“OpenHarmony”) ArkUI进行深度定制的组件框架。Easyui可扩…

等保测评怎么做?有哪些流程?

现在很多信息系统想要上线都需要做等保测评,如果不能通过等保测评,不仅系统不允许上线,同时一旦出现了网络安全事件,相关企业还需要承担重要的责任。目前如果是为政府、事业单位、国企等开发系统,等保测评报告也是重要…

怎么在web显示模型的动态应力图?

要在网页上显示模型的动态应力图,需要执行几个步骤。动态应力图通常涉及有限元分析 (FEA) 模拟中的应力和应变数据的可视化,可以使用 Python、JavaScript 等工具以及 Three.js、Plotly 或 D3.js 等库来渲染图一个网页。以下是该过程的概述: …

互联网是如何运作的?以前端角度出发(b站objtube的卢克儿听课笔记)

1、你是如何用你的计算机设备发送数据和接受数据的呢? 例如我们是如何访问到哔哩哔哩的数据的 当你的设备开始连接到互联网时,会被分配一个IP地址。 而哔哩哔哩的服务器也接入到互联网,它也将被分配一个IP地址。 我们常说你访问某个网站&a…

数据库|Binlog故障处理之drainer周期性罢工

目录 一、背景 二、故障现象 三、分析过程 四、解决方案 五、思考 六、总结 一、背景 最近,用户反馈我们的生产环境TiDB集群的drainer频繁发生故障。故障表现为服务崩溃无法启动,或者数据在运行过程中丢失,给我们的业务带来了很大的困扰…

uniapp刻度尺的实现(swiper)滑动打分器

实现图&#xff08;百分制&#xff09;&#xff1a;滑动swiper进行打分&#xff0c;分数加减 <view class"scoring"><view class"toggle"><view class"score"><text>{{0}}</text><view class"scoreId&quo…

GitHub金矿:一套智能制造MES的源代码,可以直接拿来搞钱的好项目

目前国内智能制造如火如荼&#xff0c;工厂信息化是大趋势。如果找到一个工厂&#xff0c;搞定一个老板&#xff0c;搞软件的小虾米就能吃几年。 中国制造业发达&#xff0c;工厂林立&#xff0c;但是普遍效率不高&#xff0c;需要信息化提高效率。但是矛盾的地方在于&#xf…

开源:特殊的垄断

免责声明&#xff1a;本博客旨在分享我对开源策略的理解和体会&#xff0c;不代表任何组织或机构的立场或观点&#xff0c;也不构成任何商业或投资的建议或担保。本博客的内容可能存在错误或遗漏&#xff0c;也可能随着时间的推移而变得过时或不适用。请在使用或依赖本博客的内…

4、FFmpeg命令行操作2

三、ffprobe命令 ffprobe命令- ffprobe用来查看多媒体文件的信息 常用命令如下所示: ffprobe -show_packets input.mp4 //获取文件信息并显示文件中每个帧的包信息(包含audio和video包),如下图所示: codec_type : 帧类型&#xff0c;如视频包、音频包等 stream_index : 多媒体的…

2023 ChinaJoy后,Flat Ads成为游戏、社交出海的新选择

今年ChinaJoy 展会&#xff0c;共吸引了来自世界各地的 500 多家企业参展&#xff0c;预计吸引超过33万人次参观。ChinaJoy年年有&#xff0c;那今年对于行业来说有什么新变化呢&#xff1f; 01 出海热潮不减&#xff0c;新增客户明显提升 据不完全统计&#xff0c;展会期间前…

雨云 宿迁 14900KF 高防云服务器性能测评

雨云游戏云上线了用I9 13900KF做CPU的VPS服务器&#xff0c;雨云游戏云VPS的14900KF和13900KF机型是纯大核的&#xff08;屏蔽小核&#xff09;保证你的VPS不会被分配到小核上而导致性能下降&#xff0c;水冷散热&#xff0c;超频至6.3Ghz&#xff0c;超高单核性能。 适合开我…

Django快速入门(一)

Django三板斧 1. 基本使用 三板斧: HttpResponse,render,redirect from django.shortcuts import HttpResponse,render,redirect# 一. 返回字符串类型的数据 return HttpResponse(字符串) # 二. 返回HTML文件 # 1. 动态HTML页面: return render(request,login.html) def ab…

Unity 3D 调整cube的颜色

1.选中Assets后&#xff0c;右键->Create->Material 2.调整Material的颜色&#xff0c;然后将Material拖到对应的cube上

家用工作站方案:ThinkBook 14 2023 版

本篇文章聊聊今年双十一&#xff0c;我新购置的家用工作站设备&#xff1a;ThinkBook 14 2023&#xff0c;一台五千元价位&#xff0c;没有显卡的笔记本。我为什么选择它&#xff0c;它又能做些什么。 写在前面 2021 年年中的时候&#xff0c;我写过一篇《廉价的家用工作站方…

【深入浅出Spring原理及实战】「夯实基础系列」360全方位渗透和探究Spring配置开发实战详解

360全方位渗透和探究Spring配置开发实战详解 Spring对于配置的转折点Xml配置 vs Java配置Xml配置模式的优点Xml配置模式的缺点Java配置模式的优点Java配置模式的缺点 Java编程配置流程配置代码案例 组件注入Bean注解配置自动扫描包路径和规则Filter常用的拦截类型FilterType.AS…

【广州华锐互动】VR安防网络综合布线仿真实训打造沉浸式的教学体验

随着科技的快速发展&#xff0c;综合布线技术在建筑、数据中心、网络基础设施等领域的应用越来越广泛。为了适应这一趋势&#xff0c;传统的教学方法已经无法满足现代教育的需求。因此&#xff0c;采用创新的教学手段&#xff0c;如虚拟现实&#xff08;VR&#xff09;技术&…

自动化测试框架 —— pytest框架入门篇

今天就给大家说一说pytest框架。 今天这篇文章呢&#xff0c;会从以下几个方面来介绍&#xff1a; 1、首先介绍一下pytest框架 2、带大家安装Pytest框架 3、使用pytest框架时需要注意的点 4、pytest的运行方式 5、pytest框架中常用的插件 01、pytest框架介绍 pytest 是 pytho…

办公工具使用技巧汇总

总结下在使用办公工具时的一些技巧 1.word中自动排序 例如在表格中插入序号&#xff0c;如下图。有时候数据量较大时&#xff0c;一个一个的手动输入&#xff0c;效率不高&#xff0c;需要一种快捷的方式进行序号填充。 初级版本&#xff1a; 选择需要填写序号的列-开始工具…

从系统层到应用层,vivo 已在安全生态层

你每隔多久就会使用一次手机&#xff1f;调研结果也许会让你大吃一惊。 权威报告数据显示&#xff0c;2022年&#xff0c;24.9%的受访者每日使用手机时长超过10小时&#xff0c;其中3.8%的受访者“机不离手”&#xff0c;每日使用时长超过15小时。而真正让手机化身为时间吞金兽…