标签目录:摩登3代理1980

摩登3注册平台官网_ADI公司推出支持5G O-RAN生态系统的完整无线电平台

中国,北京–2021年3月26日–Analog Devices, Inc. 今日推出一款基于ASIC的无线电平台,该平台针对符合O-RAN规范的5G无线电单元而设计,旨在缩短上市时间,并满足5G网络不断发展的需求。O-RAN生态系统使用开放标准来分解传统网络,支持跨运营商网络的更大灵活性和更多功能。 ADI的无线电平台包含O-RAN兼容5G无线电单元所需的所有核心功能,包括基带ASIC、软件定义收发器、信号处理和电源。这款先进的无线电平台旨在显著提升性能和改进外形尺寸,以应对下一代网络将面临的功耗和成本方面的严峻挑战,同时缩短客户的设计周期。 ADI公司无线通信事业部副总裁Joe Barry表示:“O-RAN采用开放标准重新构思网络结构,希望以此打破传统市场,而这需要全面创新的射频解决方案。ADI的创新O-RAN解决方案为5G应用提供了性能优化的无线电平台,标志着生态系统向前迈出了一大步。” O-RAN将逐步消除进入壁垒,为当前和新兴的无线供应商提供新的契机。ADI直接与生态系统参与者交互合作,以优化总体系统效率,确保互操作性,进一步提升行业技术水平。 “向市场推出low-PHY基带ASIC让我们向O-RAN迈进了一大步。现在,原始设备制造商在打造有竞争力的宏蜂窝和小蜂窝的系统上有了清晰的路径”,沃达丰集团(Vodafone Group)的O-RAN RF和数字平台开发经理Andy Dunkin表示,“正是这样的举措有助于构建健康的生态系统 ”。 ADI公司的平台有助于无线电设计人员和制造商针对宏蜂窝和小蜂窝解决方案优化总体系统性能。设计人员借助参考设计,采用以下各项产品方案即可创建符合O-RAN规范的无线电单元: · ADI的下一代收发器具有先进的数字前端信号处理(DFE),支持GaN PA的数字预失真、波峰因子降低(CFR),以及通道数字上变频器和通道数字下变频器等功能组件。 · Low-PHY基带ASIC,可针对LTE、5G和NB-IoT提供符合7.2x要求的解决方案,包含IEEE1588高精度时间同步协议和eCPRI接口。 · 完整的时钟和电源链解决方案。 Parallel Wireless公司首席执行官Steve Papa表示:“为消除O-RAN生态系统的进入壁垒,ADI公司一直努力为众多无线供应商提供全新级别的支持,我们为此深受鼓舞。这款解决方案将会加速Option 7.2功能划分的标准化,简化互操作性集成。”

摩登3娱乐登录地址_LeddarTech宣布参与2021年4月围绕ADAS和AD的多项重大数字活动

魁北克市, March 23, 2021 (GLOBE NEWSWIRE) — 1-5级ADAS和AD传感技术的全球领导者LeddarTech®将作为参展商、演讲者和赞助商参加4月的多项全球数字活动。该公司将展示其全面的端到端技术平台,使客户能够解决汽车和出行市场整个价值链上的关键感应和感知挑战。这些特色解决方案包括LeddarVision™传感器融合和感知平台以及基于专利LeddarEngine™技术的经济高效并且可扩展的LiDAR开发平台。 “LeddarTech在不断寻找将我们的客户、合作伙伴和其他行业组织聚集在一起的机会,分享我们独特的平台业务模式以及针对当今ADA和AD机会的新开发和解决方案网络,”全球营销,传播和产品管理副总裁Daniel Aitken表示, “我们对于这些重大数字论坛的积极参与反映了这一理念,我们期待有机会结识同样致力于推动自动驾驶和提供更高安全性的客户和组织。”Aitken总结道。 ADAS Sensors 2021网上活动 – 4月6日至8日(美国底特律) 高级驾驶辅助系统(ADAS)需要许多传感模式和先进的传感器数据融合和感知功能,用以通过探测来准确地进行持续评估,从而安全地响应可能出现的驾驶情况。到2025年,ADAS市场预计将达到840亿美元。推动这一增长的因素是什么?什么样的技术需求将决定随后的发展? 请与LeddarTech一起参加2021年ADAS Sensors在线活动来一探究竟。 专题演讲: “ADAS应用的传感模式、感知和融合技术趋势”,演讲者:LeddarTech首席技术官Pierre Olivier,美国东部时间4月6日上午11:50-中午12:20 。 虚拟展位:LeddarTech将展示其定义市场的ADAS和AD应用传感和感知解决方案,其中包括LeddarVision平台和各种传感组件及软件。还将显示STMicroelectronics适用于LiDAR的MEMS镜像扫描解决方案。整个活动期间将有我们的技术代表提供在线咨询。 Hannover Messe Digital Edition(数字版汉诺威工业博览会) – 4月12日至16日(德国汉诺威) 今年,著名的Hannover Messe展览会暨大型大会将以数字化方式进行。LeddarTech将与魁北克投资局联合在魁北克展馆共同参展,魁北克投资局代表团旨在通过鼓励企业创新、创业和企业收购以及投资和出口的增长,在魁北克的经济发展中发挥积极作用。LeddarTech在本次活动期间将现身Kiosque Entreprise(企业展区)。 AutoTech Council – Innovation Review on Connected Cars(汽车技术理事会互联汽车创新回顾展) – 4月15日(北美) Autotech Council的这次活动将关注于实现当今和未来互联汽车的新技术和创新,并向与会人员介绍使这一未来成为现实的企业家。请与原始设备制造商、供应商、初创企业和风投一道,讨论5G、嵌入式与外挂式互联、个人数据和隐私、大数据分析、增值服务等热门话题。LeddarTech首席技术官Pierre Olivier将参加太平洋时间4月15日上午8:55到9:25的小组讨论。。 第6届 Automotive Sensors and Electronics Summit(汽车传感器和电子产品峰会) – 4月28日(德国慕尼黑) Automotive Sensors and Electronics Summit是一年一度的盛会,一直在吸引不同行业领域的关键决策者参加。这项活动在汽车传感器和电子产品界声誉卓著,重点展示新兴技术并支持宝贵的人脉拓展机会。 案例研究报告: “用于关键ADAS和AD应用的传感器融合和感知解决方案”,演讲者:战略合作和企业开发副总裁Michael Poulin,欧洲中部时间2021年4月28日下午4:30 。 专题电子书:LeddarVision Sensor Fusion and Perception Technology(LeddarVision传感器融合和感知技术)

摩登3官网注册_“节约成本”体现了电子工程师的最高技术水平!

