01   什么是硬件?

百度百科介绍"硬件(英文名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。

02   什么是硬件设计?

一般来说硬件设计指的是电路设计,这样说是没问题的,因为你所有的工作都是围绕电路设计,最终的目标也是产出一个优秀的电路,能够满足各种要求,经历各种考验。但实际上我们要求的是产品,而不是单板。

网上有一篇文章讲的挺好:"硬件设计就是根据产品经理的需求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%工作都没有。所以不管是时间上,还是阶段上,产品的硬件设计是一个漫长过程。

而且你在一个公司做产品硬件设计,一般情况下都是参考成熟的方案,主芯片CPU主要功能的实现最终还是依靠芯片厂商提供的套片方案,一般来说为了降低风险,主要是参考套片方案的参考设计完成,芯片厂商也会提供包括器件封装,参考设计,仿真模型,PCB参考等等全部资料,在芯片功能越来越复杂的今天,一个片子动不动就几百上千个PIN,对于一个新项目来说,是没有时间一页页去吃透每个PIN,每个输入输出的具体功能,电气参数的,尤其是对于高速设计,比如DDR3接口,XAUI接口等等。一般来说芯片厂商提供的参考设计就是他们经过开发,验证,测试的最佳方案了,很多情况就是你必须按照参考设计来做,否则硬件可能就有问题,一般来说就是信号完整性问题或者EMC问题。"

03   什么是硬件电路设计?

顾名思义,硬件电路设计就是设计电路的,能够熟练使用cadence绘制电路与查看PCB。硬件设计中的电路设计是HWE最重要的职责。电路设计考验的是HWE的设计基本功,即对一些硬件器件的理解以及灵活应用,比如:

CPU

电阻

电容

电感

二极管

三极管

保护器件

接口器件

逻辑芯片

逻辑功能

小芯片

电源

我们上述讨论的硬件设计的13条东西都应该在设计时候考虑,目前大公司的各种流程保证了设计时各部门的联动,还是很好的。

每个公司都会有自己的硬件电路设计规范,这个需要自己好好去看一下,并用在实践中。硬件电路设计主要针对电路设计,里面涉及的东西比较多,对电路模块的设计后面会有单独的章节讨论。硬件电路设计需要足够的经验与理论知识。

04   硬件设计开发流程

硬件部门开发流程指定后,需要硬件部门人员严格按照开发流程完成开发工作。硬件部开发流程主要分为如下几个步骤:

1) 市场调研

对即将进行的项目,需要进行市场调研。市

2) 立项

市场调研完成后后,首先需要进行立项工作。

3) 硬件总体设计

项目立项后,需要进行硬件总体设计。

4) 核心器件的实验及分模块的详细设计

总体设计完成后,需要对核心器件进行实验并且开始进行分模块的设计方案。

5) 电路、程序及外壳设计

核心器件的实验及分模块的详细设计完成后,进行电路、程序及外壳设计。电路、程序及外壳设计按照项目设。

6) 系统联调

每个分块部分调试完成后,即可进行系统联调。

7) 内部审核、项目验收

系统联调完成后,项目即可进行内部审核、项目验收。

5.1   硬件工程师的职责

首先看下大公司的研发分工如下图所示,可以看到自己所处的部门与位置。

而一个硬件产品的研发流程,如下图所示:

公司内的所有岗位都同等重要的。虽然各团队的重要性一致的,但研发团队在产品开发中的位置应该更加核心。研发人员可以转去做市场、测试、供应链或者质量管理等,但市场等岗位的人却很难转做研发。一来研发门槛高,二来研发工作接触面广。而在整个研发团队中,硬件工程师做主导作用。

一般情况下我们所说的研发不仅仅局限于软件硬件,而是整个项目组,这里包括基本上所有部门的产品负责人。

而硬件工程师在研发团队中是重要的一员,硬件产品的研发团队可以如下图所示:

当然上图中所展示的并不完全,比如热设计也是非常重要的一员。但需要说明的是,在整个项目研发团队中,有两个人和所有人打交道,一个就是项目经理,另一个就是硬件工程师。硬件工程师需要和各种研发人员打交道 、协调工作,这也要求硬件工程师具有丰富的知识面和强大的协调能力。

硬件工程师的本职工作,如下图所示:

硬件工程师可以大致分为如下四个阶段:

初级硬件工程师

在别人的指导下完成阶段三、四的部分,这个是应届毕业生入职三个月基本可以达到。

普通的硬件工程师

独立完成阶段三、四的工作,一般工作1到2年即可。

资深的硬件工程师

主导完成阶段三、四的工作,参与完成阶段二总体设计的工作。

