<meta name="keywords" content="必胜时时彩开户,keywords" /> 快速控制一款新型MCU的措施
(玩电子) 电子手艺学习与研究

快速控制一款新型MCU的措施

作者:佚名   泉源:不详   点击数:x  更新时间:2014年08月31日   【字体:年夜

 

 
 
任何一款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;
 
              **  UART(Universal Asynchronous Receive Transmit):属于最基本的一种异步传输接口,其旌旗暗记线只需Rx和Tx两条,基本的数据名堂为:Start Bit + Data Bit(7-bits/8-bits) + Parity Bit(Even, Odd or None) + Stop Bit(1~2Bit)。一名数据所占的时间称为Baud Rate(波特率)。关于年夜多数的MCU来讲,数据为的长度、数据校
 
              验要领(奇校验、偶校验或无校验)、阻拦位(Stop Bit)的长度及Baud Rate是可以经由历程法式模范模范编程阻拦无邪设定。此类接口最经常应用的要领就是与PC机的串口阻拦数据通讯。
 
              **  I2C接口:I2C是由Philips开发的一种数据传输协定,异常接纳2根旌旗暗记来完成:SDAT(串行数据输入输入)和SCLK(串行时钟)。其最年夜的利益是可以在此总线上挂接多个装备,经由历程地址来阻拦识别和会见;I2C总线的一个最年夜的利益就是异常便利
 
               
 
              用软件经由历程IO口来完成,其传输的数据速率完全由SCLK来控制,可快可慢,不像UART接口,有严酷的速率请求。
 
              * Watchdog(看门狗准时器):Watchdog也是绝年夜多数MCU的一种基本装备(一些4位MCU能够没有此功效),年夜多数的MCU的Watchdog只能允许法式模范模范对其阻拦复位而不克不及对其关闭(有的是在法式模范模范烧入时来设定的,如Microchip PIC系列MCU),而有的MCU则是经由历程特定的要领来决议其能否掀开,如Samsung的KS57系列,只需法式模范模范会见了Watchdog存放器,就自动开启且不克不及再被关闭。浅易而言watchdog的复位时间是可以法式模范模范来设定的。Watchdog的最基本的应用是为MCU由于意外的误差而招致去世机供应了一种自我恢复的才干。
 
MCU法式模范模范的编写:
 
    MCU的法式模范模范的编写与PC下的法式模范模范的编写存在很年夜的差异,虽然现在基于C的MCU开发工具愈来愈盛行,但关于一个高效的法式模范模范代码和喜欢应用汇编的设计者来讲,汇编语言依然是最精练、最有用的编程语言。关于MCU的法式模范模范编写,其基本的框架可以说是年夜体不合的,浅易分为初始化部门(这是MCU法式模范模范设计与PC最年夜的不合),主法式模范模范循环体和中止处置赏罚赏罚法式模范模范三年夜部门(见图1 a 和 b),其划分诠释以下:
 
              * 初始化:关于一切的MCU法式模范模范的设计来讲,出世化是最基本也是最主要的一步,浅易网罗如
 
              ** 樊篱一切中止并初始化客栈指针:初始化部门浅易不欲望有任何中止发生;
 
              **  扫除系统的RAM区域和显示Memory:虽然有时能够没有完全的须要,但从可靠性及不合性的角度出发,特殊是关于防止意外的弱点,还是建议养成优胜的编程习气;
 
              **  IO口的初始化:凭证项目的应用的请求,设定相关IO口的输入输入要领,对与输入口,须要设定其上拉或下拉电阻;关于输出口,则必须设定其出世的电平输入,以防泛起不须要的弱点;
 
              ** 中止的设置:关于一切项目须要用到的中止源,应当给予开启并设定中止的触发条件,而关于不应用的多余的中止,则必须给予关闭;
 
              ** 其他功效模块的初始化:关于一切须要用到的MCU的焦点功效模块,必须按项目的应用的请求阻拦照顾的设置,如UART的通讯,须要设定Baud Rate,数据长度,校验要领和Stop Bit的长度等,而关于Programmer Timer,则必须设置其时钟源,分频数及Reload Data 等;
 
              **  参数的出世化:完成了MCU的硬件和资源的出世化后,接上去就是对法式模范模范中应用到的一些变量和数据的初始化设置,这一部门的初始化须要凭证详细的项目及法式模范模范的全体部署来设计。关于一些用EEPROM来生涯项目预制数的应用来讲,建议在初始化时将相关的数据拷贝到MCU的RAM,以前进法式模范模范对数据的会见速率,同时降低系统的功耗(准绳上,会见外部EEPROM都邑增添电源的功耗)。
 
              * 主法式模范模范循环体:年夜多数MCU是属于长时间不一连运转的,是以其主法式模范模范体基本上都是以循环的要领来设计,关于存在多种使命形式的应用来讲,则能够存在多个循环体,相互之间经由历程状态标志来阻拦转换。关于主法式模范模范体,浅易情形下主要部署以下的模块:
 
              ** 盘算法式模范模范:盘算法式模范模范浅易较量耗时,是以坚决否决放在任何中止中处置赏罚赏罚,特殊是乘除法运算;
 
               
 
              ** 实时性请求不高或没有实时性请求的处置赏罚赏罚法式模范模范;
 
              **  显示传输法式模范模范:主要针对存在外部LED、LCD Driver 的应用;
 
              * 中止处置赏罚赏罚法式模范模范:中止法式模范模范主要用于处置赏罚赏罚实时性请求较高的义务和事宜,如,外部突发性旌旗暗记的检测,按键的检测和处置赏罚赏罚,准时计数,LED显示扫描等。浅易情形下,中止法式模范模范应尽能够保证代码的精练和短小,关于不须要实时行止置赏罚的功效,可以在中止中设置触发的标志,然后由主法式模范模范来推行详细的事务――这一点异常主要,特殊是关于低功耗、低速的MCU来讲,必须保证一切中止的实时照顾。
 
              * 关于不合义务体的部署,不合的MCU其处置赏罚赏罚的措施也有所不合。例如,关于低速、低功耗的MCU(Fosc=32768Hz)应用,推敲到此类项目均为手持式装备和接纳浅易的LCD显示,对按键的回声和显示的回声请求实时性较高,应此浅易接纳准时中止的要领来处置赏罚赏罚按键的行动和数据的显示;而关于高速的MCU,如Fosc>1MHz的应用,由于此时MCU有足够的时间来推行主法式模范模范循环体,是以可以只在照顾的中止中设置种种触发标志,并将一切的义务放在主法式模范模范体中来推行;
              * 在MCU的法式模范模范设计中,还须要特殊重视的一点就是:要防止在中止和主法式模范模范体中同时会见或设置统一个变量或数据的情形。有用的预防措施是,将此类数据的处置赏罚赏罚部署在一个模块中,经由历程断定触发标志来决议能否推行该数据的相关操作;而在其他的法式模范模范体中(主要是中止),对须要阻拦该数据的处置赏罚赏罚的地方只设置触发的标志。――这可以保证数据的推行是可预知和唯一的。
 
 
    总之,关于MCU开发来讲,必须记着一点:“条条年夜路通罗马”,没有做不到的事,要害是看措施能否准确!再就是多做多着手和多想。
 

文章议论