在项目上硬件工程师担当着一个中流砥柱的角色,下面我浅谈一下自己这几年来的一些个人经验及认识:

1.软件上需要配合嵌入式应用工程师以及驱动工程师

2.无线电硬件上配合射频工程师

3.PCB需要配合结构工程师

4.生产上需要协调供应商的物料、周期、备货和供应链

5.测试上配合EMI等检测

如下图(图片侵删)

一、硬件工程师基本分四个时期:

入门硬件工程师 在别人的指导下完成简单任务

普通硬件工程师 能完成基本任务

资深硬件工程师 主导项目并完成较难项目

专家硬件工程师 主导项目并且在相关行业有所突破

二、硬件工程师需要的知识

模拟电子技术、数字电子、C语言、嵌入式、电磁场、单片机、微机原理、电子线路设计、数据结构、高数等。

大家在大学的时候不管学没学好,其实毕业都应该捡起来慢慢的充实学习,举例来说:

1.当你做DC-DC 开关电源、小信号放大 ADC采集 的时候你会用到:

模拟电子技术 电子线路设计

2.当你做时序信号采集、判断逻辑电路以及开发FPGA、CPLD 的时候你会用到:

数字电子

3.当你做单片机、寄存器配置、linux驱动 的时候你会用到:

C语言 单片机 微机原理

4.当你做ARM、linux 的时候你会用到:

嵌入式 微机原理

5.当你做蓝牙、WIFI 5G 的时候你会用到:

电磁场

6.当你做 音频、视频算法 的时候你会用到:

高数 数据结构 等等

有很多知识,在大学的时候你缺乏实践所以不理解。如模拟电路的暂态到底在什么时候会用到?又如当你学高速信号时候会发现电磁波、高频电子电路开始有了它的意义;做音频、视频的时候,发现傅里叶变换是多么的重要。

三、硬件工程师的性格喜好

首先最重要的是,兴趣! 然后不能急于求成,要脚踏实地一点点去测试、去思考。硬件不同于软件,它实实在在的摆在那里,你不去思考永远不知道它的功能原理。硬件更多的是需要推理、思考、验证,不能想当然。

总之,愿意动手、愿意思考,有一定逻辑思维的人更适合做这份工作。

四、硬件工程师所需要的基本技能

大部分从学校出来的应届毕业生基本都是从51、STM32入手,麻雀虽小五脏俱全, 你想学的东西其实大部分在51、STM32中都可以学到。下面介绍硬件工程师必须掌握的工具。

1.原理图工具 :AD Candence

Altium designer对于新手入门是非常友好的,但是当你工作几年之后会发现Candence才是你的挚爱。它不易犯错,甚至有些死板,但不会发生让你后悔的事情。此外,Pads在南方尤其是东莞、深圳使用的更多一些。

所以,建议ad、cadence都会,且ad可以转cadence,没事可以多看看老吴博客,你们懂的。

2.PCB工具:AD Allegro

同样的还是一样的感觉。

3.仿真工具:

关于原理的仿真你可以使用 multisim 等;板级仿真可以使用hyper、cadence家的sigrity。这些都是很不错的仿真软件,当然hyper更容易上手。

此外,hfss ads这种射频仿真软件你也可以接触,包括驱动、寄存器配置、结构UG proe creo 等。

就个人而言,我对硬件的一切都非常感兴趣,当然不仅如此,硬件甚至已经走进了我的生活,就比如有时在做音频的时候我还会试着作一首歌( 当然我是学音乐的在之前)。

五、硬件工程师遇到的困惑

在刚刚开始的时候我是做单片机的,对于整体化设计很感兴趣。所以,大部分的项目中软件、硬件,甚至结构都是我自己操刀。

其实核心不是实际的细节,硬件电路板的细节你可以找各种专业的专门的人去完成,而你更应该专注的是整体。

最开始你会因为电平匹配的问题、信号频率问题大伤脑筋,但是当你做过五个、十个项目以后,只要你善于总结你就会发现最重要的其实是整体设计。

硬件需要不断地充实自己,不断学习、完善,因为硬件工程师需要的只是纷繁复杂。

六、实例讲解

1.技术上学习
以做蓝牙为例: 你需要知道天线的设计,你需要知道馈线的设计,最后到阻抗匹配、矢量分析仪的使用。所有的每一个分支、天线设计、射频电子线路、仪器仪表的使用都是一个可以学习很久的领域,甚至一辈子都学不完。

