任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量、指令系统等。对于指令系统,虽然形式上看似千差万别,但实际上只是符号的不同,其所代表的含义、所要完成的功能和寻址方式基本上是类似的。
因此,对于任何一款MCU,主要应从如下的几个方面来理解和掌握:
<strong>MCU的特点:</strong>
要了解一款MCU,首先需要知道就是其ROM空间、RAM空间、IO口数量、定时器数量和定时方式、所提供的外围功能模块(Peripheral Circuit)、中断源、工作电压及功耗等等。
我们在从事MCU应用开发过程中,难免会碰到MCU芯片异常的问题。比如异常复位,表现为复位脚有电平跳变或者干脆处于复位电平;在做代码调试跟踪时,发现代码往往进不到用户main()程序;或者时不时感觉芯片死掉了,功能完全不可控等。
针对类似严重异常情况的原因我在这里大致总结下,与大家分享。
1、时钟问题。一般表现在时钟配置异常,比方配置超出芯片主频工作范围。【对于STM32系列MCU,如果使用STM32CUBEMX图形化工具做配置,基本可以回避这个问题】
2、电源问题。比方电源质量差,纹波过大,尤其开关电源供电时;或者供电芯片质量差,输出不稳定;或者系统供电能力不足而引起电源波动等。
物联网时代的每个产品都需要安全保障,嵌入式开发人员必须确定其实施方案所需的安全级别,进行风险分析。利用具有广泛安全功能的Kinetis MCU,开发者可以顺利建立起信任、加密和防篡改三个关键的安全防范机制。
6月20日,恩智浦的专家将通过在线研讨会分享安全处理器的应用,我们将其中一部分精彩的讲义剧透给大家,小伙伴们一起来了解如何为周边设备实施安全防护。
<strong>一、影响EMC的因数</strong>
<strong>1.电压</strong>
电源电压越高,意味着电压振幅越大,发射就更多,而低电源电压影响敏感度。
<strong>2.频率</strong>
高频产生更多的发射,周期性信号产生更多的发射。在高频单片机系统中,当器件开关时产生电流尖峰信号;在模拟系统中,当负载电流变化时产生电流尖峰信号。
<strong>3.接地</strong>
在单片机编程中,有很多人会因为一些貌似简单的处理而把问题弄得乱七八糟,如林中蛛网一样,错综复杂。
而事实上,根据编程魔法之思想,对程序处理的过程严格划分部门、各施其职、部门内部互不干涉内政,是成功编程的关键。
也许我这样说,很多人还觉得很抽象。因为人人都知道模块化设计的理念,但是又有几人能把这个理念运用自如?
好,为了说明这个问题,我们举一例而示三:
<font size="3" color="blue"><strong>现在,我们要编写一个单片机的数据显示程序。</strong></font>
ARM最近刚刚宣布了对DesignStart项目的升级,加入了ARM Cortex-M3处理器。现在,可以通过DesignStart Eval即时、免费地获取相关IP,对基于Cortex-M0或者Cortex-M3处理器的定制化SoC进行评估、设计和原型开发。
原型设计的重要性常常被忽视,我希望通过本文以更多的细节阐述原型开发的重要性以及Cortex-M原型系统(MPS2+)如何帮助你方便地开始对你自己的设计进行评估和原型开发。
DesignStart不仅仅有处理器IP。DesignStart Eval和Designstart Pro包括处理器IP、一个参考子系统、以及免费的在线社区支持。此外,还提供来自ARM和ARM合作伙伴的专用支持、培训以及各种服务。
文.凌立民
<strong>保护软体资产不被滥用 </strong>
在过去的MCU应用产品开发过程中,最令独立软体开发商或系统整合商头痛的,就是如何确保MCU内部软体资产能受到严谨保护,同时兼顾合作厂商在软体开发上一定的弹性。正如图1中的例子,ARMv8-M架构可以把有价值的通讯协定放到TrustZone区域内,基于通讯协定的上层应用能够以不同记忆体位置来放置,方便不同的开发团队进行协同开发,依各自专长领域进行软体制作。此类应用包含短距离通讯协定、音讯编码器、生物辨识核心演算法⋯等。
最近在基于51单片机编程的过程中出现了个很奇怪的问题 “程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断”。在有过单片机中断编程经历者都知道当EA=1,ET0=1的条件下,满足TF0=1时,如果在此期间没有更高优先级的中断执行的情况下定时器中断0必定会产生中断响应。而在我所编写的程序中仅使用了定时器中断0,一个中断也就谈不上存在优先级问题。
经过我对自己程序的检查并对各教材中断程序对比发现我的程序中的一个问题:由于中断的不可控性决定其跳出中断返回主程序的不确定,而由于程序需要中断跳出后能跳到指定的地址。为了解决这个问题我在中断结束的地方直接用了无条件跳转指令“LJMP ADR16”其中ADR16是我想在中断结束后程序所运行的地址,而没有经过指令“RE”。
本文设计了一种基于2μm高功率光纤激光器的医疗仪,以STM32为控制核心,完成了人性化的人机触控界面功能设计、激光器的驱动控制、精密水冷单元的参数监控、配电模块的抗干扰设计以及输出功率的校准。
2μm高功率激光医疗仪市场需求越来越大,而目人机交互模块前国内此类设备在控制上缺乏对系统安全和出光精准度的考虑。同时随着YY0505-2012医用电气电磁兼容标准于2014年的执行,设计符合YY0505-2012标准的医用设备已迫在眉睫。因此,本文采用模块化设计,设计了一种基于STM32的2μm光纤激光器医疗仪控制系统,将水冷单元的参数监控、电源模块的抗干扰设计、输出功率的校准等集成于一体。测试结果表明,系统可靠稳定,操作方便。
<font size="3"><strong> 前言</strong></font>
客户在做 USB 通讯的时候,基本的需求就是发送某些数据到 USB host 端,同时接收一些数据从 USB Host 端,那么如何快速的建立一个工程并验证数据是否正确呢?下边我们就结合 STM32F072 的评估板(其他的 STM32xx 系列的实现方式都是类似的)来快速实现一个简单的数据收发实验。
<font size="3"><strong> 问题分析</strong></font>
<strong>前言</strong>:Cube 软件包的提供,极大的降低了开发难度。使用者在开发的过程中,只需参考 Cube 包中提供的例
程就能快速的实现对应功能开发。开发者为了快速开发 UART 功能,参考 Cube 包中的 UART 例程,
并根据应用情况,扩展了另一组 UART 接口。但是在应用过程中,发现两路 UART 不能共存。本文分
析了这种情况出现的原因。
<strong>背景介绍</strong>
摘要: 设计了一种基于CortexA8和H.264编码的无线视频监控系统。系统包含视频监控PC客户端、无线传输网络和视频采集端。视频采集端采用基于ARM CortexA8内核的SP5V210芯片作为中央处理器,并构建Linux系统对视频图像进行采集、H.264编码和无线传输,已编码压缩的图像数据通过实时传输协议RTP传输到视频监控PC客户端进行解码和显示。该系统具有组建快捷、灵活性强等特点,能够稳定地运行且满足设计要求,在安防系统和紧急救援系统中有着很好的应用前景。
<strong>引言</strong>
如今,心血管类疾病已经成为威胁人类身体健康的重要疾病之一,而清晰有效的心电图为诊断这类疾病提供了依据,心电采集电路是心电采集仪的关键部分,心电信号属于微弱信号,其频率范围在0.03~100 Hz之间,幅度在0~5 mV之间,同时心电信号还掺杂有大量的干扰信号,因此,设计良好的滤波电路和选择合适的控制器是得到有效心电信号的关键。基于此,本文设计了以STM32为控制核心,AD620和OP07为模拟前端的心电采集仪,本设计简单实用,噪声干扰得到了有效抑制。
<font size="3"><strong>1、总体设计方案</strong></font>
<strong>单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。</strong>
在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。
<strong>采用数字滤波算法克服随机干扰的误差具有以下优点:</strong>
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
<font color="blue"><strong>技术原理</strong></font>
<font size="3"><strong>工作中经过摸索实验,总结出单片机大致应用程序的架构有三种:</strong></font>
1. 简单的前后台顺序执行程序,这类写法是大多数人使用的方法,不需用思考程序的具体架构,直接通过执行顺序编写应用程序即可。
2. 时间片轮询法,此方法是介于顺序执行与操作系统之间的一种方法。
3. 操作系统,此法应该是应用程序编写的最高境界。
下面就分别谈谈这三种方法的利弊和适应范围等。
<font size="3"><strong>一、顺序执行法</strong></font>
作者:王朋朋
单片机进入中国30年,也正是单片机高速发展的时代。从简单的控制到嵌入式系统,再到物联网,从工业领域到消费电子、安防、医疗、汽车、智能家居等产品,单片机无处不在,并从高科技领域越来越多的进入我们的日常生活。
单片机的发展从8位开始,目前8位单片机仍占有较高市场份额,在很多应用中发挥重要作用,但32位的ARM产品显然成长更快。从8位到32位,不仅仅是位数和CPU内核的变化,在软件开发、工具和环境、工程师开发方式、生态系统方面,都带来了深刻的变化。甚至产品的名字也从早期的“单片机”,到更多地使用“微控制器”或者“嵌入式系统”这样的术语(如表1)。我们下文更多以MCU或微控制器来指代这一产品。
<font size="4" color="blue">前言</font>
模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高低阈值,用户可以预先设定个模拟看门狗的上下限电压值,一旦采集到的电压超出该上下限,将会触发模拟看门狗中断。模拟看门狗一般用于检测单个的常规或注入转换通道,或同时检测所有的常规和注入通道。
目前国内对1553B总线接口板的设计一般基于DDC公司BU-61580协议芯片完成,但只能完成协议处理部分,应用时还需外围的存贮器和微处理器等辅助芯片。故采用现场可编程门阵列(FPGA)实现整个接口板核心的设计。
<strong>1 系统总体架构</strong>
通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动,如图1 所示。





