Hi,欢迎来到嵌入式培训高端品牌 - 华清远见教育集团<北京总部官网>,专注嵌入式工程师培养15年!
当前位置: > 华清远见教育集团 > 嵌入式学习 > 讲师博文 > AT91SAM9261片上系统介绍
AT91SAM9261片上系统介绍
时间:2016-12-22作者:华清远见

一.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)启动。

这一过程可用下图表示:

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)

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

五.总结

本文从四个方面由浅入深介绍了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手持设备。

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)