分类目录:摩登3平台开户

摩登三1960_5G手机芯片简史

时间过得真快,还有一个多月,2020年就要结束了。 今年,是国内5G网络全面商用的第一年。虽然我们遭受了新冠疫情的冲击,但5G的建设步伐并没有受到太多影响(反而有所刺激)。 5G基站 根据工信部副部长刘烈宏前天在世界互联网大会的发言数据,中国目前已经建成5G基站70万个,占全球比例接近70%,5G连接终端超过1.8亿。而运营商提供的数据则显示,国内的5G套餐用户数已经超过2亿(中移1.29亿,电信0.72亿,联通未公布)。 在手机方面,根据信通院的统计,1-10月国内市场5G手机上市新机型183款,累计出货1.24亿部,占比为49.4%。 毫无疑问,5G手机现在已经成为市场的主流、用户的首选。 5G手机 回顾5G手机这些年来的发展历程,其实并不平坦。围绕5G手机的纷争,从来就没有停止过。 最开始的时候,大家争论“谁是第一款5G手机(芯片)”。后来,开始争“NSA是不是假5G”。再后来,又争“集成基带和外挂基带”。再再后来,争“有没有必要支持N79频段”…… 对于不太懂技术的普通用户来说,这些无休止的争吵实在是让人懵圈——不就是买个5G手机么?怎么就这么麻烦呢? 其实,争来争去,主要原因还是因为5G芯片技术的不成熟。或者说,这些都是5G手机发展早期的正常现象。 5G手机和4G手机的最大区别,在于是否支持5G网络。而5G网络的支持与否,主要由手机的基带芯片决定。 基带芯片(高通X55) 基带芯片(有时候简称“基带”),有点像手机的“网卡”、“猫(调制解调器)”。而大家常说的SoC芯片(System-on-a-Chip,片上系统、系统级芯片),有点像电脑的CPU处理器。 5G SoC芯片(联发科) 注:基带芯片不一定集成在SoC芯片内部(后文会介绍) 有了5G基带芯片,手机才能够接入5G网络。所以说,5G手机的发展史,其实就是5G芯片的发展史。而5G芯片的发展史,又和5G基带密不可分。 是不是有点晕?别急,我们还是从头开始说起吧。 ▉  2016-2018年:第一代5G芯片 全球第一款5G基带芯片,来自老牌芯片巨头——美国高通(Qualcomm)。 高通在2016年10月,就发布了 X50  5G基带芯片。 那时候,全球5G标准都还没制定好 。 因为推出时间确实太早,所以X50的性能和功能都比较弱,主要用于一些测试或验证场景。没有哪个手机厂商敢拿这款基带去批量生产5G手机。 到了2018年2月,华为在巴塞罗那MWC世界移动大会上,发布了自己的第一款5G基带——巴龙5G01(Balong 5G01)。华为称之为全球第一款符合3GPP 5G协议标准(R15)的5G基带。 巴龙Balong 5G01 不过,这款5G01基带,技术也还不够成熟,没办法用在手机上,只能用在5G CPE上。 CPE:把5G信号转成Wi-Fi信号的小设备。 紧接着,联发科、三星和英特尔,陆续在2018年发布了自己的5G基带芯片(当时都没商用)。 我们姑且把这些5G基带叫做第一代5G基带吧。 数据仅供参考(部分是PPT芯片,你懂的) 这一代芯片有一个共同特点—— 它们都是通过“外挂方式”搭配SoC芯片进行工作的。 也就是说,基带并没有被集成到SoC芯片里面,而是独立在SoC之外。 集成VS外挂,当然是集成更好。集成基带在功耗控制和信号稳定性上,明显要优于外挂基带。 “外挂”,相当于这样 可是没办法,当时的技术不成熟,只能外挂。 总而言之,2018年,5G手机基本处于无“芯”可用的状态,市面上也没有商用发布的5G手机。 ▉  2019年:第二代5G芯片 到了2019年,情况不同了。 随着5G第一阶段标准(R15)的确定、第二阶段标准(R16)的推进,各个芯片厂商的技术不断成熟,开始有了第二代5G基带。 首先有动作的,是华为。 华为在2019年1月,发布了巴龙5000(Balong5000)这款全新的5G基带。支持SA和NSA,采用7nm工艺,支持多模。 综合来说,小枣君个人认为,这是第一款达到购买门槛的5G基带。 紧接着,高通在2月份,发布了X55基带,也同时支持SA/NSA,也是7nm,也支持多模。从纸面数据上来说,X55的指标强于Balong5000。 不过,华为的动作更快。 2019年7月,就在高通X55还停留在口头宣传上的时候,华为采用“麒麟980+外挂巴龙5000”的方案,发布了自己的第一款5G手机——Mate20 X 5G。 这也是国内第一款获得入网许可证的5G手机。 因为 高通的X55要等到2020年一季度才能批量出货,所以,当时包括小米、中兴、VIVO在内的一众手机厂商,只能使用外挂X50基带的高通SoC芯片,发布自家5G旗舰。 站在客观角度,只看5G通信能力的话,这差距是非常明显的。 当时,围绕SA和NSA,爆发了很大的争议。 很多人认为,仅支持NSA的手机是“假5G”手机,到了2020年会无法使用5G网络。 这种说法并不准确。事实上,NSA和SA都是5G。在SA独立组网还没有商用的前提下,仅支持NSA也是够用的。 2019年9月,华为又发布了麒麟990 5G SoC芯片,采用7nm EUV工艺,更加拉开了差距。 所以,在2019年中后期的很长一段时间内,华为5G手机大卖特卖,销量一骑绝尘。 9月4日,三星发布了自家的5G SoC,Exynos 980(猎户座980),采用8nm工艺。 一个月后,三星又发布了Exynos 990(猎户座990)。相比于Exynos 980集成5G基带,Exynos 990反而是外挂的5G基带(Exynos Modem 5123),令人费解。 正当大家觉得失衡的局面要持续到X55上市时,一匹黑马杀出来了,那就是来自宝岛台湾的芯片企业——联发科(MEDIATEK)。 11月26日,联发科发布了自家的5G SoC芯片——天玑1000,纸面参数和性能跑分都全面领先,顿时炸开了锅。小枣君当时还专门写了一篇文章介绍:链接 12月5日,姗姗来迟的高通终于发布了自家的新5G SoC芯片,分别是骁龙765和骁龙865。 高通是国内各大手机厂商(华为除外)的主要芯片供应商。包括小米、OPPO、vivo在内的众多厂家,都在等高通的这款骁龙865芯片 。不过,骁龙865推出之后,大家发现,这款芯片仍然是外挂基带。(骁龙765是集成基带,集成了X52,支持5G,但是整体性能弱于865,定位中端。) 我们把这几家厂商的SoC芯片放在一起,比较一下吧: 当时(2019年底)的纸面数据,仅供参考 三星的芯片基本上是三星手机自己在用。这些年,三星手机在国内的市场份额不断下滑,基本退出了第一阵营的争夺。所以,实际上国内市场就是华为、高通、联发科三家在激烈竞争。 我们具体看一下当时这些芯片的参数差异: 从工艺制程来看,几款芯片都是7nm,但是EUV(极紫外光刻,Extreme Ultra-violet)比传统工艺要强一些。 从组网支持来看,NSA和SA,大家都同时支持,没什么好说的。 最主要的区别,集中在基带外挂/集成,毫米波支持,以及连接速度上。 基带外挂 关于这个问题,虽然前面我们说集成肯定比外挂好。但是这里的情况有点特殊: 华为之所以集成了5G基带,并不代表他完全强于高通。有一部分原因,是因为华为麒麟990采用的是2018年ARM的A76架构(其它几家是2019年5月ARM发布的A77架构)。A77集成5G基带难度更大。 而且,华为集成5G基带,也牺牲了一部分的性能。这就是上面表格中,华为连接速率指标明显不如其它三家的原因之一。 换言之,以当时(2019年底)的技术,想要做到性能、功耗、集成度的完美平衡,非常非常困难。 联发科这一点很牛。它的天玑1000,既采用了A77架构,又做到了基带集成,整体性能不输对手,令人出乎意料。 毫米波 高通骁龙865不支持集成,有一部分原因是因为毫米波(支持毫米波之后,功耗和体积增加,就没办法集成了)。 什么是毫米波? 5G信号是工作在5G频段上的。3GPP标准组织对5G频段有明确的定义。分为两类,一类是6GHz(后来3GPP改为7.125GHz)以下的,我们俗称Sub-6频段。另一类是24GHz以上的,俗称毫米波频段。 高通的SoC芯片,为什么要支持毫米波频段呢? 因为他要兼顾美国市场。 美国运营商AT&T在使用毫米波频段。除了美国等少数国家之外,大部分国家目前还没有使用毫米波5G。 连接速度 最后就是看连接速度。 抛开毫米波,我们只看Sub-6的速度。天玑1000的公布数据比其它两家快了一倍。 这个地方也是有原因的。因为天玑采用了双载波聚合技术,将两个100MHz的频率带宽聚合成200MHz来用,实现了速率的翻倍。 值得一提的是,这个100MHz+100MHz,基本上就是为联通电信5G共享共建量身定制的。他们俩在3.5GHz刚好各有100MHz的频段资源。 N79频段支持 最后,我们再来说说N79这个事情。当时围绕这个N79,也爆发了不少口水战。 前面我说了,5G有很多个频段。Sub-6GHz的频段,如下所示: N79频段,就是4400-5000MHz。 下面这个,是国内运营商5G频段分布: 很清楚了,联通或电信用户,无需理会N79,因为用不到。 那移动用户是不是一定要买支持N79频段的5G手机呢?答案是:不一定。当时移动还没有用N79。不过,后期应该会用。 站在普通消费者的角度,如果我是移动用户,当然会倾向购买支持N79频段的5G手机,一步到位。 这么一看的话,华为又占了优势: 是吧?搞来搞去,三家就是各有千秋。…

