标签目录:摩登3注册网站

摩登3咨询:_牛人精辟辨析单端信号和差分信号

单端信号单端信号是相对于差分信号而言的,单端输入指信号有一个参考端和一个信号端构成,参考端一般为地端。 差分信号差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法(单端信号),差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相反。在这两根线上传输的信号就是差分信号。差分与单端信号比较差分信号与单端信号走线的做法相比,其优缺点分别是: 优点1、抗干扰能力强。干扰噪声一般会等值、同时的被加载到两根信号线上,而其差值为0,即,噪声对信号的逻辑意义不产生影响。 2、能有效抑制电磁干扰(EMI)。由于两根线靠得很近且信号幅值相等,这两根线与地线之间的耦合电磁场的幅值也相等,同时他们的信号极性相反,其电磁场将相互抵消。因此对外界的电磁干扰也小。 3、时序定位准确。差分信号的接受端是两根线上的信号幅值之差发生正负跳变的点,作为判断逻辑0/1跳变的点的。而普通单端信号以阈值电压作为信号逻辑0/1的跳变点,受阈值电压与信号幅值电压之比的影响较大,不适合低幅度的信号。 缺点若电路板的面积非常紧张,单端信号可以只有一根信号线,地线走地平面,而差分信号一定要走两根等长、等宽、紧密靠近、且在同一层面的线。这样的情况常常发生在芯片的管脚间距很小,以至于只能穿过一根走线的情况下。 牛人关于差分信号与单端信号的精辟点评 一、基本区别不说理论上的定义,说实际的。 单端信号指的是用一个线传输的信号,一根线没参考点怎么会有信号呢?easy,参考点就是地啊。也就是说,单端信号是在一跟导线上传输的与地之间的电平差。那么当你把信号从A点传递到B点的时候,有一个前提就是A点和B点的地电势应该差不多是一样的,为啥说差不多呢,后面再详细说。      差分信号指的是用两根线传输的信号,传输的是两根信号之间的电平差。当你把信号从A点传递到B点的时候,A点和B点的地电势可以一样也可以不一样,但是A点和B点的地电势差有一个范围,超过这个范围就会出问题了。 二、传输上的差别单端信号的优点是,省钱~方便~ 大部分的低频电平信号都是使用单端信号进行传输的。一个信号一根线,最后,把两边的地用一根线一连,完事。缺点在不同应用领域暴露的不一样,归结起来,最主要的一个方面就是,抗干扰能力差。 首先说最大的一个问题,地电势差以及地一致性。大家都认为地是0V,实际上,真正的应用中地是千奇百怪变化莫测的一个东西,我想我会专门写一些地方面的趣事。比如A点到B点之间,有那么一根线,用来连接两个系统之间的地,那么如果这根线上的电流很大时,两点间的地电势可能就不可忽略了,这样一个信号,从A的角度看起来是1V,从B的角度看起来可能只有0.8V了,这可不是一个什么好事情,这就是地电势差对单端信号的影响。接着说地一致性。实际上很多时候这个地上由于电流忽大忽小,布局结构远远近近,  地上会产生一定的电压波动,这也会影响单端信号的质量。 差分信号在这一点有优势,由于两个信号都是相对于地的 ,当地电势发生变化时,两个信号同时上下浮动(当然是理想状态下), 差分两根线之间的电压差却很少发生变化,这样信号质量不久高了吗?其次就是传输过程中的干扰,当一根导线穿过某个线圈时,且这根线圈上通着交流电时,这根导线上会产生感应电动势~~好简单的道理,实际上工业现场遇到的大部分。问题就是这么简单,可是你无法抗拒~ 如果是单端信号,产生多少,就是多少,这就是噪声你毫无办法。但是如果是差分信号,你就可以考虑拉,为啥呢,两根导线是平行传输的, 每根导线上产生的感应电动势不是一样吗,两个一减,他不久没了吗~ 确实,同样的情况下,传输距离较长时,差分信号具有更强的驱动能力、更强的抗干扰能力,同样的,当你传输的信号会对其他设备有干扰时,差分信号也比单端信号产生的信号相对小,也就是常说的EMI特性。 三、使用时需要注意的由于差分比单端有不少好处,在模拟信号传输中很多人愿意使用差分信号,比如桥式应变片式力传感器,其输出信号满量程时有的也只有2mV,如果使用单端信号传输,那么这个信号只要电源的纹波就能把他吃光。所以实际上,都是用仪表运方进行放大后,再进行处理。而仪表运方正是处理差分信号最有力的几个工具之一。但是,使用差分信号时,一定要注意一个问题,共模电压范围。也就是说,这两根线上的电压,相对于系统的地,还是不能太大。你传输0.1V的信号没问题,但是如果一根是 1000.0 另外一根是 1000.1,那就不好玩了,问题在于,在很多场合下使用差分信号都是为了不让两个系统的地简单的共在一起,更不能把差分信号中的一根直接接在本地系统的地上,那不白费劲吗–又成单端了,那么如何抑制共模电压呢?其实也挺简单的,将两根线都通过一个足够大的电阻,连接到系统的地上。这就像一根拴在风筝上的线,我在地上跑跑跳跳,不会影响风筝的高度     但是你永远逃不出我的视线,而我的视线,在电子行业,叫共模电压范围~~嘿嘿 ,最后,回答一个网友的问题:单端转差分怎么转。单单将单端信号用反向跟随器跟随并不是不行,但是差分信号被平白的放大了2倍~~ 常见的用仪表运方+普通运方搭建的单端转差分是个很好的例子。 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3测速登录地址_手把手教你,单端正激式开关电源拓扑图的选用技巧

