作者|Tanmoy Sen
微信公眾號 | strongerHuang
如今網絡發達的今天,越來越多的設備都有聯網的需求,聯網的方式也越來越多。
在 2022 年 11 月于紐倫堡舉辦的智能生產解決方案(SPS)展覽會上,由 Analog Devices、Arm、Amazon Web Services (AWS)、B&R Industrial Automation、萊迪思半導體、 施耐德電氣、Texas Instruments 和 NXP 等 8 家合作伙伴組成的一個工作組宣布, 將利用 FreeRTOS 創建一個開放源代碼的基于時間敏感網絡(TSN)的開放平臺通信聯合架構(OPC UA)。
為了使 OPC UA 與現有的工業協議一樣在現場得到廣泛應用, 支持 OPC-UA/TSN 的設備價格必須與現有的解決方案持平。這就需要有支持 OPC-UA/TSN 的基于低成本 MCU 和低功耗 FPGA SoC 的設備。
FreeRTOS-plus-TCP 軟件架構
在 FreeRTOS+TCP 堆棧的現有設計中,IP 任務被設計為事件驅動任務。它 它在一個 FreeRTOS 隊列上超時阻塞(掛起),應用程序和網絡接口向該隊列發布事件 。當接收到一個事件(在隊列中發布的事件)時,IP 任務會解除阻塞并處理 這些事件。這些事件包括:
從套接字 API 發送/接收事件,以及向套接字 API 發送/接收事件
IP 堆棧定時器事件
其他網絡事件(如網絡上行/下行事件)
隊列中收到的所有事件當前都以相同的優先級進行處理 (因為只有一個 SW 隊列),與流量類型、套接字配置、協議等無關。
支持 TSN 的現有架構的局限性
現有堆棧中沒有處理多優先級流量數據的選項。
三次上下文切換(應用程序任務到 IP 任務和 IP 任務到網絡驅動程序任務)可能 會使 TSN 運行的發送和接收延遲變得不確定。
FreeRTOS-plus-TCP 空閑任務 PrvIPTask 目前的優先級高于 應用任務。這將造成問題,因為 TSN 較高的吞吐量可能要求應用程序 任務的優先級高于空閑任務。
在發送和接收時使用相同的以太網驅動任務 將對 TSN 的高速吞吐量構成挑戰。
向前邁進 我們正在根據以下設計原則推進 FreeRTOS+TCP 堆棧: API:
針對盡力而為和 TSN 流量的通用 API。
為了支持TSN 流量類型,引入一個名為 "FREERTOS_AF_TSN 的新的 "xDomain" ——在 "FreeRTOS_socket" API 中。
流量分離層:
套接字層之后的解碼層可區分盡力而為 TCP 流量 和 TSN 流量。
這一層還可區分各種優先級的 TSN 流量。
流量優先級和多優先級隊列:
支持多優先級,以便在第 2 層獲得確定性流量。
支持根據優先級處理流量。
該堆棧可在 2 種模式下工作:
只有盡力而為流量:在這種情況下,堆棧將作為單一隊列系統運行。
盡力而為流量和 TSN 流量:根據底層硬件支持的隊列數量, 激活所需的隊列數量。
流量調度: 傳輸:
FreeRTOS-plus-TCP 將使用簡單的輪詢機制將 隊列刷新到硬件。
硬件將決定發送和接收速率,FreeRTOS-plus-TCP 堆棧將保持硬件速率。
每個隊列都有一個閾值,只要達到該值,DMA 就會將數據傳輸到 TSN MAC。 接收: TSN 硬件將根據流量優先級來確定數據包的優先級。
發送+接收框圖
審核編輯:湯梓紅
-
網絡
+關注
關注
14文章
7796瀏覽量
90628 -
TCP
+關注
關注
8文章
1401瀏覽量
80653 -
FreeRTOS
+關注
關注
12文章
492瀏覽量
64053 -
軟件架構
+關注
關注
0文章
64瀏覽量
10482
原文標題:FreeRTOS-TCP 軟件架構
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
TCP-IP詳解
FreeRTOS按耐不住,也加入MDK軟件包大陣營
tcp ip協議詳解卷三 下載

評論