专家级硬件工程师

主导完成阶段一、二的工作。

5.2   时间点把握

作为一个硬件工程师,负责整个产品的研发过程。所以必须对每个时间段进行精确把握。项目都会有项目周期,虽然项目经理在把控时间,但具体的操作还是硬件工程师来搞。因为本人只是处于阶段三,对阶段二、一没什么时间概念,对于正常进度的项目来说:

  • 原理图和详细设计方案:5周,包括参考设计以及原理图评审。

  • PCB布板布线:4周,包括配合结构、PCB进行电路调整或者器件重新选型。

  • 发板及等待回板:2周,这两周是最闲的,发板同时必须完成BOM上传,这个不能忘。多看自己的图!

  • 回板检查:1周,将自己的板子跑起来,能烧录uboot,网口能ping通。检查有无焊接问题。联系结构进行机器组装,查看结构有没有问题。

  • 驱动调试:5周,配合完成所有底层功能的调试。

  • 媒体版本:2周,这个是驱动调试之后第一个整机跑起来的版本,准备拿给测试进行测试。

  • 信号测试:3周,配合信号测试人员完成信号测试。同时给做业务研发人员准备板子给他们研发。

  • 功能测试:2周,配合功能测试人员完成环境测试,防护静电浪涌测试,以及其他功能测试,EMC测试等。

  • 解BUG等待:2周,解决上述出现的所有BUG!

  • 改板与发板:2周。

  • 具体时间会随着产品的复杂程度而变化,不能一概而论。

5.3   硬件工程师的本质工作

  • 目标:产品零缺陷

  • 过程:设计电路、解BUG、部门沟通交流。

  • 能力:主要集中在解BUG能力。

5.4   硬件工程师基本素质与技术

这里给出华为硬件工程师手册中的定位,看起来还是不错的。

第一、由需求分析至总体方案、详细设计的设计创造能力;

第二、熟练运用设计工具,设计原理图、EPLD、FPGA调试程序的能力;

第三、运用仿真设备、示波器、逻辑分析仪调测硬件的能力;

第四、掌握常用的标准电路的设计能力,如ID电路、WDT电路、Π型滤波电路、高速信号传输线的匹配电路等:

第五、故障定位、解决问题的能力; 第六、文档的写作技能; 第七、接触供应商、保守公司机密的技能。

06   硬件工程师需要具备什么样的性格?

  • 沟通能力:要有逻辑,想法要全面点,这样才能与其他部门人员好好沟通,说不清会导致吵架。

  • 性格温和:因为你会和所有部门交流,不要拉着脸,也不要命令式的,性格偏激会导致吵架。

  • 谦虚谨:别人的意见即使不采纳也要倾听,然后说出自己的见解与原因,一意孤行会导致吵架。

  • 认真仔细:设计电路要认真仔细,解BUG要认真仔细,因为一旦出问题这个责任只有自己背。

  • 要有耐心:不论是沟通还是解BUG还是检查电路,一定要有耐心。

  • 不会就问:不会的东西就问,因为产品开发时间比较短,不可能给你大把时间去研究。

  • 有责任心:对电路负责,对产品负责,对BUG负责。

  • 分清主次:出了问题要先想怎样去解决问题,而不是先去追究谁的责任。

  • 乐善好学:善于帮助别人,善于学习,必须有扎实的经验知识与理论知识。

本文为CSDN博主「wangdapao12138」的原创文章,原文链接:https://blog.csdn.net/wangdapao12138/article/details/79121996

其实总结出来,上述是作为一个硬件工程师必须的性格,可以说是缺一不可。性格偏激的人不适合做硬件研发,甚至可以说不适合做所有研发。所以一般情况下硬件工程师做产品经理的人很多,因为这个职位本身要求就很高,良好的性格与经验理论知识会让你一直进步的。


