32位精简指令集架构的AT91M42800A的设计与应用

最新更新时间:2014-05-05来源: 互联网关键字:32位  指令集  AT91M42800A 手机看文章 扫描二维码
随时随地手机看文章

 1 引言 目前,嵌入式产品逐步占领了PC市场,而其核心部分——处理器的性能则决定了产品的设计和性能。在32位嵌入式处理器中, 由ATMEL 公司生产的AT91系列芯片之一AT91M42800A是基于ARM7TDMI 处理器内核的16/32位微控制器,它除具有ARM处理器的低功耗、低成本、高性能等优点外,还具有非常丰富的片内资源,特别适合于嵌入式产品的设计开发。 2 AT91M42800A 的基本特性 AT91M42800A采用32位精简指令集(RISC)架构,因此,它既支持16位Thumb指令集,又支持32位的Arm指令集。它采用三级流水线结构,可在同一时间内,一条指令在执行,第二条指令在译码,第三条指令在取指,这样,在每个周期都有一条指令在执行,因此,指令执行速度很快。AT91M42800A的基于先进微控制器总线结构(AMBA)的模块化设计方法具有综合、快速、高性能价格比的特点。该微控制器的内部工作寄存器很多,非常适合实时控制应用。其主要特点如下:


●内核电压和锁相环电压为2.7~3.6V, I/O口操作电压为2.7~5.5V; ●内部带有8kB静态RAM; ●具有完全可编程外部总线接口(EBI),且多达8个片选,寻址空间很大; ●内含8通道外设数据控制器(PDC); ●带有54个可编程I/O口; ●内含6通道16位定时/计数器; ●具有2个通用串行异步接收/发送器(USART)和2个主/从SPI接口; ●内含3个系统定时器; ●时钟可由32768 Hz 晶体和内部锁相环(PLL)电路产生,最高可编程至33MHz,也可由外部时钟信号提供; ●内置嵌入式在线仿真电路(Embedded ICE)可通过JTAG口对AT91M42800A进行测试。 3 基本组成系统 由AT91M42800A构成的最基本的系统至少应包括以下几个部分: (1)程序存储器(ROM) 由于AT91M42800A 内部没有ROM,因此,必须外扩一片程序存储器。应当注意的是:AT91M42800A的8位总线和16位总线的FLASH接法不同,具体接法如图1所示。 (2)数据存储器RAM 如果设计的系统比较复杂,数据比较多,当单片机内部8kB SRAM不能满足要求时,还要外扩一片数据存储器。AT91M42800A能够支持两种“写”方式,但对8位数据总线和16位数据总线的操作也是不同的,因此,对于不同的存储器,其接法不同。对于8位总线的存储器,只需接D0~D7,将D8~D15悬空,并将其地址线对接,而单片机的NWE/NWR0接到存储器的NWE上。对于16位总线的存储器,则将其数据线对接,A1~A17接存储器的A0~A16,并将其NWE/NWR0接存储器的NWE,NUB/NWR1接存储器的NUB,NLB/A0接存储器的NLB。外扩的RAM 的接法与外扩FLASH的接法类似。 (3)时钟发生电路 AT91M42800A的时钟既可以外接晶体,也可外接时钟信号。当外接晶体时,由于其内带振荡电路,因此,外接32.768 kHz 的晶体后,可产生慢时钟(SLCK)。由于SLCK频率低,所以系统的功耗也很低。若想提高系统的工作频率,则可通过PLLA或PLLB对其倍频,以达到所要求的工作频率。如果所需频率不能通过PLL倍频得到,则可由外接时钟信号来提供。当外接时钟信号时,可直接把时钟信号接到XIN引脚上,XOUT引脚悬空。 (4)显示电路 显示电路可采用数码管显示或液晶显示,由于液晶显示的功耗低,故常采用这种显示方式。该设计选用的液晶显示模块为LCM103。 (5)电源及复位电路 AT91M42800A内部带有看门狗(WatchDog)电路,也可以外加WatchDog电路。本文中的例子采用的就是外加WatchDog电路的接法,所选用的器件是MAXIM公司生产的MAX6316LUK29CY。 4 典型应用 由于单片机AT91M42800A具有低功耗、高性能、片内资源丰富、寻址空间大等优点,所以适合现场总线产品的开发,其简要硬件原理图如图2所示。图中只给出主要器件的主要引脚接法,电源电路及其它引脚限于篇幅图中未画,读者在实际的设计过程中可自行设定。 图2 现场总线开发实例 5 存储器空间分配 在本设计中,由于ARM7TDMI处理器的地址空间非常大(可达4G字节)。因此,在重映射前,可将地址最低的4MB分配给内部存储器,最高的4M 分配给内部外设,其余中间的地址空间(从0x00400000到0xFFFCFFFF)留给外部扩展的设备,这部分设备可由AT91M42800A 的八个片选来选择。笔者选择的AT91M42800A开发环境为ADS1.1,由于在实际的嵌入式系统中,ADS1.1提供的缺省存储器映射不能满足要求,而用户的目标硬件有多个存储器设备,且位于不同的位置,如上例中,AT91M42800A的四个片选分别给了外扩FLASH、外扩的RAM、以及FB3050的内部寄存器片选和存储器片选,因此需要通过Scat-ter 文本文件来指定一段代码或数据在加载和运行时在存储器的不同位置,这个文本文件在命令行中由-scatter开关指定。在arm linker菜单的output 子菜单下有link type一项。link type 选项中,只要选择 scatter,并指定scatter.scf 文件的存储位置就可以了。在下面的例子中,FLASH中的代码和数据存储在0x04000000起始的、长度为32kB的地址空间中。 由于Start. s:汇编引导程序代码在执行重映射后,中断向量表将存放在内部RAM中,其地址范围为0x00000000到0x00000018,因此,用于存放数据的实际地址是从0x00000020开始的。存放在外扩RAM中的代码放在ext_ram.c中,以下类似。上例的scatter 文本文件代码如下: FLASH 0x04000000 0x8000 { FLASH 0x04000000 0x8000 { Start.o (Reset, +First) * (+RO) } RAM ON CHIP 0x0020 0x2000 { *(+RW,+ZI) } RAM OFF CHIP 0x8000000 0x40000 { ext ram.o(+RW,+ZI) } FB3050 SEND 0x30000000 0x00ff { sendbuf.o(+RW,+ZI) } FB3050 RECEIVE 0x30004000 0x00ff { receive buf.o+RW+ZI } } 6 调试要点 在设计调试过程中,AT91M42800A还有几个特殊的引脚需要特别注意。 BMS:此引脚用来选择引导存储器的数据宽度,如果引导存储器是8位的,应将其上拉,而如果为16位则要下拉。 NTRI:此引脚用来选择三态模式。如果要进入三态模式,应使NTRI引脚在NRST上升沿到来之前保持10个慢时钟周期的低电平,否则,则应将NTRI上拉。 NWAIT:此引脚在调试AT91M42800A时,应将其上拉,否则,系统将进入等待状态。 MODE0、MODE1:这两个引脚用来选择AT91M42800A的4种操作模式,当模式改变时,必须进行复位才能有效。其设置方法如表1所列。 表1 操作模式设置 MODE0 MODE1 操 作 模 式 0 0 通用模式(时钟由片上振荡电路产生) 0 1 边界扫描模式 1 0 通用模式(时钟由外时钟信号通过XIN引脚) 1 1 保留7 结束语 AT91M42800A是一款处理能力非常强、性能价格比非常高的嵌入式微控制器,它具有32位处理器的处理能力,但却只有16位处理器的价格。它丰富的片上资源和强大的扩展能力为嵌入式系统的开发设计提供了很大灵活性。

