摩登3新闻554258:_深度解析焦耳小偷电路,如何榨干每一节废旧干电池

常见一些电子类的发烧友DIY的焦耳小偷电路。 这样的 这样的 还有这样的 焦耳小偷电路是一个简约的自激振荡升压电路,只需三个元件:三极管、电阻、电感即可实现升压,成本低、易制作。 它可以榨干一节废旧干电池上的所有能量,即使是那些在其它电路中已经被认为没电的电池。在制作焦耳小偷电路时,一定要注意两个电感的方向相反。通常1.5V的干电池用完之后还会有1.1V左右的电压,说明此时电池内还有能量,只不过内阻变的很大,输出电流很微弱,已经无法驱动一般的电路,更无法点亮LED。而焦耳小偷电路可以通过磁感线圈产生高频脉冲电压,使LED导通,通过调整合适的参数,可以将电池电压升高10-100倍以上。 下面这个对焦耳小偷电路的解析通俗易懂。 焦耳小偷全解释 点亮一个LED: 我们知道通常LED工作电压在1.7~3V,也就是说,要点亮LED我们需要一个高于1.7V的电压。 那么最简单点亮LED的办法就是--如图: 二个电池叠加电压高于1.7V就能点亮LED。这是一个极简单的工作。 现在我们来看下图: 在这里,我们将一个电感替代了一个电池,加了一个开关。 这时LED是无法点亮的,因为其电压只有一个电池供电为1.5V。 当我们按下开关时,电池仅向电感供电,电流在电感上形成磁场。 这一过程我们且称之为电池对电感冲能。 放开开关时,由电池叠加电感上的电压对LED放电,这是电压就高于1.7V,因而点亮LED。 在这里电感充当了一个电池的作用,和普通电池不同的是,电感的能量是依赖电池。 需要电池不断给电感充电,然后再对外释放。 我们不可能一直不断的按动那个开关,另外让依赖我们手动,其工作频率也很低。 那么LED一闪就灭,甚至很难被我们观察到LED在闪亮。 这时我们就采取了一个三极管作为自动开关,来替代我们手动的开关。 电路边演化为: 现在我们只要给三极管基极一个信号,就能控制三极管导通还是截至。 只需周期性的给基极信号,那么三极管就充任了自动开关的角色。 能完成将电池负载不断的从电感和LED之间转换。 当电感成为负载时,电池对电感冲能,(三极管导通状态),当LED成为负载时,(三极管截至)电感释放能量。 再看下图: 这里我们再加上一组反馈线圈,以便向三极管提供触发信号。 当电感冲能时电感上存在电流,那么感应线圈就能为三极管提供触发信号,使得三极管导通。 当电感冲能完毕,在电感上形成磁场,同时也产生一个感应电动势。该电动势会阻止电流在电感上流过。 这是感应线圈上缺乏足够感应电流,无法维持三极管导通,此时三极管截至。 就着样,三极管配合电感形成导通-截至-导通-截至不断循环。 就相当于以上说明中那个开关,不断通断。 那么最后,我们还得为三极管加上保护,以避免三极管基极被击穿。这样就形成了焦耳小偷的电路: 现在我们应该明白焦耳小偷的一般性常识了,由此也知道在制作焦耳小偷时各个元件都担任什么作用。 那么也明白只要是三极管,都能用于制作焦耳小偷,只要这个三极管还存在截至能导通的能力。 放大倍数,工作频率这些都能忽略。 只要能提供信号能维持三极管进行导通和截至的工作,即便是可控硅,达林顿复合管之类也能胜任。 这里需要注意的是: 1、电感需要高的磁导率,因为电感对外提供能量,完全依赖它存储的磁能转化为电能。由此知道,该电感在通电时所能存储磁能越大,那么提供的能量也越高。 2、焦耳小偷对外提供的是脉冲直电流,并非交变电流。 3、任何电子电路都要消耗电能,而焦耳小偷消耗的仅仅是在电感上的略微损失和开启三极管导通的些许能量。 这也是焦耳小偷的神奇之处,如果我们制作一个单管自激振荡,形成交变电流,再由变压器升压。 同样能提升电压,但是这个过程中负担电子电路所消耗的能量要比焦耳小偷大的多。 那么到此焦耳小偷的概念应该都说明了,剩下的是题外话。 正如我们看到的第一张图,如果我们有足够的电池,那么就不需要什么焦耳小偷了。 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3娱乐登录地址_技术贴!手把手教你选择时钟发生器

