第2章:DO-178C标准总览

各位同学,今天我们聊聊DO-178C的全貌。说实话,我刚入行那会儿,看到这个标准的第一反应是——好厚一本。但干久了你会发现,它其实就是一本「安全飞行指南」。

2.1 DO-178C的历史沿革

DO-178的故事要从上世纪80年代讲起。那时候航空电子系统开始大规模用软件,但出了不少问题。我记得有个老工程师跟我讲过,早期有个飞控软件因为一个定时器溢出,差点让飞机在空中「发呆」。

于是1982年,RTCA(航空无线电技术委员会)发布了第一版DO-178。那时候还比较粗糙,主要是个框架。到了1992年,DO-178B出来了,这才真正成了行业标杆。我参与的第一个适航项目就是按178B做的,那时候还没有面向对象的概念,代码全是C语言,结构化编程。

2011年,DO-178C发布。为什么要升级?说白了,技术变了。模型设计、自动代码生成、形式化方法这些新玩意儿,178B管不住了。我有个朋友在空客做A350的飞控,他们用模型开发,178B根本没法直接套用,得跟局方谈「等效安全」。178C把这些都规范了,省了很多扯皮的事。

关键时间节点:

  • 1982年:DO-178发布,初版框架
  • 1992年:DO-178B发布,成为行业标准
  • 2000年:开始酝酿修订,技术发展太快
  • 2011年:DO-178C正式发布,沿用至今
  • 2023年:DO-178C仍是最新版本,但已有修订讨论

2.2 与其他标准的关系

你可能会问,DO-178C是不是孤立的?当然不是。它跟几个兄弟标准关系密切。

2.2.1 DO-254:硬件也逃不掉

DO-254是硬件的适航标准。为什么飞控软件要懂硬件标准?我举个例子。有一次我们在做飞控计算机的认证,软件跑在FPGA上。局方问:「你这个FPGA的逻辑怎么验证的?」软件团队说这是硬件的事,硬件团队说这是软件配置。最后两边都挨批了。

DO-178C和DO-254的关系,说白了就是「软硬一体」。飞控系统里,软件跑在硬件上,硬件出问题软件也扛不住。所以现在很多项目都搞「联合认证」,软件和硬件团队坐在一起,把接口、时序、资源占用这些事说清楚。

2.2.2 DO-331:模型开发的专属标准

DO-331是DO-178C的补充,专门针对模型开发。现在很多飞控都用Simulink建模,然后自动生成代码。DO-331就是告诉你:模型怎么建才算合规,自动生成的代码怎么验证。

我个人习惯,用模型开发时一定保留模型评审的记录。局方检查时,光有代码不行,你得证明模型本身是对的。有一次项目,我们模型里有个状态机画错了,自动生成的代码也跟着错。幸亏模型评审时发现了,不然飞上去就麻烦了。

我的建议:如果你用模型开发,DO-331一定要看。它跟DO-178C是配套的,不是替代关系。说白了,DO-331是告诉你「怎么用模型做178C合规」。

2.3 软件等级划分(A/B/C/D/E)

这是DO-178C最核心的概念之一。软件等级,说白了就是「这个软件出问题会死多少人」。

等级划分的依据是故障条件(Failure Condition)的严重程度。局方有个表格,我直接给你们看:

等级 故障条件 后果描述 我见过的例子
A级 灾难性的 飞机坠毁,多人死亡 飞控主控软件、自动驾驶核心
B级 危险的 严重受伤,飞机严重损坏 飞行管理系统的部分功能
C级 重大的 乘客不适,系统降级 座舱显示系统、部分告警功能
D级 轻微的 轻微不便,无安全影响 客舱娱乐系统、部分维护日志
E级 无影响的 对飞机功能无影响 飞行后数据分析软件

你想想看,A级软件的要求有多严?独立验证、100%语句覆盖、100%分支覆盖、MC/DC覆盖……每一项都是硬骨头。我做过一个A级飞控项目,光测试用例就写了上万条,评审会开了三个月。

D级和E级就轻松多了。E级甚至不需要跟局方打交道,自己内部搞定就行。但要注意,等级是「就高不就低」的。如果一个功能同时影响A级和C级,那整个功能都得按A级做。

避坑指南:我曾经见过一个项目,他们把飞控软件拆成好几个模块,想用等级「稀释」来降低认证成本。结果局方一看,说:「你们这个模块虽然只做数据转发,但它转发的是A级数据,所以它也是A级。」嗯,白费功夫。

2.4 知识体系总览

下面这张图是我自己画的,把DO-178C的核心脉络理清楚了。你看一眼,心里就有数了。

DO-178C 知识体系总览 DO-178C 核心 历史沿革 与其他标准关系 软件等级划分 1982 DO-178 初版 1992 DO-178B 2011 DO-178C DO-254 硬件标准 DO-331 模型开发 DO-332 面向对象 A级:灾难性 B级:危险的 C级:重大的 D级:轻微的 E级:无影响 注:箭头表示关联关系,虚线表示历史演进

这张图你看懂了吗?核心是DO-178C,左边是它的历史,右边是它跟其他标准的关系,下面是软件等级。每一块后面我们都会细讲。

2.5 我的几点体会

做了这么多年适航认证,我总结了几条经验,分享给你们:

  1. 等级不是越高越好。 有人觉得A级最安全,就什么都往A级做。结果成本翻了好几倍,周期拉长,最后项目黄了。合理分配等级,才是真本事。
  2. 标准是工具,不是枷锁。 DO-178C给了你方法,但没规定你必须怎么做。我见过用形式化方法做A级认证的,也见过用传统测试做B级认证的。关键是你得证明你的方法有效。
  3. 早跟局方沟通。 别等到做完了才去找局方。我有个项目,前期跟局方开了三次会,把等级划分、认证策略都敲定了。后面做起来顺风顺水。另一个项目,闷头做了一年,局方一看说「你们这个等级分错了」,全盘重来。

核心要点回顾:

  • DO-178C是2011年发布的,替代了1992年的178B
  • 跟DO-254(硬件)、DO-331(模型开发)等标准配套使用
  • 软件等级A到E,A级最严格,E级最宽松
  • 等级划分依据是故障条件的严重程度
  • 等级「就高不就低」,不能通过模块拆分来降低

好了,这一章就到这里。记住,DO-178C不是一本死板的教条,它是无数航空人用血泪换来的经验总结。你理解得越深,做项目就越顺手。

专注资料整理