摩登三1960_电磁频谱在军事的这些用途,你都知道吗?

频谱相关的系统在所有军事领域都有应用:空中、陆地、海洋、太空和网络空间,甚至是国防部的概念如网络中心战和多域战。这些应用强化了军方对频谱的依赖。 电磁频谱 电磁频谱是一系列频率,范围涵盖从无线电波到微波、可见光、x射线和伽马射线。 当电磁辐射的波长变短时,电磁波的频率就会变高,从而产生更多的能量。 图1 电磁频谱 频谱的不同频段服务于不同的军事目的。 无线电的数据传输速率相对较低,特别是在非常低的频率范围内,不过,它们可以远程传输,并能够穿透建筑物和树木等固体物质,经常用于通信设备。 微波与无线电相比,具有更高的数据吞吐量——数据上传和下载速率,因此能够传输更多的数据,但传输距离有限,且易受到固体物质阻挡,因此,微波经常用于雷达和卫星通信。 红外波,能够发射能量,由于其与热源具有紧密关系,可以用于情报和目标数据。X射线通常用于飞机维修,以识别机身上的裂纹。 最后,伽马射线是高能辐射,有助于识别潜在的核事件。下面,集中讨论国防部在无线电波、微波和红外光谱等方面的使用情况。 频谱的应用 军方使用整个频谱来支持情报和军事行动。这些应用涵盖范围较广,从使用极低频无线电波用于水下潜艇通信,到使用微波作为飞机之间的连续数据链,再到使用频谱末端的红外和紫外激光用来致盲卫星传感器和摧毁无人机。 大多数军事通信使用无线电波、微波和红外频率。几乎每一个现代武器系统——飞机、卫星、坦克、舰船和无线电——都依赖于频谱来发挥作用。这些应用功能可以融合起来,提供全面的军事能力,例如指挥控制或电子战。下面讨论一些频谱应用的示例。 军事指挥官已经习惯于与他们的部队进行近实时的联络。通信包括一系列选项,从低带宽(如传输文本字符串)到数据密集型应用(如全动态视频和视频电话会议)。 这些系统可以部署在陆上(在地面部队或船上)、空中或太空(即在卫星上)。一般来说,通信系统使用无线电和微波频率; 然而,新兴的通信技术在天线之间使用激光传输光来代替无线电波。 无线电使用的不同频率,取决于其需要传输数据的距离和数据量。地基无线电由于受视线的限制,通常用于短距离数据传输,范围较小,不超过50英里。一般情况下,军队使用卫星进行远距离通信。 态势感知 频谱的另一个应用是利用无线电或微波频率,通过提供友军和敌军的位置,来绘制战场图像。最常见的应用是雷达,但最近也使用了光探测和测距(激光雷达)系统。两种技术都是发射信号,然后反射回传感器,从而确定距离、速度以及物体的高度。雷达根据不同的用途使用不同的无线电和微波频率。 虽然由于杂波或雷达回波弱,低频段的系统不能提供高质量的目标图像,但它却可提供一个更大的战场态势。高频段频率可提供高质量的目标图像,但有效探测距离短。雷达和激光雷达系统通常与防空、军事航空、火炮和空间系统息息相关。 信号情报(SIGINT)系统主要收集频谱辐射。这些是被动系统——换言之,它们不发射自己的信号——但可以接收无线电和雷达频率,还可以探测人员、导弹、飞机、大炮和车辆的热辐射信号。 军方利用频谱来锁定目标,并可能攻击对手。一般来说,导弹特别是防空导弹,使用红外或雷达进行末制导攻击目标。 电子干扰器被用来阻止对手掌控频谱,这些干扰器主要用于干扰无线电波和微波频率,从而影响通信(陆基和天基)以及雷达探测范围。 军方也开始使用激光来致盲情报搜集传感器,对小型无人机系统(又称“无人机”)提供潜在的动能杀伤,还可与卫星进行通信。 频谱作战方式 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3咨询:_意法半导体工业峰会2020将在深圳举办

