中国电子技术网

设为首页 网站地图 加入收藏

 
 

基于ARM的最小应用系统设计与开发

关键词:嵌入式系统;增强型精简指令集计算机;片上系统;AT91RM9200

时间:2008-12-23 14:18:00      来源:

采用RISC(Reduced Instruction Set Computer,精简指令集计算机)架构的32位ARM(Advanced RISC Machines)微控制器,具有低功耗(内核工作电压一般为1.8V)、高性能、运算速度快(一般以MIPS为单位)、执行效率高等优点。本文采用Atmel公司的ARM920T内核的32位ARM微控制器A

0    引言

嵌入式系统具有可靠性高,实时性强,系统内核小和系统配置要求低等特点,使其在工业过程控制、信息家电、交通管理以及机器人制造等研究生产领域中得到了广泛应用。与8/16位单片机相比,32位ARM微控制器具有更高的性价比,更低的功耗,执行速度更快,性能更高等优点[1,4]。本文采用Atmel公司的ARM920T内核的32位ARM微控制器AT91RM9200,在外围扩展了64MB(32MB*2)32位SDRAM存储器,16MB 16位NOR FLASH存储器,并实现其初始化;通过DEBUG USART和JTAG两个调试口,实现此应用系统的调试与仿真。

1    AT91RM9200
    
Atmel公司生产的AT91RM9200,是完全围绕ARM920T内核构建的系统。采用RISC架构,支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件[1,3];它有丰富的系统与应用外设的标准接口,包括总线接口(EBI):EBI支持 SDRAM、 BurstFlash 及静态存储器的控制器,并设计了专用的电路以方便与SmartMedia、CompactFlash 及NandFlash连接;USB 2.0主机和设备端口[1];UART串口、SPI、调试通道(DBGU)。
此外,还有高级中断控制器(AIC) ,外设数据控制器(PDC) ,JTAG-ICE口:支持所有数字引脚实现IEEE 1149.1 JTAG边界扫描[1];内置的10/100 Base-T 以太网媒体访问控制器(MAC) :可实现系统主机与PHY(OSI参考模型物理层)的数据交换[5]。

2    扩展NOR FLASH的硬件设计与软件初始化

FLASH存储器作为一种非易失性存储器,在系统中通常用于存放程序代码,常量表以及一些在系统掉电后需要保存的用户数据等[3]。本文NOR FLASH存储芯片使用的是INTEL公司的16位FLASH存储器TE28F128J3C150(16MB)。该芯片工作电压仅为3V,通过配置其内部命令寄存器,可对FLASH进行编程(烧写),擦除以及其它操作。

2.1 硬件设计

ARM微控制器系统支持8/16/32位的存储器系统,32位的存储器系统具有较高的性能,而16位的存储器系统则在成本及功耗等方面占有很大优势[3],本设计NOR FLASH存储器的配置系统采用16位存储器系统。其硬件连线为, DQ0-DQ15接数据线D0-D15;A1-A24接地址线A1-A24,A0接地;输出使能OE,写使能WE分别接ARM控制信号CFOE-NOE-NRD,和CFWE-NEW-NER0;擦除/编程/块时钟使能VPEN和复位/掉电引脚RP#一并接NRST,片选使能信号CE0接BFCS-NCS0。

2.2 软件实现,初始化NOR FLASH

初始化NOR FLASH,要求配置EBI接口的片选任务寄存器EBI_CSA,和EBI配置寄存器EBI_CFGR。使其片选寄存器EBI_CSA配置为CS0=FLASH。配置完成时,还要通过配置SMC(静态存储控制器)的片选寄存器0(SMC_CS0)来启动FLASH。

3    扩展SDRAM的硬件设计与软件初始化

与FLASH存储器相比较,SDRAM不具有掉电保持数据的特性,但其存储速度大大的高于FLASH存储器,且具有读写属性,因此SDRAM在系统中主要用作程序的运行空间,数据及堆栈区。同时,系统及用户堆栈,运行数据也都在SDRAM中。

3.1 硬件设计:

本文SDRAM存储器采用的是MICRON公司的16位MT48LC16M16A2(32MB);两片MT48LC16M16A2(32MB*2)并联构建32位的SDRAM存储器系统。其中一片为高16位,另一片为低16位,系统将这两片MT48LC16M16A2作为一个整体配置到片选线NCS1。两片地址复用,A0-A9接地址线A2-A11,A10接SDA10,A11,A12分别接地址线A13,A14,BA0,BA1接A16,A17;SDRAM的时钟CLK和时钟使能CKE接ARM控制信号SDCK和SDCKE。DQM的高低控制线DQML和DQMH,用来区分高,低16位;低16位芯片DQML接地址线A0,DQMH接CFIOR-NBS1-NER1;高16位芯片DQML接地址线A1,DQMH接CFIOW-NBS3-NER3;低16位芯片DQ0-15接数据线D0-D15,高16位DQ0-15接数据线D16-D31。

3.2 软件实现,初始化SDRAM

初始化SDRAM,NOR FLASH都要求配置EBI接口的片选任务寄存器EBI_CSA,还要配置EBI配置寄存器EBI_CFGR,不同之处是在与SDRAM为动态RAM,而FLASH为静态存储器,配置这两个寄存器的参数是不同的。同时,SDRAM配置模式寄存器MR时,要发送“刷新”命令;而在发送“刷新”命令之前要首先发送“所有组预充电”命令,此后发送“载入模式寄存器命令”;在配置刷新定时寄存器时要根据所选的SDRAM的型号定义刷新频率。
程序流程图,如图1所示
         