系统设计师通常侧重于为应用选择最合适的数据转换器,在向数据转换器提供输入的时钟发生器件的选择上往往少有考虑。然而,如果不慎重考虑时钟发生器、相位噪声和抖动性能,数据转换器、动态范围和线性度性能可能受到严重的影响。  系统考虑因素 采用MIMO (多输入多输出)架构的典型LTE (长期演进)基站如图1所示。该架构由多个发射器、接收器和DPD (数字预失真)反馈路径构成。各种发射器/接收器组件(如数据转换器(ADC/DAC))和本振(LO)要求采用低抖动参考时钟以提高性能。其他基带组件也要求各种频率的时钟源。 图1.面向采用MIMO架构的典型LTE基站的时钟时序解决方案 用于实现基站间同步的时钟源一般来自GPS (全球定位系统)或CPRI (通用公共射频接口)链路。这种源一般拥有优秀的长期频率稳定性;但它要求把频率转换成所需的本地参考频率,以实现良好的短期稳定性或抖动。高性能时钟发生器可执行频率转换操作并提供低抖动时钟信号,在此基础上,这些信号可能会分配给各种基站组件。选择最佳时钟发生器至关重要,因为欠佳参考时钟会增高LO相位噪声,结果会提高发射/接收EVM(误差矢量幅度)和系统SNR(信噪比)。高时钟抖动和噪底也会影响数据转换器,因为它会降低系统SNR并导致数据转换器杂散辐射,从而进一步降低数据转换器的SFDR(无杂散动态范围)。结果,低性能时钟源最终会降低系统容量和吞吐量。 时钟发生器技术规格 尽管关于时钟抖动的定义多种多样,但在数据转换器应用中,最合适的定义是相位抖动,其单位为时域ps rms或fs rms。相位抖动(PJBW)是通过时钟信号相位噪声在载波特定偏移范围内的积分推导出来的抖动,计算公式如下: fCLK为工作频率;fMIN/fMAX表示目标带宽,S(fCLK)表示SSB相位噪声。积分带宽的上限和下限(fMIN/fMAX)因具体应用而异,取决于设计敏感的相关频谱成分。设计师的目标是选择所需带宽中的积分噪声最低或者相位抖动最低的时钟发生器。传统上,时钟发生器的特性是在12 kHz至20 MHz积分条件下测得的,这也是光学通信接口(如SONET)的指定要求。虽然这可能适用于一些数据转换器应用,但要捕获高速数据转换器采样时钟的相关噪声曲线,通常需要更宽的积分频谱,具体是指20MHz以上。在测量相位噪声时,噪声远远偏离载波频率。 例如,数据转换器采样实际使用的时钟频率一般称为远远偏离载波相位噪声。该噪声的限值通常称为相位噪底,如图2所示。该图所示为ADI HMC1032LP6GE时钟发生器的实际测量图。相位噪底在数据转换器应用中显得格外重要,其原因在于转换器SNR对其时钟输入端的宽带噪声极其敏感。当设计师评估时钟发生器选项时,必须把相位噪底性能作为一项关键基准指标。 图2.HMC1032LP6GE的相位噪声和抖动性能  在图2中,工作频率为~160 MHz时,积分相位抖动为~112 fs rms,积分带宽为12 kHz至20 MHz,相位噪底为~–168 dBc/Hz。这里值得注意的是,在为数据转换器选择最合适的时钟发生器时,设计师不仅要参考频域的相位噪声测量值,同时也要参考时域的时钟信号质量测量值,比如占空比、上升/下降时间。 数据转换器的性能 为了描述时钟噪声对数据转换器性能的影响,不妨将转换器视为一个数字混频器,二者仅存在一个细微差异。在混频器中,LO的相位噪声将添加到被混频的信号中。在数据转换器中,时钟的相位噪声将叠加到转换输出中,但受信号与时钟频率之比的抑制。时钟抖动会导致采样时间错误,表现为SNR下降。(时间抖动(T抖动)即是采样时间中的rms误差,单位为秒) 在有些应用中,可能会利用时钟滤波器来减少时钟信号的抖动,但这种方法存在显著的缺陷: 滤波器虽然可能会消除时钟信号的宽带噪声,但窄带噪声却保持不变。 滤波器的输出通常是一个类似于正弦波的慢压摆率,会影响时钟信号对时钟路径内部噪声的敏感度。 滤波器消除了灵活性,无法更改时钟频率以实施多个采样速率架构。 一种更实际的办法是用一个拥有快压摆率和高输出驱动能力的低噪声时钟驱动器来最大化时钟信号的斜率。这种方法可以优化性能,原因如下: 消除时钟滤波器之后可以降低设计的复杂性,减少组件数量。 快速上升时间会抑制ADC时钟路径内部的噪声。 窄带和宽带噪声都可以通过选择最佳时钟源来优化。 可编程时钟发生器可实现不同的采样速率,因而可以增加解决方案对不同应用的适应能力。 超低时钟噪底至关重要。远远偏离载波的时钟抖动噪声在ADC中采样,并叠加进ADC数字输出频段中。该频段受奈奎斯特频率限制,后者定义为: 时钟抖动通常由ADC时钟信号的宽带白噪底所主导。虽然ADC的SNR性能取决于多种因素,但时钟信号宽带抖动的影响由下式决定: 如上式所示,与混频器不同,时钟抖动的SNR贡献与ADC模拟输入频率(fIN)成正比。 在驱动ADC时,时钟噪声受时钟驱动器路径中的带宽限制,一般由ADC时钟输入电容主导。宽带时钟噪声会调制较大的输入信号并叠加进ADC输出频谱中。时钟路径的相位噪声会降低输出SNR性能,降幅与输入信号的幅度和频率成比例。最差情况是,在存在小信号的情况下还存在较大的高频信号。 在现代无线电通信系统中,情况经常是,输入端存在多个载波信号,然后在DSP中对各目标信号进行过滤,以匹配信号带宽。在许多情况下,处于一个频率的较大的无用信号会与时钟噪声混合,结果会降低ADC通带中其他频率下的可用SNR。在这种情况下,目标SNR为所需信号带宽中的SNR。另外,上面的SNRJITTER值实际上是相对于最大信号(通常是一个无用信号或阻塞信号)的幅度的。 在给定输入频率下,计算时钟噪声和较大无用信号条件下ADC性能的降幅;例如,计算ADC全带宽中的SNR。 用所需信号带宽与数据转换器全带宽之比计算所需信号带宽中的SNR。 基于无用信号在满量程以下的幅度增大该值。 步骤b的结果只是为了按以下方式修正前面所示的SNR等式: SNRJITTER:在存在频率为fin的大信号且采样速率为fs的条件下,时钟抖动在带宽fBW中的SNR贡献。 fIN:满量程无用信号的输入频率,单位为Hz。 TJITTER:ADC时钟的输入抖动,单位为秒。 fBW:所需输出信号的带宽,单位为Hz。 fs:数据转换器的采样速率,单位为Hz。 SNRDC:数据转换器在直流输入条件下的SNR,单位为dB 为时钟生成和数据转换选择正确的组件可使您从给定架构中获得最佳的性能。在选择时钟发生器时要考虑的重要标准有相位抖动和相位噪底,它们会影响被驱动的数据转换器的SNR。正如分析所示,对于选定的时钟发生器,其低相位噪底和低积分相位抖动特性有助于最小化多载波应用中SNR性能在较高ADC 输入频率下的降幅。 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册网址_台积电美国建厂获批,美亚利桑那州将提供2.05亿美元资金支持

据路透社报道,亚利桑那州凤凰城的城市官员当地时间周三一致投票批准与台积电的发展协议,该协议将提供2.05亿美元的城市资金用于基础设施建设。 台积电在五月份透露了其在亚利桑那州建立5纳米芯片工厂的计划,这将是其在美国的第一家先进制造工厂。本月初,台积电批准了在美国设立全资子公司。 据了解,凤凰城议会以9票对0票的投票结果允许该市加入该协议。在投票前,凤凰城市长Kate Gallego称该协议“帮助亚利桑那州成为了先进制造业的领导者。” 根据该协议,台积电将建立一个新工厂,创造1900个新的全职工作,并将在五年内分阶段进行。建设将于2021年初开始,预计于2024年开始生产。 作为回报,凤凰城将以6100万美元的价格建造三英里的街道,花费3700万美元用于改善水利基础设施,花费1.07亿美元用于废水改善。该公司将在选择地点之后与该市达成正式协议,该地点有望在今年年底之前决定。 21ic家注意到,目前,台积电拥有全球最先进的5nm生产能力,同时在积极推进下一代工艺进程,计划2022年下半年量产3nm工艺,2023年下半年试产2nm工艺。 -END- | 整理文章为传播相关技术,版权归原作者所有 |  | 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3平台注册登录_千亿项目武汉弘芯烂尾后续:CEO蒋尚义已辞职,地方政府接管

