ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

从Datasheet到硬件调试:硬件工程师成长之路的资料精读法

2026/9/17 11:12:09 拓冰建站 浏览量
从Datasheet到硬件调试:硬件工程师成长之路的资料精读法 1. 为什么一份好资料能顶一节硬件课硬件这行有个挺反直觉的现象真正把人拉开差距的往往不是会不会用示波器也不是手里过了多少块板子而是有没有老老实实把几份好资料读完、读透。我带过几个新人有人三个月就能独立改一版小板子有人干了一年还在问这个电容为什么放这儿。差别不在聪明程度在于前者把一份规格书当课本来上后者把规格书当字典来查——只在出问题的时候翻两页。硬件工程师成长之路说穿了就是这么回事资料读得越细踩的坑越少而踩坑这件事在硬件上是真的要花钱的一次打样几百到几千一次批量事故可能是六位数。这篇东西我想聊的就是这个怎么把一份资料读成一节硬件课。它适合刚入行的硬件调试新人也适合做了几年但一直靠抄参考设计混日子的朋友。基础知识点之所以叫基础是因为它们出现的频率太高了高到你几乎在每一块板子上都会撞见——电源树、复位、时钟、片选、上拉、去耦。这些名词你在面试题里见过在硬件八股文里背过但真正理解了它们在电路里怎么起作用你才算跨过那道坎。我下面会结合自己调试过程中的实际记录把资料里那些看着眼熟但说不清的知识点一个个拆开讲。1.1 硬件知识的密度差到底差在哪同样叫学硬件有人学的是结论有人学的是推导过程。比如上拉电阻一般取10k这句话前者记住了后者会去问为什么是10k而不是1k这个问题的答案藏在两个公式里。上拉拉得太小I2C从机拉低时灌电流会超标超过器件规定的VolIol拉得太大总线电容充放电时间常数变大上升沿变缓在400kHz甚至1MHz的速率下波形直接变成圆角梯形采样点还没到高电平阈值就被判成低电平通信随机出错。一个10k背后其实站着总线电容、上升时间、灌电流能力三个约束条件。这就是密度差。一份好的资料——我指的不是那种三步搞定XX的营销文而是原厂的datasheet、应用笔记Application Note、参考设计手册、评估板原理图——它的信息密度是极高的每一句话背后都可能对应一个设计约束。你读十篇二手解读不如把一份原厂AN啃一遍。硬件电路设计这件事二手信息最大的问题是丢掉了上下文而上下文恰恰是判断能不能照抄的关键。参考设计里用10k可能是因为那颗芯片的总线电容只有50pF你换了个走线更长的板子电容变成150pF还是10k就可能出问题。1.2 判断一份资料值不值得精读的四个硬指标不是所有资料都值得你花一个周末去啃。我挑资料有个自己的土办法看四条判断维度值得精读的表现直接放弃的表现出处芯片原厂、头部模组厂、器件厂商官方无署名搬运、只贴图不讲条件参数条件每个电气参数都标注测试条件只给典型值不给最小最大值时序有完整时序图并标注tSU/tH/tPD只写注意时序四个字版本与勘误有Revision History和Errata从不更新也没有错误说明第三条尤其关键。硬件调试的时候时序参数是你唯一能拿去和示波器波形对账的东西。资料里写了CS建立时间最少要5ns你测出来只有2ns那问题就锁定了不用在那儿猜是不是芯片坏了。反过来如果资料里根本没有这个数字你就只能靠试试的成本就是时间和板子。所以我看一份资料第一件事是翻它的时序章节和电气特性表这两块如果写得含糊后面基本不用看了。提示原厂Errata勘误表是最容易被跳过、又最值钱的部分。它列的是这颗芯片已知会出问题的地方以及规避方法等于别人替你把坑标了一遍。1.3 我踩过的三类看起来很好的资料坑第一类是抄来抄去的电路图。网上流传的一张某电源芯片的应用图被转了几十次画得挺漂亮但输入电容被从22uF改成了10uF输出电感也从4.7uH换成了10uH没人标注改动原因。我照着做过一版空载正常一加负载纹波就起飞。后来翻原厂手册才发现那颗芯片在轻载时会进入跳周期模式电感量选大了环路响应变慢输出直接振荡。图能抄参数不能抄这是硬件这行的铁律。第二类是只给结果不给条件的选型推荐。比如有人告诉你某颗LDO噪声低适合给ADC供电但没有告诉你它的PSRR是在1kHz下测的而你的开关电源噪声尖峰在500kHz。结论没错前提错了用上去照样进ADC。第三类最坑是版本过期的资料。器件迭代很快同一型号不同批次甚至不同封装那个绝对最大额定值都可能变。我现在养成一个习惯动手前一定去官网拉最新版看到Revision字母不是最后一版就重新下载。这三类坑加起来让我损失过两轮打样和差不多三周时间从那以后我对资料的信任是分级的原厂最新版模组厂手册参考设计任何二手内容。2. 把资料读成课规格书里的基础知识点拆解资料到手了接下来是读法。很多人读datasheet是从第一页的Features开始逐行往下看的读了两小时还在功能描述到电气特性表已经困了。我的顺序是反的先看绝对最大额定值和工作条件再看时序再看引脚定义最后才回头看功能描述。理由很简单前三个决定了你的板子能不能活最后一个只决定它能不能干活。顺序反了你会花大量时间在这芯片支持什么协议上却漏掉了这颗芯片的IO耐压只有3.6V这种致命信息然后一上电就把它烧了。2.1 绝对最大额定值不是设计目标是死亡线新手最容易犯的错是拿Absolute Maximum Ratings当设计依据。看到VIN最大6V就把输入设成5.9V觉得还有余量结果批量时电源纹波一叠加或者热插拔瞬间的尖峰一冲芯片直接报废。正确做法是以Recommended Operating Conditions为准然后留出余量。我的习惯是电源类参数留20%以上IO电压留10%以上温度留至少15℃。这不是保守是因为规格书上的最大额定值通常是瞬时、不重复、单点条件下的极限不是让你长期贴着跑的。再往下还有一个更隐蔽的点电气特性表里的每个参数都带着条件。比如某颗电平转换芯片写着输出高电平VOH≥2.4VIOH4mAVCC3.0V温度25℃你不能拿这个数字去推85℃、VCC2.7V的场合。参数表和测试条件是一体的拆开看就是耍流氓。我审别人的原理图时第一眼看的就是关键器件的电压和电流有没有超工作范围第二眼才看拓扑对不对。2.2 电源树、上电时序与复位三个最容易被忽略的根基一块板子上所有的信号问题最后有相当一部分能追溯到电源。电源树的设计逻辑是先明确每一路需要多少电压、多大电流、噪声能容忍到什么程度再决定用DCDC还是LDO最后才是选型号。逻辑顺序搞反了很容易出现先选了个便宜的DCDC结果噪声太大带不动ADC只能再加一级LDO这种返工。上电时序这件事在单电源系统里你可能一辈子碰不到一旦碰到多电源的FPGA、SoC、多轨供电系统它就是头号杀手。很多器件要求核心电压先上、IO后上或者反过来次序错了会有内部寄生二极管导通、闩锁、甚至长期可靠性下降的问题。资料里一般会给出Power-Up Sequence的要求和最小间隔时间你要做的是把这条要求翻译成实际电路用PGPower Good信号串联、用使能脚级联、或者用专门的时序控制器。复位这块基础但极其重要。复位芯片、RC复位电路、看门狗这三样东西的区别要分清楚。RC复位便宜但复位脉宽受温度和电源斜率影响大适合对可靠性要求不高的场合专用复位芯片能保证在电源低至1V左右仍能维持有效复位适合严肃产品。我见过一个项目为了省两毛钱用RC复位低温下复位脉宽缩短MCU偶尔起不来查了两周才定位。2.3 拿笔算一遍几个必须会的经典计算资料里给的是公式落到板子上要变成具体阻容值。我挑几个出场率最高的算一遍这些都是我实际用过的值。LED限流电阻。假设3.3V供电LED正向压降Vf取2.0V想要5mA。R(3.3-2.0)/0.005260Ω标准值取330Ω实际电流约3.9mA亮度够用。这里要注意Vf随电流和温度变化用的时候按最坏情况Vf最小算最大电流别让LED超额定。I2C上拉电阻。这个计算最能体现基础不基础。下界由灌电流决定Rmin(Vdd-Vol)/Iol。取Vdd3.3VVol0.4VIol3mA得Rmin≈967Ω。上界由上升时间决定Rmaxtr/(0.8473×Cb)。取总线电容Cb100pF标准模式tr1000ns得Rmax≈11.8kΩ快速模式tr300ns得Rmax≈3.5kΩ。所以快速模式下选2.2k或1.5k比较稳妥选10k就是给自己埋雷。这条公式我贴在工位上贴了三年。RC复位脉宽。电容通过电阻充电电压V(t)Vcc×(1-e^(-t/RC))。若复位阈值是0.7×Vcc解出t1.204RC。取R10kΩ、C100nFt≈1.2ms满足绝大多数MCU的复位要求。要让脉宽翻倍就把C换成220nF别去动R因为R太大抗干扰能力下降。三极管基极电阻。驱动继电器Ic50mAβ取100饱和设计要按β的1/3~1/5给基极电流即Ib≥1.5mA。基极驱动电压3.3VVbe取0.7VRb≤(3.3-0.7)/1.5mA≈1.7kΩ取1kΩ保险。这里的关键认知是三极管做开关用的时候不能按线性放大区的β算必须过驱动才能保证深度饱和、压降小。ADC输入抗混叠RC。假设采样电容Cs4pF采样开关电阻Ron1kΩ要求充电误差小于0.5LSB12位即1/4096约0.024%需要约8.3个时间常数。τ(RonRsrc)×Cs如果源阻抗1kΩτ8ns需要约67ns的采样时间。你对着资料里的采样时间寄存器一算就知道源阻抗能不能再加串阻或者必须加运放缓冲。这类计算在GD32H7、STM32这类MCU的ADC硬件滤波设计里天天用得上。2.4 那些被当成八股文的细节全是实战经验去面试的时候硬件工程师面试题里常问去耦电容为什么用0.1uF和10uF并联很多人答滤高频和低频。这个答案不算错但太粗。更准确的说法是大电容的等效串联电感ESL和等效串联电阻ESR在MHz以上让它失去作用小电容负责高频段大电容负责中低频段两者并联还会在某个频点形成反谐振峰所以真正讲究的做法是按频段铺一排容值差10倍的电容而不是只放两颗。去耦电容的摆放也是基础中的基础。电流回路面积越小辐射和抗扰越好所以电容要贴着芯片电源脚放过孔要短、要多电源脚先过电容再过孔别反过来。这个细节在原厂布局指南里一般都有图是那种看一眼省一个月的内容。还有一类常被忽略的片选、使能、上拉/下拉、strap引脚。这些引脚在原理图上不起眼但配置错了整颗芯片的行为都不对。以太网PHY的strap电阻就是典型一个电阻决定PHY地址、决定接口模式、决定时钟方向配置错了现象是链路能起来但丢包。这类信息只在datasheet的寄存器描述和硬件设计指南里二手的原理图里往往被简化成一根线你抄过来根本不知道那个电阻是干嘛的。3. 从资料到板子硬件调试的完整流程资料读完了板子拿回来了接下来才是真正的考试。我一直认为硬件调试的核心不是发现问题而是把问题范围缩小。新手常见做法是全板乱测示波器探头到处怼测得越多越乱。老手的做法是分层电源层→时钟层→复位层→通信层一层确认没问题再进下一层。这个顺序不是随便定的因为后面的层依赖前面的层电源不对你测什么信号都是错的。3.1 上电之前静态检查清单与万用表打法我给自己定了个死规矩任何新板第一次上电前必须做完静态检查一步都不能跳。这套流程救过我不下五次。目视检查器件方向、极性电容、连接器、焊接虚焊、锡渣短路尤其是QFN和BGA底部。万用表二极管档测各路电源对地阻抗正常应该是几百欧到几十千欧如果读数是0.几欧说明有短路先别上电。测关键信号对地阻抗判断有没有焊接桥连。检查电源输入极性确认稳压器使能脚的分压电阻装对了。确认跳线、strap电阻、配置电阻和你的设计意图一致。检查测试点是否全部引出别等调试时才发现最关键的信号没有测试点。这份清单花不了十五分钟但能挡住绝大多数一上电就冒烟的悲剧。我就吃过一次亏偷懒没测阻抗直接上电一颗钽电容方向焊反上电三秒就开始发烫冒烟连带把旁边的DC-DC也带走了。3.2 上电之后按电源、时钟、复位、通信四步走上电第一步不是看能不能跑起来是测电源。用示波器看每一路的直流电平、纹波峰峰值、上电斜率。纹波差一点没关系但不能有周期性的大振荡。测的时候记得把探头地线用弹簧针而不是长鳄鱼夹长地线会把开关噪声引进来让你误判。我自己定了个经验阈值LDO输出纹波控制在输出电压的1%以内DCDC控制在2%以内超了就回头查布局和电感选型。第二步测时钟。晶振起振是很多板子的第一道关。测法有两种无源晶振用示波器探头测一端会引入电容导致频偏最好的办法是测芯片的时钟输出脚MCO或者用频谱仪近距离感应。有源晶振直接测输出脚。要确认的不是有没有波形而是频率对不对、幅度够不够、上升时间是否满足芯片要求、有没有间歇性停振。第三步测复位。复位信号上电后是否维持了足够时间释放时是否有毛刺释放点是否晚于电源稳定点。我看过太多MCU偶尔不启动的案例最后都是复位释放得太早。第四步才是通信这里要拿时序图对波形前面说的那些tSU/tH参数就是这时候用的。3.3 示波器上看到什么才算对这个问题其实挺关键。判断波形对不对靠的不是感觉是三个东西幅度、时序、单调性。幅度看的是有没有过冲、欠冲、低电平是否足够接近0、高电平是否够高时序看的是建立保持时间、脉宽、周期、相位关系单调性看的是边沿有没有回勾回勾意味着阻抗不连续常见于走线太长或者过孔太多。还有一个很多人不注意的测量点到芯片引脚的距离。探头地弹簧要就近接地测量点要在芯片引脚处而不是走线中间否则你测到的是走线上的波形不是芯片看到的波形。高速信号上这两个位置能差出一大截。3.4 实录一SPI硬件片选与软件片选时序图不会骗人有一次做一个SPI Flash加传感器的板子两条SPI挂在同一个控制器上。为了省引脚软件同事把其中一路的CS用GPIO手动控制另一路用硬件CS。结果现象很怪单独访问任何一个从机都正常交替访问就开始偶发读错数据。我先测硬件CS那一路波形很干净CS在时钟之前建立、之后保持符合手册要求。再测GPIO那一路问题就出来了在DMA传输模式下GPIO拉高的时机依赖中断响应中断被更高优先级任务延迟了几微秒导致CS在最后一个时钟沿之后过早拉高从机还没把数据推完就被取消了。手册里明明写着CS要在最后一个时钟沿后保持至少tHDCS10ns我们实际只有几ns偶尔负值。后来改成用控制器的硬件CS或者把GPIO的拉高操作放到DMA传输完成中断里并且提高优先级问题消失。这件事让我记住了一条硬件片选不是高级软件片选不是灵活选哪个取决于你的实时性余量。SPI硬件片选与软件片选的区别本质是由硬件时序保证还是由软件调度保证后者在中断密集的系统里是不可靠的。这条认知后来写进了我们团队的检查项。3.5 实录二千兆口CRC错误与ADC硬件滤波另一个印象深刻的案例是千兆以太网。板子百兆跑得好好的一切到千兆就大量接收CRC错误。手册翻了三遍硬件设计指南也读了最后定位到两个点。第一是RGMII接口的延时模式。MAC侧和PHY侧都开了内部延时或者都没开都会导致采样点偏移。这颗PHY支持通过strap电阻和寄存器两种方式配置delay我们的strap电阻装错了一个导致PHY默认开了Rx delay而MAC也开了叠加之后时序偏了将近2ns千兆下就出错、百兆下容限大所以正常。第二是25MHz参考时钟我们用了普通的无源晶振频偏和抖动指标不够换成了满足±50ppm、低抖动的有源晶振之后CRC错误彻底消失。ADC那边则是个资料里写了但没当回事的例子。芯片手册明确写了源阻抗不能超过某个值采样时间要和源阻抗匹配我们为了省一颗运放直接用一个比较大的分压电阻接ADC输入结果采样值跳得厉害。加了一级RC硬件滤波和运放缓冲之后稳定了。RC的值是按前面2.3节的充电时间算出来的不是拍脑袋。这两件事的共同点是问题全写在资料里只是我们读的时候跳过了。这就是为什么我说读一份好资料等于上一节课——它真的把答案给你了只是你要读懂。4. 常见问题与排查技巧实录调试这件事经验的价值在于你知道哪儿最可能出问题。我把这些年反复出现的问题整理成一张速查表配合排查思路一起用能省下大量瞎试的时间。表里的每一条背后都至少对应一次真实的翻车不是从教科书上抄的。4.1 硬件调试高频问题速查表现象高概率原因优先排查动作上电无反应电流很小电源未使能、使能脚分压错误、保险丝断测各路电压查使能脚电平上电即大电流、器件发烫电源短路、电容极性反、闩锁断电测阻抗分段上电通信偶发出错上拉电阻不当、地弹、时序临界测上升沿、测地平面压差常温正常低温不启动RC复位、晶振起振余量不足换复位芯片、测起振裕量千兆口CRC错误参考时钟抖动、RGMII延时、阻抗不连续测眼图、核对PHY strap配置ADC采样跳动源阻抗过高、缺少滤波、地噪声耦合加缓冲与RC、检查回流路径设备枚举失败供电不足、枚举时序、驱动签名测电流、看系统日志板子偶发重启电源跌落、看门狗误触发、复位干扰测电源瞬态、查复位线耦合表只是起点真正的排查是把它当假设清单用。我一般会先按能一次排除掉最多可能的动作做。比如上电就大电流先断电测阻抗一条命令就能把短路这个大类排掉如果阻抗正常再怀疑器件和配置。按排除效率排序而不是按直觉排序这是老手和新手最实际的差别。4.2 几类反复出现的玄学问题与破法第一种玄学叫重新上电就好。现象是设备偶尔不启动断电重启就正常。这类问题九个里面有八个指向复位或电源上升斜率尤其是慢上升的电源配合RC复位。破法是把电源上升时间拉长到最坏情况再测一遍或者直接换成带VDD监控的复位芯片。第二种叫手一碰就好手一松就坏。典型的接地或屏蔽问题人体的寄生电容改变了高频回路。破法是把探头换成差分探头或者用近场探头找辐射点别用手去当电容。第三种叫换了台电脑就好了。这类问题多半出在供电或者USB线材质量上跟你的板子没关系但也可能是你的板子对电源纹波太敏感。破法是换一个已知干净的电源做对比测试先分清是环境问题还是设计问题。我遇到过一次USB枚举失败查了半天最后是线材内阻太大压降导致设备端供电不足。第四种叫温度一高就死机。在小体积设备上极其常见根源是某个器件的降额不够或者布局把发热器件堆在一起了。破法是先用热成像或者点测温把发热点找出来再对照规格书看结温余量。这里有个容易被忽略的点规格书的θJA是特定测试板条件下测的实际板子的铜箔面积、层数、周围器件都影响散热实测往往比手册差。4.3 资料笔记怎么做才不会白读读资料不记笔记等于没读。我的笔记分三层。第一层是约束把电气限值、时序参数、温度范围抄下来做成一张表对应到具体项目和器件。第二层是因果记下为什么这么设计比如某个电阻是为了限制涌入电流某个电容是为了给内部LDO做补偿。第三层是现象到原因的映射把调试中遇到的现象和它对应的根因记在一起这才是最值钱的部分因为它直接决定你下次遇到同样现象时的第一反应。我还有个习惯每做完一个项目就把原理图按功能块重画一遍简化版只留关键器件和参数然后在旁边标注这次踩的坑。一年下来这些简图就是自己的私房资料比任何网上的教程都贴合自己。硬件工程师成长之路上最缺的其实不是知识是这种把外部资料内化成自己判断力的过程。5. 硬件工程师成长之路资料清单与阶段目标说了这么多方法最后落到读什么上。硬件这个领域太宽从51单片机到端侧AI硬件部署跨度极大不可能每一样都精通。我的建议是按阶段选资料每个阶段抓住一个主线别贪多。贪多的结果是每样都看过每样都不深面试时一问细节就露馅。5.1 按阶段选资料从点灯到端侧AI入门阶段主线是一颗MCU把最小系统做扎实。资料清单是MCU数据手册、最小系统参考设计、复位和时钟的应用笔记、GPIO和电源的布局指南。目标不是点亮LED而是能解释清楚每一颗阻容为什么在那里、为什么是这个值。51单片机硬件设计作为练习很好电路简单适合把上电复位、晶振、去耦这些基础走一遍。进阶阶段主线是接口与时序。这时候要啃的是SPI、I2C、UART、CAN、以太网的接口规范重点看时序章节和物理层要求。CAN硬件白盒测试规范值得读它教你如何从物理层验证总线终端电阻、共模电感、位时序、眼图、总线负载率。这一阶段还应该读一份以太网PHY的硬件设计指南比如常见的国产千兆PHY手册里面关于参考时钟、RGMII延时、变压器、差分阻抗的内容是所有高速接口设计共通的基础。高阶阶段主线是系统级与可靠性。要读的内容包括电源完整性、信号完整性入门、EMC整改案例、器件降额规范、热设计。这时候你会发现很多问题的答案不在单颗芯片手册里而在系统层面。三电平逆变器和两电平逆变器的硬件差异就是个典型系统级问题三电平拓扑每相桥臂的开关器件和钳位二极管数量翻倍驱动路数更多但每个器件承受的电压应力只有一半输出电平台阶更多dv/dt和总谐波失真更低滤波器体积可以做小。代价是控制复杂度上升中点电位需要额外平衡策略布局布线更难成本更高。这种用器件换性能的取舍逻辑只有在系统层面才能看清。5.2 软硬边界从openbmc硬件移植看硬件工程师该懂多少软件现在纯硬件的岗位越来越少硬件和固件的边界越来越模糊。openbmc硬件移植就是个好例子它要求你把板子上的传感器、风扇、电源、I2C拓扑、SPI挂载全部描述清楚写成设备树和配置让BMC固件能识别。这活儿表面上是软件实际上要求你对硬件拓扑理解得比软件同事更深。不懂硬件的人做移植会出现传感器地址配错、总线挂载失败、风扇转速读不出来这类问题最后还得硬件来查。类似的还有硬件信任根和安全启动它要求从不可变的启动ROM开始逐级校验固件的签名形成一条信任链。做这件事你要同时理解硬件上的启动引脚配置、OTP区域、密钥存储方式以及固件里的校验流程。还有硬件同步像Fast-LIVO这类多传感器融合系统相机、IMU、激光雷达之间必须共享时基靠的是硬件触发信号和同步脉冲时间戳对不齐融合算法直接崩。这些都在告诉你现代硬件工程师必须能读懂软件侧的接口才能把硬件做对。至于VB6.0能不能写嵌入式硬件这类问题我的看法很直接编程语言只是工具能不能做嵌入式取决于你对寄存器、时序、内存映射的理解但拿一门过时的语言去开发新硬件显然不合适。与其纠结语言不如把C和基本的Verilog搞清楚。Verilog里的wire和assign本质是描述硬件连线理解了组合逻辑和时序逻辑的差别你才知道为什么有些信号必须打拍、为什么竞争冒险会存在——这也是硬件基础的一部分。5.3 端侧AI和算力话题硬件工程师该关注什么这两年端侧AI硬件部署被问得很多比如部署一个27B级别的模型需要什么硬件。硬件工程师在这类话题里的价值不是算TOPS而是搞清楚几件事内存带宽是不是瓶颈、功耗和散热能不能扛住、接口带宽够不够、供电能不能提供瞬态大电流。模型推理的瓶颈往往不在算力峰值而在内存带宽这一点和传统硬件设计里的带宽决定性能是一脉相承的。大量算子并行对硬件的挑战最后都落在供电瞬态响应、散热和内存带宽上。我在实际项目里的体会是越新的技术方向越依赖基础功底。电压降额、电源完整性、热设计、时序约束这些东西二十年前是什么样现在还是什么样只是工作频率变高了、电流变大了、裕量变小了。所以回到最开始那句话把一份好资料读透把基础知识点理解到能推导、能计算、能对着示波器验证的程度剩下的都是这些基础的组合。资料会过时基础不会。最后分享一个我自己的小习惯每次调试解决一个难题别急着收工花二十分钟把现象、假设、验证、结论四句话写下来存进自己的笔记库。三年下来我攒了三百多条很多条后来在完全不同的项目里救过我。资料是别人写的这些记录才是自己的。