机器人的控制器.ppt

上传人:夺命阿水 文档编号:257365 上传时间:2023-03-28 格式:PPT 页数:128 大小:5.17MB
返回 下载 相关 举报
机器人的控制器.ppt_第1页
第1页 / 共128页
机器人的控制器.ppt_第2页
第2页 / 共128页
机器人的控制器.ppt_第3页
第3页 / 共128页
机器人的控制器.ppt_第4页
第4页 / 共128页
机器人的控制器.ppt_第5页
第5页 / 共128页
点击查看更多>>
资源描述

《机器人的控制器.ppt》由会员分享,可在线阅读,更多相关《机器人的控制器.ppt(128页珍藏版)》请在课桌文档上搜索。

1、第4章 机器人的控制器,4.1 68HC11E1控制器4.2 LPC2132控制器4.3 ARM Cortex-M3控制器4.4 ATmega128控制器,返回,4.1 68HC11E1控制器,68HC11E1微处理器由美国摩托罗拉公司生产研发,功能齐全。其具有8个模拟口,5个输入捕捉、3个PWM输出、16位地址和8位数据总线,以及4个通用I/O口。同时,68HC11E1的自下载功能使用户方便软件开发。上海广茂达公司生产的能力风暴AS-M就是以68HC11E 1微处理器作为机器人的控制器核心。常见芯片的封装形式有两种双列直插(DIP)和塑料扁平封装(PLCC),如图4-1和图4-2所示。4.1

2、.1 68HC11E1微控制器68HC11E1微控制器由CPU、片内存储器、定时器系统、串行口、A/D、并行I/O口及中断和复位系统组成,如图4-3所示。1.片内存储器,下一页,返回,4.1 68HC11E1控制器,68HC11E1微控制器无内部ROM,只有512字节EEPROM和可重定位的256字节RAM。2.定时器和脉冲电路16位高性能定时器系统,8M晶振,定时器频率为2MHz(周期0.5s),3个输入捕捉,可测量脉冲数量,脉冲周期、宽度和相位等;5个输出比较,可输出PWM信号,可以完成各种定时控制功能,有定时器溢出中断功能。能力风暴AS-M中用输入捕捉计数码盘信号,利用输出比较功能控制直

3、流电机。3.串行口串行口主要有串行通信接口SCI和全双工同步串行外围接口SPI两种形式,其中,串行通信接口SCI主要用于和PC机通信;,上一页,下一页,返回,4.1 68HC11E1控制器,全双工同步串行外围接口SPI(如图4-4所示),Motorola单片机独有的串口标准,速度可达2Mbps以上,主要用于扩展外围芯片和多机通信。4.A/D转换器8个输入通道和四个转换结果寄存器,具有一次完成四路A/D转换或连续对同一路采样转换4次的功能,其中后一种功能可以方便实施去掉最大、最小、取均位的滤波方法。碰触开关变量和声音信号等均可以使用A/D转换器,且非常方便,这也是68HC11E1微控制器的特色。

4、共有16个硬件中断和两个软件中断,它们各有独立的中断向量和中断允许位,响应中断时能自动保护所有的CPU寄存器。具有实时中断电路,可每隔指定的时间产生一次中断。,上一页,下一页,返回,4.1 68HC11E1控制器,5.并行I/O口单片方式工作时,有38个I/O 口;扩展方式时,有8位数据单线和16位地址总线,可扩展64 K存储器。6.复位系统和电源计算机有多种复位方式:上电自动复位;外部RESET复位;看门狗复位(软件工作不正常时);时钟监视复位。7.68HC11E1管脚68HC11E1管脚的一大特色是功耗低,其工作电流小于15 mA,有WAIT和STOP两种省电模式)68HC11E1管脚如图

5、4-5所示。,上一页,下一页,返回,4.1 68HC11E1控制器,4.1.2外部存储器在68HC11E1微控制器上扩展了32 K的静态不挥发RAM,其优点是既具有静态RAM的速度(70ns),又有EEPROM或FlashRom的掉电不丢失性,从而能将程序和数据合用一个芯片。AS62256写入的数据可保存10年以上,同时具有可靠的上电、掉电、强静电等数据保护功能。1.选址和并行口扩展32K RAM用了A0A14共15根地址线,构成32K的地址空间,A15为高电平时和E,RESET等信号复合片选32K RAM,因此,32K RAM的地址空间为0X8000-OXFFFF。,上一页,下一页,返回,4