蓝牙又分为硬件部分,软件部分。而软件部分又分为协议栈、os部分以及驱动等,这些都是我们需要不断地扩展充实的。作为一个硬件工程师,你需要不断的扩展自己的视野,了解整个完整的体系,沟通各个方面的工程师以让自己更清楚产品的整体。

2.市场上了解
cost down永远是公司一直希望的!我们需要降低成本,每一个器件的选型、种类、成本、周期、渠道,我们都要熟悉。了解市场的动态,如别人家用的是什么,为什么。如何突破自己的产品,提高性价比,甚至像当年的苹果一样出众。

3.项目管理、质量管理
硬件工程师永远面临的是:产线的问题要找你,物料供应的事情要找你,产品返修要找你,现场维护要找你,这些都是提升的机会。那么问题来了,要用科学的方法做事情,多学习质量管理,可靠性设计的知识。

在生产的时候需要注意许多焊接问题,如炉温导致的虚焊,x-ray如何查看bga的焊接状况等,这些都是我们需要知道的。

4.知识的积累
技术部分也分行业,如视频、音频上的编解码、传输格式(bt1120 h323)等。

其次就是纯知识积累,如信号完整性、电源完整性、PCB设计、装配生产安装经验及电源AC DC的设计等等。

七、整体分析

一个产品的设计,首先是要从市场的角度考虑:受众群体、解决痛点、广告宣传方式、解决的痛点,我们用料稳定性要更强,着重考虑逻辑和结构材料。在广告宣传上,我们会更考虑突出的外表特点,于是我们对于产品的基本思路产生了。

1 规划设计、产品功能以及完善细节

我们需要根据产品经理的想法互相沟通,不断地产出新的创新型的idea,让自己的产品功能性更强,细节性更好,这样我们就对于大框的产品有了一个基础的认识。

2 功能实现

这个时候我们需要找到原厂、供应商去了解芯片,选择合适的芯片。

芯片参数:功耗、电源质量(电流 纹波 冲击 时序 浪涌 电流保护)

芯片采购:货期、阶梯价格、合同、NDA、服务质量

基本思路我们有了就做到了心中有数,就可以开始做整体的框图。

最后尤为重要的一点,一定要把思路画出框图进行评审。

3 原理图

这个阶段是时间花费最多的,如果是新做一个产品,大部分时间都需要阅读文档,熟悉芯片。

在原理图设计的时候我们经常遇到的问题:Input Capacitance 上拉、下拉功能,兼容性、功耗、电源供电、阻抗匹配、抖动、拉高的时间、IO电平、散热、控制逻辑统一芯片、调试口、功能的扩展性、各个时钟(重点关注主时钟和位时钟) 最大最小电平等。

4 PCB 设计

这是一个经验积累的工作,在一个有经验的工程师的带领下你会迅速学会很多绘制PCB的技巧。但是你想知道为什么,对不起,要多看看你的理论知识扎不扎实了,理论越扎实触类旁通的能力的就越好。

PCB设计时候经常遇到的问题:线宽、铺地、铜厚、封装等问题,还有装配失败、距离板边过近、阻抗控制、差分对组间等长(及组内等长)、检测不完整、出光绘等。

5 驱动

这个首先是对linux 框架的理解,或者相关的os ucos freertos 。甚至裸跑对于单片机本身总线 arm架构的理解,写出相应的符合架构的框架(待补充)

寄存器配置,这个考验你对于行业本身的技能知识。如音频,你要知道 aac sbc ldac 编码都是什么,编码解码速度pga是什么,增益控制 agc 、回声消除 、啸叫抑制等等。这会出现很多相关的知识,也是我们常见的行业积累的最重要的地方。

6 应用层 业务层逻辑

这个地方我做的基本比较简单,这地方总会有写xswl的问题出现,甚至整个人崩溃掉。

需要注意的主要有变量类型 溢出 逻辑if else 冗余等,以兼容不同硬件性能的提升。

7 测试

这部分会遇到仪器的使用,还有一些认证 、跌落测试、浪涌、静电、工频干扰等等。

八、总结

关于硬件工程师在不同类型公司中的思考:

很多硬件工程师会觉得自己的工作不是核心,没有像软件工程师一样备受重视,其实我们这个思考源于在硬件行业的不同趋势以及方向。我们首先看通信行业,类似华为的通信设计核心是通信协议,而完成通信协议的芯片,对于硬件工程师来说需要解决的有如下几个部分:

1.了解芯片内部 FPGA CPLD 触发器类别,以及核心的编解码系统的设计完善

2.板级PCB的高速电路设计,射频电子线路倍频等信号的设计

3.系统层为os提供的更多接口,方便应用层使用

