MCU就这点事

2018-06-14 16:56:15 来源:芯师爷
标签:
MCU   编程

 

任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量、指令系统等。对于指令系统,虽然形式上看似千差万别,但实际上只是符号的不同,其所代表的含义、所要完成的功能和寻址方式基本上是类似的。因此,对于任何一款MCU,主要应从如下的几个方面来理解和掌握。

 

MCU的特点

要了解一款MCU,首先需要知道就是其ROM空间、RAM空间、IO口数量、定时器数量和定时方式、所提供的外围功能模块(Peripheral Circuit)、中断源、工作电压及功耗等等。

 

了解这些MCU Features后,接下来第一步就是将所选MCU的功能与实际项目开发的要求的功能进行对比,明确那些资源是目前所需要的,那些是本项目所用不到的。对于项目中需要用到的而所选MCU不提供的功能,则需要认真理解MCU的相关资料,以求用间接的方法来实现,例如,所开发的项目需要与PC机COM口进行通讯,而所选的MCU不提供UART口,则可以考虑用外部中断的方式来实现;

 

对于项目开发需要用到的资源,则需要对其Manua*进行认真的理解和阅读,而对于不需要的功能模块则可以忽略或浏览即可。对于MCU学习来讲,应用才是关键,也是最主要的目的。

 

明确了MCU的相关功能后,接下来就可以开始编程了。对于初学者或初次使用此款MCU的设计者来说,可能会遇到很多对MCU的功能描述不明确的地方,对于此类问题,可以通过两种方法来解决,一种是编写特别的验证程序来理解资料所述的功能;另一种则可以暂时忽略,程序设计中则按照自己目前的理解来编写,留到调试时去修改和完善。前一种方法适用于时间较宽松的项目和初学者,而后一种方法则适合于具有一定MCU开发经验的人或项目进度较紧迫的情况;

 

指令系统千万不要特别花时间去理解。指令系统只是一种逻辑描述的符号,只有在编程时根据自己的逻辑和程序的逻辑要求来查看相关的指令即可,而且随着编程的进行,对指令系统也会越来越熟练,甚至可以不自觉地记忆下来。

 

MCU的基本功能

对于绝大多数MCU,下列功能是最普遍也是最基本的,针对不同的MCU,其描述的方式可能会有区别,但本质上是基本相同的:

 

TImer(定时器):TImer的种类虽然比较多,但可归纳为两大类:一类是固定时间间隔的TImer,即其定时的时间是由系统设定的,用户程序不可控制,系统只提供几种固定的时间间隔给用户程序进行选择,如32Hz,16Hz,8Hz等,此类TImer在4位MCU中比较常见,因此可以用来实现时钟、计时等相关的功能;另一类则是Programmable Timer(可编程定时器),顾名思义,该类Timer的定时时间是可以由用户的程序来控制的,控制的方式包括:时钟源的选择、分频数(Prescale)选择及预制数的设定等,有的MCU三者都同时具备,而有的则可能是其中的一种或两种。此类Timer应用非常灵活,实际的使用也千变万化,其中最常见的一种应用就是用其实现PWM输出(具体的应用,后续会有特别的介绍)。由于时钟源可以自由选择,因此,此类Timer一般均与Event Counter(事件计数器)合在一起;

 

IO口:任何MCU都具有一定数量的IO口,没有IO口,MCU就失去了与外部沟通的渠道。根据IO口的可配置情况,可以分为如下几种类型:

 

纯输入或纯输出口:此类IO口有MCU硬件设计决定,只能是输入或输出,不可用软件来进行实时的设定;

 

直接读写IO口:如MCS-51的IO口就属于此类IO口。当执行读IO口指令时,就是输入口;当执行写IO口指令则自动为输出口;

 

程序编程设定输入输出方向的:此类IO口的输入或输出由程序根据实际的需要来进行设定,应用比较灵活,可以实现一些总线级的应用,如I2C总线,各种LCD、LED Driver的控制总线等;

 

对于IO口的使用,重要的一点必须牢记的是:对于输入口,必须有明确的电平信号,确保不能浮空(可以通过增加上拉或下拉电阻来实现);而对于输出口,其输出的状态电平必须考虑其外部的连接情况,应保证在Standby或静态状态下不存在拉电流或灌电流。

 

外部中断:外部中断也是绝大多数MCU所具有的基本功能,一般用于信号的实时触发,数据采样和状态的检测,中断的方式由上升沿、下降沿触发和电平触发几种。外部中断一般通过输入口来实现,若为IO口,则只有设为输入时其中断功能才会开启;若为输出口,则外部中断功能将自动关闭(ATMEL的ATiny系列存在一些例外,输出口时也能触发中断功能)。外部中断的应用如下:

 