6、.1 68HC11E1控制器,另一根地址线A15和其余地址线及读/写线复合扩展4个输入控制线和4个输出控制线,如图4-6所示。地址空间与8个读/写控制线见表4-1。2.68HC11E1地址空间的分配以能力风暴AS-U智能机器人为例,操作系统ASOS放在高端内存10K左右,往下到8 000之上有近20 K左右是用户程序空间。在下载用户程序的时候,会显示编译后代码有多少字节和存放的位置,如图4-7所示。4.1.3电源与复位电路能力风暴AS-M控制板采用Maxim603稳压芯片,提供500 mA,5 V电压,该芯片自身的功耗很低。,上一页,下一页,返回,4.1 68HC11E1控制器,低电压复位保护

7、电路采用DS1233 D-10,当电压低于4.5 V时,将产生复位信号,同时红色RST发光二极管变亮,如图4-8所示。未使用扩展电池电机的供电是由系统电源提供的,而使用扩展电池电机供电时,系统电源只为主板电路提供电能。主板上有两个电池连接插座,扩展电池接口只用来为电机(两只轮子驱动电机、MDCA3直流电机、伺服电机)提供电源,使用时要将主板左下角的短路跳线帽从SBAT(扩展电池)位置移到BEXT(使用扩展电池)位置,这时所有电机的电源都来自扩展电池。,上一页,下一页,返回,4.1 68HC11E1控制器,4.1.4通信能力风暴AS-M采用MAX202串口驱动芯片,PC发过来的信号经过U4E和U

8、4F去驱动SCI发光二极管,因此,PC传数据给能力风暴时,黄色SCI发光二极管会闪动,如图4-9所示。4.1.5电机驱动电路电机采用直流电机驱动芯片U7(SN754410)进行驱动,其连接电路如图4-10所示。直流电机在一定电压下,转速与转矩成反比;如果改变电压,则转速转矩会随电压的升降而升降(如图4-11所示)。,上一页,下一页,返回,4.1 68HC11E1控制器,通过改变电机电压的方式来改变电机的转速。机器人提供给电机的信号是方波,其中不同方波的平均电压不同(如图4-12所示),我们就利用这一点来进行能力风暴智能机器人的速度控制。采用不同的脉宽调节平均电压的高低,进而调节电机的转速,即脉

9、宽调制(PWM,Pulse Width Modulation)。PAS,PA6分别给SN754410发脉宽调制信号,通过改变脉冲宽度来调节输入到电机的平均电压。SN754410每路电机控制输出为1A,并有超载保护功能。,上一页,返回,4.2 LPC2132控制器,AS-U是能力风暴大学版机器人,是专门为大学进行课程教学、工程训练、科技创新的新一代智能移动机器人。AS-U有功能强大的微处理系统和传感器系统,而且它还能扩展听觉、视觉和触觉,是真正意义上的智能机器人,其外形如图4-13所示。能力风暴AS-U采用NXP公司的LPC2132微处理器为控制核心。LPC2132是一个基于支持实时仿真和嵌入式

10、跟踪的32/16位微控制器,并带有64 KB的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行;对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小;,下一页,返回,4.2 LPC2132控制器,LQFP64封装和极低的功耗可使LPC2132理想地用于小型系统中;宽范围的串行通信接口和片内16 KB的SRAM使LPC2132非常适用于通信网关、协议转换器、软Modern、声音辨别和低端成像,并为它们提供巨大的缓冲区空间和强大的处理功能;多个32位定时器、8路10位ADC,1路10位DAC,PWM通道和