· ST工业峰会2020将围绕“激发智能,赋能创新”主题,聚焦电源与能源、电机控制和自动化三大领域 · 展出100多个独创的解决方案和产品演示,举办50余场深度技术研讨分论坛 2020年11月27日,中国深圳 – 横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST) 将于12月2日在中国深圳福田香格里拉大酒店举办2020工业峰会。 作为拥有众多行业首创和18,500多项专利的科技先驱,意法半导体一直走在半导体技术创新的最前沿。第二届工业峰会主题围绕“激发智能,赋能创新”,聚焦电源与能源、电机控制和自动化的相关创新活动和技术演示。 电源与能源:意法半导体的智能电源技术处于世界领先水平,并继续跻身于全球绿色技术发展最前沿,拥有节能、创新的宽带隙半导体产品。在2020年工业峰会上,与会者将有机会体验意法半导体的MasterGaN—-世界上首个单封装集成硅驱动器和氮化镓(GaN)功率晶体管的解决方案。作为市场独一无二的电源平台,MasterGaN能使充电器和适配器减重80%,体积缩小70%,充电速度更是普通硅基解决方案的3倍。 为了展示其广泛的电源与能源应用半导体产品组合,意法半导体还将展出50W RX/TX接收/发射无线充电整体解决方案、65W USB PD Type-C GaN快速充电器芯片、包括3.6kW CCM图腾柱PFC( 功率因数校正)、15kW维也纳整流器、15kW 3L T型双向PFC在内的三个升压变换器,以及基于PLC(电力线通信)的智能太阳能面板模块解决方案。 电机控制:意法半导体为高低功率应用市场提供各种更安全、更高效的运动控制创新方案。在电机控制展区,公司将展示一系列针对家电和电动工具(低压和高压)的电机控制解决方案,包括风扇、真空吸尘器、跑步机演示装置等,其中大部分由意法半导体亚太区电机控制技术创新中心自主研发。 意法半导体还将带来其他电机控制解决方案,包括一个基于STSPIN32F0和Modbus总线的位置控制演示装置,以及基于STM32F7微控制器和EtherCAT通信的迷宫游戏位置控制装置。 自动化:意法半导体致力于提供更高效、更安全、可靠的工厂自动化和家庭/楼宇自动化解决方案。在2020年工业峰会上,公司将推出最新的低功耗、高集成度智能家居演示套件,以及基于ST BlueNRG-2和KNX的套件,展示如何通过手机应用远程控制照明灯具。 意法半导体展出的其他自动化解决方案包括:体积紧凑的资产跟踪演示装置、后装无线抄表器、STM32WL LoRa网络和云端连接模块、基于L6362A收发器的IO-Link工业模块传感器板。 面向5大工业领域的客户展品 在2020年工业峰会上,参会者还将能够现场体验客户用意法半导体产品设计的应用演示装置,包括电动汽车快速充电桩、电动滑板车无线充电解决方案,以及各种机器人解决方案和工业自动化系统、智慧家居等。 充电桩解决方案:峰会上将展出一个60-160kW直流充电桩解决方案,主要用于集中式电动车快速充电站。该方案采用了意法半导体最新的IGBT产品,可为客户提供CCS Combo2和CHAdeMO双标准充电,满足搭载大容量电池、瞄准更长续航里程的电动汽车的更快充电要求。 电动滑板车无线充电解决方案:共享电动滑板车近年来在许多国家盛行,然而,充电是滑板车面临的最大挑战。结合了意法半导体的功率MOSFET、VIPer、Triacs、PFC控制器和栅极驱动器,此次峰会上客户将展出一个快速无线充电器与停车架相结合的解决方案,帮助运营公司解决电动滑板车的路边充电难题,降低管理成本。 机器人解决方案:机器人可以很好地替代劳动力,在智能工厂中执行重复和不安全的任务,提高生产效率,降低生产成本。在2020年工业峰会上,意法半导体将展示本地客户的机器人解决方案,演示机器人如何高速、高精度工作,减轻工业场景中人类工作负荷。 自动化生产线:现场一台手机生产线装置将演示微型智能工厂是如何运行的。整个生产线分为5个工位:AOI站(自动光学检测)、打磨站、锁附站、点胶站和贴标站。该模块化的柔性生产线可以快速响应设计要求,并具有很强的环境适应性。同时,该生产线采用MES(制造执行系统),能够利用大数据来构建“互联网+工业”的新型管理模式。 智慧家居:2020年工业峰会还将设有一个智能家居展区,展出客户采用意法半导体的电源和电机控制芯片设计的各种智能家电,包括扫地机器人、人脸识别家庭安保监控系统、割草机、空调、冰箱、洗衣机、油烟机、电饭煲、智能梳妆镜和超音速吹风机等等,涵盖智能生活的方方面面。 欢迎莅临意法半导体的2020年工业峰会(2020年12月2日中国深圳),亲身体验ST和客户的尖端产品展示。

摩登3平台登录_鸿蒙和安卓,到底有什么区别?

对于开发者来说两个最关键的点值得关注:一个是 Beta 版的开发工具,一个是开源网站。 开源网站 在开发者大会上宣布将 HarmonyOS源代码捐赠给中国开放原子开源基金会,并在大会上公布了鸿蒙系统的开源路线。 OpenHarmony 官方源码地址: https://openharmony.gitee.com/openharmony 开发工具 鸿蒙使用基于 Intellij IDEA 深度定制研发的 DevEco Studio 作为其开发工具。 DevEco Studio 下载地址: https://developer.harmonyos.com/cn/develop/deveco-studio 那么,在应用开发过程中,HarmonyOS(鸿蒙)和 Android(安卓)开发环境有什么不同呐? HarmonyOS 项目和 Android 项目对比 资源目录的变更 ①资源目录名称有更改 安卓 res 目录,这里用 resources 目录,它包括 base 和 rawfile 两部分,其中 base 是核心的资源目录,常用的都放在这里面,便于查找和使用。rawfile 会原封不动打包到生成的应用里面。 安卓是 res/values 目录,这里是 resources/element 目录。安卓 raw 目录,这里用 rawfile 目录。 ②资源目录分门别类,统一管理 Android 目录结构就比较松散,没有统一的文件夹管理,res/values 目录里面可以创建各种资源的 xml 文件,只能去官网查看有哪些可以创建。 这里有 base 目录统一管理。 ③部分资目录删除,新增一些资源目录类型 比如 float.json 文件,plural.json 文件,profile 文件夹等。 ④编写方式有改变,xml 变更为 json 安卓的 values 里面是 xml 写的,这里是 element 目录里面的,都是 json 格式的。 最后来一张同类型资源对比图: 完整的资源目录的具体变更对比如下图所示: 配置文件的变更 清单文件  AndroidManifest 变成了 config.json 文件。 Java 代码的变更 完整的 Java 目录的变更对比如下图所示: HarmonyOS 项目和微信小程序项目对比 完整的 JS 目录和微信小程序对比如下图所示: HarmonyOS 优点 多终端开发调试便捷 鸿蒙目前支持可以开发 TV,wearable, LiteWearable 几种设备类型,未来还会扩展到其他设备。并且一次代码就可以在不同设备快速部署和调试,操作非常简易。 对开发者友好,开发难度和学习成本低 ①IDE 开发工具方面 DevEco Studio 是基于 Intellij IDEA 工具定制化深度研发的一个工具,所以对于那些熟悉 IDEA,或 Android Studio 或 WebStorm 这些 IDE 开发工具的朋友们来说应该是很熟悉的,不熟悉的朋友们也可以很快就上手。 另外正是由于是定制化的,所以去掉了…

摩登3娱乐怎么样?_单片机系统的电磁兼容性设计详解,看完秒懂!

