收藏!嵌入式产品开发流程详解

文章图片
嵌入式产品 , 与普通电子产品一样 , 开发过程都需要遵循一些基本的流程 , 都是一个从需求分析到总体设计 , 详细设计到最后产品完成的过程 。 但是 , 与普通电子产品相比 , 嵌入式产品的开发流程又有其特殊之处 。 它包含嵌入式软件和嵌入式硬件两大部分 , 针对嵌入式硬件和软件的开发 , 在普通的电子产品开发过程中 , 是不需要涉及的 。 嵌入式产品的研发流程具体如下图:

文章图片
下面 , 针对嵌入式产品的开发过程中的各个阶段 , 我们进行详细探讨 。
阶段1:产品需求
在这一个阶段 , 我们需要弄清楚的是产品的需求从何而来 , 一个成功的产品 , 我们需要满足哪些需求 。 只有需求明确了 , 我们的产品开发目标才能明确 。 在产品需求分析阶段 , 我们可以通过以下这些途径获取产品需求:
1)市场分析与调研 , 主要是看市场有什么需求,还有就是前沿的技术是什么(站在做一款产品的角度);
2)客户调研和用户定位 , 从市场广大客户那获取最准确的产品需求(要注意分析市场 , 产品生命周期 , 升级是否方便);
3)利润导向(成本预算);
4)如果是外包项目 , 则需要我们的客户提供产品的需求(直接从客户那获取 , 让客户签协议);
当一个项目做完的时候 , 如果客户突然又增加需求 , 增加功能 , 将导致你的项目周期严重拖延 , 成本剧烈上升 , 并且测试好的产品可能要全部重新测试 , 原本的设计可能将不会满足当前的要求 , 所以做项目之前 , 最好要跟客户把需求确定下来 , 并且签订一份协议 , 否则 , 你辛苦多少个日日夜夜 , 得到的将是一个无法收拾的烂摊子!

文章图片
2:产品规格说明
在前一个阶段 , 我们搜集了产品的所有需求 。 那么在产品规格说明阶段 , 我们的任务是将所有的需求 , 细化成产品的具体的规格 , 就比如一个简单的USB转串口线 , 我们需要确定产品的规格 , 包括:
产品的外观;
产品支持的操作系统;
产品的接口形式和支持的规范;
等等诸如此类 , 切记 , 在形成了产品的规格说明后 , 在后续的开发过程中 , 我们必须严格的遵守 , 没有200%的理由 , 不能随意更改产品的需求 。 否则 , 产品的开发过程必将是一个反复无期的过程 。
《产品规格说明》主要从以下方面进行考虑:
考虑该产品需要哪些硬件接口;
产品用在哪些环境下 , 要做多大 , 耗电量如何 。 如果是消费类产品 , 还跟设计美观 , 产品是否便于携带 , 以确定板子大小的需求 , 是否防水;
产品成本要求;
产品性能参数的说明(例如交换机 , 如果是百兆的速率 , 用于家庭和一般公司;如果是用于整个省的交换 , 那设计的速率肯定数十万兆以上了)所以说 , 产品性能参数的不同 , 就会影响到我们设计考虑的不同 , 那么产品的规格自然就不同了;
需要适应和符合的国家标准 , 国际标准 , 或行业标准;

文章图片
阶段3:产品总体设计方案
在完成了产品规格说明以后 , 我们需要针对这一产品 , 了解当前有哪些可行的方案 , 通过几个方案进行对比 , 包括从成本、性能、开发周期、开发难度等多方面进行考虑 , 最终选择一个最适合自己的产品总体设计方案 。
在这一阶段 , 我们除了确定具体实现的方案外 , 我们还需要综合考虑 , 产品开发周期 , 多少人月的工作量 , 需要哪些资源或者外部协助 , 以及开发过程中可能遇到的风险及应对措施 , 形成整个项目的项目计划 , 指导我们的整个开发过程 。
阶段4:产品概要设计
产品概要设计主要是在总体设计方案的基础上进一步的细化 , 具体从硬件和软件两方面入手:
硬件模块概要设计
硬件模块概要设计 , 主要从硬件的角度出发 , 确认整个系统的架构 , 并按功能来划分各个模块 , 确定各个模块的的大概实现 。 首先要依据我们到底要哪些外围功能以及产品要完成的工作 , 来进行CPU选型(注意:CPU一旦确定 , 那么你的周围硬件电路 , 就要参考该CPU厂家提供的方案电路来设计) 。 然后再根据产品的功能需求选芯片 , 比如是外接AD还是用片内AD , 采用什么样的通讯方式 , 有什么外部接口 , 还有最重要的是要考虑电磁兼容 。
一般一款CPU的生存周期是5-8年 , 你考虑选型的时候要注意 , 不要选用快停产的CPU , 以免出现这样的结局:产品辛辛苦苦开发了1到2年 , 刚开发出来 , 还没赚钱 , CPU又停产了 , 又得要重新开发 。 很多公司就死在这个上面 。

