嵌入式产品开发的各个阶段详解
eetrendMcuBlog 2021-04-08

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

下面,针对嵌入式产品的开发过程中的各个阶段,我们进行详细探讨。

阶段1:产品需求

在这一个阶段,我们需要弄清楚的是产品的需求从何而来,一个成功的产品,我们需要满足哪些需求。只有需求明确了,我们的产品开发目标才能明确。在产品需求分析阶段,我们可以通过以下这些途径获取产品需求:

1、市场分析与调研,主要是看市场有什么需求,还有就是前沿的技术是什么(站在做一款产品的角度);

2、客户调研和用户定位,从市场广大客户那获取最准确的产品需求(要注意分析市场,产品生命周期,升级是否方便);

3、利润导向(成本预算);

4、如果是外包项目,则需要我们的客户提供产品的需求(直接从客户那获取,让客户签协议)。

当一个项目做完的时候,如果客户突然又增加需求,增加功能,将导致你的项目周期严重拖延,成本剧烈上升,并且测试好的产品可能要全部重新测试,原本的设计可能将不会满足当前的要求,所以做项目之前,最好要跟客户把需求确定下来,并且签定一份协议,否则,你辛苦多少个日日夜夜,得到的将是一个无法收拾的烂摊子!

阶段2:产品规格说明

在前一个阶段,我们搜集了产品的所有需求。那么在产品规格说明阶段,我们的任务是将所有的需求,细化成产品的具体的规格,就比如一个简单的USB转串口线,我们需要确定产品的规格,包括:

1、产品的外观;

2、产品支持的操作系统;

3、产品的接口形式和支持的规范;

等等诸如此类,切记,在形成了产品的规格说明后,在后续的开发过程中,我们必须严格的遵守,没有200%的理由,不能随意更改产品的需求。否则,产品的开发过程必将是一个反复无期的过程。

《产品规格说明》主要从以下方面进行考虑:

1、考虑该产品需要哪些硬件接口;

2、产品用在哪些环境下,要做多大,耗电量如何。如果是消费类产品,还跟设计美观,产品是否便于携带,以确定板子大小的需求,是否防水;

3、产品成本要求;

4、产品性能参数的说明(例如交换机,如果是百兆的速率,用于家庭和一般公司;如果是用于整个省的交换,那设计的速率肯定数十万兆以上了)所以说,产品性能参数的不同,就会影响到我们设计考虑的不同,那么产品的规格自然就不同了;

5、需要适应和符合的国家标准,国际标准,或行业标准。

阶段3:产品总体设计方案

在完成了产品规格说明以后,我们需要针对这一产品,了解当前有哪些可行的方案,通过几个方案进行对比,包括从成本、性能、开发周期、开发难度等多方面进行考虑,最终选择一个最适合自己的产品总体设计方案。

在这一阶段,我们除了确定具体实现的方案外,我们还需要综合考虑,产品开发周期,多少人月的工作量,需要哪些资源或者外部协助,以及开发过程中可能遇到的风险及应对措施,形成整个项目的项目计划,指导我们的整个开发过程。

阶段4:产品概要设计

产品概要设计主要是在总体设计方案的基础上进一步的细化,具体从硬件和软件两方面入手:

硬件模块概要设计

硬件模块概要设计,主要从硬件的角度出发,确认整个系统的架构,并按功能来划分各个模块,确定各个模块的的大概实现。首先要依据我们到底要哪些外围功能以及产品要完成的工作,来进行CPU 选型(注意:CPU一旦确定,那么你的周围硬件电路,就要参考该CPU 厂家提供的方案电路来设计)。然后再根据产品的功能需求选芯片,比如是外接AD还是用片内AD,采用什么样的通讯方式,有什么外部接口,还有最重要的是要考虑电磁兼容。

