ARM嵌入式最小系统设计的一般方法
21ic 2024-06-14

引言

嵌入式系统是以实际应用为核心,对功能、可靠性、成本、体积、功耗有严格要求的专业计算机系统,随着嵌入式系统相关技术的迅速发展,嵌入式系统功能越来越强,应用接口更加丰富,根据实际应用的需要设计出特定的嵌入式最小系统和应用系统,是嵌入式系统设计人员应具备的能力,由于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 lash存储器接口电路设计

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连接电路。这样,基于MC9328MX1嵌入式最小系统设计完成了。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【立即预约】Keysight直播:搞懂介电常数那些事儿


  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 基于C51单片机实现汽车座椅自动控制系统的软硬件设计

    引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节...

    2小时前
  • MCS51单片机程序设计时堆栈的计算方法解析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己...

    2小时前
  • 51单片机定时器工作原理及用法

    TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。...

    2小时前
  • 51单片机学习单片机之路总结

    学习单片机有一学期了,现在也由51转到STM32了。一直想对51的学习做一个总结。也希望对别人有一些启发。也给后学者提供一些建议。当然本文是我对自己学习过程的总结,若有不对的地方,还请高手指出。 我想,再看本...

    2小时前
  • hot51增强型单片机开发板原理图

    功能要求: 一):绿灯25s倒计时,绿灯过度红灯有5s黄灯时间,红灯25s后直接跳绿灯。 二):按键按下模拟闯红灯输入,产生5s蜂鸣器鸣叫。 开发环境: 软件:Keil uVision4 硬件:HOT51增强型单片机开发板 程序代码:...

    昨天
  • 51单片机的延时子程序

    延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指令周期的区别和联系...

    昨天
  • 什么是Flash盘?Flash盘的结构是什么样的?

    Flash是大家常使用的存储之一,对于Flash,大家或多或少有所了解。上篇文章中,小编对Flash闪存的类型有所介绍。为继续增进大家对Flash的认识,本文将对Flash盘、Flash盘结构以及Flash读写操作予以介绍。如果你对本...

    昨天
  • 深谈嵌入式系统,嵌入式系统是如何组成的?

    嵌入式系统在生活中有诸多应用,大家对于嵌入式系统或多或少有所耳闻。在前两篇文章中,小编对嵌入式系统进行过详细介绍。为继续增进大家对嵌入式系统的认识,本文将对嵌入式系统的组成加以说明。如果你对嵌入式系...

    06-27
  • 嵌入式系统秘籍共享,最全嵌入式系统解析

    嵌入式系统的应用十分广泛,因此越来越多的人学习嵌入式系统。由此,在学习嵌入式系统之前,我们应当对嵌入式系统具备一些认识。所以在本文余下部分,小编将对嵌入式系统进行全面解析。如果你对嵌入式系统具有兴趣...

    06-27
  • 51单片机超声波测距程序详解

    51单片机超声波测距程序详解 超声波四通道测距:超声波测距实现分为三大块: 其一是12864带字库的液晶驱动程序: 代码如下: /////////////////12864驱动程序/////////////////////////// //1写数据 void WriteDat...

    06-25
  • 51系列单片机的引脚图

    51系列单片机的引脚图 端子介绍 l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8...

    06-25
  • 51单片机串口通信需要加超时中断吗?

    接收数据时,超过一定时间就算出错. 这个超时的时间是单片机自己算出的吗?超时的时间是由编程序的人定的,他定多长就多长从一段程序开始 实现电脑向 单片机发送一些数据,单片机返回Iget +数据 #include #define u...

    06-25
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告