外部触发信号的检测:一种是基于实时性的要求,比如可控硅的控制,突发性信号的检测等;而另一种情况则是省电的需要;

 

信号频率的测量;为了保证信号不被遗漏,外部中断是最理想的选择;

 

数据的解码:在遥控应用领域,为了降低设计的成本,经常需要采用软件的方式来对各种编码数据进行解码,如Manchester和PWM编码的解码;

 

按键的检测和系统的唤醒:对于进入Sleep状态的MCU,一般需要通过外部中断来进行唤醒,最基本的形式则是按键,通过按键的动作来产生电平的变化;

 

通讯接口:MCU所提供的通讯接口一般包括SPI接口,UART,I2C接口等,其分别描述如下:

 

SPI接口:此类接口是绝大多数MCU都提供的一种最基本通讯方式,其数据传输采用同步时钟来控制,信号包括:SDI(串行数据输入)、SDO(串行数据输出)、SCLK(串行时钟)及Ready信号;有些情况下则可能没有Ready信号;此类接口可以工作在Master方式或Slave方式下,通俗说法就是看谁提供时钟信号,提供时钟的一方为Master,相反的一方则为Slaver;

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
快速移植多传感器系统的解决方案

打造新的多传感器系统可能是一项艰苦工作,因为您必须确保设计符合传感器的特定要求,并做到长期的准确性和可靠性。当根据应用的要求,需要更多无线连接时,设计师很难提供这样一种解决方案——既能最大限度提高无线电灵敏度,扩大其覆盖范围,又能维持无噪声信号链运行。

国内MCU厂商在市场爆炸增长环境下的机遇

微控制器(MCU),也就是我们所说的单片机,是今天电子产品的心脏,被广泛地应用到消费和工业电子产品中。小到体温计、无线充电器和智能手环,大到数控机床、机器人和汽车,都有MCU的身影。

用电源链串联起美好生活
用电源链串联起美好生活

电源在MCU、FPGA、工业、测试设备、游戏设备、医疗设备、自动化、通信系统、锂电池供电设备、路由器及便携式设备等多个市场中扮演着重要角色。

百亿级物联网设备造就MCU市场需求暴涨,国内MCU厂商如何突围?
百亿级物联网设备造就MCU市场需求暴涨,国内MCU厂商如何突围?

随着物联网和新能源汽车的高速发展,未来MCU的市场需求将有爆炸性的增长,前景看好。在竞争激烈的全球市场中,国产MCU是最有机会突出重围的一抹朝阳。

带高灵敏度、防水设计、最高支持36通道的电容触摸按键的MCU解决方案

日常生活中,为我们的生活带来便利的各种各样的家电产品、住宅设备越来越先进,功能也越来越强大。然而如果没有更强力的人机交互界面支持,又很难操控这些功能。近年来出现的电容触摸,因其美观,防潮等优点逐渐扩展到家电和医疗保健设备上。而且新一代电容触摸,因其无论带上手套还是不接触,亦或是沾上水,都能操作的特点,可使用的场合更广泛。

更多资讯
半导体行业不景气,连带硅晶圆受伤?
半导体行业不景气,连带硅晶圆受伤?

1月21日, SEMI 产业分析总监曾瑞榆指出,上半年12英寸硅晶圆由于需求平淡,价格面临压力,8英寸价格则维持健康水准。总的来说,今年整体价格将维持高档,但增长速度已经放缓。

新内幕,苹果曾欲在iPhone XS使用高通基带?
新内幕,苹果曾欲在iPhone XS使用高通基带?

近日根据一封苹果与高通高管之间的电子邮件显示,苹果曾打算在iPhone XS/XR上采用高通的调制解调器。事实上苹果在新iPhone系列上全部采用的是英特尔提供的通讯芯片,并没有采用高通方案。

MOSFET需求实现反弹,靠的居然是......
MOSFET需求实现反弹,靠的居然是......

英特尔去年斥巨资扩大14nm产能,随着CPU产能不断提升,缺货问题在今年第一季度已经开始缓解。ODM/OEM厂都已经开始提高服务器和PC出货,同步带动了MOSFET的市场需求。

半导体产业影响重大,韩国自2016年后首次出现出口额负增长
半导体产业影响重大,韩国自2016年后首次出现出口额负增长

受半导体产业调整影响,韩国官方统计自本月1日至20日韩国整体出口额下降14%,预计今年第一个月的出口呈减少趋势,并创下2016年10月后首次连续2个月出口额负增长的纪录。

DSP芯片的起源和发展趋势

也许有人会觉得DSP作为一个产品,从一文不值到创造每年数十亿美元的价值之后又销声匿迹很奇怪。但是这确实是一个好消息的开始。它并没有销声匿迹,只是融入到了每一部数字处理系统中而已。

电路方案