近日,总投资额高达1280亿元的武汉弘芯半导体制造项目,已被当地政府接管。11月17日,蒋尚义通过律师发表声明,宣称已于今年6月因个人原因辞去武汉弘芯董事长、总经理等一切职务,且武汉弘芯已接受了蒋尚义递降的辞呈。 不过值得注意的是,7月8日在武汉弘芯官网发布的新闻稿中,当天下午,武汉弘芯举办了一场员工表彰大会,文中还称“公司李雪艳董事长、蒋尚义总经理兼首席执行官出席会议并为坚守岗位的11名员工现场颁奖。” 据资料显示,11月10日,原本北京光量蓝图科技有限公司持有武汉弘芯90%的股权,现如今已被武汉光量蓝图科技有限公司全资收购,且武汉光量蓝图科技有限公司为武汉市东西湖区国有资产监管局100%持股;剩余10%股权仍在武汉临空港经济技术开发区工业发展投资集团有限公司,其系武汉市东西湖区国有资产监管局旗下单位。 至此,武汉弘芯已被武汉市东西湖区政府全资接管。 此前由于资金链断裂,武汉弘芯目前已经卷入了3起官司,其中和上海英格索压缩机有限公司的官司已经通过调解方式结案,目前仍有两起诉讼尚未结案。 发改委曾回应个别芯片项目烂尾:造成重大损失将问责。 武汉弘芯的烂尾事件给国芯产业泼了一盆冷水,如今国家大力发展半导体芯片产业,急功近利是不行的,科学合理的发展才是长远之路! -END- 来源 | 镁客网 | 整理文章为传播相关技术,版权归原作者所有 |  | 【1】华为晒凤凰引擎:或为自研GPU做准备! 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3新闻554258:_PCB线路设计制作百句术语大全!

作为一个电子工程师设计电路是一项必备的硬功夫,但是原理设计再完美,如果电路板设计不合理,性能将大打折扣,严重时甚至不能正常工作。下面小编为大家整理了104条PCB线路设计制作术语合集,希望能提升你的工作效率! 1、Annular Ring 孔环 指绕接通孔壁外平贴在板面上的铜环而言。在内层板上此孔环常以十字桥与外面大地相连,且更常当成线路的端点或过站。在外层板上除了当成线路的过站之外,也可当成零件脚插焊用的焊垫。与此字同义的尚有 Pad(配圈)、 Land (独立点)等。 2、Artwork 底片在电路板工业中,此字常指的是黑白底片而言。至于棕色的“偶氮片”(Diazo Film)则另用 Phototool 以名之。PCB 所用的底片可分为“原始底片”Master Artwork 以及翻照后的“工作底片”Working Artwork 等。 3、Basic Grid 基本方格指电路板在设计时,其导体布局定位所着落的纵横格子。早期的格距为 100 mil,目前由于细线密线的盛行,基本格距已再缩小到 50 mil。 4、Blind Via Hole 盲导孔指复杂的多层板中,部份导通孔因只需某几层之互连,故刻意不完全钻透,若其中有一孔口是连接在外层板的孔环上,这种如杯状死胡同的特殊孔,称之为“盲孔”(Blind Hole)。 5、Block Diagram 电路系统块图将组装板及所需的各种零组件,在设计图上以正方形或长方形的空框加以框出, 且用各种电性符号,对其各框的关系逐一联络,使组成有系统的架构图。 6、Bomb Sight 弹标原指轰炸机投弹的瞄准幕。PCB 在底片制作时,为对准起见也在各角落设置这种上下两层对准用的靶标,其更精确之正式名称应叫做Photographers’ Target。 7、Break-away panel 可断开板指许多面积较小的电路板,为了在下游装配线上的插件、放件、焊接等作业的方便起见,在 PCB 制程中,特将之并合在一个大板上,以进行各种加工。完工时再以跳刀方式,在各独立小板之间进行局部切外形(Routing)断开,但却保留足够强度的数枚“连片”(Tie Bar 或Break-away Tab),且在连片与板边间再连钻几个小孔;或上下各切 V 形槽口,以利组装制程完毕后,还能将各板折断分开。这种小板子联合组装方式,将来会愈来愈多,IC卡即是一例。 8、Buried Via Hole 埋导孔指多层板之局部导通孔,当其埋在多层板内部层间成为“内通孔”,且未与外层板“连通”者,称为埋导孔或简称埋孔。 9、Bus Bar 汇电杆多指电镀槽上的阴极或阳极杆本身,或其连接之电缆而言。另在“制程中”的电路板,其金手指外缘接近板边处,原有一条连通用的导线(镀金操作时须被遮盖),再另以一小窄片(皆为节省金量故需尽量减小其面积)与各手指相连,此种导电用的连线亦称 Bus Bar。而在各单独手指与 Bus Bar 相连之小片则称Shooting Bar。在板子完成切外形时,二者都会一并切掉。 10、CAD电脑辅助设计Computer Aided Design,是利用特殊软体及硬体,对电路板以数位化进行布局(Layout),并以光学绘图机将数位资料转制成原始底片。此种 CAD对电路板的制前工程,远比人工方式更为精确及方便。 11、Center-to-Center Spacing 中心间距指板面上任何两导体其中心到中心的标示距离(Nominal Distance)而言。若连续排列的各导体,而各自宽度及间距又都相同时(如金手指的排列),则此“中心到中心的间距”又称为节距(Pitch)。 12、Clearance 余地、余隙、空环指多层板之各内层上,若不欲其导体面与通孔之孔壁连通时,则可将通孔周围的铜箔蚀掉而形成空环,特称为“空环”。又外层板面上所印的绿漆与各孔环之间的距离也称为 Clearance 。不过由于目前板面线路密度愈渐提高,使得这种绿漆原有的余地也被紧逼到几近于无了。 13、Component Hole 零件孔指板子上零件脚插装的通孔,这种脚孔的孔径平均在 40 mil 左右。现在SMT盛行之后,大孔径的插孔已逐渐减少,只剩下少数连接器的金针孔还需要插焊,其余多数 SMD 零件都已改采表面粘装了。 14、Component Side 组件面早期在电路板全采通孔插装的时代,零件一定是要装在板子的正面,故又称其正面为“组件面”。板子的反面因只供波焊的锡波通过,故又称为“焊锡面”(Soldering Side) 。目前 SMT 的板类两面都要粘装零件,故已无所谓“组件面“或“焊锡面”了,只能称为正面或反面。通常正面会印有该电子机器的制造厂商名称,而电路板制造厂的 UL 代字与生产日期,则可加在板子的反面。 15、Conductor Spacing 导体间距指电路板面的某一导体,自其边缘到另一最近导体的边缘,其间所涵盖绝缘底材面的跨距,即谓之导体间距,或俗称为间距。又,Conductor 是电路板上各种形式金属导体的泛称。 16、Contact Area 接触电阻在电路板上是专指金手指与连接器之接触点,当电流通过时所呈现的电阻之谓。为了减少金属表面氧化物的生成,通常阳性的金手指部份,及连接器的阴性卡夹子皆需镀以金属,以抑抵其“接载电阻”的发生。其他电器品的插头挤入插座中,或导针与其接座间也都有接触电阻存在。 17、Corner Mark 板角标记电路板底片上,常在四个角落处留下特殊的标记做为板子的实际边界。若将此等标记的内缘连线,即为完工板轮廓外围(Contour)的界线。 18、Counterboring 定深扩孔,埋头孔电路板可用螺丝锁紧固定在机器中,这种匹配的非导通孔(NPTH),其孔口须做可容纳螺帽的“扩孔”,使整个螺丝能沉入埋入板面内,以减少在外表所造成的妨碍。 19、Crosshatching 十字交叉区电路板面上某些大面积导体区,为了与板面及绿漆之间都得到更好的附着力起见,常将感部份铜面转掉,而留下多条纵横交叉的十字线,如网球拍的结构一样,如此将可化解掉大面积铜箔,因热膨胀而存在的浮离危机。其蚀刻所得十字图形称为 Crosshatch,而这种改善的做法则称为 Crosshatching。 20、Countersinking 锥型扩孔,喇叭孔是另一种锁紧用的螺丝孔,多用在木工家俱上,较少出现精密电子工业中。 21、Crossection Area 截面积电路板上线路截面积的大小,会直接影响其载流能力,故设计时即应首先列入见,常将感部份铜面转掉,而留下多条纵横交叉的十字线,如网球拍的结构一样,如此将可化解掉大面积铜箔,因热膨胀而存在的浮离危机。其蚀刻所得十字图形称为 Crosshatch,而这种改善的做法则称为 Crosshatching。 22、Current-Carrying Capability 载流能力指板子上的导线,在指定的情况下能够连续通过最大的电流强度(安培),而尚不致引起电路板在电性及机械性质上的劣化 (Degradation),此最大电流的安培数,即为该线路的“载流能力”。 23、Datum Reference 基准参考在…

