随着嵌入式产品的发展,各种嵌入式操作系统,以及嵌入式上层应用软件层出不穷。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
1 随机存储器介绍随机存储器主要分为静态随机存储器(SRAM)、动态随机存储器(DRAM)及SDRAM。1个SRAM单元通常由4~6个晶体管组成,当这个SRAM单元被赋予O或者1的状态之后,它会保持这个状态直到下次被赋予新的状态或者断电之后才会更改或者消失。SRAM的读写速度相对比较快,而且比较省电,但是存储1 b的信息需要4~6只晶体管。DRAM和SDRAM必须在一定的时间内不停地刷新才能保持其中存储的数据,但存储1 b的信息只要1只晶体管就可以实现。RAM(随机存取存储器)RAM -random access memory 随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有**功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,并且不依赖于电来保存信息,但是由机械部件带动,速度与CPU相比就显得慢的多。
2 硬件设计方案
2.1 SDRAM工作原理SDRAM本身是由多个Bank区域构成,对SDRAM的操作实际上是通过区域片选信号对单独Bank进行的操作。SDRAM中单个Bank的读取过程如图1所示。
(1)通过地址总线将行地址传输到地址引脚;
(2)RAS(行地址使能信号)被激活,这样行地址被传送到行地址门闩线路中;
(3)行地址解码器根据接收到的数据选择相应的行;
(4)wE(写使能信号)引脚确定不被激活,所以SDRAM知道它不会进行写操作;
(5)列地址通过地址总线传输到地址引脚;
(6)CAS(列地址使能信号)引脚被激活,这样地址被传送到列地址门闩线路中;
(7)DQM(输出使能)引脚被激活,数据向外输出。
这就完成了一个单Bank的读操作,在读取数据的过程中行列地址的寻址过程是通过两个时钟周期实现的,在第一个时钟周期使能行地址,下一个时钟周期使能列地址。
SDRAM写入的过程和读取过程是基本一样的,只需要将wE信号激活。
2.2 硬件设计对于SDRAM的硬件设计需要确定3个方面的内容:通过处理器的特性选择SDRAM的型号;确定SDRAM地址线、数据线的连接方式;确定SDRAM控制信号线的连接方式。
2.2.1 SDRAM的选择该平台处理器选择Intel公司xscale架构的PXA255,它针对于SDRAM有4根专用的动态片选信号,能够支持4块内存区域,如图2所示。
其中每块区域所能支持到的最大物理地址为64 MB。并且每一块内存区域均可使用16 b或32 b的SDRAM。
在硬件设计过程中考虑到硬件使用的可调节性,采用8片16 b&TImes;4 MB&TImes;4 Bank的SDRAM,共搭建了256 MB的极限存储空间。其中,SDRAM选择型号为三星公司的K4S561632E。
2.2.2 数据线、地址线的分配PXA255处理器共有32位数据线和26位地址线。故在硬件设计时需要并行处理2块16 b的SDRAM,分别连接高位和低位的16根数据线。
对于地址线的连接,首先需要参考SDRAM的数据手册,确定SDRAM行列地址线的个数。其次根据处理器数据手册确定具体地址线的连接方式。
在三星K4S561632E的数据手册中是这样给出的,如表1所示。
从表1中可以得出行列复用13根地址线,其中行地址13根,列地址9根,共组成22根地址线的寻址空间。在处理器PXA255中,给SDRAM分配的地址线空间是从A10~A22。这样就可以完全确定地址线和数据线的连接方式,如图3所示。
2.2.3 控制信号线的连接方式对于SDRAM需要确定的控制线包括时钟信号线、区域片选信号线及Bank片选信号线。对于这三类信号线PXA255处理器是这样给出的,即:
(1)每两组内存区域使用同一组时钟信号线,即每128 MB的内存空间使用同一根时钟信号线,故在设计中使用了2组时钟信号线。
(2)共有4根区域片选信号,分别控制64 MB的物理地址空间。最大支持到256 MB的物理地址空间。
(3)地址线的23,24位用来实现对SDRAM内部Bank的选择。
2.3 硬件的移植针对于PXA27x系列的高端处理器,Intel并没有对SDRAM部分做本质上的改动,仍然是4根动态片选信号,故硬件方面的设计可以完全移植到PXA27x系列的处理器中。
3 软件设计方案Windows CE操作系统下对内存的驱动代码主要分为两个部分,首先在BootLoader中对SDRAM进行底层初始化;其次在系统BSP包内需要将SDRAM所对应的物理地址映射为Windows CE下能够识别的虚拟地址。
控制线的连接方式如图4所示。
3.1 BootLoader代码的买现BootLoader是系统运行的起始点,它包含着系统运行的第一行代码。BootLoader本身也是一个功能完整的微型操作系统,在内部需要实现任务调度、内存管理、文件系统,以及各种必要设备驱动程序的配置。控制线的连接方式如图4所示。
(1)频率设置
完成寄存器的复值,其中r3的选择为F即就是0x1111,打开4片内存区域。
(3) 刷新间隔设置。关于刷新间隔值(DIR)的计算在手册中是这样给出的:
目前公认的标准是,存储体中电容的数据有效保存期上限是64 ms,也就是说每一行刷新的循环周期是64 ms。这样刷新速度为:64 ms/行数量。由于行地址有13位(在MDCNFG寄存器的DRACO[1:0]中设置,需要与硬件一致)。
(4) 潜伏期的设置。潜伏期是指SDRAM在读写过程中所存在的延迟,潜伏期的时间长度是由以下几个参数共同决定的:
CL:在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据I/O通道(数据总线)输出到内存总线上。但是在CAS发出之后,仍要经过一定的时间才能有数据输出,从CAS与读取命令发出到第一笔数据输出的这段时间被称为读取潜伏期。tRP:在发出预充电命令之后,要经过一段时间才能允许发送行有效命令打开新的工作行,这个间隔被称为预充电有效周期(Precharge command Period)。tRCD:在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为tRCD,即RAS to CASDelay(RAS至CAS延迟),也可以理解为行选通周期。tRAS:行有效至预充电命令间隔周期。tRC:包括行单元开启和行单元刷新在内的整个过程所需要的时间。
所有参数可以从SDRAM数据手册得到,计算出理论潜伏期时长为200/μs。
(5)其他设置
设置操作系统的入口点,这里用到的虚拟地址需要与系统中建立的映射表相对应。
3.2 BSP内代码的实现Windows cE系统启动中,对SDRAM的操作分为两个部分:首先对SDRAM的物理空间进行分配;其次将SDRAM所对应的物理地址转换为虚拟地址。
3.2.1 地址的分配地址的分配和系统加载的顺序有着密切的关系。首先要在内存中开辟一段空间用来存放启动代码BootLoader,它被存放在sDRAM的第一个区域空间内。当发生外部复位中断时系统会从这里重新开始运行。其次分配操作系统内核空间,它被存放在SDRAM的第二个区域,以便使BootLoader能够顺利加载操作系统内核。
3.2.2 地址的映射在操作系统中,需要把SDRAM的空间连续起来并作为首地址,不仅方便内存管理,而且当应用程序申请大块内存时,操作系统内核也可方便的分配。这就引入了将不连续的物理地址空间映射为连续的虚拟地址空间。PXA255的SDRAM起始物理地址OxA0000000,可将其映射为0x80000000,这里0x80000000将作为系统虚拟空间的起始地址,当有IRQ中断发生时,系统Pc指针会重新指向这个地址。
3.2.3 软件的移植针对于PXA27x系列的高端处理器,微软在Plat-Build 5.0中给出了相对应的内核代码虽然在内核代码的架构上有了很大的变化,但对于扩展SDRAM的思想并没有改变,首先在BootLoader中初始化所使用的SDRAM,其次在BSP内建立地址映射表。
4 结 语介绍了在嵌入式Windows CE系统平台上,使用大容量SDRAM作为动态存储设备的方案。详细介绍了sDRAM硬件连接方案以及软件接口的实现。该方案已经在工程设计中投入使用,其可以在同类的嵌入式高端产品中推广使用。
|