硬件设计就是根据产品经理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sale)的要求下,利用目前业界成熟的芯片方案或者技术,在规定时间内完成符合PRS功能(Function),性能(Performance),电源设计(Power Supply), 功耗(Power Consumption),散热(Thermal/Cooling),噪音(Noise),信号完整性(Signal Integrity), 电磁辐射(EMC/EMI),安规(Safety),器件采购(Component Sourcing),可靠性(Reliability),可测试性(DFT: design for test),可生产性(DFM:design for manufacture)等要求的硬件产品(注意:是产品不是开发板)。

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

芯片厂商提供越来越周到的服务,看起来硬件工程师HW(Hardware Engineer)的价值越来越低了,毕竟一个产品的核心功能或者技术一般都在ASIC或者FPGA里面了,HW一般没有能力进行核心逻辑设计IC design, 毕竟这是跟HW设计并行的另一项工作,另一项也很复杂的工作。 对于这个问题,我也曾经困惑过,总是感觉硬件设计没有什么好搞的了,不就是抄抄参考设计,就跟组装一台电脑一样组装一个单板嘛。

当然随着项目经验的增多,尤其从事现在硬件系统级设计的角色,感觉原来自己考虑更多是从一名原理图设计工程师的角度考虑问题。 就像开始说的,一个成功的硬件设计,功能Function只是一小部分,至于其他的因素和能力,一个HW的能力取决于能考虑因素越多,越深入,就越是一个优秀的HW工程师。

1.成本Cost任何一个卖硬件产品的公司的主要盈利一般来说就是销售价格-COGS,而COGS90%取决于设计,剩下就是生产成本了,这个价格一般来说比较透明,代工厂也很多,竞争激烈。虽然说设计成本60%也取决于主要芯片的价格(这个主要要靠公司高层跟芯片厂商谈判的结果了,HW的作用有限,更多是系统工程师做决策用什么芯片能符合产品需求和软件功能需求),但是剩下的电阻电容电感二极管三极管,保护器件,接口器件,逻辑芯片,逻辑功能,小芯片,电源电路全都是HW做主了,当然有参考设计,不过一般来说参考设计为了更好体现芯片的良好性能,一般会选用比较贵的,性能更好的器件,这就要结合公司的器件库进行取舍了。 我的经验是多看看公司的同类产品设计,看看大家主流是用什么器件,毕竟对于元器件来说,价格跟购买量有很大关系,不同的采购量导致的价格可能相差几倍。

2.2信号完整性Signal Integrity主要影响两方面:EMC和时序Timing,不好的SI设计会有很强的过冲over/undershoot,尖峰Spike,这会造成对应频率N谐振频率的发射;不好的SI设计会导致High/low不稳定,或者上升时间/下降时间Rising Time/Falling Time占数据周期过长,或者时钟不稳定,都会导致在接收端采样Sample时出现误判断,实际上,接收端不会出错,出错的只是信号。 SI设计在原理图设计来说,主要从阻抗匹配(串行电阻)上来解决,辅以适当的退耦滤波电容;跟主要是在PCB上,一般来说PCB层数越多,SI会更好,当然这里要跟Cost 进行一个取舍了。

3.3电源设计Power Supply虽然一般大些的公司都有专门的电源设计工程师,不过对于HW来说,基本的Power设计能力还是很重要的,从道理上来说,任何电路都是一种电源,任何电路问题都可以归结于一种电源问题,只有对于电源电路理解深入了,才能对于电路板理解跟深入,尤其是对于模拟电路问题,才能想到用模拟电路来设计一些简单电路,而不是费力用逻辑电路来搭。

4.4安规Safety对于接口电路来说,主要成本都在与安规器件,这个接口究竟要抗多大的电压电流打击?这就要好好考虑用什么器件了,fuse? PTC? TVS?高压电容?

5.5电磁兼容EMC/EMI主要是针对各个国家的相应规范(安规也是),对于各种可能产生辐射的信号都充分考虑好退耦,滤波,对于欧盟来说一般是EN55022/EN55024,对于美国一般是FCC Part 15, 欧盟和美国的辐射标准略有不同,欧盟的标准稍微严格一些。

6.6功耗(Power Consumption)现在都提倡环保,运营商也是,HW也必须考虑省电,比如用效率更高的电源电路,用PWM替代LDO,效率更高的转换拓扑。

7.7散热(Thermal/Cooling)芯片集成度越来越高,单芯片的功耗从几瓦到现在的几十瓦,散热就是一个大问题,而且伴随着接口的速率提高,接口芯片的功耗也在提高,造成整个系统就是:热!这就需要好好考虑散热问题,从PCB的布局,到散热片Heatsink的使用,到风扇的使用,都有很多考虑。

8.8噪音(Noise)风扇是散热最好的办法,但是带来的问题就是噪声,ITU对于通信设备的噪声也有明确的规范,这就需要平衡风扇数量,转速,风向,控制等因素。