电源技术要求 选用单端正激式开关电源拓扑图如下,因为它是一种小型、经济,也是开关电源应用较多一种,并且它功率输出在50~200W是最合适的。设计技术要求如下: 输入电压:交流220V±10% 输出电压UO:15V 输出电流IO:10A 纹波电压UP:0.5V 输出波动电流IP:±0.1A 开关电源设计步骤 变压器设计 1、输出变压器次级电压U2计算 UL是输出扼流圈在内次级线圈的电压降,Uf是输出二极管的正向电压。 最低的次级电压U2min为: 2、初、次级线圈计算 输入直流电压U1的最小值使用按输出电路计算求得的U1min值。根据中国输配电情况U1=200~253V,则变压比N为: 根据输出容量磁心尺寸关系表选取EI-30。它的有效面积为S=111mm2磁心材质相当于TDK的H7C4,最大工作磁道密度Bm可查得.实际使用时的磁心温度约100℃,且要选择能保持线性范围的Bm,即0.3T以下。当磁心温度有100℃,工作频率200KHz时,约减少0.1T而成为 。根据线圈计算公式则 因而次级N2 = 4,式中Bm为磁心的磁通密度(T);S为磁心的有效截面积(mm2)。初级线圈的匝数则是 确定 。次级线圈所需要的电压U2min一定要充分,因此要进行ton max  的修正计算。 Dmax修正结果为0.42,仍然在0.4~0.45范围内,可以继续使用以下计算。 输出滤波器设计 在开关电源中带磁心的电感器,一般采用电感线圈Lf 与输出滤波电容器Cf 构成的“L”型滤波器如下图。电感线圈对高频成分呈现很高的感抗,而电容对高频成分呈现很小容抗,已达到在电路中抑制纹波和平滑直流的作用。 1、输出扼流圈的电感值设计 计算流入输出扼流圈电流 L为输出扼流圈的电感(μH);为输出电流的10%~30%。则有 电感L值为: 由此可见,需要11.86μH,10A的扼流圈。 2、输出滤波电容的确定 输出电容器的选定取决于输出脉动电压控制在多少毫伏。输出脉动电压 虽要根据 和输出电容器的等效串联电阻 确定,但一般规定为输出电压的0.3%~0.5%范围。 就是在200HKz范围内,需要 值在37.5m 以下电容器的。所以可以选择20V,8200 H,则 为31m ,容许脉动电流为2.9Ams。 流向电容器的纹波电流为: 3、滤波器电阻设计 要想不是输出扼流圈的电流中断而直接使用时,可以假设电阻值为Rd 则假设电阻Rd 电耗为Wrd 5、复位电路计算 复位电路如图所示。开关功率管VT1接通时,变压器T1的磁通增加,磁能被储存到T1,当VT1截止时,即放出这种受激磁的磁能下图复位线圈到T1上以在VT1截止时通过VD1把磁能反馈到输入。 则磁复位串接在N3的中二极管VD1承受最大电压为 那么选择VD1额定电压为800V,这样基本符合要求的。 6、功率开关管选择 下图为MOSFET型功率开关管,它主要具有驱动功率小,器件功率容量大;第二个显著特点是开关速度快,工作频率高,另外他的热稳定性优于GTR等优点,也是目前开关变换器广泛应用的开关器件。 根据单端正激式变换器计开关管VT1承受最大电压公式得: 流过MOSFET开关管最大电流为: 根据上面功率MOSFET表,可以选择2SK2718型号。它的最高承受电压为900V,允许最大电流为2.5A,而功率损耗是40W,是上面功率最小损耗的。 7、输出二极管选择 输出二极管有肖特基二极管(SBD),低损耗二极管(LLD)、高速二极管(FRD)。输出为低压大电流时应采用肖特基二极管,其他则采用低损耗或调整二极管。 选择二极管时要注意选择反向恢复时间trr快的二极管。这是因为主开关元件闭合时反向流入二极管的电流会影响初级线圈开关特性并致使损耗增大。同时,输出噪声也会受很大影响的。所以输出整流二极管选择一般原则有四点。 1、选用正向压降VDF小的整流二极管; 2、选用反向恢复时间trr整流二极管; 3、选用正向恢复电压VFRm整流二极管; 4、选用反向漏电流IR小整流二极管。 续流二极管VD2选择: 续流二极管VD2上的反向电压UVD2与输出变压器次级电压的最大值是相同的。根据单端正激式变换器公式得: 流过它方向电流Ir一般看作与IO大致相同的,即 Ir=Io=10A. 可选择低损耗二极管MBR1545 作为续流二极管它参数为,Uds=45V, IO=15A,trr<1.0ns. 8、恒流输出电路设计 ① 恒流输出原理 任何电源要实现恒流功能,均需对电源的输出电流进行检测取样,与电流设置值即参考值进行比较,经负反馈放大调节(P、PI、PID)。线性串联稳压是调节调整管的压降,而开关电源是调节变换器的脉宽(或占空比),维持输出电流的恒定。 下图是恒流控制反馈系统图。图中Iref是电流设置基准;CR是电流PI调节;Kfi是电流取样反馈系数;RS、Ro是电流取样电阻和负载电阻。该系统采用是电流模式控制,可以检测变换器输出电流,适当地选取反馈系数Kfi, 通过P(比例)、PI(比例积分)、PID(比例积分微分器)实现恒流控制。在反馈系数不变情况下,也可以通过改变电压或电流实现恒流值控制。 下图是恒流电源常用电路,其中采样电阻RS串联在功率回路里,作为回路电流的采样元件。它把回路电流转换成电压信号,并与基准电压Uref在放大器中进行比较放大,然后将其送至调整管VT的基极,驱动调整管VT对输出电流IO变化进行补偿校正。就可以实现恒流输出的。 9、缓冲吸收电路设计 在开关电源中,由于变压器的漏感、布线的引线电感存在、开关管在关断瞬间会产生很高的电压尖峰脉冲。整流快速恢复二极管由于存在存储效应,反向恢复过程中也会出现很高的反向恢复的碾压尖峰脉冲。这些过电压尖峰脉冲的出现不但危及功率器件的工作安全性,而且形成很强的电磁干扰噪声。为此必须在功率器件两端设计尖峰电压缓冲吸收电路。缓冲电路图如下 从缓冲电路中均有电容器元件,电容器的端电压不能突变,当MOSFET功率开关管关断是形成尖峰电压脉冲能量转移到电容器中储存,然后电容器的储能通过电阻消耗或返回电源,起到缓冲吸收电压尖端作用。而输出二极管两端产生的反向浪涌电压同时也受到限制,这样因此反向浪涌电流就会随之而减少,以及减少损耗和可能出现振荡。 10、控制电路设计 下面采用是UPC1094C控制电路 ① 振荡器 振荡器的振荡频率fosc有接在引脚6上的定时电阻器R17与接在引脚5上的定时电容器C15决定的。当 时振荡频率 。 ② 启动电路 启动电路由接在引脚8上R14接上外部电源为芯片工作提供Vcc=15V电源,而接在引脚9上是通过R10接在外部电路提供集电极电压。 ③ 限流电路 过流保护电路由R18、R19 、C16组成。它们是接到引脚3上的,在正常情况下,引脚3上电压低于200mV。当出现过流时,引脚3上的电压超过200mV的正负阀值,输出级被锁定为低电平,下个脉冲周期来之前,过流闭锁器复位,对下个周期的过电流进行检测,限制脉冲宽度。 ④ 过电压保护电路 过电压保护电路由光电耦合器PC1、R16组成的。当输出电压超过15V时,光电耦合器PC1动作,经过引脚2接入反馈电压电路,使输出级锁定为低电平。 ⑤ 最大占空比的设定和软启动 最大占空比是由电阻器R14、R15分压比来确定的。为了防止变压器的磁饱和,当电源电压刚启动时,与R14并联的电容器C14上电压不能突变,引脚1上电压为UREF,占空比为最大的。 ⑥ 输出电压控制电路 输出电压可通过调节R5、R6、R7组成分压电路确定的。 11、PCB布线 在画PCB布线时,应先确定元器件的位置,然后布置地线、电源线、再安排高速信号线,最后考虑低速信号线。 元器件的位置应按电源电压、数字及模拟电路、速度快慢、电流大小等进行分组,以免相互干扰。格局元器件的位置可以确定PCB连接器各个引脚的安排。所有连接器应安排在PCB的一侧,尽量避免从两侧引出电缆,减少共模辐射。 ① 电源 在考虑安全条件下,电源线应尽可能近地线,减小差模辐射的环面积,也有助于减小电路的交扰。 ② 时钟线、信号线和地线位置 信号线与地线距离较近,形成的环面积较小;这样才合理的。 ③ 按逻辑速度分割 当需要在电路板上布置快速、中速和低速逻辑电路时,高速的器件应按放在紧靠边缘连接器范围内,而低速逻辑和存储器,应放在远离连接器范围内。这样对共阻抗耦合、辐射和交扰的减小都是有利的。 ④ 应避免PCB导线的不连续性 1)、迹线宽度不要突变; 2)、导线不要突然拐角。 12、电路仿真…

