天天看點

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

​​​​

第1章   目前主流的小型嵌入式網絡協定棧

這幾年物聯網發展迅猛,各種新産品、新技術也是層出不窮,本章節就為大家介紹目前主流的小型嵌入式網絡協定棧。

1.1 目前主流的嵌入式網絡協定棧

1.2 uIP網絡協定棧介紹

1.3 LwIP網絡協定棧介紹

1.4 Contiki物聯網系統介紹

1.5 embOS/IP網絡協定棧介紹

1.6 uC/TCP-IP網絡協定棧介紹

1.7 Mbed OS物聯網系統介紹

1.8 FreeRTOS-TCP網絡協定棧介紹

1.9 Cyclone TCP網絡協定棧介紹

1.10 RL-TCPnet網絡協定棧介紹

1.11 ThreadX NetXDUO網絡協定棧介介紹

1.12 總結

1.1   目前主流的嵌入式網絡協定棧

目前主流的小型嵌入式網絡協定棧主要有:uIP,LwIP,embOS/IP,uC/TCP-IP,FreeRTOS-TCP,Cyclone TCP,RL-TCPnet和ThreadX NetXDUO。當然,還有其它的網絡協定棧,隻是不被我們所知,這裡把前面說到的其中幾款協定棧進行簡單的介紹。另外,物聯網系統Contiki和Mbed OS也進行了介紹。

1.2   uIP網絡協定棧介紹

uIP主要用于8位和16位微控制器的小型嵌入式網絡協定棧。最初,uIP 網絡協定棧由瑞典計算機科學院的Adam Dunkels 開發,其源代碼由C 語言編寫,并完全開源。

uIP協定棧最大的優勢就是短小精悍,Flash和RAM需求小,去掉了完整的 TCP/IP 中不常用的功能,簡化了通訊流程,但保留了網絡通信必須使用的協定,重點放在了 IP/TCP/ICMP/UDP/ARP 這些網絡層和傳輸層協定上,保證了其代碼的通用性和結構的穩定性。

目前最新版本是uIP1.0,已經好多年沒有再更新,後期更新已經全部整合到Contiki裡面了。GitHub下載下傳位址:​​https://github.com/adamdunkels/uip​​。

1.3   LwIP網協定棧介紹

LwIP也是瑞典計算機科學院的Adam Dunkels 開發的開源TCP/IP協定棧。

LwIP屬于小型嵌入式網絡協定棧,有無作業系統的支援都可以運作。LwIP實作的重點是在保持TCP協定主要功能的基礎上減少對RAM 的占用,它隻需十幾KB的RAM和40KB左右的ROM就可以運作,這使LwIP協定棧适合在低端的嵌入式系統中使用。LwIP協定棧主要關注的是怎樣減少記憶體的使用和代碼的大小,這樣就可以讓LwIP适用于資源有限的小型平台。

LwIP的特點如下:

  • 支援的協定

IP, ICMP, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, DHCP client, DNS client, AutoIP/APIPA (Zeroconf), SNMP agent。

  • API接口函數

提供專門的内部回調接口(Raw API),用于提高應用程式性能以及可選擇的BSD Socket API (在多線程情況下使用) 。

  • 擴充功能

通過多個網絡接口進行IP轉發,TCP擁塞控制,RTT估算和快速恢複/快速重傳機制。

  • 應用層的支援

HTTP server, SNTP client, SMTP client, ping, NetBIOS nameserver。

LwIP在開源的小型網絡協定中做的比較成功,應用案例也非常多,下面是官網和相關的介紹文檔。

LwIP的官網:​​http://savannah.nongnu.org/projects/lwip/​​ 。

LwIP的文檔:​​http://lwip.nongnu.org/2_0_x/index.html​​ 。

LwIP教程:​​http://www.armbbs.cn/forum.php?mod=viewthread&tid=95874​​ 。

1.4   Contiki物聯網系統介紹

Contiki的核心以及大部分的核心功能也是由瑞典計算機科學院的Adam Dunkels開發。

Contiki是一個小型的,開源的,易移植的多任務系統。可用于記憶體受限的網絡系統,支援在各種平台上運作。Contiki最強大的還是它的網絡功能,提供了強大的低功耗網際網路通信,Contiki支援完整标準的IPv6和IPv4以及近幾年新出的低功耗無線标準:6lowpan,RPL,CoAP。 如果使用Contik 的ContikiMAC和可休眠的路由器功能,即使是無線路由器也可以使用電池供電。

根據Contiki官方的說明,目前的定位就是:開源的物聯網系統,将低成本、低功耗的裝置連接配接到網絡,通過強勁的網絡功能來建構複雜的無線網絡。

更多Contiki相關的知識可以上其官網:​​http://www.contiki-os.org/​​ 進行了解。

  • 作者Adam Dunkels

由前面的介紹,我們了解到uIP,LwIP和Contiki的作者都是他,是以我們有必要了解下。作者

