摩登3平台注册登录_理解降压式Buck电路原理,只需3步!

1 BUCK电路基本结构 开关导通时等效电路 开关关断时等效电路 2 等效电路模型及基本规律 (1)从电路可以看出,电感L和电容C组成低通滤波器,此滤  波器设计 的原则是使 us(t)的直流分量可以通过,而抑制 us(t) 的谐波分量通过;电容上输出电压 uo(t)就是 us(t) 的直流分量再附加微小纹波uripple(t) 。  (2)电路工作频率很高,一个开关周期内电容充放电引起的纹波uripple(t) 很小, 相对于电容上输出的直流电压Uo有: 电容上电压宏观上可以看作恒定。     电路稳态工作时,输出电容上电压由微小的纹波和较大的直流分量组成,宏观上可以看作是恒定直流,这就是开关电路稳态分析中的小纹波近似原理。 (3)一个周期内电容充电电荷高于放电电荷时,电容电压升高,导致后面周期内充电电荷减小、放电电荷增加,使电容电压上升速度减慢,这种过程的延续直至达到充放电平衡,此时电压维持不变;反之,如果一个周期内放电电荷高于充电电荷,将导致后面周期内充电电荷增加、放电电荷减小,使电容电压下降速度减慢,这种过程的延续直至达到充放电平衡,最终维持电压不变。 这种过程是电容上电压调整的过渡过程,在电路稳态工作时,电路达到稳定平衡,电容上充放电也达到平衡,这是电路稳态工作时的一个普遍规律。 (4)开关S置于1位时,电感电流增加,电感储能;而当开关S置于2位时,电感电流减小,电感释能。假定电流增加量大于电流减小量,则一个开关周期内电感上磁链增量为:         此增量将产生一个平均感应电势: 3 电感电流连续工作模式下分析 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册网址_台积电2021年的5nm产能被苹果预订一空!

据国外报道显示,芯片代工商台积电2021年的5nm产能已经被预订一空,其中苹果公司占据八成,这意味着 除了苹果公司外, 台积电计划明年开始冒险生产3nm芯片,外媒称,台积电的Fab 18厂第三期将在2021年第一季开始进入量产。 随着5nm生产线全数到位,公司每月可提供约9万片晶圆。 iPhone 12系列搭载的A14仿生芯片和iPhone 11系列搭载的A13仿生芯片都由苹果公司设计,并由台积电生产。 外媒称,预计于2021年发布的几款苹果产品可能也会搭载采用台积电5nm节点制造的芯片。 此外,苹果还为其与ARM相关的M1计算机处理器预订了5nm产能,M1实际上是第一款基于5nm制程打造的计算机芯片。

摩登3新闻554258:_双无线电连接:在物联网应用中实现两全其美

引言 据统计,物联网市场预计将从2020年的2480亿美元增长到2025年的1.6万亿美元。物联网设备的迅速崛起及其广泛的应用案例也大大增加了其设计的复杂程度和多功能。选用一种合适的互联通讯方案对任何一个物联网设备来讲都是至关重要的,但往往单独的一种互联方式无法满足其所有的功能需求。本文着重论述了将近程和远程通讯方式结合在一起使用的需求,以显著提高物联网设备的整体性能和多功能的特性。同时本文将重点聚焦在低功耗蓝牙(BLE)和Sigfox技术上,因为它们已被视为优化物联网产品技术架构的首选项。 物联网设备连接拓扑 物联网连接设备可大致分为三类: 1) 直接连接到远程基础设施的设备 GPRS、CDMA等技术使我们的智能手机或物联网设备可直接连接到电信塔。随着Sigfox、LoRa和NBIOT等LPWAN技术的出现,可在低功耗、低通讯速率及相近的距离内实现设备间的互联通讯。这些设备允许物联网连接设备漫游,而不必局限于特定位置。 2) 连接到本地网关并进而连接到远程基础设施的设备 通过无线技术(如WiFi)或有线技术(如LAN、IO-Link、PLC等)可将本地的物联网设备接入网关。借助该方法,可通过一个连接的网关将多个设备连接到云。通常,这些技术具有非常高的数据速率,并用于高带宽应用,如互联网浏览、在线视频或音频等。这种方法的优点是,您可以远程控制或监控家庭、办公室或工业设施中的多个设备。因此,它还用于物联网设备的许多控制应用中。但是,由于它们依赖于网关,因此不能像第一种方法那样随意移动。 3) 从本地连接到智能手机或彼此相连(通过或不通过互联网连接)的设备 蓝牙、Zigbee、Thread和超低功耗蓝牙[BLE]等技术可实现较短距离的点对点通信。在许多情况下,它们将手机作为云网关。近程通信的优势在于可独立工作,而对云网络无任何要求。 随着人机接口(HMI)的出现,可连接设备(如手机或笔记本电脑)通常提供多种连接方式,如低功耗蓝牙[BLE],经典蓝牙,WIFI,GPRS等。但是,大多数的物联网设备通常是被设计用来完成某项特定的任务,所有往往只会选用上述三种方式中的其中一种通讯方式,这中设计思路也限制了这些设备的可用性,产品使用寿命和多用途的特性。 优化的双重连接 优化的架构结合了远程技术和近程技术,可成为物联网设备向广泛应用渗透的里程碑。远程连接允许与通信基础设施进行通信,甚至允许漫游。同一设备中的近程技术可实现独立的近程通信,以满足广泛的要求。 低功耗蓝牙[BLE]是一种难以置信的近程技术,可在多种使用场景中作为远程连接技术的补充。BLE可实现近程直接连接,而远程连接则可以为物联网设备提供云连接。 BLE在物联网设备中实现的一些功能包括 – 用户界面 BLE连接设备可连接到智能手机应用,从而使用户能够以直观的方式与设备进行交互。这也可以减少设备所需的按钮数量或显示装置,从而使其更便宜、更轻便且防水或防尘。 – 可配置性 BLE还可用于配置设备,以使其以某种方式运行。允许在用户端进行配置,设备制造商无需在工厂定制产品。甚至可以为设备配置各种自定义功能,如根据佩戴位置工作的计步器、设置闹铃或切换LED等。甚至可以使用BLE配置工业产品(如LED驱动器),以适应消费者所需的LED配置类型 – 本地监控 基于BLE的接口支持在无云连接的情况下直接监测传感器数据。这在需要快速本地响应的情况下尤其重要。它也可用于优化数据成本,因为用户可决定需要将哪些数据发送到云,以及需要在本地监控哪些数据 – 诊断 通常,当设备发生故障时,服务工程师需要打开设备或将电缆连接到设备,以便访问设备。这很复杂,并限制了设备的创造力和功能。例如,如果设备具有开放端口并可以通过螺钉轻松打开,则该设备可能不防水。在主系统发生故障且BLE接口启用的情况下,BLE接口便于无线访问设备。在许多情况下,BLE可能无法供用户使用,而只能出于诊断用途被激活。 – 固件升级 固件升级功能允许在发货后更新设备固件。即使在设备发货后,这对于提供新功能和漏洞更新也很重要。通过固件升级,也可以根据用例配置设备功能。固件升级也是一种重要的诊断功能。 BLE可以与其他远程技术(如GPRS或LPWAN)相辅相成,以提供远程连接。Sigfox是一种重要的多用途低功耗远程技术。当BLE SOC驱动Sigfox无线电时,可在尽量不增加功耗、外形尺寸和价格的情况下实现广泛的新功能和用例。Sigfox是一种可提供全球云、远程连接且功耗极低的LPWAN技术。Sigfox设备可在全球范围内自由连接,而无需与网络运营商达成任何独立协议,也无漫游费用。 某些功能可通过在同一设备中实施远程技术来实现。我们来了解使用Sigfox所实现的功能。 – 远程监控 可使用Sigfox网络将传感器数据发送到云,而无需本地网关。设备可直接将数据上传到Sigfox运营商运营的Sigfox网关。这些网关可直接实现长达数公里的连接。 – 数据聚合 需要将煤气表、水表或其他传感器的数据汇总到云中,以便合并、计费或分析。通过Sigfox网络长期发送的数据可用于此目的。 – 跟踪和定位 跟踪和定位是使用最广泛的物联网设备用例之一。如果需要精确定位,则可通过Sigfox网络将GPS坐标发送到云端。许多用例(如车队监控)均接受几公里的精度。在这类用例中,Sigfox网络自身可使用三角测量法进行定位,而无需GPS信号。Sigfox引入了一种名为Monarch的新功能,以根据当地法规识别无线电服务并管理无线电频率变化。借助该功能,设备可跨国界漫游,并始终保持连接。 – 事件通知 当有人使用BLE解锁时,也需要使用独立网络将信息记录在云端。开门、超过传感器阈值、防盗警报、火警之类的事件同样需要独立于本地接口工作。配备正确的传感器、逻辑和Sigfox无线电的设备可轻松实现该目标。 – 诊断和协助 如果需要帮助或设备的某些部分出现故障,则物联网设备可通过Sigfox网络发出警报。Sigfox也允许发送下行消息,以便在诊断模式下配置设备并提供相关数据。 意法半导体推出了独特的解决方案,以便将BLE和Sigfox无线电合并成一种通用解决方案。双无线电通过Sigfox提供远程连接,并通过BLE提供智能手机连接。与Sigfox设备的智能手机连接支持用户界面[UI]、无线固件更新[FUOTA]、直接配置和控制。 STDES-MONARCH已通过Sigfox认证,并免费提供所有必要的设计文档和软件。该参考设计同时嵌入了BlueNRG-2低功耗BLE片上系统(SoC)和S2-LP窄带超低功耗sub-1GHz收发器。 意法半导体的BlueNRG-2是一种经过超低功耗BLE 5.0认证的无线处理器,它支持与传感器无缝连接、Privacy 1.2、Secure Connection 4.2、数据长度扩展、8dBm的输出功率和与物联网 BLE Mesh连接支持通过物联网解决方案的Mesh网络连接多个BLE设备。通过引进Mesh解决方案,即使设备不在网络的直接范围内,也可以进行连接。 S2-LP是高性能超低功耗RF收发器,适用于sub-1GHz频段的RF无线应用。可将其编程为在413-479 MHz、452-527 MHz、826-958 MH、904-1055 MHz频段的sub-1GHz频率下运行。S2-LP支持不同的调制格式:2(G)FSK、4(G)FSK、OOK和ASK。S2-LP的远程通信RF链路预算高于140 dB,并符合世界各地(包括欧洲、日本、南亚、印度、中国和美国)适用法规的要求。 随着物联网用例的发展,同一设备将需要更多连接选项。这将增强设备的可用性、多功能性和可靠性。BLE SoC驱动sub-1Ghz无线电组合预计将有良好的发展势头,因为它在不牺牲成本、功耗和外形尺寸的前提下实现了额外的连接。意法半导体在两种世界级的无线电技术中采用了该架构,并在客户中取得了巨大反响。

