摩登3平台开户_5千字长文+30张图解 | 陪你手撕STL空间配置器源码

1. 前言 天下大事,必作于细。 源码之前,了无秘密。 你清楚下面这几个问题吗? 当你调用 new 和 delete 时编译器底层到底做了哪些工作? STL 各大容器底层空间配置原理是怎样的? STL 空间配置器到底要考虑什么? 什么是内存的配置和释放? … 这篇,我们就来回答这些问题。 2. STL 六大组件 在深入配置器之前,我们有必要了解下 STL 的背景知识: 标准模板库(英文:Standard Template Library,缩写:STL),是一个 C++ 软件库。 STL 的价值在于两个方面,就底层而言,STL 带给我们一套极具实用价值的零部件以及一个整合的组织;除此之外,STL 还带给我们一个高层次的、以泛型思维 (Generic Paradigm) 为基础的、系统化的“软件组件分类学”。 STL 提供六大组件,了解这些为接下来的阅读打下基础。 1、容器(containers):各种数据结构,如 vector, list, deque, set, map 用来存放数据。从实现的角度来看,STL 容器是一种 class template。 2、算法(algorithms):各种常用的算法如 sort, search, copy, erase…从实现角度来看,STL 算法是一种 function template。 3、迭代器(iterators):扮演容器与算法之间的胶合剂,是所谓的“泛型指针”。从实现角度来看,迭代器是一种将 operator *, operator ->, operator++, operator– 等指针相关操作予以重载的class template。 4、仿函数(functors):行为类似函数,可以作为算法的某种策略。从实现角度来看,仿函数是一种重载了 operator() 的 class 或class template。 5、适配器(adapters):一种用来修饰容器或仿函数或迭代器接口的东西。例如 STL 提供的 queue 和 stack,虽然看似容器,其实只能算是一种容器适配器,因为它们的底部完全借助 deque,所有操作都由底层的 deque 供应。 6、配置器(allocator):负责空间配置与管理,从实现角度来看,配置器是一个实现了动态空间配置、空间管理、空间释放的 class template。 初学作图,有点丑,还能看,嘿嘿 3. 何为空间配置器 3.1 为何需要先了解空间配置器? 从使用 STL 层面而言,空间配置器并不需要介绍 ,因为容器底层都给你包装好了,但若是从 STL 实现角度出发,空间配置器是首要理解的。 作为 STL 设计背后的支撑,空间配置器总是在默默地付出着。为什么你可以使用算法来高效地处理数据,为什么你可以对容器进行各种操作,为什么你用迭代器可以遍历空间,这一切的一切,都有“空间配置器”的功劳。 3.2 SGI STL 专属空间配置器 SGI STL 的空间配置器与众不同,且与 STL 标准规范不同。 其名为 alloc,而非 allocator。 虽然 SGI 也配置了 allocatalor,但是它自己并不使用,也不建议我们使用,原因是效率比较感人,因为它只是在基层进行配置/释放空间而已,而且不接受任何参数。 SGI STL 的每一个容器都已经指定缺省的空间配置器是 alloc。 在 C++ 里,当我们调用 new…

摩登3平台登录_鸿蒙OS科普文

“ 本文面向的是开发人员,主要想通过科普让大家了解一下鸿蒙开发。接下来,我想给大家科普一下这个这么火的鸿蒙系统。 到底什么是鸿蒙 OS 在官网上看到鸿蒙 OS 的简介是,分布式能力造就新硬件、新交互、新服务,打开焕然一新的全场景世界。以及发布会提及最多是他的万物互连,全场景,分布式,微内核,软总线。 换句话说,鸿蒙OS 是为全场景,分布式设计的,微内核,软总线是他重要的实现。 对于全场景,分布式理解,我们可以想一下华为自家的多屏协作,以及电脑,平板和手机可以很方便实现在电脑上操作平板,手机。 另外现在双 11 买到的一些新上市家电,上面可以看到鸿蒙的小 Logo,这些带上鸿蒙的家电,可以通过碰一碰无需安装 App 实现配置组网,也十分方便。 在华为开发者大会上,华为也展示了一些精彩的案例。大家有兴趣回头翻一翻。这些都是通过全场景,分布式特性做到的新交互和体验,十分让人期待。 到此应该有一个疑问,如果不用鸿蒙 OS,能不能实现以上交互?多屏协同,多设备协同? 答案是可以的,官方有提到,他们把鸿蒙 OS 一些能力,例如分布式提出来放到 EMUI 上。 我们在华为的开发平台上可以看到一些 kit 和鸿蒙有关的有设备虚拟化、HiCar、HiLink、碰一碰等。 这些 kit 是可以让设备在不上鸿蒙的情况下,实现全场景,分布式。他们做的类似做一个中间层,App 和设备端分别接入这些 kit 的 sdk。 那么和直接用鸿蒙 OS 有什么区别呢?开发会上官方给出了答案,不上鸿蒙也是可以实现的,不过鸿蒙 OS 的性能会更好一点。 聊一下 kit 在聊开发之前,我想聊一下华为提供一些有意思的 kit。 我比较感兴趣的是设备虚拟化能力和碰一碰。 设备虚拟化能力(DeviceVirtualization Engine),是通过虚拟化技术将相关设备或器件打造成手机器件或能力的延伸。 它可以将家中的电视、摄像头和音箱虚拟为手机的屏幕、Camera 和 Mic/Speaker,将穿戴设备作为手机的虚拟 Sensor,实现手机为中心的全场景体验。 此处又应该有疑问,这个设备虚拟化和我们平时用的投屏,蓝牙音箱有什么区别? 灵活性,投屏,蓝牙音箱,蓝牙话筒是实现单一功能设备。用户可以根据需要选择所需的设备。 应用级的,举个例子,可能开会需要,在会议 App 才需要话筒音箱。来电了依然是用手机上的话筒听筒。 可扩展性,,除了常见的多媒体。他这个还支持外接传感器,马达,消息通知等。 碰一碰能力(OneHop Engine)是通过 NFC 来解决 App 跨设备接续难、设备配网难、传输难的问题的一个方案。 他们定义了一些常见的场景下的功能方向以及两种集成方案: 例如,美的电器接入碰一碰可以做到免安装配网。这点十分方便,特别是家有老人。 之前的配网流程起码分成 3 步,安装 App,扫码,配置。而这套方案就只要 3 秒。 应用开发 鸿蒙 OS 目前开放了应用开发和设备开发。应用开发是我们的重头戏,可以为搭载鸿蒙的智慧屏,手表,车机开发应用。 通过华为提供的 DevEco IDE 建立应用开发项目,具体开发步骤有比较多的教程就不细说了。 开发可以使用 Java 和 JS 语言。Java 开发的话,跟 Android 开发差不多。 这里注意的是通过 JS 开发的话,但是通过 Htm 并非 html 来写 UI。在语法上类似 vue。 JS 引擎是 JerryScript,能够在内存少于 64KB 的设备上执行 ECMAScript 5.1 源代码。 那实际上下面要提到的设备开发逻辑是也可以部分用 JS 实现的。不过官方文档比较少,也没有 demo 提供。但个 js runtime 是可以作为组件一起编译烧录的。 应用开发中,我比较感兴趣的是跨设备调用,下面这个例子是从智慧屏 App 上调用其他设备页面的。 这里可以看到优点十分明显,在这里我们开发无需关心通信,以及传输安全问题。 在智慧屏上这么写,在手表上也是这么写。也就是他们说的一次开发多端部署,提供成熟方案,不用放更多精力在安全机制,组网连接和基础通信上。聚焦业务,快速完成原型开发。 但也有一些约束与限制: 支持主设备侧远程启动从设备侧 FA,不支持从设备远程启动主设备 FA。…