硬件设计丨什么是硬件工程师?相关推荐

  1. 什么是硬件设计?——成功的硬件设计需要什么?

    硬件设计就是根据产品经理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前业界成熟的 芯片方案或者 ...

  2. DSP硬件设计学习之一: 硬件设计调研

    在学习之前,想先通过调研回答自己心中的几个重要问题:(已有单片机基础,学过C51和STM32) 1.DSP是Digital Signal Processing(数字信号处理)的缩写,它到底是什么:一种 ...

  3. 单板硬件设计和软件测试,单板硬件调试与单元测试方案(报告)模板.doc

    单板硬件调试与单元测试方案(报告)模板.doc 活动编号(ID):EE-80项目阶段□概念阶段■开发阶段□发布阶段□计划阶段□验证阶段□生命周期阶段产品名称产品型号/版本总页数××××××××共 ×× ...

  4. 基于FPGA的数据采集、通讯和存储系统设计(即FPGA+RTL8211千兆以太网+SD卡存储+RTC+Uart+AD7606数模转换+电流放大采集等硬件设计及程序验证)

    本文主要介绍了学生期间自己做的一个小项目,便于学习初期对fpga的整体把握,涉及了很多常见.常用.常考和面试常问的知识点. 可以作为入门后的拓展学习和应对一些找工作的项目面试. 下面对硬件及软件代码进 ...

  5. HMI人机交互硬件设计参考

    MYD-Y6ULX-HMI 是米尔电子设计的基于 NXP 公司 i.MX 6UL/6ULL 系列处理器的嵌入式开发板.为 HMI 人机接口等应用提供尽可能完善的开发资源. MYD-Y6ULX-HMI ...

  6. 飞控计算机功能硬件设计,飞控计算机测试设备的设计与实现论文

    飞控计算机测试设备的设计与实现论文 为了对飞控计算机进行全面准确测试,本文提出了一种飞控计算机测试设备的软硬件设计方案.硬件部分主要是设计工控机中的两块板卡,产生测试系统需要的信号.软件部分以Wind ...

  7. 单片机双字节数乘法运算实验_基于单片机指纹电子密码锁——硬件设计2

    指纹识别模块 ATK-AS608 指纹识别模块是 ALIENTEK 推出的一款高性能的光学指纹识别模块.芯片内置 DSP 运算单元,集成了指纹识别算法,能高效快速采集图像并识别指纹特征.模块配备了串口 ...

  8. ZigBee智能家居安防硬件设计

    0 引 言 在信息产业快速发展的今天,嵌入式设备已经深入到了人类生活的各个方面,智能设备更是成为了人们日常生活中不可或缺的一部分.随着能源的日渐消耗,环保节能刻不容缓. 因此,在现在和未来的家居生活环 ...

  9. 张飞电子工程师速成视频教程百度云_电气工程师张飞电子工程师速成 硬件设计与开发 视频教程 第二部 (价值98元) | 吾爱楼52Lou...

    教程名称:张飞电子工程师速成 硬件设计与开发 视频教程 第二部 课程简介: 张飞电子工程师速成 硬件设计与开发 视频教程 第二部 现场以循环泵系统项目为实际研发项目,教会大家学习硬件电路设计! 课程简 ...

  10. 如何成为一个合格的硬件工程师,如何学习硬件设计?

    如何成为一个合格的硬件工程师,如何学习硬件设计? 现在很多准备毕业的大学生或是毕业刚出来没多久的大学生,会发现自己从事的岗位所用的知识跟自己在学校学的东西很多都搭不上,在学校各种专业课各种优秀,但是到 ...

最新文章

  1. 人类信息接收过去、现在与未来 ——我对于内容产业的判断
  2. Java进阶:default方法说明
  3. 代码:显示查询的日历
  4. 数据库操作,内外联查询,分组查询,嵌套查询,交叉查询,多表查询,语句小结...
  5. 视频时代的大数据:问题、挑战与解决方案
  6. Pyhton——动态语言
  7. android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用
  8. C# BackgroundWorker用法详解
  9. MySQL安装、MariaDB安装
  10. 解决:Android4.3锁屏界面Emergency calls only - China Unicom与EMERGENCY CALL语义重复
  11. 防火墙访问控制Access Control
  12. vue中使用h5 video标签实现弹窗播放本地视频
  13. java 嵌入groovy_嵌入Groovy
  14. 超详细的网络抓包神器 tcpdump 使用指南
  15. 使用chalk时颜色不变的问题解决
  16. HTML添加背景音乐/视频
  17. time秒和年月日时分秒的转化
  18. Hadoop服务启动出现Permission denied (publickey,password).
  19. JSX语法学习(一)
  20. OVS CT连接追踪实现NAT

热门文章

  1. 局域网网络流量监控_【网络监控与安全】主要网络流量处理技术
  2. 手机屏幕的色彩偏离度(ΔE)(也就是常说的色准)
  3. 《5G无线技术演进白皮书》发布!
  4. Unity3D协程介绍以及使用
  5. 山东春考c语言试题及答案,2020 年山东省春季高考技能考试 信息技术类专业试题...
  6. 2021春考计算机技能考什么,春季高考技能考试-信息技术类专业考试样题
  7. NVIDIA驱动安装(arm64平台可用)
  8. qq邮件exchange服务器,解决Exchange邮件系统无法接收QQ邮件的问题
  9. 分集阶数(diversity order)
  10. ubuntu安装日文输入法