硬件工程师前途到底怎样
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,出原因,排除故障。”
项目经理托着腮帮子邪魅一笑:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
这时,软件工程师不慌不忙地说出了一句让硬件工程师和项目经理都喷饭的话:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生...”
<段子归段子,但基于不同的职业习惯,我们大概可以从中看出硬件工程师、项目经理以及软件工程师这三者在工作上分别扮演着什么样的角,也就是所谓的职能分工。
不过扎心的是,跟软件工程师比起来,硬件工程师的前景似乎不怎么被人看好。
网上总是不乏“硬件不如软件吃香”、“硬件干活多、待遇低、门槛高”、“十年硬件转IT,真香!”...等诸如此类的言论。由于硬件工程师做的事情多且杂,更是惨被戏称为“高级杂工”。
事实真是如此?搞硬件就真的这么苦逼?没有什么发展前景?看看资深硬件工程师怎么说!
先来了解一下:什么是硬件?
百度百科上是这么介绍硬件的:"硬件(英文名Hardware),是计算机硬件的简称(中国大陆及香港用语,台湾作硬体),是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。"
也就是说硬件是物理层面的,至少是你能看得到摸得着的东西,它是一种物质载体,物质基础。广义来说人类都是生活在物质基础之上,你可以把所有你能看到的东西都统称为硬件。当然狭义来说,一般我们所说的软件和硬件指的是电子领域的。
软件代码也是人编写的,我们所熟知的语言比如C、C++等都是通过编译器翻译成汇编语言,然后汇编语言通过汇编器翻译成二进制机器语言,机器语言操控门电路完成相应的动作。个人觉得,没有硬件,软件就没有存在的意义,硬件是一切的基础,这里可以看出硬件设计是多重要。
但软件和硬件又有明显的区分,至少工作内容区别很大。按照行业内描述硬件属于底层(一般称为底层硬件),软件称为上层(软件又分为:底层驱动、上层业务以及应用层等)。如果非要举个例子来说明软件和硬件,那最好的例子就是人,硬件指人的躯体,而软件指人的思维。
当然,对于非电子领域的人来说,很难想明白计算机是怎么工作的,硬件是怎样工作的,软件是怎样工作的,即使你知道都是0和1,但你没做过相关工作,你发现不了其中的神奇之处。
其实你只要知道,软件驱动硬件工作,驱动的激励是什么?是电讯号!硬件接收到的这个电讯号分为0和1,硬件的响应速度非常快,多快呢?举个例子,硬件中常用的串口波特率115200bit per second,一秒钟115200个0或者1,英语字母是8个bit(可在ASCII表看到,这在大学都学过),那就是一秒钟可打印14400个字母。你眨下眼睛一万多个字母就出来了。当然实际上并没有这么多,这只是个形象的例子。
但在电路设计上100kHz属于比较慢的速率了。再比如显示器一幅图的刷新频率在一秒钟24个以上,我们人眼就看不出来。24帧的数据是非常大的,比如1080p30格式输出,总的数据量是一秒钟1920*1080*12*30= 746496000个0或者1,也就是7亿个0或者1。
一般来说硬件设计指的是电路设计,这样说是没问题的,因为你所有的工作都是围绕电路设计,最终的目标也是产出一个优秀的电路,能够满足各种要求,经历各种考验。但实际上我们要求的是产品,而不是单板。
硬件工程师干什么?
硬件工程师(Hardware Engineer)主要负责整个产品的硬件设计。
一个优秀的硬件工程师,不仅需要从外界交流获取对自己设计的需求,然后汇总,分析成具体的硬件
实现。还要跟众多的芯片和方案供应商联系,从中挑选出合适的方案。当原理图完成后,则需要组织人员进行配合评审和检查,还要和CAD工程师一起工作来完成的设计。
与此同时,要准备好BOM清单,开始采购和准备物料,联系加工厂家完成贴装工序。
除了基本理论知识过硬,熟练掌握硬件原理图设计技术、硬件PCB图设计、硬件调试之外,还要必备快速学习能力、通信协议和标准的理解、电路设计的能力、沟通和全局控制的能力,物料选型能力、采购能力等等,甚至上到工科理论经济形势,下到历史政治文化科技,都要懂一点。
通过下面一张硬件产品研发团队的构成图,大概就能明白硬件工程师在整个研发团队中扮演着多么重要的角了:
需要说明的是,在整个项目研发团队中,有两个人和所有人打交道,一个就是项目经理,另一个就是硬件工程师。硬件工程师需要和各种研发人员打交道、协调工作,这也就要求硬件工程师具有丰富的知识面和强大的协调能力,所以硬件工程师在整个研发团队中做主导作用。
作为一个硬件工程师,需要负责整个产品的研发过程。所以必须对每个时间段进行精确把握。项目都会有项目周期,虽然项目经理在把控时间,但具体的操作还是硬件工程师来搞。对于正常进度的项目来说:
软件开发工程师待遇原理图和详细设计方案:5周,包括参考设计以及原理图评审。
PCB布板布线:4周,包括配合结构、PCB进行电路调整或者器件重新选型。
发板及等待回板:2周,这两周是最闲的,发板同时必须完成BOM上传,这个不能忘。多看自己的图!
回板检查:1周,将自己的板子跑起来,能烧录uboot,网口能ping通。检查有无焊接问题。联系结构进行机器组装,查看结构有没有问题。
驱动调试:5周,配合完成所有底层功能的调试。
媒体版本:2周,这个是驱动调试之后第一个整机跑起来的版本,准备拿给测试进行测试。
信号测试:3周,配合信号测试人员完成信号测试。同时给做业务研发人员准备板子给他们研发。
功能测试:2周,配合功能测试人员完成环境测试,防护静电浪涌测试,以及其他功能测试,EMC测试等。
解BUG等待:2周,解决上述出现的所有BUG!
改板与发板:2周。
........
当然,具体时间会随着产品的复杂程度而变化,上面只做参考,不能一概而论。
关于硬件设计的描述,网上还有一种比较形象的说法:“硬件设计就是根据产品经理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前业界成熟的芯片方案或者技术,在规定时间内完成符合以下要求的硬件产品(注意:是产品不是开发板)。”具体要求如下:
● PRS功能(Function)
●性能(perrformance)
●电源设计(power Supply)
●功耗(power Consumption)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。