4. 硬件设计流程
系统需求分析,说白了就是搞清楚客户到底要什么。很多工程师觉得这步就是“翻译”客户的话,其实没那么简单。我做了十几年ECU开发,见过太多因为需求没对齐,最后改板改到崩溃的项目。
你想想看,客户说“我要一个稳定的雨刮控制器”。什么叫稳定?是刮100万次不出错,还是下雨天不能突然停?这些细节,全得在需求分析阶段挖出来。
4.1 客户需求解读:别让“我以为”害了你
客户给的需求,通常有两种形式:一种是正式的RFQ(Request for Quotation),里面会有功能列表、性能指标;另一种就是口头沟通或者邮件里的零散信息。我个人习惯,拿到客户需求后先做三件事:
- 分类整理:把功能相关的归一类,性能相关的归一类,法规相关的单独列出来。
- 标记模糊点:凡是出现“尽可能”、“最好”、“必要时”这类词,全部标红。
- 确认边界:比如工作温度范围、供电电压波动、EMC等级,这些必须白纸黑字写清楚。
我曾经踩过一个坑:客户说“ECU要在-40℃到125℃工作”,我们按这个设计了。结果量产前客户才说,他们说的125℃是存储温度,工作温度其实只有105℃。白白多花了30%的器件成本。所以,温度等级、电压范围、寿命要求,一定要区分“工作”和“存储”。
4.2 系统需求规格书(SRS)编写
SRS是ECU开发的“宪法”。所有后续的设计、测试、验收,都得拿它说话。我见过很多团队SRS写得像流水账,结果开发到一半发现需求矛盾,只能返工。
一份好的SRS,应该包含以下核心内容:
| 章节 | 内容 | 我的建议 |
|---|---|---|
| 1. 范围 | 产品定义、应用场景、目标车型 | 写清楚“做什么”和“不做什么” |
| 2. 总体描述 | 系统架构、硬件拓扑、接口定义 | 附上框图,一图胜千言 |
| 3. 功能需求 | 每个功能的行为、触发条件、响应时间 | 用“当…时,系统应…”的句式 |
| 4. 非功能需求 | 可靠性、EMC、热管理、诊断 | 量化指标,比如“MTBF≥10000小时” |
| 5. 约束条件 | 成本、尺寸、重量、法规 | 这些往往是硬杠杠,不能妥协 |
| 6. 验收标准 | 测试方法、通过条件 | 写清楚“怎么证明做到了” |
写SRS的小技巧:每条需求都要有唯一编号,比如“SRS-FUNC-001”。这样后面做追溯矩阵、写测试用例,直接引用编号就行,省得来回翻文档。
4.3 功能需求与非功能需求
很多新手分不清这两类。我举个例子:
- 功能需求:踩刹车时,刹车灯必须在100ms内点亮。
- 非功能需求:刹车灯控制器在85℃环境下,连续工作1000小时不失效。
功能需求描述的是“系统做什么”,非功能需求描述的是“系统做得怎么样”。两者缺一不可。
在车载ECU开发中,非功能需求往往比功能需求更烧钱。比如:
- 可靠性:ISO 26262功能安全等级(ASIL A/B/C/D)
- 环境适应性:温度、湿度、盐雾、振动
- EMC:辐射发射、抗扰度(ISO 11452系列)
- 诊断:UDS协议支持、故障码管理
记住:非功能需求是ECU的“隐形门槛”。功能做得再花哨,过不了EMC测试,照样不能量产。我见过一个项目,功能需求两周就写完了,非功能需求写了两个月——因为每个指标都要和客户、测试、认证机构来回确认。
4.4 需求追溯矩阵:别让需求“丢了”
需求追溯矩阵(RTM),说白了就是一张表,把客户需求、SRS条目、设计文档、测试用例、验证结果全部串起来。它的作用是:
- 正向追溯:从客户需求出发,能找到对应的设计和测试。
- 反向追溯:从测试用例出发,能找到它验证的是哪条需求。
- 变更影响分析:客户改了一条需求,能快速知道哪些设计、代码、测试要跟着改。
我习惯用Excel或者DOORS来维护RTM。格式大概这样:
| 需求ID | 需求描述 | 来源 | SRS编号 | 设计文档 | 测试用例 | 验证状态 |
|---|---|---|---|---|---|---|
| REQ-001 | 上电后500ms内完成自检 | 客户RFQ | SRS-FUNC-001 | HW_ARCH_V2.3 | TC-PWR-001 | 通过 |
| REQ-002 | CAN通信波特率500kbps | 客户RFQ | SRS-FUNC-002 | HW_IF_SPEC | TC-CAN-002 | 未验证 |
| REQ-003 | 工作温度-40℃~105℃ | 客户RFQ | SRS-NFUNC-001 | THERMAL_ANALYSIS | TC-ENV-003 | 通过 |
注意:RTM不是一次性写完就完事了。项目过程中,需求会变、设计会改、测试会增补。RTM必须跟着更新。我见过最惨的案例:项目验收时发现有一条客户需求从头到尾没人管,因为RTM里根本没写进去。结果?重新走变更流程,项目延期两个月。
4.5 需求分析阶段的知识体系
下面这张图,是我自己总结的需求分析阶段核心逻辑。你可以把它当成一个检查清单:
这张图把需求分析的四个核心环节串起来了。从客户需求出发,经过解读和分类,写成SRS,最后用RTM保证每条需求都有归宿。嗯,这里要注意:RTM不是做完就扔的,它要贯穿整个项目生命周期。
4.6 避坑指南:需求分析阶段的常见问题
最后,分享几个我亲身经历过的教训:
- 需求模糊:客户说“响应要快”,你得追问“快”是10ms还是100ms?不量化,后面全是扯皮。
- 需求遗漏:只写了功能需求,忘了写诊断需求。结果样机做出来,连个故障码都读不出来。
- 需求矛盾:一边要求“成本降低20%”,一边要求“所有器件必须用车规级”。这两个目标有时候是冲突的,得提前和客户沟通优先级。
- RTM不更新:需求变了,RTM没改。最后测试发现测错了东西,白干两周。
我的经验:需求分析阶段多花一周,硬件设计阶段能省一个月。别急着画原理图、做Layout,先把需求搞清楚。你想想看,地基没打好,上面盖的房子能稳吗?