的相關資訊在wiki百科上面有一些介紹:​​https://en.wikipedia.org/wiki/Adam_Dunkels​​ 。

1.5   embOS/IP網絡協定棧介紹

embOS/IP是SEGGER出品的高性能小型網絡協定棧,已經針對速度、功能和占用空間進行優化,純C編寫,幾乎可以用于任何CPU上。它是作為embOS實時作業系統中間件存在的。

embOS/IP的功能特性如下:

  • 含有類似ANSI C 中socket.h的頭檔案,如果一個應用程式是用标準C Socket編寫的,那麼使用embOS/IP将極其友善移植。
  • 高性能。
  • 代碼容量小。
  • 簡單易用。
  • 無需配置。
  • 用于多任務環境的話,可以跟任何RTOS一起使用。
  • 支援超快性能的零資料複制。
  • 标準的Socket接口。
  • 支援原始Socket。
  • 所有函數都有非阻塞版本。
  • 連接配接數量僅受記憶體容量限制。
  • 資料包重組。
  • 驅動代碼支援大部分常見的裝置。
  • 運作時可配置。
  • 支援PPP/PPPOE。
  • 支援各種上層協定。
  • 支援大部分常用MCU自帶MAC和外置MAC。

具體支援協定和功能如下:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

更多embOS/IP相關的知識可以上其官網:​​https://www.segger.com/embos-ip.html​​​ 進行了解。另外embOS/IP是收費的,收費标準看這裡:​​https://www.segger.com/pricelist-embos-ip.html​​ 。

1.6   uC/TCP-IP網絡協定棧介紹

uC/TCP-IP是Micrium釋出的小型協定棧,這個協定棧不像uCOS那麼多人去使用,因為源碼是不開源的,是以相比uCOS來說,研究uC/TCP-IP的人非常少。

不過從2017年開始,Micrium推出了傻瓜式圖形開發平台Platform Builder,打算全面推廣uCOS及其所有中間件,以後應該會有不少人去用。

uC/TCP-IP支援的功能如下:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

更多uC/TCP-IP相關的知識可以上其官網:​​https://doc.micrium.com/display/TCPIPDOC34​​ 進行了解。另外,uCTCP/TCP-IP也是收費的。

1.7   Mbed OS物聯網系統介紹

Mbed OS是ARM官方這兩年新推出的,發展迅猛,是一種專為物聯網 (IoT) 中的裝置而設計的開源嵌入式作業系統。該作業系統非常适合涉及智能城市、智能家庭和穿戴式裝置等領域的應用程式。

Mbed作業系統在微控制器上屬于Mbed IoT裝置的用戶端部分,專為Mbed裝置連接配接器、Mbed裝置伺服器和 Mbed用戶端配合使用而設計。總的來說,這一平台提供了全面的 IoT 解決方案,從驅動、開發環境、軟體、開發工具到物聯網雲端的一條龍服務,以便能夠大規模建立和部署IoT 裝置。

Mbed支援以太網,WiFi,IPv6,6LoWPAN和Bluetooth Low Energy (BLE)。更多Mbed相關的知識可以上其官網:​​https://www.mbed.com/en/​​ 進行了解。

1.8   FreeRTOS-TCP網絡協定棧介紹

FreeRTOS-TCP網絡協定棧是FreeRTOS官方在2016年年初釋出的,也是開源免費的,有興趣可以研究下,官方位址:​​http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html​​

目前支援的功能如下:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

FreeRTOS-TCP的手冊在網站的左側清單上,比LwIP的文檔好很多。

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

1.9   Cyclone TCP網絡協定棧介紹

注:此貼進行了詳細介紹:​​http://www.armbbs.cn/forum.php?mod=viewthread&tid=98896​​ 。

Cyclone TCP是開源的,功能齊全,整體架構如下:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

支援的安全連接配接方式:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

各種加密應有盡有:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

一般我們可以使用開源免費版的GPLv2授權方式:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

1.10 RL-TCPnet網絡協定棧介紹

RL-TCPnet是KEIL釋出的,功能也比較全面,而且抗網絡攻擊通過 Achilles Level 1認證。詳細介紹可以看RL-TCPnet V7.X教程:​​http://www.armbbs.cn/forum.php?mod=viewthread&tid=95243​​ 。

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

1.11 ThreadX NetXDUO網絡協定棧

ThreadX的網絡協定棧對其它網絡協定棧幾乎是碾壓性優勢。一張圖,幾乎涵蓋了我們日常項目大部分應用:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

各個行業的安全認證:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

物聯網協定方向安全認證:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

加密庫也做了認證:

【STM32H7】第1章 目前主流的小型嵌入式網絡協定棧

1.12 總結

本章主要為大家講解了幾款主流的嵌入式網絡協定棧,讓大家對目前的小型嵌入式網絡協定棧有一個整體的了解,關于這幾款嵌入式協定棧的更多知識可以上其官網進行了解和學習。

上一篇: 插隊問題
下一篇: 關系網絡