随着单片机系统越来越广泛地应用于消费类电子、医疗、工业自动化、智能化仪器仪表、航空航天等各领域,单片机系统面临着电磁干扰(EMI)日益严重的威胁。电磁兼容性(EMC)包含系统的发射和敏感度两方面的问题。如果一个单片机系统符合下面三个条件,则该系统是电磁兼容的: ① 对其它系统不产生干扰; ② 对其它系统的发射不敏感; ③ 对系统本身不产生干扰。 假若干扰不能完全消除,但也要使干扰减少到最小。干扰的产生不是直接的(通过导体、公共阻抗耦合等),就是间接的(通过串扰或辐射耦合)。电磁干扰的产生是通过导体和通过辐射,很多电磁发射源,如光照、继电器、DC电机和日光灯都可引起干扰;AC电源线、互连电缆、金属电缆和子系统的内部电路也都可能产生辐射或接收到不希望的信号。在高速单片机系统中,时钟电路通常是宽带噪声的最大产生源,这些电路可产生高达300 MHz的谐波失真,在系统中应该把它们去掉。另外,在单片机系统中,最容易受影响的是复位线、中断线和控制线。 0 1 干扰的耦合方式 1、 传导性EMI 一种最明显而往往被忽略的能引起电路中噪声的路径是经过导体。一条穿过噪声环境的导线可捡拾噪声并把噪声送到其它电路引起干扰。设计人员必须避免导线捡拾噪声和在噪声引起干扰前,用去耦办法除去噪声。最普通的例子是噪声通过电源线进入电路。若电源本身或连接到电源的其它电路是干扰源,则在电源线进入电路之前必须对其去耦。 2、公共阻抗耦合 当来自两个不同电路的电流流经一个公共阻抗时就会产生共阻抗耦合。阻抗上的压降由两个电路决定,来自两个电路的地电流流经共地阻抗。电路1的地电位被地电流2调制,噪声信号或DC补偿经共地阻抗从电路2耦合到电路1。 3、 辐射耦合 经辐射的耦合通称串扰。串扰发生在电流流经导体时产生电磁场,而电磁场在邻近的导体中感应瞬态电流。 4、 辐射发射 辐射发射有两种基本类型:差分模式(DM)和共模(CM)。共模辐射或单极天线辐射是由无意的压降引起的,它使电路中所有地连接抬高到系统地电位之上。就电场大小而言,CM辐射是比DM辐射更为严重的问题。为使CM辐射最小,必须用切合实际的设计使共模电流降到零。 0 2 影响EMC的因数 ① 电压。电源电压越高,意味着电压振幅越大,发射就更多,而低电源电压影响敏感度。 ② 频率。高频产生更多的发射,周期性信号产生更多的发射。在高频单片机系统中,当器件开关时产生电流尖峰信号;在模拟系统中,当负载电流变化时产生电流尖峰信号。 ③ 接地。在所有EMC问题中,主要问题是不适当的接地引起的。有三种信号接地方法:单点、多点和混合。在频率低于1 MHz时,可采用单点接地方法,但不适于高频;在高频应用中,最好采用多点接地。混合接地是低频用单点接地,而高频用多点接地的方法。地线布局是关键,高频数字电路和低电平模拟电路的地回路绝对不能混合。 ④ PCB设计。适当的印刷电路板(PCB)布线对防止EMI是至关重要的。 ⑤ 电源去耦。当器件开关时,在电源线上会产生瞬态电流,必须衰减和滤掉这些瞬态电流。来自高di/dt源的瞬态电流导致地和线迹“发射”电压,高di/dt产生大范围高频电流,激励部件和线缆辐射。流经导线的电流变化和电感会导致压降,减小电感或电流随时间的变化可使该压降最小。 0 3 印刷电路板(PCB)的电磁兼容性设计 PCB是单片机系统中电路元件和器件的支撑件,它提供电路元件和器件之间的电气连接。随着电子技术的飞速发展,PCB的密度越来越高。PCB设计的好坏对单片机系统的电磁兼容性影响很大,实践证明,即使电路原理图设计正确,印刷电路板设计不当,也会对单片机系统的可靠性产生不利影响。例如,如果印刷板两条细平行线靠得很近,则会形成信号波形的延迟,在传输线的终端形成反射噪声。因此,在设计印刷电路板的时候,应注意采用正确的方法,遵守PCB设计的一般原则,并应符合抗干扰设计的要求。 一、PCB设计的一般原则 要使电子电路获得最佳性能,元器件的布局及导线的布设是很重要的。为了设计质量好、成本低的PCB,应遵循以下一般性原则。 1、特殊元器件布局 首先,要考虑PCB尺寸的大小:PCB尺寸过大时,印刷线条长,阻抗增加,抗噪声能力下降,成本也增加;过小,则散热不好,且邻近线条易受干扰。在确定PCB尺寸后,再确定特殊元器件的位置。最后,根据电路的功能单元,对电路的全部元器件进行布局。 在确定特殊元器件的位置时要遵守以下原则: ① 尽可能缩短高频元器件之间的连线,设法减少它们的分布参数和相互间的电磁干扰。易受干扰的元器件不能相互挨得太近,输入和输出元件应尽量远离。 ② 某些元器件或导线之间可能有较高的电位差,应加大它们之间的距离,以免放电引出意外短路。带高电压的元器件应尽量布置在调试时手不易触及的地方。 ③ 重量超过15 g的元器件,应当用支架加以固定,然后焊接。那些又大又重、发热量多的元器件,不宜装在印刷板上,而应装在整机的机箱底板上,且应考虑散热问题。热敏元件应远离发热元件。 ④ 对于电位器、可调电感线圈、可变电容器、微动开关等可调元件的布局,应考虑整机的结构要求。若是机内调节,应放在印刷板上方便调节的地方;若是机外调节,其位置要与调节旋钮在机箱面板上的位置相适应。 ⑤ 留出印刷板定位孔及固定支架所占用的位置。 2、一般元器件布局 根据电路的功能单元,对电路的全部元器件进行布局时,要符合以下原则: ① 按照电路的流程安排各个功能电路单元的位置,使布局便于信号流通,并使信号尽可能保持一致的方向。 ② 以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀、整齐、紧凑地排列在PCB上,尽量减少和缩短各元器件之间的引线和连接。 ③ 在高频下工作的电路,要考虑元器件之间的分布参数。一般电路应尽可能使元器件平行排列,这样,不但美观,而且装焊容易,易于批量生产。 ④ 位于电路板边缘的元器件,离电路板边缘一般不小于2 mm。电路板的最佳形状为矩形。长宽比为3:2或4:3。电路板面尺寸大于200 mm×150 mm时,应考虑电路板所受的机械强度。 3、布线 布线的原则如下: ① 输入输出端用的导线应尽量避免相邻平行,最好加线间地线,以免发生反馈耦合。 ② 印刷板导线的最小宽度主要由导线与绝缘基板间的粘附强度和流过它们的电流值决定。当铜箔厚度为0.5 mm、宽度为1~15 mm时,通过2 A的电流,温升不会高于3℃。因此,导线宽度为1.5 mm可满足要求。对于集成电路,尤其是数字电路,通常选0.02~0.3 mm导线宽度。当然,只要允许,还是尽可能用宽线,尤其是电源线和地线。导线的最小间距主要由最坏情况下的线间绝缘电阻和击穿电压决定。对于集成电路,尤其是数字电路,只要工艺允许,可使间距小于0.1~0.2 mm。 ③ 印刷导线拐弯处一般取圆弧形,而直角或夹角在高频电路中会影响电气性能。此外,尽量避免使用大面积铜箔,否则,长时间受热时,易发生铜箔膨胀和脱落现象。必须用大面积铜箔时,最好用栅格状,这样有利于排除铜箔与基板间粘合剂受热产生的挥发性气体。 4、 焊盘 焊盘中心孔要比器件引线直径稍大一些。焊盘太大易形成虚焊。焊盘外径D一般不小于(d+1.2) mm,其中d为引线孔径。对高密度的数字电路,焊盘最小直径可取(d+1.0) mm。 二、PCB及电路抗干扰措施 印刷电路板的抗干扰设计与具体电路有着密切的关系,这里仅就PCB抗干扰设计的几项常用措施作一些说明。 1、 电源线设计 根据印刷线路板电流的大小,尽量加粗电源线宽度,减少环路电阻;同时,使电源线、地线的走向和数据传递的方向一致,这样有助于增强抗噪声能力。kx6电子技术吧 2、 地线设计 在单片机系统设计中,接地是控制干扰的重要方法。如能将接地和屏蔽正确结合起来使用,可解决大部分干扰问题。单片机系统中地线结构大致有系统地、机壳地(屏蔽地)、数字地(逻辑地)和模拟地等。在地线设计中应注意以下几点: ① 正确选择单点接地与多点接地。在低频电路中,信号的工作频率小于1MHz,它的布线和器件间的电感影响较小,而接地电路形成的环流对干扰影响较大,因而应采用一点接地的方式。当信号工作频率大于10 MHz时,地线阻抗变得很大,此时应尽量降低地线阻抗,应采用就近多点接地。当工作频率在1~10MHz时,如果采用一点接地,其地线长度不应超过波长的1/20,否则应采用多点接地法。 ② 数字地与模拟地分开。电路板上既有高速逻辑电路,又有线性电路,应使它们尽量分开,而两者的地线不要相混,分别与电源端地线相连。低频电路的地应尽量采用单点并联接地,实际布线有困难时可部分串联后再并联接地;高频电路宜采用多点串联接地,地线应短而粗。高频元件周围尽量用栅格状大面积地箔,要尽量加大线性电路的接地面积。 ③ 接地线应尽量加粗。若接地线用很细的线条,则接地电位会随电流的变化而变化,致使电子产品的定时信号电平不稳,抗噪声性能降低。因此应将接地线尽量加粗,使它能通过三倍于印刷电路板的允许电流。 ④ 接地线构成闭环路。设计只由数字电路组成的印刷电路板的地线系统时,将接地线做成闭路可以明显地提高抗噪声能力。其原因在于:印刷电路板上有很多集成电路元件,尤其遇有耗电多的元件时,因受接地线粗细的限制,会在地线上产生较大的电位差,引起抗噪能力下降;若将接地线构成环路,则会缩小电位差值,提高电子设备的抗噪声能力。 3、退耦电容配置 PCB设计的常规做法之一,是在印刷板的各个关键部位配置适当的退耦电容。退耦电容的一般配置原则是: ① 电源输入端跨接10~100μF的电解电容器。如有可能,接100μF以上的更好。 ② 原则上每个集成电路芯片都应布置一个0.01 pF的瓷片电容。如遇印刷板空隙不够,可每4~8个芯片布置一个1~10 pF的钽电容。 ③ 对于抗噪能力弱、关断时电源变化大的器件,如RAM、ROM存储器件,应在芯片的电源线和地线之间直接接入退耦电容。 ④ 电容引线不能太长,尤其是高频旁路电容不能有引线。 此外,还应注意以下两点: ①…