一分钱,在现在物价飞涨的年代,早已经退出了货币交流的的历史舞台,成为财务意义上的最小计量单位。当年“我在马路边,捡到一分钱”的童谣,不会再发生了,一分钱,已经买不了任何东西。 一分钱,已经真的不值钱了吗?让我们来看看电子物料的价格:一个0603的普通贴片电阻0.29分钱,一个0603的104电容1分钱,一个贴片 8550三极管5分钱,一个贴片4148二极管4.6分钱……这些元器件,都是以分来衡量,要是以元为单位衡量的话,你会看到前面有很多“0”,这样年来,结论是我们很多物料不值几个钱。 但是大家有没有想过另外一个事实:一个贴片电阻用上后后面的加工费是1.5分钱,一个三极管的加工费是2.2分钱,上面的物料就会变成一个贴片电阻的综全成本是1.79分钱,比电阻本身成本高6倍;一个贴片电容的综合成本是2.5分钱,比自身成本高 2.5倍;一个贴片三极管的综合成本是7.2分钱,比自身高1.44倍;一个贴片二极管的综合成本是6.1分钱,比自身成本高1.32倍…… 这样看来,是 否感觉我们的物料在使用的时候,好像并不省钱?我在这里先下一个结论:别拿一分钱不当回事 让我慢慢地给大家说说一个电阻,一个电容怎么成了一回事。“就几分钱的东西,多大的事啊”的这个观点继续保留,请看下面。 我们一款成熟热销的机器,一年好歹也有10万的销量,有的还不止这个数目,我们做几个假设,还是上面的物料。每台机器节省一个贴片电阻,我们可以节省 1790元;少贴一个贴片电容,节省2500元;删除一个贴片三极管,挽回7200元;不用一个贴片二极管,节约6100元,这些钱的数字,大家就有感觉 了,大家看看,节省了那一样的物料,几个月下来,就相当你们自已的工资了 所以啊,千万别拿一分钱不当回事,一个年产10万的机器,很容易浪费了很多个1千元。我们怎么做法才能把一分钱当回事呢? 下面我有几个建议: 1.源头的设计。如果你用好料,性能高,你就是高水平的电源工程师了吗?在我看来,这是垃圾电源工程师。真正的高水平,是使用最精简的方案,最廉价的物料,能够能达到相同的 性能,或者得到满足客户需求的性能,这里选料是关键。电源工程师一般都是比较保守的,保守是件好事,但是很多保守,是建立在自已技术水平不够高的基础上。比如说滤波电容,是不是越多越好?理论上来讲是,而实际上呢?你少用一个104贴片电容,系统就崩溃了吗?470uF变成100uF,性能要求能接受了 吗?这些事情,很多电源工程师未曾想过即使想过,也很少真正去抠过,再即使抠过,也因为求稳最后在BOM中还是使用大家所谓的经验参数。 2.BOM设计。为了适应很多客户需求,BOM中都是做了很多选取的。问题就出现在这里,两种互斥功能的BOM组件,用A功能的时候,B功能的所有物料是不是全部删除 干净呢?出BOM的时候,是否赚麻烦少删除几个物料呢?随便少删除几个物料,好多个1千元就得掏,而这个把关只有你设计师清楚的知道 3.PCB设计。能用两层板,不要用四层板;能用纸板,不要用玻纤板;能用工装制具加工,都不要用PCB板挡边,PCB是很昂贵的物料,我们经常因为设计时候考虑这个兼容那个兼容,把PCB板面积扩大;然后还考虑进度约束,把单面板设计成双 面板;工厂加工为了省做制具的钱,要求PCB加7MM的挡锡条……要知道这些改动图什么?两个字:方便。但这是拿钱来买方便,拿多少钱呢?一块键控板如 60X30MM,单面板使用双面板后,拿3.5元钱来买方便,一条四层板的挡锡边更贵,一个月下来,几万元都来买了个方便,一个月几万元,我们可以请优秀 的电源工程师,专门设计单面板,也可以购买大批工装制具 千万不要拿一分钱不当回事,节约成本,不是要求大家做多大的贡献,一下子能节约 上百万元,一分钱一分钱地去思考,一分钱就真的成了那么回事,节约,就是另外一种创造利润的捷径,大家想想,要创造一个产品出来,增加收入,多困难的一件 事情啊;对比要节约几个物料,同样的增加收入,容易多了。 “节约成本”体现了电子工程师的最高技术水平。要做到:天天想,夜夜想,节约成本细思量;去冗佘,去兼容,产品质不能变。 END 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3平台首页_让低功耗全天运行系统具备更强性能

Shanghai, China, 16 March 2021 * * * 嵌入式和边缘计算技术的领先供应商德国康佳特推出基于AMD Ryzen™ Embedded V2000处理器的全新COM Express Compact 计算机模块conga-TCV2。 与较早发布的AMD Ryzen™嵌入式V1000相比,该模块的性能提高了一倍,树立了新的每瓦性能标杆,在15W TDP的设计中表现最为亮眼。这种超凡的低功耗平台表现已被跨平台实机测试软件Cinebench R15 nt所验证。相比采用AMD Ryzen Embedded V1605B处理器的旧款模块,conga-TCV2具有多达8个核心,性能提升幅度达到了97%(V2516)和140%(V2718)。由于采用了新的7纳米制程Zen 2核心,单核性能也提升24%到35%,这使得该款模块在各工业边缘计算领域中,成为全天连网无风扇嵌入式系统的性能升级佳选。典型用途包括多功能工业边缘门户、数字标牌系统、游戏终端机和信息娱乐平台。凭借40%的GPU性能提升、15W功率下高达4x 4K60帧的显示能力,以及全面的GPGPU支持,手术室多头医疗成像系统、机器视觉、机器学习系统等也将是该模块未来的目标市场。 康佳特产品管理总监Martin Danzer表示:“新的AMD Ryzen Embedded V2000处理器可在具有54W TDP的主动冷却系统中使用,但我们也看到,有更多客户用它来让自己的无风扇和被动冷却系统实现15W乃至更低功耗的运行。在如此严格的限制下运行的目的,是让加固密封式系统能在严苛环境中实现可靠的全天候运行。在这类情况下,每瓦性能的提升就成了迫切需求,而Zen 2 x86 CPU和AMD Radeon™图形核心正好在这方面表现斐然。” 除了常规固定设备,太阳能固定设备、移动和自动化系统也很看重采用AMD Ryzen Embedded V2000处理器的新款计算机模块在低功耗领域的价值——它可以配置到最低10W cTDP的设计中。这点非常重要,因为TDP越低,单次充电工作的时间就越长。相比其它10W TDP平台配备4核心,核心数仅为它的一半,性能也明显不及。而其它的15W TDP平台也都只有4核心,且无法降低功耗,这限制了平台在平衡配置时的灵活性。单处理器架构的AMD Ryzen V2000 Embedded处理器与之不同,可支持从10W到54W的性能区间。 新款conga-TCV2 COM Express Compact模块采用Type 6引脚布局,基于最新的AMD Ryzen Embedded V2000多核处理器,共分为4种型号: 相比前代产品,这些模块的每瓦算力和核心数都翻了一倍。得益于对称多处理功能,它们还具有最多16线程的并行处理能力。这些模块具有4MB L2缓存、8MB L3缓存,以及最大32GB的低功耗高速双通道64位DDR4内存(传输速率可达3200 MT/s),另外还配有ECC支持,以实现最高的数据安全性。集成的AMD Radeon显卡具有最多7个计算单元,一如既往地支持高性能图形计算类应用。 conga-TCV2计算机模块支持最多4个4K60帧超高分辨率的独立显示器,通过3x DisplayPort 1.4/HDMI 2.1端口和1x LVDS/eDP端口进行连接。此外的高性能接口还包括1x PEG 3.0 x8、8x PCIe Gen 3、2x USB 3.1 Gen 2、最多8x USB 2.0、最多2x SATA Gen 3、1x Gbit Ethernet、8x GPOIs I/Os、SPI、LPC,以及载板控制器提供的2个传统UART接口。 它支持的虚拟化技术和操作系统包括RTS Hypervisor和Microsoft Windows 10、Linux/Yocto、Android Q、Wind River VxWorks。对于注重安全性的关键应用,集成的AMD Secure Processor可协助进行硬件加速加密,以及RSA、SHA、AES解密。另外还有TPM支持。