一般一款CPU 的生存周期是5-8年,你考虑选型的时候要注意,不要选用快停产的CPU,以免出现这样的结局:产品辛辛苦苦开发了1到2 年,刚开发出来,还没赚钱,CPU又停产了,又得要重新开发。很多公司就死在这个上面。

软件模块概要设计

软件模块概要设计阶段,主要是依据系统的要求,将整个系统按功能进行模块划分,定义好各个功能模块之间的接口,以及模块内主要的数据结构等。

阶段5:产品详细设计

硬件模块详细设计

主要是具体的电路图和一些具体要求,包括 PCB和外壳相互设计,尺寸这些参数。接下来,我们就需要依据硬件模块详细设计文档的指导,完成整个硬件的设计。包括原理图、PCB 的绘制。

软件模块详细设计

功能函数接口定义,该函数功能接口完成功能,数据结构,全局变量,完成任务时各个功能函数接口调用流程。在完成了软件模块详细设计以后,就进入具体的编码阶段,在软件模块详细设计的指导下,完成整个系统的软件编码。

一定要注意需要先完成模块详细设计文档以后,软件才进入实际的编码阶段,硬件进入具体的原理图、PCB实现阶段,这样才能尽量在设计之初就考虑周全,避免在设计过程中反复修改。提高开发效率,不要为了图一时之快,没有完成详细设计,就开始实际的设计步骤。

阶段7:产品调试与验证

该阶段主要是调整硬件或代码,修正其中存在的问题和BUG,使之能正常运行,并尽量使产品的功能达到产品需求规格说明要求。

硬件部分:

1、目测加工会得PCB 板是否存在短路,器件是否焊错,或漏焊接;

2、测试各电源对地电阻是否正常;

3、上电,测试电源是否正常;

4、分模块调试硬件模块,可借助示波器、逻辑分析仪等根据。

软件部分:

验证软件单个功能是否实现,验证软件整个产品功能是否实现。

阶段8:测试

功能测试(测试不通过,可能是有 BUG);

压力测试(测试不通过,可能是有BUG 或哪里参数设计不合理);

性能测试(产品性能参数要提炼出来,供将来客户参考,这个就是你的产品特征的一部分);

其他专业测试:包括工业级的测试,例如含抗干扰测试,产品寿命测试,防潮湿测试,高温和低温测试(有的产品有很高的温度或很低的温度工作不正常,甚至停止工作)。

有的设备电子元器件在特殊温度下,参数就会异常,导致整个产品出现故障或失灵现象的出现;有的设备,零下几十度的情况下,根本就启动不了,开不了机;有的设备在高温下,电容或电阻值就会产生物理的变化,这些都会影响到产品的质量。这里要引出一个话题,工业级产品与消费类产品有什么区别呢?工业级的产品就要避免这些异常和特殊问题,有的产品是在很深的海里工作,或者在严寒的山洞工作,或者火热沙漠工作,或者颠簸的设备上,比如汽车;或者是需要防止雷击;所以这就是工业级产品跟消费类产品的区别,消费类的产品就不需要做这么多的测试。

阶段9:产品

通过上一阶段完整测试验证,在此阶段,即得到我们开发成功的产品。在此阶段,可以比较实际的产品和最初的形成的产品规格说明,看经过一个完整的开发过程,是否产品完全符合最初的产品规格说明,又或者,中途发现产品规格说明存在问题,对它进行了多少修改呢?

下面说说嵌入式硬件开发流程,一般分为8 个阶段:

嵌入式产品的硬件形态各异,CPU 从简单的4 位/8 位单片机到32 位的ARM处理器,以及其他专用IC。另外,依据产品的不同需求,外围电路也各不相同。每一次硬件开发过程,都需要依据实际的需求,考虑多方面的因素,选择最合适的方案来。

硬件阶段1:硬件产品需求

和普通的嵌入式产品需求一样。阶段1:产品需求。

硬件阶段2:硬件总体设计方案

