MCU(MicroControllerUnit)中文名称为多点操控单元,又称单片微型核算机(SingleChipMicrocomputer),是指跟着大规模集成电路的呈现及其开展,将核算机的CPU、RAM、ROM、守时数器和多种I/O接口集成在一片芯片上,构成芯片级的核算机,为不同的运用场合做不同组合操控。
在现代嵌入式开发范畴,经过了解客户需求和电子产品趋势,收集市面上许多的不同类型的MCU材料,结合商场上刚呈现的低本钱高性能MCU新产品,是成功进行MCU选型的根底。一般来说,嵌入式体系开发人员在挑选MCU时,一般遵从四项首要规范∶功用、可用性、本钱和了解程度。
微操控器(Microcontroller;MCU)是一种无所不在的嵌入式操控晶片,玩具、家电、医疗、轿车等范畴都有其存在,担任各种感测、监控作业,例如咱们常见的电饭煲、电磁炉、咖啡壶等内部均由MCU担任感测水温,并承受运用者的指示是否该加温、欢腾,相同的冷气机的温控也是用MCU来完成。此外,如桌上电脑所用的键盘、滑鼠等也各有一颗MCU,担任将击打的键码、目标的X/Y轴位移偏量等资讯回传给电脑CPU。
对於挑选MCU进行规划的体系规划师来说,可取得的许多的不同类型MCU会让选型作业变得杂乱,如SiliconLabs作业电压低至0.9V的8位元MCU,德州仪器针对低功耗运用的多款16位元 MSP430,飞思卡尔和英飞 针对轿车运用的MCU计划,Atmel 的AVR系列和Microchip的PIC系列一直在移风易俗……尽管新的 32位ARM核Cortex-m3处理器现已发布良久,陈旧的8位8051核仍是在不同MCU中占据干流方位……面临缤纷多彩的MCU国际,正确把握MCU开展趋势,了解MCU架构,乃至於凭借挑选东西进行剖析比较就显得极端必要。
MCU的首要分类:
按用处分类:
通用型:将可开发的资源(ROM、RAM、I/O、 EPROM)等悉数供给给用户。
专用型:其硬件及指令是依照某种特定用处而规划,例如录音机机芯操控器、打印机操控器、电机操控器等。
按其底子操作处理的数据位数分类:
依据总线或数据暂存器的宽度,单片机又分为1位、4位、8位、16位、32位乃至64位单片机。4位MCU大部份运用在核算器、车用外表、车用防盗设备、呼叫器、无线电话、CD播放器、LCD驱动操控器、LCD游戏机、儿童玩具、磅秤、充电器、胎压计、温湿度计、遥控器及傻瓜相机等;8位MCU大部份运用在电表、马达操控器、电动玩具机、变频式冷气机、呼叫器、传真机、来电辨识器(CallerID)、电话录音机、CRT显示器、键盘及USB等;8位、16位单片机首要用于一般的操控范畴,一般不运用操作体系, 16位MCU大部份运用在举动电话、数字相机及摄录放影机等;32位MCU大部份运用在Modem、GPS、PDA、HPC、STB、Hub、Bridge、Router、作业站、ISDN电话、激光打印机与五颜六色传真机; 32位用于网络操作、多媒体处理等杂乱处理的场合,一般要运用嵌入式操作体系。64位MCU大部份运用在高阶作业站、多媒体互动体系、高档电视游乐器(如SEGA的Dreamcast及Nintendo的GameBoy)及高档终端机等。
8位MCU作业频率在16~50MHz之间,着重简略效能、低本钱运用,在现在MCU商场总值仍有必定方位,而不少MCU业者也继续为8bit MCU开发频率调理的节能规划,以因应绿色年代的产品开发需求。
16位MCU,则以16位运算、16/24位寻址才干及频率在24~100MHz为干流规范,部分16bit MCU额定供给32位加/减/乘/除的特别指令。由于32bit MCU呈现并继续降价及8bit MCU简略经用又廉价的贱价优势下,夹在中心的16bit MCU商场不断被揉捏,成为出货份额中最低的产品。
32位MCU可说是MCU商场干流,单颗报价在1.5~4美元之间,作业频率大多在100~350MHz之间,履行效能更佳,运用类型也适当多元。但32位MCU会由于操作数与内存长度的添加,相同功用的程序代码长度较8/16bit MCU添加30~40%,这导致内嵌OTP/FlashROM内存容量不能太小,而芯片对外脚位数量暴增,进一步限制32bit MCU的本钱减缩才干。
内嵌程序存储器类型
下面以51单片机为例(MCS-51系列MCU是我国运用最多的单片机),依据其内部存储器的类型不同能够分为以下几个底子型:
1.无ROM型 :8031
2.ROM型:8051
3.EPROM型:8751
4.EEPROM 型:8951
5.增强型:8032/8052/8752/8952/C8051F
MCU按其存储器类型可分为无片内ROM型和带片内ROM型两种。关于无片内ROM型的芯片,有必要外接EPROM才干运用(典型芯片为8031)。带片内ROM型的芯片又分为片内EPROM型(典型芯片为87C51)、MASK片内掩模ROM型(典型芯片为8051)、片内FLASH型(典型芯片为89C51)等类型,一些公司还推出带有片内一次性可编程ROM(One TIme Programming, OTP)的芯片(典型芯片为97C51)。MASKROM的MCU价格廉价,但程序在出厂时现已固化,合适程序固定不变的运用场合;FLASH ROM的MCU程序能够重复擦写,灵活性很强,但价格较高,合适对价格不灵敏的运用场合或做开发用处;OTPROM的MCU价格介于前两者之间,一起又具有一次性可编程才干,合适既要求必定灵活性,又要求低本钱的运用场合,尤其是功用不断创新、需求敏捷量产的电子产品。
由于MCU着重是最大密布度与最小芯片面积,以有限的程序代码到达操控功用,因而当今MCU八成运用内建的MaskROM、OTP ROM、EEPROM或Flash内存来储存韧体码,MCU内建Flash内存容量从低阶4~64KB到最高阶512KB~2MB不等。
存储器结构
MCU依据其存储器结构可分为哈佛(Harvard)结构和冯?诺依曼(Von Neumann)结构。现在的单片机绝大多数都是依据冯·诺伊曼结构的,这种结构清楚地界说了嵌入式体系所必需的四个底子部分:一个中央处理器中心,程序存储器(只读存储器或许闪存)、数据存储器(随机存储器)、一个或许更多的守时/计时器,还有用来与外围设备以及扩展资源进行通讯的输入/输出端口,所有这些都被集成在单个%&&&&&%芯片上。
指令结构
MCU依据指令结构又可分为CISC(Complex InstrucTIon Set Computer,杂乱指令集核算机)和RISC(Reduced InstrucTIon Set Comuter,精简指令集核算机微操控器)
MCU的运用技巧:
在MCU运用开发中,代码的运用功率、抗搅扰性和可靠性等问题仍困扰著大部份运用工程师。以下是MCU开发运用中应把握的底子技巧。
1、MCU的通用测验办法 MCU从出产出来到封装出货的每个不同的阶段会有不同的测验办法,其间首要会有两种∶中测和成测。 所谓中测便是WAFER的测验,它会包含产品的功用验证及AC、DC的测验。专案适当繁复,以HOLTEK产品为例最首要的几项如下∶
(1) 接续性测验∶检测每一根I/O PIN内接的保护用二极体是否功用无误。
(2)功用测验∶以产品规划者所供给测验材料(TEST PATTERN)灌入IC,查看其成果是否与其时SIMULATION时状况相同。
(3)STANDBY电流测验∶丈量IC处於HALT形式时即每一个接点(PAD)在1态0态或Z态坚持不变时的漏电流是否契合最低之规范。
(4) 耗电测验∶整颗IC的静态耗电与动态耗电。
(5) 输入电压测验∶丈量每个输入接脚的输入电压反响特性。
(6) 输出电压测验∶丈量每个输出接脚的输出电压位元。
(7) 相关频率特性(AC)测验,也是经过外灌必定频率,从I/O 口来看输出是否与之匹配。
(8) 为了确保IC出产的长期且安稳质量,还会做产品的可靠性测验,这些测验包含ESD测验,LATCH UP测验,温度回圈测验,高温储存测验,湿度储存测验等。
成测是产品封装好後的测验,即PACKAGE测验,其意图是承认经过中测的IC产品在封装进程中是否有损坏。测验办法首要是仪器主动测验,但测验项目仍与WAFER TEST相同。
2、在demo板上采样时,电压不安稳成果有动摇,怎么消除?
一般来说,模拟器都是作业在一个稳压的环境(一般为5V)。假如用模拟器的A/D时,要注意其A/D参阅电压是由模拟器内部给出,仍是需求外部供给。A/D 转化需求一个接连的时钟周期,所以在仿真时不能用单步调试的办法,否则会形成A/D采样值禁绝。至於A/D采样不安稳,能够在A/D输进口加一电容,起到滤波效果,再在软体处理时选用中值滤波的办法。
3、MCU体系为了省电,常常要进入掉电(POWER DOWN)状况,此刻怎么才干取得最低功耗?
MCU的I/O口可用作输入和输出状况。以HOLTEK最简略的 I/O MCUHT48R05A-1为例,当作为输入时可设置成带上拉电阻的斯密特输入;作为输出时是 CMOS输出。假如程式进入省电状况(HALT)时,首要,各个有用的I/O仍需输出必定值,以确保外部电路作业正常,一起请当心不要让外部电路坚持长耗电状况(如长期导通继电器);对於暂时不必的I/O口,为了节约功耗主张将I/O置为输出状况,而且输出为低。
4、怎么削减程式中的bug?
因体系中实践运转的参数都是有规模的,体系运转中要考虑的超规模办理参数有∶
(1) 物理参数∶这些参数首要是体系的输入参数,它包含鼓励参数、收集处理中的运转参数和处理完毕的成果参数。合理设定这些鸿沟,将超出鸿沟的参数都视为非正常鼓励或非正常回应进行犯错处理。
(2) 资源参数∶这些参数首要是体系中的电路、器材、功用单元的资源,如记忆体容量、存储单元长度、堆叠深度。在程式规划中,对资源参数不允许超规模运用。
(3) 运用参数∶这些运用参数常表现为一些MCU、功用单元的运用条件。如EEPROM的擦写次数与材料存储时间等运用参数边界。
(4) 进程参数∶指体系运转中的有序改动的参数。 对程式师而言,须养成良好习惯,在程式的最初,有次序的用自己喜爱文字参数对应列表来代替,然後用自己界说的文字参数来编写程式,这样在做程式的修正及保护时只在程式的最初做改变即可,不必修正到程式段,才比较简单且不会犯错。
5、怎么进步C言语编程代码的功率?
用C言语进行MCU程式规划是MCU开发与运用的必然趋势。假如运用C编程时,要到达最高的功率,最好了解所运用的C编译器。先实验一下每条C言语编译以後对应的组合言语的句子行数,这样就能够很清晰的知道功率。在今後编程时,运用编译功率最高的句子。各家的C编译器都会有必定的差异,故编译功率也会有所不同,优异的嵌入式体系C编译器代码长度和履行时间仅比以组合言语编写的相同功用程度长5-20%。对於杂乱而开发时间紧的专案时,能够选用C言语,但条件是要求你对该MCU体系的C言语和C编译器十分了解,特别要注意该C编译体系所能援助的材料类型和演算法。尽管C 言语是最遍及的一种高阶言语,但由於不同的MCU厂家其C言语编译体系是有所不同的,特别是在一些特别功用模组的操作上。所以假如对这些特性不了解,那麽调试起来问题就会许多,反而导致履行功率低於组合言语。
6、用作RF操控时,MCU的时钟(晶振)、材料线会辐射基频或倍频,被LNA扩大後进入混频,呈现带内Spur而无法滤除,怎么处理?
在规划高频电路用PCB有许多注意事项,尤其是GHz等级的高频电路,更需求注意各电子元件pad与印刷地图的长度对电路特性所形成的影响。
最近几年高频电路与数位电路共用相同电路板,构成所谓的混载电路体系好像有添加的趋势,相似如此的规划常常会形成数位电路动作时,高频电路却产生动作不安稳等现象,其间原因之一是数位电路产生的杂讯,影响高频电路正常动作所形成的。为了防止上述问题除了设法切割两电路block之外,规划电路板之前充沛反省规划设想,才是底子应有的办法。底子上,规划高频电路用电路板必需把握下列三大原则∶高质感、不行取巧、不行匆促抢时间。
以下是规划高频电路板的一些主张∶
(a) 印刷地图的长度会影响电路特性。尤其是传输速度为 GHz高速数位电路的传输线路,一般会运用strip line,一起藉由调整配线长度补正传输延迟时间,其实这也意味著电子元件的设置方位对电路特性具有绝对性的影响。
(b) 接地越大越好。铜箔面全体设置接地层,而衔接via的较大接地上则是高频电路板与高速数位电路板一起的特徵,此外高频电路板最忌讳运用幅宽细窄的印刷地图描绘地上。
(c) 电子元件的接地端子,以最短的长度与电路板接地。详细办法是在电子元件的接地端子pad邻近设置via,使电子元件能以最短的长度与电路板接地。
(d) 信号线作短配线规划。不行恣意加大配线长度,尽量缩短配线长度。
(e) 削减电路之间的结合。尤其是滤波器与扩大器I/O之间作电路切割十分重要,它适当於音频电路的串扰对策。
(f) MCU回路布线考虑∶震动电路尽或许挨近IC震动脚位;震动电路与VDDVSS坚持满足的间隔;震动频率大於1MHz时不需加osc1osc2电容;电源与地间要最短方位并尽量布设等宽与等距的线,於节点方位加上104/ 103/102等陶瓷电容。
7、遥控是MCU的底子运用,在规划编解码时要注意什麽?
一般来说,完好的遥控码分为头码、位址码、材料码和校验码四个组成部分。头码依据不同的厂家各不相同,位址码和材料码都由逻辑“1”和逻辑“0”组成。编码的规划意图,便是依照编码规矩发送不同的码值。遥控编码晶片最常用的是在空调、DVD、车库门等遥控器上。
规划编码程式能够分为三个部分∶
(1) 了解码型的特性。遥控码的头码和位址码(也称为客户码)是固定不变的,材料码和校验码依据不同的键值而改动。
(2) 核算发码时间。遥控码大部分都是由逻辑“1”和逻辑“0” 组成,也便是由一串固定占空比、固定周期的方波所组成。一般这些方波的周期是毫秒乃至微秒等级,需求在时间上核算的比较准确。所以你挑选发码MCU类型的时分,就要考虑到MCU的运转速度是不是够快,以及程式运转时间够不够。
(3) 程式的编写。选定MCU类型之後,开端规划程式流程。一般来说咱们运用I/O口就能够做发码的输出埠。发码程式一般由几个子程式组成,头码副程式、逻辑1副程式,逻辑0副程式以及校验码的演算法副程式。一旦咱们得到要发送码的指令後,首要调用头码副程式,然後依据客户码和键值调用逻辑1副程式或许逻辑0副程式,最後调用校验码演算法副程式输出校验码。
规划解码程式也能够分为三部分∶
(1) 了解编码波形特性。从剖析编码的高、低脉冲宽度下手,了解逻辑“1”和逻辑“0”的波形占空比、周期,了解头码的特性。
(2) 承认接纳办法。一般咱们能够用I/O口查询办法或许INT 口中止回应办法来接纳编码。这两者的区别是I/O口查询办法比较消耗MCU的运转时间资源,需求不断的去侦测I/O的电平改动,防止漏掉有用的码值;而INT口中止接纳办法则比较节约资源,当外部有电平改动时,MCU才需求去处理,不需求时间进行侦测。可是INT口中止接纳办法不能区分相同周期不同占空比的波形特性,当编码所带着的逻辑“1”和逻辑“0”具有这种特性时,就无法经过INT口中止接纳办法来区分了,由于INT中止只是在上升沿或许下降沿的时分才触发。
(3) 将接纳的码值存储并剖析履行。依据判别凹凸电平的宽度(计时器或许延时),能够得到码值,也便是所说的解码。一般咱们接连收到3个相同的完好码值,就承认此码确实被宣布,并接纳成功。当解码完毕,依据码值咱们能够判别出是哪个按键被按下,由此去履行相对的按键功用。
8、怎么规划操控体系(发电机体系)的重定电路?
MCU复位可分为内部与外部事情复位。外部事情复位包含上电复位、RES重定和低电压重定。上电复位和RES复位是人为的正常重定,以确保程式计数器被清零且程式从头开端履行。要正常进行这两种重定动作,需求外接正确的RES重定电路,一般来说不同的MCU的重定电路稍有不同,MCU厂商都会供给规范的重定电路材料。以HOLTEK %&&&&&%为例,咱们供给的重定电路是RES脚接100KΩ电阻至VDD; RES脚再接10KΩ电阻和0.1μF的%&&&&&%至VSS。
当电源电压受外部搅扰,低於正常作业电压时,会形成程式功用运转不正常,严峻的还或许形成MCU死机。此刻会对发电机体系形成严峻後果,因而需求用低电压重定来处理这个问题。一般能够用两个办法完成低电压重定∶
(1) 外加一个电压检测晶片(例如7033)加到RES脚上,当电源电压低於某个临界值时,电压检测晶片会给出一个低电平到RES脚使MCU复位,防止MCU死机。
(2) 有些厂家的MCU内部会有一个低电压检测LVR功用,例如HOLTEK MCU。当电源电压低於某一个临界值时,MCU会主动复位防止死机,外部不需求再衔接任何检测电压的电路。
除了外部电源不安稳会形成MCU复位,内部WDT溢出也会形成复位,即内部事情复位。对於需求长期安稳作业的体系来说,看门狗是十分必要的,它能够防止程式跑飞形成的过错。当重定产生时,要确保重定後能与重定前的各个状况无缝的衔接起来,就需求用软体来断定重定前程式履行到哪个程式段。
以HOLTEK MCU为例,除了上电复位之外,通用存放器重定前後的值不会产生改动。那麽就能够设定一些存放器记载程式当时运转在哪一个程式功用段。一旦产生重定,只需求读出那些存放器的值就能够跳转到重定之前运转的程式功用段运转。别的,HOLTE MCU内部有两个特别标?位元PD和TO,能够依据此两位元的值来断定详细是什麽原因形成的复位。