摩登3注册平台官网_2020中国数字化年会召开,软通动力荣膺“年度数字制造创新解决方案”

近日,2020中国数字化年会在成都顺利召开。作为目前国内数字经济及数字化创新领域的全国盛会,本届大会以“点亮数字未来”为主题,汇聚数字科技领域产、学、研、用领先机构,邀请千余位新经济时代各个行业的“数字化变革先锋力量”,共同探讨产业数字化与数字产业化的创新发展之路。 软通动力受邀出席并发表主题演讲,与行业嘉宾共同探讨汽车制造领域的数字化转型方法论,同时获得“年度数字制造创新解决方案”奖,这是对软通动力在汽车制造业领先服务水平的认可。 数字化工厂 打通制造业转型新路径 后疫情时代,新一轮科技革命和产业变革席卷全球,“数字中国”建设如火如荼,企业数字化转型浪潮愈演愈烈,尤其在传统制造领域,推动其向“智能制造”纵深升级更是迫在眉睫。在“十四五”规划中,大力发展战略性新兴产业,推动新型基础设施建设是推进产业基础高级化,提高经济质量效益和核心竞争力的关键。传统制造行业需要打造基于工业互联网的数字化转型新路径,作为“新基建”的重要组成部分,工业互联网既是关键的网络基础设施,也是制造业向数字化、智能化、网络化转型升级的重要手段。

摩登3注册开户_X-86m2和F-86:Swissbit推出全新的3D-NAND SATA III产品

布龙施霍芬,瑞士2021年03月04日——耐久、可靠且价格诱人:Swissbit为其工业级存储器产品线添加了两个SATA III接口的新产品系列。超小型M.2 2242尺寸的X-86m2系列和CFast™存储卡F-86具有强劲的性能,特别适用于作为稳健的引导和应用程序驱动器,并且加入了Swissbit的独家功能。其亮点是运行在pSLC模式下的高质量3D-NAND、无需额外DRAM的专为满足工业应用要求而开发的SATA NAND闪存控制器,以及经过优化的专用固件。这使得这两个产品系列非常适合作为嵌入式系统和工业应用以及网络设备的存储解决方案,在这些设备中,耐用性、系统可靠性和断电安全至关重要。 无论是成熟的CFast™规格的可移动存储卡(F-86)还是M.2 SATA SSD模块(X-86m2),这两个全新的系列都具有较低的功耗和发热量。这样,就能在至关重要的应用环境中确保稳定、高性能以及一致的读写操作。这两个系列均使用了设置为pSLC模式的高质量3D TLC NAND闪存芯片。 这两个新产品系列能为多个应用领域的用户带来优势,如嵌入式系统、HMI设备、用于工业自动化和控制技术的PLC、POS/POI终端、工业PC、医疗设备以及路由器、交换机和网关等网络设备。 “在研发过程中,我们的重心是产品要能在工业环境中可靠地长期运行,” Swissbit AG存储器解决方案总经理Roger Griesemer解释道,“通过结合pSLC模式的3D-NAND、无DRAM产品架构、专为工业应用设计的集成了SRAM比特纠错功能的控制器,X-86m2和F-86产品系列是具有极高经济效益的解决方案,它们能够满足最高的要求。” X-86m2和F-86的容量范围是10 GB至160 GB(也可应要求提供8 GB)。其接口符合SATA III标准,具有6 Gb/s的接口速率,并向后兼容SATA II和SATA I。其顺序数据读取速率高达375 MB/s,写入速率高达236 MB/s。SATA II也能达到上述的顺序数据速率。两个产品系列均支持在-40°C至+85°C的工作温度下用于工业用途,后续还将提供0°C至+70°C温度范围的版本。 经过优化的固件支持主动和被动数据服务管理,即使在突然断电的情况下也能确保数据安全。此外,还能获得详细的使用寿命信息,可以确定并提前计划好服务间隔——由于具有更高的写入量,与同类解决方案相比,该功能可大大降低总体拥有成本。X-86m2和F-86的功能还包括后台媒体刷新、端到端数据路径保护、SRAM ECC和基于子页的闪存转换层(FTL)以及可选的安全功能,如AES-128/256加密。 在未来的几个月中,Swissbit计划扩展其X-80m2和F-80产品线,通过使用3D TLC模式提供更高的存储容量。

摩登3新闻554258:_e络盟公布年度社区奖获奖者

中国上海,2021年3月4日 – 安富利旗下全球电子元器件产品与解决方案分销商e络盟公布其2020年度社区奖获奖者名单。e络盟社区本年度为杰出创新者、设计师和工程师设立了多个奖项,较往年新增数个奖项,其中包括:Project14最具创意项目、最佳视频评选、最优设计挑战赛、社区杰出贡献者及影响力人物等。e络盟设立这些奖项旨在表彰e络盟社区成员取得的不凡成就。 e络盟社区和社交媒体全球主管Dianne Kibbey表示:“去年对每个人来说都是极具挑战的一年。然而令我们自豪的是,e络盟70多万名社区成员齐心协力,积极研发了各种解决方案来助力抗击新冠疫情并帮助民众更快适应远离社交的生活。我们期待他们在2021年继续实现更多突破性创新设计。” e络盟2020年度社区奖获奖者如下: Ÿ· 年度明星成员 – 来自英国的Richard Seals – Richard在2020年积极参与e络盟社区活动,并在项目设计中展现出了丰富的技能、高水平的创造力及出色的幽默感。同时,他还在社区平台分享了数十篇博客文章,以方便其他社区成员理解和学习。 ·Ÿ e络盟Presents年度最佳视频项目 – Raspberry Pi语音转文字LED口罩 – 来自英国的Lorraine Underwood研发了一款由Raspberry Pi供电的高科技口罩,可将佩戴者的说话内容转化为文字显示在口罩正面的亮光区,帮助打破交流障碍。 ·Ÿ 年度最佳设计挑战赛项目 – 用水培法测量气候变化 – 在“保护地球”设计挑战赛中,来自美国的Satoshi Suzuki利用英飞凌硬件产品构建了一个功能完备的水培农场,拥有基于网络的监测界面并可全面监测二氧化碳水平。该设计项目展示出了卓越的独创性和深厚的工程技能,为社区成员带来了更多灵感。 ·Ÿ Project14年度最佳项目 – Mr. Machine升级改造 – 来自美国的Gene Breniman将Mr. Machine经典款机器人玩具进行了改造,充分展现了“老旧产品改造”的重要意义。他进行的一系列升级改造包括:用电机取代原先的发条装置、扩大运动范围及增加LED灯等。 ·Ÿ Project14 2020年度最佳决策者 – Gene Breniman为2020年e络盟Project14系列挑战赛承担了评选工作,帮助选定最能体现每月主题的项目创意,展示出丰富的知识和经验。 Ÿ· Project14 2020年度创始人 – 来自智利的Miguel Pineiro在2020年为Project14 提出了多个竞赛主题创意,均在整个社区大受欢迎。 ·Ÿ Project14 2020年度影响力人物 – 来自美国的Frank Milburn在2020年提交了大量设计项目、博客文章和项目视频,为保持社区项目Project14的持续活跃发挥了重要作用。 ·Ÿ 年度最受青睐路测产品 – InfiniiVision 3000T X 系列示波器MSOX3034和Raspberry Pi 高品质相机模块不分伯仲,都极其热门。这两款截然不同的产品例证了全球电子元器件产品与解决方案分销商e络盟供应产品的多样性。这些产品均可方便e络盟社区成员测试使用。 ·Ÿ 年度路测达人– 来自比利时的Jan Cumps堪称2020年度路测英雄。他为一系列路测项目做出了全方位贡献,尤其是英飞凌区块链套件路测项目,这也是e络盟社区2020年度最佳路测项目之一。 ·Ÿ 年度最受欢迎网络研讨会 – TinyML概况介绍 – 主持人Edge Impulse向社区成员介绍了带有嵌入式机器学习的解决方案及TinyML,并进一步探讨了TinyML如何在超低功耗单片机上实现实际应用。 年度社区奖是e络盟表彰其工程师和创客社区成员成就的众多方式之一,也是对他们利用电子设计给社区和世界带来积极影响的肯定。