图1 初始化SDRAM程序流程图

4    最小应用系统的硬件设计与软件实现

4.1 最小应用系统的硬件设计

AT91RM9200支持JTAG-ICE仿真,DEBUG USART调试,在芯片外部设计了20针的JTAG接口,与USART兼容的一个调试信道DEBUG USART口。供电电源;内核为1.8V,外围IO为3.3V;提供时钟为慢时钟32.768KHz,和主时钟18.432MHz(由内部PLL倍频至209MHz)。其系统硬件结构图,如图2所示;



图2系统硬件结构图

4.2,系统的初始化程序

1),初始化时钟,包括主时钟,PLLA时钟,PLLB时钟:
程序流程为,首先检测主时钟,检查PLLA,PLLB两个时钟是否在正确的范围内。在定义时钟时,配置PMC的时钟发生器PLLA和PLLB寄存器,即CKGR_PLLAR ,CKGR_PLLBR ,定义PLLA,PLLB两个时钟。通过配置PMC主时钟寄存器PMC_MCKR,定义主时钟。特别注意的是在定义主时钟频率,即在配制主时钟寄存器PMC_MCKR时,要先写一个慢时钟的参数,再在下一步写主时钟的参数。

2), 初始化程序,包括初始化时钟,初始化SDRAM,NOR FLASH,初始化DEBUG USART。
    


图3 系统主程序流程图

5    最小应用系统的调试与仿真
    
仿真和调试工具的选择

ADS(ARM Developer Support)是ARM公司推出的集成编辑,编译和调试工具,ADS主要包括三个部分组成:Multi-ice Server(配置工具,用于配置ARM内核);CodeWarrior(集成编辑,编译和链接工具)和AXD(调试工具)[2,3]。Magic-ICE是一个硬件仿真器,一端是并口,连接主机;另一端是JTAG接口,连接目标板[2,3]。

5.2 系统调试与仿真

本文在不采用嵌入式操作系统的情况下,利用ADS1.2和Magic-ICE仿真调试该系统。连接好系统的调试信道DEBUG USART与主机的串口COM1,打开主机的超级终端,设置串口参数如下:波特率设置为115200;位数据位为8;无奇偶校验位;1位停止位;数据流控制选择无,然后点击“确定”。

上电目标板,在远程终端输出字符“C”,运行系统初始化程序,在串口程序中输出相应的字符。在ADS环境下,运行系统初始化程序,调试各个扩展芯片,待初始化完毕。
此时,基于AT91RM9200的最小应用系统已经实现。

6    结束语

随着信息电子技术的迅猛发展,8位单片机无论是在速度,功能以及功耗上都与32位的ARM微控制器无法比拟。而本文采用Atmel公司的32位ARM微控制器AT91RM9200,核心供电电压为1.8V,工作频率在180MHz时可达200MIPS,比8/16位单片机更具优越性。通过外扩SDRAM,NOR FLASH,扩展了ARM芯片的存储单元,实现其最小应用系统的硬件设计及软件开发,对32位微控制器的开发与应用都具有重要的意义。
参考文献:

[1] ARM920TTM based Microcontroller AT91RM9200 data sheet www.atmel.com/literature 2005.

[2] Andrew Sloss. ARM嵌入式系统开发:软件设计与优化[M].沈建华, 等译. 北京: 北京航天航空大学出版社, 2005.

[3] 李驹光. ARM应用系统开发详解——基于S3C4510B的系统设计[M]. 北京:清华大学出版社, 2003.

[4] 桂肖敏等 嵌入式操作系统VxWorks在ARM芯片上的应用[J]. 微计算机信息,2006年第3-2期, P101-103

[5] 周立功. ARM嵌入式系统基础教程[M]. 北京: 北京北京航天航空大学出版社, 2005.

本文作者创新点:

现在流行的嵌入式系统仍然是以8/16位单片机为主流,但是随着功耗,性能,运算速度等要求, 32位ARM微控制器具有更高的性价比,更低的功耗,执行速度更快,性能更高等特点。本文采用Atmel公司的ARM920T内核的32位ARM微控制器AT91RM9200,实现其最小应用系统的硬件设计及软件开发;并且完成该系统的调试和仿真。此设计降低了系统的功耗,提高了系统的运行速度,对以后嵌入式系统向32位微处理器发展提供了一定的技术支持。
本文拟投稿在:《微计算机信息》的《嵌入式与SOC片上系统》专题

分类号:TP302.1            文献标示码:A

项目资助: 项目基金号:3ZS042-B25-024   2005甘肃省自然科学基金项目  自筹经费
         
基金资助名称:计算机控制系统工业总线星型光通信系统研究

作者联系方式:

桑兴民: 兰州交通大学508号信箱,兰州交通大学自动控制研究所桑兴民收,

邮编:730070,
              
E-mail: [email protected]

来源:微计算机信息
  • 分享到:

 

猜你喜欢

  • 新闻
  • 新品
  • 方案

  • 主 题:恩智浦800V电池管理系统方案介绍
  • 时 间:2022.06.30
  • 公 司:NXP

  • 主 题:恩智浦S32K3域控制器应用介绍
  • 时 间:2022.07.07
  • 公 司:NXP

  • 主 题:车轮上的数据中心-Molex天线解决方案
  • 时 间:2022.07.12
  • 公 司:Mouser&Molex