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

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

3天内不再提示

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

工程师兵营 ? 来源:互联网 ? 作者:佚名 ? 2018-07-20 12:38 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

物联网设备,因为要连接网络和应用的多样化,导致软件的开发难度和复杂度大幅地增加,开发方式也会与之前的嵌入式设备大不一样。当前主流的软件开发模式是怎么样的呢?我们以一个典型的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,即Socket abstraction layer的缩写,意为套接字抽象层,处于网络硬件层与应用层之间。 其前身是 RT-Thread 的 DFS_NET 组件,由于其对 lwIP 有一定的依赖,存在局限性,RT-Thread对其进行了近乎重构的再造。SAL 的孕育而出,使得 RT-Thread 可以无缝接入各式各样的网络芯片或模块(例如: W5500/CH395 这类自带协议栈的以太网芯片,带 AT指令的 WiFi 模块、GPRS 模块、NB-IoT 模块等等),极大地提升了RT-Thread 在 IoT 领域对于不同网络硬件的兼容性。其主要特性如下(图示三):

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

l 提供标准 BSD Socket API

l 统一 fd(file descriptor)管理方式

(图示三:网络框架图)

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

应用层 :应用层在做网络开发时,可以直接使用 SAL 提供的 BSD Socket API 接口。接口层的统一抽象,使 得我们的开发者也可以快速应用 RT-Thread 提供的众多支持 BSD Socket 接口的 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 框 架,新的协议栈,只需要与其对接完毕,上层应用即可放心使用,以前的代码照样也可以被拿来重用。