11、47个GPIO以及多达9个边沿或电平触发的外部中断使其特别适用于工业控制和医疗系统。LPC2132包含一个支持仿真的ARM7TDMI-SCPU、与片内存储器控制器接口的ARM7局部总线、与中断控制器接口的AMBA高性能总线(AHB)和连接片内外设功能的VLSI外设总线(VPB,ARMAMBA总线的兼容超集)。,上一页,下一页,返回,4.2 LPC2132控制器,LPC2132将ARM7TDMI-S配置为小端(little-endian)字节顺序。AHB外设分配了2M字节的地址范围,它位于4G字节ARM存储器空间的顶端。每个AHB外设都分配了16K字节的地址空间,2132的外设功能(中断控制器除

12、外)都连接到VPB总线,AHB到VPB的桥将VPB总线与AHB总线相连。VPB外设也分配了2M字节的地址范围,其从3.SGB地址点开始。每个VPB外设在VPB地址空间内都分配了16 KB的地址空间。片内外设与器件管脚的连接由管脚连接模块控制,该模块必须由软件进行控制以符合外设功能与管脚在特定应用中的需求。4.2.1 ARM7TDMI-S处理器ARM7TDMI-S是通用的32位微处理器,具有高性能和低功耗的特性。,上一页,下一页,返回,4.2 LPC2132控制器,ARM结构是基于精简指令集计算机(RISC原理而设计的,其指令集和相关的译码机制比复杂指令集计算机要简单得多,这样使用一个小的、廉价

13、的处理器内核就可实现很高的指令吞吐量和实时的中断响应。由于使用了流水线技术,其处理和存储系统的所有部分都可连续工作。通常在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。ARM7TDMI-S处理器使用了一个被称为THUMB的独特结构化策略,它非常适用于那些对存储器有限制或者需要较高代码密度的大批量产品的应用。在THUMB后面一个关键的概念是“超精简指令集”。基本上,ARM7TDMI-S处理器具有两个指令集:1)标准32位ARM指令集2)16位THUMB指令集,上一页,下一页,返回,4.2 LPC2132控制器,THUMB指令集的16位指令长度使其可以达到标准ARM代码两倍

14、的密度,却仍然保持ARM的大多数性能上的优势,这些优势是16位寄存器的16位处理器所不具备的。4.2.2片内存储器1.片内Flash程序存储器LPC2132含有64 KB的Flash存储器系统,该存储器可用作代码和数据的存储。对Flash存储器的编程可通过几种方法来实现:通过内置的串行JTAG接口;通过在系统编程(ISP)和UARTO,或通过在应用编程(IAP)。,上一页,下一页,返回,4.2 LPC2132控制器,使用在应用编程的应用程序也可以在应用程序运行时对Flash进行擦除和(或)编程,这样就为数据存储和现场固件的升级带来了极大的灵活性。如果LPC2131/2132/2138使用了片内

15、引导装载程序(bootloader),64 KB的Flash存储器就可用来存放用户代码。LPC2132的Flash存储器至少可擦除/编程10 000次,保存数据的时间可长达10年。2.片内静态RAM片内静态RAM(SRAM)可用作代码和(或)数据的存储,其支持8位、16位和32位的访问。LPC2131/2132/2138含有16KB的静态RAM,LPC2132 SRAM是一个字节寻址的存储器。,上一页,下一页,返回,4.2 LPC2132控制器,对存储器进行字和半字访问时将忽略地址对准,而访问被寻址的自然对准值(因此,对存储器进行字访问时将忽略地址位0和1,半字访问时将忽略地址位0)。因此,有

16、效的读写操作要求半字数据访问的地址线0为0(地址以0,2,4,6,8,A,C和E结尾),字数据访问的地址线0和1都为0(地址以0,4,8和C结尾)。该原则同样用于片外和片内存储器。SRAM控制器包含一个回写缓冲区,它用于防止CPU在连续的写操作时停止运行。回写缓冲区总是保存着软件发送到SRAM的最后一个字节,且该数据只有在软件请求下一次写操作时才写入SRAM(数据只有在软件执行另外一次写操作时被写入SRAM)。,上一页,下一页,返回,4.2 LPC2132控制器,如果发生芯片复位,则实际的SRAM内容将不会反映最近一次的写请求(即在一次“热”芯片复位后,SRAM不会反映最后一次写入的内容),任

17、何在复位后检查SRAM内容的程序都必须注意这一点。通过对一个单元执行两次相同的写操作可保证复位后数据的写入,或也可通过在进入空闲或掉电模式前执行虚写(dummy write)操作来保证最后的数据在复位后被真正写入到SRAM。其功能框如图4-14所示。4.2.3电源电路设计1.电源电源原理如图4-15所示。,上一页,下一页,返回,4.2 LPC2132控制器,考虑到整个系统耗电较小,电压在SV下最大仅为200 mA,USB最大可供电5 V x 500 mA,所以采用USB U供电,P1为USB接,SW1为电源开关,L0为电源指示灯,以方便用户控制电源。由于LPC2132内部自带有3.3 V转1.

18、8 V装置为内核供电,所以LPC2132系统只需提供一个3.3 V电源即可。图4-15中U1即一款满足要求的电源IC:AMS1117-3.3,该电源的输入电压范围为3.312 V,输出电压为3.3 V,精度可达1%,输出能力为800 mA,同时具有电流限制和热保护功能。基于稳定性和抗干扰方面的考虑,我们用电感将数字地和模拟地进行了隔离处理,如图4-15所示中的L02和L03。2.复位电路,上一页,下一页,返回,4.2 LPC2132控制器,由于ARM芯片的高速度、低功耗、低工作电压使得其噪声容限低,所以对电源的纹波、瞬态响应性能、时钟源的稳定性、电源监控等诸多方面的要求较高。复位电路采用一颗微

