序言
不少人会认为硬件设计很简单,就是从已有的典型设计、成熟电路中做积木化搬运就行了,不需要了解那么多细节,但实际上只会这些是远远不够的,而且拼凑出来的硬件肯定会出问题。那么成为一名合格或称职的硬件研发工程师需要具备哪些硬核技能呢?本文从一位具有20+年硬件设计经验和15+年硬件研发团队管理经验的“前浪”角度来探讨一下。

1.能独立完成硬件架构设计
硬件架构设计就是硬件总体方案设计,目的是要能用最合理的电路和最优化的成本满足用户的需求。这个技能对于刚从事硬件开发的新人来说要求是比较高的,至少需要5年以上的从业经验才有可能入门。
硬件架构设计主要包括:处理器及其最小系统设计;通信总线设计;输入输出接口设计;电源设计;人机接口设计;结构设计;散热设计等等。难的地方不在于如何使用这些电路模块实现用户需求,而在于能否用最合理的电路和最优化的成本去实现。这也是体现硬件设计水平的重要标志。
2.熟悉常规元器件的原理及应用要点
硬件是由各种元器件有机组合起来的,硬件设计就是把各种元器件创造性地组成一个完整硬件的过程,整个过程和装修有点类似,工程师既是设计师,也是施工队。要想把房子装修得美观实用、性价比高,对各种装修材料的特点和施工方法必须得深入了解,否则有坑必踩。同理,要想设计出好的硬件那必须熟悉常规元器件的工作原理和应用要点,知道该用哪类器件以及选择什么技术参数。
常规元器件类别是很多的,包括电阻、电容、电感、二三极管、光器件、磁性元件、继电器、连接器、模拟器件、隔离器件、电源、时钟、保护器件、处理器、存储器、FPGA等等,每一类器件还有很多的细分种类。以电阻为例,根据工作原理和功能可以分为热敏电阻、压敏电阻、可调电阻、绕线电阻、排阻、金属膜电阻、金属氧化膜电阻、功率电阻、高压电阻等十余种。首先要了解各类电阻的阻值范围、精度、功率、耐压、封装、工作温度、典型应用场景、优缺点等方面,然后结合实际的设计需求,再进行细化研究,比如温漂、降额要求、冲击电压、引线电感、抗硫化、材料、包装等技术参数也要关注。
掌握这些元器件的工作原理和应用要点是一个日积月累的过程,需要长期的不懈努力,一下子要掌握全部是不切实际的。但我们一定要明确自己的目标,抓住一切机会去学习,不断扩充和完善自己的知识体系。
3.掌握模拟电路和数字电路设计原理
首先要学会如何读懂Datasheet。Datasheet的信息量很大,有的也很厚,做硬件设计重点关注Function Block Diagram、Electrical Specifications、Timing Specifications、Absolute Maximum Ratings、Pin Configurations and Function Descriptions、Typical Connection Diagram、Layout Guidelines、Outline Dimensions这几个部分就可以了,当然如果有时间通读一遍应该会更好。
第二要弄明白标准(模块)电路的每一个细节,搞清楚为什么选用这个阻值、容值、耐压等参数,如果换成别的参数会出现什么样的问题。站在前人的肩膀上也得腰挺直站得稳才行,没有底气晃晃悠悠的是要出问题的。
模拟电路并不可怕。一要处理好接地,合理区分模拟地和数字地,干净的参考地对模拟电路信号质量很重要。二要用好滤波、隔直、比较、放大、整流、逆变等典型模拟电路。三要做好信号传输及阻抗匹配,对每个端口的输入输出信号的幅值、频率、极限值、输入或输出阻抗等参数进行详细计算。
数字电路也不简单。一要注意电平匹配,不同工艺的器件输入输出电平是不一样的,比如TTL和CMOS的区别,不同电源电压之间的接口也要注意是否匹配。二要注意外设访问的片选、读、写等总线时序要求,在设计中要考虑逻辑门延时的影响,避免时序冲突。三要注意数字端口的驱动能力,注意端口拉电流和灌电流的限值。四要注意严格控制IO端口的上电默认方向及电平,避免上电时误动作或误发信号。
4.了解DFM/DFT/DFS设计要求
DFM(Design for manufacturability,可制造性设计)、DFT(Design for Testability,可测试性设计)、DFS(Design for Serviceability,可维护性设计)的要求很直白,就是要在硬件设计时考虑产品全生命周期的生产、测试及维护的方便性,千万不要忽视这三个方面,对于门槛不高、竞争激烈的中低端产品,这三个方面做得好不好甚至会决定产品的成败。
DFM要求大部分是通用规则,也有一些是与生产线特点和能力匹配的定制化规则,包括焊接、光学检测、组装等环节,DFM可以说是实现高效率、高质量、批量化生产的有力保障。
DFT要求也不难理解,要综合考虑研发测试、单板测试、整机测试、现场测试等多个测试场景,预留好测试接口和测试点位,方便使用测试夹具或工装,还要有配套的测试工具及软件,确保测试效率和效果。
DFS说起来最简单,做起来确是最难的,关键是要了解用户的操作规范和使用习惯,要通过设计创造出良好的使用体验。具体包括远程访问、人机操作、更换硬件、更新程序或配置等,要通过软硬件结合整体设计来达到方便运维的效果。
5.掌握EMC原理及设计要点
EMC设计在很多人眼里应该是比较高端的硬件技术了,因为电场和磁场都是看不见、摸不着的,但它们又是实实在在客观存在的,而且经常悄悄地干着一些可能让产品出现问题的事。
EMC项目有很多,主要包括静电、浪涌、快速瞬变、辐射电磁场、射频传导、工频磁场、脉冲磁场、阻尼震荡磁场、阻尼震荡波及电源影响等抗扰度试验,还有电源传导发射和外壳辐射发射两项对外发射试验项目,要对每种试验的试验方法、涉及端口、干扰信号参数及可能的电路薄弱点有深入的了解和预估。
EMC的三要素(干扰源、干扰路径、敏感源)大家都懂,但在实际设计中如何去合理运用确是不容易掌握的,需要经过长期的积累以及付出一定的试错成本。干扰源有时不一定在外部,也可能在产品内部,如高频信号如果SI(信号完整性)处理不好,信号回路过大,可能形成天线。外部的干扰源是客观存在的不可控因素,无法消除,但内部的干扰源一定要在产品设计时进行合理的处理,避免影响敏感电路。敏感源方面,一方面提高器件本身的“抗压能力”,比如ESD等级、工作电压等。另一方面,电路设计中也要将敏感电路尽量在空间上远离干扰源(端口),在原理上加强防护,使得外部干扰产生的共模电流不会流过敏感电路的参考地平面。软件上也可以采取一些应对硬件瞬时错误的可恢复性措施,提高整个系统的鲁棒性。三要素中最关键的还是对于干扰路径及泄放回路的设计,也是我们在设计中相对可控的因素,对于浮地系统,总的设计原则:一是在端口处用最短的距离将干扰能量导入大地,这部分的布线要尽量短,高频接地阻抗要尽量低,这样辐射和传导对内部电路的影响都会减小。二是用增强绝缘、分布电容尽量小(即高频阻抗足够大)的信号隔离器件,这样让共模干扰信号很难进入内部。三是产品接地可靠,内部地平面布局合理,让偷偷摸摸溜进来的共模电流从你设计好的路径回到大地。
6.熟悉结构设计基本要求
作为一个产品,硬件不可能裸奔,需要一个外壳对硬件提供一个物理支撑和保护,同时与产品现场应用建立链接。这个外壳的结构设计要注意些什么?一是材质及加工方式的选择,塑料壳还是金属壳,铝壳还是铁壳,压铸还是钣金,要不要开模,需不需要利用外壳进行屏蔽或散热等等,涉及外观、成本、加工周期等多个产品要素。二是所有对外接口的位置、方向和开孔尺寸的设计,最好是在三维模型中与硬件进行匹配,确保准确无误。三是对加工公差、色差等工艺一致性的控制,设计时留有裕度,加工公差涉及到与硬件的匹配,我们遇到很多由于公差控制不好导致安装出现问题的案例,色差涉及用户的感受,产品代表着公司的形象。尽管本节提到的这些内容大部分是结构研发工程师的工作内容,但对于硬件研发工程师完成一个好的硬件设计还是非常有必要了解的。
除此之外,如果能对结构力学、流体力学、电磁场有一定的涉猎,对于大型的硬件产品设计也是非常有帮助的。
7.熟练进行PCB Layout
PCB Layout应该是硬件工程师的看家本领了,但要把PCB Layout做到极致也是有难度的。除了布局布线、安装孔、接口等基本要求以外,关键是要掌握PCB Layout中的DFM、EMC、SI、PI以及安规等设计要求,如果是特殊行业,那么PCB Layout也要遵循行业要求。
DFM和EMC设计要求前面已讲过,此处不再赘述。SI和PI设计对于EMC性能及产品长期运行可靠性至关重要,很多的产品可靠性问题都和SI或PI设计缺陷有关。单端信号的SI设计要抓住信号回流路径最短、信号环路面积最小这两个关键点,总线信号和差分信号的SI设计要关注布线等长、时延相等、时钟同步等问题,SI的最终目标是希望数字信号干净、过冲小无震荡、上升沿下降沿单调无回沟、电平幅值稳定裕度大、抗干扰能力强。安规设计要求一般比较容易掌握,主要体现在对电源和外部接口的接地、安全距离和阻燃等要求上。
8.掌握底层驱动软件编写和调试技术
虽然现在研发工作的分工越来越细,人人都是一颗螺丝钉,但要想把自己职责范围内的事做好,还是需要对相关专业进行深入了解的。一个好的产品或系统一定是硬件和软件的有机结合,而不是简单堆砌,硬件不足的地方软件可以进行弥补,软件覆盖不了的地方由硬件顶上。一旦运行过程中硬件出现问题,需要软件进行纠错、复位、报警甚至闭锁停机,避免故障升级。反过来,硬件也要对软件进行监视,一旦软件跑飞或死机,硬件上可以强制闭锁或重启,防止问题扩大。
应用层和平台层的软件可以不掌握,但和硬件相关的底层驱动软件必须要掌握,有条件还要自己编写并调试,这样有助于更好的理解硬件,并把硬件的性能充分发挥出来。当然编写驱动软件也是要做功课的,要对指令集和编程手册进行详细的研读,有的厂家还会提供芯片的勘误表,也需要仔细查阅,看有没有中招以及如何从坑里跳出来。
9.熟练使用常用的仿真和调试工具
常用的电路仿真工具有Pspice、Multisim、以及制图工具自带的仿真软件,在设计前进行模拟电路和数字高速电路SI仿真是非常有必要的,能够加速设计过程,避免犯低级错误。另外,处理器的仿真调试工具也要能熟练使用,对于驱动和硬件的适配调试是必不可少的。
硬件调试或分析问题,肯定也要用到调试工具,示波器、万用表、逻辑分析仪等等必须熟练使用。对于通讯、射频、电源等专业可能还需要使用更专业的设备,使用方法也必须熟练掌握。
10.较强的动手能力
无论是图纸设计、BOM整理,还是搭建实验环境、割线飞线、测试测量,都需要硬件研发工程师有较强的动手能力。器件是一个个摆上去的,线是一根根画出来的,硬件设计要眼疾手快、胆大心细、持之以恒,实践是检验真理的唯一标准,多动手、快动手永远比思前想后、犹豫不决要好。
结语
上述十大技能属于硬核实力,要想成为一名优秀的硬件研发工程师,除了上述技能之外,更关键的是要对硬件设计有锲而不舍的热情和执着、持之以恒的学习和实践以及全身心的长期投入。另外,如果还能具备一些审美就更好了,科学和艺术永远是相通的。