Socket CAN

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

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

    关注

    2932

    文章

    46360

    浏览量

    394415
  • Linux
    +关注

    关注

    87

    文章

    11522

    浏览量

    214393
  • RT-Thread
    +关注

    关注

    32

    文章

    1427

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    人形机器人敏捷开发新路径:RT-Thread软件底座破解复杂系统难题 | 新闻速递

    5月29日,2025机器人开发者大会在上海张江科学城拉开帷幕,RT-Thread睿赛德受邀参会,与宇树、智元、傅利叶等企业共话机器人行业解决方案。在人形机器人本体专题论坛上,RT-Thread睿赛德
    的头像 发表于 06-04 14:03 ?688次阅读
    人形机器人敏捷<b class='flag-5'>开发</b>新路径:<b class='flag-5'>RT-Thread</b>以<b class='flag-5'>软件</b>底座破解复杂系统难题 | 新闻速递

    2025 RT-Thread全球技术大会议程正式发布

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技术大会)是聚焦基础软件技术创新与实践的嵌入式技术盛会,持续推动技术价值转化
    的头像 发表于 05-27 19:28 ?730次阅读
    2025 <b class='flag-5'>RT-Thread</b>全球技术大会议程正式<b class='flag-5'>发布</b>!

    RT-Thread审核团招募: 深度参与开源RTOS社区治理与演进

    全球开发者招募:RT-Thread审核团(ReviewTeam)正式开放申请!在开源的世界里,代码审查(CodeReview)是保证软件质量、促进技术交流的关键环节。RT-Thread
    的头像 发表于 05-21 18:02 ?722次阅读
    <b class='flag-5'>RT-Thread</b>审核团招募: 深度参与开源RTOS社区治理与演进

    软件定义汽车: RT-Thread程翧整车OS亮相上海车展 | 媒体视角

    4月25日,在第二十一届上海国际汽车工业展览会技术论坛上,RT-Thread睿赛德创始人兼CEO熊谱翔重磅发布了“程翧整车基础软件操作系统”。这一成果引发了广泛关注,多家媒体对此跟进报道,聚焦睿赛德
    的头像 发表于 05-07 18:40 ?634次阅读
    <b class='flag-5'>软件</b>定义汽车: <b class='flag-5'>RT-Thread</b>程翧整车OS亮相上海车展 | 媒体视角

    恩智浦携手RT-Thread全力赋能智能工业与联网新时代

    本地活跃的嵌入式开源社区积极合作,全力赋能。在日前举办的RT-Thread开发者大会(简称RDC)上,恩智浦MCU系统与应用工程师牛晓东先生受邀发表了题为《NXP微控制器结合RT-Thread OS,赋能智能工业与
    的头像 发表于 01-10 11:55 ?1104次阅读
    恩智浦携手<b class='flag-5'>RT-Thread</b>全力赋能智能工业与<b class='flag-5'>物</b><b class='flag-5'>联网</b>新时代

    RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!

    2024年RT-Thread开发者大会将于12月21日正式拉开帷幕!本次大会以“开源共生商业共赢”为主题,RT-Thread将携手合作伙伴、客户伙伴、行业专家,以及全球开发者,共同探索
    的头像 发表于 12-11 18:41 ?2171次阅读
    <b class='flag-5'>RT</b>-Smart首次线下培训,锁定2024 <b class='flag-5'>RT-Thread</b><b class='flag-5'>开发</b>者大会!

    RT-Thread应用开发寒假师资培训——西安站

    随着联网和智能系统的快速发展,嵌入式成为当前最热门最有发展前途的IT应用领域之一。为进一步提升全国大学生在嵌入式芯片及系统设计领域的创新能力,特别是针对联网应用
    的头像 发表于 12-11 01:06 ?739次阅读
    <b class='flag-5'>RT-Thread</b>应用<b class='flag-5'>开发</b>寒假师资培训——西安站

    RT-Thread操作系统应用开发寒假师资培训

    随着联网和智能系统的快速发展,嵌入式成为当前最热门最有发展前途的IT应用领域之一。为进一步提升全国大学生在嵌入式芯片及系统设计领域的创新能力,特别是针对联网应用
    的头像 发表于 12-06 01:06 ?601次阅读
    <b class='flag-5'>RT-Thread</b>操作系统应用<b class='flag-5'>开发</b>寒假师资培训

    RT-Thread上CAN实践

    开箱测试RT-Thread官方已完成了对英飞凌XMC7200EVK的移植,通过shell可以看到做好了uart3的console。本文将介绍如何进行RT-ThreadCan移植。接下来我们要完成CAN_FD的驱动移植,并正常启动RT-T
    的头像 发表于 11-13 01:03 ?2222次阅读
    <b class='flag-5'>RT-Thread</b>上CAN实践

    开源共生 商业共赢 | RT-Thread 2024开发者大会报名启动!

    亲爱的RT-Thread开发者我们很高兴地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread开发
    的头像 发表于 10-29 08:06 ?1004次阅读
    开源共生 商业共赢 | <b class='flag-5'>RT-Thread</b> 2024<b class='flag-5'>开发</b>者大会报名启动!

    RT-Thread 操作系统联网应用开发师资培训会议通知

    随着联网和智能系统的快速发展,嵌入式成为当前最热门最有发展前途的IT应用领域之一。为进一步提升全国大学生在嵌入式芯片及系统设计领域的创新能力,特别是针对联网应用
    的头像 发表于 10-19 08:10 ?565次阅读
    <b class='flag-5'>RT-Thread</b> 操作系统<b class='flag-5'>物</b><b class='flag-5'>联网</b>应用<b class='flag-5'>开发</b>师资培训会议通知

    新书发布——《RT-Thread嵌入式实时操作系统内核、驱动和应用开发技术》

    我们非常高兴地宣布,由郑苗秀、沈鸿飞和廖建尚编著的《RT-Thread嵌入式实时操作系统内核、驱动和应用开发技术》一书正式发布。本书的编写团队由多位在嵌入式和实时操作系统领域有着丰富经验的专家组
    的头像 发表于 09-03 08:06 ?1429次阅读
    新书<b class='flag-5'>发布</b>——《<b class='flag-5'>RT-Thread</b>嵌入式实时操作系统内核、驱动和应用<b class='flag-5'>开发</b>技术》

    【大连】9月7日RT-Thread巡回线下培训-OpenMV机器视觉

    亲爱的RT-Thread社区成员们:2024年RT-Thread全球开发者线下培训拉开帷幕啦!24年全球巡回培训将覆盖超10座城市及国家,为开发者提供一个深入学习
    的头像 发表于 09-01 08:02 ?4006次阅读
    【大连】9月7日<b class='flag-5'>RT-Thread</b>巡回线下培训-OpenMV机器视觉

    【QEMU系列】不用开发板运行RT-Thread指南-ARM架构

    简介在联网和嵌入式系统的开发中,RT-Thread操作系统凭借其小巧、高效和灵活的特点,受到了越来越多开发者的青睐。然而,对于很多刚刚接触
    的头像 发表于 08-09 08:35 ?1667次阅读
    【QEMU系列】不用<b class='flag-5'>开发</b>板运行<b class='flag-5'>RT-Thread</b>指南-ARM架构

    2024 RT-Thread全球巡回 线下培训火热来袭!

    亲爱的RT-Thread社区成员们:我们非常高兴地宣布,2024年RT-Thread全球开发者线下培训即将拉开帷幕!24年全球巡回培训将覆盖超10座城市及国家,为开发者提供一个深入学习
    的头像 发表于 08-07 08:35 ?3008次阅读
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 线下培训火热来袭!