摩登3主管554258:_男性攻占“她经济”

配图来自Canva可画 近些年在网络上一直有一个调侃,一个家庭中不同成员的消费能力有着这样的排行,女人>小孩>老人>狗>男人,也让外界很多人都开玩笑说“男人消费不如狗”。 似乎在消费能力上,男性和女性之间的鸿沟已经难以跨越,尤其是随着“她经济”的爆火,在让女性的消费能力节节攀升的同时,似乎也让这个鸿沟更加巨大。但是如今在一些原本只属于女性的消费领域,男性消费也开始崭露头角。 男性抢滩“她经济” 一直以来,美妆、医美等领域都被默认为是女性的专属消费,而且也正是因为这些领域的火热,也让“她经济”释放出巨大的活力。而在传统观念之中,这些领域似乎和男性没有一丝一毫的关系。 就像去年10月李佳琦在直播间中售卖一款高档男士护肤品时,评论里的女生都在刷“他不配”。 但这种情况在今年却出现了很大的改变,男性消费者对于美妆产品的需求突然暴增30倍,一改“他不配”的局面。根据天猫和菜鸟联合发布的数据,今年双11期间男性进口彩妆商品备货同比增长超3000%。 而且据央视新闻报道,在2016年时有31%的男性用户表示自己绝对不会使用化妆品,而到了2019年这一比例缩减了三分之二,预计到了2023年全球男士化妆品的市场规模将会达到5400亿元。 当然,并不只是美妆,在“她经济”中还有很多其他方面也在被男性攻占,比如医美整形。 根据新氧白皮书数据显示,2019年中国医美男性消费者数量增长了52.30%,虽然低于女性消费者70%的增速,但依然远远高于日本和韩国等成熟市场的增长速度。 而根据《2020年新白领消费行为研究报告》显示,随着男颜的崛起,医美在年轻化的同时,也在逐渐男性化,医美消费人群中有30%为男性消费者。 另外根据欧睿国际数据显示,中国男性美容市场零售规模在2016年时为124.5亿元,2019年已经增长至158.9亿元,预计今年有望突破170亿元。 而且男性每月在医美方面的投入并不比女性差,根据中国医美网站新氧的报告显示,在过去一年以来,男性医美消费的平均客单价为7025元人民币,是女性消费的2.75倍。当中,90后男性为重点消费群,他们主要消费的医美疗程为植发。 新兴“他经济”的异军突起 不难看出,这些领域中男性消费能力的逐渐崛起,让“她经济”转向了一种更新的“他经济”。 这些新兴的“他经济”,主要在美妆、医美、时尚等以前男性很少涉足的领域,甚至是不被外界认可的领域。比如在传统观念中,男性在日常生活中涂脂抹粉依旧是一件社会上大多数人难以接受的事,更别说男性整形美容这种事。 而如今为什么这些领域的消费会受到男性的追捧呢?主要原因有以下几点。 首先,逐渐兴起的荷尔蒙经济让越来越多的人开始注重外表。不论是抖音、快手还是各类社交软件,都有很多充满荷尔蒙的内容,在吸引更多人关注的同时,也滋生了很多人将自己包装起来的想法。 爱美之心人皆有之,女性可以通过收拾打扮让自己更具有吸引力,男性当然也想要通过更加精致和帅气的外表吸引外界的目光和欣赏,而通过美妆、医美、穿衣打扮等方法则可以较为快速的达到这个效果。 其次,消费观念的改变让男性更加注重外在。男性自我价值意识的提升以及消费升级观念的影响,让更多的男性消费者选择为自己投入更多。当然,投入的方面包含了外在和内在,不论是进行美妆产品还是精神领域的消费,都是男性自我价值提升的表现。 最后,去性别化消费已经成为了Z世代主要的消费趋势。京东与唯品会在联合发布的《中国两性消费趋势报告》中指出,去性别化消费已经成为了当下中国消费升级语境中的一个重要趋势,而Z世代的消费观念同样也加速了这种趋势。 也就是说消费的性别边界正在逐渐模糊,而且随着男性自我形象管理意识的提升以及工作中对性别的要求逐渐模糊,让一些原本基于性别标签而被明确划分的消费界限逐渐模糊,而李佳琦在美妆领域的成功就是一个很好的证明。 逐浪新蓝海 美妆领域是一片火热的红海这毋庸置疑,但是如果在前面加上“男性”这个限定词,一片红海之中的新蓝海就逐渐浮现。而这一个充满想象空间和商机的领域,虽然目前还没有形成多大的体量,但是也已经吸引了众多的玩家入局其中。 率先发力的自然是来自海外的美妆领域头部玩家们。比如早在2018年国际知名品牌香奈儿就推出了Boy de Chanel男士彩妆系列,其中包含眉笔、唇膏、粉底等产品,近日还扩充了保湿霜、遮瑕膏、眼线胶笔、指甲油等产品。 而国内的美妆品牌也不甘示弱,根据2019年阿里平台销售数据显示,男士彩妆品类TOP5中有四家都是国产品牌,分别为左颜右色、尊蓝、和风雨、阿姿美尔,年销售额共计占总比为64.01%。不难看出,在男性美妆市场中,国产品牌更受消费者的选择。 这主要是因为男性美妆市场依旧处于刚刚萌芽的阶段,消费观念虽然在升级中,但是很多男性在购买单价较高的大牌美妆产品时依旧有所犹豫。而国产的美妆品牌一般都主打性价比,价格处于一个适中的阶段,质量也有一定的保证。 而且随着诸如完美日记、花西子等美妆界“国货之光”的火爆,以及国潮复兴的消费浪潮,很多的消费者更愿意选择国产美妆品牌进行消费。 当然,除了美妆领域,医美以及市场领域也已经开始了抢夺男性消费者的动作,比如医美平台中男性用户的占比就很能说明问题。国内的几家医美中,悦美、新氧、更美、美黛拉算得上是行业中的头部平台,而其平台中男性用户的占比分别是31%、23%、32%、20%。 而随着越来越多男性用户被吸引到美妆品牌和医美平台中,这片新蓝海中的竞争也将会愈发激烈。 问题接踵而至 但不论是男性医美还是男性美妆市场,这些新兴的“他经济”依旧有着诸多的问题需要行业内的参与者共同解决。 其一,男性消费者的消费观念还需要培养。对于男性消费者来说,在这些领域中愿意接受并实践的男性依旧不占大多数,而且很多男性依旧处于前期试探的阶段,并没有形成一定的消费习惯,从而影响到消费者的消费能力。 其二,男性消费的具体需求还需要进一步探索。这些近来兴起的男性消费领域,几乎都处在一个前期探索的过程中,甚至连男性消费者自身有时都不知道心里想要的究竟是什么。这不仅需要消费者自己探索,也需要企业进一步了解消费需求,提供更好的产品。 其三,这些需求现阶段依旧不是刚需。对于男性消费者而言,不论是没有培养起来的消费观念还是不明确的消费需求,都将矛头指向了一处——男性医美、美妆等需求对于现阶段的男性而言并不是刚性需求。 这也让美妆、医美等领域的男性消费者充满了不确定性,而这种不确定性也导致了很多平台虽然知道男性将会成为自身平台的潜在消费者,但就是很难将其发展成忠实用户,在平台内进行多频次且稳定的消费。 当然,不论是“他经济”的浮现还是“她经济”的火爆,本质上还是回到了当下年轻消费群体的消费观念上,他们更喜欢追随自身的喜好,喜欢在自己身上投资更多,这都是他们特殊消费观念的一种表现。 于是对于品牌和企业而言,不论是想要抓住“她经济”还是“他经济”,如何抓住年轻消费者的不同需求,这才是未来增长的重中之重。

