微控制器Mcore及其应用
李安新, 周祖成
(清华大学电子工程系, 北京 100084)
1 引言
Mcore是Motorola公司推出的32位RISC微控制器。面向高性能,低成本,嵌入式控制的应用。其设计中强调了低功耗设计,采用全静态设计,进行动态的功率控制,低电压工作,因此非常适合于移动通信终端或其他便携式设备的设计使用。目前 Motorola推出的Mcore的产品主要有MMC2001,MMC2003,MMC2107,MMC2114,MMC2113 几个系列。
2 Mcore的主要特点
下面我们以MMC2001为例来说明Mcore的主要特点[1]。MMC2001的结构框图如图1所示。MMC2001的主要特点如下:
● 整形处理器:32-bit RISC结构;
● 片上256K字节ROM、32K字节SRAM;
● 中断控制:支持32个中断源;
● 外部接口模型:20条地址线、16条数据线、定时/复位模块、外部晶振、TOD(Time-of-day)定时器、看门狗定时器等模块;
● 异步接收发送模块:两个独立的UART通道、异步操作、红外接口支持;
● 16位通用 I/O 口,支持键盘扫描和编码;8位通用 I/O 口,支持边沿和电平敏感的外部中断;
● 脉宽调制信号模块:6个独立的 PWM 通道、可编程的周期、可编程的占空比;
● 串行接口;
● OnCE(On-Chip Emulation)调试接口。
3 工作原理
3.1 内部寄存器资源及程序运行模式
Mcore中有丰富的寄存器资源:16个通用寄存器用于源操作数和指令结果;程序指针寄存器存放当前执行的指令的地址;16个备用寄存器的功能同通用寄存器,当出现中断需要处理时,将使用此备用寄存器;13个辅助寄存器,如处理器状态寄存器(PSR)、中断向量基地址寄存器(VBR)等。
Mcore有两种程序运行模式:用户模式和管理模式。当处于不同的运行模式时可访问的资源是不一样的。用户模式只能访问16个通用寄存器、程序指针寄存器和处理器状态寄存器中的C比特(C比特是PSR中的用户可以访问的比特)。管理模式可以访问16个备用寄存器,程序指针寄存器,以及13个辅助寄存器。Mcore大部分指令可以在两种模式下执行,但一些重要的指令如stop、doze、wait等,则只能在管理模式下使用。这两种模式是可以相互转换的,程序处于什么运行模式由PSR寄存器中的S比特决定。当出现某些情况时,比如中断,将引起S比特置位,使处理器从用户模式转移到管理模式。当中断返回后,S比特被清除,处理器将从管理模式转移到用户模式。
3.2 Mcore的指令
Mcore的指令可以分为三种类型:流程控制指令、存储器访问指令和寄存器到寄存器操作指令。指令集包含标准的算术和逻辑指令、比特操作指令、字节扩展指令、数据移动指令、控制流程指令等等。指令为定长的16比特指令,整个指令集包含90多条指令。Mcore的指令执行为四级流水:取指令、指令译码、执行/寄存器访问和回写。绝大部分指令在一个时钟周期内完成。
3.3 Mcore的中断处理
Mcore遵循如下的中断处理过程:(1)备份PSR 和PC寄存器,对于快速中断,它们备份于FPSR和FPC寄存器,对于其他中断,它们备份于EPSR 和EPC寄存器;(2)处理器置PSR(S位)为高,使处理器转换到管理模式。(3)确定中断的中断向量号,中断向量号用于计算中断向量相对于中断向量表起始地址的偏移量;(4)处理器根据中断向量表基地址寄存器(VBR)和由中断向量号计算得到的偏移量决定中断服务程序的条指令的地址并把控制权交给中断服务程序;(5)执行中断服务程序;(6)中断返回;Mcore可以带32 个中断,允许同时发生多个中断。中断处理优先级可被分为5组,按照其优先级顺序决定处理的先后顺序。
3.4 Mcore的数据传输机制
Mcore支持对存储器进行字(32位)、半字(16位)和字节(8位)三种访问方式。由TSIZ[1:0]信号来指示访问方式,如表1所示。当数据在内部寄存器和外部总线之间传输时,内部寄存器通过内部总线和数据复接器与外部总线相连。数据复接器对于不同的地址和传输方式的组合在内部总线和外部总线之间建立不同的复接类型。
3.5 Mcore硬件加速接口
硬件加速接口用来实现处理器和完成某种特殊功能的模块的紧密耦合。功能模块可以是一个DSP算术运算单元,也可以是实现了特定算法(例如高速乘法)的模块。数据在处理器和模块之间的传输有多种传输方式,有专门的指令用于硬件加速接口操作。
3.6 Mcore JTAG测试接入端口和OnCE端口
Mcore有两个JTAG测试接入端口控制器:顶层控制器和底层OnCE控制器。在上电时,仅有顶层的测试接入端口控制器可见,用户可以根据需要使能底层OnCE控制器。
顶层测试接入端口与IEEE1149.1标准测试接入端口和边界扫描结构完全兼容,是一个专用的、用户访问的测试接入端口,用来执行边界扫描的驱动和管理操作来测试设备外部的电路;底层OnCE测试接入端口是一个调试接口,允许外部访问处理器的内部寄存器、存储器或外围设备。OnCE的功能可以通过一个串行接口来控制,此接口的信号定义与IEEE1149.1标准兼容。当需要访问CPU内部状态时,OnCE控制器发出一个/DBGRQ信号请求CPU 进入调试模式。CPU接到此信号后,完成当前正在执行的指令,保存指令流水线信息,然后进入调试模式。一旦CPU进入调试模式,CPU的状态就可以通过CPU扫描寄存器获得。当需要访问存储器时,先扫描入一条load指令给CPU,load指令引用所要访问的存储器位置,执行load指令把数据加载到CPU寄存器中,再把CPU寄存器中的结果通过CPU扫描链扫描输出即可。
4 硬件开发板和软件开发工具
通常的开发板有以下几种:
(1)控制和存储器板:本身是一个独立的开发工具,其通过的RS232串口与主机通信,提供OnCE接口、FLASH和SRAM,通过MAPI 400接口可以与其他可选开发工具板接合使用。
(2)评估板:评估板也是一个独立的开发工具,功能与控制和存储器板类似。与控制和存储器板相比,没有MAPI 400接口,但有多中断和I/O接口,同时带有一块单独的面包板,可以让用户扩展自己的电路。
(3)14针增强型调试接口:用于有OnCE接口的Mcore目标系统或有BDM接口的32位CPU目标系统,不需要目标板有特殊的硬件或软件支持,调试也不占用微程序控制器的资源,通过OnCE或后台调试方式执行所有的调试功能。
(4)逻辑分析板:用于主机处理器板或其他使用MAPI400接口的电路板。板上有与逻辑分析仪线缆终端适配器兼容的接口,有访问MAPI接口信号的接口,并预留有一块面包板区域和一块用于表面贴元件的的焊盘区,用于用户进行电路扩展。
(5)MAPI扩展板:用于所有MAPI400接口的系统,使用扩展板可以增加开发板相互之间的距离。
(6)平台板:用于提高与主机处理器板的性能,通过MAPI400接口与主机处理器板相连接。板上有RAM、FLASH、双向异步收发器、与逻辑分析仪线缆终端适配器兼容的接口、访问MAPI接口的信号接口以及一个16×2字符的LCD显示和一个IrDA transceiver用于转换电信号和红外信号。
Mcore的软件开发工具按功能可分为4类,如表2所示。
5 Mcore在无线局域网中的应用
无线局域网是当前研究的一个热点 [2]。1997年起,已陆续推出802.11相关的若干个标准,制定了关于无线局域网的MAC(媒体访问控制)层和物理层的规范[3]。下面我们以802.11b无线局域网 MAC层控制器的设计来说明Mcore在通信领域的具体应用。802.11b无线局域网MAC控制器的设计可以分为两个独立部分:MAC层逻辑部分和物理层逻辑部分,其主要功能模块划分如图2所示。
物理层逻辑部分可以采用intersil,actel等提供的芯片或芯片组,并加一外围电路予以实现。而MAC层要同时为上层LLC实体提供异步的数据服务、信息的安全服务和相应的管理服务。根据802.11协议,这些服务都要由MAC层控制模块承担,简单RISC根本无法满足设计的要求。而采用Mcore,其丰富的寄存器资源和中断处理能力,有效地支持了设计的完成,而且这样一个基于Mcore的系统为以后产品更新和功能拓展打下良好的基础。
除此之外,Mcore在其他领域如蜂窝电话系统、定位系统、汽车安全气囊系统中均可以有广泛的应用。
6 结语
Mcore作为Motorola新推出的32位微控制器,具有非常优越的性能,在高性能、低成本、低功耗及嵌入式控制的应用中将具有非常广阔的前景。本文对Mcore的结构功能进行了详细讨论,并结合无线局域网MAC控制器的设计介绍了More的应用。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。