02 2012 档案
摘要:引言ARM公司于2008年11月12日发布了armCortex微控制器软件接口标准(CMSIS:CortexMicrocon-trollerSoftwareInteRFaceStandard)。CMSIS是独立于供应商的Cortex-M微控制器系列硬件抽象层,为芯片厂商和中间件供应商提供了连续的、简单的微控制器软件接口,简化了软件复用,降低了Cortex-M0上操作系统的移植难度,并缩短了新入门的微控制器开发者的学习时间和新产品的上市时间。根据近期的调查研究,软件开发已经被嵌入式行业公认为最主要的开发成本。图19.9-1为近年来软件开发与硬件开发成本对比图。因此,arm与Atmel、IAR、K
阅读全文
摘要:NuMicroM051系列微控制器本身有对系统电压进行检测的功能,一旦系统电压低于设定的门限电压后,将自动停止正常运行,并可设置进入复位状态。当系统电压稳定恢复到设定的门限电压之上,将再次启动运行,即相当于一次掉电再上电的复位。作为一个正式的系统或产品,当系统基本功能调试完成后,一旦进行现场测试阶段,请注意马上改写芯片的配置位,启动内部欠压电压检测功能。NuMicroM051系列微控制器支持宽电压工作范围,但是经常工作在5V或3V系统,有必要进行适当的配置。对于5V系统,设置欠压电压为4.5V;对于3V系统,设置欠压电压为2.7V。当允许欠压电压检测时,一旦NuMicroM051系列微控制器的
阅读全文
摘要:USER配置支持XT1时钟滤波器使能、复位后CPU时钟选择、欠压检测使能、欠压电压选择、欠压复位使能、配置启动选择、安全锁等功能。………………书籍下载地址(复制到下载工具进行下载):http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rarhttp://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar注:书籍内容会不定期进行更新!
阅读全文
摘要:一个映像文件里可以包含多个域(region),它们在装载和运行时可以有不同的地址。这个地址可以用armlink的两个参数来确定:ro-base设置代码段(RO)在装载域(loadview)和运行域(executionview)里的地址。rw-base设置数据段(RW)在运行域里的地址。实际上,当域的内存映射关系比较简单时,可以使用这两个参数,但它们不能处理更为复杂的内存映射(memeorymap),在这种情况下,就要用分散装载(scatterloading)技术。分散装载技术可以把应用程序分割成多个RO域和RW域,并且给它们指定不同的地址。这在嵌入式的实际应用中,有很大好处。在一个嵌入式系统中
阅读全文
摘要:用户应用程序在运行过程当中,有时会有特殊需求,需要实现单片机系统软复位(热启动之一),传统的单片机由于硬件上未支持此功能,用户必选用软件模拟实现,实现起来比较麻烦。NuMicroM051微控制器实现了此功能,用户只需简单的控制IPRSTC1寄存器的其中两位CHIP_RST/CPU_RST就可以系统复位了,为了执行复位的目的,当然也可以通过看门狗进行复位,但是没有前者来得直接。……………………………………书籍下载地址(复制到下载工具进行下载):http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rarhttp://files.c.
阅读全文
摘要:生活上有很多东西都搭载着单片机而进行工作的,而且有相当一部分的设备、仪器、产品都是靠蓄电池来提供电源的,往往这些靠蓄电池供电的设备、仪器、产品都能够用上一大段时间。例如我们经常接触到的遥控器,假若MCU一直不停地运行,不出一段时间,电池的能量会很快耗光。当然在NuMicroM051系列单片机搭载的系统中,不光有单片机需要耗电,同时还有其他外围部件耗电的,因此,我们在适当的时候关闭设备的运行同时将NuMicroM051系列单片机的运行模式进入空闲模式或者掉电模式,以节省不必要的能源,达到低功耗的目的。平时NuMicroM051系列单片机正常工作的电流为4毫安~7毫安;当进入掉电模式下,它的工作.
阅读全文
摘要:那么什么是Hex文件呢?IntelHex文件是由一行行符合IntelHex文件格式的文本所构成的ASCII文本文件。在IntelHex文件中,每一行包含一个Hex记录。这些记录由对应机器语言码和常量数据的十六进制编码数字组成。IntelHex文件通常用于传输将被存于ROM或者EPROM中的程序和数据,如图19.3-1。大多数EPROM编程器或模拟器使用IntelHex文件。19.3.1Hex的结构IntelHex由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列: :llaaaatt[dd...]cc 每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每...
阅读全文
摘要:什么是LIB文件呢?LIB文件(*.lib)实质就是C文件(*.c)的另一面,不具可见性,却能够在编译时提供调用,如图19.2-1。LIB文件在实际应用中很大的作用就是当集成商使用自家开发的设备,向其提供的是LIB文件,而不是C文件,这样就很好地保护自家的知识产权。………………………………………………书籍下载地址(复制到下载工具进行下载):http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rarhttp://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar注:书籍.
阅读全文
摘要:在Keil新建的所有工程中,毫无例外地都包含startup_M051.s,如图19.1-1。图19.1-1startup_M051.s该文件主要作用于上电时初始化单片机的硬件堆栈、初始化RAM、分配内存空间和跳转到主函数即main函数。硬件堆栈是用来存放函数调用地址、变量和寄存器值的;分配内存空间为异常提供更加快速的访问,减少中断延迟。如果不加载该startup_M051.s文件,编译的代码可能会使单片机不能正常工作。那么什么是堆栈呢?在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈这两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(
阅读全文
摘要:18.1实时系统与前后台系统1.实时系统实时系统简称RTOS,能够运行多个任务,并且根据不同任务进行资源管理、任务调度、消息管理等工作,同时RTOS能够根据各个任务的优先级来进行任务调度,以达到保证实时性的要求。RTOS能够使CPU的利用率得到最大的发挥,并且可以使应用程序模块化,而在实时应用中,开发人员可以将复杂的应用程序层次化,这样代码更加容易设计与维护,比较常见的RTOS如ucos、VxWorks、freertos等,更譬如较高级的应用在手机上的操作系统主要有PalmOS、Symbian(塞班)、Windowsmobile、Linux、Android(安卓)、iPhone(苹果)OS如图
阅读全文
摘要:17.1概述什么是模拟信号?主要是与离散的数字信号相对的连续的信号。模拟信号分布于自然界的各个角落,如每天温度的变化,而数字信号是人为的抽象出来的在时间上不连续的信号。电学上的模拟信号是主要是指幅度和相位都连续的电信号,此信号可以被模拟电路进行各种运算,如放大,相加,相乘等。 模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,如目前广播的声音信号,或图像信号等。常见的模拟信号有正弦波、调幅波、阻尼震荡波、指数衰减波,如图17.1-1。什么是数字信号?数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内。二进制码就是一种数字信号。二进制码受噪声的影.
阅读全文
摘要:16.1概述SPI是英文“SerialPeripheralInterface”的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。SPI接口是Motorola首先提出的全双工三线同步串行外围接口,采用主从模式(MasterSlave)架构;支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSBfirst);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几M
阅读全文
摘要:15.1概述I2C为双线,双向串行总线,为设备之间的数据通讯提供了简单有效的方法。标准I2C是多主机总线,包括冲突检测和仲裁机制以防止在两个或多个主机试图同时控制总线时发生的数据冲突。数据在主机与从机间同步于SCL时钟线在SDA数据线上一字节一字节的传输,每个字节为8位长度,一个SCL时钟脉冲传输一个数据位,数据由最高位MSB首先传输,每个传输字节后跟随一个应答位,每个位在SCL为高时采样;因此,SDA线只有在SCL为低时才可以改变,在SCL为高时SDA必须保持稳定。当SCL为高时,SDA线上的跳变视为一个命令(START或STOP),更多详细的I2C总线时序请参考图15.1-1。图15.1-
阅读全文
摘要:14.1概述NuMicroM051系列具有64K/32K/16K/8K字节的片上FLASHEEPROM,用于存储应用程序(APROM),用户可以通过ISP/IAP更新FLASH中的程序。在系统编程(ISP)允许用户更新焊接在PCB板上的芯片中的程序。上电后,通过设置Config0的启动选择(CBS)确定Cortex-M0CPU从APROM或LDROM读取代码。此外,NuMicroM051系列为用户提供额外的4K字节的数据FLASH,以供用户在芯片于64/32/16/8K字节APROM模式下系统掉电之前存储一些基于应用的数据。14.2特性l高达50MHz的零等待连续地址访问l64/32/16/8
阅读全文
摘要:13.1概述在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(watchdog)。 看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一.
阅读全文
摘要:12.1外部中断简介中断是处理器处理外部突发事件的一个重要技术。它能使处理器在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行处理器原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。 外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。M051系列微控制器的外部中断从功能上来说比较简单,只能由低电平触发和下降沿触发,而更加高级的单片.
阅读全文
摘要:RS232是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)”和“数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。传统的RS232接口标准有22根线,采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座,25芯插头座已很少采用。现在的台式电脑一般有一个串行口:COM1,从设备管理器的端口列表中就可以看到。硬件表现为计算机后面的9针D形接口,由于其形状和针脚数量的原因,其接头又被称为DB9接头。现在有很多手机数据线或者物流接收器都采用CO
阅读全文
摘要:10.1概述PWM是脉冲宽度调制的简称。实际上,PWM波也是连续的方波,但在一个周期中,其高电平和低电平的占空比是不同的,一个典型的PWM波如图10.1-1。T是PWM波的周期;t1是高电平的宽度;t2是低电平的宽度;因此占空比为t1/(t1+t2)=t1/T。假设当前高电平值为5V,t1/T=50%,那么当该PWM波通过一个积分器(低通滤波器)后,可以得到其输出的平均电压为5V*0.5=2.5V。在实际应用中,常利用PWM波的输出实现D/A转换,调节电压或电流控制改变电机的转速,实现变频控制等功能。NuMicroM051系列有2个PWM组,支持4组PWM发生器,可配置成8个独立的PWM输出,
阅读全文
摘要:9.1定时器控制器9.1.1概述定时器是单片机中最基本的接口之一,它的用途非常广泛,常用于计数、延时、提供定时脉冲信号等。在实际应用中,对于转速、位移、速度、流量等物理量的测量,通常也是由传感器转换成脉冲电信号,通过使用定时器来测量其周期或频率,再经过计算处理获得。定时器控制器包括4组32位的定时器,TIMER0~TIMER3,方便用户的定时器控制应用。定时器模块可支持例如频率测量,计数,间隔时间测量,时钟产生,延迟时间等功能。定时器可在计时溢出时产生中断信号,也可在操作过程中提供计数的当前值。9.1.2特征l4组32-位定时器,带24位向上定时器和一个8位的预分频计数器l每个定时器都有独立的
阅读全文
摘要:NuMicroM051微控制器共有40个通用I/O口,并可复用为特殊功能引脚,如串行口输入输出接口、外部中断触发、PWM输出等功能。这40个引脚分别分配在P0、P1、P2、P3、P4这五个端口上,每个端口最多有8个引脚,且各引脚之间都是相互独立的,可通过相应的寄存器来控制引脚的工作模式和读取当前引脚的数据。每个I/O引脚上的I/O类型都能够通过软件独立地配置为输入、输出、开漏或准双向模式。当MCU复位时,端口数据寄存器Px_DOUT[7:0]的值为0x000_00FF。每个I/O引脚配有110K欧~300K欧的非常弱的上拉电阻到输入电源(VDD)上,输入电源可为5V~2.5V。8.1通用I/.
阅读全文
摘要:书籍下载地址(复制到下载工具进行下载):http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rarhttp://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar注:书籍内容会不定期进行更新!7.4JTAG与串行调试(SWD)7.4.1JTAG简介JTAG(JointTestActionGroup;联合测试行动小组)是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口
阅读全文
摘要:6.1概述Cortex-M0微控制器是32位多级可配置的RISC微控制器。它有AHB-Lite接口和嵌套向量中断控制器(NVIC),具有可选的硬件调试功能,可以执行Thumb指令,并与其它Cortex-M系列兼容。该系列微控制器支持两种操作模式-Thread模式和Handler模式。当有异常发生时,微控制器进入Handler模式。异常返回只能在Handler模式下发生。当微控制器复位时,微控制器会进入Thread模式,微控制器也可在异常返回时进入到Thread模式。设备提供:Ø低门数微控制器特征lARMv6-MThumb指令集。lThumb-2技术。lARMv6-M兼容24-bitS
阅读全文
摘要:5.1C语言简史C语言的开发是科技史上不可磨灭的伟大贡献,因为这个语言把握住了计算机科技中一个至关重要的并且是恰到好处的中间点,一方面它具备搭建高层产品的能力,另一方面又能够对于底层数据进行有效控制。正是由于这种关联性和枢纽性作用,决定了C语言所导向的近三十年来计算机编程主流方式。C语言的祖先是BCPL语言。 1967年,剑桥大学的MartinRichards对CPL语言进行了简化,于是产生了BCPL(BasicCombinedProgrammingLanguage)语言。 1970年,美国贝尔实验室的KenThompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCP..
阅读全文
摘要:书籍下载地址(复制到下载工具进行下载):http://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rarhttp://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar注:书籍内容会不定期进行更新!4.1ARM微微控制器的指令的分类与格式ARM微微控制器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成,每个指令都有相对应的机器码。ARM微微控制器的指令集可以分为跳转指令、数据处理
阅读全文
摘要:ARM公司于2009年推出了Cortex-M0微控制器,这是市场上现有的尺寸最小、能耗最低(在不到12K门的面积内能耗仅有85µW/MHz(0.085毫瓦))、最节能的ARM微控制器。该微控制器能耗非常低、门数量少、代码占用空间小,能保留8位微控制器的价位获得32位微控制器的性能。超低门数还使其能够用于模拟信号设备和混合信号设备及MCU应用中,可明显降低系统成本,同时保留功能强大的Cortex-M3微控制器的工具和二进制兼容能力。该微控制器的推出把ARM的MCU路线图拓展到了超低能耗MCU和SoC应用中,如医疗器械、电子测量、照明、智能控制、游戏设置、紧凑型电源、电源和马达控制、精密
阅读全文
摘要:2.1ARMARM(AdvancedRISCMachines)是微微控制器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC微控制器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。英文全称:AdvancedRISCMachines 国家:英国(欧洲) 行业:电子半导体微微控制器智能手机 总部:英国剑桥 CEO:沃伦·伊斯特 竞争对手:英特尔 市场份额:手机微控制器90%的市场份额、上网本微控制器30%的市场份额、平板电脑微控制器70%的市场份额。 ARM公司是苹果、Acorn、VLSI、Te..
阅读全文
摘要:1.1概述嵌入式领域的发展日新月异。你也许还没有注意到,但是如果你停下来想一想微控制器系统十年前的样子并与当今的微控制器系统比较一下,你会发现PCB设计、元件封装、集成度、时钟速度和内存大小已经经历了好几代的变化。在这方面最热门的话题之一是仍在使用8位微控制器的用户何时才能摆脱传统架构并转向使用现代32位微控制器架构,如基于ARMCortex-M的微控制器系列。在过去几年里,嵌入式开发者向32位微控制器的迁移一直呈现强劲势头。本文将讨论加速这种迁移的一些因素。2 切换的原因在本章节的第一部分,我们将总结为什么嵌入式开发者应该考虑向32位微控制器迁移。采取这一行动的最强有力的理由是市场和消费者对
阅读全文