文章图片
软件模块概要设计
软件模块概要设计阶段 , 主要是依据系统的要求 , 将整个系统按功能进行模块划分 , 定义好各个功能模块之间的接口 , 以及模块内主要的数据结构等 。
阶段5:产品详细设计
硬件模块详细设计
主要是具体的电路图和一些具体要求 , 包括PCB和外壳相互设计 , 尺寸这些参数 。 接下来 , 我们就需要依据硬件模块详细设计文档的指导 , 完成整个硬件的设计 。 包括原理图、PCB的绘制 。
软件模块详细设计
功能函数接口定义 , 该函数功能接口完成功能 , 数据结构 , 全局变量 , 完成任务时各个功能函数接口调用流程 。 在完成了软件模块详细设计以后 , 就进入具体的编码阶段 , 在软件模块详细设计的指导下 , 完成整个系统的软件编码 。
一定要注意需要先完成模块详细设计文档以后 , 软件才进入实际的编码阶段 , 硬件进入具体的原理图、PCB实现阶段 , 这样才能尽量在设计之初就考虑周全 , 避免在设计过程中反复修改 。 提高开发效率 , 不要为了图一时之快 , 没有完成详细设计 , 就开始实际的设计步骤 。

文章图片
阶段6&7:产品调试与验证
该阶段主要是调整硬件或代码 , 修正其中存在的问题和BUG , 使之能正常运行 , 并尽量使产品的功能达到产品需求规格说明要求 。
硬件部分:
目测加工会得PCB板是否存在短路 , 器件是否焊接错误 , 或漏焊接;
测试各电源对地电阻是否正常;
上电 , 测试电源是否正常;
分模块调试硬件模块 , 可借助示波器、逻辑分析仪等根据 。
软件部分:
验证软件单个功能是否实现 , 验证软件整个产品功能是否实现 。

文章图片
阶段8:测试
功能测试(测试不通过 , 可能是有BUG);
压力测试(测试不通过 , 可能是有BUG或哪里参数设计不合理);
性能测试(产品性能参数要提炼出来 , 供将来客户参考 , 这个就是你的产品特征的一部分);
其他专业测试:包括工业级的测试 , 例如含抗干扰测试 , 产品寿命测试 , 防潮湿测试 , 高温和低温测试(有的产品有很高的温度或很低的温度工作不正常 , 甚至停止工作) 。
【收藏!嵌入式产品开发流程详解】有的设备电子元器件在特殊温度下 , 参数就会异常 , 导致整个产品出现故障或失灵现象的出现;有的设备 , 零下几十度的情况下 , 根本就启动不了 , 开不了机;有的设备在高温下 , 电容或电阻值就会产生物理的变化 , 这些都会影响到产品的质量 。 这里要引出一个话题 , 工业级产品与消费类产品有什么区别呢?工业级的产品就要避免这些异常和特殊问题 , 有的产品是在很深的海里工作 , 或者在严寒的山洞工作 , 或者火热沙漠工作 , 或者颠簸的设备上 , 比如汽车;或者是需要防止雷击;所以这就是工业级产品跟消费类产品的区别 , 消费类的产品就不需要做这么多的测试 。
阶段9:产品
通过上一阶段完整测试验证 , 在此阶段 , 即得到我们开发成功的产品 。 在此阶段 , 可以比较实际的产品和最初的形成的产品规格说明 , 看经过一个完整的开发过程 , 是否产品完全符合最初的产品规格说明 , 又或者 , 中途发现产品规格说明存在问题 , 对它进行了多少修改呢?
*本篇文章和图片来源网络 , 如有侵权请联系小编处理!
推荐阅读
- 医生建议:这10种肉最好别吃或少吃!尤其是这三个地方!快收藏!
- 8道营养简单的早餐做法,勤劳的妈妈们都收藏起来了
- DNF终于有玩家总结三神器深渊玄学了,一张表格看结论,收藏吧
- 现在流通的50元纸币快收藏,图案隐藏了关于“西游记”的秘密!
- 散户注意:这4条线意义非凡,主力在操盘时都有关注它们!收藏好
- 此物姑姑吃了20年,面色红润精神好,夏天女人要常吃,收藏了
- 止损≠割肉!资深股民总结出设置止损的技巧,简单易懂,建议收藏
- 全球仅剩2架“黑寡妇”,其中一架中国收藏,美3000万购买遭拒
- 赶紧收藏!鹤壁机动车登记服务站、检验机构等地址、电话公布
- 灿若星芒,珠宝设计哪国强?江南收藏?珠宝世界