关键字:32位  指令集  AT91M42800A 编辑:探路者 引用地址:32位精简指令集架构的AT91M42800A的设计与应用

上一篇:Pebble智能手表采用STM32F205RE MCU
下一篇:一种基于超级电容器储能的光伏控制器的实现

推荐阅读最新更新时间:2023-10-12 22:39

ARM汇编指令集之十——异常产生指令
1、SWI指令 SWI指令的格式为: SWI{条件} 24位的立即数 SWI指令用于产生软件中断,以便用户程序能调用操作系统的系统例程。操作系统在SWI的异常处理程序中提供相应的系统服务,指令中24位的立即数指定用户程序调用系统例程的类型,相关参数通过通用寄存器传递,当指令中24位的立即数被忽略时,用户程序调用系统例程的类型由通用寄存器R0的内容决定,同时,参数通过其他通用寄存器传递。 指令示例: SWI 0x02 ;该指令调用操作系统编号位02的系统例程。 2、BKPT指令 BKPT指令的格式为: BKPT 16位的立即数 BKPT指令产生软件断点中断
[单片机]
32位MCU值得关注的技术
“32 位MCU 的发展趋势是要求产品所需的更高的计算性能、大容量存储、低功耗、集成的复杂性和更多的软件支持,使DSP和MCU走向功能融合(记者注:成为DSC),并有大而全的趋势。” 苏州国芯科技有限公司总经理肖佐楠总结道,同时,随着新型的电子设备对网络多媒体和无线功能需求的增加,MCU产品集成越来越多的模拟功能和新的外围电路。随着信息爆炸性地发展,对信息安全的需求越来越迫切,这将是MCU发展的又一新热点,因此具有集成信息安全功能的CPU和大规模数据计算处理模块设计平台将会得到MCU设计用户的欢迎。 意法(ST)半导体公司大中国区微控制器事业部市场经理曹锦东补充道:未来是节能和环保的世界,对MCU来说,在各种工作状态的功耗水
[单片机]
Arm开放指令集,对今后的IoT发展意味着什么?
翻译自——staceyoniot及新闻稿件 半导体知识产权(IP)提供商Arm,在业界已无人不知,无人不晓。它开发了世界上几乎所有手机处理器都使用的底层架构,现在,Arm进一步开放了该架构以供订制化的需求。Arm表示,将允许合作伙伴定制Arm指令集架构(ISA),以帮助改善合作伙伴终端设备性能和效率。 据悉,Arm首席执行官Simon Segars在Arm® TechCon 2019大会中宣布推出Arm Custom Instructions,这是针对Armv8-M架构新增的功能。2020年上半年开始,Arm Custom Instructions初期将在Arm Cortex®-M33 CPU上实施,并且不会对新的或既有授权厂
[物联网]
Arm开放<font color='red'>指令集</font>,对今后的IoT发展意味着什么?
ARM微处理器的指令集概述(二)——ARM应用系统开发详解笔记
一 跳转指令 跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转: — 使用专门的跳转指令。 — 直接向程序计数器 PC 写入跳转地址值。 ARM 指令集中的跳转指令可以完成从当前指令向前或向后的 32MB 的地址空间的跳转,包括以下 4 条指令: — B 跳转指令 — BL 带返回的跳转指令 — BLX 带返回和状态切换的跳转指令 — BX 带状态切换的跳转指令 B B{条件} 目标地址 B指令是最简单的跳转指令。注意存储在跳转指令中的实际值是 相对当前PC值的一个偏移量,而
[单片机]
32位单片机知识讲解:Microchip PIC32系列(四)
UART 配置   UART 使用标准的不归零(Non-Return-to-Zero,NRZ)格式(1 个启动位、8 或9 个数据位和1 或2 个停止位)。硬件提供奇偶校验,可由用户配置为偶校验、奇校验或无奇偶校验。最普通的数据格式是8 位,无奇偶校验,有1 个停止位(用8, N, 1 表示),这是默认的上电复位(Power-onReset, POR)设置。数据位数、停止位数以及奇偶校验均在PDSEL 1:0 (UxMODE 2:1 )和STSEL (UxMODE 0 )位中指定。UART 首先发送和接收最低有效位(Least Significant bit,LSb)。UART 的发送器和接收器在功能上是独立的,但使用
[模拟电子]
<font color='red'>32位</font>单片机知识讲解:Microchip PIC32系列(四)
32位单片机c语言编程笔记
1.单片机在系统复位或者上电之后,会在执行main()函数之前先执行一小段由maplab c32连接器自动插入的初始化程序,即所谓的starup(启动)代码或者crt0()代码。启动代码负责基本的内务操作,包括栈的所有重要初始化等。 2.随便调用一个库函数,比如printf(),就可能增加数千字节的执行代码,所以要慎用库函数。 3.crt0代码负责在主程序运行之前,将定义在flash里的数组内容,从flash到RAM里,crt0另一个重要的功能是将程序声明的每个全局变量初始化为0,这会使程序更加安全并且容易预测,但这是有代价的。如果ram中要存放一个很大的数组,那么即使你没有要求初始化他们,crt0
[单片机]
ATmega32 通用寄存器
文件寄存器文件针对AVR增强型RISC指令集做了优化。为了获得需要的性能和灵活性,寄存器文件支持以下的输入/ 输出方案: ·输出一个 8 位操作数,输入一个 8 位结果 ·输出两个 8 位操作数,输入一个 8 位结果 ·输出两个 8 位操作数,输入一个 16 位结果 ·输出一个 16 位操作数,输入一个 16 位结果 Figure 4 为CPU 32 个通用工作寄存器的结构。 (点击图片放大) Figure 4. AVR CPU 通用工作寄存器 大多数操作寄存器文件的指令都可以直接访问所有的寄存器,而且多数这样的指令的执行时间为单个时钟周期。 如Figure 4 所示,每个寄存器都有一个数据内存地址,将他们直接映射到用户数
[单片机]
ATmega32 通用寄存器
51单片机指令集详解 51单片机布尔操作指令集详解
这里给大家分享一下 51单片机布尔操作指令集详解。 布尔处理功能是MCS-51系列单片机的一个重要特征,这是出于实际应用需要而设置的。布尔变量也即开关变量,它是以位(bit)为单位进行操作的。 在物理结构上,MCS-51单片机有一个布尔处理机,它以进位标志做为累加位,以内部RAM可寻址的128个为存储位。 既然有布尔处理机功能,所以也就有相应的布尔操作指令集,下面我们分别谈论。 . 位传送指令 位传送指令就是可寻址位与累加位CY之间的传送,指令有两条。 MOV C,bit ;bit→CY,某位数据送CY MOV bit,C ;CY→bit,CY数据送某位 . 位置位复位指令 这些指令对CY及可寻址位进行置位或复位操作,
[单片机]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved