0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

物联网主流的软件开发模式是怎么样的?

RTThread物联网操作系统 来源:未知 作者:工程师郭婷 2018-07-22 11:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

物联网设备,因为要连接网络和应用的多样化,导致软件的开发难度和复杂度大幅地增加,开发方式也会与之前的嵌入式设备大不一样。当前主流的软件开发模式是怎么样的呢?我们以一个典型的MCU+WiFi/NB-IoT SoC架构的IoT设备开发为例(图示一),开发人员需要针对特定的无线SoC/模块,开发MCU TCP/IP协议层以上的应用,包括MQTT、HTTP、Web Socket、业务类应用等等。一旦用户更换了无线芯片或模块,因为网络协议、编程接口等的不统一,上层应用都需要做大幅的改动甚至要重头来过。

(图示一:当前的软件开发模式)

而如果采用了RT-Thread操作系统的SAL抽象层(图示二),开发者则无须考虑系统采用的是哪种无线方式、哪种无线芯片、甚至哪种模块,哪种接口,只需调用上层的API接口,即可实现一次开发,跨平台使用。不仅如此,RT-Thread支持的各种IoT软件包,都可以很方便的“即装即用”。

(图示二:具备SAL的软件开发模式)

以上可见,RT-Thread此次发布的SAL可谓对IoT产业意义重大,真正实现了系统(MCU+无线芯片/模块)层面的跨平台软件开发及兼容,暨ACS(Application Cross System),后期的应用扩展也会变得易如反掌。

SAL介绍

SAL,即Socketabstraction layer的缩写,意为套接字抽象层,处于网络硬件层与应用层之间。 其前身是RT-Thread 的 DFS_NET 组件,由于其对lwIP 有一定的依赖,存在局限性,RT-Thread对其进行了近乎重构的再造。SAL 的孕育而出,使得 RT-Thread 可以无缝接入各式各样的网络芯片或模块(例如: W5500/CH395 这类自带协议栈的以太网芯片,带 AT指令的 WiFi 模块、GPRS 模块、NB-IoT模块等等),极大地提升了RT-Thread 在 IoT 领域对于不同网络硬件的兼容性。其主要特性如下(图示三):

抽象、统一多种网络协议栈接口

提供标准 BSDSocket API

统一 fd(file descriptor)管理方式

(图示三:网络框架图)

下面将站在与 SAL 相关联的模块角度,说明SAL 的功能与实现:

应用层 :应用层在做网络开发时,可以直接使用 SAL 提供的 BSD Socket API 接口。接口层的统一抽象,使得我们的开发者也可以快速应用 RT-Thread 提供的众多支持 BSDSocket 接口的 IoT 软件包。让我们的用户 在网络编程方面极大的提升了软件的可重用性。

SAL 实现层:该层位于 SAL 的底部,针对不同的模块、芯片或协议栈,完成与 SAL 框架的对接实现。接入完成后,应用层几乎不需要关心真正的网络接入方式,降低了应用层与底层的耦合

DFS 文件系统层:SAL 与 DFS 紧密结合, Socket 描述符与fd文件描述符可以完全对应起来,实现了fd的统一管理。使得应用层可以通过read/write 、 poll/select 接口操作 Socket 套接字,更加兼容 POSIX 标准。

应用场景:

对接 AT 指令的网络模块

在使用这些 AT 模块做网络开发时,不可避免地会在我们的应用代码中耦合很多与模块相关的 AT 通信代码。这样也会导致,以前使用标准的 BSD Socket 开发过的组件没法被重用过来。

有了SAL,只需要我们针对AT 模块的指令方式,实现 SAL的对接接口(RT-Thread已经提供了常用模块的实现,例如,乐鑫的 ESP8266,移远的 M26),上层应用即可愉快地进行Socket编程了。

这里稍微提一下,RT-Thread 的 AT 组件已具有上述功能,很快将会发布,敬请期待……

对接内置协议栈的网络芯片

随着像 W5500/CH395 这类网络芯片的越来越普及,我们的 MCU 也就不需要跑网络协议栈了,极大地降低了MCU的资源占用情况。可是跟AT模块也有同样的问题,怎么样才能保证应用层依然很简单地使用标准Socket进行编程?这个问题就交给SAL去解决吧。SAL 造好了适配这些芯片的轮子,会方便我们所有使用 RT-Thread + W5500/CH395 的开发者。

非lwIP的 TCP/IP 协议栈

在一些特殊领域,可能lwIP并不能够满足我们的用户要求。更换 TCP/IP 协议栈就不可避免。正是因为有了 SAL 框 架,新的协议栈,只需要与其对接完毕,上层应用即可放心使用,以前的代码照样也可以被拿来重用。

SocketCAN

Socket CAN 做为Linux上CAN编程的一种方式,它简易易用,编程顺手。很多用户也想在 RT-Thread 上实现 Socket CAN 编程,这个时候就需要 SAL 上场了。只需要我们在底层使用 RT-Thread CAN 设备实现 SAL框架对应的接口即可。

从 DFS_NET 到 SAL 迁移指南

原先的 DFS_NET 配置位于:RT-Thread Components → Device virtual file system

现有的 SAL 配置位于: RT-ThreadComponents → Network → Socketabstraction layer

迁移相关步骤如下:

确定之前项目中是否开启 RT_USING_DFS_NET 选项,若开启需要进行迁移。

RT_USING_DFS_NET 选项在SAL 组件添加之后被废弃,由 SAL_USING_POSIX 选项代替,若需要迁移,在 ENV 工具中开启上述 SAL 配置选项。

保存配置并退出ENV 工具,重新生成工程,完成迁移。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件开发
    +关注

    关注

    0

    文章

    712

    浏览量

    30152
  • 物联网
    +关注

    关注

    2950

    文章

    48132

    浏览量

    418530
  • 网络协议
    +关注

    关注

    3

    文章

    276

    浏览量

    22845

原文标题:RT-Thread发布SAL套接字抽象层,带来全新物联网软件开发模式

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    网络分析仪程控软件开发工具平台介绍

    测试效率、保障数据一致性的关键环节。本文将梳理当前主流的网分程控软件开发工具,分析其适用场景与优劣,为测试工程师提供选型参考。 是德网络分析仪 一、主流网分程控软件开发工具解析 在网分
    的头像 发表于 03-06 18:05 972次阅读
    网络分析仪程控<b class='flag-5'>软件开发</b>工具平台介绍

    嵌入式软件开发工具市场新动向:订阅制趋势下的中国开发者选择

    面对软件业从永久授权模式广泛转向订阅制的行业趋势,作为行业两大主流嵌入式软件开发工具,即Keil MDK与IAR Embedded Workbench也推出了不同的市场策略,正在为中国
    的头像 发表于 01-30 17:20 916次阅读
    嵌入式<b class='flag-5'>软件开发</b>工具市场新动向:订阅制趋势下的中国<b class='flag-5'>开发</b>者选择

    芯科科技推出Simplicity Ecosystem软件开发套件

    Silicon Labs(芯科科技)今日在深圳盛大举办享誉业界的Works With开发者大会,同时宣布推出Simplicity Ecosystem软件开发套件,它不仅是下一代模块化的软件开发
    的头像 发表于 10-27 16:45 1575次阅读

    学习联网怎么入门?

    的关键步骤。学习联网需要进行实践操作,通过实践操作掌握联网的相关技术和应用。可以通过购买联网
    发表于 10-14 10:34

    学习联网可以做什么工作?

    健康、智能制造等领域。以下是一些常见的职业方向: 联网工程师:从事物联网系统的设计、开发、测试、维护和升级等工作,包括传感器、无线通信、云计算、大数据等技术的应用。   嵌入式
    发表于 10-11 16:40

    十大北京软件开发公司推荐:有哪些优点和缺点

    十大北京软件开发公司推荐:有哪些优点和缺点
    的头像 发表于 10-04 09:44 4114次阅读
    十大北京<b class='flag-5'>软件开发</b>公司推荐:有哪些优点和缺点

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司

    2025北京软件开发公司推荐汇总:盘点10家优秀软件定制开发公司
    的头像 发表于 09-30 09:16 2947次阅读
    2025北京<b class='flag-5'>软件开发</b>公司推荐汇总:盘点10家优秀<b class='flag-5'>软件</b>定制<b class='flag-5'>开发</b>公司

    知识分享 | 敏捷方法在基于模型的软件开发项目中的应用

    传统的瀑布式软件开发流程存在诸多局限,这使得应用敏捷原则变得尤为重要,尤其是面对复杂且不断变化的开发环境时。作为最高效的软件开发方法之一,基于模型的开发(MBD)具有诸多优势。将敏捷原
    的头像 发表于 07-16 16:52 1439次阅读
    知识分享 | 敏捷方法在基于模型的<b class='flag-5'>软件开发</b>项目中的应用

    主流机器视觉软件开发平台介绍及对比?

    机器视觉作为工业自动化的核心技术,其软件开发平台的选择直接影响项目的开发效率、成本及最终性能。本文将对比当前主流的视觉开发平台,包括LabVIEW、VisionPro、Halcon
    的头像 发表于 07-14 09:44 2946次阅读
    <b class='flag-5'>主流</b>机器视觉<b class='flag-5'>软件开发</b>平台介绍及对比?

    基于瑞萨64位MPU RZ/G2L进行32位应用软件开发

    本文主要介绍基于瑞萨64位MPU RZ/G2L进行32位应用软件开发的介绍,用于解决客户32位软件移植相关问题,供客户参考。
    的头像 发表于 06-26 15:48 2197次阅读
    基于瑞萨64位MPU RZ/G2L进行32位应用<b class='flag-5'>软件开发</b>

    基于米尔全志T536开发板的多协议联网关的方案测试

    处理器的特点,这里进一步的进行软件开发,充分利用开发板的硬件资源,完成业务产品的需求。这里以联网多协议网关应用为研究为目的,首先建立基础的从各个硬件设读取硬件端口
    的头像 发表于 06-19 08:03 2270次阅读
    基于米尔全志T536<b class='flag-5'>开发</b>板的多协议<b class='flag-5'>物</b><b class='flag-5'>联网</b>关的方案测试

    联网的应用范围有哪些?

    的应用范围极其广泛,众多行业都在积极引入这项技术,以提升效率、创新业务模式。 物流行业:在仓储环节,借助联网技术,可实现对货物的实时监测,了解货物的位置、状态等信息,优化仓储空间布局。运输过程中,通过
    发表于 06-16 16:01

    西安软件开发公司排行#农业联网

    软件
    北京华盛恒辉科技
    发布于 :2025年06月09日 10:05:23

    联网工程师为什么要学Linux?

    联网工程师需要掌握Linux的主要原因可以从技术生态、开发需求、行业应用及就业竞争力四个角度来分析: 一、技术生态与行业适配性 1)嵌入式开发
    发表于 05-26 10:32

    找电机控制软件开发兼职

    软件开发兼职人员,我现在有一个永磁无刷电机控制,220V,需要有相关经验的人来开发,兼职费用可以议谈,产品是增压泵相关产品,有兴趣给我留言,谢谢
    发表于 05-07 17:43