4.1 平台分类CP与AP


4.1 平台分类:Classic 与 Adaptive

本节摘要:Classic 与 Adaptive 不是货架上的两个品牌,而是同一枚硬币的两面:一面刻着时间可预测,一面刻着行为可演化。Foundation 提供跨平台最低共识。读完应能按功能的时间与安全需求做平台归属,而不是按“是否智能”做归属。

你能学到什么

阅读完本节,你应当能够:

  1. 用静态绑定、固定优先级调度、无随意堆分配刻画 Classic 契约。
  2. 用 POSIX、服务、动态部署刻画 Adaptive 契约。
  3. 说明 Foundation 的 IDL 与元协议角色。
  4. 给出三类功能的平台选择理由:底盘闭环、智驾规划、座舱应用。

一、先问承诺,再问模块名

控制器数量、代码量和安全等级同时上升时,一套静态栈无法覆盖所有新工作,一套动态栈也无法证明所有旧工作。于是出现双轨:Classic 深扎确定性土壤,Adaptive 伸向算力和云。它们共享元模型和方法论基因,在内核、通信、部署、生命周期上分道。

误区是把分类当成实现清单。真正要读的是技术契约:向开发者承诺什么,向硬件抽象承诺什么,向集成商承诺什么,向十年远程升级承诺什么。契约不同,模块名相似也不是同一个东西。RTE 和 ARA 都叫运行时,一个浇在 ROM 里,一个监管进程。

Classic 的危险错误往往是时间偏差:制动指令晚一个轮速周期,转向力矩抖动被驾驶员感知。于是它围绕“如何在资源受限微控制器上证明路径的时间与内存”。Adaptive 的危险错误往往是演化失控:服务找不到、版本不匹配、资源互相挤占。于是它围绕“如何在约束下持续交付语义承诺”。

图:CP 与 AP 对照

图:CP 与 AP 对照

二、Classic:确定性的圣殿

静态是灵魂。系统描述到 ECU 描述,模块参数到端口映射,编译期绑定。没有随意动态加载,没有反射,没有随手堆分配。内存布局、栈、中断优先级、报文调度表由描述生成。形式化或最坏执行时间分析才有对象:可以讨论某应用主函数在最坏干扰下不超过某个毫秒上限。这不是概率,是要上限。

调度是金字塔:硬件中断最短,任务固定优先级,运行实体是任务里的片段。CAN 接收回调通常置位,应用在下一窗口读取。时间被切成格子。RTE 是静态胶水:端口映射成指针和缓冲区,发送车速接近拷贝加标志。每一次间接和动态,都是对确定性的侵蚀,所以它拒绝。

边界也清楚。动态加载模型、复杂 TLS 通道、多核负载均衡式的弹性,会让静态性从优势变成桎梏。Classic 退守人身安全相关的最后防线:动力、线控制动、转向闭环、气囊决策。2017 年 Adaptive 发布,不是为了宣布这些防线过时。

三、Adaptive:弹性的引擎

区域架构和高算力芯片到来后,车辆需要像终端一样更新应用。Adaptive 以 POSIX 兼容操作系统为基座,以服务为骨架,以动态部署为血肉。它问的是服务如何在资源约束下持续交付语义,而不是每个任务必须在多少微秒内完成。

执行管理监控应用健康、资源占用,按清单启停或重启。通信转向服务实例:请求-响应与发布-订阅,URI 与接口定义、可配置服务质量。承载常常是车载以太网上的 SOME/IP 等。规划模块可以像调本地函数一样调远程服务,序列化与超时由框架处理。算法团队可以较少关心消费者在哪颗芯片。

部署上出现应用包、校验、安装、回滚。机器学习模型也可以作为可版本化对象被加载。弹性伴随攻击面和端到端安全分析变难。Adaptive 用沙箱、安全启动、加密接口、并把高等级逻辑下沉到 Classic 域再经标准化进程间通道协同。这是混合架构的伏笔。

四、Foundation:共通语法

两条河要在整车里完成一个用例:自动泊车要调底盘线控转向,转向在 Classic,泊车主控在 Adaptive。语言不通会变成集成天堑。Foundation 不是第三平台,是双方最低共识:平台无关的接口描述,能表达方法、事件、数据类型和部分质量约束。网关按这份语法翻译,而不是按某个工程师的临时结构体。

维度 Classic Adaptive
时间 可证明上限 服务质量与监控
通信 信号与 PDU 服务与发现
部署 整图烧录 包与更新
内存 静态 进程级动态
典型功能 闭环执行 规划 感知 座舱

⚠️ 常见坑:把座舱应用塞进 Classic 只因为“我们只会这套栈”,或把制动闭环塞进 Adaptive 只因为“这才先进”。错的是契约,不是面子。
💡 关键直觉:选平台就是选你愿意用什么方式证明安全——编译期证明,还是运行时监控加降级。

2017 到 2022 被原文称为裂变期:特斯拉式全栈和英伟达级算力逼问能否承载人工智能、服务化和远程升级。答案是双平台,而不是单平台自我膨胀。2023 之后的融合期才把网关和整车服务总线推到前台。时间线帮助记忆,但学习顺序仍然是:先契约,后模块。

五、选型清单和年代对照