19、处理器专用的电源监控芯片STM811,如图4-16所示。该芯片在初次上电和系统电压小于3V时会输出复位信号,同时此芯片不需要任何外围电路,且带有手动复位功能。3.系统时钟电路 LPC2100系列ARM7微控制器可使用外部晶振或外部时钟源,其片外晶振频率范围为130 MHz,如图4-17所示的Y1,,上一页,下一页,返回,4.2 LPC2132控制器,内部锁相环电路PLL可调整系统时钟,通过片内PLL可实现最大为60 MHz的CPU操作频率,实时时钟具有独立的时钟源,如图4-17所示的Y2,32 768 kHz晶振。4.串口电路由于系统是3.3 V供电,选取MAX3232进行R5232作电平转换

20、,MAX3232是在3V工作电压下的RS232电平转换芯片。另外,LPC213X系列ARM7微控制器的UART1带有完整的调制解调器(MODEM)接口,所以选用8路R 5232电平转换芯片SP3243。如图4-18所示,RS-9-1和RS-9-2为标准DB9接头,能够接插到电脑串口或调制解调器接口上,DB9接头的第二脚为计算机的数据接收端,第三脚为计算机的数据发送端。,上一页,下一页,返回,4.2 LPC2132控制器,图4-18中转换芯片电路中的电容是必不可少的,主要用以提供转换电路所需的不同电压。5.A/D和D/A电路R102为精密可调电阻,调节该电阻可以改变AD1测量的值,R101在开发

21、板上一般为空,以留给用户选择合适的用途,如可以接热敏电阻等。D/A输出到CON3的第三引脚上,用户可以在这里量取D/A值。关于参考电压,可以选择VDD或用户自己给定外部参考电压,但不宜超过3.3 V。选择参考电压应参见开发板上跳线集JT2的最下边的一组跳线,当跳线帽在左边时则选取VDD为参考电压,在右边时则选取用户外加的参考电压,用户的参考电压要加在U8的VREF上,如图4-19所示。,上一页,下一页,返回,4.2 LPC2132控制器,6.蜂鸣器电路LPC2132的P0.29脚控制蜂鸣器,当P0.29脚为输入状态或输出高电平时,蜂鸣器无声;当P0.29脚为输出低电平时,蜂鸣器鸣叫,如图4-2

22、0所示。,上一页,返回,4.3 ARM Cortex-M3控制器,ARM(Advanced RISC Machines)既是一个公司的名字,也是对一类微处理器的通称,还可以认为是一种技术的名字。ARM公司1991年成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器(即我们通常所说的ARM微处理器),已遍及工业控制、消费类电子产品、通信系统、无线系统等各类产品市场。4.3.1 Cortex-M3内核概述ARM公司于2005年推出了Cortex-M3内核,就在当年ARM公司与其他投资商合伙成立了Luminary(流明诺瑞)公司,由该公司率先设计、生产与销售

23、基于Cortex-M3内核的ARM芯片一Stellaris(群星)系列ARM。,下一页,返回,4.3 ARM Cortex-M3控制器,Cortex-M3内核是ARM公司整个Cortex内核系列中的微控制器系列(M)内核,并且其还是其他两个系列应用处理器系列(A)与实时控制处理系列(R)的内核,这三个系列又分别简称为A,R,M系列,当然这三个系列的内核分别有各自不同的应用场合,即Cortex-M3内核的特点主要有:(1)CorteX-M3内核主要应用于低成本、小管脚数和低功耗的场合,并且具有极高的运算能力和极强的中断响应能力。(2)Cortex-M3处理器采用纯Thumb2指令的执行方式,使得

24、这个具有32位高性能的ARM内核能够实现8位和16位的代码存储密度。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,(3)Cortex-M3采用了ARM V7哈佛架构,具有带分支预测的3级流水线,中断延迟最大只有12个时钟周期,且在末尾连锁的时候只需要6个时钟周期。同时其还具有1.25 DMIPS/MHz的性能和0.19 mW/MHz的功耗。从ARM7TM升级为Cortex-M3可获取更佳的性能和功效。在过去10年中,ARM7系列处理器被广泛应用于众多领域。之后,Cortex-M3在ARM7的基础上开发成功,为基于ARM7处理器系统的升级开辟了通道。它的中心内核效率更高,编程