只有这样一步步走下去,在这个方面不算深入的我们才会渐渐的变为专家,从而从事深层次的相关领域,实际上一个射频就够你吃一辈子的了。

后续我会不断的进行补充

画出多项式的硬件编码_硬件工程师职业规划相关推荐

  1. 软件工程师职业规划_为什么公司文化对您作为软件工程师的职业很重要

    软件工程师职业规划 The impact of a company's culture is reflected in a company's ability to achieve their goa ...

  2. 画出多项式的硬件编码_信息论与编码习题解答.doc

    信息论与编码习题解答.doc 还剩 61页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: JPEG-2000 是 ...

  3. 画出的点做交互_设计之下交互设计原型设计之概念设计

    目录 //交互设计// 「设计之下」---交互设计:交互设计师是做什么的?上线的产品中那一块是交互设计师的产物呢? ·项目启动 1.1「设计之下」---交互设计:项目启动之从想法到项目,什么是项目? ...

  4. python画出送花表情图编程_用Python来写一个男女相亲小程序|码农的情人节

    阅读本文大概需要5分钟 码农的情人节 一年一度的情人节要来啦,这个浪漫温馨的节日,走在大街小巷,走在地铁里,走在商场里,走在电影院,姑娘们手里几乎都捧着一束花,心里都是乐滋滋的,一脸幸福的样子,忽然想 ...

  5. 安卓禁用硬件加速_硬件加速  |  Android 开发者  |  Android Developers

    从 Android 3.0(API 级别 11)开始,Android 2D 渲染管道支持硬件加速,也就是说,在 如果您的目标 API 级别为 14 及更高级别,则硬件加速默认处于启用状态,但也可以明确 ...

  6. 画出降维后的图片_有没有人能画出《三体》里太阳系被二维化的概念图?

    按照 @小夫子老男孩 答案中视频的思路,我自己画了几幅星球降维的效果图.[manim]降维打击可视化_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com 视频中把三维 ...

  7. 产品硬件成本分析_硬件项目中的错误成本

    产品硬件成本分析 Hello everyone! 大家好! In this article, we will consider common errors in the design of elect ...

  8. python硬件驱动_硬件驱动python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! linux获取linux硬件信息的方式,有很多. 1.使用puppet或者sal ...

  9. 画出降维后的图片_机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD...

    PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...

  10. python画出roc曲线 auc计算逻辑_从scikitlearn(sklearn)的多类数据计算AUC和ROC曲线?...

    您需要使用label_binarize函数,然后您可以绘制一个多类ROC. 使用虹膜数据的示例:import matplotlib.pyplot as plt from sklearn import ...

最新文章

  1. 二阶系统阶跃响应实验_自控原理二阶系统阶跃响应及性能分析实验报告
  2. 笔记-信息化与系统集成技术-信息系统的特点
  3. 单片机和java_java和单片机哪个难学?
  4. wxWidgets:wxGraphicsContext类用法
  5. 硬件知识:固态硬盘相关知识介绍
  6. Logstash入门简介
  7. IBM 收购 RedHat(红帽)!340 亿美元
  8. PyQt5学习笔记02----初探Qt Designer 设计师
  9. RabbitMQ学习之Flow Control
  10. 【LogStash】LogStash 配置后无法启动的问题
  11. 蓝桥杯 PREV-27 历届试题 蚂蚁感冒
  12. 【博士后招聘】浙江大学杨杰课题组-医学AI/大数据分析/自然语言处理
  13. OpenMP4.0: #pragma openmp simd实现SIMD指令优化(ARM,X86,MIPS)
  14. 民办三本,我从3K到15K的一年
  15. 在emacs中使用百度翻译
  16. mysql表空间查询
  17. SSM出租车查询系统 毕业设计-附源码220915
  18. collection集合 厂家_一篇搞定Java集合类原理-WEB资讯专栏-DMOZ中文网站分类目录
  19. 华为市场上架app签名Pepk工具 使用
  20. 电子信息工程考研专业c语言,2018电子信息工程考研方向有哪些

热门文章

  1. 【前端JS】input textarea 默认文字,点击消失
  2. jquery validate的验证规则和验证提示
  3. mysql服务启动失败原因
  4. 判断Linux/Unix为32位或64位
  5. FAQ 工作薄及工作表
  6. CentOS安装Xampp环境
  7. php调用第三方接口代码,PHP接口编程——调用第三方接口获取天气
  8. mysql where连接_MySQL连接查询on和where的区别和顺序
  9. 傅里叶变换对_复变函数6傅里叶变换
  10. python中for循环遍历文件_Python中的用for,while循环遍历文件实例