精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

    文章

    607

    瀏覽量

    27329
  • 物聯網
    +關注

    關注

    2903

    文章

    44262

    瀏覽量

    371219
  • 網絡協議
    +關注

    關注

    3

    文章

    265

    瀏覽量

    21515

原文標題:RT-Thread發布SAL套接字抽象層,帶來全新物聯網軟件開發模式

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    聯網學習路線來啦!

    ,通過這個網絡可以實現設備之間的數據交流和互動。 聯網的核心是數據,通過采集和分析數據,可以實現對設備和環境的監控和控制。 聯網典型的4層架構的了解。 2基礎階段知識學習 2.1
    發表于 11-11 16:03

    【星閃派聯網開發套件體驗連載】智能交通燈

    感謝電子發燒友,感謝潤和軟件,提供星閃派聯網開發套件試用。 本次試用計劃: 用星閃派聯網
    發表于 10-05 13:00

    ECU電控軟件開發及測試介紹

    本文重點介紹符合AutoSar架構的應用軟件開發、MBD開發模式下的軟件質量評估與優化方案、復雜場景下的ECU性能壓力測試方案。
    的頭像 發表于 09-26 14:25 ?3224次閱讀
    ECU電控<b class='flag-5'>軟件開發</b>及測試介紹

    聯網主機E6000:智慧園區建設不可或缺的智能伙伴

    智慧園區是指應用數字化技術,以全面感知和泛在聯接為基礎的人機物事深度融合體,具備主動服務、智能進化等能力特征的有機生命體和可持續發展空間。 龍興聯5G聯網主機E6000 智慧園區與
    的頭像 發表于 07-16 17:36 ?355次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網主</b>機E6000:智慧園區建設不可或缺的智能伙伴

    【《軟件開發珠璣》閱讀體驗】+ 心得

    【《軟件開發珠璣》閱讀體驗】+ 心得 感謝電子發燒友論壇提供的讀書機會。讀這本書使我在編程方面多了位資深老師。 在軟件項目開發領域的時,我閱讀了《軟件開發珠璣》這本書。它以獨特的視角和
    發表于 06-23 17:56

    聯網主機 E6000 在智慧工地上的應用

    隨著科技的不斷發展,智慧工地的概念逐漸普及。聯網技術的應用為工地管理帶來了革命性的變化,聯網主機E6000作為一款領先的
    的頭像 發表于 06-20 16:03 ?258次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網主</b>機 E6000 在智慧工地上的應用

    上位機軟件開發用什么語言

    上位機軟件開發是指開發用于與下位機(如PLC、單片機等)進行通信、控制和數據處理的計算機軟件。上位機軟件在工業自動化、
    的頭像 發表于 06-06 10:44 ?1454次閱讀

    廣告電商+超級云APP結合 # 軟件開發# 模式開發# 小程序開發# App開發

    軟件開發APP
    jf_01576396
    發布于 :2024年04月09日 17:42:13

    聯網主機:為智能交通賦能

    聯網(IoT)技術的發展為智能交通領域帶來了許多創新的解決方案。而在聯網應用中,聯網主機起
    的頭像 發表于 02-23 16:44 ?483次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網主</b>機:為智能交通賦能

    智慧樓宇的心臟:E6000聯網主

    智慧樓宇是指通過全面覆蓋的感知設備和互聯網技術,為建筑提供高效、舒適、安全、環保、可持續的智能化服務。 在科技快速發展的今天,智慧樓宇已經不再是遙不可及的夢想。而在這個夢想成真的過程中,聯網主
    的頭像 發表于 02-23 16:36 ?365次閱讀
    智慧樓宇的心臟:E6000<b class='flag-5'>物</b><b class='flag-5'>聯網主</b>機

    keil arm軟件開發指南

    電子發燒友網站提供《keil arm軟件開發指南.pdf》資料免費下載
    發表于 01-26 15:51 ?7次下載

    嵌入式軟件開發軟件開發的區別

    嵌入式軟件開發軟件開發是兩個不同的概念,它們在一些關鍵方面有著明顯的區別。嵌入式軟件開發是指開發嵌入在硬件設備中的軟件,而
    的頭像 發表于 01-22 15:27 ?2167次閱讀

    區塊鏈系統軟件開發與應用

    區塊鏈技術是近年來備受矚目的創新技術,被廣泛應用于金融、供應鏈管理、聯網等領域。區塊鏈系統軟件開發是實現區塊鏈應用的關鍵,它不僅需要掌握區塊鏈的基本原理,還需要具備良好的軟件開發能力
    的頭像 發表于 01-10 18:18 ?2424次閱讀

    聯網主機E6000引領工業自動化的新篇章

    重要力量。E6000是一款多協議、多接口的聯網主機,能夠適應各種不同的應用場景,滿足各種復雜的需求。 聯網主機E6000 Arm linux操作系統——穩定高效的
    的頭像 發表于 01-05 16:48 ?316次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網主</b>機E6000引領工業自動化的新篇章

    最新發布GSDK軟件開發工具包4.4.0版本,提高IoT無線設計效率

    SiliconLabs (亦稱 “ 芯科科技 ” )日前發布了 Gecko 軟件開發工具包( GSDK )的最新版本 4.4.0 。新釋出的 GSDK 是全球聯網開發人員最關注
    的頭像 發表于 12-18 16:40 ?571次閱讀
    最新發布GSDK<b class='flag-5'>軟件開發</b>工具包4.4.0版本,提高IoT無線設計效率