25、模型更简单,且具有出色的确定中断行为,其集成外设以低成本提供了更强大的性能。ARM7TDMI-S与Cortex-M3的比较见表4-2。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,4.3.2 Cortex-M3内核结构基于ARMV7架构的Cortex-M3处理器带有一个分级结构,实现了内置的中断控制、存储器保护以及系统的调试和跟踪功能。这些外设可进行高度配置,允许Cortex-M3处理器处理大范围的应用并更贴近系统的需求。目前Cortex-M3内核和集成部件(如图4-21所示)已进行了专门的设计,用于实现最大存储容量、最少管脚数目和极低功耗。Cortex-M3中央内核基于哈

26、佛架构,指令和数据各使用一条总线,ARM7系列处理器使用冯诺依曼(Von Neumann)架构,指令和数据共用信号总线以及存储器。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,由于指令和数据可以从存储器中同时读取,所以Cortex-M3处理器对多个操作并行执行,加快了应用程序的执行速度。Cortex-M3内核包含一个适用于传统Thumb和新型Thumb-2指令的译码器、一个支持硬件乘法和硬件除法的先进ALU,控制逻辑和用于连接处理器其他部件的接口。内核流水线分3个阶段:取指、译码和执行。当遇到分支指令时,译码阶段也包含预测的指令取指,这提高了执行的速度。处理器在译码阶段可自