摩登3测速代理_C语言结构体描述BMP的文件格式

关注+星标公众号,不错过精彩内容 编排 | strongerHuang 微信公众号 | strongerHuang BMP文件的结构其实非常简单,就是两个结构体+一个可选的调色板+位图数据。 第一个结构体是BITMAPFILEHEADER,第二个结构体是BITMAPINFOHEADER。然后就是可选的调色板(RGBQUAD数组)。最后是位图数据。 嵌入式专栏 1 第一个结构体 这里先讲讲第一个结构体位图文件头结构:BITMAPFILEHEADER 的详细结构。 先看看代码原型: typedef struct tagBITMAPFILEHEADER{ WORD bfType;        DWORD       bfSize; WORD bfReserved1; WORD bfReserved2;        DWORD       bfOffBits;} BITMAPFILEHEADER, *PBITMAPFILEHEADER; 其中: bfType: 文件的标识 ,值必须是0x4D42(也就是“BM”两个字符,注意是Little-Endian) bfSize: 是整个文件的大小 bfReserved1和bfReserved2 必须是0. bfOffBits :是位图数据在文件中的偏移。 嵌入式专栏 2 第二个结构体 位图信息头:BITMAPINFOHEADER。 typedef struct tagBITMAPINFOHEADER{        DWORD       biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount;        DWORD       biCompression;        DWORD       biSizeImage; LONG biXPelsPerMeter;        LONG        biYPelsPerMeter;        DWORD       biClrUsed;        DWORD       biClrImportant;} BITMAPINFOHEADER, *PBITMAPINFOHEADER; biSize: BITMAPINFOHEADER这个结构体的大小。必须为40(字节)。 biWidth: BMP位图的宽度。 biHeight: BMP位图的宽度。 这里需要说明一下的是,BMP位图数据有两种存储方式,通常是“底到上型”,也就是BMP位图数据的第一行其实是这个图片的最后一行。一种是“顶到下型”,BMP位图数据的第一行就是图片的第一行。 如果位图是“顶到下型”,那么biHeight的值是负的,位图的实际高度其实是(-biHeight),也就是它的相反数。 只有“底到上型”位图支持压缩。“底到上型”是目前最常见的位图类型。 PhotoShop在保存位图文件的时候,你可以设置让它输出“底到上型”或“顶到下型”。“顶到下型”就是“逆行序”。 biPlanes: 位图的“位面数”。这个值必须为1. biBitCount: 位图的“颜色位数”。表示位图数据中,几个二进制位表示一个像素。 颜色位数为1表示单色(其实是“双色”,通常是黑白,也可以是别的两个颜色。) 为2表示四色,也就是四种颜色。为4表示16种颜色。为8表示有256种颜色。 在表示256色以内的颜色数量的时候,这个BMP文件其实是作为使用调色板颜色的图像,因此在BITMAPINFOHEADER结构体的后面还有个调色板。 所谓调色板其实就是RGBQUAD结构体的数组。它的元素个数就是颜色数。 biCompression: 位图的压缩格式,值可以是BI_RGB(未压缩),BI_RLE8(8位RLE压缩),BI_RLE4(4位RLE压缩),BI_BITFIELDS(表示颜色表中,每个像素有3个DWORD的屏蔽位数据来指示红绿蓝成分。16位和32位位图可以使用这个。),BI_JPEG(位图数据其实是JPG格式的),BI_PNG(位图数据其实是PNG格式的) 当biCompression值为BI_RLE8的时候,biBitCount必须为8,表示这是个8位的256色索引颜色位图(有256个调色板),位图数据按照如下算法压缩: ·位图数据是每两个字节组成一个元素,这样的元素组成了一个数组。 ·每个元素,第一个字节表示重复的像素的数量,第二个字节是8位的调色板颜色索引。 ·如果元素的第一个字节为0,那么第二个字节有特殊的含义: 0:这行已经结束了。 1:这个位图已经结束了。 2:设置下一个像素的位置,后面的两个无符号字节分别指定了下一个像素的X、Y偏移。注意是无符号字节,意思是说,偏移只能是往后。 3到0xFF:表示后面有一段没有压缩的数据的长度,也就是连续的8位像素颜色索引数据的长度。但是数据必须是2字节对齐的。biCompression值为BI_RLE4的时候,biBitCount必须为4,表示这是个4位的16色索引颜色位图(有16个调色板)。 和BI_RLE8的区别只是每个元素的第二个字节如果表示颜色索引,它表示的是两个像素的颜色索引。第一个字节表示重复的数量,第二个字节表示两个像素的颜色。 举个例,假设调色板第0号色是黑色,第1号色是白色,元素的值是0x05,0x01,那么它表示“黑白黑白黑白黑白黑白”共10个像素出现在1行。 biSizeImage: 位图数据块的大小。以字节为单位。如果你的位图没有经过压缩,这个值可以是0. biXPelsPerMeter: 表示横向的每米的像素数。可以为0. biYPelsPerMeter: 表示纵向的每米的像素数。可以为0. biClrUsed: 位图实际使用过的调色板的颜色数。如果这个值为0,表示这个位图使用了整个调色板。只有8位以及8位以下的索引颜色位图才需要考虑这个值。对于16位以及16位以上的位图,无视这个值。biClrImportant表示重要的颜色数。如果为0,表示颜色都重要。通常它的值等于biClrUsed,或者等于0. 如果位图是8位以及8位以下的位图,后面是位图的调色板数据。否则没有调色板数据。 调色板就是简单的RGBQUAD数组。 后面就是位图数据了。如果位图是没有经过压缩的,那么位图数据的存储就是一行一行的,每行都是每XX个字节一个像素,取决于位图的位数(biBitCount),每一行都是4字节对齐的!多出来的部分用0补齐。这里必须注意。 因此,每行占用的字节数要按照以下公式计算:(其中的biBitCount指的是位图的位数,也就是BITMAPINFOHEADER的成员) 每行字节数 = ((图像宽度 – 1) * biBitCount / 32 + 1) * 4; 如果你是用VB编写读取位图的话,是这样写的: 每行字节数 = ((图像宽度 – 1) * biBitCount \ 32 +…

摩登3新闻554258:_揭秘功率半导体,芯片国产替代黄金赛道!

本文来源:智东西 功率半导体应用领域广泛,下游需求旺盛带动功率半导体市场规模持续增长。新能源车渗透率提升带动功率半导体需求增长,预计 2025 年中国新能源汽车用功率半导体市场规模将达 104 亿元。 配套充电桩数量增长叠加快速充电需求驱动充电桩功率提升,预计 2025 年充电桩用功率半导体市场空间将达 35 亿元。新能源发电市场规模持续扩张,预计 2025 年光伏逆变器用功率半导体市场空间约为 44 亿元。 5G 时代,基站数量扩充且功率提升,叠加云计算、雾计算扩容,加大功率半导体使用需求。家电变频化& 消费电子快充化,驱动功率半导体用量进一步增加。 据 Omdia 预测,全球功率半导体市场规模将从 2020 年的 430 亿美元增至 2024 年的 525 亿美元,复合增速约为 5%。 下游需求旺盛驱动功率半导体市场规模增长 1、功率半导体用途广泛,市场空间广阔 功率半导体用途广泛 。功率半导体为可起到功率转换、功率放大、功率开关、线路保护和整流等作用,其下游应用十分广泛,几乎用于所有的电子制造行业,传统应用领域包括消费电子、网络通信、电子设备等产业。随着社会经济的快速发展及技术工艺的不断进步,新能源汽车及充电桩、智能装备制造、物联网、新能源发电、轨道交通等新兴应用领域逐渐成为功率半导体的重要应用市场,带动功率半导体需求快速增长。 功率半导体 按类型可分为二极管、晶闸管、晶体管 。 1)功率二极管结构简单,有单向导电性,广泛用于消费电子中。 2)晶闸管体积小、可靠性高,多用于高压直流输电、轨道交通。 3)晶体管可进一步分类为 BJT\MOSFET\IGBT。BJT 有低导通压降特性,有电流放大和开关的作用,常用于家电和开关电路。MOSFET 有易于驱动、频率超高的特点,主要应用于手机充电器、移动电源、车载导航等。 IGBT 兼具 MOSFET 的高输入阻抗和双极型三极管 BJT 的低导通压降两方面的优点,开关速度高,易于驱动,频率高,损耗低,常用于 600V 以上的大功率装置,如电动汽车充电桩、逆变器等。 ▲功率半导体的应用领域 ▲功率半导体 按类型分类 全球及中国功率半导体市场空间广阔 。近年来,受益于社会经济、技术水平的进步以及应用领域的拓宽,功率半导体的市场空间稳步增长。2020 年全球功率半导体市场空间约为 430 亿美元,据 Omdia 预测到 2024 年将进一步增长至约 525 亿美元,未来 4 年 CAGR约为 5%。 另据 IHS 数据显示,2018 年中国功率半导体市场空间约为 138 亿美元,占全球市场份额的 35%,预计 2021 年中国功率半导体市场空间将增至 159亿美元,CAGR 约为5%。 ▲全球功率半导体市场空间 (亿美元)▲中国功率半导体市场空间(亿美元) 汽车电子、工业电子 、消费电子是功率半导体的主要应用领域。从全球功率半导体的下游应用领域占比来看,2019 年汽车电子占比最多,达 35.4%,工业电子、消费电子的占比分别为 26.8%和 13.2%,是第二、第三大应用领域。从中国功率半导体的下游应用领域来看,2019 年在汽车电子同样占比最多达 27.4%、其次是消费电子、工业和电力,占比分别为 23.1%和 18.6%。 ▲2019 年全球功率半导体下游应用领域占比▲2019 年中国功率半导体下游应用领域占比 2、新能源汽车产业发展提振功率半导体需求 政策、市场双导向,推动新能源汽车景气度上行。政策方面,多国二氧化碳限排政策、新能源汽车补贴政策双管齐下,以应对全球气候变暖压力,汽车电动化路线愈加明显。在欧盟,ACEA 汽车温室气体排放协议规定,到 2030 年以前,汽车二氧化碳排放量需低于每公里 59 克。 根据英飞凌测算,欧盟新能源汽车渗透率将在 2030 达到 40%。在中国,《新能源汽车产业发展规划(2021—2035年)》提出新能源汽车发展愿景,计划到2025年,国内新能源汽车渗透率达到 20%。 ▲全球主要国家二氧化碳排放管理与发展 汽车电动化大势所趋,功率半导体面临新的增长机遇。以电力系统作为动力源的新能源汽车,对电子元器件功率管理,功率转换能力提出了更高的要求。在传统汽车中,功率半导体主要应用于车辆启动,发电和安全领域,低压低功率电子元器件即可满足其工作需求。而在新能源汽车中,电池输出的高电压需要进行频繁的电压变换,电流逆变。这些电路大幅提高了汽车对 IGBT 、MOSFET、 双极晶体管 、二极管的需求,从而提升了单车功率半导体价值。 ▲纯电动汽车结构图 预计 2025 年中国新能源汽车用功率半导体市场规模将达 104 亿元。乘联会预计 2025年中国汽车销量将达…