摩登3平台登录_医疗设备中,FPGA扮演什么角色?

出品 21ic中国电子网 付斌 网站:21ic.com FPGA(现场可编辑门阵列)作为赛灵思(Xilinx)的一项重要发明,以其可编程和灵活性着称。起初,FPGA只是用来仿真ASIC,再进行掩码处理和批量制造使用。不过ASIC相比FPGA来说明显在定制化上要求过高,流片量过小情况下成本反而更高,因此两者毫不冲突地“各司其职”。而后,随着加速器的出现和算力提升,目前已成为与GPU齐名的并行计算器件。 如今,FPGA已进发数据中心领域,相比CPU和GPU,FPGA所需器件更少,功耗也更优。赛灵思依靠其“数据中心优先”、“加速核心市场发展”、“驱动自适应计算”的三大战略加持下,使其ACAP平台和Alveo加速卡在数据中心市场极具竞争力。 除此之外,赛灵思曾为笔者展示过其云服务商领域的“一体化SmartNIC平台”、消费领域的“FPGA TCON”方案、工业领域的Zynq SoC系列方案。 实际上,根据赛灵思透露,医疗领域已占据赛灵思营收非常重要的比重,并且一直在11%-15%的速度增长。那么赛灵思是依靠什么FPGA产品占据的医疗市场,FPGA器件在医疗设备中扮演什么角色? 日前,赛灵思为记者介绍了近期在医疗科学和医疗设备方面的成果,21ic中国电子网记者受邀参加此次采访。 FPGA器件能用在什么地方 信息显示,全球人均医疗支出每年都在增长,随着人口老龄化加剧,消费者对医疗条件和医疗成本都有着极高的预期。另一方面,随着疫情的爆发,市场对病情的及早发现和诊断的快速分析有了更高的要求,这就需要医疗器械成本的进一步降低和算力的提升。 FPGA器件自身拥有可编程特性,借助这种优势,可避免ASIC器件前期高昂的一次性工程费用,消除最低订单数量和多芯片迭代风险和损失。医疗行业本身是与科技发展联系最为紧密的行业之一,伴随FPGA器件的不断迭代升级,更多新设备出现,引领了新的治疗方法、治疗途径、治疗理念的改变。 赛灵思医疗科学全球业务市场负责人Subh Bhattacharya 根据Subh Bhattacharya的介绍,赛灵思的FPGA器件在医疗领域的应用主要分为三类:临床、医疗成像和诊断分析。 01 临床环境 临床设备数量大种类多,因此需要灵活性极强的FPGA。需要注意的是,部分设备直接影响患者生命安全,对启动速度、安全稳定性、时延要求极高;部分设备在便携性上则有一定要求,对功耗、小尺寸有很大需求。 根据Subh的介绍,在临床方面,赛灵思的Zynq UltraScale+ MPSoC(下文简称为“ZU+ MPSoC”)是一个高度集成的平台,集成多个处理器,拥有可编程逻辑,此外还集成了信息安全和功能安全功能。Subh强调,这个技术平台的强大功能和性能非常适合在临床环境应用之中,包括从云端到边缘。 Subh为记者展示了几个利用该平台解决临床环境的实例: 其一是赛灵思与Spline.AI和AWS(亚马逊云服务)合作开发的医疗AI,利用ZU+MPSoC的ZCU104平台作为边缘设备,实现的高精度低时延的医疗X射线分型深度学习模型和参考设计。该方案可独立自主根据Chest X-Ray预测疾病,也可预测COVID-19和肺炎,也可开发定制模型供临床使用。另外,ZCU104支持开源语言PYNQ语言下开发,也可借助AWS IoT Greengrass实现进一步的扩展和部署。该方案发挥了ZU+ MPSoC的高性能和扩展性,赋予了低成本医疗设备高精度的诊断。 其二是赛灵思为奥林巴斯内窥镜核心技术提供支持。该方案发挥了ZU+ MPSoC在启动速度、功耗和低时延的特性。 其三是赛灵思为Clarius超便携高性能超声波系统。该方案发挥了ZU+ MPSoC片上双ARM处理器和FPGA的小尺寸封装特性,实现了超便携。 究其历史,Zynq SoC是赛灵思在2011年推出的全球首款集成ARM内核的产品,彼时该平台称为“可扩展的处理器平台”,主要是为了将市场扩展到嵌入式应用之中。此前FPGA多用作辅助芯片,自从引入更多功能的集成SoC平台之后,ARM GPU、数据安全处理器、功能安全处理器都被集成在单芯片之中。Subh表示,经过这样的转型之后,赛灵思从每年5%-6%的收入增长,实现了到14%-15%的收入增长,2.5倍的增长率全要归功于这样的技术平台。 除此之外,Subh还为记者展示ZU+ MPSoC在医疗安全上的解决方案。“目前,全球安装的医疗物联网设备超过1亿台,到2020年将增长到1.61亿台。医界高管认为 59%隐私问题, 55%老旧系统集成和54%安全问题,是阻碍当今医疗机构采用物联网的三大障碍。” Subh表示,赛灵思可以利用可编程平台,不断适应新的安全防护措施,这种升级囊括了软件和硬件。最终体现在SoC上的,就是认证与加密启动、安全启动、测量启动、安全应用通信、基于云的监测等功能。 02 医疗成像 大型医疗成像设备使用FPGA器件已经是基本操作,Subh为记者介绍,在医疗成像方面,主要包括CT、超声、X射线、PET、MRI扫描仪等。 对于医疗成像,Zynq UltraScale+ MPSoC同样适用。Subh表示,除此之外还有Versal ACAP,这个系列可以理解为下一代的MPSoC,Versal ACAP在成像领域具有非常大优势。 Versal ACAP除了拥有ARM多处理器集成、可编程逻辑、DSP以外,还加入了AI引擎,即SIMD、VLIW这样的单元,可以支持很多类似操作的平行处理。 Subh为记者展示了超声波图像重构与计算机辅助诊断的方案,利用赛灵思的软硬件支持,能够降低功耗和热度范围、降低解决方案成本、延长设备使用寿命、低时延边缘推断,虽然市场非常复杂,赛灵思的技术也能够大大提高生产力。 03 诊断分析 Subh表示,除了SoC和FPGA,赛灵思还提供即插即用的Alveo加速卡,正因这是一种PCle的解决方案,因此可以大大降低开发时长。根据介绍,Alveo加速卡适用于任何通用PC,既可以加速CPU的普通任务,也可以加速其他的GPU的任务,最终实现高吞吐量和超低时延。其独特的算力和灵活应变能力,可以大大加速很多的医疗应用。 联影医疗(United Imaging)是一家中国公司,这家公司在使用Alveo U200加速卡替代传统GPU时发现,Alveo的技术成本更低、功耗更低,并且无需牺牲任何性能或是开发进度。 FPGA vs. CPU&GPU 医疗设备中使用CPU或者GPU产品的方案也屡见不见,为何FPGA拥有如此卓著效果,甚至有着替代CPU和GPU的“魔力”?实际上,CPU和GPU都属于冯诺依曼结构,FPGA能够突破结构上的限制因此拥有极强的能效。 具体来说,CPU和GPU需要使用SIMD(单指令流多数据流)来执行存储器、译码器、运算器、分支跳转处理逻辑等,FPGA则在烧写时已经确定每个逻辑单元的功能,因此不需要指令;另外,CPU和GPU在内存使用中是共享的,因此就需要访问仲裁,执行单元间的私有缓存使得部件间要保持缓存一致性,同样在烧写过程中FPGA已明确通信要求,因此无需共享内存进行通信。 得益于此,FPGA拥有极强的浮点乘法运算能力,而且对比同样是浮点运算的GPU延迟更低。这是因为,FPGA同时拥有了流水线并行和数据并行,而GPU只有数据并行。 从算力上来说,赛灵思还将FPGA器件转变为了SoC进行加速和自适应。赛灵思在加速上通过标量引擎实现,包括ARM、应用处理器和实时处理器,而自适应引擎的核心便是可编程逻辑器件FPGA,另外还配备智能引擎,目前配备的是DSP。特别是,在Versal ACAP的平台上还会将会有AI引擎进行支持,进一步进行加速和自适应。 “在医疗领域,诸如内窥镜这种应用,手术中患者拥有一个共同的要求,就是时延非常低,甚至需要实时来完成。从摄像头捕捉图像,经过管线处理,再到显示屏可能不到20微妙的时间。CPU和GPU达不到FPGA如此低的时延,因此这就是FPGA相比CPU和GPU的最大优势”,Subh继续为记者介绍,从功耗、成本和集成上,赛灵思SoC的FPGA也拥有更好的优势。 “很多领域,诸如视觉化,GPU使用很多年了,FPGA并不是做不到,不过我们还是会专注在优势的领域,即在封闭空间内做数据移动,而非断断续续的内存上传的情境”,Subh坦言。 不同层面分析FPGA在医疗的应用 能够在医疗领域,兼顾拥有业界领先的AI时延与性能,生命周期延长、高质量、高可靠性、高安全性,实时、确定性控制与接口的仅赛灵思一家。 赛灵思除了提供FPGA和 SoC这样的硬件器件及平台以外,还专门为降低FPGA 开发门槛满足广泛市场应用需求量身定制了Vitis AI统一软件平台。之前笔者也曾多次介绍这款软件平台,算法工程师无需硬件设计经验,也可直接应用算法的实现。 赛灵思的医疗解决方案帮助了Illumina对重症新生儿做基因组分析,为ICU患者和重症患者加速推进eyetech的基于眼球追踪的沟通平板电脑,与迈瑞合作以抗击新冠疫情。FPGA就是在不经意间为声名增添了一份敬畏。 笔者认为,赛灵思的FPGA器件从高性能加速和自适应两方面着手,成为了其在市场立足的最大竞争力。一方面,FPGA、ARM、应用处理器、实时处理器、DSP、AI引擎利用片上系统(SoC)和软件进行高度集成,既增强了算力也增强了应用的扩展性;另一方面,FPGA本身拥有的低延时性,对于时延要求极高的医疗领域可以说是“天生一对”。 从市场上来分析,随着疫情的爆发,医疗设备市场需求持续增加,其中不乏大型数据分析和便携性要求极高的设备,这刚好吻合了FPGA SoC的特点。另一方面,医疗水平的提升和市场马太效应之下,更具能效和低功耗优势的FPGA产品需求量持续增加。 从软件上分析,赛灵思的Vitis平台适用于不同人群,包括熟练掌握HDL语言的硬件工程师,熟练掌握各大编程语言的软件工程师,也适用于熟练掌握TensorFlow、Caffe、PyTorch的算法工程师。利用这种灵活性,可以让许多有创意的初创公司有了施展拳脚的可能。 通过赛灵思的介绍,可以说无论是大型设备还是便携设备,FPGA都有其一席之地。 未来赛灵思医疗创新之路该如何发展?Subh表示,在医疗产品上赛灵思将不断提高集成度并降低封装尺寸,另一方面,将会不断发展异构计算提高效率和性能。  近期热度新闻 【1】三星“特别对待”vivo:进击的5nm手机SoC! 【2】为H3C、腾讯插翅腾飞!intel这次真的让人直呼Yes 【3】 掘金中国代工业!SK海力士把200mm晶圆产线搬到无锡 【1】13款Linux实用工具推荐,个个是神器! 【2】运放电路:同相放大还是反相放大? 【3】 【1】终于整理齐了,电子工程师“设计锦囊”,你值得拥有! 【2】半导体行业的人都在关注这几个公众号 【3】 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3娱乐怎么样?_精彩回顾 | 3D视觉,让所有终端都能看懂世界