27、行对分支目的地指令进行取指。在稍后的执行过程中,处理完分支指令后便知道下一条要执行的指令。如果分支不跳转,那么紧跟着的下一条指令随时可供使用。如果分支跳转,那么在跳转的同时分支指令可供使用,空闲时间限制为一个周期。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,Cortex-M3处理器是一个32位处理器,带有32位宽的数据路径、寄存器库和存储器接口,其中包括13个通用寄存器、两个堆栈指针、一个链接寄存器、一个程序计数器和一系列包含编程状态寄存器的特殊寄存器。Cortex-M3处理器支持两种工作模式线程(Thread和处理器(Handler及两个等级的代码访问(有特权和无特权)

28、,能够在不牺牲应用程序安全的前提下执行复杂的开放式系统。无特权代码执行限制或拒绝对某些资源的访问,如某个指令或指定的内存位置。线程模式是常用的工作模式,它同时支持享有特权的代码以及没有特权的代码。当发生异常时,进入处理器模式,在该模式中所有代码都享有特权。此外,所有操作均根据以下两种工作状态进行分类:Thumb代表常规执行操作和Debug代表调试操作。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,4.3.3 Cortex-M3存储器映射Cortex-M3处理器是一个存储器映射系统,能为高达4GB的可寻址存储空间提供简单和固定的存储器映射,同时,这些空间可以为代码(代码空间)

29、,SRAM(存储空间)、外部存储器/器件和内部外部外设提供预定义的专用地址,同时还有一个特殊区域专门供厂家使用(如图4-22所示)。借助bit-handing技术,Cortex-M3处理器可以在简单系统中直接对数据的单个位进行访问。存储器映射包含两个位于SRAM的大小均为1MB的hit-hand区域和映射到32MB别名区域的外设空间。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,在别名区域中,某个地址上的加载/存储操作将直接转化为对被该地址别名的位操作。对别名区域中的某个地址进行写操作,如果使其最低有效位置位,那么bit-band位为1,如果使其最低有效位清零,那么bit-

30、band位为零。读别名后的地址将直接返回适当的bit-band位中的值。除此之外,该操作为原子位操作,其他总线活动不能对其中断。(1)对32MB SRAM别名区的访问映射为对1 MB SRAM bit-band区的访问。(2)对32MB外设别名区的访问映射为对1MB外设bit-band区的访问。映射公式显示如何将别名区中的字与bit-band区中的对应位或目标位关联,其表示如下:,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,图4-23显示了SRAM bit-band名区和SRAM bit-band区之间的bit-band映射的例子:Cortex-M3处理器采用非对齐数据访问

31、方式,使非对齐数据可以在单核访问中进行传输。当使用非对齐传输时,这些传输将转换为多个对齐传输,但这一过程不为程序员所见。Cortex-M3处理器除了支持单周期32位乘法操作之外,还支持带符号的和不带符号的除法操作,这些操作使用SDIV和UDIV指令,根据操作数大小的不同在212个周期内完成。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,如果被除数和除数大小接近,那么除法操作可以更快地完成。1.直接访问别名区向别名区写入一个字与在bit-band区的目标位执行读一修改一写操作具有相同的作用。写入别名区的字的位0决定了写入bit-band区的目标位的值。将位0为1的值写入别名区

32、表示向bit-band位写入1,将位0为0的值写入别名区表示向bit-band位写入0。别名字的位31:1在bit-band位上不起作用,即写入0 x01与写入0 xFF的效果相同,写入0 x00与写入0 x0E的效果相同。读别名区的一个字返回0 x01或0 x00。0 x01表示bit-band区中的目标位置位,0 x00表示目标位清零,即位31:1将为0.,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,2.直接访问bit-band区Bit-band区能够使用常规的读和写以及写入该区操作进行访问。4.3.4时钟和复位1.Cortex-M3时钟处理器含3个功能时钟输入。FOL

33、K和HCLK互相同步,FOLK是一个自由振荡的HCLK,FOLK和HCLK应该互相平衡,以保证进入Cortex-M3时的延迟相同。见表4-3。处理器集成了供调试和跟踪使用的元件。宏单元可以包含表4-4所示的一些或全部时钟。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,SWCLK是串行线时钟,用来对串行调试端口(SW-DP)的SWDIN输入进行计时。SWCLK与其他所有时钟异步。TRACECLKIN是跟踪端口接口单元(TPIU)的参考时钟。它与其他所有时钟异步。TCK是跟踪访问端口(TAP)的时钟,它对JTAG-DP TAP进行计时,TCK也与其他所有时钟异步。Cortex-

34、M3还包含一个STCLK输入。这个端u不是时钟,它是衡slick计数器的一个参考输入,其频率必须小于FCLK/2。处理器将STCLK变成与FCLK内部同步。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,2.Cortex-M3复位Cortex-M3处理器含3个复位输入,见表4-5。3.Cortex-M3复位方式通过处理器设计中出现的复位信号,用户可以单独对设计中的不同元件进行复位。表4-6列出了这些复位信号和它们的组合形式,以及可能的应用。1)上电复位供宏单元使用的复位信号如图4-24所示。在第一次给系统加电时,必须对处理器上电或冷复位。,上一页,下一页,返回,4.3 ARM

35、 Cortex-M3控制器,上电复位时,因为PORESETn在处理器内已经被同步了,所以复位信号PORESETn的下降沿就不必与HCLK同步了。上电复位的应用情况如图4-25所示。处理器内的复位同步器如图4-26所示。为了保证正确的复位,复位信号应至少保持3个HCLK周期有效。2)系统复位系统复位或热复位对宏单元中的大部分元件进行初始化,NVIC调试逻辑、Flash修补与断点(FPB)、数据观察点与触发(D WT)以及仪表跟踪宏单元(ITM)除外。系统复位主要用来复位已经工作一段时间的系统,比如看门狗复位。由于SYSRESETn信号在处理器内已经被同步,所以不必使之再同步。,上一页,下一页,返

36、回,4.3 ARM Cortex-M3控制器,如图4-26所示即显示了复位的同步情况。Cortex-M3输出一个SYSRESETREQ信号,该信号在应用中断与复位控制寄存器的SYSRESETREQ位置位时有效。用户可以使用该信号,例如,可将它用作图4-24所示的看门狗定时器的输入。3)其他几种复位JTAG-DP复位:nTRST复位对JTAG-DP控制器的状态初始化。nTRST复位通常被RealView ICE模块用作调试器与系统的热插拔连接。nTRST复位可以在不影响处理器正常工作的情况下对JTAG-DP控制器进行初始化。由于nTRST在处理器内已经被同步了,所以不必使之再同步。,上一页,下一

37、页,返回,4.3 ARM Cortex-M3控制器,SW-DP复位:SW-DP是通过SWRSTn来复位的,该复位必须与SWCLK同步。正常工作:在正常工作期间,不产生处理器复位和上电复位。如果没有使用JTAG-DP口,nTRST的值就变得无关紧要了。4.3.5嵌套向量中断控制器(NVIC)可配置程度较高的NVIC是Cortex-M3处理器中的一个重要组成部分,其能够为处理器提供出色的中断处理能力。进行NVIC的标准实现过程中,它提供一个非屏蔽中断(NMI)和32个通用物理中断,这些中断带有8级的抢占优先权。NVIC可以通过简单的综合选择配置为1240个物理中断中的任何一个,并带有多达256个优