摩登3新闻554258:_通信十大定律,最后一个扎心了……

01 摩尔定律 英特尔(Intel)创始人之一戈登·摩尔(Gordon Moore)提出摩尔定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 戈登·摩尔 摩尔定律的核心内容主要有三个: 一是集成更多的晶体管,每隔两年单芯片集成的晶体管数目翻一番; 二是实现更高的性能,每隔两年性能提高一倍; 三是实现更低的价格,单个晶体管的价格每隔两年下降一倍。 摩尔定律被称为“半导体行业的传奇定律”,它不仅揭示了信息技术进步的速度,更在接下来的半个世纪中,犹如一只无形大手般推动了整个半导体行业的变革。 02 梅特卡夫定律 1993年,乔治·吉尔德提出梅特卡夫定律:一个网络的价值等于该网络内的节点数的平方,而且该网络的价值与联网的用户数的平方成正比。 该定律表明,一个网络的用户数目越多,那么整个网络和该网络内的每台计算机的价值也就越大。 用公式再来说明一下: 网络设备之间可能连接数 网络可能连接数C可以表示为: C = n(n-1)/2 (1) 网络的经济价值V表示为: V=C2 (2) 互联性驱动经济价值,这就能明白万物互联对运营商等企业的价值了。 03 吉尔德定律 乔治·吉尔德(数字时代三大思想家之一)提出吉尔德定律(又称胜利者浪费定律):最为成功的商业运作模式是价格最低的资源将会被尽可能的消耗,以此来保存最昂贵的资源。 吉尔德定律被描述为:在未来25年,主干网的带宽每6个月增长一倍,其增长速度是摩尔定律预测的 CPU 增长速度的3倍并预言将来上网会免费。 网络速度提升、价格下降,这不就是提速降费的惠民政策吗? 摩尔定律、梅特卡夫定律和吉尔德定律的三大趋势,共同推动着通信网络和信息社会飞速发展。 04 库梅定律 2011年,斯坦福大学的教授乔纳森·库梅(Jonathan Koomey)发现了库梅定律:单位运算的电耗量,每一年半就降低一半,从计算机诞生开始,都会持续下去。 21世纪,摩尔定律和库梅定律具有同等重要的地位。 库梅定律 vs 摩尔定律 库梅指出,从1946年第一台电子计算机ENIAC诞生之日算起,相同的计算量所需能耗一降再降。 微软和英特尔曾经联手对ENIAC的峰值功耗进行了计算——每秒运行5000次加法,所需功耗为150千瓦。如今仅仅是ENIAC时期的四万分之一。 ENIAC (占地面积达170平方米,重30吨) 物联网的基础是数据,如何采集世界的数据? 其中一个解决方案是利用库梅定律,建立遍布于世界的传感器网络,和计算机进行连接,建立自动化获得世界信息的范式,更好地收集世界的数据。 我们要建立大思维,正如我们的五官等感官都在收集信息供给我们处理,你的大脑会不断比较,从而建立一个关于世界的图景。 05 尼尔森定律 1998年,嘉卡伯·尼尔森(Jakob Nielsen)提出互联网宽带的尼尔森定律:高端用户带宽将以平均每年50%的增幅增长,每21个月带宽速率将增长一倍。 这也是指数化增长的曲线,这也是为什么现在很多大的电信公司,价格一降再降,但是仍然可以从中获得丰厚利润的主要原因。回顾宽带用户的发展情况其增长趋势很好地与该定律吻合。 06 库帕定律 马丁·库帕(Martin Lawrence Cooper)提出库伯定律:无线网络容量每30个月增加一倍。 库帕大哥大的发明者,被称为移动电话之父。 马丁·库帕 有人说,“库伯定律”比“摩尔定律”更加经典,更加坚不可摧。 从1897 年吉列尔莫·马可尼( Guglielmo Marconi)用无线电报传递莫尔斯电码,到今天4G通信技术的应用,这个定律都被认为是正确的。 而且更酷的是,无线射频传递过程中的信息量,不同于芯片上的晶体管,它不存在物理空间的极限限制,只要架设更多的线路,更多的带宽,搭建更多的终端,信息传输量就会永无止境地向上递增。 07 Edholm带宽定律 菲尔·埃德霍尔姆(Phil Edholm)提出Edholm带宽定律:人们对于无线短距离通信的带宽需求基本每隔18个月翻一番;为了满足日益增长的带宽需求,可以采用更先进的调制技术提高频带利用率,或者通过采用多种复用方式来增加信道容量。 Edholm带宽定律 在未来,无线网络的传输效率会和有线网络的传输效率逐渐趋同,无线网络和有线网络相互融合,是通信技术发展到一定阶段后必然会有的结果。 08 巴尔特定律 巴特尔定律:从一根光纤中导出的数据量,每9个月就会翻一倍,这也意味着在光纤网络中,数据传输成本每9个月的时间就会下降一半。 09 香农定律 1948年,美国工程师克劳德·香农(Claude Elwood Shannon)提出香农定律:如果把网络带宽比喻为车道宽度,那么网速就好比汽车在车道上行驶的速度;汽车在车道上行驶得快或者不快,要受限于车道宽度的大小,车道上正有多少辆汽车在行驶等诸多干扰性因素。 香农定律的数学公式 克劳德·香农在工程和数学界是一位响当当的人物,在20世纪30-40年代的工作为他赢得了“信息时代之父”( father of the information age )的称号。 克劳德·香农 10 墨菲定律 墨菲定律是一种心理学效应,由爱德华·墨菲(Edward A. Murphy)提出:凡事只要有可能出错,那就一定会出错。 墨菲定律自被提出之日起便被广泛应用于各个行业的安全生产管理中,通信行业也不例外。 举几个扎心的例子: 凡是有可能停电的基站,那就一定会停电; 凡是有可能发生断网的日子,那就一定会断网; 凡是有可能发生安全事故的工程施工,那就一定会发生事故。 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3内部554258_龙芯.NET正式发布 开源共享与开发者共成长