摩登3新闻554258:_华为桌面一体机曝光:四种形态 超薄设计

企查查APP显示,华为技术有限公司于12月25日授权公开了四项“桌面一体机”专利信息。 专利公开号分别为CN306249026S、CN306249027S、CN306249028S、CN306249030S。 四向专利对应了四种桌面一体机的形态,全部超薄设计。专利介绍中称,这些外观设计产品用于视频会议与信息交互等功能。 本外观设计产品的设计要点:在于形状。有的采用45度弯角底座,有的采用支架设计,有的则是直上直下的底座。 这些一体机的散热孔位置也不一样,有的在背部,有的在侧面。 当然,这些只是华为申请的专利,实机到底采用哪种设计方案还要看华为的最终拍板,大家觉得哪款好看呢? 前不久,华为面向企业用户发布首款商用台式机MateStation B515,搭载AMD锐龙处理器,8GB+1TB、8GB+256GB两个版本,售价分别为4498元、4598元。 其最大的特色是支持华为多屏协同功能,配套键盘内置了NFC,支持手机电脑一碰即连。手机贴到Shift区域,即可把手机屏幕镜像到显示器上,支持双向拖拽,文件互传。 END 来源:快科技 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册网址_英威腾电源荣获“助力新基建优秀产品奖”

近日,由北京电子学会计算机委员会、中国绿色数据中心推进联盟主办的“区块链技术与数字经济发展峰会暨2020智能数据中心建设与运营论坛”在北京顺利召开。为了表彰在新基建时代中提供优秀的技术、产品、方案的行业厂商,本届大会组委会举办了“助力新基建奖项”系列评选活动。 英威腾模块化UPS电源产品凭借优秀的性能指标和良好的市场推广,荣获“2019-2020年度助力新基建优秀产品奖”。 随着国家新基建大潮涌起,数据中心责任愈重,并迎来爆发式增长。2020年英威腾电源借此良好契机,积极进行数字化转型推进和新基建战略部署,曾先后助力国家税务总局与河南税务局进行一体化、标准化、智能化网点改造建设;助力河北高速公路“新基建”,成功为其配电自动化UPS电源改造提供产品及服务等;推出微模块配套UPS解决方案。 英威腾电源始终秉承“以市场为导向,以客户为中心”的经营方针,竭尽全力提供物超所值的产品和服务,让客户更有竞争力。在微模块数据中心产品线方面,英威腾电源践行绿色发展理念,针对微型、小型、中大型分别推出了英智、威智、腾智3款不同的应用方案。 各大应用方案从子系统到整体架构的设计皆采用标准化、模块化设计,同时联合应用封闭冷热通道、模块化UPS、列间制冷、自然冷却联动等节能技术,实现绿色、节能、高效运营。在此智能数据中心建设产业发展的大好时机,努力实现“成为全球领先、受人尊敬的工业自动化和能源电力领域的产品和服务提供者”的企业愿景。

摩登3注册平台官网_如何增强汽车设备安全性?

ISO 26262等国际标准强调,“功能安全”的概念对于“在与安全有关的功能和部件发生故障时确保系统安全”至关重要。功能安全要求安装用于检测部件异常等问题的机制(安全装置)将风险降低到可接受的风险水平。 图片来源:iso.org 在这个前提上看看WDT (Watch Dog Timer) 看门狗定时器怎样协助提升“功能安全”。 首先,我们先从什么是看门狗定时器(WDT)入手。 1. 什么是看门狗定时器(WDT)? 看门狗定时器(WDT)是监视微型计算机(MCU)程序是否失控或已停止运行的计时器。它充当监视 MCU 操作的“看门狗”。 微型计算机(MCU)是用于控制电子设备的小型处理器。MCU 安装到各种电子设备中,预装有程序软件,通过运行这些程序来控制电子设备的动作。 如因某种塬因,MCU 程序失控或完全停止运行,电子设备则可能会出现预想不到的动作,在最坏的情况下可能导致损坏或事故。 为了主动防止此类事件,看门狗定时器的作用在于不断监视 MCU 以确保其正常工作。 看门狗定时器功能可以内置在 MCU 内部,但是在这里,我们将介绍“外置”看门狗定时器,这种构成可以得到更高的安全性。 2. WDT 运行:检测 MCU 异常 看门狗定时器以设定的时间间隔与 MCU 通信。如果在一定的期间内没有收到来自 MCU 的输入信号/输入的信号过多或输入信号与预定模式不同,定时器则判定 MCU 发生异常,并向 MCU 发送复位信号。 WDT 使用多种方法(模式)来检测 MCU 异常,并且它能检测到的异常类型会随模式而异。以下是 WDT 动作和特点描述(按模式分类)。 ● 超时模式 在此模式下,如果在设定的时间间隔内未收到来自 MCU 的信号,看门狗定时器判定 MCU 发生异常,并输出复位信号。 超时模式是最普遍的 WDT 监视模式或方法,但有时无法检测到 MCU 异常。 在超时模式下,如果 MCU 在设定的时间内输出多个信号(=双脉冲),WDT 则不会检测到 MCU 异常。 ● 窗口模式 与超时模式相比,窗口模式可以更准确地检测异常。 在窗口模式下,如果在设定的时间间隔内未接收到信号或从 MCU 接收到多个信号(=双脉冲),看门狗定时器会判定 MCU 处于异常状态,并输出复位信号。 可以说窗口模式的看门狗定时器更适合于要求更高安全性的应用,例如车载设备。 ● Q&A 模式 Q&A 模式比前两种模式能够更准确地检测出异常。 在 Q&A 模式下,MCU 将预定数据输出到 WDT。 WDT 根据 MCU 输出的信号是否与预定数据匹配来确定 MCU 是否正常工作。 极高安全要求的设备可能需要 Q&A 模式的 WDT。但是与窗口和超时模式不同,此模式依赖于 MCU 和 WDT 之间的数据通信,使操作更加复杂。 对 WDT 有了概念!决定选择哪种 WDT 之前应考虑的要点。 3. 选择 WDT 的方法 是否需要“外置” WDT?通常 MCU 本身亦搭载有用于检测 MCU 异常的 WDT 功能。为什么在 MCU 已经内置有 WDT 的基础上还需要外置 WDT? 塬因是外置 WDT 为关键系统增加了额外的安全性。…