摩登3注册登录网_AD中关于绕等长的方式与方法,你不进来看一下!

为什么要等长,等长的重要性 在 PCB 设计中,等长走线主要是针对一些高速的并行总线来讲的。由于这类并行总线往往有多根数据信号基于同一个时钟采样,每个时钟周期可能要采样两次(DDR SDRAM)甚至 4 次,而随着芯片运行频率的提高,信号传输延迟对时序的影响的比重越来越大,为了保证在数据采样点(时钟的上升沿或者下降沿)能正确采集所有信号的值,就必须对信号传输的延迟进行控制。等长走线的目的就是为了尽可能的减少所有相关信号在 PCB 上的传输延迟的差异。 至于 USB/SATA/PCIE 等串行信号,并没有上述并行总线的时钟概念,其时钟是隐含在串行数据中的。数据发送方将时钟包含在数据中发出,数据接收方通过接收到的数据恢复出时钟信号。这类串行总线没有上述并行总线等长布线的概念。但因为这些串行信号都采用差分信号,为了保证差分信号的信号质量,对差分信号对的布线一般会要求等长且按总线规范的要求进行阻抗匹配的控制。 绕等长的命令和技巧 方法一: 第一步:连接好需要绕等长的线。 第二步:T+R 开始绕等长,TAB 键调出等长属性设置框,如下图: 第三步:滑动走蛇形线即可; 其中“<”和“ >”可以分别调整蛇形线的上下幅度,数字键 1 减小拐角幅度,数字键 2 增大拐角幅度、数字键 3 减小 Gap 间距、数字键 4 增大 Gap 间距: 方法二: Shift+A 可以直接在走线模式下饶点对点等长。设置属性和方法一相同。 差分对等长 快捷键 T+I ,属性设置可参考单根等长属性设置。 常用模块的饶等长技巧 1)、远端分支型 走线等长要求是 L1+L2=L3+L1 一般操作的方法是先设置好 T 点,尽量让 L1 和 L2 等长,若 T 点设置在中间的,一般就是差不多了,若 T 点设置不在中间可适当对某一分支进行绕线。 方法一:删掉一边分支,(如:L2),之后对 L1 进行绕线。 方法二:不删分支,列等长表格,计算 L1+(L2+L3)/2 对 L1 进行绕线。 2)、包含端接或串阻型 比如 CPU——串阻——DDR 等长要求是需要 L1(CPU 到串阻)+L2(串阻到 DDR)= L3(CPU 到串阻)+L4(串阻到 DDR) 方法一:在原理图上短接串阻,更新 PCB,使其变成一个网络,目的达到。 方法二:分别物理测量,两者相加(最好列出等长表,这种方法比较笨拙)。 注意:含有末端端接的先删除末端端接再等长,短节长度长度不算在等长长度中。 3)、菊花链 方法:多拷贝几个版本先分别单独绕等长——先删掉 SDRAM 到 FLASH 的走线,再绕 CPU 道 SDRAM 的等长,之后再另外一个版本中删掉 CPU 到 SDRAM的走线,再绕 SDRAM 到 FLSAH 的等长,之后两个版本合并。 等长中的注意事项 1、Gap 需满足 3W 原则【差分等长同理,最好满足 4W,越大越好】 2、差分等长 等长中用到的技巧 1、等长长度的查看 CTRL+点击鼠标中键(鼠标停放在你需要的网络上),可以查看网络的长度【还有选中, 属性编辑等选项】,在绕等长的时候,进行等长检查时候,非常方便和实用。这个快捷方式还可以实用 Shift+X 调出. 2、等长表格的应用 适用范围:常用模块的等长、自己内部等长检查 第一步:可以现在 PCB 中直接拷贝你需要绕等长的一组线的长度。之后粘贴在EXCEL 表格中。 第二步:在 Excel 表格中 Ctrl+H,替换掉单位 第三步:选中单击右键设置单元数值属性为整数。 -END- 来源 | 凡亿PCB | 整理文章为传播相关技术,版权归原作者所有 | 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3平台登录_规则设置如何应用于我的PCB设计?

       在PCB设计中,Design Rule设计规则是关系到一个PCB设计成败的关键。所有设计师的意图,对于设计的功能体现都通过设计规则这个灵魂来驱动和实现。精巧细致的规则定义可以帮助设计师在PCB布局布线的工作中得心应手,节省工程师的大量精力和时间,帮助设计师实现优秀的设计意图,大大方便设计工作的进行。        在设计数据从原理图阶段转移到PCB设计阶段之后,进行PCB设计布局布线时,就需要提前定义好设计规则Design Rule。后续的整个PCB设计都需要遵守规则定义。包括最基本的电气规则(间距,短路断路),布线规则(线宽,走线风格,过孔样式,扇出等),平面规则(电源地平面层连接方式,铺铜连接方式);以及其他常用的辅助规则如布局规则,制造规则,高速设计规则,信号完整性规则等等。在规则驱动的设计完成之后,还可以进行规则检查Design Rule Check来重新审视您的设计,看看有无违反规则的情况发生并加以改进和完善。最终设计出完全符合规则定义并满足设计意图的优秀作品。        相对于PCB制造相关的设计规则尤其具有现实意义。倘若设计规则设置的不符合PCB工艺制造的要求,将不仅仅是影响产品功能那么简单,甚至会无法加工无法实现工程师的设计意图。因此,在定义设计规则的时候,了解下下游制造方对设计的工艺制造要求是至关重要的。 PCB加工的制造工艺有哪些精度方面的要求?        如下图所示为某家PCB制版生产厂家的工艺要求。包括电路板层数,厚度,孔径,最小线宽线距,铜厚等基本参数要求;也包括板材类型,表面处理,特殊加工等特别要求。一般在PCB加工的时候,分测试用的打样加工,以及最终成型的批量产品加工。对于设计师来说,有实际意义并需要严格遵守的是批量产品加工的工艺要求。        而对于制造精度相关的工艺要求来说,最基本最重要的是线宽线距和最小孔径。也即加工厂能处理最小多细的线宽以及最小多大的孔。如果线宽在设计中没有达到要求,太细的话是无法正确加工出来的。线宽线距精度同样影响到丝印层上的文字图案是否清晰。而孔径太小的话也是没有相应的钻头支持的。最小孔径所对应的钻头尺寸同样影响到机械孔,安装孔等各种类型板形剪切的公差精度。 线宽线距与孔径规则设置注意事项        本文带您了解如何根据PCB生产制造工艺要求,在PCB制造精度方面,设置合乎要求并且满足设计意图的线宽线距与孔径规则. 最小线宽/间距4mil       在PCB设计中,批量加工所能支持的最高精度为线宽线距4mil。即布线宽度必须大于4mil,两条线之间的间距也需要大于4mil。当然只是线宽线距的最低极限值。在实际的工作中线宽需要按照设计需要定义为不同的值。比如电源网络定义宽一些,信号线定义细些。这些不同的需求都可以在规则Design – Rules – Routing – Width 里定义不同网络不同的线宽值,然后根据重要程度设置规则应用优先级。同样,对于线距来说,在规则页面Design – Rules – Electrical – Clearance 里定义不同网络之间的电气安全间距,当然也包括线距。       另外有一种特殊情况。对于高密度管脚的元器件来说,器件内焊盘之间的间距一般很小,比如6mil,虽然满足最小线宽或间距大于4mil的制造方面的要求,但作为设计PCB来说可能不符合规则设计要求。如果整个PCB的最小安全间距设置是8mil,那幺元器件焊盘的间距明显违反了规则设置。在规则检查时或在线编辑时会一直绿色高亮来显示违规。这种违规显然是不需要处理的,我们应该修正规则设置来消除绿色高亮显示。在原来的处理办法中,是用query语言单独为这个器件定义不同的安全间距规则,并设置为高优先级。在新的版本中,只需要简单的勾选选项即可解决这个问题,即忽略封装内的焊盘间距Ignore Pad to Pad clearance within a footprint。如下图所示。        用此选项勾选非常简便。不需要原来那样用Query语句InComponent(‘U1’) ,然后设置其最小安全间距为6mil,并设为最高间距优先级.       2.   最小机械孔径0.2mm(8mil)最小镭射孔径4mil         PCB设计中不可避免要用到钻孔。而在设计规则的设置方面,甚至具体的钻孔操作方面,具体要钻怎样的孔(通孔,盲孔,埋孔,还是背钻孔?)以及钻多大尺寸的孔,您做到心中有数了吗?您会不会看别人钻多大孔自己也钻多大孔,或者随便填写个尺寸以满足板面布局和走线的方便程度?       孔的类型如下图所示。一般不太复杂的设计,板层叠层不多的设计中通常用到通孔。在复杂的设计中,特别是多层板,高速高密设计,PCB布线空间要求很高的情况下,可根据实际需要设置盲孔或埋孔。当然盲埋孔因为制造工艺上比通孔复杂,制造成本会相应增高。 机械钻孔与镭射钻孔的区别       首先了解下钻孔的过程。如下图所示,钻孔是用不同规格的钻头尺寸来进行的。如果您的设计中过孔孔径的尺寸与加工厂现有的钻头尺寸不相同,那么会选择离您的设计值最近的钻头规格来钻孔。而Entry面板是用来防护钻头及台面,减少毛刺并降低钻头温度的作用。Backup底板是用来保护板面防止压痕,防止打滑导向并减少毛刺的作用。 机械钻孔的钻头通常有ST型和UC型。一般来说UC型比ST型钻孔的精度更高。        镭射钻孔一般用于微通孔。随着PCB想微型和高密度互联的方向发展,越来越多制板加工采用导孔的连接方式实现高密度互连。而传统机械钻孔的小孔能力,几乎到了极限。随着盲孔设计的发展,高密度的需求其可靠性也要新的工艺来改善,镭射钻孔应运而生。如下图所示为镭射钻孔的方法。        所以,机械钻孔与镭射钻孔的区别如下:        镭射钻孔的精度会比机械钻孔高出许多。因此最小机械钻孔的孔径在规则设置里不得小于0.2mm(8mil)。最小镭射孔径在规则里设置不能小于4mil。 3.   孔径设置与板层厚度,层数等关系         孔径的设置大小首先在满足最小工艺要求的情况下,根据板子要求的精度,板层厚度,叠层数等共同决定。它们之间的关系如下:       因此,在设置孔径尺寸的时候可以参考上面的表格来根据板厚,叠层数等来设置相应的符合要求的尺寸。也可通过如下简易的板厚/孔径比来大概根据整个板厚尺寸来定义合适的钻孔孔径的尺寸。 -END- 来源 | Altium | 整理文章为传播相关技术,版权归原作者所有 |  | 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册开户_克服PCB板间多连接器组对齐的挑战