2020年12月19日,2020中国. NET开发者大会于苏州盛大开幕。本次大会以“开源、共享、创新”为主题,以线下城市苏州为中心,覆盖北京、上海、深圳、广州、长沙、成都、厦门、胶东等地区,是中国 .NET 开发者的大聚会,线上+线下参会人数达数十万人,覆盖城市达10+个。峰会共包含5大会场,近50场热点技术专题,数万名开发者将就各类“ .NET 开发和产品设计”相关的前沿技术话题展开深度交流。 此次开发者大会上,龙芯.NET项目及JVM负责人敖琪博士发表了《龙芯.NET到来》主题演讲,并正式发布龙芯.NET。这意味着国产龙芯已支持.NET,具备更为灵活的部署能力,也将进一步完善龙芯软件生态开发体系。会上,微软全球开发平台事业部资深副总裁Julia Liuson女士特别提到:“中国的.NET社区也积极为.NET开源项目做出了很多贡献,其中特别提一下,对龙芯平台的移植是一个非常大的工程,谢谢龙芯团队。” 此次发布的龙芯.NET 3基于.NET Core 3.1,支持该版本具备的所有主要功能,包括GC、AOT等。CoreCLR、CoreFX、ASP.NET Core等库的测试通过情况与x64/arm64相当。同时支持龙芯CPU家族,包括龙芯3A4000/3A3000/3A2000单路多路、龙芯2K1000等。支持多款操作系统,包括Loongnix、Debian、UOS、麒麟等。后续,龙芯将对龙芯. NET进行长期维护,并与社区同步。 从去年开始,龙芯将.NET作为一个重点项目持续跟进。2019年5月开始调研需求及版本。2019年8月构建成功,10月输出第一个Hello World,并完成虚拟机初始化、部分JIT和打印功能。2020年5月.NET Web应用启动,6月18日开源了龙芯版本的CoreCLR,7月发布早期试用版,12月推出发布候选版本。 未来龙芯将持续不断完善.NET产品质量,为用户提供更好的服务和使用体验。龙芯也将积极参与.NET社区建设,将龙芯的工作回馈给社区,并争取合入上游。同时号召.NET领域开发人员及国内爱好者一起参与.NET虚拟机的学习和研究,龙芯愿意帮助更多国内开发者了解底层技术,从CoreCLR等底层平台中获取更多土壤,也将有利于更好掌握.NET优秀技术。 感兴趣的开发者可通过龙芯提供的开源仓库自己动手编译,了解该版本的实际情况。

摩登3测速代理_数据处理,你不得不会的「正则表达式」

