Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 述职汇报 > AT91SAM9260数据手册

AT91SAM9260数据手册

收藏

本作品内容为AT91SAM9260数据手册,格式为 doc ,大小 255488 KB ,页数为 36页

AT91SAM9260数据手册


('AT91SAM9260数据手册1、描述AT91SAM9260是以ARM926EJ-S处理器为核心的片上系统,它扩展了快速ROM、RAM以及大量的外设。AT91SAM9260集成了以太网的MAC、一个USB设备端口、一个USB主机控制器。此外,它还集成了几种标准的外设,如USART、SPI、TWI、TimerCounter、同步串行控制器、ADC和多媒体卡接口。AT91SAM9260采用了6层总线矩阵构架,大大增强了6条32位总线的内部带宽。同时它的外部总线接口能支持大量的存储设备。2、方框图该方框图显示了217脚LFBGA封装的所有特征,有些功能在208脚PQFP封装里面是没有的。3、信号描述4、封装与引脚排列5、电源事宜5.1电源AT91SAM9260有如下几种类型的电源管脚:\uf06cVDDCORE管脚:内核电源,包括处理器、内嵌存储器和外设,电压范围从1.65~1.95,额定电压为1.8V\uf06cVDDIOM管脚:外部总线接口I/O口电源;电压范围从1.65V~1.95V(1.8V);或3.0~3.6(3.3),具体的电压范围可有软件确定\uf06cVDDIOP0管脚:外设I/O口线和USB收发器电压;电压范围3.0~3.6(3.0/3.3)\uf06cVDDIOP1管脚:外设I/O口线,包括图像传感器接口;电压范围1.65~3.6(1.8/2.5/3/3.3)\uf06cVDDBU管脚:慢速时钟振荡器和部分系统控制器电源;电压范围1.65V~1.95V(1.8V)\uf06cVDDPLL管脚:主时钟和锁相环部件电源;电压范围1.65~1.95(1.8)\uf06cVDDANA管脚:模数转换器供应电源;电压范围3.0~3.6(3.3)VDDIOM、VDDIOP0、VDDIOP1,这些电源使得用户能对存储器接口和外设接口设备分配不同的电源。接地引脚GND是VDDCORE、VDDIOM、VDDIOP0、VDDIOP1引脚电源的公共端。VDDBU、VDDPLL、VDDANA采用各自相应的接地管脚:GNDBU、GNDPLL、GNDANA。5.2功耗AT91SAM9260在二十五度时,在VDDCORE上的静态电流大约为500uA。当温度上升到85度时,静态电流上升到5mA。在VDDBU管脚上,最大电流不会超过10uA。对于动态功率损耗,AT91SAM9260在典型条件下(1.2V/25°C)以最大速率,处理器运行在全速运行状态,VDDCORE电源消耗最大为100mA。5.3可编程I/O电源VDDIOM允许两个电压范围。这就使得无论外部存储模块是1.8H还是3.3V时,该设备均能达到其最大速度。SDCK管脚的最高速度为100M,其他信号(包括控制线、地址线、数据线)均不能超过50MHz。(1.8V上有30pF,3.3V上有50pF电容)输入电压范围是由矩阵用户接口(MatrixUserInterface)内的芯片配置寄存器(ChipConfigurationregisters)所决定的。复位时,缺省的电压是3.3V,此时,芯片能同时接受1.8和3.3V的输入,但是如果VDDIOM电源是1.8v,此时该设备就无法达到最高速。因此用户必须在SlowClock模式下设置EBI电压范围。6、I/O口线事宜6.1JTAG端口引脚TMS、TDI和TCK是施密特触发器输入且无上拉电阻TDO和RTCK是输出,输出电压可以达到VDDIO0,且无上拉电阻当JTAGSEL引脚维持高电平(接到VDDBU)时被用作JTAG边界扫描。此引脚集成了一个连接与GNDBU的15K欧姆的下拉电阻。所以正常运行时可以悬空。NTRST信号见6.3所有的JTAG信号均是由VDDIOP0供电的。6.2测试引脚当测试引脚(TST)维持高电平时被用作生产测试目的。次引脚集成了一个连接与GNDBU的15K的永久下拉电阻,所以正常运行时,该管脚可以悬空。当以高电平驱动此引脚时将导致难以预料的结果。该引脚由VDDBU供电。6.3复位引脚NRST是一个双向管脚,该管脚的开漏输出集成了一个不可编程上拉电阻。该管脚由VDDIOP0供电。NTRST是一个输入管脚,该管脚对JTAG的TestAccessPort进行复位。该管脚对处理器没有影响。如果产品已经集成了上电复位单元,该单元处理了的处理器和JTAG的复位,那么NRST和NTRST可以被悬空。NRST和NTRST均集成了一个到VDDIOP0的上拉电阻。NRST信号嵌于边界扫描中。6.4PIO控制器所有的I/O口线都集成了一个可编程的上拉电阻,PIO控制器可以对每个I/O口线的上拉电阻进行控制。复位后,所有的I/O口均为输入状态,且上拉电阻使能。除了那些在复位时要求和外部总线接口信号多路复用的I/O口线被使能为外设。具体可参见《PIOControllerMultiplexing》的“ResetState”栏。6.5I/O线驱动能力每个PIO管脚均有很强的驱动能力(长期16mA),除了PC4~PC31由VDDIOM供电的之外。6.6掉电逻辑管脚SHDN管脚是一个输出管脚,该管脚由掉电控制器驱动WKUP(唤醒管脚)是一个输入管脚。它仅接受0~VDDBU之间的电压信号。6.7慢速时钟选择AT91SAM9260的慢速时钟即可由外部的32.768kHz的晶振产生也可由片内RC振荡器产生。表6-1定义了OSCSEL管脚的状态表6-1慢速时钟选择OSCSEL慢速时钟启动时间0内部RC240us1外部32.768kHz1200ms7、处理器与体系结构7.1ARM926EJ-S处理器\uf06c基于ARMv5TEJ体系结构,带JazelleJava加速技术的RISC处理器\uf06c两套指令集\uf06eARM高性能32位指令集\uf06eThumb高编码密集度16位指令集\uf06cDSP指令扩展\uf06c5级流水线体系结构\uf06e指令获取(F)\uf06e指令解码(D)\uf06e指令执行(F)\uf06e数据存储(M)\uf06e寄存器写(W)\uf06c8K字节的高速数据缓存,8K字节的高速指令缓存\uf06e地址映射方式采用四路组相联的映像和变换方式(Virtually-addressed4-wayAssociateveCache)\uf06e每个Cache块8个字\uf06e采用写通和写回操作\uf06e采用随机替换算法或轮转法更新缓存条目\uf06c写缓冲\uf06e主写缓冲具有16个字的数据缓冲和4个字的地址缓冲\uf06e写回类型的数据Cache具有8个字的入口以及单独的地址入口\uf06eSoftwareControlDrain\uf06c标准的ARMV4和V5存储器管理部件(MMU)\uf06e节存取权限\uf06e对每四分之一的大页或小页的存取权限能被明确指定\uf06e16个内嵌的域\uf06c总线接口单元(BIU)\uf06eAHB请求的仲裁和调度\uf06e分离的主控(针对指令和数据访问)为矩阵系统提供完善的灵活性\uf06e完全分离的地址和数据总线(针对32位的指令接口和32位的数据接口)\uf06e在地址和数据总线上,数据可以是8位、16位或32位的。7.2总线矩阵\uf06c6层的矩阵,能处理6个主机的请求\uf06c可编程的仲裁策略\uf06e固定优先级的仲裁策略\uf06e循环仲裁策略,包括无缺省主控、最近一次访问的主控设备、固定缺省主控设备\uf06c突发传输策略\uf06e限制间隔(字节数)的突发信号传输\uf06e未定长度的突发信号传输突发操作定义为一个或多个数据传输,由总线主机发起,在地址空间增加时传输宽度保持一致。每次传输增加的地址步长由传输大小决定。\uf06c每个主控提供一个地址解码器\uf06e三个不同的从控可以被指定给每一个解码的存储区域:一个用于内部启动;一个用于外部启动;一个在重映射后\uf06c启动模式选项\uf06e非易失的启动存储器可以是内部的,也可以是外部的\uf06e根据复位时的BMS引脚的电平决定启动选项\uf06c重映射命令\uf06e允许一个内部SRAM通过重映射代替启动非易失性存储器\uf06e允许异常向量的动态配置处理\uf06c矩阵主机:\uf06eARM926指令\uf06eARM926数据\uf06ePDC\uf06eUSB主DMA\uf06eISI控制器\uf06e以太MAC\uf06c矩阵从机\uf06e内部SRAM04K\uf06e内部SRAM14K\uf06e内部ROM/USB主机用户接口\uf06e外部总线接口\uf06e内部外设\uf06c主机访问从机:通常来讲,所有的主机均能访问到所有从机,但有些路径是不通的。7.3外设DMA控制器\uf06c作为总线矩阵的主机\uf06c在没有处理器干预的情况下从外设转存到任何存储空间或从任何存储空间转存到外设\uf06c下一个指针支持,禁止对缓冲管理进行强制约束\uf06c22个通道7.4调试和测试特征\uf06cARM926实时在线仿真器\uf06e两个实时检测点单元\uf06e两个独立的寄存器:调试控制寄存器和调试状态寄存器\uf06e可通过JTAG协议访问的测试存取端口\uf06e调试通信通道\uf06c调试部件\uf06e两线UART\uf06e调试通信通道中断处理\uf06e芯片ID寄存器\uf06c所有数字引脚上的IEEE1149.1JTAG边界扫描8、存储器总线矩阵完成的第一级的地址解码。译码将4G的地址空间分成16个256M的区域,区域1~区域8通过片选信号EBI_NCS0~EBI_NCS7指向EBI。区域0是为内部存储器地址,第二级译码提供1M字节内部存储空间。区域15为外设地址,且提供对高级外设总线(APB)的访问。其它区域未使用,使用它们进行访问时将向发出访问请求的主机发出异常中断。每个主机均有自己的总线与相应的解码器,因此对于不同的主机允许拥有不同的内存映射。但是,为简化映射起见,所有的主机均拥有类似的解码方式对于主机0和主机1(ARM926指令与数据),在地址0x00映射有三个不同的从机,一个用于内部启动,一个用于外部启动,另一个用于重映射。8.1内部存储器\uf06c32KBROM\uf06e全速矩阵总线下,单周期访问\uf06c2块4KB快速SRAM\uf06e全速矩阵总线下,单周期访问8.1.1启动策略表8-1简要说明了每个主机的内部内存映射与复位时Remap状态与BMS状态之间的关系。重映射前(REMAP=0)重映射后REMAP=1BMS状态10X0x00ROMEBI-NCS0SRAM04K系统总是从地址0x00启动的,为确保启动方式的最大数量,内存布局可由如下两个参数确定。为便于开发,REMAP允许用户将第一块内部SRAM映射到地址0x00。该操作是在系统启动后通过软件执行的。具体可参见“总线矩阵”一节当REMAP=0时间,BMS允许用户ROM或外部存储器映射到地址0x00。具体由复位状态下的BMS管脚的状态决定。正是由于这个目的,内部存储器的0x00~0x0FFFFF预留。\uf06cBMS=1,从内嵌ROM启动\uf06e在低速时钟下启动(片内RC或32.768kHz)\uf06e自动波特率检测\uf06e将应用从外部存储器中下载内部SRAM中,并执行\uf06e下载的代码长度决定于内嵌的SRAM长度\uf06e自动进行有效代码检测\uf06e非易失性存储器中的Bootloader\uf075连接在NPCS0、NPCS1的SPIDataFlash(SPI0)\uf0758位或16位NANDFlash\uf06e如果在外部的非易失性存储器中未检测到有效程序,则采用SAM-BA启动\uf075DBGU上的串行通信\uf075USB设备端口\uf06cBMS=0,从外部存储器启动\uf06e在低速时钟下启动(片内RC或32.768kHz)\uf06e采用静态内存控制器的缺省配置启动,模式采用“字节选择”,16位数据总线,采用片选信号进行读写控制。允许在16位非易失性存储器上启动。\uf06e客户编写的软件必须完成一个完整的配置当在32kHzEBICS=0(BMS=0)时,为了加速启动过程,用户必须执行以下步骤:\uf06c编程PMC(主振荡器使能或旁路模式)\uf06c编程并启动PLL\uf06c重编程SMC设置,周期,保持,CS0的模式定时寄存器以适应新时钟\uf06c主时钟切换新值8.2外部存储器外部存储器是通过EBI总线访问的。每个片选信号均有256M字节的访问空间。8.2.1外部总线接口\uf06c集成了三个外部存储器控制器\uf06e静态存储器控制器\uf06eSDRAM控制器\uf06eECC控制器\uf06cNANDFlash的附加逻辑\uf06c32位数据总线\uf06c26位地址总线(64M)\uf06c8个片选信号,分配如下:\uf06e静态存储控制器(NCS0)\uf06eSDRAM或静态存储控制器(NCS1)\uf06e静态存储控制器(NCS2)\uf06e静态存储控制器(NCS3),可选择支持NANDFlash\uf06e静态存储控制器(NCS4~NCS5),可选择支持CompactFlash\uf06e静态存储控制器(NCS6~NCS7)8.2.2静态存储器控制器\uf06c8-,16-,32-bit数据总线\uf06c多种访问模式\uf06e字节写或字节选择线\uf06e页模式的异步读取(每页4~32字节)\uf06c各种设备的适应能力\uf06e兼容LCD模块\uf06e针对各个存储器块,可编程的控制信号,包括:启动、脉冲、保持时间\uf06c各种等待状态管理\uf06e可编程等待状态产生\uf06e外部等待请求\uf06e可编程数据流动等待\uf06c支持慢时钟模式8.2.3SDRAM控制器\uf06c支持设备\uf06e标准、低功耗的SDRAM(移动SDRAM)\uf06c多种配置支持\uf06e2K、4K、8K行地址内存\uf06e2个或4个内部SDRAM区\uf06e16位或32位数据的SDRAM\uf06c编程性能\uf06e字、半字、字节访问\uf06e到了存储器边界自动分页\uf06e多组Ping-pong访问\uf06e软件确定定时参数化\uf06e自动更新操作,可编程更新速率\uf06c节能能力\uf06e支持自刷新、掉电、深度掉电模式\uf06e故障检测:更新故障中断\uf06e软件上电初始化SDRAM\uf06e支持CAS等待时间(1、2、3个时钟)\uf06e未使用自动预充电命令8.2.4纠错码控制器\uf06c通过相应的片选信号触发,跟踪NANDFlash设备的访问\uf06c单位错误纠正以及2位随机错误检测\uf06c在写入时,自动进行汉明码计算\uf06eECC编码在某个寄存器中\uf06c在读取时,自动进行汉明码计算\uf06e错误报告:包括错误标记、可纠正错误标记以及检测到错误的字地址\uf06e支持8位、16位NANDFlash设备(每页可包含512、1024、2048、4096字节)9、系统控制器系统控制器是由一系列外设组成,这些外设控制了系统的关键部件,如电源、复位、时钟、定时器、中断、看门狗等等。系统控制器的用户界面内嵌了用以配置总线矩阵的寄存器以及用以芯片配置的寄存器。这些芯片配置的寄存器配置了EBI的片选信号与外部内存的电压范围。系统控制器的外设均映射到了最高的16K字节的地址空间,从0xFFFFE800到0xFFFFFFFF。由于,所有的系统控制器的寄存器均映射到了地址空间的最高层。因此,同于哦一个标准的ARM指令,系统控制器的所有寄存器可通过一个指针实现(Load/Store指令)图9-1,显示了系统控制器的方框图,图8-1显示了系统控制器外设用户接口的映射。9.1方框图9.2复位控制器\uf06c基于两个上电复位单元\uf06e一个在VDDBU、另一个在VDDCORE\uf06c上次复位的状态,包括正常复位(VDDBU上升)、唤醒复位(VDDCORE上升)、软件复位、用户复位和看门狗复位。\uf06c控制内部复位和NRST管脚输出\uf06e允许输出复位信号用以复位外部设备9.3掉电控制器\uf06c掉电和唤醒逻辑\uf06e软件可编程的SHDN管脚\uf06e可通过WKUP引脚电平变化以及RTT(实时定时器)实现唤醒9.4时钟发生器\uf06c内嵌一个低功耗32.768kHz的低速时钟振荡器以及一个低功耗RC振荡器。具体可通过OSCSEL信号进行选择\uf06e为系统提供了一个永久的低速时钟SLCK\uf06c内嵌主振荡器\uf06e提供了振荡器旁路功能\uf06e支持3~20MHz的晶振\uf06c内嵌两个PLL\uf06ePLLA输出80~240MHz时钟\uf06ePLLB输出70~130MHz时钟\uf06e两者均集成了一个输入分频器用以增加输出精度\uf06ePLLB内嵌有自身的滤波器9.5电源管理控制器\uf06c提供如下时钟:\uf06e处理器时钟(PCK)\uf06e主控时钟(MCK),为所有的外设和内存提供的时钟\uf06eUSB设备时钟(UDPCK)\uf06e独立的外部时钟,一般与MCK相同\uf06e2个可编程时钟输出:PCK0、PCK1\uf06c5种灵活的工作模式:\uf06e正常模式(Normal):处理器与外围设备均工作在设定的工作频率\uf06e空闲模式(IDLE):处理器停止运行,等待中断\uf06e慢速模式(SLOW):处理器与外围设备以低频运行\uf06e等待模式(Standby):IDLE与BACKUP模式的混合,外围设备以低速运行,而处理器停止运行以等待中断\uf06e备份模式(Backup):主电源断电,VDDBU以电池供电9.6周期性间隔定时器\uf06c包括一个20位的周期计数器,其精度小于1us\uf06c包括一个12位间隔覆盖计数器\uf06c适用于实时操作系统、Linux或WindowsCE节拍的生成9.7看门狗定时器\uf06c16位键保护(Key-protected),只可一次编程的计数器\uf06c为避免软件进行死锁后持续触发看门狗,WDT重新加载必须当计数器指定窗口范围内才能发生。(0~WDD)9.8实时定时器\uf06c32位独立运行的备份计数器\uf06c在低速时钟上集成了16位可编程分频器\uf06c通过掉电控制器,告警寄存器产生了系统的唤醒信号9.9通用的备份寄存器\uf06c4个32位的通用备份寄存器9.10增强的中断控制器\uf06c控制ARM处理器的中断线(nIRQ与nFIQ)\uf06c32个可独立屏蔽的中断源向量\uf06e中断源0为快速中断(FIQ)\uf06e中断源1为系统外设(PIT、RTT、PMC、DBGU、等等)\uf06e可编程的边沿触发或电平敏感的内部中断\uf06e可编程的正/负边沿触发或高/低电平敏感\uf06c3个外部源以及快速中断信号\uf06c8级优先级控制器\uf06e驱动处理器正常中断\uf06e处理1~31个中断源的优先级\uf06e高优先级中断可打断低优先级中断的执行\uf06c定向\uf06e优化中断服务程序分支与执行\uf06e每个中断源有一个32位向量寄存器\uf06e中断向量寄存器读取当前相应的中断向量\uf06c保护模式\uf06e禁止自动操作可简化调试\uf06c快速强制\uf06e允许通过处理器快速中断将正常中断源重定向9.11调试单元\uf06c有两部分功能组成\uf06e2管脚的UART\uf06e支持调试通信通道(DCC)\uf06c2管脚的UART\uf06e其实现特征与标准Atmel的USART完全兼容\uf06e有通用可编程波特率发生器的独立接收器与发送器\uf06e奇、偶、标志或空校验\uf06e奇偶校验、帧及溢出误差检测\uf06e自动回应、本地回环以及远程回环通道模式\uf06e支持与接收器/发送器相连的两个PDC(PeripheralDataController)通道\uf06c支持调试通信通道\uf06e通过ARM处理器的ICE接口,提供了COMMRX和COMMTX信号中断触发的可见性。9.12芯片ID\uf06eChipID:0x019803A2\uf06eJTAGID:0x05B1303F\uf06eARM926TAPID:0x0792603F10、外设10.1用户接口外设被映射到从0xFFFA0000到0xFFFCFFFF之间。每个外设占用了16k字节的空间。完整的内存映射图间图8-110.2标识符号10.2.1外设中断与时钟控制10.2.1.1系统中断中断源1中的系统中断是如下一些中断信号的线或(wired-OR)\uf06cSDRAM控制器\uf06c调试单元\uf06c周期性间隔定时器\uf06c实时定时器\uf06c看门狗定时器\uf06c复位控制器\uf06c电源管理单元这些外设的时钟必须被激活,此外,外设ID1只有在增强中断控制器中才能被使用10.2.1.2外部中断所有的外部中断,包括快速中断FIQ或IRQ0~IRQ2,使用各自独立的外设ID。然而这些外设ID没有相关联的时钟控制器。10.3I/O线的外设复用AT91SAM9260有3个PIO控制器(PIOA、PIOB、PIOC),这些IO线与外设复用。每个PIO控制器控制了32个管脚。每个管脚可具有1个或2个外设的功能(A或B)。Table10-2、Table10-3和Table10-4定义了各个PIO口是如何与各个外设进行复用的。注意,某些只有输出功能的外设功能可能在表中重复定义。列“复位状态”指示PIO管脚复位后是处于IO模式或是外设模式。假如是I/O模式,该PIO管脚处于输入状态(上拉使能)。结果,PIO_PSR寄存器中与IO线的对应位复位为0。假如“复位状态”列中是信号的名字,该PIO管脚被指定为该功能,并且PIO_PSR复位为高状态(地址线)。注意,在这种情况下,上拉电阻还是被使能的。10.4内嵌外设10.4.1SPI接口\uf0d8支持与串行外设通信\uf06e外部解码器有四个片选位,最多支持与15个外设通信\uf06e串行存储器,如DataFlash以及三线EEPROM\uf06e串行外设,如ADC/DAC/LCD控制器、CAN控制器以及传感器\uf06e外部协处理器\uf0d8主机或从机外设总线接口\uf06e每个片选8位到16位可编程数据长度\uf06e每个片选可编程极性和相位\uf06e每个片选可在连续传输时设置传输延迟,以及时钟与数据之间设置传输延迟\uf06e连续传输可编程延时\uf06e可选择故障模式检测\uf0d8支持快速传输\uf06e传输波特率可达到MCK\uf06e在与同一设备传输时,片选信号可一直被激活10.4.2两线接口\uf0d8支持主机、多主机、从机等各种模式\uf0d8在从机模式下支持广播呼叫10.4.3USART\uf0d8可编程的波特率发生器\uf0d85~9位全双工同步或异步串行通信\uf06e异步模式下1、1.5或2位停止位或同步模式下1或2位停止位\uf06e奇偶校验位产生与错误检测\uf06e帧错误检测、溢出错误检测\uf06eMSB或LSB在先\uf06e可选的断点产生与检测\uf06e8或16的过采样接收频率\uf06e可选硬件握手信号RTS-CTS\uf06e可选调制解调信号DTR、DSR、DCD、RI\uf06e接收器超时以及发送器的时间保护(用于于慢速设备通信)\uf06e可选的可地址生成和检测的Multi-drop模式\uf0d8有驱动器控制信号的RS485\uf0d8ISO7816(国际智能卡标准),T=0或T=1协议与智能卡的接口连接\uf06eNACK处理,有循环与迭代限制的错误计数器\uf0d8IRDA调制与解调\uf06e通信速率可达到115.2kbps\uf0d8测试模式\uf06e远程回送、本地回送、自动回复USART包含各种Modem信号的管理(DTR、DSR、DCD、RI)。在AT91SAM9260中,只有USART0实现了这些信号,命名为:DTR0、DSR0、DCD0、RI0。USART1和USART2没有实现所有的Modem信号,只实现了RTS、CTS(RTS1和CTS1、RTS2和CTS2)。因此,在Modem模式下对USART1、USART2、USART3可能会产生不可预知的后果。在这些USART中,与Modem模式相关的命令是无效的,与Modem相关的状态位也是未被激活的。10.4.4串行同步控制器\uf0d8提供了应用于音频与电信应用中的串行同步通信链接\uf0d8包括一个独立的接收器、发送器以及通用时钟分频器\uf0d8提供了可配置的帧同步和数据长度\uf0d8接收器和发送器可配置成自动启动,或在检测到帧同步信号的各种事情后启动\uf0d8接收器和发送器包括一个数据信号、时钟信号以及帧同步信号10.4.5定时/计数器\uf0d8两个3个16位定时器通道的模块\uf0d8每个通道可分别进行编程实现如下功能\uf06e频率测量\uf06e事件计数\uf06e间隔测量\uf06e脉冲生成\uf06e延迟定时\uf06e脉宽调制\uf06e上加、下减能力\uf0d8每个通道用户可配置,包括\uf06e三个外部时钟输入\uf06e五个内部时钟输入\uf06e两个多功能输入/输出信号\uf0d8每个模块均有2个全局寄存器作用于三个TC通道10.4.6多媒体卡接口\uf0d8一个双通道多媒体卡接口\uf0d8与多媒体卡标准V3.11兼容\uf0d8与SD内存卡规范V1.1兼容\uf0d8与SDIO规范V1.0兼容\uf0d8卡时钟可达到主时钟的2倍分频\uf0d8当未使用时内置的电源管理将时钟频率降低\uf0d8MCI支持两种插槽,\uf06e一种是多媒体卡总线\uf06e另一种是SD内存卡\uf0d8支持数据流、块与多块数据的读取10.4.7USB主机端口\uf0d8适用于开放的HCIRev1.0标准\uf0d8适用于USBV2.0全速和低速标准\uf0d8支持低速1.5Mbps和全速12Mbps的设备\uf0d8在217LFBGA封装中根集线器集成了两个下游USB端口\uf0d8两个内嵌USB接收器\uf0d8支持电源管理\uf0d8在总线矩阵中作为一个主机10.4.8USB设备端口\uf0d8适用于USB2.0全速,波特率达到12M\uf0d8内嵌USB2.0全速接收器\uf0d8为端点内嵌2432字节双口RAM\uf0d8挂起/恢复逻辑\uf0d8同步与大数据量端点的ping-pong模式(两个存储器组)\uf0d86个通用的端点\uf06e端点0和3:64字节,无ping-pong模式\uf06e端点1和2:64字节,具有ping-pong模式\uf06e端点4和5:512字节,具有ping-pong模式\uf0d8集成了PAD上拉电阻10.4.9以太网MAC\uf0d8与IEEE802.3兼容\uf0d8每秒10M~100M的数据吞吐能力\uf0d8全双工或半双工操作\uf0d8与物理层接口可为Mii(媒体独立接口)或RMII(简化媒体独立接口)\uf0d8针对地址、数据、状态与控制寄存器的寄存器接口\uf0d8DMA接口,可作为存储控制器的主机操作\uf0d8在发送或接收结束时,可产生中断\uf0d828字节的发送FIFO,28字节的接收FIFO\uf0d8发送时可自动填充并生成CRC校验\uf0d8地址检查逻辑可识别48位地址码\uf0d8当所有的有效帧拷贝到存储器中时支持混合模式\uf0d8支持通过MDIO接口进行物理层管理10.4.10图像传感器接口\uf0d8支持ITU-RBT.601/6568位模式的外部接口\uf0d8支持ITU-RBT.656-4SAV和EAV同步\uf0d8横轴、竖轴的分辨率达到20482048\uf0d8预览路径达到640480\uf0d8支持YCbCr4:2:2的数据包格式\uf0d8预览机制以产生更小的图像\uf0d8可编程的帧捕获率10.4.11AD转换\uf0d84通道ADC\uf0d810bit,312K的采样率。逐次逼近型AD\uf0d8-2/+2LSB的积分非线性度;-1/+1LSB的差分非线性度\uf0d8每个通道可单独使能或禁止\uf0d8可采用外部参考电压以在低输入电压时获取更高的精度\uf0d8多种触发源,如硬件/软件触发、外部信号触发、TC0~TC2输出TIOA0~TIOA2触发\uf0d8睡眠模式和转换时序。在触发时间能自动苏醒,并在转换接收后自动进入睡眠状态\uf0d8与数字信号共用4个模拟输入。11、ARM926EJ-S处理器概述11.1描述ARM926EJ-S处理器是通用微处理器ARM9家族的成员。ARM926EJ-S属于5TEJ版ARM构架,针对的是多任务应用。包括全任务管理、高性能、低核心尺寸和低功耗等重要特点。ARM926EJ-S处理器支持32位ARM和16位THUMB指令集,使得用户能在高性能和高代码密度上取得平衡。支持8位Java指令集并且包括使Java字节代码有效执行的功能部件,支持和JIT(Just—In—Time编译器)相似的Java性能,这些性能为下一代Java无线和嵌入式的设备提供了有力支持。为了提高DSP性能,还包含了一个增强的乘法器设计。ARM926EJ-S处理器支持ARM调试构架,并包括软硬件调试的辅助逻辑ARM926EJ-S提供一个完整的高性能处理器子系统,包括\uf0d8ARM9EJ-S整核\uf0d8一个内存管理单元(MMU)\uf0d8独立的指令和数据AMBAAHB总线接口\uf0d8独立的指令和数据TCM接口11.2方框图11.3ARM9EJ-S处理器11.3.1ARM9EJ-S运行状态ARM9EJ-S处理器能以三种状态运行,每种状态具有其自身的特殊指令集:\uf0d8ARM状态:32位,字对齐ARM指令\uf0d8THUMB状态:16位,半字对齐的THUMB指令\uf0d8Jazelle状态:可变长度,字节对齐的Jazelle指令在Jazelle状态下,按字取指11.3.2状态切换ARM9EJ-S的工作状态可进行切换:\uf0d8可使用BX和BLX指令实现ARM和THUMB状态的切换,并加载到PC\uf0d8可使用BXJ指令实现ARM和Jazelle状态之间的切换在ARM状态下,可进入、处理、退出所有的异常。假如在Thumb或Jazelle状态下发生了异常,处理器将进入ARM状态。当异常处理完成后,再返回到Thumb、Jazelle状态。11.3.3指令流水线ARM9EJ-S核采用2种流水线来增强指令流转的速度:\uf0d85级流水线(5个时钟周期)应用于ARM和Thumb状态,它包括获取、解码、执行、存储和回写5个阶段\uf0d86级流水线(6个时钟周期)应用于Jazelle状态,它包括获取、Jazelle/解码(2个时钟周期)、执行、存储和回写6个阶段11.3.4内存访问ARM9EJ-S核支持字节(8位)、半字(16位)、字(32位)访问。字的存储必须四字节对齐,半字的存储必须2字节对齐,字节可在任何地方存储。由于流水线自身的特性,一个当前操作所需要的值在放入寄存器(回写)前被之前的指令(译码)使用。ARM9EJ-S控制逻辑将自动检测这种情况并停止内核或停止传输数据。(也即是流水线冲突)11.3.5Jazelle技术Jazelle技术使得Java代码可在ARM处理器上得到直接高效的执行。为下一代Jave无线应用和嵌入式设备提供高性能。ARM9EJ-S的JAVE特征可被描述成JVM(JAVA虚拟机)的硬件仿真。Jave模式是除了ARM或Thumb之外的另外一种状态,它执行的是Jave代码。ARM9EJ-S的Jave代码解码逻辑可对95%的Jave代码进行解码,并在无任何额外开销的情况下将其转化成为ARM指令。同时,较少使用的代码将被分解成优化序列的ARM指令。这种硬件/软件的分解对于编程者、应用、操作系统来讲均是透明的。所有ARM寄存器在Jazelle状态下得到重复应用,并且所有寄存器在该状态下均有特殊功用。在ARM和Jave状态的切换过程中需要维持最小的中断延时。由于Jave代码执行是可被重启的,因此当发生中断时,该中断将自动触发内核从Jave状态切换到ARM状态。这也就意味着无论是在硬件上还是在软件商,Jave状态下处理中断将没有任何特殊的预备。11.3.6ARM9EJ-S操作模式在所有状态中,有7种操作模式:\uf0d8用户模式:通常ARM程序执行状态,用以执行大多数的应用程序\uf0d8快速中断模式:处理快速中断,用于高速的数据传输或通道处理\uf0d8中断模式:用于处理通常的中断响应\uf0d8管理者模式:操作系统的一种保护模式\uf0d8中止模式:数据或指令预取失败后进入\uf0d8系统模式:操作系统所拥有的一种特权用户模式\uf0d8未定义模式:未定义指令异常发生后进入模式的切换可在软件控制下执行,也可能被外部中断、异常处理所引发。大部分的应用程序执行在用户模式。非用户模式,如特权模式,是为在处理系统中断或异常时访问被保护资源时才使用的。11.3.7ARM9EJ-S寄存器ARM9EJ-S核共有37个寄存器,其中有31个通用32位寄存器,6个32位状态寄存器。ARM包含有16个字节访问寄存器R0~R15,以及一个附加寄存器(CPSR当前程序状态寄存器)。寄存器R0~R13是通用寄存器用于存放数据和地址。R14用以在执行BL、BLX等跳转指令时存放R15的值。R15作为程序计数器(PC)。CPSR包含条件标志位和当前模式位。在特权模式内(FIQ、管理、中止、IRQ、未定义),特定模式寄存器可用(FIQ模式下的R8到R14,其他模式下R13和R14)。相应的寄存器R14_FIQ、R14_SVC、R14_ABT、R14_IRQ、R14_UND都在发生中断异常或在中断异常内调用BL/BLX指令时存储R15的值。此外,还有一个寄存器叫做程序状态存储寄存器(SPSR),在特权模式下,该寄存器用以保存CPSR的状态,以便异常返回时恢复异常发生前的工作状态。处于软件一致性的考虑,在所有模式下,R13均作为堆栈指针使用。所有上述的寄存器的功能和应用均应服从APCS(ARM过程调用标准)的限制。APCS的限制包括:\uf0d8对寄存器使用的限制\uf0d8使用栈的管理\uf0d8函数调用时的参数传递和结果返回Thumb状态下的寄存器集是ARM状态下寄存器的一个子集,编程者可直接访问:\uf0d88个通用功能寄存器R0~R7\uf0d8堆栈指针:SP\uf0d8链接寄存器LR;(ARM下的R14)\uf0d8PC\uf0d8CSPR对于每种特权模式,具有备份的SP、LR以及SPSR。11.3.7.1状态寄存器ARM9EJ-S内核包括一个CPSR和5个为异常处理而准备的5个SPSR。该程序状态寄存器包括:\uf0d8最近运算逻辑单元(ALU)的信息\uf0d8控制中断的使能或禁止\uf0d8设置处理器的操作模式状态寄存器:\uf0d8四个ALU标志位:N(负)、Z(零)、C(进位)、V(溢出)\uf0d8粘着(sticky)溢出位(Q)由特定的乘法与小数运算指令(如QADD、QDADD、QSUB、QDSUB、SMLAxy和SMLAWy)置位,用于实现某些DSP操作。\uf0d8该Q标志是粘着的,意味着当该Q标志被某一指令置位后,只有当调用MSR指令时才能被清除。指令无法根据该标志进行条件跳转。\uf0d8CPSR中的J标志指示着ARM9EJ-S核是否处于Jazelle状态:\uf06eJ=0:处于ARM或Thumb状态,具体由T标志位决定\uf06eJ-1:处于Jazelle状态。\uf0d8模式:5位编码确定了当前处理器的模式。11.3.7.2异常异常种类以及优先级:ARM9EJ-S支持5种类型的异常,每种异常均驱动ARM9EJ-S进入特权模式,这些异常种类包括:\uf0d8FIQ:快速中断\uf0d8IRQ:普通中断\uf0d8Abort:数据或指令预取失败\uf0d8Undefined:未定义指令\uf0d8Supervisor:软件中断或复位当异常发生时,R14的备份寄存器和对应模式的SPSR将被用于储存相应状态。在同一时间可发生多个异常,因此ARM9EJ-S根据下述的优先级处理相应的异常:\uf0d8复位:(最高优先级)\uf0d8数据中止:\uf0d8FIQ\uf0d8IRQ\uf0d8预取指中止\uf0d8BKPT(断点指令)、未定义指令、软件中断(SWI)(最低优先级)其中,BKPT、未定义指令、软件中断异常是互斥的。在中断的优先级序列中也有例外,当FIQ被使能时,数据中止与FIQ同时发生,ARM9EJ-S核将首先进入数据中止处理函数,然后立即进入FIQ处理函数,当FIQ正常返回后,在继续数据中止的异常处理。数据中止必须要比FIQ具有更高的优先级,从而确保捕获任何一个传输错误。异常模式与处理:无论何时,当一个异常发生时,程序必须中断其正常的工作流程,例如处理一个外设中断。当处理一个ARM异常时,ARM9EJ-S核将执行如下一些操作:\uf0d8保存下一指令的地址到相应的链接寄存器(LR),该寄存器与你即将进入的新模式相关。当异常从以下状态进入时:\uf06eARM/Jazelle状态:ARM9EJ-S拷贝下一条指令的地址到LR\uf06eTHUMB状态:ARM9EJ-S将PC寄存器的当前值写入LR,偏移一个值后将是异常的正常返回点(具体偏移值与流水线有关)\uf0d8将CPSR拷贝到相应SPSR\uf0d8根据异常类型,设置CPSR的模式位\uf0d8根据异常类型以及异常向量表,设置PC值寄存器R13也是有备份的,为各种异常处理提供各自专用的堆栈指针。ARM9EJ-S也可以设置中断禁止标志,从而阻止难处理的嵌套的异常。当异常处理完成后,异常处理函数将备份的LR寄存器(减去一定偏移后)设置到PC,同时将SPSR设置到CPSR。该偏移值与处理的异常类型有关。该动作同时恢复了PC和CPSR。FIQ模式具有7个私有的寄存器(R8~R14)以减少甚至不需要寄存器的保存操作,从而降低上下文切换的额外消耗。预取指令中止异常是中止模式之一,该模式代表着当前存储器的访问无法完成。当预取指令中止异常发生时,ARM9EJ-S核标志该被预取的指令为无效,但直到该指令到达执行阶段才发生异常。假如该指令未被执行(例如一条跳转指令),该异常将不再发生。断点指令(BKPT)是ARM9EJ-S的一条新的特点用于解决预取指令中止的问题。该断点指令通过一条指令产生预取指令中止。断点指令直到进入执行阶段才能产生预取指令中止异常。假如该指令不被执行,该断点将不再发生。11.3.8ARM指令集概述ARM指令集分解成为:\uf0d8分支指令\uf0d8数据处理指令\uf0d8状态寄存器传输指令\uf0d8装载和存储指令\uf0d8协处理器指令\uf0d8异常生成指令ARM指令的执行是有条件的,所有指令均包含了4位的条件域11.3.9新的ARM指令集11.3.10Thumb指令集概述Thumb指令集是ARM指令集的重编码子集。Thumb指令被分成:\uf0d8分支指令\uf0d8数据处理指令\uf0d8装载和存储指令\uf0d8批量装载和批量存储指令\uf0d8异常生成指令11.4CP15协处理器15号协处理器或系统控制协处理器CP15用以配置和控制下列所有项目:(ARM7采用“协处理器”提供一种非侵入式的方法来延伸指令集。协处理器空间逻辑上通常分成16个协处理器,编号从0至15,第15号协处理器(CP15)是保留用作某些常用的控制功能)\uf0d8ARM9EJ-S\uf0d8Cache(指令Cache、数据Cache、写缓冲)\uf0d8TCM(紧耦合存储器接口)\uf0d8MMU(存储器管理单元)\uf0d8其他系统选项CP15提供了16个额外的寄存器:11.4.1CP15寄存器访问CP15寄存器只能在特权模式中通过如下指令进行访问:\uf0d8MCR(从ARM寄存器传送到协处理器)指令用以写一个ARM寄存器到CP15\uf0d8MRC(从协处理器传送到ARM寄存器)指令用以读CP15的值到ARM寄存器其他指令(如CDP、LDC、STC)可能导致一个未定义指令异常11.5内存管理单元ARM926EJ-S处理器实现了增强ARMV5架构的MMU,以向操作系统SymbianOS、WindowCE、Linux等操作系统提供虚拟内存特性。虚拟内存特性包括内存访问权限控制和虚拟地址到物理地址的转换。{1、快速上下文切换扩展(FCSE)是MMU中的一个附加硬件,FCSE使多个任务可以运行在一个固定的重叠存储器空间中,(各个空间都有独立的虚拟地址,这与操作系统的虚拟地址不一样,操作系统各个进程使用统一的虚拟地址)而在上下文切换时不需要清理或清除Cache或TLB。2、使用FCSE,虚拟存储管理增加了一次地址转换,FCSE在虚拟地址到达Cache和TLB之前,使用一个特殊的、包含进程ID值的重定位寄存器修改虚拟地址。第一次转换之前的地址称为虚拟地址(VA),把第一次转换之后的虚拟地址称为修改后虚拟地址(MVA)3、保存在CP15:C13:C0的当前进程ID4、为了有效使用FCSE,系统使用页表来控制区域的配置和操作,使用域来隔离各个任务。}由CPU内核产生的虚拟地址被FCSE(快速上下文变换扩展)用CP15的13号寄存器转换成为修改后虚拟地址(MVA)。MMU利用一个存储于物理存储器中的唯一的两级页表集将MVA转换成物理地址。页表集的每一个入口包括访问权限以及虚拟地址所对应的物理地址。一级转换表包含了4096个入口(由MVA的20~31位作为索引)。这些入口包含了一个指向1MB物理存储空间的指针(包括其访问权限、域等信息)、或二级转换表的入口指针(粗页表或细页表)。二级转换表包含了两种子表,粗糙页表和精细页表。粗糙页表包含了大页和小页的指针(包括访问权限)。精细页表的入口包含了大页、小页和微页的指针。MMU包含有:\uf0d8访问权限控制\uf0d8TranslationLookasideBuffers(TLBs)\uf0d8转换表遍历硬件11.5.1访问控制逻辑访问控制逻辑控制着转换表每个入口的访问(权限)信息。访问控制逻辑检查两个信息:域和访问许可。域是存储机制访问的主要控制机制。共有15个域。它定义了访问能进行的必要条件。域决定了访问是否被允许或被忽略。二级访问机制是对段、大页、小页和微页的访问控制。段和微页有一个单一访问允许集,而大页和小页可以和4个访问允许集关联,每个子页一个访问允许集。11.5.2TLBTLB缓存了转换表的遍历结果,从而避免了每次都需要遍历整个转换表。当TLB包含了MVA的入口,允许此次访问并输出与MVA相关的物理地址。当访问不被允许,MMU通州CPUZ中止。如果TLB不包含MVA的入口,转换表遍历硬件将从物理内存中的转换表中获取转换信息。11.5.3转换表遍历硬件转换表遍历硬件用以遍历物理内存中的转换表,获取物理地址与访问允许,并更新TLB。虚拟地址标志为段映射或是页映射决定了硬件遍历的级别是1或是2。共有3种页映射和1种段映射访问。页映射访问有大页、小页、微页三种。转换过程总是从一级遍历启动的,段映射访问只需要1级遍历,而页映射访问需要2级遍历。关于MMU跟多细节,请参考ARM926EJ-S技术参考手册第3章11.5.4MMU错误当发生如下一些错误时,MMU可通知CPU中止:\uf0d8对齐错误(只针对数据访问)\uf0d8转换错误\uf0d8域错误\uf0d8访问权限错误当MMU的访问控制机制检测到相应的条件将自动生成这些错误。如果该错误是内存访问的结果,MMU中止此次访问,并将此次错误通知给CPU内核。MMU将关于错误的状态和地址信息存储于数据错误状态寄存器和错误地址寄存器中。它也将指令获取中产生的错误状态存储于指令错误状态寄存器中。错误状态寄存器(CP15中的寄存器5)指示了数据或预取中止的原因,中止访问的域号。错误地址寄存器(CP15中的寄存器6)保存了导致此次数据中止的MVA。关于MMU错误的更多细节,请参见ARM926EJ-S技术参考手册第3章。11.6Cache和写缓冲ARM926EJ-S具有8KB的指令缓存(ICache)、8K的数据缓存(DCache)和写缓存。虽然ICache和DCache具有类似的特性,但各自还是有一些特征。Cache采用4组关联(利用MVA进行定位、索引、标志)。每个Cache行的长度是8个字,对于DCache还有2个脏位(dirtybit)。ICache和DCache提供了Cache锁定、Cache污染控制、行替换控制。ARM926EJ-S的缓存支持一种新的特性,叫做(allocateonread-miss),也就是大家所共知的Wraping。此功能特性使得Cache首先读取需要的字,然后再填充Cache行。这就意味着,当发生字未命中时,Cache首先发起AHB访问读取所需字,而不是装载整个Cache行。从而提高了处理器的响应速度。Cache和写缓存是由CP15的1号寄存器(控制)、CP15的7号寄存器(Cache操作)和CP15的9号寄存器(Cache锁定)11.6.1指令CacheICache获取处理器执行所需要的指令。ICache可通过向CP15.1.I写1进行使能,也可通过向该位写0进行禁止。当MMU被使能,所有指令的获取将经过转换以及权限检查。假如MMU被禁止,所有的指令获取是可缓存的,将不做任何的保护检查并且物理地址与MVA之间是平面映射的。由于MVA使用的禁止,上下文切换将导致ICache内容的清除或失效。当ICache是禁止的,所有指令的获取将出现在AHB上。复位后,ICache的入口条目是无效的,ICache是禁止的。为了达到更好的性能,应该在复位后尽快将ICache进行使能。11.6.2数据Cache(DCache)和写缓冲ARM926EJ-S包含一个DCache和一个写缓冲以减小主内存的带宽和延迟对数据访问性能上的影响。DCache和写缓冲的操作是紧密相连的。11.6.2.1数据Cache(DCache)DCache需要MMU被使能。所有的数据访问将服从MMU的转换和权限检查。MMU产生的数据访问中止将不导致行填充或AHB总线上的数据访问。如果MMU被禁止,则所有的数据访问是不进行缓存的,并且没有保护检查而直接出现在AHB总线上。所有的访问是平面映射的VA=MVA=PA。在上下文切换过程中将导致DCache数据清除或失效。在行装载时,DCache保存了行的物理地址标签,该标签将在DCache回写数据到外部内存中使用。这就意味着在整个写回操作过程中,无需MMU干预。DCache的每一行都有2个脏位,1个用于4个字,1个用于后4个字。这些位的置位标识该行的相应字是脏的。假如Cache行在执行填充或清除指令时,这些脏位决定了是否要将相应字写回到内存中。DCache可通过CP15的1号寄存器的C位进行使能或禁止。DCache支持写通和写回操作,具体可通过MMU转换表中的C位和B位决定。DCache具有8个数据,1个地址的写回缓存用于Cache行取出或清除时存储脏数据行的写回数据。写缓冲能保存16字的数据和4个独立的地址。DCache和写缓存是紧密地结合在一起的。他们在各个段中的配置由MMU的转换表中的页描述符中。11.6.2.2写缓冲ARM926EJ-S包含的写缓冲具有16个字的数据缓冲和4个字的地址缓冲。写缓冲是用于对某个可缓冲区域进行写操作,包括写通区域或写回区域。写缓冲还可以避免处理在写外部存储器时发生延迟。当需要进行存储时,数据将首先以内核速度写到写缓冲内,然后写缓冲以总线的速度将数据存储到外部存储器中,在这个过程中,ARM9EJ-S的处理器可执行其他任务。DCache和写缓冲可通过配置MMU中各段或各页描述符中的C、B位支持写回区域和写通区域。写通操作:当Cache写命中发生时,DCache首先被更新,然后改更新数据直接写到写缓冲内。当Cache写未命中发生时,DCache通过轮换或其他算法选择一个Cache行,并将其存到写缓冲内。写回操作:当Cache写命中发生时,1个或半个Cache行被标志为脏的,这意味着其中的数据与外部存储器中的数据已经不一致了。当Cache写未命中发生时,DCache通过轮换或其他算法选择一个Cache行,并将其存到写缓冲内。11.7总线接口单元ARM926EJ-S具有一个总线接口单元(BIU),该单元用于仲裁并调度AHB请求。BIU在AHB-Lite协议的基础上实现了多层AHB,从而使得多个AHB主机与从机之间的同时访问成为可能。该功能是通过一个复杂的互联矩阵实现的,该功能增加了总线的带宽以及更灵活的系统构架。多主机的总线构架具有如下一些好处:\uf0d8使得开发一个增加总线带宽,拥有灵活构架的多主控系统得以实现\uf0d8由于每层AHB只有一个主机,因此没有仲裁或主机到从机的多路选择,也就使得每个AHB层变得简单。AHB层(AHB-Lite协议的实现)不必支持请求和应答,也不必支持重试与事务拆分。\uf0d8仲裁只有在当多个主机同时访问一个从机时有效11.7.1支持的传送ARM926EJ-S处理器执行AHB访问分为单字、突发4字、突发8字三种。ARM9EJ-S核的请求如果不是1、4、8字,则将其拆分成这些尺寸。注意Atmel总线是AHB-Lite协议的子集,因此它不支持拆分和重复请求表11-7给出了所支持的传输类型以及它们所应用的事务11.7.2Thumb指令获取所有的指令获取,无论是ARM9EJ-S核的状态,都是在AHB总线上进行32位访问。假如ARM9EJ-S处于Thumb状态,则每次可取2条指令。11.7.3地址对齐ARM926EJ-S的BIU支持地址对齐检查并将AHB地址对齐到必要的边界。16位访问对齐到半字边界,32位访问对齐到字边界。12、AT91SAM9260调试与测试12.1描述AT91SAM9260具有许多调试和测试能力。标准的调试功能(如代码下载、程序的单步调试)可通过通用的JTAG/ICE端口实现。调试单元提供了2针的UART用以将应用下载到内部SRAM,利用内部的COMMTX和COMMRX信号的中断处理跟踪调试通信通道的行为。一系列专用的调试/测试管脚为PC测试环境提供了对上述功能的直接访问。12.2方框图12.3应用举例12.4调试和测试管脚描述12.5功能描述12.5.1测试管脚TST是一个专用的测试管脚,该管脚用于定义CPU的工作模式。为保证CPU工作与正常的工作模式,该管脚必须拉低。该管脚的其他状态用于制造厂测试。12.5.2嵌入ICEARM9EJ-S的EmbeddedICE-RT是通过ICE/JTAG端口实现的。它通过ICE接口连接到计算机主机。ARM926EJ-S通过其中的ARM9EJ-S核提供调试支持。ICE/JTAG端口检查ARM926EJ-S的内部状态,并在不通过外部数据总线的情况下将指令(STM)串行插入内核的流水线。STM是一个批量存储指令,该指令可在不影响系统其它部分的情况下将ARM9EJ-S寄存器的内容串行移出。ARM9EJ-S处理器内部有两条扫描链,扫描链支持测试、调试和EmbeddedICE-RT的编程。该扫描链由ICE/JTAG控制。当JTAGSEL为低电平时,选择EmbeddedICE模式。直接在ICE和JTAG之间进行模式转换是不能实现的。只有当JTAGSEL电平改变后进行芯片复位才能实现模式转换。关于EmbeddedICE-RT更多的细节,请参见ARM9EJ-S技术参考手册。12.5.3JTAG信号描述TMS管脚为测试模式输入信号,该信号控制着测试接口状态机的状态转换。TDI管脚为测试数据输入,该信号为JTAG寄存器提供数据(边界扫描寄存器、指令寄存器或其它数据寄存器)TDO管脚为测试数据输出,该信号用以串行输出JTAG寄存器的数据。它能从边界扫描链(寄存器)或其它寄存器中获取采样值并将采样值传递到串行测试回路中的下一个芯片。NTRST(在IEEE标准1149.1中为可选的)是一个测试回路复位信号。该信号在ARM核中是强制的,用以复位调试逻辑。在ARM926EJ-S核中,NTRST是上电复位输出,上电后有效。如果必要,用户可保持NTRST在2.5个MCK周期内有效来复位调试逻辑。TCK是测试时钟信号输入,该信号用以使能测试接口。TCK是由测试设备(上位机)驱动而不是由被测试设备(CPU)驱动的。该时钟信号的频率是1/6CPU时钟频率以下任意频率。在ARM926EJ-S运行于32.768kHz低速时钟时,该频率的最大值为5.45kHz。RTCK是测试时钟的返回信号。并不是IEEE1149.1标准信号而是为了增强时钟的处理性能而增加的。通过探测ICE接口,该反馈信号可被用于同步TCK时钟信号而无须关系ICE接口时钟与系统时钟之间1/6的比例关系。该信号只在JTAGICE模式下有用而在边界扫描模式下不适用。12.5.4调试单元调试单元是一个2针USART,该单元可用于多个调试和跟踪目的,并提供了一个现场编程和通信监视通信的理想解决方案。此外,与两个外设数据控制器相关联的通道允许进行批处理以降低处理器时间。调试单元同时也管理着COMMTX和COMMRX信号(来源于ICE)的中断处理,并跟踪着调试通信通道(DCC)的活动。该调试单元可以阻止通过ICE接口对系统进行访问。调试单元芯片ID寄存器提供了关于产品版本以及其内部配置的信息AT91SAM9260调试单元芯片ID值为0x019803A0(32位)更多关于调试单元的信息,请参见调试单元一节12.5.5IEEE1149.1JTAG边界扫描IEEE1149.1JTAG边界扫描允许进行芯片管脚层次的访问(独立于芯片封装技术)。当JTAGSEL为高时,IEEE1149.1JTAG边界扫描使能,执行SAMPLE、EXTEST与BYPASS功能。在ICE调试模式下,ARM处理器以一个非JTAG芯片ID(标识处理器)来响应ICE系统。在IEEE1149.1JTAG中并不适用。不能在JTAG和ICE模式间直接切换,在JTAGSEL管脚状态改变后必须执行一次芯片复位。12.5.5.1JTAG边界扫描寄存器边界扫描寄存器(BSR)包含484位,对应于有效管脚以及与之相关控制信号。每个AT91SAM9260输入/输出对应于BSR中的3位。OUTPUT位包含该管脚的强制状态,INPUT位表示该管脚的可见状态。CONTROL位表示该管脚的方向。表12-2为AT91SAM9260边界扫描寄存器12.5.6JID寄存器JTAGIDCodevalueis0x05B1_303F.13、AT91SAM9260引导程序13.1描述引导程序集成了多个不同的程序,这些程序将从产品不同的存储器中上载或下载程序。首先,引导程序将初始化调试单元串行接口(DBGU)以及USB设备接口。然后,执行DataFlash引导程序,该程序从DataFlash(利用SPI连接于CPU)寻找8个有效的ARM异常向量序列。除了第6个向量外,其他向量必须是B-branch或LDR装载寄存器指令。第6个向量用于存储所下载程序的镜像大小。如果找到的序列是有效的,代码将被下载到内部SRAM中,然后进行重影射并跳到SRAM的首地址开始执行。如果没有找到有效的序列,则NANDFlash引导程序开始执行。同样的,该引导程序查找8个有效的ARM异常序列,如果找到了,则代码将被下载到内部SRAM,然后进行重影射并跳到SRAM的首地址开始执行。如果没有找到有效的ARM向量序列,将执行SAM-BA引导程序。该引导程序等待USB设备端口或DBUG串行端口的事件。13.2流程图13.3设备初始化初始化过程将按下述流程逐次进行:1.FIQ初始化2.为ARM管理者模式设置堆栈3.外部时钟检测4.切换到主振荡器上的主时钟5.C语言变量初始化6.假如未检测到外部时钟,则检测主振荡器频率7.设置PLL:PLLB被初始化成为48MHz(使用USB设备所必需的)。电源管理控制器(PMC)中的一个寄存器决定了主振荡器的频率以及PLLB正确的分频因子。a)假如使用的是内部RC振荡器(OSCSEL=0)并且主振荡器是有效的。表13-1定义了在使用内部RC振荡器时,引导程序所支持的晶体频率。b)假如使用的是内部RC振荡器(OSCSEL=0)并且主振荡器被旁路,表13-2定义了引导程序所支持的频率。c)假如使用的是外部32768Hz振荡器(OSCSEL=1),表13-3定义了引导程序所支持的晶体频率d)假如使用的是外部32768Hz振荡器(OSCSEL=1)并主振荡器被旁路,表13-4定义了引导程序所支持的晶体频率8.只有当OSCSEL=1时,初始化DBGU串行接口(115200bauds,8,N,1)9.使能用户复位10.通过NPCS0跳到DataFlash引导过程,如果DataFlash引导成功,则执行重映射和跳转到0x0地址11.通过NPCS1跳到DataFlash引导过程,如果DataFlash引导成功,则执行重映射和跳转到0x0地址12.跳到NANDFlash引导过程,如果NANDFlash引导成功,则执行重映射和跳转到0x0地址13.激活指令Cache14.跳到SAM-BA引导序列15.禁止看门狗16.初始化USB设备端口13.4DataFlash引导DataFlash引导程序,在SPIDataFlash中寻找有效的应用程序。如果找到了有效的程序,该程序将被装在到内部SRAM,并在重影射后跳转到地址0x00开始执行。该应用可以是应用代码,也可以是二级引导程序所有对函数的调用均使用相对地址,而不允许使用绝对地址。复位后,内部RAM中的代码影射到0x00000000和0x00100000两个地址。13.4.1有效镜像检测通过检测前28个字节(对应于ARM异常向量),DataFlash引导程序寻找有效的应用。这些字节必须是跳转或装载PC(偏移地址装载)等ARM指令。第6个向量(0x14),包含了需要下载的镜像的尺寸。用户必须利用自己的向量替换之。13.4.2ARM向量6结构ARM异常向量6用以存储DataFlash引导程序所需要的信息,该信息描述如下:镜像的尺寸包含在第6个ARM向量中,因此必须以正确的向量替换之。13.4.3DataFlash引导时序DataFlash引导程序在下载过程结束后执行设备初始化。DataFlash引导程序支持AtmelDataFlash,表13-5简要描述了针对所有设备包含在ARM第6向量的参数。DataFlash有一个状态寄存器,该参数决定了访问该设备所需的所有参数。DataFlash引导被配置成兼容于DataFlash未来设计。13.5NANDFlash引导NANDFlash引导程序在NANDFlash中寻找有效的应用,如果没有找到NANDFlash,则利用实时定时器产生1s的延时。NANDFlash引导程序在NANDFlash中寻找有效的应用程序,如果找到了有效程序,则该应用将被装载到内部SRAM,并在重映射后跳转到地址0x00000000处执行。13.6SMA-BA引导如果在DataFlash引导序列中没有在找到有效的DataFlash设备,将启动SAM-BA引导程序。SAM-BA引导规则如下:\uf0d8检测USB设备枚举事件是否发生\uf0d8检测自动波特率序列是否完成\uf0d8在MCK配置成48MHz的情况下,检测DBGU是否接收到字节\uf0d8一旦通信接口确认,应用将运行于一个死循环中以等待不同的命令13.6.1DBGU接口DBGU串行接口初始化成为115200bps、8位数据位、无校验、1位停止位。文件的发送和接收采用的是Xmodem协议。任何一个执行这种协议的终端可将一个应用文件发送给目标系统。该二进制文件的尺寸受限于内嵌于产品的SRAM尺寸。由于Xmodem协议的执行需要一定的SRAM空间,因此该二进制文件的尺寸必须要小于SRAM的空间尺寸。13.6.2Xmodem协议Xmodem协议支持128字节的数据块。该协议采用2个字节的CRC-16校验以进行最大的位错误检测。Xmodem协议利用CRC校验保证发送器与接收器能成功地传输报告,每次传输的数据块格式如下:13.6.3USB设备端口要使用USB设备端口,必须提供一个48MHz的USB时钟,该时钟已经在之前的设备初始化中设置(PLLB)。任何安装USBCDC驱动的设备可利用PC的RS232通信软件与USB交互。该CDC类在Windows的各个版本(从WIN98SE到WINXP)中均已实现。该CDC的文档描述了一种实现一个设备的方法(如ISDNModem、虚拟串口){USB的CDC是USB通信设备类的简称,CDC类是USB组织定义的一类专门给各种通信设备使用的USB子类。根据CDC类所针对通信设备的不同,CDC类又被分为以下不同的模型:USB传统纯电压业务(POTS)模型、USBISDN模型和USB网络模型,其中USB传统纯电压业务模型,又可分为直接线控制模型、抽象控制模型和USB电压模型。虚拟串口属于USB传统纯电话业务模型下的抽象控制模型}USB设备的厂商ID即是Atmel的厂商ID0x03EB。产品ID为0x6124。主机系统将使用这些参考信息挂接正确的驱动程序。在Window系统中,INF文件包含了正确的厂商ID和产品ID。Ateml提供了一个INF例子将设备看成是一个新的串口,同时也提供了其它用户驱动(SAM-BA应用所需要的)(atm6124.sys)。具体请参见文档USBbasicapplication。文献编号为612413.6.3.1枚举过程USB协议是一种主从协议。主机通过控制节点向设备发送枚举请求。设备按USB规范所定义的那样执行了标准的请求。13.6.3.2通信端点共有两个通信端点,其中端点0用以枚举过程,端点1是一个64字节的块输出端点,端点2是一个64字节的块输入端点。主机将通过端点1发送SAM-BA引导命令。如果需要,该消息可被主机分成多个数据块。如果该命令需要回应,主机将通过发送IN命令获取回应13.7硬件和软件制约\uf0d8SMA-BA引导程序需要两块内部SRAM,其中一块用以存储用户代码,这部分空间是4K字节,另以块用于存储变量和堆栈\uf0d8下载到DataFlash和NANDFlash的代码必须小于4096字节\uf0d8代码总是从设备地址0x00000000下载到内部SRAM的0x00000000。\uf0d8下载的代码必须是位置无关的,或在0x00000000地址处进行链接。\uf0d8DataFlash必须连接在NPCS0和NPCS1(SPI)\uf0d8USB需要\uf06e软件自动检测所需要的晶振或输入频率这些SPI和NANDFlash驱动使用多个具有各种功能的PIO管脚与设备进行通信。当这些也被应用所使用时则必须小心。在启动过程中,连接在这些管脚上的设备可能被无意地驱动,也可能出现SPI输出管脚与设备之间的电平冲突。为确保功能的正确性,建议将这些设备移到其它管脚。表13-12包含了引导程序执行过程中所需驱动的管脚。如果没有找到正确的引导程序,这些管脚被驱动的时间将小于1s对于DataFlash,SPCK的时钟为1MHz,下载4096字节的实现需要200ms。在跳到内部SRAM的应用之前,引导程序所需的所有的PIO和外设将被设置成复位状态。',)


  • 编号:1700806917
  • 分类:述职汇报
  • 软件: wps,office word
  • 大小:36页
  • 格式:docx
  • 风格:商务
  • PPT页数:255488 KB
  • 标签:

广告位推荐

相关述职汇报更多>