讲讲国内大部分硬件工程师的成长流程,先是学校里学习模电数电等基础知识,然后出来实习、工作,然后在各种项目中成长为一名合格的硬件工程师。听上去好像没毛病,但想问大家的事是大家有系统性学习如何成为一个硬件工程师吗?学校里有?真的吗?想想大部分人都是在企业实习、工作,正式做硬件产品的过程中成长起来的吧,大公司还好,有系统的流程和培养方式,再结合通过自己不停的碰钉子的过程中成为一名独挡一面的工程师。然而像我们这种一直在小公司呆的人就苦逼了,一直都是野路子,运气又差,又没像样的师傅领进门(有时候有,但在职场上,都忙的要死,谁有空教你,又不是我儿子),大家虽然能干活,但总觉得差些什么,另外自己也经常给自己挖坑跳。所以我想总结下自己的嵌入式硬件开发流程,虽然自己水平水,工作经验也少,但还是要不要脸的写下来,要有这种多分享的氛围,以后的人才能轻松点。也希望大家帮忙补充,添砖添瓦。
因为不同公司有自己的一套开发流程,没有哪套硬件开发流程是适应所以公司的,所以大家都选择自己喜欢的方式,这里我分享最近一位老同学教我的,适应嵌入式硬件开发。总流程呢?大致的需求分析——总的方案选型——细化的需求分析——硬件板各个功能实现方案(各种芯片选型对比)——独立功能测试验证——软件规划和主CPU引脚功能分配——嵌入式硬件原理图设计——BOM表单(有些器件提前购买,确定封装)——画PCB板——打样——测试——测试——程序调试——测试——后面大堆工作,不说了。整个过程中,都要留对应的文档,另外,测试是贯彻整个流程的。虽然按流程做事很没效率,很烦,但只有按流程做才不容易出错!!!同时不会累,按部就班,也比不按流程更有效率(减少出问题排错时间)。
下面开始介绍步骤,这里以一个电机驱控一体板项目为例,另外,每个步骤的完成标志是对应的文档列表出来!!!同时要有一个贯穿这个设计流程的日记文档,用于记录问题和提醒事项,并标注日期。有个不好意思的地方,就是我这边好多东西没有具体告诉你为什么这么做理由,只是比较命令式的说,主要是由于我懒得去说明了,没道理的地方欢迎大家指出。
大致的需求分析
大致需求分析这里是要确定你的项目需要满足的最低功能要求,比如做电机的驱控一体板,这时我需要把我的需要的功能大致1、2、3……的列个表出来,如下图,然后找你的上级确认,很多时候你的上级只是口头跟你说下要做什么,具体的需要你花时间理清楚,再通过纸面文件确认,确保有效沟通。细化的需求分析
这个时候的需求分析就不是一般的需求分析了,比较像总体设计规划,这时候整个电路板的设计都具大致雏形了,你这时候需要细化选什么主控芯片,每个功能模块用什么电路芯片去实现它,不断对比不同方案去满足功能需求,优先选以前用过的方案,以及市面上常用方案,这个阶段需要考虑的事非常多,涉及成本,整个板的性能指标等等,考虑的面很广,其实这里我把前面列举的硬件功能模块实现合在一起了,主要是这两步好多时候是一起做了。还是以那个电机驱控板举例,这时候要列一个表出来,细化每个功能模块。独立功能验证
有些你没把握的功能电路,可以事先通过仿真软件或者搭建简单模块电路的方式去验证它,实在没条件的话,可以写下注意点,在原理图设计的时候多预留电阻电容做测试。
IO口规划
由于做的是嵌入式硬件项目,主控芯片一般都要大量IO口,每个IO口怎么使用,可以让软件工程师列个IO口使用列表出来,要是软件也你自己写的话,那么就自己列一个IO口使用的EXCEL表出来,有些人觉得板子功能简单IO口使用哪里顺就哪里规划来,设计原理图的时候一起,这样是不好的,很容易疏漏,到时就慢慢跳线吧。
原理图设计BOM清单PCB板Layout
我比较喜欢用orcad+pads来画板,这里强调我,主要是哪个工具软件顺手就推荐你用哪个,工具没有好坏,顺手就行,这里有最多的多经验总结,由于太晚想睡觉了,推荐大家网上论坛找资料看,比如华为硬件工程师什么,大家自己去看就行了,不然你来写。有些要注意的是BOM的清单要写详细来,方便自己公司采购,不会购买错器件,另外选常用器件,器件类型尽量少,这时候要确定好来,别有些器件国外进口,等大半个月时间就不好了,或者要不退市的东西就别选了,这时候很多东西还是好修改的,抓紧修改原理图,Layout规则根据你选的做板厂家设计,快板可以推荐华强PCB啦,嘉利创啦……不多说了,希望哪个大哥这块可以多教教我。
打样测试
第一版出来后推荐自己焊接板子,这样你也可以从中知道些自己设计不是很好的地方,尤其是生产那块的,当然没时间有小弟,让小弟多学习吧。测试的话,我也没什么好的经验,希望哪位大哥,嗯哼……
后面的大堆工作步骤
好想睡觉,谁来帮忙写呗……