印刷电路板(PCB板)制造商在提高可靠性和降低成本的同时,也面临着增加密度、缩小占位面积、减少侧面尺寸、管理热流和提高数据速率等重大压力。随着他们不断成功地消减这些压力,一个有趣的挑战出现在设计师们的面前,即在两片PCB板之间去对齐多个已配对连接器组。 我们所需要的是清晰明确的准则,以在不牺牲系统性能、密度和可靠性的情况下,懂得如何应对这些对齐挑战,同时满足日益严格的预算和上市时间要求。 本文在描述先进的PCB和更可靠的高密度连接器之间可能遇到的冲突性要求之前,将更详细地讨论对齐的挑战,从而可以通过使用设计最佳实践高效地满足这些要求。 小型化使连接器对齐变得困难 PCB板有许多可以改进的方向,包括密度、更高的数据速率、热管理和可靠性。然而,伴随着这些改进的是小型化这一趋势在连接器的选择和实现方面为设计师带来的压力,特别是将多个连接器配对到PCB板上。 就连接器而言,在过去25年中,小型化导致间距从0.100英寸(2.54毫米)下降到0.016英寸(0.40毫米)—— 也就是减小了六倍,因此需要更严格的公差。然而,更严格的公差本身并不是问题,问题在于标称公差周围的可变性:如果多个连接器变至标称的任一极限,则更有可能出现一些问题。 采用单个配对连接器组的应用不会出现问题:因为没有公差累加,夹层卡被假定是自由浮动的,并且连接器的整体和局部对齐功能将确保完美对齐(图1,顶部) 。 图1:使用单个配对连接器的应用(顶部)没有堆叠公差,并且连接器的整体和局部对齐功能将确保完美对齐。多个连接器就会引入公差,这些公差会累加并导致对齐错误。 (图片来源:Samtec Inc.) 但是,在相同的母夹层卡以任何方向和任何距离增加更多配对的连接器组,都将会引入一些累加的公差(图2,底部)。这些公差对于PCB加工车间、电子制造服务以及PCB板中使用材料的属性都特别重要。 为了说明这个问题,请考虑使用一个多夹层连接器系统(图2)。该项组装包括六个或更多组件:主板(A)、夹层卡(B)、母头连接器#1(C),与配对的公头连接器#1(D),母头连接器#2(E)与公头连接器#2(F)配对。 图2:设计人员需要考虑并说明包括PCB板在内的所有组件公差的原因。 (图片来源:Samtec Inc.) 假如夹层连接器和足够刚性的PCB板能够精确地按照标称条件被制造、加工和组装,那么可以在两个PCB板之间成功部署无限数量的连接器;事实上,公差和材料性能的可变性是限制性或决定性因素。在图2所示的情况下,设计人员需要考虑并说明所有组件的公差,包括(A)和(B)两个PCB板经常被忽略但相关的公差。 如何解决PCB板到连接器对齐的问题 某些PCB板的采购仅受嵌入在Gerber数据包中的规格所控制(图3)。可以通过这些数据包来打造PCB板,而无需考虑机械公差。 图3:某些PCB板的采购项目仅受嵌入在Gerber数据包中的规格所控制,这样就可以在不考虑机械公差的情况下依据这些数据包来打造PCB板。而对于多连接器应用,此数据包需要随附单独的机械图纸一起使用。 (图片来源:Samtec Inc.) 对于多连接器应用来说,此数据包必须随附单独的机械图纸,以指示原图、钻孔和布线公差。 至此,设计师需要做两件事来帮助确保得到一个成功的结果。首先是要了解PCB板供应商和连接器供应商能提供哪些支持以确保对齐。第二是确保已进行系统级公差的研究,以确定由其设计产生的连接器对齐偏差。 回看图2中由A至F组件组成的多连接器夹层卡系统,连接器供应商只能控制连接器的公差。一家好的供应商将会达到或超过已发布的性能规格,提出PCB板公差和加工建议,甚至会根据需要为推荐的PCB供应商和设备提供参考建议。 系统或产品设计人员应参考连接器的占位尺寸和产品规格。这些文档中包含的对齐偏差规格应该与系统级公差研究的结果进行比较,以帮助确保相同板卡之间的多个连接器被成功使用。 只要不超过初始和最终的角度及线性的对齐偏差,连接器系统就能正常运行。这些对齐偏差值是通过考虑诸如绝缘体干扰、光束偏转和接触摩擦等因素来计算的。超过对齐偏差值可能会导致电路和/或绝缘体断路或损坏。 虽然设计、组件公差、设备和制造能力等所有必要的信息对于设计师通常是唾手可得,但能够与连接器制造商取得联系是很重要的,以提供更具体的指导和对对齐偏差公差累积的验证。 定位销不适用于多连接器应用 一些连接器制造商提供可选的定位销,它们通常位于连接器底部的相对侧(图4)。这些定位销有助于手动放置,可用于帮助连接器在PCB板上确定方向,且对于单连接器应用来说,它们不会增加整体公差累积。 图4:虽然定位销对于手动放置和确定方向都非常有用,但对于多连接器应用来说,不建议使用它们,因为它们会对整体公差累积产生影响。 (图片来源:Samtec Inc.) 但是,对于多连接器应用来说,我们不建议使用定位销,因为它们会对整体公差的累积产生影响。如果仍然需要在PCB板上进行定向,一个更好的选择是在PCB板上钻一些过大的孔,然后采用机器放置连接器。 同样,不建议使用卡具或销钉来辅助连接器的放置。这些方法通常依赖于PCB上相对于原图的钻孔,但是该孔的位置公差通常较差,相对另一个连接器,这就降低了最终放置的连接器的总体精度。 对于多连接器应用,更好的方法是从焊盘(solder pad)阵列A中的位置A1开始对所有焊盘进行位置校准,然后在回流之前将连接器精确放置在焊盘上。 用紧固螺钉来固定PCB板 一些特别坚固的应用可能需要使用紧固螺钉来保护两个PCB板。在这种情况下,螺钉应尽可能靠近连接器系统(图5)。 图5:如果要使用紧固螺钉,则应将它们放置在尽可能靠近连接器系统的位置。 (图片来源:Samtec Inc.) 将它们放置在靠近的位置将使应力集中在连接器附近,并减小了不受支撑的PCB板跨度。跨度的增加会在PCB板中引起弯曲应力,这可能会对其他元器件,尤其是表面安装的元器件产生不利影响。 连接器衍生的PCB板应力的另一个来源是装载过程,其中大量的插入和拔出(I / O)会产生非常大的插入力/拔出力。这些力会导致PCB板过度性偏移,以致于需要额外的加强筋来支撑PCB板。非常重要的是一定要确认连接器的插入力和拔出力,它们在产品质检测试报告中可以找到。(图6)。 图6:为避免超规范加载,设计人员应一直确认连接器的插入力和拔出力,它们在产品质检测试报告中可以找到。 (图片来源:Samtec Inc.) 尽管小型化趋势使其更具挑战性,但通过使用最佳设计实践,还是能够在两个PCB板上使用多连接器组。这些措施包括进行系统公差研究以确定连接器对齐偏差,然后遵循连接器提供商建议的占位尺寸和模具设计,并利用机器来安放元器件。 另外,建议在设计过程的早期就与连接器提供商密切合作,因为他们可以为连接器的类型和安放提供建议,并就如何最大程度地降低PCB和连接器的整体应力提供咨询,以有助于确保设计成功。