若要判断一个输入的QQ号是否有效,你会如何处呢? 首先你得分析一下其对应规则,依次列出: 长度大于5,小于等于11; 首位不能为0; 是否为纯数字? 规则既列,接着就该尝试实现了,那么用什么来表示字符串呢?在C++中,最容易想到的就是string了,其中提供了许多成员函数可以处理字符串,所以有了如下实现: 1std::string qq; 2std::cin >> qq; 3 4// 1. 判断位数是否合法 5if (qq.length() >= 5 && qq.length() <= 11) 6{ 7    // 2. 判断是否非'0'开头 8    if (qq[0] != '0') 9    {10        // 3. 判断是否为纯数字11        auto pos = std::find_if(qq.begin(), qq.end(), [](const char& ch) {12            return ch < '0' || ch > '9';13        });14        if (pos == qq.end())15            std::cout << "valid.\n";16    }17} 虽然写出来了,但是有没有感到异常繁琐?这还仅仅是一个对应规则较少的处理,便如此麻烦,若是要检测IP地址、身份证号,或是解析一段HTML数据,或是其它更复杂的字串,那岂非更令人叫苦不迭? 当然,也有许多扩展库对字符串处理提供了方便,其中比较好用的是boost中的string_algo库(已于C++17纳入了标准库,并改名为string_view),但本篇主要说C++11的regex库,其对复杂数据的处理能力非常强,比如可以用它来检测QQ号: 1std::regex qq_reg("[1-9]\\d{4,11}");2bool ret = std::regex_match(qq, qq_reg);3std::cout << (ret ? "valid" : "invalid") << std::endl; 是不是超级方便呢?那么接下来便来看看如何使用「正则表达式」。 正则程序库(regex) 「正则表达式」就是一套表示规则的式子,专门用来处理各种复杂的操作。 std::regex是C++用来表示「正则表达式」(regular expression)的库,于C++11加入,它是class std::basic_regex<>针对char类型的一个特化,还有一个针对wchar_t类型的特化为std::wregex。 正则文法(regex syntaxes) std::regex默认使用是ECMAScript文法,这种文法比较好用,且威力强大,常用符号的意义如下: 符号 意义 ^ 匹配行的开头 $ 匹配行的结尾 . 匹配任意单个字符 […] 匹配[]中的任意一个字符 (…) 设定分组 \ 转义字符 \d 匹配数字[0-9] \D \d 取反 \w 匹配字母[a-z],数字,下划线 \W \w 取反 \s 匹配空格 \S \s 取反 + 前面的元素重复1次或多次 * 前面的元素重复任意次 ? 前面的元素重复0次或1次 {n} 前面的元素重复n次 {n,} 前面的元素重复至少n次 {n,m} 前面的元素重复至少n次,至多m次 | 逻辑或 上面列出的这些都是非常常用的符号,靠这些便足以解决绝大多数问题了。 匹配(Match) 字符串处理常用的一个操作是「匹配」,即字符串和规则恰好对应,而用于匹配的函数为std::regex_match(),它是个函数模板,我们直接来看例子: 1std::regex reg("<.*>.* "); 2bool ret = std::regex_match("value", reg); 3assert(ret); 4 5ret = std::regex_match(" value " , reg); 6assert(!ret); 7 8std::regex reg1("<(.*)>.* "); 9ret = std::regex_match(" value ", reg1);10assert(ret);1112ret = std::regex_match(" value ", std::regex("<(.*)>value "));13assert(ret);1415// 使用basic文法16std::regex reg2("<\\(.*\\)>.* ", std::regex_constants::basic);17ret = std::regex_match("value", reg2);18assert(ret); 这个小例子使用regex_match()来匹配xml格式(或是html格式)的字符串,匹配成功则会返回true,意思非常简单,若是不懂其中意思,可参照前面的文法部分。 对于语句中出现\\,是因为\需要转义,C++11以后支持原生字符,所以也可以这样使用: 1std::regex reg1(R"(<(.*)>.* )");2auto ret = std::regex_match(" value ", reg1);3assert(ret); 但C++03之前并不支持,所以使用时要需要留意。 若是想得到匹配的结果,可以使用regex_match()的另一个重载形式: 1std::cmatch m; 2auto ret = std::regex_match(" value ", m, std::regex("<(.*)>(.*) ")); 3if (ret) 4{ 5    std::cout << m.str() << std::endl; 6    std::cout << m.length() << std::endl; 7    std::cout << m.position() << std::endl; 8} 910std::cout << "----------------" << std::endl;1112// 遍历匹配内容13for (auto i = 0; i < m.size(); ++i)14{15    // 两种方式都可以16    std::cout << m[i].str() << " " << m.str(i) << std::endl;17}1819std::cout << "----------------" << std::endl;2021// 使用迭代器遍历22for (auto pos = m.begin(); pos != m.end(); ++pos)23{24    std::cout << *pos << std::endl;25} 输出结果为: 1 value 216 30 4---------------- 5…

摩登3注册网址_一个让我感到毛骨悚然的GitHub项目!

想必你永远不会想到,有一天你也会被自己的键盘出卖。 对,就是你每日敲击的键盘。当指尖在键盘上跳跃,清脆的噼啪声此起彼落时,你输入的所有信息,包括那些情真意切的词句,那些不欲人知的心事,还有你的网络账户、银行密码…… 全都被它泄露了。 键盘,还能被黑??? 前不久,一个叫做 Keytap 的 “黑科技” 在国外火了。Keytap 通过监听你敲击键盘的声音,就能还原出你输入的内容。 而且,只需要通过你电脑里的麦克风,就能完成声波采集的任务。 在一段发布于网上的 Demo 里,Keytap 作者展示了在 iMac+Filco 机械键盘环境中,这个算法的优秀程度,请看: 四步偷窥大法 搭建这样一个 “偷窥” 打字的模型并不难,Keytap 算法也已经开源了。跟着做,只要如下四步: 一是,收集训练数据; 二是,搭建预测模型,学习一下数据; 三是,检测出有人在敲键盘; 四是,检测出 ta 在打什么字。 收集训练数据 Keytap 收集数据时,只保留每次敲击前后 75-100 毫秒的音频。 这就是说,并非连续取样, 两次敲击之间有一部分是忽略的。 这种做法是会牺牲一些信息量的。 从敲下按键,到程序受到指令,这之间有随机延时,与硬件和软件都有关系。 比如,按下 g 键的完整波形长这样: 看图像可以发现,敲击时出现了一个峰值,而再过大约 150 毫秒,又有一个按键被抬起的小峰值。 这样说来,100 毫秒之外的信息也可能有用,不过这里为了简便就忽略了。 最终,收集到的数据长这样: 除此之外,局限性还在于,如果两次按键之间相隔不久,后者落在前者的后 75 毫秒之内,那数据可能就有些混杂了。 搭个预测模型 这个部分是最能发挥创造力的部分。Keytap 用了一个非常简单的方法,分为三步: 1. 把收集到的波形的峰值对齐。这样可以避免延时带来的影响。 2. 基于相似度指标 (Similarity Metric) ,更精细地对齐波形。 需要更精确的对齐方法,是因为有时候峰值未必是最好的判断依据。 那么,可不可以跳过峰值对齐呢? 之所以第 2 步之前要先做第 1 步,是因为相似度指标的计算很占 CPU。而第 1 步可以有效缩小对齐窗口 (Alignment Window) ,减少计算量。 3. 对齐后,做简单加权平均。权重也是用相似度指标来定义的。 完成第 3 步之后,每一个按键都会得出一个平均波形 (a Single Averaged Waveform) ,用来和实时捕捉的数据做 比对。 Keytap 用的 相似度指标是互相关 (Cross Correlation, CC) ,长这样: 这里,Ai 和 Bi 都是某个按键的波形样本,比对就在它们之间进行。CC 值越高,表示两者越相似。 当然,也可以用其他相似度指标来做。 顺便一说,两次按键之间的 间隔时长,其实也可以用来预测的,但开发者怕麻烦就省略了,勇敢的少年可以去源代码基础上自行实验。 检测出在敲键盘 平均波形和比对标准都有了,可是麦克风实时收录的声音连绵不绝,该和哪一段来比对呢? 这就需要从连续的音频里,找到敲击键盘的声音。 Keytap 用了一个非常简单的阈值方法,在原始音频里监测敲击动作: 按下去的时候,会有一个大大的峰值,这就是侦测目标。 不过,这个阈值不是固定的,是自适应 (Adaptive) 的:根据过去数百毫秒之内的平均样本强度来调整的。 检测打了什么字 当系统发现有人在敲键盘,就用相似度指标来测到底按了哪个键,CC 值最高的就是答案。方法就像上文说的那样。 现在,代码实现已经 开源了,传送门见文底。 不过,作者在博客中说,这个方法目前只有 机械键盘适用。 “薯片间谍” 听音识字的研究不止这一个,去年一篇 Don’t Skype & Type!Acoustic…