摩登3官网注册_你知道吗?MCU与MPU之间的界限正在消失

曾经微控制器(MCU)与微处理器(MPU)是截然不同的两种器件,微控制器完成“控制”相关的任务,根据外界信号刺激产生反应,微处理器主要执行处理功能,对数据处理和计算能力的要求较高。 但如今由于内存架构的变化,两者之间的界限正在变得模糊。像大家熟悉的ST、NXP都推出了MPU,通过对比大家也能发现MCU和MPU之间有很多共性。 事实上,可以通过多种方式区分微处理器和微控制器,只是业界尚未对他们的区分标准达成共识。不过目前两者之间的准确区分都已经不再重要了。 近年来,MCU和MPU之间的区别变得越来越模糊。最初,MCU在一个芯片上集成了CPU、内存和外围设备,如今大多数MCU依然如此,但因为MCU具有足够强大的功能来支持更复杂的应用程序,附加外部存储器的MCU也变得常见。 计算芯片的两个市场 曾经有一段时间,计算芯片分为两个截然不同的市场,大部分芯片设备主要针对主流计算,性能是最主要的考虑因素,这些单片微型计算机被称之为“微处理器”,为个人计算机和更大的系统提供动力。 如今我们可以在各种类型的笔记本电脑、台式机和服务器中看到它们,值得注意的是,它们是通用引擎,旨在运行事先未知的任何数量的程序,主内存是DRAM,非易失性存储是硬盘驱动器或固态硬盘。 在不那么主流的嵌入式计算世界里,需要适度计算能力和专门用途,设计好的程序可能在固件中运行,以便让整个系统(包括程序和所有系统)在出货之前得以验证,内存需求将受到更多限制,可以将用于存储代码的SRAM和非易失性内存与CPU集成到同一块芯片上,关键一点,实时响应通常很重要。 嵌入式计算机也倾向于在有特殊I/O需求的环境中使用,一些可能是在驱动电动机,另一些可能是在处理声音或读取传感器。将专用外围设备接口硬件集成到同CPU和内存相同的芯片上十分有效,这会产生具有不同特性的各种芯片。 总的来说,CPU与SRAM、非易失性存储器和专用外设集成在一起的被称之为“微控制器”。 微处理器发展至今已经多达64位,而微控制器依然是8位居多,但在这中间发生了一些变化,使得两者之间的区别更加模糊。 集成式闪存是MCU的重要特征,不过这类闪存尚未在拥有最先进节点的微控制器上使用,因此许多以微控制器形式销售的设备都使用外部闪存而不是嵌入式闪存,此外还使用外部DRAM。 实际上,一个称之为“shadowing”的过程可以从外部闪存中获取代码,并将其复制到DRAM中,然后从中执行代码,而且为了提高性能,缓存也可以包括在内。这使得CPU/内存子系统与MPU几乎没有区别。 那么现在的MCU就是MPU吗?不再有区别了吗? 区分MCU与MPU的因素 如今的MCU和MPU十分相似,但依然在很多方面有一些细微的区别,这包括CPU功能、位数、操作系统、时序要求、核心数量等方面。 在CPU功能方面,如果CPU具有复杂的流水线,具有预测执行和其他超标量功能,则可以将其视为MPU,但是转变的确切位置并没有明确界定。 在位数上,8位设备更有可能被视为MCU,64位设备很可能被视为MPU。不过最早的却是MPU是4位,这更像是历史问题,而不是决定性的特征。 也可以根据计算机可运行的操作系统进行分类,如果它运行Linux,则可以将其称为MPU。如果它仅允许较小的实时操作系统,甚至只运行裸机,则可以将其称为MCU,这为能够运行的Linux的设备留出了许多中间地带。在时序方面,MCU通常用于需要硬或软实时响应的应用程序,MPU通常不能用于这一目的。 一般也将多核处理器视为MPU,尤其是在内核相同且管理对称的情况下。不过专用设备可能具有多个处理器,有些专用于诸如数字信号之类特定任务的处理器也会被认为是MCU,因此通过核心数目判断是MPU还是MCU并不是一个准确的依据。 从使用目的来看,可以认为通用设备是MPU,单用途设备是MCU,但这实际上只关乎设备的使用方式,如果在不明确使用目的的情况下使用任何设备,那时候如何称呼这一设备呢? 通常全功能MPU不会具有专用外围设备,这在很大程度上是因为它们是通用的,而不是面向特定应用,因此你可能会认为只要有这样的外围设备,就是MCU,但是事实并非如此,缺少外围设备也并不意味着就是MPU。 从上面的分析来看,每个特征因素都会存在缺陷,结果无法令人满意,那么行业专家又是怎么认为的呢? MCU和MPU已成“过时”的术语 Cadence IP集团产品行销总监Marc Greenberg对此表示:“我不知道MCU与MPU之间的区别是否存在某些官方的定义,经过简单的检索似乎表明,裸片上存在NVM的为MCU,但各种MPU上都有NVM的某些位,MPU也可能在同一片裸片上具有MCU,那又是什么呢?最小的无缓存处理器可能仍具有一些寄存器和SRAM,用RTL编码的定序器与从ROM执行的通用处理器真的有区别吗?显然MCU和MPU之间的区别有些随意,这意味着这一界限并不明确甚至可以随心所欲。当我想到MPU时,我想到的是用于控制通用计算机的设备,例如台式机、服务器、平板电脑等。” Cadence高级工程师Grant Martin认为:“根据维基百科的解释,MCU是在单个金属氧化物半导体集成电路芯片上的小型计算机,MPU是一种计算机处理器,在MOSFET结构的单个或多个集成电路上结合了中央处理单元的功能。” “如果深入研究,MPU具有CPU的功能,因此它是计算机处理器,而MCU则是更完整的计算机,这意味着MCU内包含MPU,这与常识相反。具有多个处理器核心的16路服务器处理器是否不再是MPU?而是一种多核异构SoC?” “例如,一部手机可能包括多个应用程序处理内核,用于音频、视频、图像处理的多个DSP,一个或两个用于在屏幕上呈现图像的GPU以及一个仅用于娱乐目的的神经网络处理单元——MCU。从我的角度来看,行业应该放弃这些过时的术语,使用更精确更具描述性的术语。”Grant Martin继续说。 西门子业务部门Mentor的高级产品经理Jeff Hancock则认为:“从系统软件的角度来看,MCU有望适用于直接解释和控制硬件传感器和执行器的应用。这种访问通常涉及一致且可靠的指令时序,这与通用MPU的需求相矛盾。通用MPU旨在优化吞吐量,而MCU通常会优化延迟。因此,如果是需要处理大型数据库,MPU更合适,如果是要精细的机电控制,那么MCU更合适。 Jeff Hancock还说:“外部存储器和缓存肯定让MCU的标准有所变化,但这距离将MCU等同于MPU还有很长的路要走。特别是并不是所有MCU中的所有处理单元都专门使用外部存储器,也可以使用隔离的子系统构建系统,这些子系统允许关键的工作负载和不太关键的应用程序级系统并行继续。” “从软件工程师的角度看,这是一个有趣的挑战,在不连续的地方可能有两个内存区域,集成式内存虽小,但速度更快,因此最好留给对速度有高要求的代码,例如实时操作系统。这意味着开发工具必须足够灵活以将代码正确地映射到存储器上,而RTOS必须足够小适合片上存储器。”西门子业务部门的嵌入式软件技术专家Walls补充到。 Tortuga Logic的高级硬件安全工程师Nicole Fern表示:“过去,MCU与嵌入式系统相关联。在嵌入式系统中,低成本和低功耗的要求比性能更为重要。但是随着移动计算和IoT边缘计算的出现,许多嵌入式系统现在需要复杂的处理,这样就产生了面向嵌入式领域看起来更像MPU的MCU产品,为带有外部存储器和高速缓存的器件提供了更高的性能和可配置性。这种情况下,术语MCU和MPU之间的差异仅取决于是否集成CPU系统。” Arm的低功耗IoT业务高级总监Thomas Ensergueix也认为:近年来,MCU和MPU之间的界限已经模糊。MCU和MPU之间的主要区别之一是软件和开发。MPU将支持丰富的OS,如Linux和相关的软件堆栈,而MCU通常将专注于裸机和RTOS。在决定哪种硬件平台、MCU或MPU最有效之前,由软件开发人员决定哪个软件环境和生态系统最适合他们的应用。 随着现在MCU已经过渡到32位,我们还看到了性能的急剧提高,这有助于缩小MCU和MPU之间的差距。例如:许多基于Arm Cortex-M7的MCU可提供100多个Dhrystone MIPS,或在CoreMark中提供2,000多个点。这些设备中的许多设备还具有非常大的内置存储器,或者提供快速接口来连接外部存储器。这确保了性能和内存不再是MCU的瓶颈,并使它们更接近低端MPU。 小结 如今MPU与MCU之间是否有明确的界限真的重要吗?可能不重要了。因为无论我们将其称之为什么,应用程序都有附带要求,这些要求将决定使用哪个设备。 END 直接来源:strongerHuang 来源:https://semiengineering.com/mpu-vs-mcu/ 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册网址_图解FreeRTOS原理系列之任务管理器基本框架

