你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

嵌入式产品的开发过程中的各个阶段

[复制链接]
gaosmile 发布时间:2020-7-31 22:14
嵌入式产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细设计到最后产品完成的过程。
6 l6 Q. v, [5 U" N9 W但是,与普通电子产品相比,嵌入式产品的开发流程又有其特殊之处。它包含嵌入式软件和嵌入式硬件两大部分,针对嵌入式硬件和软件的开发,在普通的电子产品开发过程中,是不需要涉及的。嵌入式产品的研发流程具体如下图:4 A* Y' E7 {: L1 c2 ~5 F
微信图片_20200731221317.jpg ( C  @9 {9 G: c. z) h* z% h5 X
下面,针对嵌入式产品的开发过程中的各个阶段,我们进行详细探讨。
$ o8 y9 Z6 b; O" |/ k' l$ m; X  ]5 E
No.1
产品需求
; \% f# P- d! P6 d5 r
在这一个阶段,我们需要弄清楚的是产品的需求从何而来,一个成功的产品,我们需要满足哪些需求。只有需求明确了,我们的产品开发目标才能明确。在产品需求分析阶段,我们可以通过以下这些途径获取产品需求:     
, e7 l: A# c6 O3 C1)市场分析与调研,主要是看市场有什么需求,还有就是前沿的技术是什么(站在做一款产品的角度);
6 s6 J* f/ X% `; o1 u2)客户调研和用户定位,从市场广大客户那获取最准确的产品需求(要注意分析市场,产品生命周期,升级是否方便);% Y2 y; ]% U8 h6 ~  k* C8 \
3)利润导向(成本预算);
3 [/ ~2 N2 B  e" f4)如果是外包项目,则需要我们的客户提供产品的需求(直接从客户那获取,让客户签协议);4 `+ L: _% u1 U5 e8 B
当一个项目做完的时候,如果客户突然又增加需求,增加功能,将导致你的项目周期严重拖延,成本剧烈上升,并且测试好的产品可能要全部重新测试,原本的设计可能将不会满足当前的要求,所以做项目之前,最好要跟客户把需求确定下来,并且签定一份协议,否则,你辛苦多少个日日夜夜,得到的将是一个无法收拾的烂摊子!
6 |( w( q8 X) ^% n, r3 S' ?
No.2
产品规格说明
; N2 H% {; u4 B
在前一个阶段,我们搜集了产品的所有需求。那么在产品规格说明阶段,我们的任务是将所有的需求,细化成产品的具体的规格,就比如一个简单的USB转串口线,我们需要确定产品的规格,包括:
7 J% I& \; W- O1)产品的外观;0 o  ~8 S# |. O: r; M2 C' x
2)产品支持的操作系统;
5 f& q/ h  s' i' J  m3 D* u6 Q3)产品的接口形式和支持的规范;
6 o  U2 B9 T0 @' L4 G$ |% e等等诸如此类,切记,在形成了产品的规格说明后,在后续的开发过程中,我们必须严格的遵守,没有200%的理由,不能随意更改产品的需求。否则,产品的开发过程必将是一个反复无期的过程。
" v! {; F7 X  x1 C; U6 _( s《产品规格说明》主要从以下方面进行考虑:0 t- T5 }$ W0 w; ~+ g: B" g- T
1)考虑该产品需要哪些硬件接口;% l. n2 P0 U) M  N1 p
2)产品用在哪些环境下,要做多大,耗电量如何。如果是消费类产品,还跟设计美观,产品是否便于携带,以确定板子大小的需求,是否防水;! `: f, j" s. J" Q& g; r( p' }% n0 K! i
3)产品成本要求;0 I$ S9 E) E% o1 H+ x! ]8 W/ @
4)产品性能参数的说明(例如交换机,如果是百兆的速率,用于家庭和一般公司;如果是用于整个省的交换,那设计的速率肯定数十万兆以上了)所以说,产品性能参数的不同,就会影响到我们设计考虑的不同,那么产品的规格自然就不同了;
2 O; S& V. L3 P2 _* U# k$ h5)需要适应和符合的国家标准,国际标准,或行业标准;# [/ \# W2 T  `* ?0 Z9 i: i2 `& f  V
No.3
产品方案设计

7 S8 @+ ]: r& D: T& n
在完成了产品规格说明以后,我们需要针对这一产品,了解当前有哪些可行的方案,通过几个方案进行对比,包括从成本、性能、开发周期、开发难度等多方面进行考虑,最终选择一个最适合自己的产品总体设计方案。
8 ?: ^7 p" n  L& G& g! M; E/ h在这一阶段,我们除了确定具体实现的方案外,我们还需要综合考虑,产品开发周期,多少人月的工作量,需要哪些资源或者外部协助,以及开发过程中可能遇到的风险及应对措施,形成整个项目的项目计划,指导我们的整个开发过程。
) j, k+ x; D. X4 y0 n0 G% G; y6 Q: c- }, a  |
No.4
产品概要设计
! |; U  b. Y. i& C
产品概要设计主要是在总体设计方案的基础上进一步的细化,具体从硬件和软件两方面入手:
) _4 @3 l# _, R+ E; @1 A, ~2 b0 |
' k- T% J, J& C" `& Z* a% O* n3 f
硬件模块概要设计
# H! i7 t' u. _1 i
硬件模块概要设计,主要从硬件的角度出发,确认整个系统的架构,并按功能来划分各个模块,确定各个模块的的大概实现。首先要依据我们到底要哪些外围功能以及产品要完成的工作,来进行CPU选型(注意:CPU一旦确定,那么你的周围硬件电路,就要参考该CPU厂家提供的方案电路来设计)。然后再根据产品的功能需求选芯片,比如是外接AD还是用片内AD,采用什么样的通讯方式,有什么外部接口,还有最重要的是要考虑电磁兼容。) d" b- ~3 ~7 Y4 G
一般一款CPU 的生存周期是5-8年,你考虑选型的时候要注意,不要选用快停产的CPU,以免出现这样的结局:产品辛辛苦苦开发了1到2 年,刚开发出来,还没赚钱,CPU又停产了,又得要重新开发。很多公司就死在这个上面。
" |1 W4 k/ w6 E, k
软件模块概要设计