摩登3测速登录地址_嵌入式开发中常用的几种通信接口总结

在嵌入式系统中,板上通信接口是指用于将各种集成电路与其他外围设备交互连接的通信通路或总线。以下内容为常用板上通信接口:包括I2C、SPI、UART、1-Wire: I2C总线 I2C总线是一种同步、双向、半双工的两线式串行接口总线。这里,半双工的含义是指在任意给定的时刻,只有一个方向上是可以通信的。 I2C总线最早由Philips半导体公司于20世纪80年代研发面市。I2C最初的设计目标是为微处理器/微控制器系统与电视机外围芯片之间的连接提供简单的方法。 I2C总线由两条总线组成:串行时钟线SCL和串行数据线SDA。 SCL线——负责产生同步时钟脉冲。 SDA线——负责在设备间传输串行数据。 I2C总线是共享的总线系统,因此可以将多个I2C设备连接到该系统上。连接到I2C总线上的设备既可以用作主设备,也可以用作从设备。 主设备负责控制通信,通过对数据传输进行初始化/终止化,来发送数据并产生所需的同步时钟脉冲。 从设备则是等待来自主设备的命令,并响应命令接收。主设备和从设备都可以作为发送设备或接收设备。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生。 在相同的总线上,I2C支持多个主设备的同时存在。图1-1显示了I2C总线上主设备和从设备的连接关系。 当总线空闲时,SDA 和SCL 都处于高电平状态,当主机要和某个从机通讯时,会先发送一个开始条件,然后发送从机地址和读写控制位,接下来传输数据(主机发送或者接收数据),数据传输结束时主机会发送停止条件。传输的每个字节为8 位,高位在前,低位在后。 开始条件:SCL 为高电平时,主机将SDA 拉低,表示数据传输即将开始。 从机地址:主机发送的第一个字节为从机地址,高7 位为地址,最低位为R/W 读写控制位,1 表示读操作,0 表示写操作。 一般从机地址有7 位地址模式和10 位地址模式两种,如果是10 位地址模式,第一个字节的头7 位是11110XX 的组合,其中最后两位(XX)是10 位地址的两个最高位,第二个字节为10 位从机地址的剩下8 位,如下图所示: 应答信号:每传输完成一个字节的数据,接收方就需要回复一个ACK(acknowledge)。写数据时由从机发送ACK,读数据时由主机发送ACK。当主机读到最后一个字节数据时,可发送NACK(Notacknowledge)然后跟停止条件。 数据:从机地址发送完后可能会发送一些指令,依从机而定,然后开始传输数据,由主机或者从机发送,每个数据为8 位,数据的字节数没有限制。 重复开始条件:在一次通信过程中,主机可能需要和不同的从机传输数据或者需要切换读写操作时,主机可以再发送一个开始条件。 停止条件:在SDA 为低电平时,主机将SCL 拉高并保持高电平,然后在将SDA 拉高,表示传输结束。 SPI总线 SPI总线是同步、双向、全双工的4线式串行接口总线,最早由Motorola公司提出。SPI是由“单个主设备+多个从设备”构成的系统。需要说明的是:在系统中,只要任意时刻只有一个主设备是处于激活状态的,就可以存在多个SPI主设备。常运用于EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器和数字信号解码器之间实现通信。 为了实现通信,SPI共有4条信号线,分别是: (1)主设备出、从设备入(Master Out Slave In,MOSI):由主设备向从设备传输数据的信号线,也称为从设备输入(Slave Input/Slave Data In,SI/SDI)。 (2)主设备入、从设备出(Master In Slave Out,MISO):由从设备向主设备传输数据的信号线,也称为从设备输出(Slave Output/Slave Data Out,SO/SDO)。 (3)串行时钟(Serial Clock,SCLK):传输时钟信号的信号线。 (4)从设备选择(Slave Select,SS):用于选择从设备的信号线,低电平有效。 SPI使用方法: 上图所示芯片有2 个SPI 控制器,SPI 控制器对应SPI 主设备,每个SPI 控制器可以连接多个SPI从设备。挂载在同一个SPI 控制器上的从设备共享3 个信号引脚:SCK、MISO、MOSI,但每个从设备的CS 引脚是独立的. 主设备通过控制CS 引脚对从设备进行片选,一般为低电平有效。任何时刻,一个SPI 主设备上只有一个CS 引脚处于有效状态,与该有效CS 引脚连接的从设备此时可以与主设备通信。 所以,SPI通信方式可以使用“一主多从”的结构进行通信。每个连接到总线上的器件都有唯一的地址,主设备启动数据传输并产生时钟信号,从设备被主设备寻址,同一时刻只允许有一个主设备。 从设备的时钟由主设备通过SCLK 提供,MOSI、MISO 则基于此脉冲完成数据传输。SPI 的工作时序模式由CPOL(Clock Polarity,时钟极性)和CPHA(Clock Phase,时钟相位)之间的相位关系决定,CPOL 表示时钟信号的初始电平的状态,CPOL 为0 表示时钟信号初始状态为低电平,为1 表示时钟信号的初始电平是高电平。CPHA 表示在哪个时钟沿采样数据,CPHA 为0 表示在首个时钟变化沿采样数据,而CPHA 为1 则表示在第二个时钟变化沿采样数据。 根据CPOL 和CPHA 的不同组合共有4 种工作时序模式:CPOL=0,CPHA=0、CPOL=0,CPHA=1、CPOL=1,CPHA=0、CPOL=1,CPHA=1 UART UART——通用异步收发传输器,UART 作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。在应用程序开发过程中使用频率较高的数据总线。 基于UART的数据传输是异步形式的串行数据传输。基于UART的串行数据传输不需要使用时钟信号来同步传输的发送端和接收端,而是依赖于发送设备和接收设备之间预定义的配置。 对于发送设备和接收设备来说,两者的串行通信配置(波特率、单位字的位数、奇偶校验、起始位数与结束位、流量控制)应该设置为完全相同。通过在数据流中插入特定的比特序列,可以指示通信的开始与结束。当发送一个字节数据的时候,需要在比特流的开头加上起始位,并在比特流的末尾加上结束位。数据字节的最低位紧接在起始位之后。 UART 串口的特点是将数据一位一位地顺序传送,只要2 根传输线就可以实现双向通信,一根线发送数据的同时用另一根线接收数据。 UART 串口通信有几个重要的参数,分别是波特率、起始位、数据位、停止位和奇偶检验位,对于两个使用UART 串口通信的端口,这些参数必须匹配,否则通 起始位:表示数据传输的开始,电平逻辑为“0” 。 数据位:可能值有5、6、7、8、9,表示传输这几个bit 位数据。一般取值为8,因为一个ASCII 字符值为8 位。 奇偶校验位:用于接收方对接收到的数据进行校验,校验“1” 的位数为偶数(偶校验) 或奇数(奇校验),以此来校验数据传送的正确性,使用时不需要此位也可以。 停止位:表示一帧数据的结束。电平逻辑为“1”。 波特率:串口通信时的速率,它用单位时间内传输的二进制代码的有效位(bit) 数来表示,其单位为每秒比特数bit/s(bps)。常见的波特率值有4800、9600、14400、38400、115200 等,数值越大数据传输的越快,波特率为115200…