[导读] 学习梳理一下FreeRTOS任务管理单元实现思路,代码分析基于V10.4.3。从本文开始计划写个图解freeRTOS内核系列笔记分享给朋友们,希望大家喜欢。文章中或有错误,也请留言交流指正,或加本人微信进行交流~ 本文主要学习梳理FreeRTOS任务管理器的基本原理,大体框架。 内核任务管理器需求 先来对比一下裸奔系统与RTOS应用系统的编程模型,看看两种编程的不同画风。 裸奔系统 在不用RTOS的单片机应用开发时,编程模型大概是这样的画风: 程序的主体是一个死循环,该应用程序由一系列协同工作的函数片段组成,相互实现逻辑配合,实现用户业务需求。该应用程序独占单片机,常规的单片机系统都仅有有一个计算单元核。 普通外设I/O,这里所说I/O是指广义的I/O,比如GPIO、PWM、ADC、DAC、LCD显示(当然这里并不严谨,比如ADC,DAC、LCD等也可以产生中断)等。中断函数将异步事件接收成或报文或标志或数值,在与主循环发生逻辑关联。 中断外设,比如UART、USB、I2C、定时器、DMA等根据应用需求而使用的中断。这些中断都需要相应的中断函数进行处理异步中断事件。对于输出可能采样主动输出,一般由主循环某一个动作执行;对于输入设备或许采用轮询方式,在与主循环进行耦合。 RTOS应用系统 在一个基于RTOS应用系统中,其编程模型大致是下面这样一个画风,有多个并行的任务在相对长的宏观时间维度看起来,多个任务是并行运行的,但对于常规单片机而言(一般都是单核),任一时刻只有一个任务或中断函数在独占CPU核。 常见的RTOS没有设备驱动模型,没有对外设设备进行抽象,中断函数将会由用户或调用RTOS 机制,比如event/signal等与任务进行通信 任务间还有可能需要通信,或传递消息,或完成某项需求相互间需要同步等 同样任务需要与硬件普通IO外设进行打交道,或入或出。但有可能是这个任务实现,也有可能是哪个任务执行。完全取决于开发人员如何设计。 RTOS实现任务的切入切出,切入使某任务运行;切出使某任务挂起,出让CPU,暂停运行。 RTOS充当底层支持功能,RTOS还提供丰富的时间管理,队列、邮箱等机制供应用开发使用。 …… 对于单片机而言,一般只有一个核,所有RTOS为了方便理解,可以看成是最最主要的目就是通过软件方法将硬件CPU核程序运行环境抽象为每一个应用任务虚拟出一个软核。这样从时间维度上看起来多任务是并行的,而事实上这种并行是伪并行。 上图仅仅为理解RTOS作用方便,这种虚拟核本质上并不存在,只是将硬件CPU核的运行时上下文(PC指针、状态寄存器等寄存器组、任务运行时临时变量等)通过快照保存切入切出而实现多任务的伪并行运行。 FreeRTOS任务管理器需求 从前文看出,任务管理要实现任务的切入、切出,则首先需要对任务进行抽象描述,以实现在CPU上能够实现切换。根据阅读代码以及文献加上自己的理解,将内核任务管理器的主要功能需求大致梳理成下面这样一张用例图Use case Diagram,仅仅为理解方便,或许并不严谨。 从上图,大致可以看出FreeRTOS任务调度器需要以下一些功能需求: 任务抽象描述,一个任务一般本质上是一个死循环程序片段(当然也有任务运行着会退出被杀掉的可能)。对于任务的抽象: 一般会有任务的执行主体,利用函数主体函数指针进行抽象 RTOS常规都是的基于优先级抢占调度算法,因此需要抽象出哪个任务具有更高概率能被执行,用优先级进行描述 任务需要得以切换,就需要将任务在切换间的临时状态进行保存,栈机制就能很好的满足这样的需求,因此每个任务都有一个或大或小的任务栈。其本质上是一片连续的FILO(先入后出)内存。 ….. 任务创建、删除等API接口,供应用开发使用。 任务调度器控制接口,启动调度器、停止调度器、挂起所有任务、恢复运行等调度器接口。 任务杂项信息接口,比如获取任务状态、tick信息、调试、获取任务名等API接口 任务调度算法,基于调度策略对运行时的任务进行调度,或挂起、或运行、或就绪等,主要根据调度策略管理任务的切入切出。这里主要涉及到任务间上下文切换、任务与中断函数间的上下文切换两种场景。 抽象C运行时环境,现代RTOS应用系统一般基于C语言,抽象C运行时环境,这里主要指栈,当然很多RTOS内核也内核堆,freeRTOS也不例外。熟悉C编程的朋友都知道,堆内存由malloc/free函数操作集提供用户接口,既然C堆已有,为何RTOS内核重新造轮子?为啥内核额外需要实现自己的堆管理器呢?这大体是基于下面些缘由: 编译器C堆实现,在小型嵌入式系统上有时候并不能直接使用。 C堆的实现可能相对较大,占用了较大代码空间。比较浪费有限的代码存储空间。 C堆很少是线程安全的。 C堆申请执行时间不是确定的, 执行功能所需的时间因调用而异。 C堆会在单片机有限的内存资源引发内存碎片问题。 C堆会使链接器配置复杂化。 C堆如引发未知错误,不便于调试。 FreeRTOS任务描述抽象 对于其中几项必须的关键数据域描述一下其抽象作用: pxTopOfStack:指向任务栈栈顶指针 xStateListItem:任务状态链表描述节点,用于动态将该任务添加、删除到就绪或阻塞任务对列链表中 xEventListItem:事件链表描述节点,描述本任务相关事件,用于将本任务添加到事件链表中。 uxPriority:任务优先级,用于描述本任务的优先级。 pxStack:任务栈指针,指向本任务的任务栈。 pcTaskName:任务名字符串存储区,长度可配。默认为16字节 其他的数据域,可裁剪实现一些更丰富的功能,比如主要用于防治优先级反转的优先级继承机制,trace追踪功能等。限于篇幅,也主要梳理任务管理器的主要原理,就不展开了。 任务创建删除管理 FreeRTOS为用户提供一组函数集用于任务的创建、删除等管理,先看任务的创建API: BaseType_t xTaskCreate( TaskFunction_t pxTaskCode,      const char * const pcName,           const configSTACK_DEPTH_TYPE usStackDepth,      void * const pvParameters,      UBaseType_t uxPriority,      TaskHandle_t * const pxCreatedTask ) PRIVILEGED_FUNCTION;TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode,        const char * const pcName,            const uint32_t ulStackDepth,        void * const pvParameters,        UBaseType_t uxPriority,        StackType_t * const puxStackBuffer,        StaticTask_t * const pxTaskBuffer ) PRIVILEGED_FUNCTION;BaseType_t xTaskCreateRestricted( const TaskParameters_t * const pxTaskDefinition,          TaskHandle_t * pxCreatedTask ) PRIVILEGED_FUNCTION;BaseType_t xTaskCreateRestrictedStatic( const TaskParameters_t * const pxTaskDefinition,          TaskHandle_t * pxCreatedTask ) PRIVILEGED_FUNCTION; xTaskCreate/xTaskCreateStatic 都是用于创建任务而用,其区别在于: xTaskCreate 申请任务控制块以及栈从内核堆申请 xTaskCreateStatic 创建的任务,其任务控制块内存以及任务栈内存由用户传入。或许有朋友会问StaticTask_t这不是任务控制块嘛,仔细看看其结构定义其内存对齐及大小刚好是前面说的任务控制块的定义。 xTaskCreateRestricted() /xTaskCreateRestrictedStatic(),主要用于在有或使能MPU单元的芯片中创建任务。这里的MPU是指Memory Protection Unit (MPU),不是微处理器的意思。这两者的区别与上面两个API类似,主要在于其内存分配方式不同,xTaskCreateRestricted是从内核堆动态申请,xTaskCreateRestrictedStatic用户传入。 PRIVILEGED_FUNCTION 这个宏是用于存储保护单元芯片的。 这几个任务创建函数都是用于任务创建,任务一旦创建就会被插入任务就绪链表中,当调度器调度启动后就按任务状态机根据调度策略以及外部输入事件进行调度接管。这里以xTaskCreate绘制一下其内在干了些啥: 再看看另外两个函数: void vTaskAllocateMPURegions( TaskHandle_t xTask,        const MemoryRegion_t * const pxRegions ) PRIVILEGED_FUNCTION;void vTaskDelete( TaskHandle_t xTaskToDelete ) PRIVILEGED_FUNCTION; vTaskAllocateMPURegions: 定义一组内存保护单元(MPU)区域,供MPU受限任务使用. vTaskDelete: 删除用使用xTaskCreate()或xTaskCreateStatic()创建的任务。 任务控制管理接口 void vTaskDelay( const TickType_t xTicksToDelay ) PRIVILEGED_FUNCTION;BaseType_t xTaskDelayUntil( TickType_t * const pxPreviousWakeTime,                            const TickType_t xTimeIncrement ) PRIVILEGED_FUNCTION;BaseType_t xTaskAbortDelay( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;UBaseType_t uxTaskPriorityGet( const TaskHandle_t xTask ) PRIVILEGED_FUNCTION;UBaseType_t uxTaskPriorityGetFromISR( const TaskHandle_t xTask ) PRIVILEGED_FUNCTION;eTaskState eTaskGetState( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;void vTaskGetInfo( TaskHandle_t xTask,                   TaskStatus_t * pxTaskStatus,                   BaseType_t xGetFreeStackSpace,                   eTaskState eState ) PRIVILEGED_FUNCTION;void vTaskPrioritySet( TaskHandle_t xTask,                       UBaseType_t uxNewPriority ) PRIVILEGED_FUNCTION;void vTaskSuspend( TaskHandle_t xTaskToSuspend ) PRIVILEGED_FUNCTION;void vTaskResume( TaskHandle_t xTaskToResume ) PRIVILEGED_FUNCTION;BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume ) PRIVILEGED_FUNCTION; 这一系列的API接口操作集主要用于对任务进行挂起延时、获取优先级、自中断函数获取优先级、挂起、恢复运行等操作。基本从其函数名就可以看出其作用。比如: vTaskDelay调用,会使调用该函数的任务进入阻塞状态一段时间,时间为传入的tick数。 这里需要注意的是有的函数在中断函数体里面不可以调用,需要使用专用版本,具体可以看看手册或注释。 调度器控制接口 void vTaskStartScheduler( void ) PRIVILEGED_FUNCTION;void vTaskEndScheduler( void ) PRIVILEGED_FUNCTION;void vTaskSuspendAll( void ) PRIVILEGED_FUNCTION;BaseType_t xTaskResumeAll( void ) PRIVILEGED_FUNCTION; 这一组函数API集主要用于调度器的启动、停止控制: vTaskStartScheduler,主要用于待用户任务创建好后,硬件初始化后,启动内核调度器 vTaskEndScheduler,可用于停止内核调度器,一般很少用到,在一些安全相关的应用可能会在出故障时主动停止调度器。 vTaskSuspendAll,挂起所有任务,可以用用户逻辑主动挂起所有的任务 xTaskResumeAll,恢复所有任务为就绪态。 任务杂项API集 我根据代码及注释及自己理解,将这些API归类到杂项API集合: TickType_t xTaskGetTickCountFromISR( void ) PRIVILEGED_FUNCTION;UBaseType_t uxTaskGetNumberOfTasks( void ) PRIVILEGED_FUNCTION;char * pcTaskGetName( TaskHandle_t xTaskToQuery ) PRIVILEGED_FUNCTION;     TaskHandle_t xTaskGetHandle( const char * pcNameToQuery ) PRIVILEGED_FUNCTION;   UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;configSTACK_DEPTH_TYPE uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;void vTaskSetApplicationTaskTag( TaskHandle_t xTask,         TaskHookFunction_t pxHookFunction ) PRIVILEGED_FUNCTION;TaskHookFunction_t xTaskGetApplicationTaskTag( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;TaskHookFunction_t xTaskGetApplicationTaskTagFromISR( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;void vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet,          BaseType_t xIndex,          void * pvValue ) PRIVILEGED_FUNCTION;void * pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery,void vApplicationStackOverflowHook( TaskHandle_t xTask,           char * pcTaskName );void vApplicationTickHook( void ); ......BaseType_t xTaskGenericNotifyStateClear( TaskHandle_t xTask,                                         UBaseType_t uxIndexToClear ) PRIVILEGED_FUNCTION;uint32_t ulTaskGenericNotifyValueClear( TaskHandle_t xTask,                                        UBaseType_t uxIndexToClear,                                        uint32_t ulBitsToClear ) PRIVILEGED_FUNCTION;void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) PRIVILEGED_FUNCTION;BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,                                 TickType_t * const pxTicksToWait ) PRIVILEGED_FUNCTION;BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) PRIVILEGED_FUNCTION; 这些函数具体作用就不赘述,这里仅仅梳理分类,用到时候查手册即可。 跨平台移植接口 BaseType_t xTaskIncrementTick( void ) PRIVILEGED_FUNCTION;void vTaskPlaceOnEventList( List_t * const pxEventList,                            const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;void vTaskPlaceOnUnorderedEventList( List_t * pxEventList,                                     const TickType_t xItemValue,                                     const TickType_t xTicksToWait ) PRIVILEGED_FUNCTION;void vTaskPlaceOnEventListRestricted( List_t * const pxEventList,                                      TickType_t xTicksToWait,                                      const BaseType_t xWaitIndefinitely ) PRIVILEGED_FUNCTION;BaseType_t xTaskRemoveFromEventList( const List_t * const pxEventList ) PRIVILEGED_FUNCTION;void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem,                                        const TickType_t xItemValue ) PRIVILEGED_FUNCTION;portDONT_DISCARD void vTaskSwitchContext( void ) PRIVILEGED_FUNCTION;TickType_t uxTaskResetEventItemValue( void ) PRIVILEGED_FUNCTION;TaskHandle_t xTaskGetCurrentTaskHandle( void ) PRIVILEGED_FUNCTION;void vTaskMissedYield( void ) PRIVILEGED_FUNCTION;BaseType_t xTaskGetSchedulerState( void ) PRIVILEGED_FUNCTION;BaseType_t xTaskPriorityInherit( TaskHandle_t const pxMutexHolder ) PRIVILEGED_FUNCTION;BaseType_t xTaskPriorityDisinherit( TaskHandle_t const pxMutexHolder ) PRIVILEGED_FUNCTION;void vTaskPriorityDisinheritAfterTimeout( TaskHandle_t const pxMutexHolder,UBaseType_t uxTaskGetTaskNumber( TaskHandle_t xTask ) PRIVILEGED_FUNCTION;void vTaskSetTaskNumber( TaskHandle_t xTask,                         const UBaseType_t uxHandle ) PRIVILEGED_FUNCTION;void vTaskStepTick( const TickType_t xTicksToJump ) PRIVILEGED_FUNCTION;eSleepModeStatus eTaskConfirmSleepModeStatus( void ) PRIVILEGED_FUNCTION;TaskHandle_t pvTaskIncrementMutexHeldCount( void ) PRIVILEGED_FUNCTION;void vTaskInternalSetTimeOutState( TimeOut_t * const pxTimeOut ) PRIVILEGED_FUNCTION; 这些接口不同硬件平台需要做具化的移植,做差异化的处理,但是对于FreeRTOS统一了内部调用的接口。这样的思路在应用开发时也可以考虑使用,对于公共部分可以抽象出统一的接口,这样在不同平台上可以很方便的进行移植。对于这些接口后面有机会学习整理分享。 对于用例图中的其他部分,核心调度部分以及上下文切换,篇幅所限留在后面学习整理分享。 总结一下 本文基本学习梳理了一下对于FreeRTOS任务调度器外部接口、以及大体作用,基本组成情况,水平所限,文章中错误难免,欢迎交流指正。 END 来源:嵌入式客栈,作者:逸珺 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册网站_男朋友是程序员是一种什么感受?

经常听到调侃我们程序员男生情商低, 但其实这么抽象的说法, 我们完全不知道问题出在哪里呀~ 今天大雄收集了一些 女生们关于程序员男友的一些相处感受 为了以后的幸福 “直男们”对号入座一下,扬长避短 。 ▼ 他不会讨我欢心话极少。 电话里,经常就只有我一个人的声音。 ▼ 跟他在一起就感觉不到他的温暖, 那种对你在乎的温暖, 感觉他花在你身上的心思不多。 ▼ 我会担心, 当某一天我对QQ,对电脑没什么兴趣后, 他对电脑越来越依赖的时候, 我怎么说服自己不去跟电脑争风吃醋。 如果以后他宁愿陪电脑也不陪我, 那我不是很没价值? ▼ 程序员怎么会有女朋友呢? 所以不用担心对方… 基本是没有恋爱经历, 感觉也不会有别人喜欢。 因此很有安全感… 虽然很多时候不会看女友脸色, 你都生气半天了对方还没发现。 ▼ 从来不哄我, 连“多喝水!”都不会说。 ▼ 说到喊吃饭的问题, 这个还好。 永远不要相信对方说的, “我还剩一点bug改一下就好了”。 或者 “我马上做完,就差一点了”, “我今晚肯定不会弄到那么晚,肯定能搞定”。 某次对方连续三四天解决服务器挂掉的问题, 基本上就顾不上陪你了。 ▼ 今晚一定不会弄到那么晚, 这个bug我一会就弄好了, 哈哈哈 ▼ 这么谈恋爱挺累的, 但是很踏实。 ▼ 男朋友一吵架就毫无逻辑, 情商巨低,他说我很无聊, 整天浪费他的时间, 他说他还是一个人搞技术比较好。 ▼ 特别老实,在公司, 老板让加班就加班。 在家里,老婆说啥都听。 ▼ 方向感特别好, 另一半完全不需要知道东西南北, 很有安全感。 ▼ 社交网站资料极少,也不会讲太多话。 社交网站只是浏览看别人说, 默默点赞或骂娘。 ▼ 基本不发朋友圈,屏蔽很多人。 ▼ 下班后, 喜欢打游戏, 一玩起来你就是光着躺在床上他也不会看你一眼。 还喜欢自己抱着游戏视频看。 ▼ 但是喜欢拼模型, 各种模型都喜欢钻研。 ▼ 偶尔看看综艺节目, 从来不看电视剧, 喜欢追美剧、日漫看。 ▼ 他们不懂浪漫,只懂逻辑思维。 ▼ 除了宅就是呆,一点都不体贴…… 根本不懂女生, 所以我不开心了会直接说, 然后眼睛汪汪地对着他哭。 而不是自己生闷气让他猜。 因为我知道, 如果我不说, 他永远也猜不明白 ▼ 给他分享一个黄段子或者笑话, 人家根本没感觉。 还会纠正错别字。 ▼ 十分讨厌我化妆, 有一天要出门, 他突然说你不“画画”了?! 【总结一下】 其实女生们对于程序员男友的 踏实靠谱还是非常认可的, 只是敏感细心的女孩子们 更需要体贴和关心呐。 大家努力工作的同时, 也要注意多关心另一半哦~ END 来源:老九学堂 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册平台官网_一个程序员的C++学习之路

来源:https://blog.csdn.net/ajian005/article/details/8003655 C++学习之路 1、why要学习C/C++/object-c? 最近想写点有用的东西,发现自己最拿手的java用起来真是笨手笨脚的。 碰到好多实现起来巨繁琐的问题,比如操作底层库,和OS framework交互,做个用户体验好点的本地图形程序等等,这些都是java的软肋。 其实,我一直对底层颇感兴趣,工作中也只能接触一下JVM,但VM毕竟是VM,始终与底层失之交臂。 Linux、Mysql、Memcached、Boost、Apache、JVM、ACE… … 很多基础服务都是用C/C++实现的,要像了解他们原理、能看懂代码、可以修改bug、增加新功能模块 开发嵌入式、中小型项目C/C++项目,维护C/C++项目… … 加深对系统底层的理解 2、How学习C/C++? 下文是我整理的一些C++图书列表,按顺序阅读,可涵盖入门到精通。 《The C programming language》必读 《C++ Primer》,号称是一本可以让你从C或JAVA程序员转为一个真正的C++程序员的入门参考书,必读。 《The C++ programming language》,C++之父,人称B教主著作,在看过C++ primer后,应该可以跳章选读。 《Think in c++》,网上说此书的中文版翻译质量奇差,推荐看影印版,选读。 《Effective c++》,类似 Effective java,讲的是最佳实践,程序员必读。 《More effective c++》,上书的补充。 《The C++ standard library》,会写C,不会用标准库怎么行。这就跟java程序员不会用java.util包一样,必读。 《Effective STL》,STL库的最佳实践。Effective C++作者又一力作,必读。 《The annotated STL source》,STL源码分析,这本书应该算是深入/精通类了,选读。 《Generic programming and STL》,号称C++编程里,就是跟模板,泛型打交道,那么精通泛型是势在必行。 《C++ Template》,C++模板编程,代码复用的经验之道,必读。 《Exceptional C++》,跟Effective C++类似,属于最佳实践和难题解析,书中列出了许多应用场景和实例代码供读者揣摩,选读。 《More Exceptional C++》,上书的补充。 《Exceptional C++ Style》,上上书的补充 《Inside The C++ Object Model》,有了上面这些书做铺垫,那么终于可以读此神书了。它会带你游览C++对象模型的底层实现机制。读完此书,任何C++代码看起来如同行云流水,必读。 3、优秀的C/C++开源项目(阅读代码) OS:Linux kernel  LVS、Linux应用程序 DB:Mysql、PostgreSQL Complier:VM、GCC Framework:OpenSip、SipProxy、 Net:ACE(Java Mina、Netty)、TCP/IP、HTTP协议栈 Cache:Memcached、Redis、 Library:STL(java util package)、Boost、Qt(UI)、 balance:Apache、Nginx … … 自学者可以参考的学习顺序(Linux C++现场全科班培训的顺序) http://www.xuanyuan-soft.cn/   Linux C++全科班课程,专注Linux/UNIX服务器端软件开发(后台开发),培养企业所需的专业Linux/UNIX C++软件工程师。课程涉及UNIX/Linux服务器端软件开发的各个方面:Linux/UNIX、C++、Boost、ACE、Oracle /MySQL、企业级的实战项目等。 上课方式 全日制脱产学习、历时4个月(120天 * 10小时 = 1200小时)。 课程模块 Linux C++全科班课程由以下模块组成: Module01 – Linux系统基础 由于本系列课程基于Linux(或UNIX),熟悉Linux操作系统是必要的前提。该模块的课程包含以下方面的内容: 常用Unix/Linux命令 熟悉文件管理、文本处理、进程管理、网络、系统管理等各个方面大约100个常用的命令。 深入了解bash了解Linux默认shell: bash 的语法、命令执行、I/O重定向、任务控制等。 正则表达式基础由于UNIX/Linux中很多强大的文本处理命令如:grep、awk、sed,还有vi编辑器等工具配合正则表达式将产生强大的威力,所以熟悉正则表达式语法是十分必要的。 find、grep、sed、awk四个强大的UNIX工具,特别是sed、awk在文本处理方面的能力非常强大,在Linux下工作应该掌握这几个命令。 Linux环境高级编程 一、课程目标 本次课程涵盖Linux系统编程的几个主要方面,通过本次课程的学习,学员将具备以下能力: 了解Linux系统调用和类库的区别; 熟悉文件I/O、文件和目录、进程管理、进程间通信(IPC)、信号、时间与定时器的编程。 二、参训要求 参加本次课程的学员须具备以下能力: 本次课程使用 C语言…

摩登3咨询:_PLC与这7种设备的连接方式,一看就懂!

PLC常见的输入设备有按钮、行程开关、接近开关、转换开关、拨码器、各种传感器等,输出设备有继电器、接触器、电磁阀等。正确地连接输入和输出电路,是保证PLC安全可靠工作的前提。 1、PLC与主令电器类设备的连接 图1是与按钮、行程开关、转换开关等主令电器类输入设备的接线示意图。图中的PLC为直流汇点式输入,即所有输入点共用一个公共端COM,同时COM端内带有DC24V电源。若是分组式输入,也可参照图下图的方法进行分组连接。 ▲图1 PLC与主令电器类输入设备的连接 2、 PLC与旋转编码器的连接 旋转编码器是一种光电式旋转测量装置,它将被测的角位移直接转换成数字信号(高速脉冲信号)。因些可将旋转编码器的输出脉冲信号直接输入给PLC,利用PLC的高速计数器对其脉冲信号进行计数,以获得测量结果。不同型号的旋转编码器,其输出脉冲的相数也不同,有的旋转编码器输出A、B、Z三相脉冲,有的只有A、B相两相,最简单的只有A相。   ▲图2 旋转编码器与PLC的连接 如图2所示是输出两相脉冲的旋转编码器与FX系列PLC的连接示意图。编码器有4条引线,其中2条是脉冲输出线,1条是COM端线,1条是电源线。编码器的电源可以是外接电源,也可直接使用PLC的DC24V电源。电源“-”端要与编码器的COM端连接,“+ ”与编码器的电源端连接。编码器的COM端与PLC输入COM端连接,A、B两相脉冲输出线直接与PLC的输入端连接,连接时要注意PLC输入的响应时间。有的旋转编码器还有一条屏蔽线,使用时要将屏蔽线接地。 3、 PLC与传感器的连接 传感器的种类很多,其输出方式也各不相同。当采用接近开关、光电开关等两线式传感器时,由于传感器的漏电流较大,可能出现错误的输入信号而导致PLC的误动作,此时可在PLC输入端并联旁路电阻R,如图3所示。当漏电流不足lmA时可以不考虑其影响。 ▲图3 PLC与两线式传感器的连接 式中:I为传感器的漏电流(mA),UOFF为PLC输入电压低电平的上限值(V),RC为PLC的输入阻抗(KΩ),RC的值根据输入点不同有差异。 4、PLC与多位拨码开关的连接 如果PLC控制系统中的某些数据需要经常修改,可使用多位拨码开关与PLC连接,在PLC外部进行数据设定。如图4所示,为一位拨码开关的示意图,一位拨码开关能输入一位十进制数的0~9,或一位十六进制数的0~F。 ▲图4  一位拨码开关的示意图 如图5所示,4位拨码开关组装在一起,把各位拨码开关的COM端连在一起,接在PLC输入侧的COM端子上。每位拨码开关的4条数据线按一定顺序接在PLC的4个输入点上。由图可见,使用拨码开关要占用许多PLC 输入点,所以不是十分必要的场合,一般不要采用这种方法。 ▲图5 4位拨码开关与PLC的连接 5、PLC与输出设备开关的连接 PLC与输出设备连接时,不同组(不同公共端)的输出点,其对应输出设备(负载)的电压类型、等级可以不同,但同组(相同公共端)的输出点,其电压类型和等级应该相同。要根据输出设备电压的类型和等级来决定是否分组连接。如图6所示以FX2N为例说明PLC与输出设备的连接方法。图中接法是输出设备具有相同电源的情况,所以各组的公共端连在一起,否则要分组连接。图中只画出Y0-Y7输出点与输出设备的连接,其它输出点的连接方法相似。 ▲图6 PLC与输出设备的连接 6、 PLC与感性负载的连接 PLC的输出端经常连接的是感性输出设备(感性负载),为了抑制感性电路断开时产生的电压使PLC内部输出元件造成损坏。因此当PLC与感性输出设备连接时,如果是直流感性负载,应在其两端并联续流二极管;如果是交流感性负载,应在其两端并联阻容吸收电路。如图7所示。 ▲图7 PLC与感性输出设备的连接 图中,续流二极管可选用额定电流为1A、额定电压大于电源电压的3倍;电阻值可取50~120Ω,电容值可取0.1~0.47μF,电容的额定电压应大于电源的峰值电压。接线时要注意续流二极管的极性。 7、PLC与七段LED显示器的连接 PLC可直接用开关量输出与七段LED显示器的连接,但如果PLC控制的是多位LED七段显示器,所需的输出点是很多的。 ▲图8  PLC与两位七段LED灯显示器的连接 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3注册网址_从此告别PCB小白,一文教你如何创建完整PCB工程及输出文档

出品 21ic中国电子网  hobbye501 网站:bbs.21ic.com 对于很多小伙伴来说,新建一个PCB工程那不是很简单的吗?一个PCB Project 加上SCH和PCB不就好了吗?错,那还不完整。 首先我们跟平时一样,打开软件,新建工程文件并添加原理图和PCB图。 这里要注意,新建的是项目工程,而不是单个PCB,我有时候也会搞错。 这时候会弹出窗,有特效需求的可以选择,没有的话无定义默认即可!  这样,一个工程文件就新建好了,如图: 这里,它是空洞的,没有灵魂,需要我们注入 这里标号的1,2,3,4,5,6,7,8最好是都添加。 前期可能开发的时候,只需要原理图和PCB图,也就是1,2。 中后期的话,后面的会很有用哦, 这里简单先介绍一下吧 1.原理图,顾名思义就是表示电路板上各器件之间连接原理的图表。在方案开发等正向研究中,原理图的作用是非常重要的,而对原理图的把关也关乎整个项目的质量甚至生命。 2.PCB图,就是我们最最重要的板子了。布局,走线,都是它,对,没错,都是它。算是整个工程的灵魂。 3.BOM,这个也很重要,尤其是采购元器件和贴片加工焊接的时候。采购**每次都要我更新BOM,不厌其烦的。 4.布局分布图,这个东西可能有些人不知道,它可是个好东西,它可以把图纸(2D,3D)的很多信息都导出来,方便我们查看和对接。我基本上用它做层压结构和布局分布。 5.元件封装库,就是原理图上使用的元件的原型库。 6.PCB封装库,就是PCB板子上芯片电阻电容的外型封装库。 这两个库也可以做出集成库,方便调用。我们可以自己做元件库或者把一些经常使用的添加到一起做封装库,很方便哦。一劳永逸。 7.CAM文件,一般都是输出文件,包括Gerber和NC Drill文件,主要用于PCB厂家的制板。 8.Outout文件管理,这个东西确实很好,可以把零散的文件,资料统筹在一起一个项目里,还是一个大神教给我的。 好了,工程建好了就是开发了,主要就是原理图的绘制,导入PCB,布局,走线,DRC,拼板,输出加工文件等等一些列操作。中间的操作步骤很多,也涉及到很多细节,这里不多做说明,我会另起一篇详细介绍的,这里,接下来就介绍下输出文档这块吧。 我是做了4个文件夹,分好类。 输出加工文件:Gerber, NC Drill, DRC  统筹在一个文件夹下,方便输出。 BOM,PCB,层压结构,布局分布统筹再一个文件夹下,方便查看。 这里再简单介绍下如何生成制造输出文件Gerber,  NC Drill,吧如图,   Gerber会有4个选择页,大部分默认即可,层设置这里说明一下,外型最好用机械层,避免不必要的麻烦。 NC Drill主要是钻孔,选好设置项默认即可。   详细的导出步骤就不多做说明了,都是很简单的操作。记得生产的文件压个压缩包,打包发给PCB厂家,就可以加工了。 下一篇会详细介绍原理图的绘制,导入PCB,布局,走线,DRC等等,敬请期待吧! 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

摩登3新闻554258:_ETC“车支付”大流量入口怎么玩?偶观ETCP搬家有感

今天进京参加一个活动,惬意于高速路上没有往日那么拥堵,心里感念ETC推广建功了——消除排队付费长龙,让跨省通勤更便捷。   城市里的一些停车场,也已跟着“ETC化”——在手机扫码、无感支付、ETC支付等混合收费模式支持下,停车场出入口的电子化、无人化也日渐普及。   “去年全国ETC用户数已破2亿,今年更是快马加鞭在推广,ETC为何不打通更多场景服务,让车主体验更进一步呢?”   心里正默念这一想法,突然刷到一条朋友圈,仔细一看不是别个,正是那家做城市ETC停车场服务的ETCP公司的员工正在庆祝乔迁之喜,现场还有个全新名称“驿通”露出。一般公司搬家往往意味着架构调整或业务扩充,看起来ETC服务真的要有新的玩法了。   最早知道ETCP这家公司,是源于其在万达广场内提供的微信无感支付。后来了解到,腾讯、高瓴、万达都投资了它,业务发展迅速,很快成长为中国智慧停车行业的独角兽企业。   稍早前有知情人士透露,深耕ETC+停车多年的ETCP正与其大股东整合资源,下一盘从ETC+停车收费到ETC+全场景服务的生态大棋。此番ETCP搬家及新的公司或品牌名称“驿通”的露出,似乎从一个侧面印证了这一消息。   释放“车支付”大流量入口价值ETC潜力巨大 提起ETC,大家印象最深刻的可能莫过于各大银行的“花式推广”。自2019年3月《政府工作报告》中提出“两年内基本取消全国高速公路省界收费站,实现不停车快捷收费”以来,国家发展ETC的政策密集出台、层层加码,产业各方也积极响应,ETC步入发展快车道。   交通运输部路网中心的数据显示,截至2019年底,全国ETC用户累计达到2.04亿,单年新增ETC用户约1.27亿。截至2020年10月26日,全国高速公路ETC使用率已接近66%,其中客车ETC使用率超过70%,货车ETC使用率超过53%。   66%的渗透率有多厉害?中国互联网络信息中心(CNNIC)发布的第46次《中国互联网络发展状况统计报告》显示,截至2020年6月,我国的互联网普及率达到67.0%。这意味着,经过短时间的狂飙突进,中国ETC普及率已经赶上了互联网十多年的发展水平。   当然,相比互联网应用的包罗万象,当前ETC的功能显得十分单一。正如多数人看到的那样,ETC的使用场景还主要集中在高速不停车快捷收费层面。   空白即机遇,坐拥超过2亿的ETC车主之后,产业各方积极谋划,中国ETC产业化发展呈现出几大主要趋势:   趋势一:ETC作为推进高速公路智能化的关键举措,将推动ETC用户进一步增长。   受制于高速公路建设技术要求高、资金投入成本大、运营维护难等问题的存在,高速公路收费在中短期内仍然不会动摇;并且在交通智能化发展过程中,电子化、无人化的高速公路ETC能够实现显著的降本增效、绿色环保,仍将是高速公路智能化发展的关键举措。   按照国家制定的“汽车ETC安装率达到80%以上,通行高速公路的车辆ETC使用率达到90%以上”的目标,我国ETC用户在未来数年还将保持高速增长,为面向未来的人、车、路协同的全面智能化扎牢基础。   趋势二:从高速公路到城市停车等更多涉车领域,ETC使用场景逐步多样化延伸。   除了高速公路ETC外,国家政策也在鼓励ETC在停车场等更多涉车领域应用,包括机场、火车站、客运站、港口码头等大型交通场站,以及居民小区、旅游景区等。未来基于ETC的智慧停车系统将涉及越来越多场景。   相比高速公路ETC,城市停车的ETC应用蕴含更多可能性。比如,通过建设ETC停车场打通停车场信息孤岛,接入车位引导、反向寻车、无感支付更多智慧停车功能,可以支撑按需停车、共享停车等新模式,帮助线下场所提升车位利用效率,进一步方便车主,缓解城市出行和停车难题。   趋势三:不止于单一的停车快捷收费,基于ETC的更多服务场景也开始落地探索。   由于ETC从交易切入,使汽车具备了安全可靠的“车支付”体系,所以随着ETC普及率的大幅提升,ETC的使用场景正逐渐从单一的高速通行、城市停车通行延伸到停车、加油、洗车、养护、保险等众多用车消费支付场景,进入ETC+生态的落地探索阶段。   比如自2019年以来,贵州、河北、山东境内的一些加油站陆续推出了ETC智慧加油/ETC无感加油服务,ETC车主只要进入指定加油站ETC专用通道加油,即可享受免下车、免排队缴款、免刷卡、免扫码,从开车进场到离场2分钟内完成的“即加即走”加油体验。   除了上述三大趋势外,ETC在车路协同、智慧交通等领域展现出诸多“用武之地”,堪谓智慧联接人车路、推进人车路高效协同的关键基础设施。   比如在马路资源紧张的日本,为预防访日游客在日本出游时发生交通事故,日本在征得游客同意后使用车内搭载的“ETC2.0”系统,收集踩急刹车的地点和行驶路线等数据,以此推测出易发生交通事故的地点,然后在事故易发地设置醒目的警示标志,有效改善了交通事故的发生率。   又比如在广东,12月初广东省交通运输厅制定的《交通强国建设广东试点实施方案》已获交通运输部批复,基于该方案广东将研发以ETC技术为核心的车路协同系统,推动ETC和5G高效融合,有效提升交通管理智慧化水平。   而放眼面向未来的无人驾驶,ETC料定也将是自动驾驶汽车畅行无阻的标配。   所有这些或近或远的应用场景,从今天看都与ETC“车支付”这个基础设施密切相关。对标移动互联网时代的移动支付工具,ETC就好比车联网时代的“车支付”工具——相当于用户手机上的微信支付或支付宝,是一个难得的大流量入口,背后可以接入多种多样的场景,叠加各式各样的服务。   ETCP搬家不简单或标志着ETC生态模式开启 回到搬家的ETCP,ETC+Parking(停车),从名字中就能看出这家公司的前瞻和野望。   查阅资料发现,成立于2012年的ETCP经过几年高速发展,目前在中国的业务已触达240余座城市,合作停车场超过8100个,覆盖车位超过310万个,系统服务小汽车去重后超过1亿辆,占中国小汽车保有量50%。同时,ETCP也正在将中国智慧停车模式复制到欧洲、北美和亚洲等发达国家。   进一步查阅ETCP的股东结构可以发现,ETCP的大股东是丙晟科技,而丙晟科技是由腾讯、万达和高灯科技合资成立的互联网科技公司,后者也是ETC领域的重要玩家之一。   数据显示,基于腾讯生态开放能力,高灯科技研发的ETC助手在ETC推广大潮中脱颖而出,目前注册用户数已超4000万,日均通行费交易笔数超过100万笔,鉴证交易规模超215亿元,已成全国重要的车主服务平台之一。   在今年9月的2020腾讯全球数字生态大会上, 免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!