38、先级。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,Cortex-M3处理器使用一个可以重复定位的向量表,表中包含了将要执行的函数的地址,可供具体的中断处理器使用。中断被接受之后,处理器通过指令总线接口从向量表中获取地址。向量表复位时指向零,编程控制寄存器可以使向量表重新定位。为了减少门计数并提高系统的灵活性,Cortex-M3已从ARM7处理器的分组映像寄存器异常模型升级到了基于堆栈的异常模型。当异常发生时,编程计数器、编程状态寄存器、链接寄存器和R0R3,R12等通用寄存器都将被压进堆栈。在数据总线对寄存器压栈的同时,指令总线从向量表中识别出异常向量,并获取异常代码的第

39、一条指令。一旦压栈和取指完成,中断服务程序或故障处理程序就开始执行,随后寄存器自动恢复,中断了的程序也因此恢复正常的执行。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,由于可以在硬件中处理堆栈操作,Cortex-M3处理器免去了在传统的C语言中断服务程序中为了完成堆栈处理所要编写的汇编程序包,这使应用程序的开发变得更加简单。NVIC支持中断嵌套(压栈),允许通过提高中断的优先级对中断进行提前处理。它还支持中断的动态优先权重置,其优先权级别可以在运行期间通过软件进行修改。正在处理的中断会防止被进一步激活,直到中断服务程序完成,所以在改变它们的优先级的同时,也避免了意外重新进入

40、中断的风险。在背对背中断情况中,传统的系统将重复两次状态保存和状态恢复的过程,导致了延迟的增加。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,Cortex-M3处理器在NVIC硬件中使用末尾连锁(Tailchaining)技术简化了激活和未决的中断之间的移动。末尾连锁技术把通常需要用30个时钟周期才能完成的连续的堆栈弹出和压入操作替换为6个时钟周期就能完成的指令取指,实现了延迟的降低。处理器状态在进入中断时自动保存,在退出中断时自动恢复,比软件执行用时更少,大大提高了频率为100 MHz的子系统的性能,如图4-27所示。NVIC还采用了支持集成睡眠模式的Cortex-M3处

41、理器的电源管理方案。立即睡眠模式(Sleep Now Mode)被等待中断(W FI)或等待事件(WFE)指令调用,即可以使内核立即进入低功耗模式,并使其异常被挂起。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,退出时睡眠(Sleep OnExit)模式在系统退出最低优先级的中断服务程序时使其进入低功耗模式,内核将保持睡眠状态直到遇上另一个异常。由于只有一个中断可以退出该模式,所以系统状态不会被恢复。系统控制寄存器中的SLEEP-DEEP位,如果被置位,那么该位可以用来通过时钟门控制内核以及其他系统部件,以获得最理想的节电方案。NVIC还集成了一个递减计数的24位系统嘀哒(

42、Sys Tick)定时器,可定时产生中断,提供理想的时钟来驱动实时操作系统或其他预定的任务。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,4.3.6内存保护单元(MPU)MPU是Cortex-M3处理器中一个可选的部件,它通过保护用户应用程序中操作系统所用的重要数据、分离处理任务(禁止访问各自的数据)、禁止访问内存区域、允许将内存区域定义为只读以及对有可能破坏系统的未知的内存访问进行检测等手段来改善嵌入式系统的可靠性。MPU使应用程序可以拆分为多个进程。每个进程不仅有指定的内存(代码、数据、栈和堆)和设备,而且还可以访问共享的内存和设备。MPU还会增强用户和特权访问规则,包

