大容量Flash型AT91系列ARM核微控制器_嵌入式系统论文
摘要:主要介绍美国atmel公司最新推出的基于arm7tdmi核的at91fr40162微控制器的体系结构及功能特性。at91fr40162是对at91r40008增加了16mbit的flash存储器后形成的最终产品。本文对at91fr40162新增的flash存储器以及at91 flash uploader软件作重点介绍。
关键词:at91fr40162 at91r40008 sram flash 微控制器
引 言
at91fr40162是美国atmel公司生产的at91系列微控制器中的一员,具有arm7tdmi核、大容量flash存储器以及片内sram和外围。这种微控制器的特点是高性能--32位risc体系结构、高密度--16位指令集、低功耗以及实时性,扩充的flash存储器还增加了开发者使用的灵活性。除此以外,大量的内部分组寄存器加速了对异常的处理过程,从而使其更适合于实时控制的应用。8级基于向量的优先级中断控制器和外围数据控制器pdc大大增强了实时器件的性能。此器件适用于开发工业自动化系统、mp3、销售终端、gps接收机以及无线网络产品等对功耗敏感且要求具有实时性的产品。at91fr40162微控制器的特点是在一个121-ball bga封装中集成了256 kb的片内sram和16 mbit的flash存储器。它为许多计算密集的嵌入式控制应用领域提供了功能强大、使用灵活且性价比高的解决方案,同时还可以帮助用户减小pcb尺寸和系统成本。flash存储器可以通过jtag/ice接口或者厂家编写的flash uploader软件进行编程,从而使at91fr40162适合于在系统可编程应用。
1 功能框图及产品特点
at91fr40162的功能框图如 图1所示。
at91fr40162的主要特点是:arm7tdmi处理器核、256 kb的片内sram和1024 k字的16位flash存储器、完全可编程的外部总线接口ebi、具有8个优先级且可以独立屏蔽的向量中断控制器、32个可编程的i/o口线、3通道的16位定时器/计数器、2个通用同步/异步收发器usart、可编程的看门狗定时器、先进的省电特性、完全静态的操作、2.7~ 3.6 v的i/o工作范围和1.65~1.95 v的内核工作范围、 -40~85℃的运行温度范围以及121-ball 10 mm×10 mm×1.2 mm bga封装(球的直径为0.8 mm)。
2 体系结构
at91fr40162是由atmel公司的at91r40008 arm/thumb微控制器和1个at49bv1604a/1614a 16mbit flash存储器集成的121-ball bga封装器件。除了flash存储器使能信号以外的所有地址、数据和控制信号都是内部互连的。
at91r40008体系结构包括2条主要总线:先进的系统总线asb和先进的外围总线apb。asb被设计为最佳性能,由存储控制器控制。arm7tdmi通过asb与片内32位存储器、外部总线接口ebi和amba桥进行接口。amba桥驱动apb,apb被设计用于访问片内外围并且进行了低功耗优化。
at91fr40162将arm7tdmi处理器的ice端口接到一些专用的引脚上,从而为目标调试提供了完整、低价且易用的调试解决方案。
2.1 存储器
at91fr40162嵌入了256 kb的内部sram。这个内部存储器是单周期访问的,它直接与32位数据总线相连。这样通过使用微控制器的arm指令集在66 mhz下可以提供60 mips的最高性能,同时降低了系统功耗。at91fr40162以拥有1个外部总线接口ebi为特性,它用于连接外部存储器和专用外围设备。ebi支持8或16位器件并且可以使用2个8位器件来仿真1个16位器件。ebi执行早读协议,与标准的存储器接口相比,能够提供更快的存储器访问速度。at91fr40162嵌入了1个由1024k个16位字组成的flash存储器,通过ebi可以访问它。flash的主要功能是作为程序存储器。1条16位的thumb指令可以在1个访问周期从flash存储器被加载。分离的mcu和flash复位输入(nrst和nrstf)是为了得到最大的系统灵活性,方便用户自由地根据应用选择复位操作。at91fr40162集成了一个叫作at91 flash uploader的驻留引导软件。at91 flash uploader软件能够向flash存储器加载应用软件。
2.2 外 围
at91fr40162集成了多个外围,它们被分成2类:系统外围和用户外围。所有的片内外围都可以通过amba桥接受32位的访问。外围寄存器由控制寄存器、模式寄存器、数据寄存器、状态寄存器和使能/禁止/状态寄存器组成。外围数据控制器pdc在片内usart和片内或片外的存储器之间传输数据,并且无需处理器的介入。最重要的一点是,pdc消除了数据传输中断的额外开销,从而在不需要重新编程起始地址的情况下可以连续传输高达64 kb的数据。这样不仅增加了微控制器的性能,而且降低了功耗。
(1)系统外围
外部总线接口(ebi)通过1条8位或16位数据总线控制外部存储器或外部设备,它通过apb被编程。每一条芯片选择口线有它自己的编程寄存器。省电模块(ps)实现空闲模式(arm7tdmi核时钟停止直到有下一个中断),并且允许用户根据应用需求调整微控制器的功耗(由独立的外围时钟控制)。先进的中断控制器aic控制来自内部外围的中断源和4个外部中断口线(包括fiq),从而为arm7tdmi提供中断或/和外部中断请求。它通过集成1个8优先级中断控制器以及使用自动向量特性,降低了中断延迟时间。并行输入/输出控制器pio控制高达32条i/o口线。它使用户可以选择特定的引脚作为片内外围的输入输出,或者作为通用的输入/输出信号。可以编程pio控制器来检测每条线上的信号发生变化引起的中断。看门狗定时器wd用于防止当软件进入死锁陷阱时产生系统锁定。特殊功能sf模块集成了芯片id、复位状态和保护寄存器。
(2)用户外围
2个独立配置的usart可以高波特率进行同步或异步通信。每一个usart还包含1个超时寄存器和1个时间确保(time guard)寄存器,从而方便了2个专用外围数据控制器pdc通道的使用。
3通道16位的定时器/计数器tc是高度可编程的,它支持捕获或波形模式。每一个tc通道可以被编程为测量或生成不同类型的波形,并且可以检测和控制2个输入/输出信号。tc有3个外部时钟信号。
3 at91fr40162性能概述
at91fr40162主要由at91r40008和16 mbit的flash存储器组成。因此at91fr40162的许多性能与at91r40008是一样的。
(1)电 源
at91r40008微控制器有2种类型的供电引脚:
◇ vddcore引脚,它为内核提供电源(包括arm7tdmi、嵌入的存储器和外围);
◇ vddio引脚,它为i/o线提供电源。
一个独立的i/o电源允许灵活地进行调整以适应外部元件的信号电平。
(2)输入/输出
at91fr40162的i/o引脚所接受的电平以vddio的供电为限。复位以后,微控制器的外围i/o初始化成输入以提供给用户最大的灵活性。在每个应用阶段,微控制器的输入最好保持在有效的逻辑电平,以降低功耗。
(3)主时钟
如果mcki引脚由1个外部源提供,那么at91fr40162则为一个完全静态的设计,并工作于主时钟mck(master clock)下。
主时钟还在引脚mcko上作为器件的输出,这个引脚与一个通用i/o线复用。当nrst处于活动状态并且发生复位后,mcko有效并输出mck信号的映像。必须编程pio控制器来使用这个引脚作为标准i/o线。
(4)复 位
复位操作将使用户接口寄存器恢复其缺省状态(在每一个外围的用户接口中定义),并强制arm7tdmi从地址0执行对下一条指令的取指操作。除了程序计数器之外的其它arm7tdmi寄存器则没有定义复位状态。
(5)nrst引脚
nrst是低电平激活的输入引脚。它被异步激活,但是从复位退出是与mck内部同步的。mcki上出现的信号必须在nrst上升沿之前最少10个时钟周期内有效,以确保操作的正确性。第1个取指操作出现在nrst上升沿之后的80个时钟周期。
(6)看门狗定时器复位
看门狗定时器可以被编程用来产生1个内部复位。在这种情况下的复位操作与激活nrst引脚有同样的效果,但是引脚bms和ntri不被采样。引导模式和三态模式不被更新。如果nrst引脚被激活并且看门狗定时器触发内部复位,那么nrst引脚具有优先权。
(7)仿真功能
◇ 三态模式
at91fr40162微控制器提供了1个用于调试目的的三态模式。它使能仿真探头与目标板连接,而不必先从目标板焊下器件。在三态模式下,at91r40008微控制器的所有输出引脚驱动器都是禁止的。在三态模式下,提供通过外部引脚对flash的直接访问。这就使得在装配板子之前可以使用传统的flash编程器对flash进行编程。为了进入三态模式,ntri引脚必须在nrst上升沿之前的最后10个时钟周期内保持低电平。对于正常的操作,ntri引脚必须通过1个高达400 kΩ的电阻复位为高电平。ntri与i/o线p21和usart1串行数据传输线txd1多路复用。
◇ jtag/ice调试
jtag/ice端口支持arm标准的嵌入式在线仿真。引脚tdi、tdo、tck和tms专门用于这种调试功能,并且可以通过外部ice接口与一个主机相连。在ice调试模式下,arm7tdmi核以非jtag芯片id作为响应来标识微控制器。这一点不完全符合ieee1149.1标准。
(8)存储控制器
arm7tdmi处理器的地址空间为4 gb。存储控制器对内部的32位地址总线进行译码并定义了3种地址空间:
◇ 位于最低4 mb的内部存储器空间;
◇ 中间的地址空间为ebi控制的外部设备(存储器或外围)所保留;
◇ 位于最高4 mb的内部外围空间。
不论在哪一个地址空间,arm7tdmi只运行于小端模式。
◇ 内部存储器
at91fr40162微控制器集成了内部sram。所有的内部存储器都是32位宽,并且支持字节(8位)、半字(16位)和字(32位)访问,且这些访问都是单周期的。内部sram支持thumb和arm两种取指方式,并且内部存储器可以存储比arm指令多1倍的thumb指令。at91fr40162微控制器集成了1个256 kb的sram存储体。这个存储体映射到地址0x0(重映射命令后),并且允许通过软件修改0x0到0x20之间的arm7tdmi异常向量。把sram放置在片内并使用32位的数据总线带宽增加了微控制器的性能,降低了系统功耗。32位总线与16位相比带宽增加,从而提高了使用arm指令集和数据处理的效率,这是对arm7tdmi 先进性能的最佳使用。能够在256 kb的sram中动态地更新应用软件是at91fr40162的另一特性。
◇ 引导模式选择
arm复位向量在地址0x0。nrst口线被释放后,arm7tdmi执行存储于这个地址的指令。这就意味着复位之后这个地址必须映射到非易失的存储器中。nrst上升沿之前的10个时钟周期期间bms引脚上的输入用来选择引导存储器的类型,如表1所列。如果嵌入的flash存储器用作引导存储器,bms输入必须被外部拉低,并且ncs0必须在外部与ncs7连接。
表1 引导模式选择
bms | 引导存储器 |
1 | ncs0上的外部8位存储器 |
0 | ncs0上的外部16位寄存器 |
引脚bms与i/o线p24复用。复位以后,p24可以与任何标准的pio线一样被编程。
◇ flash存储器
16 mbit的flash存储器由1 048 576个16位字组成。flash存储器通过ebi进行16位字寻址。它使用地址线a1~a20。
除了flash存储器使能信号以外,所有的地址、数据和控制信号都是内部互连的。用户应当把flash存储器使能信号(ncsf)和1个ebi上低电平有效的片选信号相连接。如果flash存储器作为引导存储器使用,那么必须使用ncs0;同时bms必须被外部拉低,以使处理器在复位后可以执行正确的16位取指操作。
引导时,必须为ebi配置正确的标准等待状态数目。例如,当微控制器运行于66 hz时,需要5个标准等待状态。
用户必须确保所有的vddio、vddcore和所有的gnd引脚通过最短的路线连接到各自的电源。flash存储器在读模式下加电。命令序列用于将此器件置于其它的操作模式下,例如编程和擦除。
为了增加灵活性而提供的分离的flash存储器复位输入引脚(nrstf),使能复位操作以适应具体应用。当这个输入为逻辑高电平时,存储器处于它的标准操作模式;当这个输入为逻辑低电平时,暂停当前的存储器操作并使它的输出置于高阻状态。
flash存储器的一个特性是它采用数据查询来检测一个编程周期的结束。当处于编程周期时,一个试图读取最后一个写入字的操作在i/o7上返回写入数据的补码值。开漏nbusy输出引脚提供另一种检测编程周期或擦除周期是否结束的方法。当处于编程或擦除周期时,这个引脚被拉低,这个周期结束以后引脚恢复高电平。使用1个翻转位提供了检测编程或擦除周期是否结束的第3种方法。
flash存储器被分为2个存储区(plane)。当从一个存储区执行读操作时,在另一个存储区可以同时执行编程或擦除功能。这一特性使得在执行读操作之前不需要系统等待一个编程或擦除周期的完成,从而增强了系统的性能。
为了方便擦除操作,flash存储器被分成了39个扇区。为了进一步增强器件灵活性,还提供了擦除挂起特性。这一特性使得擦除周期被挂起一段不确定的时间,并允许用户执行从同一个存储区内任何一个其它扇区的读数据操作或向其写数据的操作。如果所读的数据在另一个存储区,则不需要挂起擦除周期。
此器件具有保护存储在任一扇区中的数据不被破坏的能力。一旦对于某个扇区的数据保护被使能,那么,当输入电平处于地和vddio之间时,那个扇区的数据不能被改变。
1个可选的vpp引脚用于增加编程/擦除次数。
以6字节命令序列进入的单脉冲编程模式(single pulse program mode)允许器件使用写控制线上的单脉冲直接被写入。通过器件掉电或者使nrstf引脚为低电平并至少保持50 ns,然后将其恢复为vddio,退出单脉冲编程模式。
以下硬件特性保护flash存储器,避免其不小心被编程:
◇ vddio敏感--如果vddio低于1.8 v(典型情况),编程功能被禁止;
◇ vddio上电延迟--一旦vddio到达vddio的敏感电平,器件将自动地在编程之前超时10 ms(典型情况);
◇ 编程禁止--保持oe为低、ce为高或we为高中的任意一个,将禁止编程周期;
◇ 噪声滤波--出现于we或ce输入上的低于15 ns(典型情况)的脉冲将不会启动编程周期。
4 at91 flash uploader软件
所有基于flash的at91器件都配备一个叫作at91 flash uploader的预编程软件,它驻留在嵌入的flash存储器的第1个扇区。flash uploader允许通过串口向嵌入的flash编程。flash uploader可以使用任一个片内usart。flash uploader的运行环境如图2所示。
(1)flash uploader操作
flash uploader软件需要使用嵌入的flash存储器作为引导存储器,还需要为mcki提供1个有效的时钟。复位以后,flash uploader立即复制软件本身到内部的sram并跳转到那里。随后的操作将只需要这个存储器资源。所执行的外部访问只是编程嵌入的flash存储器。
开始以后,处理器初始化2个usart的rxd引脚的pio输入变化中断。中断出现时,启动1个定时器/计数器通道;当在rxd线上检测到下一个输入变化时,则停止这个定时器/计数器通道。这就解释了如何测量第1个字符长度,以及如何通过计算器件主时钟和实际通信时的波特率速度之间的比率来初始化usart。然后,编程系统便可以按照编程flash器件所规定的协议发送命令和数据。为了最低限度地降低flash uploader被擦除和电源被关闭的危险,最后才由编程系统来擦除和编程flash的第1个扇区。当flash uploader从第1个扇区被擦除时,如果新的最终应用程序还没有被编程并且目标系统的电源被关闭,那么,将导致一个不可恢复的错误,并且at91fr40162不能再通过使用flash uploader被重新编程。
(2)编程系统
atmel公司提供了一个免费的host loader软件,运行于windows 95或windows 98操作系统下的ibm pc兼容机上。可以从atmel网站下载此软件,并且只需要1根串行电缆线来连接主机和目标机。可以选择使用com1或com2实行通信,同时串行链路的速度被限制为115 200 baud。由于串行链路速度是配置瓶颈,因此,flash编程每1 mb需要持续 110 s。
通过使用一个快速的编程系统可以减少编程时间。at91评估板可以使一个串行链路运行到500 k位/s,并且可以匹配flash所允许的最快编程速度。例如,当字编程成为瓶颈时,编程速度可以达到40 s/mb。
结束语
随着后pc时代的进入,嵌入式系统已经无所不在。手机、汽车、航空航天以及军事装备等各个领域都能看到嵌入式系统的身影;而微控制器则正是嵌入式系统的核心部件。at91fr40162是atmel公司at91系列微控制器中的一种,这一系列的微控制器是低功耗、32位性能和16位系统价位的最佳组合。at91fr40162在at91r40008的基础上增加了16 mbit的flash存储器,flash存储器的可编程性为用户使用该芯片提供了更大的灵活性。at91fr40162为嵌入式应用提供了又一种可选的性价比较高的微控制器。