DSP

AT91SAM9261片上系统介绍

2019-07-13 19:37发布

  作者:杨硕华清远见嵌入式学院讲师。 一.AT91SAM9261 SOC简介 AT91SAM9261是atmel公司生产的以ARM926EJ-S ARM Thumb处理器为核心的完全片上系统(SOC),它扩展了DSP指令集和Jazelle Java加速器。主时钟频率190MHz时性能高达210MIPS。 AT91SAM926是一个为带LCD显示应用而优化了的主机处理器。它的集成LCD控制器支持BW而且达到16M {MOD}彩,主动和被动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手持设备。