9.9器件采购(Component Sourcing)HW选用的器件必须得是Sourcing部门能够采购到的,而且一般也要考虑second source的问题,和lead time的问题,不能说选用一个只有一个小公司生产的稀有器件,万一这个器件EoL了,你是怎么办?只能修改设计了,这就损失大了!

10.10可靠性(Reliability)整个系统MTBF的数值多少?风险最大的器件是什么?每个器件的工作Margin是百分之多少? 

11.11可测试性(DFT: design for test)/可生产性(DFM:design for manufacture)主要针对于工厂的考虑,必须考虑到方便工厂的生产测试,方便生产,如果你的测试很复杂,会大大降低生产线的产能和良率,进而影响供货以及生产成品。  对于参考设计,我感觉最有用的地方主要是供电电路,退耦滤波电路以及Layout设计,至于总线连接,复位电路,时钟电路,接口电路等等,一般来说都需要根据公司器件库,设计案例以及业界主流器件/方案进行修改。所以千万不要迷信参考电路,那只是参考,过分迷信参考设计,自己还没搞清楚芯片具体功能/参数呢,就COPY过来,即使能够工作,肯定在成本方面,生产方面有很多问题。

HW职责 (Hardware Engineer)的更多相关文章

  1. 【转】高通平台android 环境配置编译及开发经验总结

    原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...

  2. FPGA学习网站

    1.  OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到.进入后,选择project或者由 http//www.opencores.org/browse.c ...

  3. 32个最热CPLD-FPGA论坛

    1. OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到.进入后,选择project或者由http//www.opencores.org/browse.cgi ...

  4. IT业常见职位英语缩写全攻略及详解

    现在中国人流行起英文名字,连职位也跟着作秀,什么CEO.COO.CFO.CTO.CIO啦,那CEO.COO.CFO.CTO.CIO到底是什么意思呢?总被这些概念搞晕,这可不是搞IT的应该犯的错误哦,好 ...

  5. words2

    餐具:coffee pot 咖啡壶coffee cup 咖啡杯paper towel 纸巾napkin 餐巾table cloth 桌布tea -pot 茶壶tea set 茶具tea tray 茶盘 ...

  6. Guest Speaker on 2015 WinHEC Shenzhen 秋季大会

    继今年3月份的WinHEC春季大会,秋季大会于11月10日-11日深圳如期举行.此次大会的主题是Windows 10 IoT和Microsoft Azure,云和端的无缝连接是微软物联网解决方案的典型 ...

  7. liunx作业一

    一.linux发行版 linux发行版是以linux为内核,包含了系统软件和应用软件.简化系统安装的工具.软件安装升级的集成管理器. 典型的linux发行版包括:linux内核,一些GNU程序库和工具 ...

  8. Android驱动入门-LED--HAL硬件抽象层程序设计①

    硬件平台: FriendlyARM Tiny4412 Cortex-A9 操作系统: UBUNTU 14.04 LTS 时间:2016-09-21  16:15:26 设计HAL硬件抽象层程序,则需要 ...

  9. grub paramiter & menu.list

    在Linux中,给kernel传递参数以控制其行为总共有三种方法: 1.build kernel之时的各个configuration选项. 2.当kernel启动之时,可以参数在kernel被GRUB ...

随机推荐

  1. hibernate hql

    hibernate在使用hql进行select count(*) from ObjectA left join fetch apath 时会报错,多余的left join去掉即可.

  2. laraver mongo 查询操作

    1,mongo 不支持特殊where条件(&,|) 2,mongo 可以连接mysql的表查询,但不支持连表的where查询

  3. C4.5,CART,randomforest的实践

    #################################Weka-J48(C4.5)################################# ################### ...

  4. Python常用内置函数总结

    一.数学相关 1.绝对值:abs(-1)2.最大最小值:max([1,2,3]).min([1,2,3])3.序列长度:len('abc').len([1,2,3]).len((1,2,3))4.取模 ...

  5. for(String s:v)

    s是遍历后赋值的变量,v是要遍历的list.可以通过以下语句进行测试: List<String> v=new ArrayList(); v.add("one"); v. ...

  6. 再战江湖。vuforia 初试

    AR 里发现一个可用的项目  vuforia,  试着用用. 也是在很久不写博客后(以前全在百度博客上) 再次写

  7. wmic 命令的一个汇总,功能很强大

    获得系统版本信息wmic datafile where Name='c:\\windows\\explorer.exe' get Manufacturer,Version,Filename 获得系统进 ...

  8. 前端面试题2016--HTML

    本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的!不可能的!不可 ...

  9. eclipse运行项目发生Unsupported major.minor version 52.0错误

    编程的世界错误多啊 各种乱七八糟的异常数不清啊 嘿嘿呦!!! 今天又碰到莫名奇妙的问题了:eclipse中原来的项目运行的好好的,前几天想学AndroidStudio于是就装了,为了节省硬盘空间节间, ...

  10. 常看常遇见之一——BS架构VS CS架构

    常看常遇见之一——BS架构VS CS架构 1.BS架构 即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构.在这种结构下,用户 ...