《最新嵌入式存储器及系统结构PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新嵌入式存储器及系统结构PPT课件.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式存储器及系统结构嵌入式存储器及系统结构目录目录1.嵌入式存储器简介嵌入式存储器简介1.1 常用存储器简介Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.以下为NandFlash的典型原理图。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.
2、从NandFlash的接口电路图可以看出:NandFlash没有区分地址总线和数据总线。只有一个8bit的I/O总线、6根控制线(WE、WP、ALE、CLE、CE、RE)和RB。实际上,NandFlash数据和地址均通过8bit I/O总线串行传输的。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.以下分别为orFlash和andFlash程序和数据的访问方法。对NorFlash而言,程序和数据的访问如下:BYTE t
3、mp;Far Void*p=0 x00000C000000;tmp=*p;/读取地址为0 x00000C000000的数据Asm ljmp 0 x00000D000000;/程序开始执行0 x00000D000000的程序区对NandFlash而言,对程序和数据的访问相对比较复杂。下图分别为NandFlash读写流程图。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.写数据Evaluation only.Created
4、 with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.读数据Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.事实上,在写数据时,还要先对擦除andFlash。在送地址和数据时,NandFlash通过/O总线依次送入地址和数据,而且读写是以块为单位进行操作。这样,如果要访问NandFlash内的数
5、据,必段以块中的页为单位,根据所指定的块和页将该页的数据读入内存,然后根据内存中的相对地址对该数据进行访问。该原理和机的硬盘工作机理很相似。如果需要将andFlash作程序存储器,需要注意以下事项:(1)由于NandFlash出错和出现坏块的机会比NorFlash大得多,而程序出错后的问题往往是致命的。所以必须有错误冗余校验机制和纠错机制。(2)由于MCU/MPU不能直接对NandFlash程序和数据进行访问,所以必须有一个BootLoader程序将NandFlash程序映射到RAM中才可以执行。也就是说在该单片机系统中,必须有一个ROM存储引导程序。该引导程序一般说来是很精巧的。在该Boot
6、Loader,必须包含NandFlash读驱动程序。需要注意的是,该处的BootLoader和我们机的Boot是有区别的,而更像PC机的BIOS程序。(3)用NandFlash存储程序的系统一般都用于程序量比较大,且要求带有andFlash存储器的系统。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2、嵌入式系统结构根据应用场合的不现,嵌入式系统千差万别。小型的嵌入式系统中,有些MCU将绝大部外围电路,如RAM、RO
7、M、ADC等,甚至连日振都都集成到一个MCU,基本上不需外围器件。这些器件只需要加上人机接口电路,电源,装入程序即可构成一个嵌入式系统,如电子表等。对于另外一些比较大一点的系统,可能需要扩展RAM、ROM、ADC以及其它一些器件。如我们的碟机/数码相框的系统架构图如下:Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.上面那个系统的外围器件比较多,电路也比较复杂。对于很多的嵌入式系统,如小型手持设备而言,出于硬件成本、P
8、CB板面积等因素的考虑,往往去掉其它一些器件。比如,在自带Nand Flash的情况下,可用NandFlash代替EEPROM和NorFlash。如有些MCU自带USB控制器和LCD Driver、RTC等,就可以省去这些外围电路。但需要一个MCU/MPU能直接运行的Bootloader程序对存放在NandFlash的程序进行引导。该BootLoader程序必须带有NandFlash驱动。对于另外一些MPU,由于自身并不带有RAM和ROM,就需要扩展相应的电路。对于某些MCU/MPU,其内置的ROM自带有Bootloader。Evaluation only.Created with Aspos
9、e.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.现在就该系统分别举我们现有的两个产品进行说明。(1)ADI平台我们的ADI MPU中,通过ROM自带有一个Bootloader(即oot ROM)。该Bootloader自带有三套驱动程序,即普通ROM(如NorFlash,实际上并不需要驱动)、8bit Flash/16 bit Flash驱动和SPI驱动程序,分别对应三种方式启动程序,此外,还有一种并不需要Bootloader的启动方式。如下图所示:Evaluation only.Cr
10、eated with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.但NandFlash和SPI Flash由于MCU不能直接寻址其存储单元,所以一定要先通过相关驱动程序将NandFlash或SPI Flash中的程序load到SDRAM中才能执行。对于NorFlash启动,由于MCU/MPU可以像普通ROM一样直接对NorFlash寻址,所以该引导程序通过跳转指令直接将程序指针指向NorFlash的main()函数即可。不过在我们的ADI系统中,也是先将NorFlash内
11、的程序load到高速SDRAM中再执行。我们可以通过对oot Mode进行设置如下图所示:Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2)MTK方案:由于我们手头有关MTK的资料非常有限,所以,有关MTK的系统结构仅为猜测。不过我想,MTK的有如下特点:MTK内部无ROM。上电时,对于8032而言,PC直接指向外部ROM(NorFlash)0 x00000000。程序在执行时,将一部分程序从NorFlash Lo
12、ad到SDRAM中,并将程序指针跳转到主程序的入口处。32 bit RISC的执行机理也与此相同。在程序进行升级时,因为执行的是SDRAM中的程序,所以并不影响从CDROM或SD卡中读取程序并将程序写入NorFlash。当程序升级完毕后,程序指针跳转到用户程序起始位置,重新装载程序并执行。以上为仅为个人的推断。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(3)其它嵌入式系统简介以VxWorks为例VxWorks也有
13、一个Boot Rom,用于存放BootLoader。不过该BootLoader可以通过网卡等调用Boot Image将BootLoader下载到Boot ROM中。系统运行时,先启动Boot,通过Boot调用BSP对硬件进行一系列初始化。然后Load OS和应用软件,并运行相应的程序。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(3)Boot的原理简介BootLoader为一独立于主程序的程序,但都被主MCU/MPU所支持,就像PC机的BIOS一样。该程序存放于内部或外部ROM中,其作用是引导主程序的执行,而主程序通常是不能直接被主CPU所寻址并执行的。通过BootLoader将主程序读取出来并装入主存的指定区域,将PC指针跳转到主程序入口处开始执行。如果主程序本身就在ROM中,则可以不用执行BootLoader,直接执行主程序。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.
限制150内