本文来源:深圳市物联网产业协会 由深圳市科学技术协会主办,深圳市物联网产业协会承办的以“3D视觉*让所有终端都能看懂世界”为主题的《自主创新大讲堂—星火沙龙之物联网产业大讲堂系列活动(10场)》,在深圳市南山区东方科技大厦22楼成功开讲。现场共吸引了20来位物联网领域专业的技术研发人员前来交流学习。 图丨讲座现场 主讲嘉宾|彭勋禄 本期讲座主讲嘉宾彭勋禄,为奥比中光科技集团股份有限公司高级战略BD总监,是全国智标委标准化技术委员会委员;中国图象图形学会青年工作委员会委员;智慧城市传媒机构的运营管理,安防与智能机器人领域专家;有着十余年安防从业经验,曾任中国智慧城市专家委员会委员,参与国内多个智慧城市顶层规划设计,主持过AI与物联网项目规划、落地工作。 本讲课程,彭总围绕3D视觉与人工智能的关系、3D视觉技术商业化落地实践等主题进行专题分享与讨论。彭总从人工智能的发展讲到“3D视觉与人工智能/5G的关系”,并分别介绍了“双目测距法、TOF时间飞行法、结构光这三种3D视觉成像技术及国际国内发展格局与当下面临的挑战突破”;着重强调并分享了“3D视觉的关键技术和应用领域”。 在课程一开始,彭总就提出“3D视觉到底是什么技术?对我们未来生活、工作会带来哪些改变?在新基建、智能制造、人工智能的风口,传统企业该如何实现技术创新与变革发展?”三个问题,希望嘉宾们在课程中边听边思索。 Part 01 3D视觉概况 紧接着,彭总向大家介绍了“双目测距法、TOF时间飞行法、结构光”三种3D视觉成像技术并分享了“3D传感技术”的国际国内发展格局——光、机、电、芯片、算法、SDK、固件开发等复杂学科交叉融合;光学技术突破,以适应狭小元件空间;满足手机应用在低功耗,维持性能、温度和结构稳定性方面的要求。 在市场空间方面,彭总说,随着2017年苹果率先将基于3D结构光技术的Face ID应用在iPhone X上之后,彻底引爆了3D成像市场。而伴着人工智能和5G的迅速发展,3D感知技术在物联网时代的三维应用中将掀起一股浪潮,据Yole D’developpement最新的预测则显示:2019-2025年3D成像与传感市场规模将从50亿美元增加至150 亿美元,复合增长率仍可超过20%。特别是在消费电子领域,3D成像和传感市场将从2019年的20.17亿美元增长到2025年的81.65亿美元,年复合增长率超过26%。 加之,全球光学产业链向亚洲转移世纪机遇,底层核心技术和下游的应用生态的市场空间更加巨大。 Part 02 3D视觉技术商业化应用实践 在该部分,彭总向大家分享了基于3D感知在消费类电子产品、手机前后置3D视觉应用、智能电视、智能家居、智能投影、新零售新金融、刷脸应用、人体测温、地产-房屋空间三维重建、刑侦-犯罪现场三维实景重建、物流-智能量方手持终端、3D量体-服装定制、三维体征数据、数字商显广告、机器人在工业领域等场景的典型应用案例。 讲座的最后,彭总耐心地解答了参会嘉宾的提问,并与嘉宾们一同探讨了实际应用过程中的问题和困难点,同时给出了相应的参考解决方案或可参考解决方向。 纵观 全场 回顾整场讲座,大部分参与人员表示受益良多,并希望以后有更多机会参加此类活动。 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3平台注册登录_如何将你的Python项目全面自动化?