摩登3登录网站_工程师必看!PCB布线20问

1. 高频信号布线时要注意哪些问题? 信号线的阻抗匹配;与其他信号线的空间隔离;对于数字高频信号,差分线效果会更好。 2. 在布板时,如果线密,孔就可能要多,当然就会影响板子的电气性能,怎样提高板子的电气性能? 对于低频信号,过孔不要紧,高频信号尽量减少过孔。如果线多可以考虑多层板。 3. 是不是板子上加的去耦电容越多越好? 去耦电容需要在合适的位置加合适的值。例如,在模拟器件的供电端口就需要加,并且需要用不同的电容值去滤除不同频率的杂散信号。 4. 一个好的板子它的标准是什么? 布局合理、电源线功率冗余度足够、高频阻抗、低频走线简洁。 5. 通孔和盲孔对信号的差异影响有多大?应用的原则是什么? 采用盲孔或埋孔是提高多层板密度、减少层数和板面尺寸的有效方法,并大大减少了镀覆通孔的数量。 但相比较而言,通孔在工艺上好实现,成本较低,所以一般设计中都使用通孔。 6. 在涉及模拟数字混合系统的时候,有人建议电层分割,地平面采取整片敷铜,也有人建议电地层都分割,不同的地在电源端点接,但是这样对信号的回流路径就远了,具体应用时应如何选择合适的方法? 如果有高频>20MHz信号线,并且长度和数量都比较多,那么需要至少两层给这个模拟高频信号。一层信号线,一层大面积地,并且信号线层需要打足够的过孔到地。这样的目的是: 对于模拟信号,这提供了一个完整的传输介质和阻抗匹配; 地平面把模拟信号和其他数字信号进行隔离; 地回路足够小,因为你打了很多过孔,地又是一个大平面。 7. 在电路板中,信号输入插件在PCB最左边沿,MCU在靠右边,那么在布局时是把稳压电源芯片放置在源靠近接插件(电源 IC输出5V经过一段比较长的路径才到达MCU),还是把电源IC放置到中间偏右(电源IC的输出5V的线到达MCU就比较短,但输入电源段线就经过比较长一段PCB板)?或是有更好的布局? 首先信号输入插件是否是模拟器件?如果是模拟器件,建议电源布局应尽量不影响到模拟部分的信号完整性。因此有几点需要考虑: 首先稳压电源芯片是否是比较干净,纹波小的电源?模拟部分的供电,对电源的要求比较高; 模拟部分和MCU是否是一个电源,在高精度电路的设计中,建议把模拟部分和数字部分的电源分开; 对数字部分的供电需要考虑到尽量减小对模拟电路部分的影响。 8. 在高速信号链的应用中,对于多ASIC都存在模拟地和数字地,究竟是采用地分割,还是不分割地?既有准则是什么?哪种效果更好? 迄今为止没有定论。一般情况下可以查阅芯片的手册。ADI所有混合芯片的手册中都是推荐你一种接地的方案,有些是推荐共地、有些是建议隔离地,这取决于芯片设计。 9. 何时要考虑线的等长?如果要考虑使用等长线的话,两根信号线之间的长度之差最大不能超过多少?如何计算? 差分线计算思路:如果传一个正弦信号,长度差等于它传输波长的一半,相位差就是180度,这时两个信号就完全抵消了。所以这时的长度差是最大值。以此类推,信号线差值一定要小于这个值。 10. 高速中的蛇形走线,适合在哪种情况?有什么缺点没?比如对于差分走线,又要求两组信号是正交的。 蛇形走线,因为应用场合不同而具有不同的作用:如果蛇形走线在计算机板中出现,其主要起到一个滤波电感和阻抗匹配的作用,用于提高电路的抗干扰能力。计算机主机板中的蛇形走线,主要用在一些时钟信号中,如PCI-Clk、AGPCIK、IDE、DIMM等信号线。 若在一般普通PCB板中,除了具有滤波电感的作用外,还可作为收音机天线的电感线圈等等。如2.4G的对讲机中就用作电感。 对一些信号布线长度要求必须严格等长,高速数字PCB板的等线长是为了使各信号的延迟差保持在一个范围内,保证系统在同一周期内读取的数据的有效性(延迟差超过一个时钟周期时会错读下一周期的数据)。如INTELHUB架构中的HUBLink,一共13根,使用233MHz的频率,要求必须严格等长,以消除时滞造成的隐患,绕线是惟一的解决办法。一般要求延迟差不超过1/4时钟周期,单位长度的线延迟差也是固定的,延迟跟线宽、线长、铜厚、板层结构有关,但线过长会增大分布电容和分布电感,使信号质量有所下降。所以时钟 IC引脚一般都接端接,但蛇形走线并非起电感的作用。相反地,电感会使信号中的上升沿中的高次谐波相移,造成信号质量恶化,所以要求蛇形线间距最少是线宽的两倍。信号的上升时间越小,就越易受分布电容和分布电感的影响。 蛇形走线在某些特殊的电路中起到一个分布参数的LC滤波器的作用。 11. 在设计PCB时,如何考虑电磁兼容性EMC/EMI,具体需要考虑哪些方面?采取哪些措施? EMI/EMC设计必须一开始布局时就要考虑到器件的位置,PCB叠层的安排,重要联机的走法, 器件的选择等。例如时钟发生器的位置尽量不要靠近对外的连接器,高速信号尽量走内层并注意特性阻抗匹配与参考层的连续以减少反射,器件所推的信号之斜率(slew rate)尽量小以降低高频成分,选择去耦合(decoupling/bypass)电容时注意其频率响应是否符合需求以降低电源层噪声。另外,注意高频信号电流之回流路径使其回路面积尽量小(也就是回路阻抗loop impedance尽量小)以减少辐射。还可以用分割地层的方式以控制高频噪声的范围。 最后,适当的选择PCB与外壳的接地点(chassis ground)。 12. 请问射频宽带电路PCB的传输线设计有何需要注意的地方?传输线的地孔如何设置比较合适,阻抗匹配是需要自己设计还是要和PCB加工厂家合作? 这个问题要考虑很多因素。比如PCB材料的各种参数,根据这些参数最后建立的传输线模型,器件的参数等。阻抗匹配一般要根据厂家提供的资料来设计。 13. 在模拟电路和数字电路并存的时候,如一半是FPGA或单片机数字电路部分,另一半是DAC和相关放大器的模拟电路部分。各种电压值的电源较多,遇到数模双方电路都要用到的电压值的电源,是否可以用共同的电源,在布线和磁珠布置上有什么技巧? 一般不建议这样使用,这样使用会比较复杂,也很难调试。 14. 在进行高速多层PCB设计时,关于电阻电容等器件的封装的选择的,主要依据是什么?常用哪些封装,能否举几个例子。 0402是手机常用;0603是一般高速信号的模块常用;依据是封装越小寄生参数越小,当然不同厂家的相同封装在高频性能上有很大差异。建议你在关键的位置使用高频专用元件。 15. 一般在设计中双面板是先走信号线还是先走地线? 这个要综合考虑。在首先考虑布局的情况下,考虑走线。 16. 在进行高速多层PCB设计时,最应该注意的问题是什么?能否做详细说明问题的解决方案。 最应该注意的是设计,就是信号线、电源线、地、控制线这些你是如何划分在每个层的。一般的原则是模拟信号和模拟信号地至少要保证单独的一层。电源也建议用单独一层。 17. 请问具体何时用2层板,4层板,6层板?在技术上有没有严格的限制(除去体积原因)?是以CPU的频率为准还是其和外部器件数据交互的频率为准? 采用多层板首先可以提供完整的地平面,另外可以提供更多的信号层,方便走线。对于CPU要去控制外部存储器件的应用,应以交互的频率为考虑,如果频率较高,完整的地平面是一定要保证的,此外信号线最好要保持等长。 18. PCB布线对模拟信号传输的影响如何分析,如何区分信号传输过程中引入的噪声是布线导致还是运放器件导致? 这个很难区分,只能通过PCB布线来尽量避免布线引入额外噪声。 19. 对高速多层PCB来说,电源线、地线与信号线的线宽设置为多少是合适的,常用设置是怎样的,能举例说明吗?例如工作频率在300Mhz的时候该怎么设置? 300MHz的信号一定要做阻抗仿真计算出线宽和线和地的距离;电源线需要根据电流的大小决定线宽,在混合信号PCB的时候一般就不用”线”来表示地了,而是用整个平面,这样才能保证回路电阻最小,并且信号线下面有一个完整的平面。 20. 怎样的布局才能达到最好的散热效果? PCB中热量的来源主要有三个方面:电子元器件的发热;PCB本身的发热;其它部分传来的热。 在这三个热源中,元器件的发热量最大,是主要热源,其次是PCB板产生的热,外部传入的热量取决于系统的总体热设计,暂时不做考虑。 那么热设计的目的是采取适当的措施和方法降低元器件的温度和PCB板的温度,使系统在合适的温度下正常工作。主要是通过减小发热,和加快散热来实现。 END 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册网站_为什么大家都看好RISC-V?

