硬件工程师的担忧:为什么我害怕从事硬件工作?

发表时间: 2022-08-02 10:32

刚开始工作的时候,我的岗位就是一位硬件工程师。当时考虑的更多是从自身成长的角度去看项目。

1、希望多做电路板,每天都有图画,每天都有线拉。这样硬件工程师有存在感,不会失业。

2、希望做更新的技术,学更多的东西。用最新的处理器、用最复杂的DSP、FPGA,驾驭更大规模的硬件电路板。

3、比较少从商业竞争力的角度去看产品。


现在呢,我们是在做一个公司。更多地从商业角度去审视研发的投入。

我们希望通过一款硬件能够适配更多的市场场景,通过硬件的子卡、配件实现更多的形态,实现硬件的归一化。

减少硬件新产品的产生,用更少的产品编码,实现更多的产品形态。以减少硬件工程师的研发工作量。

我们希望用一款产品打天下,每个硬件公司都希望能像苹果那样,做一个硬件爆款,来打下更多的市场。


1、在电信领域就出现了“硬件平台化”的思想。通过一种硬件平台,能够适配不同的软件,实现不同业务形态的需求。

2、在一些数通、企业级通信设备里面就通过子卡配置的形式,实现了更多的配置需求,实现了不同企业规模不同规格、不同接口的需求。

3、在终端类设备,希望做爆款,让一款设备成为潮流。也希望用一款手机来迎合N多人的需求。


一旦从商业角度思考之后,我们企业其实希望维护更少的硬件版本,来涵盖更大的市场。这样,备货种类少,采购有优势,维护工作量少,人力投入集中。

器件越少、板子越少,产品形态越少,出问题的可能性就越少。所以我虽然是硬件出身,我却希望“能不做硬件就不做硬件”,怕做硬件。最好是用现在的产品,或者已有硬件能够匹配现在市场的需求。


要实现少做“硬件”,需要做的一件事,就是:归一化。


归一化工作按照层次分类:器件归一化,电路板归一化,硬件平台归一化,网络结构归一化;

平台归一化是:一套硬件平台,通过不同的硬件模块的组合,承载不同的软件加载,可以支持不同的业务,既可以支持这个业务,也可以支持那个业务。例如我们以前开发的硬件平台,业务类型支持:彩信、彩铃、短信,呼叫中心、统一通信等场景。

硬件归一化其实是做出来的硬件模块,或者说硬件电路板,相同的功能模块可以支持多种功能场景,例如我们把语音编解码模块单独独立出来,作为各种编解码的处理,可以根据客户需求,处理不同的编解码的转换,同时系统也支持用户规格,选择电路模块的数量,支持不同客户规格的需求。


器件归一化

硬件工程师一般都能够理解,在一个板子上面的,尽可能地选择成本更低的器件,选择更少种类的器件,便于集中采购,同时也便于加工。但是其他公司可能没有对器件归一化的工作做得那么细致和严格。



第一, 由于华为整个公司使用的器件种类非常的多,所以如果减小一个器件编码,带来的收益是十万人民币到几百万,而其他公司可能达不到这个高的收益。所以如果能减少一个编码,宁愿选择可能成本更高的器件。但是这个也需要按照每年的器件直接成本收益*器件发货数量,与编码成本+加工成本差异,进行对比的。不过器件归一化之后,器件的价格又可以跟供应商重新谈价格,这个收益是迭代的。所以,有时即使是成本占优,也会倾向选择器件归一化的结论。例如,逐步去除了5%精度的电阻,归一化到1%。


第二, 器件归一化,都是需要进行专题分析的。因为也有工程师为了归一化,对电路原理没有充分分析,导致的归一化带来“问题引入”。所以,当时我的部门当时有一个表格,“器件归一化分析.xls”的excel表格,把每个器件,原来选型,归一化的选型,更改的原因,都做好记录和原因分析。一是让每个归一化的员工都充分考虑分析,二是问题都有记录,便于评审,三是出了问题,好打板子。



单板归一化

除了器件归一化,更高一个层次的归一化,就是单板归一化。(单板这个概念,我稍微澄清一下,我刚到华为的时候,也觉得这个词很奇怪。因为通信设备,都是机框,背板,加各个功能模块的电路板,各个功能模块的电路就叫做“单板”,硬件工程师,一般也叫做“单板硬件”)