每个项目——无论你是在从事 Web 应用程序、数据科学还是 AI 开发——都可以从配置良好的 CI/CD、Docker 镜像或一些额外的代码质量工具(如 CodeClimate 或 SonarCloud)中获益。所有这些都是本文要讨论的内容,我们将看看如何将它们添加到 Python 项目中! 在写这篇文章之前,我还写了一篇“Python 项目终极设置”,读者感兴趣的话,可以先读下那一篇:https://martinheinz.dev/blog/14。 GitHub 库中提供了完整的源代码和文档:https://github.com/MartinHeinz/python-project-blueprint。 开发环境中可调试的 Docker 容器 有些人不喜欢 Docker,因为容器很难调试,或者构建镜像需要花很长的时间。那么,就让我们从这里开始,构建适合开发的镜像——构建速度快且易于调试。 为了使镜像易于调试,我们需要一个基础镜像,包括所有调试时可能用到的工具,像bash、vim、netcat、wget、cat、find、grep等。它默认包含很多工具,没有的也很容易安装。这个镜像很笨重,但这不要紧,因为它只用于开发。你可能也注意到了,我选择了非常具体的映像——锁定了 Python 和 Debian 的版本——我是故意这么做的,因为我们希望最小化 Python 或 Debian 版本更新(可能不兼容)导致“破坏”的可能性。 作为替代方案,你也可以使用基于 Alpine 的镜像。然而,这可能会导致一些问题,因为它使用musl libc而不是 Python 所依赖的glibc。所以,如果决定选择这条路线,请记住这一点。至于构建速度,我们将利用多阶段构建以便可以缓存尽可能多的层。通过这种方式,我们可以避免下载诸如gcc之类的依赖项和工具,以及应用程序所需的所有库(来自requirements.txt)。 为了进一步提高速度,我们将从前面提到的python:3.8.1-buster创建自定义基础镜像,这将包括我们需要的所有工具,因为我们无法将下载和安装这些工具所需的步骤缓存到最终的runner镜像中。说的够多了,让我们看看Dockerfile: # dev.DockerfileFROM python:3.8.1-buster AS builderRUN apt-get update && apt-get install -y --no-install-recommends --yes python3-venv gcc libpython3-dev && \    python3 -m venv /venv && \    /venv/bin/pip install --upgrade pipFROM builder AS builder-venvCOPY requirements.txt /requirements.txtRUN /venv/bin/pip install -r /requirements.txtFROM builder-venv AS testerCOPY . /appWORKDIR /appRUN /venv/bin/pytestFROM martinheinz/python-3.8.1-buster-tools:latest AS runnerCOPY --from=tester /venv /venvCOPY --from=tester /app /appWORKDIR /appENTRYPOINT ["/venv/bin/python3", "-m", "blueprint"]USER 1001LABEL name={NAME}LABEL version={VERSION} 从上面可以看到,在创建最后的runner镜像之前,我们要经历 3 个中间镜像。首先是名为builder的镜像,它下载构建最终应用所需的所有必要的库,其中包括gcc和 Python 虚拟环境。安装完成后,它还创建了实际的虚拟环境,供接下来的镜像使用。接下来是build -venv镜像,它将依赖项列表(requirements.txt)复制到镜像中,然后安装它。缓存会用到这个中间镜像,因为我们只希望在requirement .txt更改时安装库,否则我们就使用缓存。 在创建最终镜像之前,我们首先要针对应用程序运行测试。这发生在tester镜像中。我们将源代码复制到镜像中并运行测试。如果测试通过,我们就继续构建runner。 对于runner镜像,我们使用自定义镜像,其中包括一些额外的工具,如vim或netcat,这些功能在正常的 Debian 镜像中是不存在的。 你可以在 Docker Hub 中找到这个镜像:https://hub.docker.com/repository/docker/martinheinz/python-3.8.1-buster-tools 你也可以在base.Dockerfile 中查看其非常简单的`Dockerfile`:https://github.com/MartinHeinz/python-project-blueprint/blob/master/base.Dockerfile 那么,我们在这个最终镜像中要做的是——首先我们从tester镜像中复制虚拟环境,其中包含所有已安装的依赖项,接下来我们复制经过测试的应用程序。现在,我们的镜像中已经有了所有的资源,我们进入应用程序所在的目录,然后设置ENTRYPOINT,以便它在启动镜像时运行我们的应用程序。出于安全原因,我们还将USER设置为1001,因为最佳实践告诉我们,永远不要在root用户下运行容器。最后两行设置镜像标签。它们将在使用make目标运行构建时被替换 / 填充,稍后我们将看到。 针对生产环境优化过的 Docker 容器 当涉及到生产级镜像时,我们会希望确保它们小而安全且速度快。对于这个任务,我个人最喜欢的是来自 Distroless 项目的 Python 镜像。可是,Distroless 是什么呢? 这么说吧——在一个理想的世界里,每个人都可以使用FROM scratch构建他们的镜像,然后作为基础镜像(也就是空镜像)。然而,大多数人不愿意这样做,因为那需要静态链接二进制文件,等等。这就是 Distroless 的用途——它让每个人都可以FROM scratch。 好了,现在让我们具体描述一下 Distroless 是什么。它是由谷歌生成的一组镜像,其中包含应用程序所需的最低条件,这意味着没有 shell、包管理器或任何其他工具,这些工具会使镜像膨胀,干扰安全扫描器(如 CVE),增加建立遵从性的难度。 现在,我们知道我们在干什么了,让我们看看生产环境的Dockerfile……实际上,这里我们不会做太大改变,它只有两行: # prod.Dockerfile#  1. Line - Change builder imageFROM debian:buster-slim AS builder#  ...#  17. Line - Switch to Distroless imageFROM gcr.io/distroless/python3-debian10 AS runner#  ... Rest of the Dockefile 我们需要更改的只是用于构建和运行应用程序的基础镜像!但区别相当大——我们的开发镜像是 1.03GB,而这个只有 103MB,这就是区别!我知道,我已经能听到你说:“但是 Alpine 可以更小!”是的,没错,但是大小没那么重要。你只会在下载 / 上传时注意到镜像的大小,这并不经常发生。当镜像运行时,大小根本不重要。 比大小更重要的是安全性,从这个意义上说,Distroless 肯定更有优势,因为 Alpine(一个很好的替代选项)有很多额外的包,增加了攻击面。关于 Distroless,最后值得一提的是镜像调试。考虑到 Distroless 不包含任何 shell(甚至不包含sh),当你需要调试和查找时,就变得非常棘手。为此,所有 Distroless 镜像都有调试版本。 因此,当遇到问题时,你可以使用debug标记构建生产镜像,并将其与正常镜像一起部署,通过 exec 命令进入镜像并执行(比如说)线程转储。你可以像下面这样使用调试版本的python3镜像: docker run --entrypoint=sh -ti gcr.io/distroless/python3-debian10:debug 所有操作都只需一条命令 所有的Dockerfiles都准备好了,让我们用Makefile实现自动化!我们首先要做的是用 Docker 构建应用程序。为了构建 dev 映像,我们可以执行make build-dev,它运行以下目标: # The binary to build (just the basename).MODULE := blueprint# Where to push the docker image.REGISTRY ?= docker.pkg.github.com/martinheinz/python-project-blueprintIMAGE := $(REGISTRY)/$(MODULE)# This version-strategy uses git tags to set the version stringTAG := $(shell git describe --tags --always --dirty)build-dev: @echo "\n${BLUE}Building Development image with labels:\n" @echo "name: $(MODULE)" @echo "version: $(TAG)${NC}\n" @sed                                 \     -e 's|{NAME}|$(MODULE)|g'        \     -e 's|{VERSION}|$(TAG)|g'        \     dev.Dockerfile | docker build -t $(IMAGE):$(TAG) -f- . 这个目标会构建镜像。它首先会用镜像名和 Tag(运行git describe创建)替换dev.Dockerfile底部的标签,然后运行docker build。 接下来,使用make build-prod VERSION=1.0.0构建生产镜像: build-prod: @echo "\n${BLUE}Building Production image with labels:\n" @echo "name: $(MODULE)" @echo "version: $(VERSION)${NC}\n" @sed                                     \     -e 's|{NAME}|$(MODULE)|g'            \     -e 's|{VERSION}|$(VERSION)|g'        \     prod.Dockerfile | docker build -t $(IMAGE):$(VERSION) -f- . 这个目标与之前的目标非常相似,但是在上面的示例1.0.0中,我们使用作为参数传递的版本而不是git标签作为版本 。当你运行…

