嵌入式开发,从开发板到产品的过程是什么样的?_开发板如何转化成产品模型
编者按:当一个项目做完的时候,如果客户突然又增加需求,增加功能,将导致你的项目周期严重拖延,成本剧烈上升,并且测试好的产品可能要全部重新测试,原本的设计可能将不会满足当前的要求,所以做项目之前,最好要跟客户把需求确定下来,并且签定一份协议,否则,你辛苦多少个日日夜夜,得到的将是一个无法收拾的烂摊子!在这一阶段,我们除了确定具体实现的方案外,我们还需要综合考虑,产品开发周期,多少人月的工作量,需要哪
举个例子说:我在51单片机上完成了一个四轴飞行器,那我总不能把整个开发板吊在一个飞行器架子下面吧?应该是要取出某个含有控制代码的芯片,然后焊接到自己设计的一个电路板上最后成为产品的吧?
开发板到产品之间的这个过程具体是怎么样的呢?
现在有的人玩嵌入式,纯粹就是用开发板来做设备(注意是设备而不是产品)。就像你说的直接把开发板放到四轴飞行器上,三四年前就看到有人这么干了。(纯粹是自己DIY的,用着玩的)
但在产品开发上,工程师一般不会使用开发板。而是直接根据芯片DATASHEET,以及过往的设计经验直接设计出最小电路及其外扩电路(就是自己做个电路板出来)。
开发板其实就是一个MCU的最小电路外加部分外设功能电路(如串口、以太网等)。目的是让初学该MCU芯片的人能迅速掌握其芯片原理和使用方法,或者是简单的用开发板来验证一下MCU芯片的IO和外扩电路的接口情况是否能满足系统要求,或是验证一下程序的可行性。
一旦验证了工程师自己设计的外接扩展电路/程序的可行性后,将重新设计一款PCB电路。然后是去投板打样,另外买一颗同样的芯片焊到自己设计的的PCB样板上,把程序烧进去。而不是把开发板上的芯片弄下来。
PS,一般要自己做PCB的话,都不会去买开发板来做前期验证的事情,因为网上就能找到大把的芯片最小电路图,自己画一个焊一个就是了,没必要买开发板。
我做这么久51系列/PIC系列/TIdsp2xxx系列/ARM系列等芯片都用过一些,没用过开发板。只因FPGA芯片是BGA封装,没有机器焊接才买了块Altera的开发板。
上面各位的回答综合起来已经比较完善了。考虑到题主应该是没有经历过一个真正的产品的生命周期,我再补充一点这方面我所知道的。
以独立、从头开发一个产品,以卖钱为目的的公司举例,并假设全部流程和人员都在一个公司内完成。不考虑学校的各种实验、比赛、毕设或者基于个人兴趣等实践。不考虑在公版硬件和模具上开发,不考虑部分工作外包。
一个公司无论大小,人员多少,是否有专设的部门,以下工作流程或者人员是不能少的(也许人员方面会有重叠,比如既做需求又写代码):
\1. 市场、销售人员调研市场,收集需求,反馈给产品部门;
\2. 产品工程师设计产品,提出详细的需求;
\3. 相关人员对产品需求进行评审,从可行性、实现难度、时间周期、成本、市场预期等方面提出意见,可能有多轮评审,决定是否对这个产品立项。评审可以通过开会、面对面讨论、邮件讨论等方式进行。
\4. 项目立项后,指定项目经理,以及项目组成员,成员组成一般有:
产品工程师:向其他成员解释需求细则,需求需要变更时最终决策者;
硬件工程师:芯片方案选型、电路图绘制;
软件工程师:各个层次软件实现;
结构工程师:产品除电路板外各个部件、外壳设计,怎么卡到一起的;
工业设计工程师:产品整体造型、色彩、强度等等,用什么材料,光的还是磨砂的,等等;
测试工程师:跌落、扭曲、使用寿命、放电、磁场、各种温度湿度条件,软件功能,软件稳定性等;
美工人员:软件实现中需要的各种图片,开机logo,软件界面,主题等;
数据内容负责人:产品需要的数据或者内置的数据文件的搜集、整理、制作,如图片、音乐、视频、电子书等;
外包装设计人员:纸盒、礼品袋等;
文案负责人:包装上的说明,广告语,网站上的产品介绍文案。
芯片方案选型结束后,软件工程师可以选择使用开发板或者芯片原厂提供的参考板,或者等待硬件工程师自己开发新硬件,进行前期关键技术点开发验证。
开发板或者参考板上的外设和接口,跟产品的需求比起来,或者多了,或者少了。基于成本和开发周期的考虑,一般都需要硬件工程师重新设计新的电路板。但也不排除开发板或者参考板跟目标产品硬件很接近,或者需要尽快验证尽快开发完成上市,直接使用开发板或者参考板硬件。
工作中:
硬件、结构、工业设计需要密切配合,以避免电路板和外壳装不到一起,不能严丝合缝,螺丝孔错位等问题。
硬件、软件需要密切配合,调试驱动。
软件、美工、数据、测试需要配合好。
开发到一定阶段,会进行各兵种阅兵彩排,来一次小批量的工程样机,验证可能存在的问题,及时纠正。依据工程样机的质量,可能会在正式生产之前再进行一两次数量稍大点的试产。最后,在硬件、结构、工业设计没有大的问题,软件需求基本实现和稳定,剩余问题可以通过方便的软件升级后续解决的情况下,就可以提交到流水线上安排批量生产了。
作为一个大三狗来用一个刚给老师做完的东西的例子作为补充吧
1.大致说明,一个基站供电监控的项目,其核心是用24L01进行相互通信,收发关键数据。最后通过GPRS发送数据至上位机监控软件~
OK,首先,让我们看看这个小东西,硬件设计,驱动(单片机软件编写),上位机软件开发。
(1)硬件设计
硬件设计,包含了这样几部分
- 功能设计,包含电路铺设以及芯片选型。首先确定你自己需要的功能,然后根据成本选择所对应的芯片,最基本的原则是(个人理解,整体硬件是我搭档在做):第一,尽可能的使用每一个IO口,第二,尽可能的使成本降低。在这个地方,我搭档介于成本和IO口等综合考虑,选定STC15W404AS和STC15F2K60S2作为主控芯片。接下来便进行整体布线,修改,PCB提交厂商的工作(因为量大,一套系统算上主控芯片在内52组,学校无法完成制版)。
- 测试电路设计,在这个项目中,因为没有使用高精度AD/DA转换芯片,利用单片机完成AD采样,可能存在一定的不确定电压漂移,所以必须予以矫正,因此,需要制作标准电压板进行矫正参数的测量与计算。在其他项目中,会存在其他的特殊功能的测试,需要设计特殊的测试电路。
- 硬件电路修改,在从厂商处获得成品,开始进行测试,因为在前期会存在一定设计缺陷,所以在软件与硬件测试完成后,进行修改,并在此发往厂商处制板。在这个小东西中,大的改板两次。在正规公司的的项目开发工程中,这数字可能会X10。
- 终板电路测试与交付,在从厂商处获得最终的定板后,测试,测试无误后,将定板封存与PCB资料,芯片DataSheet,前期测试板一并交付。
(2)软件设计
软件设计,包含这样几个部分
- 功能设计与论证,因为不同的项目在最开始时,只能进行一个大概的评估,并不能保证完全的可行,因此,需要编写测试用例,确认方案是否可行(这可能是你以前涉及过得芯片或者知识,也可能是全新的芯片),例如在这次,官方的DataSheet显示,24L01只能最多1对6通信,但是我们需要1对24通信。曾一度以为不能行,但是在经过测试以后,发现24L01 1对24的通信也是完全可行的。。。
- 代码编写。着就不多说了。。。
- 单元测试,在每一个部分的代码编写完成后,必须对这部分的代码进行完整测试,以确保功能正常运行。
- 整合测试,在项目的硬件板发回后,将代码上机测试,这个过程中,可能会出现功能异常,可能是代码编写过程中之前没有测试到的情况,也可能是硬件之出设计的失误。分别记录,并予以反馈,修改。
- 极端情况测试,因为这次做的东西,要求不间断的监控电池的情况,也就是说针对稳定性要求较高,因此专门针对不同的情况下冗机,硬件失灵等情况进行测试,确保能保证一定的额稳定性。
- 代码修改与交付。在测试完成后,将代码修改,清除测试期所加入的测试与调试语句,并且形成最终说明文档,与测试文档,单元驱动代码一并封存并交付。
其实嵌入式是一个很大的领域,我们每一个人穷尽一生也不可能通识,所以用自己很小的一点很稚嫩的经历贡献出来,希望能帮到题主。
在经过市场分析、调研,产品定位,确定产品使用的ARM嵌入式平台以及软硬件基本设计之后,有些工程师会选择一款基本功能符合的现成开发板进行前期的功能测试,确定产品设计的可行性。开发板供应商基本上都会提供参考设计的底板原理图,系统源码、驱动源码以及测试源码等资料,所以可以借助这些资源,在充分理解参考设计的基础上,进行二次开发。开发板不一定是产品开发过程中的必要环节,但是可以加快产品开发,缩短产品上市周期。
嵌入式产品开发的过程主要有:
第一步:系统需求分析;
第二步:体系结构设计;
第三步:软硬件协同设计;
第四步:系统集成;
第五步:系统测试
第六步:形成产品
下面分享一篇关于嵌入式产品开发流程,非常详尽。
【转载】嵌入式产品开发流程
嵌入式产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细设计到最后产品完成的过程。但是,与普通电子产品相比,嵌入式产品的开发流程又有其特殊之处。它包含嵌入式软件和嵌入式硬件两大部分,针对嵌入式硬件和软件的开发,在普通的电子产品开发过程中,是不需要涉及的。嵌入式产品的研发流程具体如下图:
下面,针对嵌入式产品的开发过程中的各个阶段,我们进行详细探讨。
阶段1:产品需求
在这一个阶段,我们需要弄清楚的是产品的需求从何而来,一个成功的产品,我们需要满足
哪些需求。只有需求明确了,我们的产品开发目标才能明确。在产品需求分析阶段,我们可以通过以下这些途径获取产品需求:
1)市场分析与调研,主要是看市场有什么需求,还有就是前沿的技术是什么(站在做一款产
品的角度);
2)客户调研和用户定位,从市场广大客户那获取最准确的产品需求(要注意分析市场,产
品生命周期,升级是否方便—求是猫补充);
3)利润导向(成本预算);
3)如果是外包项目,则需要我们的客户提供产品的需求(直接从客户那获取,让客户签协
议-求是猫补充);
编者按:当一个项目做完的时候,如果客户突然又增加需求,增加功能,将导致你的项目周期严重拖延,成本剧烈上升,并且测试好的产品可能要全部重新测试,原本的设计可能将不会满足当前的要求,所以做项目之前,最好要跟客户把需求确定下来,并且签定一份协议,否则,你辛苦多少个日日夜夜,得到的将是一个无法收拾的烂摊子!
阶段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,使之能正常运行,并尽量使产品的功能达到产品需求规格说明要求。
更多推荐
所有评论(0)