单板归一化带来的好处,首先是电路的种类少,电路的种类少的好处有两个:一是生产成本降低,二是硬件维护成本降低,三是软件开发和维护的成本降低。



第一、单板归一化的先决条件首先是处理器归一化。其实,华为的有的产品这点做得其实不好,X86、MIPS、ARM、PPC全部都用个遍,所以一个硬件平台,需要配备各种软件人员,操作系统搞N套,VxWorks和Linux,BIOS各种配套。


第二、单板的归一化,要注意产品的衍生。第一个版本的机框上的单板所实现的功能,如果后续的产品可以使用,应该直接可以用,不需要再开发。如果不注意这点,第一个版本的单板,到第二版本时,发现不能相互借用。反过来,再修改第一个版本的电路板,来适应新版本。有时问题更糟糕,就是完全不能兼容,只好重新开发。单板的规划显得非常重要。


第三、单板归一化时,虽然电路部分兼容了,但是结构件不兼容。对于市场人员的配置来说,仍然是两种配置。一样是失败的。



平台归一化

那么如果发现不同的硬件平台的架构雷同,功能类似。那么机框也可以归一化。只需要制作不同的电路功能模块,就可以实现不同的功能需求。

但是不同的硬件形态都是有他存在的意义的,如果强行归一,市场未必会接受这种事情的发生。例如用一个运营商的平台去归一一个企业应用或者家庭应用的产品,可能就未必能够成功。



网络架构归一化

这个说法是我自己想的,早在08年的时候,华为就在讨论“云管端战略”了,当时不是很理解。当我们一个运营商平台部门,跟“服务器”的部门合并的时候,似乎理解了点什么。

当X86处理器足够强大的时候,所有的运算,不管是否性价比最高,都送到云端进行处理,那么所有中间的存储和计算都显得不重要了。那么整个网络的结构,就是终端+管道+云存储和云计算。

既然计算和存储设备都是一样的,那作为运算和存储的设备,也就不需要那么多样化了。这时网络存储设备,和服务器就显得尤为重要。

这也是华为成立IT产品线,做重点战略投资的重要原因。

所以现在也就不需要那么多网络节点和网络平台了,只需要超强的处理和存储能力和宽广的通道,多样的终端。


我们为什么需要归一化?

第一、 减少不必要的人力投入。

以前在研究所工作的时候,由于“技术不传染”,项目组之间没有什么技术沟通,相互之间的原理图、PCB、文档、案例、基本不共享,不交流,但是大家的一些模块,功能是一样的,但是设计结果各式各样,在设计阶段就重复劳动,当出了问题之后,其实大家面对相同的功能模块,再解决不同的问题。例如,音频的放大模块,频率其实基本上是0kHz~30kHz的有效信号,都是交流耦合,按照单电源、双电源;高电源电压,低电源电压;R-8,RM-8等不同的情况,有限的分类,我们进行一致性的设计;找到一些可以进行多厂家器件兼容,考虑几种容限的情况。做几种类型的设计。从设计上面来说,所有人都有参考标准。如果碰到新问题,现有的设计模块不能满足时,再引入新器件及新设计。例如平时大家的放大量都是100,按照增益带宽积,已有设计能够满足很多场景的带宽(同时单位时间的电压上升率也满足);出现10000倍放大需求的时候再评估是否需要引入新模块设计。

但是实际的设计,都是放羊式设计,你喜欢ADI的,我喜欢TI的,他喜欢用MAX的,我喜欢用FET搭。所以每人手上一套放大电路,每个人的滤波电路都不一样,ADC选型和设计也是各式各样。如果有人出了问题,没有借鉴,也没有讨论,因为一开始就没有讨论。


第二、 降低总体的采购成本。

举个例子,大家都知道,贴片电阻,如果按照一盘进行采购,大约25元左右,有5000片。按时你只买100颗相同的电阻,可能拿到的采购价格是5元。

我们可以简单对比单价:按整盘采购单价是0.5分,按照散装采购价格是5分;单价相差10倍;其实通过这样的简单对比,我们很容易理解,批发价比零售价便宜很多在器件采购这个方面,有非常明显的特性。