摩登3登录_IntelliJ IDEA 超实用技巧分享,不能再全了!

作者:Richard_Yi 来源:segmentfault.com/a/1190000019977265 参考:https://github.com/judasn/IntelliJ-IDEA-Tutorial 前言 工欲善其事 必先利其器 最近受部门的邀请,给入职新人统一培训IDEA,发现有很多新人虽然日常开发使用的是IDEA,但是还是很多好用的技巧没有用到,只是用到一些基本的功能,蛮浪费IDEA这个优秀的IDE。如果你没有激活码,关注公众号Java技术栈回复idea可以阅读正规获取激活码的几种获取方式。 同时,在这次分享之后,本人自己也学习到了一些新的使用技巧,所以借着这次机会,一起分享出来。希望可以帮到一些人。 基于的 IDEA 版本信息:IntelliJ IDEA 2018.2.2 (Ultimate Edition) 知识点概览: 高效率配置 日常使用 必备快捷键() 查找 跳转切换 编码相关 代码阅读相关 版本管理相关 编码效率相关() 文件代码模板 实时代码模板 其他 代码调试 源码阅读相关() 视图模式 代码调试 … 插件方面 插件的安装与使用 插件推荐 参考 高效率配置 1. 代码提示不区分大小写 Settings -> Editor -> General -> Code Completion (低版本 将 Case sensitive completion 设置为 None 就可以了) 2. 自动导包功能及相关优化功能 Settings -> Editor -> General -> Auto Import 3. CTRL + 滑动滚轮 调整窗口显示大小 Settings -> Editor -> General -> Change font size (Zoom) with Ctrl+Mouse wheel 选择之后,就可以通过CTRL+滑动滚轮的方式,调整编辑器窗口的字体大小 4. tab 多行显示 这点因人而异,有些人喜欢直接取消所有tab,改用快捷键的方式,我屏幕比较大,所以喜欢把tab全部显示出来。 Window -> Editor Tabs -> Tabs Placement,取消勾选 Show Tabs In Single Row选项。 效果如下: 5. 代码编辑区显示行号 Settings -> Editor -> General -> Appearance 勾选 Show Line Numbers 6…. 日常使用 必备快捷键() 查找 快捷键 介绍 Ctrl +…