把功能放进哪边,可以用五问。是否需要可证明的微秒到毫秒上限。是否允许运行时出现未知服务。是否需要远程替换算法而不换执行器栈。是否必须禁止随意堆分配。是否主要威胁是随机硬件故障还是恶意报文。前两问偏向 Classic,中间一问偏向 Adaptive,后两问两边都要答,只是机制不同。座舱应用塞进 Classic 只因为团队只会这套栈,或制动闭环塞进 Adaptive 只因为先进,都是用错证明方式。

年代对照帮助沟通。2003 到 2009 奠基五层;2010 到 2016 方法论流水线;2017 年 Adaptive 1.0 裂变,放弃把一切塞进 OSEK 内核,拥抱 POSIX 和服务发现;2023 之后强调网关和整车级协同。学习顺序仍是先契约后年代。新人按年代读,会以为 2017 之后可以不学运行时环境。量产车上 Classic 仍是安全底线的黄金标准,这句话在裂变之后仍然成立。

问题:一个功能能不能两边各做一份以求保险?

可以当过渡,但必须承认两份证明材料不能互相替代。Classic 那份要截止期,Adaptive 那份要降级和监控。两边各做一份却共用同一套测试,会把证明稀释成“都能跑”。保险的正确含义是:执行闭环留在可证明格子,规划留在可替换服务,网关翻译元数据。两份完整栈叠在同一执行器上,资源会先破产,安全案例会后破产。破产顺序不同,结果同样是不可量产。

选型五问要写进架构决策记录,而不是写进聊天记录。是否需要可证明上限,是否允许运行时未知服务,是否需要远程替换算法,是否必须禁止随意堆分配,主要威胁是随机故障还是恶意报文。五问的答案会随功能不同而不同,所以一辆车出现双平台是常态,不是妥协。常态需要 Foundation 当词典,需要网关当译者,需要组织当词典的主人。没有主人的词典会有两本,两本词典是集成炼狱的精装版。精装版看起来很正式,仍然是炼狱。把五问贴在评审入口,比贴平台商标更有用。商标回答不了扭矩叠加该不该动态加载。动态加载回答不了截止期。截止期回答不了服务发现。各答各的题,才是分类的意义。意义一旦被“我们全面转向 Adaptive”取代,底线功能会在口号里失去证明方式,失去证明方式的功能仍然会装上车,只是案例变成希望。希望不是 ASIL。

把双平台并存写成组织语言:底盘团队交付可证明的格子,智驾团队交付可替换的服务,架构团队交付词典和网关。三队若合成一队只说全面转向,证明材料会在转向中丢失。丢失后仍能开演示车。演示车不需要十五年搬家权,量产车需要。需要的东西决定了 2017 年裂变不是葬礼。葬礼叙事对招聘广告有用,对制动液压没有用。液压仍要上限。上限仍要静态。静态仍要 Classic。Classic 仍要人会画第 1.3 节的图。图不会因为平台商标切换而自动画出来。自动画不出来,就要在分类这一节把归属写进决策记录。记录里禁止只用新和旧。只用新和旧的记录,三年后无法解释为什么转向闭环没有动态加载。无法解释的决策等于没做决策。没做决策的双平台是两堆模块。两堆模块会在自动泊车时要求临时结构体。临时结构体是分类失败的纪念品。纪念品越少越好。
把 Foundation 当成双语词根来维护。词根包括单位、范围、方法签名、事件结构、部分质量约束。词根漂移,网关就得靠人肉。人肉在第一款车能扛,第三款车会把集成再次抬到四成周期。四成周期会让管理层怀疑标准。怀疑标准时,真正缺的是词根主人。主人应是主机厂架构,而不是某次联调的临时小组。临时小组解散后,词根变成口头禅。口头禅无法被工具校验。工具校验不了的词根,等于没有 Foundation。没有 Foundation 的双平台,只是两套栈共用一个车身。共用车身不是混合架构。混合架构要求意义可翻译。意义写在词根里。词根写在系统描述里。系统描述是第 5 章的漏斗口。漏斗口和分类这一节在这里握手。握手失败,后面所有功能集群都会各说各话。各说各话的集群很忙,忙不出一辆可认证的车。

把“先进”从选型词汇里拿掉。先进不能回答扭矩叠加该不该动态加载。能回答的是:最坏执行时间是否必须在编译期封闭,服务实例是否允许在点火周期内增减。两个问题的答案可以同时为是,那就是一辆车上的双平台,而不是一次站队。站队叙事对预算会很方便,对液压阀没有意义。阀需要上限,上限需要静态对象集合,静态对象集合住在 Classic。规划需要替换,替换住在 Adaptive。住在哪里由证明方式决定,由招聘广告上的技术栈名词不决定。

要点串联

  • 契约优先:时间与演化是分类轴,新旧不是。
  • Classic 静态:绑定、格子、可证明。
  • Adaptive 动态:服务、进程、可更新。
  • Foundation 是语法:不是第三套内核。
  • 功能归属看证明方式:闭环 vs 演化。
  • 裂变不是葬礼:2017 年 AP 1.0 打开上限,底线仍在 CP。

下一节进入 Adaptive 的执法者:ARA 如何把清单里的约束变成启动和运行时的真实检查。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U