除了类似于电容、电阻、电感等分立器件,有这个特性;在半导体器件采购,这个特性更明显。为什么呢?因为大家知道,半导体的主要原料是二氧化硅,也就是这个世界上取之不尽用之不竭的物质“沙子”;在一个芯片被成功设计和量产之后,其原料成本是非常有限的,主要的成本都是早期投入,例如研发投入,生产线投入,而这两部分的投入支出都非常的庞大。

几乎所有的芯片都是阶梯价,也就是你采购量越大,得到的价格就越便宜。

曾经待在华为的硬件平台部门。其实在硬件平台部门,主要的目标就是把公司各个业务承载在相同的硬件上,用最少量的硬件研发人力承载最大的营收。减少重复的研发投入,并且降低总体的采购成本。但是其实我们阶段性的成果,造成的局面是一个硬件平台,处理有7、8种,X86多种、单核PPC、多核PPC、MIPS、ARM……从器件采购上面来说没有形成优势,从研发上面来说,每套开发的人员需要的技能都不一样,在开发和维护阶段的人力投入都非常巨大。在器件采购上面,每种器件的使用量都比较有限,在商务上没有特别的突破。

同时降低,管理成本、资金占用成本,库存成本。


第三、 更高的产品质量。

如果产品设计形成合力,相同的器件、相同的模块、相同的电路,其的发货量比较巨大,暴露出来的问题往往也是概率性的,层次也比较深入。一些低级的问题,由于涉及的人员比较多,投入度也得到保证,所以在设计早期就已经解决地比较充分,并且当设计新电路的时候,可借鉴参考的内容也比较多,可讨论的同事也比较多。如果你选用一款器件,而这款器件被同事选用,已经产品化,并且海量发货。那么你选用这颗芯片的时候,不但这颗芯片被大批量验证过了,而且设计已经解决了已经发现的问题,同时由于你的选用,可能增加这颗芯片的发货量,也进一步增加商务谈判的砝码。


我们如何实施归一化?

平台归一化,这个设计场景比较少,架构师在考虑平台归一化的时候,往往是业务驱动。通过现有产品发现,哪些业务可以通过重新规划电路的功能集合,完成新的电路模块的划分,实现新的硬件平台可以涵盖更多的使用场景。例如经典的硬件平台ATCA。

ATCA(Advanced TelecomComputing Architecture)标准即先进的电信计算平台,它脱胎于在电信、航天、工业控制、医疗器械、智能交通、军事装备等领域应用广泛的新一代主流工业计算技术——CompactPCI标准。是为下一代融合通信及数据网络应用提供的一个高性价比的,基于模块化结构的、兼容的、并可扩展的硬件构架。

ATCA总线主要针对电信运营级应用,为下一代通信及数据网络应用提供了一个高性价比、模块化、兼容性强、并可扩展的硬件构架,同时以模块结构的形式呈现,以符合现代对高速数据传输的需求,为新一代电信运营设备提供了一个“可靠、可用、适用”的解决方案。

正是由于ATCA优越的“高性价比,模块化合理,兼容性强,可扩展性强”的特点,所以具备特别强的生命力。与ATCA的类似的还有其他种类的硬件平台,往往没有这么长的生命周期,或者没有这么大的市场占有率。

硬件单板归一化,强调的是在架构设计的时候,模块划分比较合理,模块的复用度高,模块间的耦合度低。ATCA这样的硬件平台归一化的时候,合理地拆分功能模块,才能实现其可扩展性和兼容性的特点。在硬件单板设计的时候,模块设计的时候,就需要考虑规格设计,涵盖场景等等因素。

器件归一化,是硬件工程师,经常需要面对的问题,此处做重点描述。

第一、 处理器选型归一化。

需要考虑软件归一化。如果选用相同的处理器,那么软件即使功能模块可能不一样,但是其大多数公用模块都可以借用,相同的处理器,操作系统可以保持一致,同时驱动等底层软件都可以借用。给软件开发的便利性带来了很大的优势。特别是多版本的大规模发货的产品,由于产品本身有很多的沉淀需要传承。当操作系统的变更,会导致很多功能可能需要重新开发。