来源 | 半导体行业观察 微信公众号 | 嵌入式专栏 自RISC和CISC战争在1990年代后期爆发以来,人们就宣称RISC和CISC不再重要。许多人会指出指令集是无关紧要的。 但是指令集其实很重要,因为他们限制了可以轻松添加到微处理器的优化类型。 作者最近一直在学习有关RISC-V指令集体系结构(ISA)的更多信息,以下是作者对RISC-V ISA最印象深刻的一些方面: 1.这是一个RISC指令集,它很小且易于学习(基础为47个)。对于任何对学习微处理器感兴趣的人都非常友好。 2.大学中用于数字设计教学的主导架构。 3.它经过精心设计,可让CPU制造商使用RISC-V ISA创建高性能微处理器。 4.无需授权费,并且被设计为允许简单的硬件实现,那么专业的业余爱好者原则上就可以在合理的时间内进行自己的RISC-V CPU设计。 5.易于修改和使用的开源设计。 一、RISC的复仇 正如我开始了解RISC-V的好,我认识到,RISC-V其实是一个根本性的转,因为它让我们回到了那个好多人认为已经过去的计算时代。在设计方面,RISC-V就好像回到了上世纪八九十年代的经典RISC 时代。 在随后的几年中,许多人指出RISC和CISC的区别不再重要,因为像ARM这样的RISC CPU添加了很多指令,许多指令相当复杂,以至于今天它比纯RISC CPU更像是一种混合。对于其他RISC CPU(例如PowerPC)也有类似的看法。 相比之下,RISC-V则是RISC CPU中的硬核。实际上,如果您阅读有关RISC-V的讨论,您会发现有人声称RISC-V是由一些拒绝与时俱进的老派RISC激进分子制造的。 前ARM工程师Erin Shepherd几年前 对RISC-V 发表了有趣的 评论 : RISC-V ISA追求极简主义,这是一个错误。因为他们过分强调了最小化指令数量,规范化编码等。这种极简主义的追求导致错误的正交性(例如将相同的指令重新用于分支,调用和返回),并且需要多余的指令,这会影响代码密度。指令的大小和数量。 让我快速介绍一下。保持较小的代码对性能有利,因为这样可以更轻松地将正在运行的代码保持在高速CPU缓存中。 这里的批评是RISC-V设计师过于关注使用小的指令集。这毕竟是最初的RISC目标之一。 这样声称的结果是,一个现实的程序将需要更多的指令来完成工作,从而占用更多的内存空间。 多年以来的传统常识是,RISC处理器应添加更多指令并变得更像CISC。这个想法是,更专业的指令可以代替多个通用指令的使用。 二、压缩指令和宏操作融合 但是,CPU设计中特别存在两项创新,这些创新从许多方面使添加更多复杂指令的策略变得多余: 压缩指令-指令在内存中进行压缩,并在CPU的第一阶段进行解压缩。 宏操作融合-将CPU读取的两个或更多简单指令融合为一个复杂指令。 ARM实际上已经采用了这两种策略,而x86 CPU则采用了后者,因此这并不是RISC-V的新招。 但是,这里有一个关键点:RISC-V从这些策略中获得了更大的优势,其原因有两个: 1.从一开始就添加了压缩指令。ARM上使用的Thumb2压缩指令格式必须通过将其添加为单独的ISA进行改进。这需要一个内部模式开关和单独的解码器来处理。但在RISC-V方面,压缩指令可以添加到带有最少400个额外逻辑门(AND,OR,NOR,NAND门)的CPU中。 2.RISC对保持唯一指令数量低的痴迷得到了回报。压缩指令带来更多空间。 三、指令编码 后一部分需要一些阐述。在RISC架构上,指令通常为32位宽。这些位需要用于编码不同的信息。例如,假设有一条这样的指令(hash marks comments): ADD x1,x4,x8#x1←x4 + x8 这的注册内容x4和x8结果存储到x1。我们需要对此进行编码的位数取决于我们拥有的寄存器数量。RISC-V和ARM64具有32个寄存器。数字32可以用5位表示: 2^5= 32 由于必须指定3个不同的寄存器,因此总共需要15位(3×5)来编码操作数(用于加法运算的输入)。 因此如果我们希望在我们的指令集支持更多的东西,那么我们小号消耗的32bit位数越多。当然,我们可以使用64位指令,但这将消耗过多的内存,从而降低性能。 通过积极降低指令数量,RISC-V留出了更多空间来添加表示我们正在使用压缩指令的位。如果CPU看到指令中的某些位被设置,则知道应该将其解释为压缩指令。 四、压缩指令:二合一 这意味着,我们可以将两条16位宽的指令放入32位字中,而不必在32位字中插入一条指令。自然,并非所有的RISC-V指令都可以16位格式表示。因此,根据32位指令的效用和使用频率来选择它们的子集。未压缩的指令可以使用3个操作数(输入),而压缩的指令只能使用2个操作数。因此,压缩ADD指令如下所示: C.ADD x4,x8#x4←x4 + x8 RISC-V汇编使用C.前缀来指示汇编器应将指令转换为压缩指令。但是实际上您不需要编写此代码。如果适用,RISC-V汇编程序将能够选择未压缩指令而不是未压缩指令。 基本上压缩的指令减少了操作数的数量。三个寄存器操作数将消耗15位,而只剩下1位来指定操作!因此,通过使用两个操作数,我们剩下了6位来指定操作码(执行操作)。 实际上,这与x86汇编的工作方式非常接近,在x86汇编中,保留的位数不足以拥有3个寄存器操作数。取而代之的是,x86会花费一些位来允许例如一条ADD指令从存储器和寄存器中读取输入。 五、宏操作融合:一对一 但是,当我们将指令压缩与宏操作融合相结合时,我们才能看到真正的收获。你看,如果CPU得到包含两个压缩的16位指令的32位字,它可以融合这些成一个单一的复杂指令。 听起来像胡说八道,难道我们不是刚回到起点吗?我们不是要避免使用CISC样式的CPU吗? 不会,因为我们避免使用很多复杂的指令,x86和ARM策略来填充ISA规范。相反,我们基本上是通过简单指令的各种组合间接地表达大量复杂指令。 在正常情况下,宏融合存在一个问题:尽管两条指令可以被一条指令代替,但它们仍然消耗两倍的内存空间。但是通过指令压缩,我们不再消耗更多空间。我们两全其美。 让我们看一下Erin Shepherd的例子之一。在对RISC-V ISA的批评中,她展示了一个简单的C函数。为了清楚起见,我重写了一下: int get_index(int * array,int i){ return array [i]; } 在x86上,它将编译为: mov eax,[rdi + rsi * 4] ret 当您以编程语言调用函数时,通常会根据已建立的约定将参数传递给寄存器中的函数,这取决于所使用的指令集。在x86上,第一个参数放置在rdi寄存器,中第二个参数放置在中rsi寄存器中。按照惯例,返回值必须放在eax寄存器中。 第一条指令将rsi中的内容乘以4。它包含我们的i变量。为什么要相乘?由于array都是由整数元素组成,因此它们之间的间隔为4个字节。因此,数组中的第三个元素实际上处于字节偏移量3×4 = 12。 之后,我们将其添加到rdi中,因为它包含了array的基础地址地址。这为我们提供了array中i元素的最终地址。我们读存储单元的内容,并将其存储在eax,任务就此完成了。 在ARM上,它非常相似: LDR r0,[r0,r1,lsl#2] BX lr; return 在这里,我们不是与4相乘,而是r1寄存器向左移动2位,这等同于与4相乘。这可能也是x86代码中发生情况的更真实的表示。在x86上,您只能乘以2、4或8,所有这些都可以通过左移1、2或3来执行。 无论如何,您几乎可以从我的x86描述中猜测其余的内容。现在让我们进入RISC-V,真正的乐趣开始了!(hash starts comments) SLLI a1,a1,2#a1←a1 << 2 ADD a0,a0,a1#a0←a0 + a1 LW a0,a0,0#a0←[a0 + 0] RET…