一个硬件开发项目,它的需求可能来自很多方面,比如市场产品的需要或性能提升的要求等,因此,作为一个硬件设计人员,我们需要主动去了解各个方面的需求并分析,根据系统所要完成的功能,选择最合适的硬件方案。

在这一阶段,我们需要分析整个系统设计的可行性,包括方案中主要器件的可采购性,产品开发投入,项目开发周期预计,开发风险评估等,并针对开发过程中可能遇到的问题,提前选择应对方案,保证硬件的顺利完成。

硬件阶段3:硬件电路原理图设计

在系统方案确定后,我们即可以开展相关的设计工作,原理设计主要包括系统总体设计和详细设计,最终产生详细的设计文档和硬件原理图。

原理设计和PCB

设计是设计人员最主要的两个工作之一,在原理设计过程中,我们需要规划硬件内部资源,如系统存储空间,以及各个外围电路模块的实现。另外,对系统主要的外围电路,如电源、复位等也需要仔细的考虑,在一些高速设计或特殊应用场合,还需要考虑EMC/EMI等。

电源是保证硬件系统正常工作的基础,设计中要详细的分析:系统能够提供的电源输入;单板需要产生的电源输出;各个电源需要提供的电流大小;电源电路效率;各个电源能够允许的波动范围;整个电源系统需要的上电顺序等等。

为了系统稳定可靠的工作,复位电路的设计也非常重要,如何保证系统不会在外界干扰的情况下异常复位,如何保证在系统运行异常的时候能够及时复位,以及如何合理的复位,才能保证系统完整的复位后,这些也都是我们在原理设计的时候需要考虑的。

同样的,时钟电路的设计也是非常重要的一个方面,一个不好的时钟电路设计,可能会引起通信产品的数据丢包,产生大的EMI,甚至导致系统不稳定。

原理图设计中要有“拿来主义”!现在的芯片厂家一般都可以提供参考设计的原理图,所以要尽量的借助这些资源,在充分理解参考设计的基础上,做一些自己的发挥。

硬件阶段4:PCB图设计

PCB 设计阶段,即是将原理图设计转化为实际的可加工的PCB 线路板,目前主流的PCB设计软件有PADS、Candence 和Protel 几种。

PCB 设计,尤其是高速PCB,需要考虑EMC/EMI,阻抗控制,信号质量等,对PCB设计人员的要求比较高。为了验证设计的PCB 是否符合要求,有的还需要进行PCB 仿真。并依据仿真结果调整PCB的布局布线,完成整个的设计。

硬件阶段5:PCB加工文件制作与PCB打样

PCB 绘制完成以后,在这一阶段,我们需要生成加工厂可识别的加工文件,即常说的光绘文件,将其交给加工厂打样PCB空板。一般1~4 层板可以在一周内完成打样。

硬件阶段6:硬件产品的焊接与调试

在拿到加工厂打样会的 PCB 空板以后,接下来我们,需要检查PCB空板是否和我们设计预期一样,是否存在明显的短路或断痕,检查通过后,则需要将前期采购的元器件和PCB 空板交由生产厂家进行焊接(如果PCB电路不复杂,为了加快速度,也可以直接手工焊接元器件)。

当PCB 已经焊接完成后,在调试PCB之前,一定要先认真检查是否有可见的短路和管脚搭锡等故障,检查是否有元器件型号放置错误,第一脚放置错误,漏装配等问题,然后用万用表测量各个电源到地的电阻,以检查是否有短路,这样可以避免贸然上电后损坏单板。调试的过程中要有平和的心态,遇见问题是非常正常的,要做的就是多做比较和分析,逐步的排除可能的原因,直致最终调试成功。

在硬件调试过程中,需要经常使用到的调试工具有万用表和示波器,逻辑分析仪等,用于测试和观察板内信号电压和信号质量,信号时序是否满足要求。

硬件阶段7:硬件产品测试

