引言
嵌入式系统是以实际应用为核心,对功能、可靠性、成本、体积、功耗有严格要求的专业计算机系统,随着嵌入式系统相关技术的迅速发展,嵌入式系统功能越来越强,应用接口更加丰富,根据实际应用的需要设计出特定的嵌入式最小系统和应用系统,是嵌入式系统设计人员应具备的能力,由于ARM嵌入式体系的结构的一致性以及外围电路的通用性,采用ARM内核的嵌入式最小系统的设计原则和设计方法基本相同,本文基于MC9328MX1芯片介绍ARM嵌入式最小系统设计的一般方法。
1 MC9328MX1概述
MC9328MX1是Motorola公司基于ARM920T的龙珠(Dragon Ball)MX1处理器,MC9328MX1内含ARM公司设计的16/32bit ARM920T微处理器内核,采用RISC架构的ARM微处理器具有体积小、功耗低、性价比高的特点,主要应用于高级信息处理设备、智能电话、网页浏览器、数字多媒体播放器、基于流行的Palm OS操作平台的手提计算机和无线通信发射、接收设备等。
MC9328MX1的结构框图如图1所示。
MC9328MX1的体系结构如下:全16/32bit RISC架构,内含效率高、功耗强大的ARM920T的处理器核,支持16bit Thumb和32bit ARM指令集的高性能RISC引擎,支持大、小端模式,内部架构为大端模式,外部存储器可分为大、小端模式,基于JTAG接口的方案,边界扫描接口,用于嵌入式多媒体应用集成系统。
MC9328MX1的系统关系特性为:一体化的16KB指令Cache及16KB数据Cache,支持虚拟地址转换存储器管理单元(VMMU),支持ROM/SRAM、Flash存储器、DRAM和外部I/O以8/16/32bit的方式操作,支持EDO/常规或SDRAM存储器,使用ARM先进的微控制器总线结构(AMBA),即SoC多主总线接口,利用精简先进的高性能总线(R-AHB)与速度较慢的片上外围设备进行通信,可同时连接15个外部设备。
尽管嵌入式处理器芯片种类多,引脚繁杂,但根据它们各自的功能特点,因该分布是有规律的,在嵌入式最小硬件系统设计中,要注意区分处理器芯片引脚的类型,仔细分析研究关键引脚作用,才能保障最小系统的正常运行。
MC9328MX1采用MAPBGA封装,共有256引脚,MC9328MX1的引脚可分为电源、接地、输入(I)、输出(O)、输入/输出(I/O)5类。除了电源和接地线有近40根,以及地址总线,数据总线和通用I/O接口端,专用模块SPI、UART、I2C、LCD等接口,需要认真仔细研究的引脚不是很多,电源和接地端是保障系统正常工作最基本的条件之一,输入类型的有些引脚在系统设计时必须认真仔细对待,因为有些电平信号直接影响到MC9328MX1的正常工作,输出类型的引脚主要用于对外设的控制或通信,由MC9328MX1主动发出,对MC9328MX1自身的运行不会有太大的影响,输入/输出类型引脚是MC9328MX1与外设的双向数据传输通道。
2 嵌入式最小系统
以ARM内核嵌入式微处理器为中心,具有完全相配接的Flash电路、SDRAM电路、JTAG电路、电源电路、晶振电路、复位信号电路和系统总线扩展等,保证嵌入式微处理器正常运行的系统,可称为嵌入式最小系统。
嵌入式最小系统硬件结构图如图2所示。
嵌入式最小系统硬件功能如下:
微处理器:MC9328MX1是系统工作和控制中心;
电源电路:为MC9328MX1核心部分提供所需的1.80V工作电压,为部分外围芯片提供3.0V的工作电压;
晶振电路:为微处理器及其他电路提供工作时钟,及系统中MC9328MX1芯片使用32KHz或32.768KHz无源晶振;
Flash存储器:存放嵌入式操作系统、用户应用程序或者其他在系统掉电后需要保存的用户数据等;
SDRAM:作为系统运行时的主要区域,系统及用户数据、堆栈均位于该存储器中;
串行接口:用于MX1系统与其他应用系统的短距离双向串行通信;
JTAG接口:对芯片内部所有部件进行访问,通过该接口对系统进行调试、编程等;
系统总线扩展:引出地址总线、数据总线和必须的控制总线,便于用户根据自身的特定需求,扩展外围电路。
3 最小系统硬件的选择和单元电路的设计
3.1 电源电路设计
电源电路是整个系统正常工作的基础,设计的电源电路必须满足系统对该电路性能指标的要求。MC9328MX1核心部分需1.80V工作电压,部分外围芯片需3.30V工作电压,根据要求输入5V直流电压经DC-DC变换,分别为系统提供1.80V和3.30V的工作电压,不同系统根据实际功耗,选择器件设计电源电路,电源电路如图3所示。
3.2 晶振电路与复位电路设计
晶振电路为微处理器及其他电路提供工作时钟,是系统必须的重要电路,MC9328MX1使用32KHz无源晶振,32KHz晶振频率输入MC9328MX1后,经PLL(锁相环)倍频后达到16.384MHz,并输入系统PLL及MCU PLL。MCU PLL将输入的16.384MHz倍频到最高192MHz,提供给ARM内核使用,系统晶振电路如图4所示。
复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能,本系统采用较简单的RC复位电路,复位电路如图5所示。
3.3 Flash存储器接口电路设计
Flash存储器在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的数据等。Flash接口电路是最小系统设计中至关重要的电路。
常用的Flash存储器为8bit/16bit数据宽度,工作电压一般为3.3V,主要生产厂商为Intel、Atmel、Hyundai等,他们生产的同类器件一般具有相同的电气特性和封装形式,可根据需要选用。
为了充分发挥32bit MC9328MX1性能优势,直接采用1片32bit数据宽度的Flash存储器芯片,也可采用2片16bit数据宽度的Flash存储器芯片并联构建32bit的Flash存储器系统,16bit Flash存储器系统的构建方法与32bit Flash存储器系统相似,本系统使用2片28F320J3A组成32bit Flash存储器32bit Flash存储器系统如图6所示。
2片28F320J3A,其中一片为高16bit,另一片为低16bit,作为整体配置到MC9328MX1外围接口模块CS0空间,将MC9328MX1的#CS接至2片28F320J3A的CE0端,CE1、CE2接地;2片28F320J3A的地址总线[A21-A1]均与MC9328MX1的地址总线[A22-A01]相连,低16bit片的数据总线与MC9328MX1的低16bit数据总线[D15-D00]连接,高16bit片的数据总线与MC9328MX1的高16bit数据总线[D31-D16]连接;2片28F320J3A的RP#端接VCC;2片28F320J3A的OE端接MC9328MX1的#OE;2片28F320J3A的WE端接MC9328MX1的#EB;2片28F320J3A的BYTE均上拉,使之工作在字模式。
3.4 SDRAM接口电路设计
与Flash存储器相比较,SDRAM虽然不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器,并且具有读/写属性,SDRAM在系统中主要用作程序的运行空间、数据及堆栈区。因此,SDRAM接口电路在最小系统设计中必须高度重视。
目前常用的SDRAM为8bit/16bit数据宽度、工作电压一般为3.3V,主要生产厂商为Samsung、HYUNDAI、Winbond等,若同类器件具有相同的电气特性和封装形式可通用。但在使用SDRAM时要注意ARM芯片是否具有独立的SDRAM的刷新控制逻辑,若有可直接与SDRAM接口,若无则不能直接与SDRAM连接。
根据系统的需求,可构建16bit或32bit的SDRAM存储器系统,本系统采用2片K4S281632并联构建32bit的SDRAM存储器系统,单片K4S281632为16bit数据宽度、容量16MB,2片容量共32MB的SDRAM空间,可满足嵌入式操作系统及各种较复杂运行的运行需求,使用2片K4S281632构建32bit的SDRAM系统电路如图7所示。
2片K4S281632,其中一片为高16bit,另一片为低16bit。2片K4S281632作为一整体配接到DRAM/SDRAM的CSD0,将MC9328MX1的#CSD接至2片K4S281632的CS端,2片K4S281632的CLK端接MC9328MX1的SDCLK端,2片K4S281632的CLE端接MC9328MX1的SDCKE端;2片K4S281632的RAS、CAS、WE端分别接MC9328MX1的RAS、CAS、SDWE端,2片K4S281632的地址总线[A08-A00]接MC9328MX1的[A10-A02];2片K4S281632的地址总线[A10-A09]接MC9328MX1的[MA11-MA10];2片K4S281632的地址总线[A11]接MC9328MX1的[A12];2片K4S241632的BA1、BA0接MC9328MX1的地址总线[A14-A13];高16bit片的[DQ15-DQ0]接MC9328MX1的数据总线[D31-D16]、低16bit片的[DQ15-DQ0]接MC9328MX1的数据总线[D15-D0];高16bit片的UDQM、LDQM分别接MC9328MX1的DQM3、DQM2,低16bit片的UDQM、LDQM分别接MC9328MX1的DQM1、DQM0。
3.5 串行接口电路设计
MC9328MX1提供了串行接口,使用RS-232标准接口,近距离通信系统中可直接进行端对端的连接,但由于MC9328MX1系统中LVTTL电路的逻辑电平与RS-232标准逻辑电平不相匹配,二者间要进行正常的通信必须经过信号电平转换,本系统使用MAX3221电平转换电路,以RS-232标准9芯D型接口为例,要完成最基本的串行通信功能,只需要RXD(数据接收)、TXD(数据发送)和GND(地)端即可。串行接口电路如图8所示。
3.6 JTAG接口电路设计
JTAG技术是一种嵌入式调试技术,芯片内部封装了专门的测试电路TAP(测试访问口),通过专用的JTAG测试工具对内部节点进行测试和控制,目前大多数ARM器件支持JTAG协议,标准JTAG接口是4线;TMS(测试模式选择)、TCK(测试时钟)、TDI(测试数据串行输入)、TDO(测试数据串行输出)。JTAG接口的连接有两种标准,即14针JTAG接口与MC9328MX1连接电路。 |