摩登三1960_电机、 电源等多条电路的接线方法

来源 | EDA365 微信公众号 | 嵌入式专栏 想知道哪些电路都是工程师日常工作经常会遇到,但是可能会做不好的吗?以下分享10+年电工常用的41例接线方法,都是经过实践项目验证,并且可以直接拿来使用,一起来看下吧! 1. 电动机接线 一般常用三相交流电动机接线架上都引出6个接线柱,当电动机铭牌上标为Y形接法时,D6、D4、D5相连接,D1~D3接电源;为△形接法时,D6与D1连接,D4与D2连接,D5与D3连接,然后D1~D3接电源。可参见图1所示连接方法连接。 图1 三相交流电动机Y形和△形接线方法 2. 三相吹风机接线 有部分三相吹风机有6个接线端子,接线方法如图2所示。采用△形接法应接入220V三相交流电源,采用Y形接法应接入380V三相交流电源。一般3英寸、3.5英寸、4英寸、4.5英寸的型号按此法接。其他吹风机应按其铭牌上所标的接法连接。 图2 三相吹风机六个引出端子接线方法 3. 单相电容运转电动机接线 单相电动机接线方法很多,如果不按要求接线,就会有烧坏电动机的可能。因此在接线时,一定要看清铭牌上注明的接线方法。 图247为IDD5032型单相电容运转电动机接线方法。其功率为60W,电容选用耐压500V、容量为4μF的产品。图3(a)为正转接线,图3(b)为反转接线。 图3 IDD5032型单相电容运转电动机接线方法 4. 单相电容运转电动机接线 图4  JX07A-4型单相电容运转电动机接线方法 图4是JX07A-4型单相电容运转电动机接线方法。电动机功率为60W,用220V/50Hz交流电源、电流为0.5A。它的转速为每分钟1400转。电容选用耐压400~500V、容量8μF的产品。图4(a)为正转接线,图4(b)为反转接线。 5. 单相吹风机接线 图5 单相吹风机四个引出端子接线方法 有的单相吹风机引出4个接线端子,接线方法如图5所示。采用并联接法应接入110V交流电源,采用串联接法应接入220V交流电源。 6. Y100LY系列电动机接线 目前,Y系列电动机被广泛应用。Y系列电动机具有体积小、外形美观、节电等优点。它的接线方式有两种:一种为△形,它的接线端子W2与U1相连,U2与V1相连,V2与W1相连,然后接电源;另一种为Y形,接线端子W2、U2、V2相连接,其余3个接线端子U1、V1、W1接电源。接线见图6。 图6 Y100LY系列电动机接线方法 7. 低压变压器短路保护线路 目前,机床的工作灯、行灯都采用低压变压器提供36V安全电压,由于灯具在使用中经常移动,极易发生短路故障,造成熔断器熔断甚至烧坏变压器。如果使用36V小型中间继电器或36V交流接触器做变压器的通断开关,可避免烧坏变压器。线路如图7所示。 图7 低压变压器短路保护线路 工作原理:闭合S后,按下按钮SB1,变压器得电输出36V低电压,使得继电器或交流接触器KA吸合。放松按钮SB1后,KA自锁触点使KA保持吸合,继续给变压器接通电源。如果变压器次级发生短路故障,继电器线圈电压为零,此时KA便失电释放,将变压器电源断开,保护变压器不被破坏。 8. 双速电动机2Y/2Y接线方法 图8所示是2Y/2Y电动机双速定子线组的引出线接线方法。 按图8(a)连接是一种转速,按图8(b)连接得到另一种转速。 图8 双速电动机2Y/2Y接线方法 9. 直流电磁铁快速退磁线路 直流电磁铁停电后,因有剩磁存在,有时会造成不良后果。因此,必须设法消除剩磁。图9中,YA是直流电磁铁线圈,KM是控制YA启停的接触器。KM吸合时,YA通电励磁;KM复位时,YA断直流电,并进行快速退磁。 快速退磁的工作原理是:直流电磁铁断电后,交流电源通过桥式整流器和YA向电容C充电,随着电容C两端电压的不断升高,充电电流越来越小,而通过YA的电流又是交变的,从而使电磁铁快速退磁。电容C的容量要根据电磁铁的实际情况现场试验决定。R为放电电阻。 10. 防止制动电磁铁延时释放线路 采用交流电磁铁制动的三相异步电动机有时会因制动电磁铁延时释放,造成制动失灵。造成电磁铁延时释放的原因是接触器的主回路电源虽被切断,但电动机由于剩磁存在,定子绕组产生感应电动势加在交流电磁铁上,使电磁铁不会立即释放。解决方法很简单,只要在交流电磁铁线圈上串入一个交流接触器常开触点,使得断开电动机电源的同时断开电磁铁与电动机绕组线圈,即可使电磁铁立即释放。线路参见图10。 线路中YA为制动电磁铁,在通电后,制动解除;在断电后,YA立即制动。 图10 防止制动电磁铁延时释放线路 11. 他励直流电动机失磁保护线路 他励直流电动机励磁电路如果断开,会引起电动机超速,产生严重不良后果,因此需要进行失磁保护。 在励磁电路内,串联一个欠电流继电器KI,其常开触点接在控制电路中。当励磁电流消失或减小到设定值时,KI释放,KI常开触点断开,切断电动机电枢电源,使电动机停转,从而避免超速现象发生,见图11。 图11 他励直流电动机失磁保护线路 12. 缺辅助触点的交流接触器应急接线 当交流接触器的辅助触点损坏无法修复而又急需使用时,采用图12中所示的接线方法,可满足应急使用要求。按下SB1,交流接触器KM吸合。放松按钮SB1后,KM的触点兼作自锁触点,使接触器自锁,因此KM仍保持吸合。 图中SB2为停止按钮,在停止时,按动SB2的时间要长一点。否则,手松开按钮后,接触器又吸合,使电动机继续运行。这是因为电源电压虽被切断,但由于惯性的作用,电动机转子仍然转动,其定子绕组会产生感应电动势,一旦停止按钮很快复位,感应电动势直接加在接触器线圈上,使其再次吸合,电动机继续运转。 接触器线圈电压为380V时,可按图12(a)所示接线;接触器线圈电压为220V时,可按图12(b)接线。图12(a)的接线还有缺陷,即在电动机停转时,其引出线及电动机带电,使维修不大安全。因此,这种线路只能在应急时采用,并在维修电动机时,应断开控制电动机的总电源开关QS,这一点应特别注意。 图12 缺辅助触点的交流接触器应急接线 13. 加密的电动机控制线路 图13 加密的电动机控制线路 为防止误操作电气设备,并防止非操作人员启动某些设备开关按钮,可采用加密的电动机控制线路,如图13所示。操作时,首先按下SB1按钮,确认无误后,再同时按下加密按钮SB3,这样控制回路才能接通,KM线圈才能吸合,电动机M才能转动起来。而非操作人员不知其中加密按钮(加密按钮装在隐蔽处),故不能操作此设备开关。 14. 交流接触器低电压启动线路 当供电电压在交流接触器吸引线圈额定电压的85%以下时,启动接触器衔铁将跳动不止,不能可靠吸合,在交流接触器的控制回路中串联一只整流管,改为直流启动交流运行,就可以避免上述问题。交流接触器低电压启动线路如图14所示。按下按钮SB1,经二极管VD半波整流的直流电压加在交流接触器KM线圈上,KM吸合。其辅助触点将二极管VD短接,交流接触器投入交流运行。 图14 交流接触器低电压启动线路 因为启动电流较大,所以这种线路只适用于操作不频繁的场合。线路中,VD应选用耐压大于700V的二极管,电流要根据交流接触器线圈电流而定。 15. HF-4-81系列发电机控制线路 图15 HF-4-81系列发电机控制线路 HF-4-81系列发电机控制线路如图15所示,它与T2XV系列小型三相同步发电机配套。同步发电机的励磁系统采用电复合相复励调压。发电机端电压经线性电抗器L移相,然后与发电机负荷电路中的电流互感器5TA~7TA二次电压合成,经三相桥式整流器整流后,供发电机GS励磁自动调压。 16. 单相电容电动机线路 单相电容电动机启动转矩大,启动电流小,功率因数高,广泛应用于家用电器中,如电风扇、洗衣机。为了便于维修安装,现介绍这种电动机常用的接线方法。 图16(a)为可逆控制线路,操纵开关S2,可改变电动机的转向,该线路一般用于家用洗衣机上。 图16(b)为带辅助绕组的接线线路,拨动开关S,可改变辅助绕组的抽头,即改变主绕组的实际承受电压,从而改变电动机的转速,此接线方法常用于电风扇上。 图16(c)为带电抗器调速的电容电动机接线线路。由于电抗器绕组(其在线路中起到降压作用)的串入,调节电抗器绕组的串入量,即可改变转速。这种方法目前广泛应用在家用电风扇线路中。在启动电动机时一般先拨到“1”挡上,即为高挡,这时电抗器不接入线路,使电动机在全压下启动,然后再拨“2”挡或任何挡来调节电动机转速。 图16 单相电容电动机线路 17. 混凝土搅拌机线路 锥型JZ350型搅拌机线路如图17所示,工作原理是当把水泥、砂子、石子配好料后,操作人员按下按钮2SBF后,2KMF接触器线圈得电吸合,使上料卷扬电动机2M正转,料斗送料起升。当升到一定高度后,料斗挡铁碰撞行程开关1SQ和2SQ,使2KMF断电释放。这时料斗已升到预定位置,把料自动倒到搅拌机内,并自动停止上升。 此时操作人员按下下降按钮2SBR时,卷扬系统带动料斗下降,待下降到其料口与地面平齐时,挡铁碰撞行程开关3SQ,使2KMR接触器断电释放,自动停止下降,为下次上料做好准备,这时搅拌机料已备好,操作人员再按下3SB1,3KM接触器得电吸合,使供水抽水泵电动机3M运转,向搅拌机内供水,与此同时,时间继电器KT得电工作,待供水与原料成比例后(供水时间由KT时间继电器调整确定,根据原料与水的配比确定),KT动作延时结束,从而使3KM自动释放,供水停止。 加水完毕即可实施搅拌。按下1SBF正转按钮,1KMF得电吸合,1M正转搅拌,搅拌完毕后按下1SB停止按钮即可停止。出料时,按下1SBR按钮,1M反转即可把混凝土泥浆自动搅拌出来。然后按下1SB,接触器1KMR断电释放,1M停转,出料停止。 图17 混凝土搅拌机线路 18. 自制实用的绝缘检测器 图18所示是自制的绝缘检测器线路,它既可用作线路绝缘监视,又可代替兆欧表检查电机、测电器的绝缘电阻。当合上隔离开关QS,在相电压作用下,整个绕组和接地外壳之间的泄漏电流流过绝缘层和电阻R1、R2。如果绝缘电阻合乎标准(即绝缘电阻值大于0.5MΩ),则泄漏电流很小时,在R2上的电压降小于氖泡的点燃电压,Ne不亮;当任意两相或三相同时对机壳的绝缘电阻降低时,泄漏电流大增,使氖泡Ne点燃,从而可判定绝缘不合格。 图18 自制实用的绝缘检测器 19. 三相异步电动机改为单相运行线路 如果只有单相电源和三相异步电动机供使用,可采用并联电容的方法使三相异步电动机改为单相运行。 如图19所示:图(a)为Y形接法电动机连接方法,图(b)为△形接法电动机连接方法。为了提高启动转矩,将启动电容CQ在启动时接入线路中,在启动完毕后退出。 工作电容CG容量的计算公式: CG=1950I/Ucosφ(μF) 式中:I为电动机额定电流;U为单相电源电压;cosφ为电动机的功率因数。当计算出工作电容后,启动电容选用工作电容的1~4倍。 图19 三相异步电动机改为单相运行线路 20. 热继电器校验台 热继电器在长期通电过程中易出现热老化现象,使其动作特性改变。要保持特性的一致性和稳定性,一个最重要的措施就是对热继电器进行定期校验。 热继电器校验台如图20所示,它主要由调压器TV、降压变压器T、电位器RP、410型毫秒表等元件组成。 三相双金属片(热继电器FR)应串联起来,接入试验回路。校验前,先检查热继电器的刻度电流与电动机的额定电流是否相符。然后给热继电器通以1.05IN(额定电流,通过调整RP实现)电流,检查其同步性,即三相双金属片是否同时接触。如不同步,则用平口钳钳住双金属片与支架点焊处,来调整同步性。 同步性调好后,首先做启动试验,给热继电器FR通以6IN的电流,它在5s内不应动作;其次做运行试验,给FR通以1.05IN电流,使热继电器加热到稳定热态,过30min后,慢慢地调节RP,使FR动作,再稍往回旋一点,使FR触点断开;再将试验电流提高到1.2IN,此时FR应在20min内动作。这样,热继电器的整定校验方告结束。 调整校验时应注意以下两点:①不允许用钳子钳弯双金属片,以免影响保护的稳定;②校验连接导线应有足够的截面积,以免影响动作时间。 图20 热继电器校验台 21. 绝缘耐压测试仪线路 这种绝缘耐压测试仪可测灯具,将待测灯具与A、B两接线柱接好,按下按钮SB1,中间继电器KA1得电并自锁;然后将调压器VT(1∶10,输出0~250V)调至需测的电压值,如需调到1500V则将VT调到电压表指示150V(同理,作2000V耐压时,调到电压表指示200V),经时间继电器KT延时后,电源自动切断,见图21。 若被测物绝缘击穿,电流即迅速增加,过电流继电器KI动作,KA2得电动作并自锁,KA1失电,KA1的常开触点切断主回路电源,蜂鸣器HA发出声响,按下SB2后电路全部关断。应用操作这种仪器时,要特别注意人身安全,工作通电时,高压测试区禁止人靠近。 图21 绝缘耐压测试仪线路 22. 用一根导线传递联络信号线路 图22 用一根导线传递联络信号线路 在某些生产过程中,需要两地的生产人员能传递简单的信息,以协调工作。图22所示是用一根导线传递联络信号线路。两地中各有一只双掷开关控制信号灯联络,信号灯分别装在两地,一地一个。当甲地向乙地发联络信号时,拨动开关S1,乙地的指示灯亮,待乙地完成甲地所指示的任务后,乙地可把开关拨至“联络”位置,通知甲地工作已完成。 23. 用单线向控制室发信号线路 图23所示线路可使甲乙两地都能向总控制室发联络信号。当甲地向总控制室发信号时,按下按钮SB1,控制室的电铃告警。同理当乙地向总控制室发信号时按下SB2即可。甲乙两地信号可用信号铃声的时间长短或次数区分。 图23 用单线向控制室发信号线路 24. 利用热继电器制作限电器线路 热继电器多用于电动机过流保护,但在一些集体用电单位或用电场所也可作为限电器。 具体制作方法如图24所示。热继电器手动复位时,需将热继电器复位螺丝旋出。选用热继电器的额定电流和用户总的额定电流一致。 图24 利用热继电器制作限电器线路 25. 两种自装交流电源相序指示器 用电阻、电容、氖泡可组成一小型电源相序指示器。当电源按顺相序L1、L2、L3接入时,氖灯就亮;按逆相序L2、L1、L3接入时则氖灯不亮。线路如图25(a)所示。 第二种方法是:用一只2μF、耐压为500V的电容和两只相同功率(220V/60W)的白炽灯泡,便可做成一个交流电源相序指示器,见图25(b)。 图25 两种自装交流电源相序指示器 工作原理:由于电容移相,改变了其中一相的相位差,作用到HL1和HL2上的矢量电压不等,其规律是L2相矢量电压大于L3相矢量电压。故按图25(b)连接后,电容接电源L1相,那么可知灯泡光线较强的一端是L2相,光线弱的一端则为L3相。 26. 测定电动机三相绕组头尾的两种方法 在电动机6根引出线标记无法确认时,我们可利用交流电源和灯泡检查电动机三相绕组的头尾端,以免将绕组接错。 图26 测定电动机三相绕组头尾的两种方法 用交流电源和灯泡确定电动机三相绕组的方法是:首先用36V低压灯做试灯,分出电动机每一相线圈的两个线端,然后将两相线圈串接后通入220V电源,剩下的一相线圈两端接36V的灯泡线路通入电源后,灯泡发亮,说明所串联的两相是头尾相接;灯泡不亮,说明是头头相接,如图26(a)所示。然后将测出的两相线圈头尾做一标记,再按此方法将其中一相与原来接灯泡的一相线圈串联,另一相连接灯泡,再按同样道理判断,电动机三相绕组的头尾就很容易区分出来了。 另一种方法是用万用表测定电动机三相绕组头尾,首先用万用表测量出电动机6个接线端哪两个线端为同一相,然后将万用表的直流毫安挡拨到最小一挡,并将表笔接到三相绕组的某一组两端,而电池正负极接到另一相的两个线端上。如图26(b)所示,当开关S闭合瞬间,如表针摆向大于零,则说明电池负极所接的线端与万用表正极表笔所接的线端是同极性的(均可认为是头)。依此类推,便可测出另外两相的头和尾。 27. 用耳机、灯泡组成简易测线通断器 图27(a)、(b)是最简便的线路通断检测器。当测得导线通路时,灯泡会发光,耳机在通断瞬时会发响;当线路断路时,耳机不响,灯泡不亮。这种方法简单易行,非常适合初学电工制作工具仪表或代替万用表做测量,其优点是携带方便。 图27 用耳机、灯泡组成简易测线通断器 28. 一种简易测量导线通断的接线方法 图28所示是一感应测电笔线路。它可方便地测出导线的断芯位置。在用来测导线断芯位置时,在导线一端接上220V的电源相线,然后用感应测电笔的探头栅极靠近被测导线,并沿线移动。如果发光二极管在移动中突然熄灭,那么此处便是导线断芯位置。 图28 一种简易测量导线通断的接线方法 29. 用行灯变压器升压或降压一法…