7 L1 A- \* }$ `# R+ S软件模块概要设计阶段,主要是依据系统的要求,将整个系统按功能进行模块划分,定义好各个功能模块之间的接口,以及模块内主要的数据结构等。
0 |* v' z! i5 j4 v" k% Z# [5 h
No.5
产品详细设计

; `2 {% l: ^/ Q. H' N8 Z硬件模块详细设计:主要是具体的电路图和一些具体要求,包括 PCB和外壳相互设计,尺寸这些参数。接下来,我们就需要依据硬件模块详细设计文档的指导,完成整个硬件的设计。包括原理图、PCB的绘制。
1 Z: }& g' p, T$ M3 m软件模块详细设计:功能函数接口定义,该函数功能接口完成功能,数据结构,全局变量,完成任务时各个功能函数接口调用流程。在完成了软件模块详细设计以后,就进入具体的编码阶段,在软件模块详细设计的指导下 ,完成整个系统的软件编码。
& W6 M6 [) ^! m0 `" A; X; i+ X一定要注意需要先完成模块详细设计文档以后,软件才进入实际的编码阶段,硬件进入具体的原理图、PCB实现阶段,这样才能尽量在设计之初就考虑周全,避免在设计过程中反复修改。提高开发效率,不要为了图一时之快,没有完成详细设计,就开始实际的设计步骤。4 G4 E( I2 z) p9 C8 j) D1 A
No.6
产品调试与验证

, h5 k0 ?) Q1 s$ b5 y8 B% J该阶段主要是调整硬件或代码,修正其中存在的问题和BUG,使之能正常运行,并尽量使产品的功能达到产品需求规格说明要求。
" @8 K' }0 v2 w% n, Y4 ~
* D+ z$ X. x  w# L* q- T1 L
硬件部分:
! f9 |8 X2 N4 [% h5 u
1)目测加工会得PCB板是否存在短路,器件是否焊错,或漏焊接;; I$ [2 I# Y' {2 ?
2)测试各电源对地电阻是否正常;
9 s- O5 @; K2 }* g: N3)上电,测试电源是否正常;5 Q( p% d* \5 A9 d
4)分模块调试硬件模块,可借助示波器、逻辑分析仪等根据。
# P( m! O# S3 c5 y1 \. u
软件部分:
4 b6 d) L# m9 l( _0 a
验证软件单个功能是否实现,验证软件整个产品功能是否实现。# b( p7 j6 u; j: I  A) j* `( }
No.7
产品测试

/ }) s4 I4 ~1 }3 R5 k功能测试(测试不通过,可能是有BUG);
3 W3 L8 P+ m/ L; K5 ?  V+ S" \9 {, E- G/ y! e9 Y
压力测试(测试不通过,可能是有BUG或哪里参数设计不合理);
  }% K' P: I5 ]* o9 l. Y. S性能测试(产品性能参数要提炼出来,供将来客户参考,这个就是你的产品特征的一部分);
) e" W' Z4 E! V3 v8 M: b8 p2 P1 N其他专业测试:包括工业级的测试,例如含抗干扰测试,产品寿命测试,防潮湿测试,高温和低温测试(有的产品有很高的温度或很低的温度工作不正常,甚至停止工作)。
: u! g* p# u0 x5 E$ ]* E; |+ u有的设备电子元器件在特殊温度下,参数就会异常,导致整个产品出现故障或失灵现象的出现;有的设备,零下几十度的情况下,根本就启动不了,开不了机;有的设备在高温下,电容或电阻值就会产生物理的变化,这些都会影响到产品的质量。这里要引出一个话题,工业级产品与消费类产品有什么区别呢?" g, u7 F6 w- a' {2 E" u7 n& y
工业级的产品就要避免这些异常和特殊问题,有的产品是在很深的海里工作,或者在严寒的山洞工作,或者火热沙漠工作,或者颠簸的设备上,比如汽车;或者是需要防止雷击;所以这就是工业级产品跟消费类产品的区别,消费类的产品就不需要做这么多的测试。+ i5 u8 T1 H/ U
No.8
产品完成
9 C$ z# [: i. w/ u- g9 c: @/ n/ o
通过上一阶段完整测试验证,在此阶段,即得到我们开发成功的产品。在此阶段,可以比较实际的产品和最初的形成的产品规格说明,看经过一个完整的开发过程,是否产品完全符合最初的产品规格说明,又或者,中途发现产品规格说明存在问题,对它进行了多少修改。: G' U0 M9 F1 \, B/ n2 I
1 P& M! \8 v! d9 k
收藏 评论0 发布时间:2020-7-31 22:14

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版