43、括以正确的优先级别执行代码以及通过享有特权的代码和用户代码加强对内存和设备使用权的控制。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,MPU将内存分成不同的区域,并通过防止无授权的访问对内存实施保护。MPU支持多达8个区域,每个区域又可以分为8个子区域。所支持的区域大小从32字节开始,以2为倍数递增,最大可达到4 G B可寻址空间,其中每个区域都对应一个区域号码(从0开始索引),用于对区域进行寻址。另外,也可以为享有特权的访问定义一个默认的背景内存映射,对未在MPU区域中定义的或在区域设置中被禁止的内存位置进行访问,将会导致内存管理故障(Memory Management

44、Fault)异常的产生。区域的保护是根据规则来执行的,这些规则以处理的类型(读、写或执行)和执行访问的代码优先级为基础进行制定。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,每个区域都包含一组能够影响允许的访问类型的位,以及影响允许的总线操作类型的位。MPU还支持重叠的区域(覆盖地址相同的区域),由于区域大小是2的倍数,所以重叠意味着一个区域有可能完全包含在另一个区域内。因此,则可能出现多个区域包含在单个区域中以及嵌套重叠的情况,即当寻址重叠区域的位置时,其返回的将是拥有最高区域号码的区域。4.3.7调试和跟踪对Cortex-M3处理器系统的调试访问是通过调试访问端口(De

45、bug Access Port)来实现的,可以是串行线调试端口(SW-DP)构成一个两脚(时钟和数据)接口或串行线JTAG调试端口(SWJ-DP)(使用JTA(或SX%协议)。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,调试操作可以通过断点、观察点、出错条件或外部调试请求等各种事件进行触发。当调试事件发生时,Cortex-M3处理器可以进入挂起模式或者调试监控模式。在挂起模式期间,处理器将完全停止程序的执行。挂起模式支持单步操作,中断可以暂停,也可在单步运行期间进行调用,如果对其屏蔽,外部中断将在逐步运行期间被忽略。在调试监控模式中,处理器通过执行异常处理程序来完成各种调

46、试任务,同时允许享有更高优先权的异常发生。该模式同样支持单步操作。Flash块和断点(FPB)单元执行6个程序断点和两个常量数据取指断点,或者执行块操作指令或位于代码内存空间和系统内存空间之间的常量数据。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,该单元包含6个指令比较器,用于匹配代码空间的指令取指。通过向处理器返回一个断点指令,每个比较器都可以把代码重新映射到系统空间的某个区域或执行一个硬件断点。该单元还包含两个常量比较器,用于匹配从代码空间加载的常量以及将代码重新映射到系统空间的某一个区域,如图4-28所示。Cortex-M3处理器采用带DWT和ITM(仪器跟踪宏单元

47、)的数据跟踪技术。DW T提供指令执行统计信息并可产生观。ITM是由应用程序驱动的跟踪源,支持跟踪OS和应用程序事件的printf类型调试,它接受来自DW T的硬件跟踪数据包以及来自处理器内核的软件跟踪激励,并使用时间戳来发送诊断系统信息。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,跟踪端口接口单元(Trace Port Interface Unit,TPIU)接收来自ETM和ITM的跟踪信息,然后将其合并、格式化并通过串行线浏览器(Serial Wire Viewer,SWV)发送到外部跟踪分析器单元。通过单管脚导出数据流,SWV支持简单和具有成本效益的系统事件分析,曼

48、彻斯特编码和UART都是SWV支持的格式。4.3.8总线矩阵和接口Cortex-M3处理器总线矩阵把处理器和调试接口连接到外部总线,一也就是把基于32位AMBA AHB-Lite的ICode,DCode和系统接口连接到基于32位AMBA APBTM的专用外设总线(Private Peripheral Bus,PPB)上。总线矩阵也采用非对齐数据访问方式以及位段技术。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,32位ICode接口用于从代码空间获取指令,只有CM3 Core可以对其访问,所有取指的宽度都是一个字,每个字的取指数目取决于所执行代码的类型及其在内存中的对齐方式。

49、32位DCode接口用于访问来自代码内存空间中的数据,CM3 Core和DAP都可以对其访问。32位系统接口可获取和访问系统内存空间中的指令和数据,与Dcode总线相似,可以被CM3 Core和DAP访问。PPB可以访问Cortex一M3处理器系统外部的部件。Cortex-M3处理器是首款基于ARMV7-M架构的ARM处理器。中央C ortex-M3内核使用3级流水线哈佛架构,运用分支预测、单周期乘法和硬件除法功能实现了出色的效率(1.25 DMIPS/MHz)。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,Thumb-2指令集结合非对齐数据存储和原子位处理等特性,以8位、

50、16位设备所需的内存空间就实现了32位性能。凭借灵活的集成硬件配置、快速的系统调试和简易的软件编程,使基于Cortex-M3处理器的设计得以更快地投入市场。扩展时钟门控技术和集成睡眠模式使低功耗的无线设计成为了可能。Cortex-M3处理器是专为那些对成本和功耗非常敏感且同时对性能要求又相当高的应用而设计的。凭借缩小的内核尺寸和出色的中断延迟性能、集成的系统部件、灵活的配置、简单的高级编程和强大的软件系统,Cor tex-M3处理器必将成为从复杂的芯片系统到低端微控制器等各种系统的理想解决方案。,上一页,下一页,返回,4.3 ARM Cortex-M3控制器,4.3.9电源管理处理器广泛地利用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号