每年秋招一到,硬件岗的同学就开始在笔试题海里扑腾。我把小米这5套硬件研发工程师的笔试题从头到尾做了三轮,第一轮按考试节奏卡时间,第二轮逐题拆考点,第三轮专盯错题和“看似会做其实拿不到分”的题。三轮下来最大的感受是:这套题不是靠背知识点就能过的,它真正在检验你有没有形成硬件工程师的完整思维闭环——从原理到选型,从画板到调试,从信号完整到系统可靠。
很多同学刷题喜欢刷“答案”,但我更建议刷“出题逻辑”。硬件笔试不同于软件刷LeetCode,它没有固定题库,却有非常清晰的能力评估框架。这篇文章我就结合这5套卷子,把我拆解到的考试结构、高频考点、答题思路,以及我复习时踩过的坑,全都摊开来讲。
1. 五套卷子背后的“能力体检表”:硬件岗到底在考什么
第一遍做这5套卷子的时候,我习惯性地按课程名去归类题目——电路原理、模拟电子、数字电子、嵌入式、信号与系统。归完类发现有个问题:很多题目你很难说它属于哪一门课,比如一道关于MCU功耗的题,既涉及数字电路的状态切换,又涉及电源电路的转换效率,还涉及嵌入式低功耗模式的配置。
这说明出题人根本不是在考课程,而是在考“你做硬件项目的完整能力链”。我把5套卷子上百道题全部打散重新归类,最后得到了六类核心能力,每一类对应的题型分布也相对稳定。
1.1 六类能力与对应题量占比
我统计了一下这5套卷子的题型分布,虽然每套题不完全一样,但大致比例可以参考:
| 能力模块 | 典型题目方向 | 题量占比(约) | 难度分布 |
|---|---|---|---|
| 模拟电路基础 | 运放电路分析、三极管工作状态、RC充放电、二极管特性 | 20% | 基础偏多,偶尔一道陷阱题 |
| 数字电路与逻辑 | 组合逻辑化简、时序逻辑、状态机设计、时序约束 | 25% | 中等偏上,大题集中区 |
| MCU与嵌入式基础 | 寄存器操作、中断、定时器、低功耗、外设协议 | 20% | 考查是否真的写过代码 |
| 电源与硬件系统 | DC-DC拓扑、LDO特性、去耦/滤波、功耗估算 | 15% | 概念多、计算也不少 |
| 信号与通信接口 | I2C/SPI/UART时序、信号完整性基础、眼图概念 | 10% | 既有背诵又有理解 |
| 笔试主观题/工程场景 | 设计方案题、故障排查思路、选型对比 | 10% | 拉开差距的关键区 |
从这个表能看出,整套题对“工程思维”的考查权重远高于“公式记忆”。比如数字电路占了四分之一,而且不是让你化简一个卡诺图那么单纯,经常是把一个时序问题包装成一整段场景描述,要你自己提取时序参数。
1.2 从出题风格反推人才画像
我复盘完5套题后,对小米硬件研发岗位的人才画像基本有了判断。它要的不是一个“会做题的学生”,而是一个“能接手产品硬件开发的准工程师”。为什么这么说?有几个细节很说明问题。
第一,题目极少要求你背诵具体芯片型号或特定厂商的寄存器地址,而是把重点放在“当你拿到一块新芯片时,你该怎么看数据手册、怎么配置、怎么排查”。第二,很多题目以“某个产品现象”做引子,比如“产线上某批设备的I2C通信偶发失败,你怎么定位”,这种提问方式明显来自真实项目经验。第三,它在部分主观题里给了开放性空间,答案不唯一,但要求你给出分析和推理过程。
所以,如果你现在还在靠死记硬背“某某芯片有几根引脚”来备赛,趁早调整方向。硬件笔试的核心逻辑始终是:原理要懂,系统要通,动手要实。
2. 电路题不是算数题:模拟与数字模块的底层逻辑
很多同学一看到电路计算题就条件反射地套公式,结果经常是“数字凑对了,但分析过程错了”。我在第二轮复盘时专门盯着这类题看,发现它们的共同特征是:所有参数都藏在题干的“文字描述”里,而不是直接给你电路图加数据。
2.1 模拟电路的四个高频模型
这5套卷子里的模拟电路题,基本围绕四个模型展开。
第一个是运放模型。必考反向放大、同相放大、跟随器,偶尔还会考差分放大。基础到不能再基础,但陷阱往往藏在“虚短虚断的适用条件”里。比如有的题目只给运放的开环增益,不直接说“理想运放”,这时候把输入端电流近似为0,误差有多大,就需要心里有数。另外,单电源供电下的共模输入范围和输出摆幅限制,也是容易丢分的地方,因为很多同学只习惯双电源的教科书模型。
第二个是RC充放电模型。这类题几乎每套都出现,但问法五花八门:有时候问时间常数,有时候问稳态电压,有时候把它包装成“上电时序”问题——比如某芯片的复位引脚需要高电平持续多少毫秒,而这个高电平是由RC电路产生的,问你电阻电容怎么选。这种题表面是计算,实际是考查你是否理解RC电路在真实系统中的用途。
第三个是二极管和三极管模型。二极管的正向压降、反向恢复时间、三极管的饱和与放大状态判断,都是常规考点。但这里有道题我记得很清楚,它给了一个NPN三极管电路,问“当输入电压从0逐渐增大到5V时,三极管工作状态如何变化”。这其实在考三个区的切换条件和临界点计算,很多人一上来就套饱和公式,忘了先判断基极电流够不够。
第四个是直流偏置与静态工作点。这部分主要针对共射放大电路,考静态工作点的计算,以及温度变化对工作点的影响。能顺便提一句“引入负反馈来稳定静态工作点”,会让阅卷人觉得你真有工程意识。
2.2 数字电路的题型升级方向
数字电路在这5套卷子里占的比例最高,但难度也最“绵里藏针”。组合逻辑的题相对好拿分,比如用卡诺图化简、用8选1数据选择器实现逻辑函数,这类题只要方法熟练,基本能拿到大部分分数。
真正拉分的是时序逻辑。我印象最深的一道题是让设计一个三分频电路,要求占空比50%。这道题看着简单,实际上一堆人会错——因为奇数分频且占空比50%需要同时用上升沿和下降沿触发来组合输出。凡是只用一个时钟沿去做触发器的同学,统统做不出来。
另一类高频题型是“分析给定时序图”。题目会给你一个三段式状态转移图和对应的波形,要求你判断电路功能,或者反推状态编码。这类题考的是“读图能力”,平时如果只在Multisim里看仿真波形,不训练手绘时序图的习惯,考试时会非常吃亏。
关于74系列芯片的扇出系数、传播延迟时间、高低电平阈值,也时有出现。这些参数单独背没什么意义,但如果结合“多个负载并联导致逻辑电平被拉低”的场景,就变成了一道很好的应用题。我在其中一套卷子里就看到一道关于总线冲突的题,本质上就是扇出与负载电容的问题。
3. 嵌入式与MCU考点:它考的不是知识,是是否真的点过灯
嵌入式相关题目在这5套卷子里的比重很稳定,大约五分之一。但奇怪的是,题目本身很少直接问“某某寄存器的第几位是什么功能”,而是反复从“现象”出发考你排查和设计能力。
3.1 中断与定时器的工程陷阱
中断是几乎必考的。常见问法有:中断触发条件是什么;中断服务函数里哪些操作应该避免;多个中断同时到来时,优先级如何决定;在一个中断里能不能再去关另一个中断。这些内容你在课堂上学过,但如果没有实际写过的确会答不扎实。
我翻到一道题印象很深,它说“某系统在低功耗模式下用定时器唤醒MCU,但实际功耗远高于数据手册标称值,可能是什么原因”。这道题考的不是定时器本身,而是完整的低功耗链条:外设时钟是否关闭、GPIO是否配置成浮空输入导致漏电、电源芯片的静态电流是否大于MCU休眠电流、甚至是LDO空载时是否工作在不稳定状态。我在实际项目中踩过后面这个坑,所以在答卷上多写了两条,这跟自己有没有调过板子关系很大。
还有一类题是初始化项的缺失。比如“使用SPI通信时,数据总是错位,请列出可能原因并说明排查顺序”。标准答案方向不外乎时钟极性和相位配置不对、没等发送寄存器空就写下一字节、时钟频率超过从设备极限、片选信号时序不满足。但如果只是背过这些点,碰到题目换了一个外设、换了一个现象(比如第一个字节正确但后续全乱),又会措手不及。
3.2 从外设协议到总线底层的理解
I2C、SPI、UART三种总线几乎是必考的,而且经常放在同一道题里让你做对比。这块的对比维度一般包括:引脚数量、通信速率、主从关系、数据帧格式、是否支持多设备、是否需要片选信号、有无应答机制。
这里我要特别强调一句:别只背结论,要会推演。比如“为什么I2C需要上拉电阻”,如果你能从开漏输出的结构说起,说明你是真的理解;如果只回答“因为规范要求”,分数大概率要打折扣。同理,SPI为什么比I2C快,除了时钟频率上限之外,还跟协议开销有关——I2C每传输一个字节都带应答位,而SPI可以连续发送,这个对比经常被忽略,却是理解两种总线本质差异的关键。
UART相对简单,但“波特率误差”题目里经常出现,比如外部晶振频率不是标准波特率的整数倍,问误差是否在可接受范围内。这类题需要实际算一遍,而且通常会给接收端的过采样位数,比如16倍过采样。我第一次做的时候直接忘了这个参数,丢了不少分。
4. 电源、信号完整性与工程实践:真正拉开差距的部分
如果说前几章考的是基础功底,那电源、信号完整性等题目考的就是一个硬件工程师的上限。这5套卷子中,主观题和工程场景题的占比不大,但区分度极高,很多人的分数就是在这里被拉开差距的。
4.1 电源拓扑的选型逻辑
LDO和DC-DC的对比是必考题。对比维度包括转换效率、输出纹波、成本、电路复杂度、适用压差场景等。这里不能只回答“LDO效率低、纹波小,DC-DC效率高、纹波大”,要能解释为什么——LDO靠调整管消耗压差来稳压,线性调节的代价是多余能量变成热量;DC-DC靠开关管的占空比调节能量传输,用储能元件平滑电压,但开关动作必然带来纹波。
还有一道关于电源纹波的计算题,大概意思是某Buck转换器开关频率为2MHz,电感电流纹波为30%,问输出电容的选择下限。这种题如果不熟悉Buck的基本公式,没法下手,但只要平时搭过电路、看过数据手册里的公式,做起来就很快。
另外,去耦电容的选型也是一个反复出现的考点。0.1uF用于高频去耦、10uF用于低频储能,这已经快变成“口诀了”,但题目往往不满足于此,还会追问“为什么常用0.1uF而不是1uF”。需要答出电容的谐振频率与自谐振特性,以及ESR、ESL对高频滤波能力的影响。
4.2 信号完整性的常见出场方式
信号完整性在这5套题里占比不算大,但几乎每套都有。最常出现的是“反射”和“串扰”两个概念。
反射问题通常会包装成“长走线上为什么需要端接电阻”的形式。答题时,要提到阻抗不匹配导致部分能量反射回源端,振铃会影响逻辑电平判断,而串联端接或并联端接能吸收反射能量。能画出示意图是最好的,手绘不强求好看,关键是波形趋势要画对:没有端接时的过冲、振铃,端接后的波形收敛。
串扰问题通常出现在平行走线场景,题目会让考生解释为什么两条长距离平行线之间会互相干扰。答案方向包括:感性耦合(互感产生感应电压)、容性耦合(寄生电容传输噪声)、以及减小串扰的几种手段——拉大间距、加地线隔离、减少平行长度、降低信号边沿速率。后一条“降低边沿速率”很多人写不出来,因为它不是一个“放之四海而皆准”的方法,但在工程中反响很好。
4.3 硬件故障排查题的答题套路
5套卷子里至少有8道题属于“给出一个故障现象,让你分析原因”的类型。这类题是所有题型里最接近真实工作的,也是我最推荐大家认真研究的。
我自己的答题套路是“分层排查法”。第一层,电源:先确认各路电源电压正常,纹波在可接受范围内;第二层,时钟:确认晶振起振,频率准确;第三层,复位:确认复位时序正确,不是处于复位状态;第四层,配置:确认初始化代码、寄存器配置无误;第五层,硬件连接:确认引脚电平、焊接、信号完整性;第六层,器件本身:考虑芯片损坏或个体差异。按这个顺序写,踩分点基本都在,而且显得思路清楚。
5. 主观设计题与方案题:别空谈,要让阅卷人看到你的工程思维
这5套卷子后面的主观题风格差异比较大,有些是问“某智能硬件产品,电池供电,要求续航一年,请设计电源方案”,有些是“传感器数据采集系统,要求低功耗,列出MCU选型关键指标”。这类题没标准答案,但很能看出一个人的功底。
5.1 方案题的答题框架
我总结了一个比较通用的框架,写这类题时基本按这个顺序展开:先列需求指标,再拆解功能模块,最后落到具体选型与参数。
举个例子,题目如果让设计一个电池供电的温湿度采集终端,我会这么拆:系统分传感器、MCU、无线通信、电源四大部分。传感器选型关注静态电流和测量周期;MCU选型关注休眠电流与唤醒时间,比如选择带多个低功耗模式的MCU;通信方案关注峰值电流与平均电流,比如采用间歇性发送策略降低占空比;电源部分则估算总平均电流,反推电池容量,并且考虑DC-DC和LDO的搭配,让整个系统在轻载时主要以LDO供电、重载时由DC-DC支持。
这个框架的好处是,即使你对具体型号不熟,只要思路清晰,就不会得零分,而且能体现系统级视野,这是硬件工程师区别于“画板工”的关键。
5.2 如何让你的方案更像“做产品的方案”
我看到很多同学的方案题写得很“教科书”,比如列了一堆理想参数,但没有任何取舍理由。这类答案往往分数不会高,因为真实硬件设计里所有选择都是“权衡”的结果。
什么才算“做产品的方案”?我认为至少要体现三点。第一,成本意识:选贵的芯片和选合适的芯片之间,你能说出为什么选择后者;第二,可制造性:你是否考虑过这颗料在市场上的供货情况、封装是否利于焊接和返修;第三,裕量设计:你选择的参数是否留有温度、电压波动、批次差异的余量。
举个例子,有一道题让比较两种电源方案,一种用LDO,一种用Buck。教科书式的回答只列效率、纹波、复杂度,但好一点的回答会加一句:“考虑到产品需要过EMC认证,开关电源的开关频率及其谐波是重要的干扰源,如果结构上没有足够的屏蔽空间,我倾向先做LDO方案,把EMC风险降低,再用结构布局来解决散热问题。”这种话一出,阅卷人就知道你是真做过产品的。
6. 复盘5套卷子后,我总结的高频失分点与备考建议
三轮刷题复盘后,我把自己的错题分成了几类,每一类的成因和解决方式都很明确。这些坑单看都不算大,但组合起来就是一道“及格到优秀”的鸿沟。
6.1 高频失分点Top 5
第一,运算放大器题目默认“理想运放”,忽略了题目没有说理想。比如“输入偏置电流”在平衡电阻不匹配时会在输出端产生直流误差,这在精密测量类题目中常成为隐藏考点。
第二,时序题里建立时间与保持时间条件混用。很多同学只记“建立时间不满足会导致采错数据”,但分不清到底是路径延迟太大导致建立时间不满足,还是时钟偏移导致保持时间不满足。这两者的解决手段是完全相反的。
第三,RC充放电计算时忽略“初始状态”。有相当一部分题目不是从零开始充电,而是从某个中间电平开始。这需要用到三要素公式,而不是简单地套用零状态响应。
第四,MCU低功耗分析只关注MCU本身电流,忽略外设和电源芯片的贡献。真实系统里,一颗LDO的静态电流可能比MCU的休眠电流还高,这类电池续航题里如果漏掉这个点,思路就对了一半。
第五,主观题答得太“飘”。比如问“如何降低系统功耗”,很多同学写“用低功耗MCU”“优化算法”,但没有落实成具体方案。正确的写法是给出“MCU在待机模式下关闭所有外设时钟、定期唤醒、以最低频率运行”这样的可执行语句。
6.2 备考时间怎么分配
如果从零开始准备硬件笔试,我觉得三个月是一个比较合理的周期。第一个月打基础,把模拟电路、数字电路、嵌入式三块核心知识快速过一遍,配合做一些课后题巩固;第二个月专门刷题,重点是限时训练,每套题控制在90分钟左右,模拟真实考试节奏;第三个月主攻错题和主观题,把每一道错题背后的知识点彻底搞懂,同时开始整理自己的“方案题套路”。
刷题的时候我建议准备一个错题本,但不要只会抄错题,每道错题下面至少写三行:错因分析、正确思路、同类题变式。比如“RC电路时间常数算错”这一条,后面可以补上“注意初始状态”“注意等效电阻是否包含源内阻”“注意开关切换瞬间电容电压是否突变”三类变体,这样才算真正消化。
6.3 笔试结束别放松,面试会接着追问
最后提醒一句,笔试的结束其实是面试的开始。我在面试中遇到的很多问题,其实都是笔试里没有完全展开的点。比如笔试里让我简述De-Cap选型依据,面试官就开始追问“那你怎么测量一块PCB上的电源噪声”,再往下还会追到“示波器的带宽和采样率怎么选”。这也印证了我一开始的判断——这套笔试不是一道门,过完就完事,它是一张地图,标出了之后面试中所有可能展开的方向。
平时我建议多动手搭电路、多看看真实的原理图设计规范、多在实验室里折腾示波器和电烙铁。纸上谈兵过不了硬件笔试,更走不进硬件研发的日常。把自己当成一个正在做产品的人去答题,比把自己当成一个正在考试的学生去猜题,效果好得多。