摩登3咨询:_中国芯片首富捐资200亿办大学!落地宁波镇海,拟名「东方理工」

200亿,宁波镇海,“东方理工大学”。 这所最新筹办的新型研究型大学,最新消息一出就备受关注,甚至被外界与“西湖大学”相提并论。 不仅因为其研究型的新大学,也因为“东方理工大学”同样源自企业家捐资兴办。 据澎湃新闻报道,背后出资捐建人——虞仁荣,韦尔股份掌舵者,镇海中学校友,还有“中国芯片首富”之称。 在宁波市镇海区公布的官方信息中,也进一步披露了这所筹备中的大学——没错,落户就在浙江宁波镇海。 这究竟是怎样一所大学? 200亿,建一所什么学校? 根据“宁波发布”披露的信息,“东方理工大学”(暂名),定位是理工类新型研究型大学。 什么是新型研究型大学? 目前可以参考的案例,就是成立于2018年的西湖大学。 作为一所社会力量举办、国家重点支持的非营利性新型研究型大学,西湖大学的办学定位是这样的: 高起点:以博士生培养为起点,适时开展本科生教育。 小而精:坚持发展“有限学科”。 研究型:主要开展基础性、前沿科学技术研究,着重培养拔尖创新人才。 也就是说,一方面,新型研究型大学的投资主体更加多元化。另一方面,新型研究型大学的人才培养起点更高,研究方向更为聚焦、灵活。 那么,除了目前报道的中国芯片首富、宁波镇海中学校友虞仁荣的200多亿捐资,东方理工大学的落地目前进展到哪一步? 宁波市镇海区人民政府发布的《区政府2020年12月份工作总结》提到: ……加快甬江实验室建设,加大招商引资力度,完善“两库两机制”,推进东方理工大学(暂名)建设及相关产业落地工作。 做好东方理工大学规划范围(庄市片)征拆数据排摸及安置地块初步选址,验收通过筹建办办公场地。 2020年12月9日发布的《关于2020年镇海区财政收支预计完成情况和财政预算调整方案(草案)的报告》也提到:推动大院大所落地,主要包括甬江实验室调增400万元、东方理工大学调增300万元、创业场租补贴调增300万元。 2020年10月26日宁波市民政局公示的许可事项,也佐证了虞仁荣资助民办大学建设发展一事。 综合官方披露的信息来看,目前“东方理工大学”项目选址已基本确定,并进入筹备阶段。 另外,这样的投入,与近年来浙江省近加大教育投入的举措不无关系。 软科曾分析指出,浙江省高等教育实力与其经济实力并不匹配,此前只有一所211、985高校。而现在亦仅有三所高校入选“双一流”: 浙江大学入选“一流大学建设高校”; 宁波大学入选“一流学科建设高校”; 中国美术学院入选“一流学科建设高校”。 2014年,在《关于实施省重点高校建设计划的意见》中,浙江省就定下目标: 到2020年,全省高等教育竞争力和综合实力列全国省(区、市)前6位;省、市属高校有20个以上的一级学科进入全国前10%。 而2020年浙江省19所省属高校公布的预算,总投入达到272亿元。其中,浙江工业大学预算经费32.5亿元,远超一般地方高校平均水平,而预算经费出超过10亿的高校也有14所之多。 谁是虞仁荣? 那么出资200亿,在家乡建立高校的“中国芯片首富”虞仁荣,又是什么来头? 虞仁荣初高中就读于如今有“超级高中”之称的镇海中学。 镇海中学创建于清宣统三年,是一所百年名校,近年来,尤以出色的学科竞赛成绩被外界所熟知。 比如,在IOI 2020中,来自镇海中学的罗煜翔就摘下了一枚金牌。 1985年,虞仁荣考入清华大学无线电系。 据清华校友总会的报道,在同学眼里,虞仁荣非常聪明,对市场判断也十分敏锐: “大一通宵打麻将,第二天早上8点参加数学竞赛,拿了一等奖”、“将海淀的卷子卖到河北保定,赚点差价”…… 事实上,这一级(EE85)的清华学生里,涌现了不少半导体人才。 紫光集团创始人赵伟国、燧原科技创始人赵立东、卓胜微电子联合创始人冯晨晖…… 虞仁荣也不例外。 毕业后,虞仁荣在浪潮干了两年工程师,紧接着又在香港龙跃电子当了6年的北京销售经理,积攒经验。 1998年,虞仁荣创立北京华清兴昌科贸有限公司,做了段时间电子元器件分销,并于2006年成为北京最大的分销商。 2007年,虞仁荣在上海成立韦尔股份,主营半导体分立器件、电源管理IC等半导体产品的设计和销售。韦尔股份选择同时做内生增长和公司并购,效果不错。 2017年5月,韦尔股份在上交所挂牌上市。随后,韦尔股份计划并购图像传感器(CMOS)芯片巨头豪威科技。 2018年,韦尔股份以149.99亿元的价格,收购了北京豪威96.08%股权、思比科42.27%股权、视信源79.93%股权。 2019年5月,证监会通过了韦尔股份对豪威的并购,而后者的净资产,几乎是前者的8倍。 要知道,截至2020年6月,特斯拉Model S / X / 3 / Y上的后自动驾驶摄像机使用OV10635 720p CMOS传感器。 这成为虞仁荣的转折点。 随后,韦尔股份的股票一路大涨,从2019年5月的38.47元/股,涨到如今的300多元/股。 而虞仁荣的身家,也早已随着韦尔股份的股价一路上涨。 最高时,曾经涨到706亿元。 在2020年福布斯全球亿万富豪榜的“新上榜富豪”中,虞仁荣以60亿美元(折合约420亿人民币)的身价,跻身前三。 而在“2020胡润全球百富榜”中,虞仁荣以550亿身家位列第281位,成为中国芯片首富。 有意思的是,近年来,越来越多企业和企业家,正在把财富和资金捐赠投入到基础科研中,有的设立大奖,有的捐建学校和奖学金。 更多企业家捐资基础科研办学 2010年南方科技大学正式筹建后,聘任中国科学院院士朱清时担任校长。 创办仅一年,南方科技大学就有数十位教师入选院士、万人计划入选者、长江学者、青年千人国家优青、高被引学者等高层次人才计划。 而南方科技大学50%以上的教师,都是高层次人才。 作为一所迅速崛起的创新型大学,南方科技大学亦受到不少来自深圳企业的捐资支持。 比如,2020年,大疆向南方科技大学捐资165万元。 2019年,腾讯向南方科技大学捐资1000万元。 …… 今年11月,南方科技大学还聘请了原清华大学副校长、中国科学院院士薛其坤,担任新校长。 不止深圳。 2018年,马化腾等人,在杭州捐资创办了另一所西湖大学,施一公担任校长。 这所立志“效仿”加州理工学院的大学,今年6月3日,就转化落地了首个科技成果,并完成了近亿元的Pre-A轮融资。 还有人民大学的高瓴AI研究院,就来自校友张磊的捐资创办。 而这次宁波镇海区政府宣布成立的“东方理工大学”,路径与西湖大学等类似。 …… 除了直接捐资助学,类似未来科学大奖、腾讯科学探索奖、阿里巴巴青橙奖等等,都是具体社会责任感的企业及企业家,希望激励更多人投身基础科研而设立的大奖。 实际上,全球范围内,顶尖大学和高校中,来自社会的捐资和奖助也都是良性循环的,正是实现财富自由的大亨捐赠,才有了卡耐基梅隆大学、耶鲁、哈佛等知名高校。 相对而言,中国近百年来主要都在解决温饱和发展挑战,企业家捐赠助学的案例也集中在近10年。 不过也有例外。 1921年,有一位爱国华侨企业家,认定救国救民,唯有教育和大学。于是将个人在东南亚橡胶生意所得的400万大洋身家,全部认捐。 这位企业家叫陈嘉庚,他认捐创办的大学叫厦门大学。 刚好距今100年。 鱼羊 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册网站_你曾是少年,直到拿起“电烙铁”……

