一、STM在嵌入式开发中RTOS
由于RTOS占用一定的系统资源(特别是RAM只有资源μC/OS-II、embOS、salvo、FreeRTOS少数实时操作系统等RAM运行在单片机上。
相对于C/OS-II、 embOS等商业操作系统,FreeRTOS操作系统是一个完全免费的操作系统,具有源代码开放、可移植、可切割、调度策略灵活的特点,可轻松移植到各种单片机上,最新版本为6.0版。
作为轻量级操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、信息队列、内存管理、记录功能等,基本上可以满足较小系统的需要。
FreeRTOS核心支持优先级调度算法,每个任务都可以根据不同的重要性给予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。
FreeRT0S内核还支持轮换调度算法,系统允许不同的任务使用相同的优先级,同一优先级的任务共享没有更高的优先级任务CPU使用时间。
FreeRTOS缺点:与常见相比μC/OS—II操作系统,FreeRTOS操作系统既有优点也存在不足。缺点, 一方面体现在系统的服务功能上,比如FreeRTOS只提供实现消息队列和信号量,未来无法向消息队列发送消息;另一方 面,FreeRTOS只是操作系统的核心,需要扩展第三方GUI(图形用户界面),TCP/IP协议栈、FS为了实现一个更复杂的系统, 不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝组合。

在STM32CubeIDE可直接配置中FreeRTOS,如上图。STM32使用FreeRTOS请在这里移动相关文章:使用STM32CubeMx工具,写FreeRTOS的demo程序。
FreeRTOS数据多,生态活跃,在Cube通过配置界面,三两次启动此操作系统,推荐入门。
基于不同的需求,下面将介绍其他需求RTOS。
μClinux是一种优秀的嵌入式Linux全称版本micro-control Linux,字面意思是指微控制Linux。
同标准的Linux相比,μClinux内核很小,但还是继承了Linux操作系统的主要特点包括稳定性和移植性好、网络功能强、文件系统支持优秀、标准丰富API,以及TCP/IP网络协议等。因为没有MMU内存管理单元,因此实现多任务需要一定的技能。
μClinux标准在结构上继承Linux多任务实现模式分为实时过程和普通过程,分别采用先服务和时间片轮换调度,仅针对中低档嵌入式CPU改进特点,不支持内核抢占,实时性一般。
综上可知,μClinux最大的特点是针对无MMU没有处理器设计MMU功能的STM32F103来说是合适的,但移植此系统需要至少512KB的RAM空间,1MB的ROM/FLASH空间,而STM32F103拥有256K的FLASH,需要外部存储器,这增加了硬件设计的成本。
μClinux结构复杂,移植相对困难,核心大,实际上时间差。如果开发的嵌入式产品注重文件系统和网络应用,μClinux是个不错的选择。
μC/OS-II是在μC/OS在此基础上,是用C语言编写的结构小、抢占式多任务实时内核。μC/OS-II可管理64项任务,提供任务调度与管理、内存管理、任务间同步与通信、时间管理、中断服务等功能,具有执行效率高、占用空间小、实时性能好、可扩展性强的特点。
由于文件系统的支持,μC/OS-II面向中小型嵌入式系统,即使包含所有功能,编译后内核也不到10个 KB,因此,系统本身并不支持文件系统。μC/OS-II如有必要,还可以添加文件系统的内容。
对硬件的支持,μC/OS-II大多数能够支持当前流行的人CPU,μC/OS-II因为内核本身很小,切割后的代码最小可以是2KB,所需的最小数据RAM空间为4 KB,μC/OS-II移植相对简单,只需修改与处理器相关的代码即可。
综上可知,μC/OS-II它是一个结构简单、功能齐全、实时性强的嵌入式操作系统核心,针对没有结构的嵌入式操作系统MMU功能的CPU,非常适合。它需要很少的核代码空间和数据存储空间,具有良好的实时性、良好的可扩展性和开源性。网上有很多数据和例子,非常适合方向STM32F103这款CPU上移植。
eCos(embedded Configurable operating system),即嵌入式可配置操作系统。它是一个可配置、可移植、深度嵌入式应用的实时操作系统。
最大的特点是配置灵活,采用模块化设计,核心部分由内核组成,C语言库和底层运行包等。
每个组件可以提供大量的配置选项(实时内核也可以作为可选配置)eCos通过不同的配置,可以方便地配置配置工具eCos能满足不同的嵌入式应用要求。
eCos操作系统的可配置性很强,用户可以自己添加所需的文件系统。eCos操作系统还支持大多数流行的嵌入式操作系统CPU,eCos操作系统可移植到16位、32位和64位。
eCos因为内核本身很小,切割后的代码最小可以是10 KB,所需的最小数据RAM空间为10 KB。
在系统移植方面 eCos操作系统的可移植性很好,比μC/OS-II和μClinux容易。
综上所述,eCos最大的特点是配置灵活,不支持MMU的CPU移植,开源,移植性好,也更适合移植STM32平台的CPU上。但eCOS应用不太广泛,不像μC/OS-II这么普遍,没有信息。μC/OS-II多。eCos适用于一些商业或工业对成本敏感的嵌入式系统,如消费电子领域的一些应用。
开源嵌入式操作系统,ARM公司将mbed OS免费提供给所有制造商,mbed智能硬件开发环境相对更系统、更全面。
为解决嵌入式设计的碎片化问题提供了开发物联网设备的通用操作系统基础。支持所有重要的连接和设备管理开放标准,实现未来设计。使安全可升级的边缘设备支持新的处理能力和功能。通过自动电源管理解决复杂的能耗问题。
开发速度快,功能强,安全性高,为量产而设计,可离线开发,也可在网页上编辑。
是ARM公司的嵌入式实时操作系统采用标准C结构编写和应用RealView编译器进行编译。不仅是实时内核,而且中间层组件丰富,不仅免费,而且代码开放。
开始和停止任务(过程),并支持过程通信,如任务同步、共享资源(外设或内存)管理、任务之间的信息传输等。开发人员可以使用基本函数打开实时操作,开始和结束任务,并传输任务之间的控制(轮换调度)。开发人员可以优先考虑任务。
支持时间片,抢占式和合作式调度。不限制数量的任务,每个任务都具有254的优先级。不限制数量的信号量,互斥信号量,消息邮箱和软定时器。支持多线程和线程安全操作。使用MDK基于对话框的配置导向,可以轻松完成MDK的配置。
都江堰操作系统简称djyos,都江堰是一项伟大的水利工程。
与传统操作系统不同,djyos不是以线程而是以事件为调度核心,这种调度算法使程序员摆脱模拟计算机执行过程编写程序的思维方式,而是按人类认知世界的方式编写应用程序,就如同在嵌入式编程中引入了VC似的。
djyos的调度算法使程序员可以摆脱线程和进程的束缚,djyos没有有关线程的api,一个完全不懂线程知识的程序员也可以顺利地在djyos下编写应用程序。
djyos 操作系统是以事件为核心进行调度的,这种调度策略使程序员可以按人类认知事物的习惯而不是计算机的习惯来编程。
嵌入式操作系统RTOS介绍,RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。
RT-Thread具备一个IoT OS平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。经过11年的累积发展,RT-Thread已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过两千万台,成为国人自主开发、国内最成熟稳定和装机量最大的开源RTOS。
国内最有可能成为Top 1,优势在于丰富的组件,中立立场!赶上了时机,得到诸多芯片厂商的支持,也挺受开发者喜欢的。缺点在于本身的教程文档和freertos等之类的比还是很弱。
二、共模干扰与差模干扰及抑制方法
电器设备的电源线,电话等的通信线, 与其它设备或外围设备相互交换的通讯线路,至少有两根导线,这两根导线作为往返线路输送电力或信号,在这两根导线之外通常还有第三导体,这就是"地线"。电压和电流的变化通过导线传输时有两种形态, 一种是两根导线分别做为往返线路传输, 我们称之为"差模";另一种是两根导线做去路,地线做返回传输, 我们称之为"共模"。
如上图, 蓝色信号是在两根导线内部作往返传输的,我们称之为"差模";而黄信号是在信号与地线之间传输的,我们称之为"共模"。
任何两根电源线或通信线上所存在的干扰,均可用共模干扰和差模干扰来表示:共模干扰在导线与地(机壳)之间传输,属于非对称性干扰,它定义为任何载流导体与参考地之间的不希望有的电位差;差模干扰在两导线之间传输,属于对称性干扰,它定义为任何两个载流导体之间的不希望有的电位差。在一般情况下,共模干扰幅度大、频率高,还可以通过导线产生辐射,所造成的干扰较大。差模干扰幅度小、频率低、所造成的干扰较小。
共模干扰的电流大小不一定相等,但是方向(相位)相同的。电气设备对外的干扰多以共模干扰为主,外来的干扰也多以共模干扰为主,共模干扰本身一般不会对设备产生危害,但是如果共模干扰转变为差模干扰,干扰就严重了,因为有用信号都是差模信号。
差模干扰的电流大小相等,方向(相位)相反。由于走线的分布电容、电感、信号走线阻抗不连续,以及信号回流路径流过了意料之外的通路等,差模电流会转换成共模电流。
延庆川北小区45孙老师 收卖废品破烂垃圾炒股 废品孙 延庆废品王
-
电网串入共模干扰电压。
-
辐射干扰(如雷电,设备电弧,附近电台,大功率辐射源)在信号线上感应出共模干扰,原因是交变的磁场产生交变 的电流,地线-零线回路面积与地线-火线回路面积不相同,两个回路阻抗不同等原因造成电流大小不同。
-
接地电压不一样,简单的说就电位差而造就了共模干扰。
-
设备内部的线路对电源线造成的共模干扰。
共模干扰一般是以共模干扰电流存在的形式出现的,一般情况下共模干扰电流产生的原因有三个方面:
-
外界电磁场在电路走线中的所有导线上感应出来电压(这个电压相对于大地是等幅和同相的),由这个电压产生的电流。
-
由于电路走线两端的器件所接的地电位不同,在这个地电位差的驱动下产生的电流。
-
器件上的电路走线与大地之间有电位差,这样电路走线上会产生共模干扰电流。
器件如果在其电路走线上产生共模干扰电流,则电路走线会产生强烈的电磁辐射,对电子、电气产品元器件产生电磁干扰,影响产品的性能指标;另外,当电路不平衡时,共模干扰电流会转变为差模干扰电流,差模干扰电流对电路直接产生干扰影响。对于电子、电气产品电路中的信号线及其回路而言:差模干扰电流流过电路中的导线环路时,将引起差模干扰辐射,这种环路相当于小环天线,能向空间辐射磁场,或接收磁场。
whaosoft aiot http://143ai.com
雷电、附近发生的电弧、附近的电台或其它大功率辐射装置在电缆上产生的干扰为共模干扰。
共模干扰主要集中在1MHz以上。这是由于共模干扰是通过空间感应到电缆上的,这种感应只有在较高频率时才容易发生。但有一种例外,当电缆从很强的磁场辐射源(例如,开关电源)旁边通过时,也会感应到频率较低的共模干扰。
只要有一台频谱分析仪和一只电流卡钳就可以进行测量、判断了。
判断的步骤如下:
-
将电流卡钳分别卡在信号线或地线(火线或零线)上,记录下某个感应频率(f1)的干扰强度。
-
将电流卡钳同时卡住信号线和地线, 若能观察到(f1)处的干扰,则(f1)干扰中包含共模干扰成份,要判断是否仅含共模 干扰成份,进行步骤c的判别。
-
将卡钳分别卡住信号线和地线,若两根线上测得的(f1)干扰的幅度相同,则(f1)干扰中仅含共模干扰成份;若不相同,则(f1)干扰中还包含差模干扰成份。
共模干扰作为EMC干扰中最为常见且危害较大的干扰,我们抑制它最直接的方法就是滤波,这是抑制和防止共模干扰的一项重要措施。滤波器的功能就是允许某一特定频率的信号顺利通过,而其它频率的信号则要受到较大的抑制,它实质上是一个选频电路,它切断了电磁干扰沿信号线或电源线传播的路径,另外它还是压缩干扰频谱的一种有效方法,当干扰频谱不同于有用信号的频带时,可以用滤波器将无用的干扰信号滤除。因此,恰当地选择和正确地使用滤波器对抑制共模干扰是十分重要的。
如果有用信号是差模信号而干扰信号是共模信号,可使用共模电感来抑制干扰信号:
在电路中串入共模电感,当有共模干扰电流流经线圈时,由于共模干扰电流的同向性,会在线圈内产生同向的磁场而增大线圈的感抗,使线圈表现为高阻抗,产生较强的阻尼效果,以此衰减共模干扰电流,达到滤波的目的;当电路中的正常差模电流流经共模电感时,电流在同相绕制的共模电感线圈中产生反向的磁场而相互抵消,因而对正常的差模电流基本没有衰减作用。
上图,USB 端口的滤波处理-使用共模电感。
USB 传输线上的信号是差分信号而干扰源是共模干扰信号,在传输线上串上共模电感能较好的抑制共模干扰,而对有用的差分信号没有任何衰减。
上图,USB 高速运行会在DM/DP信号线上产生很强的共模干扰。
上图,电路中加入滤波器-共模电感后共模干扰信号得到有效抑制。
如果共模干扰源是在电源回路,可使用共模电容来抑制干扰信号。
在电路中引入共模电容,则共模电容提供最短的路径使共模干扰信号被旁路,从而抑制共模干扰的产生 。
如果电源回路同时还存在差模干扰,使用差模电容来抑制干扰
在电路中引入差模电容,则差模电容提供最短的路径使差模干扰信号被旁路,从而抑制差模干扰的产生 。
共模干扰作为EMC干扰中最为常见且危害很大的干扰,抑制它的方法除了滤波外,还可以通过对信号线路进行屏蔽,在PCB 板上大面积铺地降低地线阻抗来减少共模信号强度等方法。