摩登3主管554258:_清华最强本科毕业生Top10出炉,颜值亮了!

木易 鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一年一度,清华园里的“神仙打架”,投票结果已经出炉。 根据清华大学官方消息,2020年清华大学特等奖学金(本科生)答辩会在11月12日下午举行。15位候选人完成答辩后,现场评委投票,选出了前10名单。 △名单来自清华大学官方公众号 这份清华在校生“最高荣誉”名单出炉,也再度在网络上掀起围绕清华学霸们成长历程的热烈讨论。 有人感慨于“种子选手”刘泓、张晨等人学术履历的硬核。 物理系实力与颜值兼具的陈逸贤,则刷屏了清华官微评论区。 另外,也有网友关注到,现如今这一清华本科生最高荣誉的评选标准也发生了一些“变化”——越来越全面了。 但清华招生却官方评价:从来没有什么天才学霸。 怎么回事?不妨一起来从几位候选人的履历里,一探究竟。 刘泓:三篇一作顶会 来自电子系的刘泓同学,可能是所有候选人中,学术最「硬核」的。 还是本科生的他,目前在Google Scholar的累计引用已有86次,在其导师龙明盛副教授指导下,以一作身份发表的论文达到了5篇。 而这5篇论文,有3篇是顶会。 CVPR 2019、ICML 2019和NeurIPS 2020,都被其尽数收入囊中。 其中,中了ICML 2019的论文引用量最高。这篇论文创新地将对抗训练和迁移学习结合了起来,在CV、NLP各领域任务上推进了可迁移特征的技术水平。 这也是刘泓第一次走出国门,在顶会现场做口头报告。 对于这一段经历,刘泓这样说道: 第一次走出国门,对我来说是难忘的经历也是挑战。前往ICML现场做20分钟口头报告,给台下的上百个同行们讲解自己的工作,让我有一种代表清华精神的使命感。 交流与合作真是无处不在,不仅是汇报如此,在研究中也是如此。在刘同学的论文合作者中,我们能看到许多熟悉的大牛名字。 比如:微众银行首席人工智能官、香港科技大学讲席教授杨强(CVPR 2019)、机器学习领域著名学者Michael I. Jordan(ICML 2019)等。 △图源:清华大学 而研究之外的刘泓,其实还是一个名副其实的「学霸」。 据清华大学官方介绍,刘泓共有91学分取得了A或A+的优异成绩,推研成绩中排名电子系第二。 目前,刘同学还是清华计算机科学A类学术会议期刊审稿人。 他还曾任电子系无75班学习委员、电子系科协软件部副部长,曾获蒋南翔奖学金、学业优秀奖、科创优秀奖。 张晨:竞赛学术两不误 来自计算机系的张晨同学,在学术和竞赛上,有着「神仙」般的履历。 去年,张晨同学作为清华超算团队中的一员参加了国际大学生超级计算机竞赛(SC19)。 SC,既是竞赛也是学术会议,是美国发起的国际超算领域的顶级会议。在过程中,选手不仅要完成竞赛题目,还要完成一篇在国际权威杂志具有发表能力的英文论文。 去年的现场决赛,共有来自7个国家的16支队伍参赛,清华大学学生超算团队最终夺得总冠军。而张晨,是团队6名队员中唯一的女生。 而今年的她,成为了队长。而这,也是清华大学计算机系学生超算团队史上的第一位女生队长。 △右四为张晨,图源:清华大学新闻网 除此之外,张晨同学在学术和竞赛上还有着这诸多斩获(整理自清华官方新闻): 在CCPC中国大学生程序设计竞赛女生专场上,张晨与队友仅用2/3的规定时间就完成了所有赛题,实现清华大学在该竞赛上的首次夺冠; 针对“神威·太湖之光”的科研项目,研究结果转化成论文,发表在了顶级国际期刊 IEEE TRANSACTIONS ON COMPUTERS 上。 △图源:清华大学 研究之外的张晨同学,同样也是名副其实的「学霸」。 据清华大学的介绍,张晨成绩优异,推研成绩排名中位列全系第一,学分绩平均3.8,其中由计算机系和数学系开设的课程全部为4.0。 此外,她曾获国家奖学金、中国计算机学会“CCF优秀大学生奖”等奖项。 而且,张晨同学还热衷于体育运动,是校跆拳道队的队员,并在首都高校跆拳道锦标赛上摘得过个人竞技亚军。 陈逸贤:英语演讲全球六强 最后,我们来介绍一位来自物理系的「人气选手」——陈逸贤同学。 前几天,清华大学官方公布特奖候选人消息之后,评论区则是这样一番景象。 确实,毕竟海报上的他,是这样子的: △图源:清华大学 确实是很能打的「颜」了。不过,陈逸贤同学的实力,可不能因此小觑。 目前,在天体物理这一研究方向上,陈逸贤同学已经以第一作者身份发表了3篇论文: 《原行星盘中尘埃扩散对超级地球大气生长的抑制作用》,发表在天文领域四大刊之一的The Astrophysical Journal(ApJ)上。 《Lindblad共振点移动对巨行星在原行星盘内迁移的影响》,ApJ。 潮汐引力作用对巨行星吸积的限制,系外行星南加州2020年会议(ExSoCal 2020)。 △图源:清华大学 陈同学还有着一项为人称道的本领——极强的英语演讲能力。 在国内各类英语演讲比赛中,陈逸贤同学便经常以优异的成绩见诸报道。而在国外的比赛中,其也不遑多让:参加了伦敦举办的50多国冠军同台演讲比赛中,收获了全球六强的荣誉。 并且,陈同学还积极发挥自身学科优势和语言能力,促进基础科学的研究和交流。仅在大学的3年期间,他有着7次国际会议的参会/展示经历。 值得一提的是,陈逸贤课余积极参与文体活动,3年来跟随集体参加了10余场校级演出。而其本人,还是校艺术团合唱队的一队队员。 新的评选趋势 进入名单的候选人中,还有来自自动化系、能进行“基于脑机接口的半机械蜜蜂飞行控制系统”项目研究,同时文理兼备、已出版三本儿童文学作品的蔡烨怡;有来自社科学院,身为文科生却醉心“脑与认知”研究、立志成为认知神经科学家的宫栋宇…… △图源:清华大学 确实,“从来没有什么天才学霸”,更多的是勤奋、全面、综合发展。 据了解,今年是清华大学特等奖学金设立的第21年,也是特奖评选办法修订后实施的第二年。 在以往评选的基础上,清华一方面强调以德为先,引导和培育优良的学风,另一方面也严格评审的流程,充分发挥公示环节的监督作用。目的是希望特等奖学金的获得者,能够充分地体现清华人肩负使命、追求卓越的勇气和担当。 据清华新闻网报道,清华大学党委副书记过勇在答辩现场就谈到,参与答辩的15位同学都是清华“又红又专,全面发展”的人才培养特色的集中体现。 他提出,希望大家关注特等奖学金候选人的学术志趣和成长经历,不要过多关注取得的成绩,要看重特等奖学金的评选导向,鼓励学生个性化发展,成长为更好的自己。 清华特奖们现在都在做什么 但无论是在校内还是校外,作为清华最具代表性的本科生,特奖获得者身上总是被寄托了更多的期许。 在B站上,“学神”陈立杰、韩衍隽等人的答辩视频播放量超过40万,至今仍吸引不少后辈学子“围观”。 △陈立杰特奖答辩 而在特奖的光环之后,他们的成绩也在不断刷新。 陈立杰,如今在MIT攻读理论计算机方向博士。不仅拿下了理论计算机科学领域顶级会议STOC 2019 DannyLewin最佳学生论文奖,还在FOCS 2019上连中三篇,同样摘下最佳学生论文奖。 韩衍隽,目前在斯坦福大学攻读电气工程博士。同样在不断产出新的学术成果,其身影在COLT、NeurIPS等顶会上亦不鲜见。 有趣的是,特奖之间也存在奇妙的传承。 韩衍隽曾表示,自己在美国交流期间,受到2011年清华特奖得主焦剑涛很大的影响。 而今年入围特奖答辩的姚班学子吕欣,同样对理论计算机科学领域感兴趣,并与师兄陈立杰合作,在FOCS 2020上发表了一篇2作论文。 今年的特奖评选已经告一段落,但对于特奖候选人们而言,相信这只是一个开始。 在这个新技术迸发的时代,还有更多可能性,等待被创造。 参考链接: — — 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登三1960_图解!打工人看腾讯这道多线程面试题