例如,华为在变革操作系统的过程,部分业务从VxWorks切换到Linux的过程,非常痛苦,首先大量的业务软件是运行在Dopra(Dopra是在不同OS之上的一层封装,提供统一接口,提供编程框架。)当你选用新的Linux版本的时候,Dopra都需要跟随进行补丁,或者重新确立版本。另外,大量的生产测试,是基于VxWorks上进行开发的,如果需要移植到Linux,则需要花费大量的人力物力。一些运行Linux的电路板就运行双操作系统,在业务状态下,电路启动之后就先进入VxWorks,如果需要进入生产装备等状态,则相关按键进入。如果是正常业务,再次引导Linux进入Linux进行业务运行。

所以我们成熟平台上,进行处理器选型,尤其要注意电路的继承性。


第二、 内存类型的选型归一化

一个平台的生命周期需要考虑其所有器件的生命周期的健康性。而内存类的器件,往往生命周期并没有平台的生命周期长。所以在器件选型的时候,需要注意两个生命周期的配合。选型某款DSP的时候,其外围的存储器件只能选用SDRAM,但是同一平台的其他器件已经进入DDR2时代;但是由于X86更新换代比较快,很快配套内存选用DDR3。当平台发布没多久,几个大的存储器件厂家宣布SDARAM停产了。但是由于整个平台只有这么一个设计的位置选用了SDRAM,导致备货都无法开展。根据发货量预测到平台生命周期结束,对SDRAM进行备货。所以我们在选型的时候,哪怕有各种规格的DDR,但是也需要考虑归一化,这样哪怕备货的时候,也能形成批量采购获得价格优势,或者发货量大去影响其生命周期,或者扶持一些小的器件厂商进行替代。


第三、 电阻、电容、电感等无源器件归一化

电阻,我们需要在电阻精度上面进行归一化,若干年前,当生产电阻时,其精度还不那么容易控制的时候,我们需要根据设计,选用精度相对不那么高的电阻以降低成本。但是目前来说1%精度的电阻,与5%精度电阻的价格差异不再那么大的时候。我们可以统一选用1%,不但增加了统一采购的数量,以此来获得批量采购的价格优势,同时由于减少了器件的种类,降低了生产的时间。在阻值方面也可以做一些归一化的工作,例如一些对阻值不是那么敏感的设计中,我们可以进行一些器件归一化的,例如一些远离有用信号的RC滤波,相对不需要那么准确的精度,我们27欧姆归一化到33欧姆,这种对滤波结果影响不大的场景,可以选择归一化。同时,有些电阻阻值在整板,只有一个器件(20k),我们可以选择两个电阻的阻值之和(两个10k)来实现,来实现归一化。

但是我们不能为了归一化而归一化,在减少器件种类或者减少器件数量的时候,一定需要考虑归一化之后对电路的影响。当年我们开发Corei7嵌入式版本开发,第一版的时候工作都正常的,调测完成之后,进入产品化阶段。但是回板之后,电路无法正常工作。原来是硬件人员没有进行评估,把处理器的外围晶振的对地电容18pF归一化到30pF,导致的晶振不起振。


第四、通用化IC归一化

电源、时钟、运放、分立器件等这些通用性很强的器件,可以考虑归一化。同时做好不同厂家最好是PIN2PIN的替代方案。

例如电源,我们选定了一种规格,例如12V输入,5V输出,电流10A,整个公司都可以选择同一种解决方案。不需要不同的工程师选择各种厂家的解决方案,电路设计、芯片选型都不一致,但是功能完全一致的电路方案。但是,我们需要关心,即使是不同厂家的相同型号,也有可能有一些微弱的差异。以下以706看门狗为例,虽然各个厂家型号、封装、管脚定义都一样。但是具体规格却是有比较大的差异。



《硬件详细设计文档》解析之一 概述

《硬件详细设计文档》解析之二 单板上电、复位设计

《硬件详细设计文档》解析之三 单元详细描述

《硬件详细设计文档》解析之四 归一化审查

《硬件详细设计文档》解析之五 可靠性指标

《硬件详细设计文档》解析之六 可维护性设计

《硬件详细设计文档》解析之七 可维修性设计

《硬件详细设计文档》解析之八 工艺设计说明之 工艺边要求

《硬件详细设计文档》解析之九 EMC设计考虑


《硬件详细设计文档》解析合集