首页 > 其他分享 >一文读懂远程控制协议—Remote Control Protocol

一文读懂远程控制协议—Remote Control Protocol

时间:2024-11-08 20:46:46浏览次数:1  
标签:Control 执行器 控制器 Remote SPI RCP 边缘 控制协议 节点

       随着中央计算+区域控制的中央集中式架构广泛应用,10BASE-T1S技术逐渐得到各方关注,总线型及半双工的特性让10BASE-T1S在成本和功耗上更占优势。在此基础上,为了进一步实现中央计算+区域控制的理念,2023年5月,BMW在OPEN联盟TC14的会议中提到了远程控制协议Remote Control Protocol(简称RCP)的概念。2024年7月,OPEN联盟创建了TC18 :Remote Control小组。当前在TC18中各个OEM对这项技术的讨论和关注度较高。

       RCP是一种轻量级的通信协议,核心理念是将边缘节点控制器中MCU的协议转换功能迁移至区域控制器ZCU甚至中央控制器Central ECU中实现,从而实现针对边缘节点的远程控制,实现网络中软件集中化,边缘节点轻量化。

       让我们想象这样一个场景:一个执行器通过标准SPI接口连接在边缘节点的MCU上。当我要控制这个执行器执行相关指令时,边缘节点必须通过SPI在执行器的寄存器0x01中写入0x0A。

       如果我们采用SOME/IP协议,信号的传输过程是这样的:区域控制器将SOME/IP报文发送至边缘节点,边缘节点中的MCU解析报文payload中控制执行器的信号,并通过SPI修改执行器的0x01寄存器。

       这样做可能产生的风险是:如果更换了一个具有其他SPI映射关系(比如需要在寄存器0x0A中写入0x0B,寄存器0x10中写入0x0A)或采用其他接口的执行器(比如I2C、UART等),边缘节点需要进行更新与修改。但SOME/IP协议至SPI的转换远远不像图片中展示的一样简单。

       如果我们采用RCP,信号的传输过程是这样的:区域控制器应用层下发的数据在RCP Client中转换为SPI格式的指令,并填入RCP协议的payload中,传输至边缘节点后,不需要进行额外的转换工作,RCP Server解析payload中的指令即可直接通过SPI控制执行器。

       同样在更换具有其他SPI映射关系的执行器后,仅需要更新ZCU的软件即可完成适配工作,实现了网络中软件集中化,边缘节点轻量化的目的。

       RCP的应用不仅体现在单一边缘节点的控制上,由于10BASE-T1S支持总线型连接,区域控制器可以在一条RCP报文中添加多个命令,通过组播的方式实现一条RCP报文控制总线上多个边缘节点,或一条RCP报文控制一个边缘节点中多个控制器的操作。这一组播操作的具体实现方式还在讨论中。

       RCP的协议字段当前正在TC18中展开讨论,并于2024年4月发布了Draft 0.2版本。值得注意的是,RCP在OSI七层模型中的位置并没有被确认,即RCP报文视使用场景的不同可能被封装进不同的协议中,当前的候选包括了SOME/IP、1722、Google Protocol Buffers等。

       总结来看,远程控制协议是一种轻量化协议,基于10BASE-T1S实现时简化了边缘节点中MCU的功能,由中央控制器或区域控制器直接下发控制指令,实现了网络中软件集中化,边缘节点轻量化。

结语

       经纬恒润作为OPEN联盟会员和AUTOSAR联盟的高级合作伙伴,长期为国内外各大OEM和供应商提供涵盖TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技术领域的设计和测试咨询服务,积极研发和探索车载网络前沿技术的工程应用。通过多个项目的实践经验,已建立了高质量、本土化的设计与测试一体化解决方案,为整车网络架构提供可靠支持。

了解更多

       请致电 010-64840808转6116或发邮件至[email protected](联系时请说明来自博客园)

标签:Control,执行器,控制器,Remote,SPI,RCP,边缘,控制协议,节点
From: https://www.cnblogs.com/hirain123/p/18535912