1. 骚动的周五 小黑是大白前同事,现在俩人在不同的公司,但是都做后端开发工作。 虽然两个人都在北京,但是距离不算近,一个在望京,一个在中关村,算是北京几大IT聚集圈之二了。 两个人日常除了工作,业余活动并不多,当然头发也不多,宇宙中心五道口成了二人的集结地。 眨了5次眼,又到周五了,仿佛空气都弥漫着明天放假的欢快气息,当然还有骚动的大白和小黑: 大白看着时间差不多了,检查完上线监控报警,没啥问题,背上电脑走出了写字楼。 中关村到五道口还是比较近的,扫上低碳环保的青桔单车,一路向北到北大东门转弯来到了五道口地区。 小黑也坐上13号线,人贴人差点挤成肉饼,美食召唤下他还是在8点准时到了老地方。 大白:黑哥,你啥时候面的腾讯?挂了?你咋不找我内推我们公司呀! 小黑:还没挂,等GM面呢,你们公司手撕红黑树,整不了啊。 大白:就你这样,这么喜欢穿红卫衣和黑裤子,不问你红黑树才怪。话说腾讯都问啥了? 小黑:腾讯的面试整体感觉还是不错的,面试很宽泛,从操作系统、网络到系统设计、常用组件都会问,并且不偏不怪。 大白:那确实不错,是本着去挖掘和探测候选人技术边界,有啥奈斯的问题吗?讲讲啊 小黑:有个问题算是我的盲区了,给了几个Linux系统函数,让我看哪些是线程安全的,哪些是可重入的,并解释下为啥。 大白:哦哦,这是考察对线程安全函数和可重入函数的理解。那你咋回答的? 小黑:卧槽,我说我不太会呀,然后就jump下一题了。要不你给我讲讲?我先干一个! 小黑说完,吨吨吨,一大杯啤酒下肚了,大白见状扶了扶好几年没换的眼镜,开始和小黑讨论什么是线程安全和可重入。 2. 多线程和并发 在使用C++开发的服务端程序中多线程还是主流,一般来说会有个线程池来处理接收的请求,这样可以有效提供服务器的并发能力和CPU的利用率。 但是,多线程也是一把双刃剑。 单线程模式下,一切都是那么单调而稳定,所有的资源都是自己的,我的资源我做主。 多线程模式下,一个进程下装载了多个线程,每个线程除了部分资源是独享外,多个线程对大部分系统资源是共享的。 多个线程共享的进程资源: 内存 文件描述符 地址空间 全局数据 … 每个线程独享的资源: 线程寄存器 线程栈 线程ID、错误返回码、信号屏蔽码 … 敲黑板划重点: 1.进程是系统进行资源分配和调度的基本单位,线程是CPU调度和分派的基本单位; 2.进程是线程的载体,进程有独立地址空间,所有线程共享所在进程的地址空间; 3.进程是系统资源的大股东,而线程基本上不拥有系统资源,只占用少量在运行中必不可少的资源,比如程序计数器、一组寄存器和调用栈; 同一个进程中的多个线程有点像合租,大家共用大部分资源,自己独占一小部分资源,相互影响,然而但单进程单线程就是整租,自己独占所有资源,谁也不影响。 掌握多线程中资源共享和相互影响的特点之后,再来看看线程安全和可重入就容易很多。 3. 什么是线程安全 计算机中所谓的安全大多是指结果的正确且可预测性。 前面我们知道,多线程运行起来虽然可以提高并发能力,但是多个线程会共享很多资源,比如写全局数据,这种情况下就需要额外干预,否则将引发错乱的结果。 线程安全是在拥有共享数据的多条线程并行执行的进程中,可以正常且正确的执行,不会出现数据污染等意外情况,反之则称为线程不安全。 通俗一点讲,线程安全就怎么跑都不乱,线程不安全就是一跑就可能五花八门。 所以可能产生线程不安全根本原因在于:共享数据且共享数据可变。 这些共享数据包括全局变量、局部静态变量等,每个线程都可能对这个数据进行操作,并且操作结果会影响其他线程。 我们还经常提到另外一个术语:线程安全函数/线程安全类。 线程安全函数的一些特征: 无任何共享的数据,都是局部数据; 存在写共享数据,但是进行了加锁处理,可以实现多线程的同步调用; 存在读但无写共享数据,无需加锁; 从图中可以看到: 同一进程内有四个工作线程; 公共函数A 只执行打印操作,无论何时何线程调用,结果都是确定且正确的,因此是线程安全函数; 公共函数B 使用了全局变量Count,并对其进行递增1操作,但是没有进行加锁同步处理,因此结果是不确定的,为线程不安全函数; 公共函数C 使用了全局变量Factor,并对其进行递增2操作,使用了互斥锁进行同步确保结果的正确,是线程安全函数; 在编写多线程程序时,如果涉及多个线程操作一个公共函数,如果该函数本身不是线程安全的。 例如当一个函数F是线程安全函数,但是F调用线程不安全函数G时,同样需要对G进行加锁处理,否则函数F也将不安全。 在《深入理解计算机系统》一书中深入指出了线程不安全函数的分类: 不保护共享产量的函数 保持跨越多个调用状态的函数 返回指向静态变量的指针的函数 调用线程不安全函数的函数 前面介绍的几个例子大部分都是全局变量的不加锁控制相关的,还有两种就是: 函数本次调用依赖于上次调用结果,也就是所谓的跨状态,典型的Linux中的rand()函数; 函数将结果放在一个全局的指针中,典型的gethostbyname、localtime、strtok等; // 函数原型struct tm * localtime(const time_t *clock);/* localtime example */#include    #include    int  (){  time_t rawtime;  struct tm * timeinfo;  time (&rawtime);  timeinfo = localtime (&rawtime);   0;} 在localtime中将结果存放在timeinfo中,这个全局变量可以被任意的线程操作,因此将引发线程不安全。 对于Linux中线程不安全的函数可以查阅: https://man7.org/linux/man-pages/man7/pthreads.7.html 在理解了线程安全的相关定义和形成原因之后,我们来看下什么是可重入。 先来看看可重入的相关定义: 一个程序可以在任意时刻被中断,然后系统去执行另外一段代码,结束后又调用继续原来的子程序不会出错,则称其为可重入(reentrant或re-entrant)。 从根本上来说: 可重入函数只使用自己栈上的变量,不依赖任何外部数据,可以允许有该函数的多个副本在运行,因为每个调用者产生的函数栈都是相互独立的; 不可重入函数使用了一些系统资源,如果被中断的话,可能会出现问题; 可重入函数又分为两大类: 显式可重入:所有函数的参数都是值传递,并且只使用本地栈变量,那么函数就是显示可重入的,无论如何调用,都是可重入的,是绝对无条件的。 隐式可重入:可重入函数中的一些参数是引用传递,只有在调用线程的时候传递指向非共享数据的指针时,它才是可重入的,是相对有条件的。 : 函数内部不使用静态或者全局数据 函数不返回静态或全局数据,数据的产生都由调用者提供 不调用不可重入函数 从本质上来说,可重入函数实现了算法和数据的分离,函数内部的计算不依赖于外部,不影响也不受外部影响,是一种高效且安全的函数。 可重入函数都是线程安全函数,线程安全不一定是可重入函数。 不可重入函数可以遵守可重入规则去改造,从而变为可重入函数。 本文从多线程并发编程的一些特征进行阐述,引出了多线程下资源的共享本质。 正因为临界资源和竞态条件的存在,就产生了线程安全问题,在编写多线程程序时一定要考虑线程不安全带来的问题。 在理解线程安全的概念之后进一步引出了可重入函数。 从本质上来说,都是并发环境下由于共享资源带来的问题。 就这样,小黑听完之后虽然一知半解,但也频频点头,一看表快10点了,两个打工人结完账,消失在了去13号线五道口站的夜色中。 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!