本章简要概述 ColdFire 系列微处理器,给出 MCF5223x 系列微控制器存储器映像与 编程结构、寻址方式、异常向量表;重点指出学习一个新 MCU 芯片比较快速的学习过程;
给出 MCF52233 的引脚功能与硬件最小系统电路。本章的重点是:存储空间的地址分配、
中断结构、硬件最小系统电路。
2.1 ColdFire系列微处理器概述
在 1996 年,Motorola 半导体部(现 Freescale 半导体公司)将具有划时代意义的 ColdFire 微处理器加入该公司的 32 位机大家族。四年以后,全世界已经使用了超过一亿片的以 68K/ColdFire 微处理器为核心的微控制器。ColdFire 是著名的 68K 体系结构的延续,沿袭 了 68K 系列的精华,改进了模块与工具。经过多年的发展,ColdFire 已经发展出大量的微 控制器系列产品,集成了各种外设和不同大小的存储器,成为许多低成本、高可靠、高性 能的嵌入式应用的理想解决方案。Freescale 公司提供了不同的功能、价格、集成度和调试 能力的 32 位单芯片嵌入式应用的解决方案,ColdFire 系列微控制器建议零售价从 5 美元 到 25 美元不等,处理器的性能水平从 10 到 400MIPS①不等,使得用户可以各取所需。也 就是说,用户无论需要怎样的系统功能和集成度,总能从 ColdFire 的庞大产品系列中选到 一款合适的芯片进行应用开发。这正是嵌入式系统产品的设计者所期望的。
了解 ColdFire 系列微处理器的结构特点,有助于产品设计时的选型。下面简要介绍 ColdFire 系列微处理器体系结构的主要特点。
ColdFire 系列具有变长精简指令集计算机(Reduced Instruction Set Computer,RISC)
架构,集成了高代码密度的高性能内核和大量外围接口。ColdFire 系列微处理器最先推出 的版本是 V2,以 ColdFire V2 微处理器为核心制造的微控制器产品种类达百种以上。后来 版本发展到 V3、V4,还在继续发展,目标是覆盖各种不同应用。后来 Freescale 推出了单 片机业界首个 8/32 位兼容架构中缺失的一环 ColdFire V1。
V1 内核是 ColdFire V2 内核的简化版本,设计用于 32 位入门级应用。它改善了字节
(8 位)和字(16 位)操作数的处理能力,同时保持了与 ColdFire 架构相同的寻址方式和 指令定义。通过将硬件乘法累加器(Multiply- ACcumulate unit,MAC)②、增强型乘法累 加器(Enhanced Multiply-ACcumulate unit,EMAC)和除法(DIV)变为可选功能,设计 者能够将那些不需要增强型处理性能的应用的成本降至最低水平。
V2 内核基于存储器可配置分层架构,是 100%可综合的,并且专门设计用来重新使用
① MIPS(millions of instructions per second,百万条指令每秒)。许多工程师用该术语表示处理器的 处理能力。它是一个技术上并不全面但已被广泛采用的基准度量。
②乘法累加器是 Multiply-Accumulate Unit 的缩写,有的文献使用 MAU,但 Freescale 的 ColdFire 编 程参考手册使用了 MAC 这一缩写,本书沿用。
第 2 章 ColdFire 概述与 MCF52233 硬件最小系统
和简化集成定制设计。在0.13μm 工艺的基础上,利用带有 32 位地址和数据总线与集成调 试模块的单线程、基于标准单元的设计,内核可以支持高达 166MHz 的性能。内核采用长 度可变的 RISC 架构,允许的指令长度有 16、32 和 48 位。结果就是能更有效地将代码存 储到存储器中,从而降低了存储器的要求,并削减了系统总成本。V2 主要特点:变长的 RISC 指令集、2 个独立的流水线(两级取指令流水线和两级操作数执行流水线)、用 3 个 长字的 FIFO 缓冲区将流水线彼此分离、32 位内部总线地址支持 4GB 的地址空间、32 位 数据总线、16 个用户可用的 32 位通用寄存器、具有管理员/用户编程模式、地址空间可通 过配置寄存器重新定位、对高级语言的优化支持等。
V3 内核包括优化的指令预取流水线,分支预测能力,和更高的操作频率。该内核性 能比 V2 内核提高了 300%,而系统操作频率仅增加不到 50%。另外还包括一个高速的乘 法累加单元,专用的硬件除法和增强的调试功能。
V4 内核的微体系结构和 V3 内核相比,性能提高了 2.8 倍,拥有更加广阔的应用。改 良的微体系结构拥有更高的性能:大于 200 Dhrystone 2.1 MIPS@150MHz①。
ColdFire 内核中还可以集成硬件乘法累加器 MAC、增强型乘法累加器 EMAC 和密码 加速单元(Cryptographic Acceleration Unit,CAU),提高了效率和性能。
乘法累加器 MAC 用于设计完成一系列的 DSP 操作,当系统支持基于 ColdFire 体系 结构的整数乘法指令时,MAC 可以提供嵌入式代码的性能。带有 MAC 的微处理器能以 较少的周期快速执行信号处理算法。例如对于较小的数字滤波器,该算法执行一些方差计 算的时间还可以接受。MAC 可以用于以下 3 方面:有符号和无符号的整数乘法、有符号 的定点小数运算及多种寄存器操作数运算。ColdFire 系列支持 2 个 MAC,由于其成本不 同,故具有不同的功能和性能。
增强型乘法累加器 EMAC 对乘法累加器 MAC 进行了改进,采用 4 级流水线,最优 地实现了 32 位操作数运算,具有全流水的 32×32 乘法数组,以及 4 个 48 位累加器。
密码加速单元 CAU 是一个协处理器,用来执行一些 ColdFire 协处理器命令。CAU 能 加速一些常用的加密算法,为网络设备(如家庭网关或路由器)的安全性保障提供技术基 础。其他的 CAU 加密应用有自动售货机、自动收费机、雇员或个人识别系统。本书的范 例芯片 MCF5223x 系列中 MCF52235 含有密码加速单元 CAU。
Freescale 以 ColdFire 微处理器不同版本为内核生产的微控制器(MCU),命名方法一 般如下:ColdFire V1 内核的产品以 MCF51xx 命名,ColdFire V2 内核的产品以 MCF52xx 命名,ColdFire V3 内核的产品以 MCF53xx 命名,ColdFire V4 内核的产品以 MCF54xx 命 名,各自形成 MCU 子系列。这些不同型号的 MCU,因内部模块数量、I/O 口数目、封装 形式等不同形成具体型号的产品。较为详细的资料可参见光盘“„\第 02 章 阅读材料”
目录中的资料。这些资料都在更新,最新的资料可以在 Freescale 的网站(英文网站 http://www. freescale. com/ ColdFire 或中文网站 http://www. freescale. com. cn/ ColdFire)上 下载。
① Dhrystone,一种常用的处理器基准测试程序,主要用于市场目的的计算机性能测试。
2.2 MCF5223x系列微控制器存储器映像与编程结构
2006 年,Freescale 开始提供 MCF5223x 样片,2007 年 MCF5223x 批量上市。MCF5223x 系列 MCU 是首个能在单片内提供快速以太网控制器及以太网物理层和闪存的 32 位 MCU。
本书以该芯片为主要蓝本阐述嵌入式开发所必备的硬件设计、软件设计及相关技术。一般 来说,学习一个新的 MCU 芯片,若用 C 语言进行编程,比较快速的学习过程是:
(1)了解性能及内部主要功能模块与存储空间的地址分配。
(2)了解基本的编程结构、编程模式及寻址方式。
(3)了解中断结构。
(4)了解芯片的引脚的总体布局情况,掌握硬件最小系统电路。
(5)理解第一个工程的结构,理解工程中各个文件的基本功能。一般来说,第一个 工程为一个简单的小程序,如利用通用 I/O 模块编程控制几个发光二极管,主要目的是给 出程序框架和工作过程。
(6)进行实际环境的编译(compile)、链接(link)生成可以下载到芯片内部 Flash 存储器中的程序(可以运行的机器码),基本理解列表文件、机器码文件。
(7)一定要有硬件评估环境,这是学习新 MCU 的必需品。这样就可将程序利用写 入调试器下载到目标 MCU 中,在目标板上,观察运行情况。随后,可进一步利用嵌入式 软件的打桩调试技术,即在被测程序代码中插入一些函数或语句,利用这些函数或语句产 生可在硬件板上显示物理现象,供观察程序运行情况之用。
(8)从整个工程组成、各个文件、写入 Flash 存储器的机器码等角度,透彻理解第 一工程的执行过程。
至此,就算“入门”了。以后逐步学习各个功能模块就方便了。
本章给出上述过程的(1)—(4)步,下一章给出上述过程的(5)—(8)步,通过 两章的学习完成“入门”。
2.2.1 MCF5223x性能概述与内部结构简图
MCF5223x 是单芯片 32 位微控制器解决方案。重要特点是:该系列芯片内部含有以 太网模块,即 ColdFire V2 内核上集成了 10/100M 快速以太网控制器(Fast Ethernet Controller,FEC)与以太网物理层(Ethernet Physical Transceiver,EPHY)模块。该系列 芯片以合理的价格提供卓越的性能(频率为 60MHz 时最高 56MIPS)。该系列芯片的典型 应用为医疗仪表和监视器、远程数据采集、嵌入式以太网、ZigBeeTM 控制节点、安全/
访问控制面板、照明控制节点、家庭/工业自动化等。图 2-1 给出了 MCF5223x 的功能框 图。
MCF5223x的主要常规模块和特点总结如下:
(1)静态 RAM(SRAM):32KB;
(2)Flash 存储器:128KB/256KB,10 万次擦写周期,10 年数据保持;
(3)支持后台调试模式(Background Debug Mode,BDM);
第 2 章 ColdFire 概述与 MCF52233 硬件最小系统
(4)支持对集成电路提供串行的外部测试访问,符合 JTAG(Joint Test Action Group)
标准;
( 5 ) 用 于 常 规 标 准 串 行 通 信 的 通 用 异 步 收 发 器 ( Universal Asynchronous Receiver/Transmitter,UART);
(6)队列式串行外围设备接口(Queued Serial Peripheral Interface,QSPI);
(7)集成电路互连总线(Inter-Integrated Circuit,I2C)①;
(8)4 通道具有直接存储器访问(Direct Memory Access,DMA)功能的 32 位定时 器;
图2-1 MCF5223x方框图
(9)通道 16 位或 8 通道 8 位的脉宽调制器(Pulse-Width Modulator,PWM)生成器;
(10)可编程中断定时器(Programmable Interrupt Timers,PIT)、4 通道 DMA 控制 器;
(11)8 通道 12 位模数转换器(Analog-Digital Converter,ADC);
(12)系统集成模块包含锁相环(Phase-Locked Loop,PLL)和看门狗(Computer Operating Properly,COP)等功能;
(13)工作电压为 3.3V。
MCF5223x 系列包括 MCF52230、MCF52231、MCF52232、MCF52233、MCF52234、
MCF52235 和 MCF52236。这些器件或速度不同或存储器大小不同或封装不同,而且还有 部分器件增加了特殊模块,比如 MCF52235 增加了密码加速协处理器,用户可以从中选
① 关于 Inter-Integrated Circuit 的缩写,不同文献可能使用不同写法,有 I2C、IIC 及 I2C,本书统一 使用 I2C,这样也方便程序注释。
择最适合其应用需求的器件。表 2-1 给出了 MCF5223x 系列 MCU 性能的简要描述,供选 型参考之用。
表 2-1 MCF5223x 系列 MCU 性能简表
编号 Flash/SRAM 内部主要功能模块 封装 速度
MCF52230 128/32KB UART、I2C、QSPI、A/D、FEC EPHY、
DMA、16/32/PWM 定时器 80/112 LQFP 60MHz MCF52231 128/32KB 与 MCF52230 相比增加 FlexCAN 模块 80/112 LQFP 60MHz MCF52232 128/32KB 与 MCF52230 相同 80 LQFP 50MHz MCF52233 256/32KB 与 MCF52230 相同 80/112 LQFP 60MHz MCF52234 256/32KB 与 MCF52230 相比增加 FlexCAN 模块 112 LQFP
DMA、16/32/PWM 定时器 80/112 LQFP 60MHz MCF52231 128/32KB 与 MCF52230 相比增加 FlexCAN 模块 80/112 LQFP 60MHz MCF52232 128/32KB 与 MCF52230 相同 80 LQFP 50MHz MCF52233 256/32KB 与 MCF52230 相同 80/112 LQFP 60MHz MCF52234 256/32KB 与 MCF52230 相比增加 FlexCAN 模块 112 LQFP