摩登3咨询:_省电子设计竞赛一等奖作品分享(四)

本文为读者投稿,分享的是一个四川省电子设计竞赛一等奖作品。 竞赛题目 今年的四川省电子设计竞赛共有四道题目,基于我们对做车比较了解,所以选择了c题————坡道行驶电动小车,该题目要求如下: 方案选择 1、主控芯片的选择 由于竞赛题目要求必须用msp430作为主控芯片,所以没办法,只能短时间来了解它,熟悉它。还好之前的师兄有430的开源库和例程,所以单片机的底层部分不用我们来担忧。 2、电机驱动的选择 我们采用的是L298N电机驱动模块。L298N可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压,可以直接用单片机IO口提供信号;而且电路简单,使用比较方便。 3、电机的选择 由于是坡道小车,所以电机一定要选择大功率大力矩的电机,这样才能给小车足够的爬坡力, 4、传感器的选择 由于题目要求我们必须循迹,所以我们采用四组光电传感器,检查赛道上黑线,调整路径,之所以加四组,就是为了防止赛道上黑点模块没有检测到,预防小车跑出路径,使其一直能够循迹跑完整个赛道。 5、车模的选择 我们采用的是普通万能板,质量很轻,不会给车太大的压力,而且安装也方便。 6、车轮及车胎的选择 在我看来,一个车的车轮及其车胎决定了这个车的极限,所以对于这两个东西一定要选好,这样车才能爬的更高,跑的更快。 对于此次比赛而言,我们采用3D打印塑料车轮,车胎则用硅胶胎,其质量轻,摩擦力大,后来发现硅胶胎也比较硬,容易打滑,就用了玩具小车的车胎,这样的摩擦力更好。 软件及其整体设计 1、循迹模块的设计 我们把四路光电传感器置于车头,无限接近于地面却又不会挨着地面以防其产生摩擦。这样就能更好的采值。 2、差速电路的设计 由于我安装的四路电机,放弃了舵机转向方案,而且整个路线是固定的,所以我们取巧,初始时便直接使右边电机的PWM大于左边的电机,这样造成一个差速,它会缓慢的往左偏移。 而在赛道上,由于有黑点的存在,一旦我传感器采到值,那么便会降低右电机的PWM,增加左电机的PWM,使其短暂的往右偏移,之后再次回到之前的差速状态。 也就是说我整个控制电路的系统,车身在不停的缓慢的往左偏,只有传感器采到值之后,小车才会回转一点,这便是我们的取巧方式。(我右边设有三个传感器,再加上我初始右移时速度很缓慢,所以不存在传感器采不到黑点的值。) 最后,但当两个传感器同时检测到黑线时,便停车,蜂鸣器也会叫。如此这般,就能实现整个赛道的循迹。 3、坡道电机控制 但当前面的设计都完成了,那么加上坡度之后,只需要改变电机的PWM,不停的记录数据就行。我们总共有四个按键,模式键,加减键,发车键。 我们将每个角度坡道不同时间所需的PWM写入数组,最后再显示在液晶上,通过按键改变角度及时间,那么初始便会有不同的PWM,这样比赛时就不会慌乱。 4、实物图 5、部分代码 (1)传感器数据采集 void ccd_collect(void) { unsigned int i = 0;       P6OUT|=CLK; //拉高 P3OUT&=~SI; //拉低 P6OUT&=~CLK; //拉低 P3OUT|=SI; //拉高 P6OUT|=CLK; //拉高 P3OUT&=~SI; //拉低 for(i=0;i<128;i++)     { //delay1(); P6OUT&=~CLK; //拉低 //delay1(); ccd_data[i] = ADC_getdata(4)>>4;         P6OUT|=CLK; //拉高 }     tsl1401_finish_flag = 1; } (2)电机控制 void motor_control(void) { if((MOTOR<(2600+angle*250)) && (start_flag==0))  {   delay_time=Stime;   delay_time=delay_time+(200-MOTOR/50); while((delay_time > Stime))   {    TA0CCR1 = 3000+angle*250;    TA0CCR2=0;    TA0CCR3 = 3000+angle*250;    TA0CCR4=0;   }   start_flag=1;  } if(ADC_getdata(1)>1500) ADC_1 = 1; else ADC_1 = 0; if(ADC_getdata(2)>1500) ADC_2 = 1; else ADC_2 = 0; if(ADC_getdata(3)>1500) ADC_3 = 1; else ADC_3 = 0; if(ADC_getdata(4)>1500) ADC_4 = 1; else ADC_4 = 0; if(stop_flag == 0)  { if(ADC_1 && ADC_2)   {     delay_time=Stime; if((125-MOTOR/50) <25)  delay_time+=25; else delay_time=delay_time+(125-MOTOR/50);        OLED_Print_Num04(90,4,Stime); while((delay_time > Stime))    {     OLED_Print_Num04(30,4,Stime);     OLED_Print_Num04(60,4,delay_time/2);     TA0CCR1 = MOTOR;     TA0CCR2=0;…

摩登3平台登录_小米11被拆解:骁龙888有点胶处理,未采用索尼CMOS

今晨,小米11的开箱、评测等内容解禁,对这款手机感兴趣的朋友可详细查看。 为了进一步探究机身内部的秘密,XYZone楼斌、爱奥科技蒋镇磷等Up主双双分享了小米11的拆解。 做工用料方面,小米11设计成熟,排布精密,展现了旗舰机的水准。以下是一些可能你关注的小细节: 1、骁龙888和闪存均有封胶处理,可进一步增强手机跌落、进水时的安全性; 2、主摄CMOS是三星HMX,微距是三星S5K5E9,前置是三星S5K3T2,超广角是OV13B10,没有索尼方案; 3、主摄玻璃盖板采用和iPhone一样的CNC一体加工,微距镜头直接使用盖板玻璃,这对玻璃盖板的光学性能和平整度提出较高要求,响应的加工难度也更高。 4、散热方面,主板全部覆盖VC均热板,且配合使用铜箔、石墨、硅脂、气凝胶等,用料毫不含糊。 5、为了减少曲屏误触发生的几率,小米11新增握姿传感器,硬件配合软件双管齐下。 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!