当硬件产品调试通过以后,我们需要对照产品产品的需求说明,一项一项进行测试,确认是否符合预期的要求,如果达不到要求,则需要对硬件产品进行调试和修改,直到符合产品需求文明(一般都以需求说明文档作为评判的一句,当然明显的需求说明错误除外)。

硬件阶段8:硬件产品

我们最终开发的硬件成功。一个完整的,完成符合产品需求的硬件产品还不能说明一个成功的产品开发过程,我们还需要按照预定计划,准时高质量的完成,才是一个成功的产品开发过程。 

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 单片机基础及主流厂商一览

    MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机 ,是把CPU的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制,

    昨天
  • 单片机的几种数字滤波算法

    单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。 在单片机进行数据采集时,会遇到数据的随机误差,随机

    前天
  • 故障排查,软件遇到IO异常怎么回事

    软件工程师在调试样板时,遇到这样一个问题,有个按键一直没有反应。他检查了按键IO的配置,确定已经是配置成了输入模式,试了很多遍,都是一样,怎么按按键,都是没有反应。 于是,必需硬件工程师出马。我的排查过程是这样的。 首先,样板断电用万用表的短路

    04-19
  • 智能化交通信号机解决方案

    面向交通信号灯行业,ZLG推出智能化交通信号机解决方案,该方案可大幅提升设备的智能化和道路使用率,改善道路拥堵,打造高效畅通的“智慧交通”。   行业背景 据公安部统计,2020年,全国机动车保有量达3.72亿辆,其中汽车2.81亿辆。百度地图发布的《2020年度

    04-16
  • 单片机如何实现Bootloader?

    去某新能源大厂出了一次差,这次出差是为了升级程序解决Bug,需要给单片机重新烧录.hex文件,用户已经将产品封装起来,无法开盖,只能使用CAN总线来更新程序,用Bootloader实现。其实就是通过上位机把.bin/hex文件以CAN通讯的方式发送给单片机并存储在规定的F

    04-13
  • 单片机应用系统的开发流程

    我们学习单片机的目的就是为了进行嵌入式系统的开发,学好单片机首先要有一个整体认识,下面将简要介绍一下单片机应用系统的开发流程,如图1所示。 图1 单片机系统开发流程 (1)明确任务 分析和了解项目的总体要求,并综合考虑系统使用环境、可靠性要求、可维

    04-12
  • 太经典了!用最少的IO口,扫最多的键

    在做项目(工程)的时候,我们经常要用到比较多的按键,而且IO资源紧张,于是我们就想方设法地在别的模块中节省IO口,好不容易挤出一两个IO口,却发现仍然不够用,实在没办法了就添加一个IC来扫键。一个IC虽然价格不高,但对于大批量生产而且产品利润低的厂家

    03-30
  • 单片机的学习方法和步骤

    注 | 文末留言有福利 作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗? 我想你一定学过,但不一定会运用。 因为学习单片机比学习其他学科需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单

    03-25
  • 单片机内存的分配

    单片机执行指令过程详解 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令

    03-22
  • 几种常用单片机之间的通信方式

    越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。对于莫一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极

    03-17
  • STM32F4的总线架构和STM8的中断控制

    STM32F4的总线架构 总线架构    DMA: Direct Memory Access,直接内存存取。    八条主控总线: Cortex-M4 内核I总线,D总线和S总线; DMA1存储器总线,DMA2存储器总线; DMA2外设总线; 以太网DMA总线; USB OTG HS DMA总线。 七条被控总线: 内部FLASH ICo

    03-17
  • 单片机P0口必须加上上拉电阻?

    在我们刚一开始接触到51单片机的时候对P0口必须加上上拉电阻,否则P0就是高阻态。 对这个问题可能感到疑惑,为什么是高阻态?加上拉电阻?今天针对这一概念进行简单讲解。 高阻态 高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电

    03-15
下载排行榜
更多
广告
X
广告