1.什么是硬件?
软件代码也是人编写的,我们所熟知的语言比如C、C++等都是通过编译器翻译成汇编语言,然后汇编语言通过汇编器翻译成二进制机器语言,机器语言操控门电路完成相应的动作。个人觉得,没有硬件,软件就没有存在的意义,硬件是一切的基础,这里可以看出硬件设计是多重要。
但软件和硬件又有明显的区分,至少工作内容区别很大。按照行业内描述硬件属于底层(一般称为底层硬件),软件称为上层(软件又分为:底层驱动、上层业务以及应用层等)。如果非要举个例子来说明软件和硬件, 那最好的例子就是人,硬件指人的躯体,而软件指人的思维。
2.什么是硬件设计?
一般来说硬件设计指的是电路设计,这样说是没问题的,因为你所有的工作都是围绕电路设计,最终的目标也是产出一个优秀的电路,能够满足各种要求,经历各种考验。但实际上我们要求的是产品,而不是单板。
网上有一篇文章讲的挺好:"硬件设计就是根据产品经理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前业界成熟的芯片方案或者技术,在规定时间内完成符合:
PRS功能(Function)
性能(perrformance)
电源设计(power Supply)
功耗(power Consumption)
散热(Thermal/Cooling)
噪音(Noise)
信号完整性(Signal Integrity),
电磁辐射(EMC/EMI)
安规(Safet)
器件采购(Component Sourcing)
可靠性(Reliability)
可测试性(DFT: design for test)
可生产性(DFM:design for manufacture)
等上述要求的硬件产品(注意:是产品不是开发板)。可以看到,一个成功的硬件设计,主要功能的实现只是所有环节中的一小部分。刚开始工作的时候,觉得板子电路设计完就完成了50%工作,PCB回板主要功能都能实现了,那就完成了80%的工作。实际上不是的,PCB回板主要功能都实现了,连30%工作都没有。所以不管是时间上,还是阶段上,产品的硬件设计时一个漫长过程。
3.什么是硬件电路设计?
顾名思义,硬件电路设计就是设计电路的,能够熟练使用cadence绘制电路与查看PCB。硬件设计中的电路设计是HWE最重要的职责。电路设计考验的是HWE的设计基本功,即对一些硬件器件的理解以及灵活应用,比如:
CPU
电阻,电容,电感,
二极管,三极管,
保护器件,接口器件,
逻辑芯片,逻辑功能,
小芯片
电源
因为本人是EMC专业毕业,所以对设计时考虑的东西深有感触,我们上述讨论的硬件设计的13条东西都应该在设计时候考虑,目前大公司的各种流程保证了设计时各部门的联动,还是很好的。
每个公司都会有自己的硬件电路设计规范,这个需要自己好好去看一下,并用在实践中。硬件电路设计主要针对电路设计,里面涉及的东西比较多,对电路模块的设计后面会有单独的章节讨论。硬件电路设计需要足够的经验与理论知识。
4.硬件设计开发流程
硬件部门开发流程指定后,需要硬件部门人员严格按照开发流程完成开发工作。硬件部开发流程主要分为如下几个步骤
1) 市场调研
对即将进行的项目,需要进行市场调研。市
2) 立项
市场调研完成后后,首先需要进行立项工作。
3) 硬件总体设计
项目立项后,需要进行硬件总体设计。
4) 核心器件的实验及分模块的详细设计
总体设计完成后,需对核心器件进行实验并且开始进行分模块设计方案。
5) 电路、程序及外壳设计
核心器件的实验及分模块的详细设计完成后,进行电路、程序及外壳设计。电路、程序及外壳设计按照项目设。
6) 系统联调
每个分块部分调试完成后,即可进行系统联调。
7) 内部审核、项目验收
系统联调完成后,项目即可进行内部审核、项目验收。
5.硬件工程师的职责
一个硬件产品的研发流程,如下图所示:
公司内的所有岗位都同等重要的。虽然各团队的重要性一致的,但研发团队在产品开发中的位置应该更加核心。研发人员可以转去做市场、测试、供应链或者质量管理等,但市场等岗位的人却很难转做研发。一来研发门槛高,二来研发工作接触面广。而在整个研发团队中,硬件工程师做主导作用。
一般情况下我们所说的研发不仅仅局限于软件硬件,而是整个项目组,这里包括基本上所有部门的产品负责人。
而硬件工程师在研发团队中是重要的一员,硬件产品的研发团队可以如下图所示:
当然上图中所展示的并不完全,比如热设计也是非常重要的一员。但需要说明的是,在整个项目研发团队中,有两个人和所有人打交道,一个就是项目经理,另一个就是硬件工程师。硬件工程师需要和各种研发人员打交道 、协调工作,这也要求硬件工程师具有丰富的知识面和强大的协调能力。
硬件工程师的本职工作,如下图所示:
硬件工程师可以大致分为如下四个阶段:
初级硬件工程师
在别人的指导下完成阶段三、四的部分,这个是应届毕业生入职三个月基本可以达到。
普通的硬件工程师
独立完成阶段三、四的工作,一般工作1到2年即可。
资深的硬件工程师
主导完成阶段三、四的工作,参与完成阶段二总体设计的工作。
专家级硬件工程师
主导完成阶段一、二的工作。
作为一个硬件工程师,负责整个产品的研发过程。所以必须对每个时间段进行精确把握。项目都会有项目周期,虽然项目经理在把控时间,但具体的操作还是硬件工程师来搞。因为本人只是处于阶段三,对阶段二、一没什么时间概念,对于正常进度的项目来说:
原理图和详细设计方案:5周,包括参考设计以及原理图评审。
PCB布板布线:4周,包括配合结构、PCB进行电路调整或者器件重新选型。
发板及等待回板:2周,这两周是最闲的,发板同时必须完成BOM上传,这个不能忘。多看自己的图!
回板检查:1周,将自己的板子跑起来,能烧录uboot,网口能ping通。检查有无焊接问题。联系结构进行机器组装,查看结构有没有问题。
驱动调试:5周,配合完成所有底层功能的调试。
媒体版本:2周,这个是驱动调试之后第一个整机跑起来的版本,准备拿给测试进行测试。
信号测试:3周,配合信号测试人员完成信号测试。同时给做业务研发人员准备板子给他们研发。
功能测试:2周,配合功能测试人员完成环境测试,防护静电浪涌测试,以及其他功能测试,EMC测试等。
解BUG等待:2周,解决上述出现的所有BUG!
改板与发板:2周。
具体时间会随着产品的复杂程度而变化,上述只是本人了解的大致时间=,不能一概而论。
硬件工程师的本质工作
目标:产品零缺陷
过程:设计电路、解BUG、部门沟通交流。
能力:主要集中在解BUG能力。
结果:一个字-------忙!!!!
硬件工程师基本素质与技术:
这里给出华为硬件工程师手册中的定位,看起来还是不错的。
6.硬件工程师的素质
沟通能力
要有逻辑,想法要全面点,这样才能与其他部门人员好好沟通,说不清会导致吵架!!
性格温和
因为你会和所有部门交流,不要拉着脸,也不要命令式的,性格偏激会导致吵架!!
谦虚谨慎
别人的意见即使不采纳也要倾听,然后说出自己的见解与原因,一意孤行会导致吵架!!
认真仔细
设计电路要认真仔细,解BUG要认真仔细,因为一旦出问题这个责任只有自己背!!
要有耐心
不论是沟通还是解BUG还是检查电路,一定要有耐心!
不会就问
不会的东西就问,因为产品开发时间比较短,不可能给你大把时间去研究!!
有责任心
对电路负责,对产品负责,对BUG负责!!
分清主次
出了问题要先想怎样去解决问题,而不是先去追究谁的责任!!
乐善好学
善于帮助别人,善于学习,必须有扎实的经验知识与理论知识!!!