相关文章

  • 【WPF开发】HandyControl Growl控件Error通知不自动消失的问题
    Error类型的通知不自动消失,但是又需要他跟其他的统一。那么翻翻代码看看为啥不消失呗1、这是决定关闭通知的计时器2、这是通过_staysOpen来控制是否启动计时器_staysOpen为true的时候就会不启动了3、明显看到Error中如果非IsCustom的情况下会_staysOpen那么最后,我们可以......
  • PCIe系列专题之二:2.4 Flow Control机制概
    一、故事前传之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-basedlayeredprotocol),主要包括事务层(Transactionlayer),数据链路层(Datalinklayer)和物理层(Physicallayer)。较为详细解释请见之前的文章:1.PCIe技术概述;2.0PCIe......
  • PCIe系列专题之二:2.6 Flow Control初始化
    一、故事前传之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-basedlayeredprotocol),主要包括事务层(Transactionlayer),数据链路层(Datalinklayer)和物理层(Physicallayer)。较为详细解释请见之前的文章:1.PCIe技术概述;2.0PCIe......
  • PCIe系列专题之二:2.5 Flow Control缓存架构及信用积分
    一、故事前传之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-basedlayeredprotocol),主要包括事务层(Transactionlayer),数据链路层(Datalinklayer)和物理层(Physicallayer)。较为详细解释请见之前的文章:1.PCIe技术概述;2.0PCIe......
  • PCIe系列专题之二:2.7 Flow Control的实现过程
    一、故事前传之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-basedlayeredprotocol),主要包括事务层(Transactionlayer),数据链路层(Datalinklayer)和物理层(Physicallayer)。较为详细解释请见之前的文章:1.PCIe技术概述;2.0PCIe......
  • SATA系列专题之三:3.3 Transport Layer传输层Flow Control机制解析
    一、故事前传在之前的文章中,已经解析了SATA协议的部分相关内容。较为详细解释请见之前的文章:1,浅析SATAPhysicalLayer物理层OOB信号;2,SATALinklayer链路层解析2.0-2.3;3,SATATransportlayer链路层解析3.0-3.2;我们这里主要解析TransportlayerFlowControl机制相关内容......
  • Pinctrl子系统中Pincontroller和client驱动程序的编写
    往期内容本专栏往期内容:Pinctrl子系统和其主要结构体引入Pinctrl子系统pinctrl_desc结构体进一步介绍Pinctrl子系统中client端设备树相关数据结构介绍和解析inctrl子系统中Pincontroller构造过程驱动分析:imx_pinctrl_soc_info结构体Pinctrl子系统中client端使用pinctrl过......
  • ComfyUI | FLUX-ControlNet,FLUX-LoRA和FLUX-IPAdapter等工作流【附下载】
    本文重点提要本文将介绍Flux模型及安装指引,文末附所有工作流下载方式ComfyUIFLUX工作流分享:包含FLUXTxt2Img、FLUXImg2Img、FLUXLoRA、FLUXControlNet、FLUXInpainting、FLUXNF4和Upscale、FLUXIPAdapter、FluxLoRA训练器、FluxLatentUpscalerFLUX简介1.1前......
  • 【Unity移动端触控插件】Control Freak 2 - Touch Input Made Easy!
    ControlFreak2是一款专为Unity开发的插件,旨在简化触控输入的处理,特别适用于移动设备游戏。它提供了一整套易于使用的界面和控件,使开发者能够快速创建响应式的触摸输入系统,提升用户体验。主要功能多种控件支持:提供虚拟摇杆、按钮、滑块等多种触控控件,方便开发者根据......
  • LE Controller commands(低功耗控制器命令)速览
    目录一、基础设置与管理命令(15个)1.1.事件控制与状态查询1.2.设备配置与特性查询1.3.性能优化与资源管理1.4.安全与隐私设置1.5.信道与特性1.6.数据长度相关二、广播与扫描(36个)2.1.广播参数设置2.2. 广播数据设置2.3.扫描响应数据设置2.4.设置随机地址2.......