FreeRTOS-TCP软件架构详解

作者 | 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 硬件将根据流量优先级来确定数据包的优先级。
发送+接收框图


保险丝的工作原理是什么?
有了它 AI甚至可以让你知道对方是否真的爱你?
图像分类的5种技术,总结并归纳算法、实现方式,并进行实验验证
进入5G时代,光纤光缆厂商的机遇与挑战都将并存
到底值不值得升级Wi-Fi 6
FreeRTOS-TCP软件架构详解
比亚迪新能源汽车连续三年获全球销量第一
什么是浪涌电压_浪涌电压产生原因
纬创印度工厂被砸,2万部iPhone被毁
轻量应用服务器领域,这款产品何以被冠“国民级”美誉
立讯精密推动对ESG管理体系的持续优化提升
Stratasys与康德莱医疗在医疗领域达成了合作关系
索尼电视携8K及OLED新品亮相CES 进一步推动中国OLED电视市场的发展
人工智能应用的范围到底有多广
性能指标参数对PPTC自恢复保险丝的影响
英国利用AI技术将时间转换为3D空间视觉,助力研发移动设备的感知能力
深度学习全新打开方式Google Brain提出概念激活向量新方法
关于GD32首块Arm® mbed™开发板的分析和应用
安捷伦推出业界最高RF带宽的PXI数据流盘解决方案
燃料电池仿真器及其工作原理