原创 AT91SAM9261片上系统介绍

2009-10-13 14:54 2011 2 2 分类: MCU/ 嵌入式

 


作者:杨硕华清远见嵌入式学院讲师。


一.AT91SAM9261 SOC简介

AT91SAM9261是atmel公司生产的以ARM926EJ-S ARM Thumb处理器为核心的完全片上系统(SOC),它扩展了DSP指令集和Jazelle Java加速器。主时钟频率190MHz时性能高达210MIPS。

AT91SAM926是一个为带LCD显示应用而优化了的主机处理器。它的集成LCD控制器支持BW而且达到16M色彩,主动和被动LCD显示。16K字节的片上SRAM可配置为帧缓冲,能将LCD刷新对整体处理器性能上的影响降低到最小。外部总线接口包括支持同步DRAM(SDRAM)和支持静态存储器的控制器,并有特殊接口电路以支持CompactFLASH和NandFLASH。

AT91SAM9261集成了一个支持映射的基于ROM的Bootloader,例如从外部DataFlash映射到外部SDRAM。由软件控制的功率管理控制器(PMC)通过有选择的启用和关闭处理器、各种外设以及对工作频率的调节使得系统功率损耗保持最低。

AT91SAM9261还集成了宽范围的调试特性。包括JTAG-ICE,一个专用的UART调试通道(DBUG)和嵌入式实时追踪。这使所有应用和开发,特别是严格要求实时性的应用得以实现。下面是AT91SAM9261的功能框图:

点击看大图

二.处理器ARM926EJ-S介绍

ARM926EJ-S是通用微处理器ARM9家族中的一员,属于V5TEJ版ARM架构,针对的是多任务应用,全存储器管理、高性能、小核心尺寸和低功耗都是它的特点。

ARM926EJ-S处理器支持32位ARM和16位THUMB指令集,使得用户能在高性能和高代码密度上取得平衡。它支持8为JAVA指令集并且包括Java字节代码有效执行的功能部件,提供和JIT(Just In Time编译器)形似的Java性能,这些性能为下一代Java无线应用和嵌入式的设备提供了有效支持。为了提高DSP性能,还包含了一个增强的乘法器设计。

ARM926EJ-S提供了一个完整的处理器子系统,包括:

                ARM9EJ-S整核
                        MMU
                        独立的数据和指令AMBA AHB总线接口
                        独立的指令和数据TCM接口

点击看大图

三.AT91SAM9261的存储器映射机制


点击看大图


如图,由总线矩阵完成对初级地址解码,也就是先进高性能总线(AHB)对其附加功能部件的主控和从控接口的实现。


解码时把4G字节地址空间分成16个256M字节的区域,1-8号区域(0x10000000~0x90000000)通过片选信号NGS0---NGS7指向EBI。区域0(0x0~0x0fffffff)是为片内存储器(32K ROM和16K SRAM)寻址的保留区域,并且一个二级解码提供1M字节的内部存储区域。15号区域(0xf0000000~0xffffffff)是为外设预留的且外设预留的且提供访问先进外围总线(APB)的权限。其他区域是未被使用的,当在该区域内进行存取操作时,会向主控提供一个中断。


总线矩阵管理五个主控和5个从控。每个主控有其自己的总线和解码器,这样就允许每个主控有一个不同的存储器映射。每个从控有其自己的仲裁,这样就允许每个从控有一个不同的仲裁。


总线矩阵主控制器列表:



主控0


ARM926指令


主控1


ARM926数据


主控2


PDC


主控3


LCD控制器


主控4


USB主机


总线矩阵从控制器列表:



从控0


内部SRAM


从控1


内部ROM


从控2


LCD控制器和USB主机控制器


从控3


外部总线接口


从控4


内部外设


嵌入式存储器:


32K ROM


--- 全速总线下单周期存取


16K 快速SRAM


--- 全速总线下单周期存取


每个主控的内部存储器映射,取决于复位时重映射状态和BMS状态。


内部存储器映射



Adress

主控0:ARM926指令


主控1:ARM926数据


 


REMAP(RCB0) = 0


REMAP(RCB0)=1


REMAP(RCB1)=0


REMAP(RCB1)=1


 


BMS = 1


BMS = 0


 


BMS=1


BMS=0


 


0x0


Int.ROM


EBI NCS0


Int. RAM C


Int.ROM


EBI NCS0


Int. RAM C


四.AT91SAM9261的启动策略分析


系统上电复位后,首先会检测BMS(Boot Mode Select)引脚上的电平,如果BMS检测到1,系统从片上ROM启动;如果检测到BMS为0,系统从外部总线接口(EBI)片选0所接的存储器(通常都是Nor Flash)启动。


这一过程可用下图表示:


Column152-4.jpg


AT91SAM9261芯片的内部ROM中固化了一段启动代码,如果BMS引脚电平为1,则执行这段启动代码。启动代码会检测和芯片连接的外部的各个存储媒介(SPI DATAFLASH, NAND FLASH or SDCARD)上是否有有效的应用程序,如果有,则把它下载到内部快速SRAM中去运行;如果没有发现有效的应用程序,则执行SAM-BA应用程序,SAM-BA是一种小型监控程序接口,也是固化在ROM中的程序。它实现以下功能:
                        ——启动 PLL 输出,为 USB 外设提供一个 48MHz 的工作频率
                        ——连接 USB 外设
                        ——连接 USART 外设
                        ——等待一个来自于 USB 或者 COM 的主机连接(PC)


用户可以通过PC端的SAM-BA GUI程序通过USB或者串口下载有效的应用到外部存储器(DATAFLASH,NAND FLASH or SDCARD)


启动程序算法流程图如下所示:


Column152-5.jpg


五.总结


本文从四个方面由浅入深介绍了AT91SAM9261片上系统。比起常用的32为ARM处理器S3C2410,AT91SAM9261采用了ARM926EJ-S内核并外扩了DSP指令设备和JAzELLEJava加速器。在工作频率为180 MHz的情况下,其运算速度为200 MIPS。S3C2410采用的是ARM920T内核,虽然它的主频最高可达200 MHz,但在处理诸如乘加指令时没有AT91SAM9261快,尤其在处理流媒体数据时更为明显。16KB的内部SRAM在播放流媒体数据时起到了很好的帧缓冲作用,另外,AT91SAM9261 发挥了ARM926EJ-S紧密式耦合内存架构的优势,让传统(非高速缓存)SRAM直接连接到ARM处理器上而不会出现滞后情况。AT91SAM9261在工控和消费电子领域均有广泛应用,尤其是应用于工控领域的PDA手持设备。

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /2 下一条