图1 手工焊接贴片元件所用到常用工具 1. 电烙铁 手工焊接元件,这个肯定是不可少了。在这里向大家推荐烙铁头比较尖的那种,因为在焊接管脚密集的贴片芯片的时候,能够准确方便的对某一个或某几个管脚进行焊接(PS:早期我以为是这样的,后来熟了之后发现刀头的更好使!)。 一把可调恒温电烙铁就是你的不二选择,最好可以带个数显(可调温且能稳定温度,有单手柄调温型和焊台两种)。 需要说明的是,上面的内热式和外热式通常是没有电源开关,插上电就加热,需要冷却就要断电才可以。 俗话说,好马得配好鞍。那么烙铁头就是这匹马(烙铁)的鞍了。 烙铁头的选用是要根据被焊接物体的接触面来定。 比如说,对于普通插件元件,我们多选用马蹄头(接触面大);贴片小元件可用尖头或弯尖头(密集类元件焊接);对常规芯片可采用刀头(方便拖焊)。 当然,更高级的DIY玩法就是根据自己的需要打磨出专属于自己的独特形状的烙铁头了。 新买的烙铁呢,我们还不能拿来就用,要先对新烙铁进行第一次上锡处理。 2. 焊锡丝 好的焊锡丝对贴片焊接也很重要,如果条件允许,在焊接贴片元件的时候,尽可能的使用细的焊锡丝,这样容易控制给锡量,从而不用浪费焊锡和吸锡的麻烦。 中文名称:焊锡丝、焊锡线、锡线、锡丝,英文名称:solderwire,焊锡丝是由锡合金和助剂两部分组成,合金成份分为锡铅、无铅助剂均匀灌注到锡合金中间部位。 焊锡丝种类不同助剂也就不同,助剂部分是提高焊锡丝在焊接过程中的辅热传导,去除氧化,降低被焊接材质表面张力,去除被焊接材质表面油污,增大焊接面积。焊锡丝的特质是具有一定的长度与直径的锡合金丝,在电子原器件的焊接中可与电烙铁或激光配合使用。    焊锡丝有铅和无铅的区别: 1、焊锡丝含铅和不含铅的区别只是含量的区别。 2、含铅的焊锡丝需人为的加入铅,目前已知的焊锡最佳配比为锡铅焊锡丝(国标:锡含量63%,铅含量37%)。 3、无铅焊锡丝也含极少的铅,目前没有完全纯净的金属产品。通常不含铅的焊锡丝称为无铅焊锡丝,无铅不是指完全不含铅,无铅是指铅含量比较低,可大致视为无铅,欧盟定义无铅的标准为:铅含量<1000PPm。考虑焊接及后工续有进一步污染的可能,为确保客户成品符合欧盟标准,一般焊锡丝铅含量会远低于这个标准。 4、含铅和不含铅的焊锡丝都会腐蚀烙铁头,因为无铅焊接温度比有铅的焊锡丝要高,加之合金成份不一样,无铅的焊锡丝更易腐蚀烙铁,出于无铅要求和腐蚀性,焊接无铅锡丝时建议使用无铅专用电烙铁。 3. 镊子 镊子的主要作用在于方便夹起和放置贴片元件,例如焊接贴片电阻的时候,就可用镊子夹住电阻放到电路板上进行焊接。镊子要求前端尖且平,以便于夹元件。另外,对于一些需要防止静电的芯片,需要用到防静电镊子。 防静电镊子又叫半导体镊子,导静电镊子,能防静电,采用碳纤与特殊塑料混合而成,具有弹性良好。 使用轻便而且经久耐用,不掉灰,耐酸碱,耐高温,可避免传统防静电镊子因含碳黑而污染产品,适用于半导体,IC等精密电子元件生产使用,及其特殊使用。 防静电镊子是由特殊导电塑胶材料制成的,具有弹性良好,使用轻便和泄放静电的特性,适用于对静电敏感的元器件加工和安装。 表面电阻:1000KΩ—100000MΩ。防静电镊子适合精密电子元件生产,半导体及电脑磁头等行业。 如果你采用碳纤与特殊塑料混合而成的防静电镊子,不掉灰,耐酸碱,耐高温,可避免传统防静电镊子因含碳黑而污染产品。 4. 吸锡带 焊接贴片元件时,很容易出现上锡过多的情况。 特别在焊密集多管脚贴片芯片时,很容易导致芯片相邻的两脚甚至多脚被焊锡短路。此时,传统的吸锡器是不管用的,这时候就需要编织的吸锡带。 5. 松香 松香是焊接时最常用的助焊剂了,因为它能析出焊锡中的氧化物,保护焊锡不被氧化,增加焊锡的流动性。 在焊接直插元件时,如果元件生锈要先刮亮,放到松香上用烙铁烫一下,再上锡。而在焊接贴片元件时,松香除了助焊作用外还可以配合铜丝可以作为吸锡带用。 6. 焊锡膏 在焊接难上锡的铁件等物品时,可以用到焊锡膏,它可以除去金属表面的氧化物,其具有腐蚀性。 在焊接贴片元件时,有时可以利用其来“吃”焊锡,让焊点亮泽与牢固。 7. 热风枪 热风枪是利用其枪芯吹出的热风来对元件进行焊接与拆卸的工具。其使用的工艺要求相对较高。 从取下或安装小元件到大片的集成电路都可以用到热风枪。在不同的场合,对热风枪的温度和风量等有特殊要求,温度过低会造成元件虚焊,温度过高会损坏元件及线路板。风量过大会吹跑小元件。对于普通的贴片焊接,可以不用到热风枪,在此不做详细叙述。 8. 放大镜 对于一些管脚特别细小密集的贴片芯片,焊接完毕之后需要检查管脚是否焊接正常、有无短路现象,此时用人眼是很费力的,因此可以用到放大镜,从而方便可靠的查看每个管脚的焊接情况。 9. 酒精 在使用松香作为助焊剂时,很容易在电路板上留下多余的松香。为了美观,这时可以用酒精棉球将电路板上有残留松香的地方擦干净 10.  其他贴片焊接所需的常用工具除了上述所说的之外,还有一些如海绵、洗板水、硬毛刷、胶水等。 贴片元件的手工焊接步骤(电烙铁) 在了解了贴片焊接工具以后,现在对焊接步骤进行详细说明。 1. 清洁和固定PCB( 印刷电路板) 在焊接前应对要焊的PCB 进行检查,确保其干净(见图2)。对其上面的表面油性的手印以及氧化物之类的要进行清除,从而不影响上锡。 手工焊接PCB 时,如果条件允许,可以用焊台之类的固定好从而方便焊接,一般情况下用手固定就好,值得注意的是避免手指接触PCB 上的焊盘影响上锡。 图2 一块干净的PCB 2. 固定贴片元件 贴片元件的固定是非常重要的。根据贴片元件的管脚多少,其固定方法大体上可以分为两种——单脚固定法和多脚固定法。 对于管脚数目少(一般为2-5 个)的贴片元件如电阻、电容、二极管、三极管等,一般采用单脚固定法。即先在板上对其的一个焊盘上锡(见图3)。 图3 对于管脚少的元件应先单脚上锡 然后左手拿镊子夹持元件放到安装位置并轻抵住电路板,右手拿烙铁靠近已镀锡焊盘熔化焊锡将该引脚焊好(见图4)。 焊好一个焊盘后元件已不会移动,此时镊子可以松开。而对于管脚多而且多面分布的贴片芯片,单脚是难以将芯片固定好的,这时就需要多脚固定,一般可以采用对脚固定的方法(见图5)。 即焊接固定一个管脚后又对该管脚所对面的管脚进行焊接固定,从而达到整个芯片被固定好的目的。需要注意的是,管脚多且密集的贴片芯片,精准的管脚对齐焊盘尤其重要,应仔细检查核对,因为焊接的好坏都是由这个前提决定的。 图4 对管脚少的元件进行固定焊接 图5 对管脚较多的元件进行对脚或多脚固定焊接 值得强调说明的是,芯片的管脚一定要判断正确。 举例来说,有时候我们小心翼翼的把芯片固定好甚至焊接完成了,检查的时候发现管脚对应错误——把不是第一脚的管脚当做第一脚来焊了!追悔莫及!因此这些细致的前期工作一定不能马虎。 3. 焊接剩下的管脚 元件固定好之后,应对剩下的管脚进行焊接。对于管脚少的元件,可左手拿焊锡,右手拿烙铁,依次点焊即可。 对于管脚多而且密集的芯片,除了点焊外,可以采取拖焊,即在一侧的管脚上足锡然后利用烙铁将焊锡熔化往该侧剩余的管脚上抹去(见图6),熔化的焊锡可以流动,因此有时也可以将板子合适的倾斜,从而将多余的焊锡弄掉。 值得注意的是,不论点焊还是拖焊,都很容易造成相邻的管脚被锡短路(见图7)。这点不用担心,因为可以弄到,需要关心的是所有的引脚都与焊盘很好的连接在一起,没有虚焊。 图6 对管脚较多的贴片芯片进行拖焊 图7 不用担心焊接时所造成的管脚短路 4. 清除多余焊锡 在步骤3 中提到焊接时所造成的管脚短路现象,现在来说下如何处理掉这多余的焊锡。 一般而言,可以拿前文所说的吸锡带将多余的焊锡吸掉。吸锡带的使用方法很简单,向吸锡带加入适量助焊剂(如松香)然后紧贴焊盘,用干净的烙铁头放在吸锡带上,待吸锡带被加热到要吸附焊盘上的焊锡融化后,慢慢的从焊盘的一端向另一端轻压拖拉,焊锡即被吸入带中。 应当注意的是吸锡结束后,应将烙铁头与吸上了锡的吸锡带同时撤离焊盘,此时如果吸锡带粘在焊盘上,千万不要用力拉吸锡带,而是再向吸锡带上加助焊剂或重新用烙铁头加热后再轻拉吸锡带使其顺利脱离焊盘并且要防止烫坏周围元器件。 如果没有市场上所卖的专用吸锡带,可以采用电线中的细铜丝来自制吸锡带(见图8)。 自制的方法如下:将电线的外皮剥去之后,露出其里面的细铜丝,此时用烙铁熔化一些松香在铜丝上就可以了。 清除多余的焊锡之后的效果见图9。此外,如果对焊接结果不满意,可以重复使用吸锡带清除焊锡,再次焊接元件。 图8 用自制的吸锡带吸去芯片管脚上多余的焊锡 图9 清除芯片管脚上多余的焊锡后效果图 5. 清洗焊接的地方 焊接和清除多余的焊锡之后,芯片基本上就算焊接好了。但是由于使用松香助焊和吸锡带吸锡的缘故,板上芯片管脚的周围残留了一些松香(见图9)。虽然并不影响芯片工作和正常使用,但不美观, 而且有可能造成检查时不方便。 因为有必要对这些残余物进行清理。常用的清理方法可以用洗板水,在这里,采用了酒精清洗,清洗工具可以用棉签,也可以用镊子夹着卫生纸之类进行(见图10)。 清洗擦除时应该注意的是酒精要适量,其浓度最好较高,以快速溶解松香之类的残留物。 其次,擦除的力道要控制好,不能太大,以免擦伤阻焊层以及伤到芯片管脚等。 清洗完毕的效果见图11。此时可以用烙铁或者热风枪对酒精擦洗位置进行适当加热以让残余酒精快速挥发。至此,芯片的焊接就算结束了。 图10 用酒精清除掉焊接时所残留的松香 图11 用酒精清洗焊接位置后的效果图 贴片元件的手工焊接步骤 一、准备工作 1、打开热风枪,把风量,温度调到适当位置:用手感觉风筒风量与温度;观察风筒有无风量用温度不稳定现象。…

摩登3娱乐怎么样?_C语言实现MD5加密,竟如此简单!

本文详细讲解视频已经上传到B站: https://www.bilibili.com/video/BV1uy4y1p7on/ 公众号后台回复【md5】即可获得本文所有源码。 一、摘要算法 摘要算法又称哈希算法。 它表示输入任意长度的数据,输出固定长度的数据,它的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。 目前可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。 消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密。 消息摘要算法分为三类: MD(Message Digest):消息摘要 SHA(Secure Hash Algorithm):安全散列 MAC(Message Authentication Code):消息认证码 这三类算法的主要作用:验证数据的完整性 二、MD5简介 MD5即Message-Digest Algorithm 5(信息-摘要算法)。 属于摘要算法,是一个不可逆过程,就是无论多大数据,经过算法运算后都是生成固定长度的数据,结果使用16进制进行显示的128bit的二进制串。通常表示为32个十六进制数连成的字符串。 MD5有什么用? 用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。更多用在文档校验上,用来生成密钥检测文档是否被篡改。 三、在线MD5加密 有很多在线进行MD5加密的网站,如下: http://www.metools.info/code/c26.html 举例: 给字符串 12334567 加密成。 如图结果为: 32135A337F8DC8E2BB9A9B80D86BDFD0 四、C语言实现MD5算法 源文件如下:md5.h #ifndef MD5_H#define MD5_H typedef struct{    unsigned int count[2];    unsigned int state[4];    unsigned char buffer[64];   }MD5_CTX;                          #define F(x,y,z) ((x & y) | (~x & z))#define G(x,y,z) ((x & z) | (y & ~z))#define H(x,y,z) (x^y^z)#define I(x,y,z) (y ^ (x | ~z))#define ROTATE_LEFT(x,n) ((x << n) | (x >> (32-n)))#define FF(a,b,c,d,x,s,ac) \          { \          a += F(b,c,d) + x + ac; \          a = ROTATE_LEFT(a,s); \          a += b; \          }#define GG(a,b,c,d,x,s,ac) \          { \          a += G(b,c,d) + x + ac; \          a = ROTATE_LEFT(a,s); \          a += b; \          }#define HH(a,b,c,d,x,s,ac) \          { \          a += H(b,c,d) + x + ac; \          a = ROTATE_LEFT(a,s); \          a += b; \          }#define II(a,b,c,d,x,s,ac) \          { \          a += I(b,c,d) + x + ac; \          a = ROTATE_LEFT(a,s); \          a += b; \          }                                            void MD5Init(MD5_CTX *context);void MD5Update(MD5_CTX *context,unsigned char *input,unsigned int inputlen);void MD5Final(MD5_CTX *context,unsigned char digest[16]);void MD5Transform(unsigned int state[4],unsigned char block[64]);void MD5Encode(unsigned char *output,unsigned int *input,unsigned int len);void MD5Decode(unsigned int *output,unsigned char *input,unsigned int len); #endif md5.c #include  #include "md5.h" unsigned char PADDING[]={0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,                         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,                         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,                         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};                         void MD5Init(MD5_CTX *context){     context->count[0] = 0;     context->count[1] = 0;     context->state[0] = 0x67452301;     context->state[1] = 0xEFCDAB89;     context->state[2] = 0x98BADCFE;     context->state[3] = 0x10325476;}void MD5Update(MD5_CTX *context,unsigned char *input,unsigned int inputlen){    unsigned int i = 0,index = 0,partlen = 0;    index = (context->count[0] >> 3) & 0x3F;    partlen = 64 - index;    context->count[0] += inputlen << 3;    if(context->count[0] < (inputlen << 3))       context->count[1]++;    context->count[1] += inputlen >> 29;        if(inputlen >= partlen)    {       memcpy(&context->buffer[index],input,partlen);       MD5Transform(context->state,context->buffer);       for(i = partlen;i+64 <= inputlen;i+=64)           MD5Transform(context->state,&input[i]);       index = 0;            }      else    {        i = 0;    }    memcpy(&context->buffer[index],&input[i],inputlen-i);}void MD5Final(MD5_CTX *context,unsigned char digest[16]){    unsigned int index = 0,padlen = 0;    unsigned char bits[8];    index = (context->count[0] >> 3) & 0x3F;    padlen = (index < 56)?(56-index):(120-index);    MD5Encode(bits,context->count,8);    MD5Update(context,PADDING,padlen);    MD5Update(context,bits,8);    MD5Encode(digest,context->state,16);}void MD5Encode(unsigned char *output,unsigned int *input,unsigned int len){    unsigned int i = 0,j = 0;    while(j < len)    {         output[j] = input[i] & 0xFF;           output[j+1] = (input[i] >> 8) & 0xFF;         output[j+2] = (input[i] >> 16) & 0xFF;         output[j+3] = (input[i] >> 24) & 0xFF;         i++;         j+=4;    }}void MD5Decode(unsigned int *output,unsigned char *input,unsigned int len){     unsigned int i = 0,j = 0;     while(j < len)     {           output[i] = (input[j]) |                       (input[j+1] << 8) |                       (input[j+2] << 16) |                       (input[j+3] << 24);           i++;           j+=4;      }}void MD5Transform(unsigned int state[4],unsigned char block[64]){     unsigned int a = state[0];     unsigned int b = state[1];     unsigned int c = state[2];     unsigned int d = state[3];     unsigned int x[64];     MD5Decode(x,block,64);     FF(a, b, c, d, x[ 0], 7, 0xd76aa478); /* 1 */ FF(d, a, b, c, x[ 1], 12, 0xe8c7b756); /* 2 */ FF(c, d, a, b, x[ 2], 17, 0x242070db); /* 3 */ FF(b, c, d, a, x[ 3], 22, 0xc1bdceee); /* 4 */ FF(a, b, c, d, x[ 4], 7, 0xf57c0faf); /* 5 */ FF(d, a, b, c, x[ 5], 12, 0x4787c62a); /* 6 */ FF(c, d, a, b, x[ 6], 17, 0xa8304613); /* 7 */ FF(b, c, d, a, x[ 7], 22, 0xfd469501); /* 8 */ FF(a, b, c, d, x[ 8], 7, 0x698098d8); /* 9 */ FF(d, a, b, c, x[ 9], 12, 0x8b44f7af); /* 10 */ FF(c, d, a, b, x[10], 17, 0xffff5bb1); /* 11 */ FF(b, c, d, a, x[11], 22, 0x895cd7be); /* 12 */ FF(a, b, c, d, x[12], 7, 0x6b901122); /* 13 */ FF(d, a, b, c, x[13], 12, 0xfd987193); /* 14 */ FF(c, d, a, b, x[14], 17, 0xa679438e); /* 15 */ FF(b, c, d, a, x[15], 22, 0x49b40821); /* 16 */  /* Round 2 */ GG(a, b, c, d, x[ 1], 5, 0xf61e2562); /* 17 */ GG(d, a, b, c, x[ 6], 9, 0xc040b340); /* 18 */ GG(c, d, a, b, x[11], 14, 0x265e5a51); /* 19 */ GG(b, c, d, a, x[ 0], 20, 0xe9b6c7aa); /* 20 */ GG(a, b, c, d, x[ 5], 5, 0xd62f105d); /* 21 */ GG(d, a, b, c, x[10], 9,  0x2441453); /* 22 */ GG(c, d, a, b, x[15], 14, 0xd8a1e681); /* 23 */ GG(b, c, d, a, x[ 4], 20, 0xe7d3fbc8); /* 24 */ GG(a, b, c, d, x[ 9], 5, 0x21e1cde6); /* 25 */ GG(d, a, b, c, x[14], 9, 0xc33707d6); /* 26 */ GG(c, d, a, b, x[ 3], 14, 0xf4d50d87); /* 27 */ GG(b, c, d, a, x[ 8], 20, 0x455a14ed); /* 28 */ GG(a, b, c, d, x[13], 5, 0xa9e3e905); /* 29 */ GG(d, a, b, c, x[ 2], 9, 0xfcefa3f8); /* 30 */ GG(c, d, a, b, x[ 7], 14, 0x676f02d9); /* 31 */ GG(b, c, d, a, x[12], 20, 0x8d2a4c8a); /* 32 */  /* Round 3 */ HH(a, b, c, d, x[ 5], 4, 0xfffa3942); /* 33 */ HH(d, a, b, c, x[ 8], 11, 0x8771f681); /* 34 */ HH(c, d, a, b, x[11], 16, 0x6d9d6122); /* 35 */ HH(b, c, d, a, x[14], 23, 0xfde5380c); /* 36 */ HH(a, b, c, d, x[ 1], 4, 0xa4beea44); /* 37 */ HH(d, a, b, c, x[ 4], 11, 0x4bdecfa9); /* 38 */ HH(c, d, a, b, x[ 7], 16, 0xf6bb4b60); /* 39 */ HH(b, c, d, a, x[10], 23, 0xbebfbc70); /* 40 */ HH(a, b, c, d, x[13], 4, 0x289b7ec6); /* 41 */ HH(d, a, b, c, x[ 0], 11, 0xeaa127fa); /* 42 */ HH(c, d, a, b, x[ 3], 16, 0xd4ef3085); /* 43 */ HH(b, c, d, a, x[ 6], 23,  0x4881d05); /* 44 */ HH(a, b, c, d, x[ 9], 4, 0xd9d4d039); /* 45 */ HH(d, a, b, c, x[12], 11, 0xe6db99e5); /* 46 */ HH(c, d, a, b, x[15], 16, 0x1fa27cf8); /* 47 */ HH(b, c, d, a, x[ 2], 23, 0xc4ac5665); /* 48 */  /* Round 4 */ II(a, b, c, d, x[ 0], 6, 0xf4292244); /* 49 */ II(d, a, b, c, x[ 7], 10, 0x432aff97); /* 50 */ II(c, d, a, b, x[14], 15, 0xab9423a7); /* 51 */ II(b, c, d, a, x[ 5], 21, 0xfc93a039); /* 52 */ II(a, b, c, d, x[12], 6, 0x655b59c3); /* 53 */ II(d, a, b, c, x[ 3], 10, 0x8f0ccc92); /* 54 */ II(c, d, a, b, x[10], 15, 0xffeff47d); /* 55 */ II(b, c, d, a, x[ 1], 21, 0x85845dd1); /* 56 */ II(a, b, c, d, x[ 8], 6, 0x6fa87e4f); /* 57 */ II(d, a, b, c, x[15], 10, 0xfe2ce6e0); /* 58 */ II(c, d, a, b, x[ 6], 15, 0xa3014314); /* 59 */ II(b, c, d, a, x[13], 21, 0x4e0811a1); /* 60 */ II(a, b, c, d, x[ 4], 6, 0xf7537e82); /* 61 */ II(d, a, b, c, x[11], 10, 0xbd3af235); /* 62 */ II(c, d, a, b, x[ 2], 15, 0x2ad7d2bb); /* 63 */ II(b, c, d, a, x[ 9], 21, 0xeb86d391); /* 64 */     state[0] += a;     state[1] += b;     state[2] += c;     state[3] += d;} 五、MD5加密实例 MD5加密步骤如下: 定义 MD5_CTX md5c;  初始化 /********************************************************* 名    称: MD5Init()* 功    能: 初始化MD5结构体* 入口参数:    context:要初始化的MD5结构体 * 出口参数: 无*********************************************************/MD5Init(MD5_CTX *context); MD5值计算 实现MD5值的计算及结构体的更新: /********************************************************** 名    称: MD5Update()* 功    能: 将要加密的信息传递给初始化过的MD5结构体,无返回值* 入口参数:    context:初始化过了的MD5结构体     input:需要加密的信息,可以任意长度    inputLen:指定input的长度* 出口参数: 无*********************************************************/MD5Update(MD5_CTX *context,(unsigned char *)input,inputLen);  输出转换 /********************************************************** 名    称: MD5Update()* 功    能: 将加密结果存储到,无返回值* 入口参数:    context:初始化过了的MD5结构体     digest :加密过的结果* 出口参数: 无*********************************************************/MD5Final(MD5_CTX *context,unsigned char digest[16]); 格式整理 转换成32位的16进制字符串。 实例1 字符串加密 对字符串进行加密:   1 #include    2 #include    3 #include "md5.h"  4 #include    5 #include    6 #include    7 #include    8   9 void main( void )  10 {  11     int read_len; 12     int i ; 13     char temp[8]={0}; 14     unsigned char digest[16]; //存放结果  15     char hexbuf[128]="12334567"; 16     unsigned char decrypt[16]={0};   17     unsigned char decrypt32[64]={0};     18  19     MD5_CTX md5c;  20  21     MD5Init(&md5c); //初始化 22     read_len = strlen(hexbuf); 23     MD5Update(&md5c,(unsigned char *)hexbuf,read_len);   24  25     MD5Final(&md5c,decrypt);  26     strcpy((char *)decrypt32,""); 27  28     for(i=0;i<16;i++) 29     { 30         sprintf(temp,"%02x",decrypt[i]); 31         strcat((char *)decrypt32,temp); 32     } 33     printf("md5:%s\n",decrypt32); 34      35     return; 36 } 执行结果如下: 本例对字符串12334567进行加密,结果和在线加密结果一致。 实例2 文件加密 对文件进行加密 #include  #include  #include "md5.h"#include  #include  #include  #include  #define FORWORD_FW "123.c"int calc_md5(char*filename,char*dest){ int i; int filelen = 0; int read_len; char temp[8]={0};  char hexbuf[128]={0}; unsigned char decrypt[16]={0};   unsigned char decrypt32[64]={0}; MD5_CTX md5; char fw_path[128]; int fdf;  fdf = open(filename,O_RDWR); if(fdf<0) {  printf("%s not exist\n",FORWORD_FW);  return -1; }  MD5Init(&md5);   while(1) {  read_len = read(fdf, hexbuf,sizeof(hexbuf));   if (read_len <0) {     close(fdf);      return -1;  }  if(read_len==0)  {   break;  }  filelen += read_len;  MD5Update(&md5,(unsigned char *)hexbuf,read_len);  }  MD5Final(&md5,decrypt);  strcpy((char *)decrypt32,"");  for(i=0;i<16;i++) {  sprintf(temp,"%02x",decrypt[i]);  strcat((char *)decrypt32,temp); } strcpy(dest,decrypt32); printf("md5:%s len=%d\n",dest,filelen); close(fdf); return filelen;}int main(int argc, char *argv[]){ int ret; int filelen; char md5_str[64]={0}; char cmd[256]={0};  filelen = calc_md5(FORWORD_FW,md5_str); if(filelen<0) {  printf("calc_md5 fail\n");  return -1; } return 0;} 运行结果: 在线验证结果对比: http://www.metools.info/other/o21.html 结果 END 来源:一口Linux,作者:土豆居士 呵,你会51单片机的精确延时吗? 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!