DSP原理与应用-第3章EMIF.ppt

上传人:牧羊曲112 文档编号:5428122 上传时间:2023-07-05 格式:PPT 页数:54 大小:619.50KB
返回 下载 相关 举报
DSP原理与应用-第3章EMIF.ppt_第1页
第1页 / 共54页
DSP原理与应用-第3章EMIF.ppt_第2页
第2页 / 共54页
DSP原理与应用-第3章EMIF.ppt_第3页
第3页 / 共54页
DSP原理与应用-第3章EMIF.ppt_第4页
第4页 / 共54页
DSP原理与应用-第3章EMIF.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《DSP原理与应用-第3章EMIF.ppt》由会员分享,可在线阅读,更多相关《DSP原理与应用-第3章EMIF.ppt(54页珍藏版)》请在三一办公上搜索。

1、第三章 外部存储器接口(EMIF),3.1 概述,EMIF(External Memory Interface)外部存储器接口的用途为DSP芯片与众多外部设备之间提供一种连接方式,EMIF最常见的用途就是同时连接FLASH和SDRAM。EMIF性能优良,跟外部SDRAM和异步器件连接时,具有很大的方便性和灵活性。根据DSP器件的不同,EMIF数据总线可以是32位或16位的。,SRAM vs DRAM,SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。这一点与

2、DRAM不同,DRAM需要进行周期性的刷新操作。同时,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下才能够保持数据。“随机访问”是指存储器的内容可以任意顺序访问,而不管前一次访问的是哪一个位置。DRAM是Dynamic RAM的缩写,中文含义为动态随机存取存储器,需要不断的刷新,才能保存数据。而且是行列地址复用的,许多都有页模式。SDRAM:Synchronous DRAM,即数据的读写需要时钟来同步。一个是静态的,一个是动态的,静态的是用的双稳态触发器来保存信息,而动态的是用电子,要不时的刷新来保持。

3、DRAM容量大,SRAM容量小,SDRAM的结构,Flash-ROM(闪存)已经成为了目前最成功、流行的一种固态内存,与 EEPROM 相比具有读写速度快,而与 SRAM 相比具有非易失、以及价廉等优势。而基于 NOR 和 NAND 结构的闪存是现在市场上两种主要的非易失闪存技术。Intel 于 1988 年首先开发出 NOR flash 技术,彻底改变了原先由 EPROM 和 EEPROM 一统天下的局面。紧接着,1989 年东芝公司发表了 NAND flash 技术(后将该技术无偿转让给韩国Samsung公司),强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。NOR

4、的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在闪存内运行,不必再把代码读到系统 RAM 中。NOR 的传输效率很高,在 14MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NAND 结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快,这也是为何所有的 U 盘都使用 NAND 闪存做为存储介质的原因。应用 NAND 的困难在于需要特殊的系统接口。,FLASH ROM,NAND flash和NOR flash的对比,性能比较闪存是非易失内存,可以对称为块的内存单元块进行擦写和再编程。任何闪存器件的写入操作

5、只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以832KB的块进行的,执行相同的操作最多只需要4ms。,接口差别NOR 闪存带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND闪存使用复杂的I/O口来串行地存取资料,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和资料信息。NAND读和写操作采用512字节

6、的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的闪存就可以取代硬盘或其它块设备。,NAND flash和NOR flash的对比,容量和成本NAND 闪存的单元尺寸几乎是NOR闪存的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NOR 闪存容量为116MB,而NAND 闪存只是用在8MB以上的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于资料存储,NAND在 CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。,NAND flash和NOR flash的对比

7、,可靠性和耐用性 寿命(耐用性):在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。位交换:位反转的问题更多见于NAND闪存,如果用来存储操作系统、配置文件或其它敏感信息时,必须使用EDC/ECC算法以确保可靠性。坏块处理:NAND器件中的坏块是随机分布的,需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。,NAND flash和NOR flash的对比,易于使用可以非常直接地使用基于NOR的闪存,可以像其它内存那样连接,并可以在上面直接运行代码。由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动

8、程序,才能继续执行其它操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映像。,NAND flash和NOR flash的对比,3.2 EMIF寄存器,偏移量 缩写 说明 04h AWCCR 异步等待周期配置寄存器 08h SDCR SDRAM配置寄存器 0Ch SDRCR SDRAM刷新控制寄存器 10h A1CR 异步1配置寄存器 20h SDTIMR SDRAM时序寄存器 3Ch SDSRETR SDRAM自刷新退出时序寄存器 40h EIRR EMIF中断寄存器44h EIMREMIF中断屏蔽寄存器 48h EIMS

9、R EMIF中断屏蔽设置寄存器 4Ch EIMCR EMIF中断屏蔽清除寄存器 60h NANDFCR NAND Flash控制寄存器 64h NANDFSR NAND Flash状态寄存器 70h NANDF1ECC NAND Flash1纠错码寄存器(CS2空间),3.3 EMIF结构和操作,3.3.1 EMIF引脚描述1、SDRAM专用EMIF引脚 2、异步储存器专用引脚 3、访问SDRAM和异步 存储器的EMIF引脚,3.3 EMIF结构和操作,访问SDRAM和异步存储器的EMIF引脚,3.3 EMIF结构和操作,SDRAM专用EMIF引脚,3.3 EMIF结构和操作,异步储存器专用引

10、脚,3.3.2 时钟控制,EMIF 的内部时钟来自DSP 的锁相环(PLL)控制器的SYSCLK3时钟模块,不能直接利用外部输入时钟。SYSCLK3时钟模块的频率通过对锁相环控制器的乘法器和除法器的设置来进行控制。EMIF的时钟是通过EM_CLK引脚输出的,可在跟外部存储器连接时使用。EMIF时钟(EM_CLK)在器件复位期间不工作,释放复位引脚后PLL控制器不再对器件复位,EM_CLK重新开始以PLL控制器设定的频率输出时钟信号,3.3.4 SDRAM控制器和接口,EMIF可以跟大多数标准SDRAM 器件进行无缝接口,并且支持自刷新模式和优先刷新。另外,有些参数可通过编程来设定,如刷新速率,

11、CAS延迟和很多SDRAM时序参数,这样就提供了很大的灵活性。EMIF支持与具有下列特点的SDRAM器件的无缝连接:Pre-charge 位为A10列地址位数为8、9或10行地址位数根据DSP器件不同可以变化:对于有12位EMIF地址引脚的DSP:11或12位行地址位 对于有13位EMIF地址引脚的DSP:11、12或13位行地址位内部存储区数为1、2或4,EMIF与2Mx16x4 SDRAM的连接图,EMIF与2Mx32x4 SDRAM的连接图,EMIF与双4Mx16x4 SDRAM的连接图,SDRAM读操作,当EMIF收到任何一个SDRAM的读操作请求时,就会进行一个或多个读访问。,当EM

12、IF收到任何一个SDRAM的写操作请求时,EMIF就会进行一个或多个写访问操作。,SDRAM写操作,3.3.5 异步控制器和接口,EMIF可以很容易的与各种异步器件直接连接,这些异步器件包括NOR Flash,NAND Flash和 SRAM。两种主要运行模式的对比:,1.异步存储器接口 EMIF的地址引脚EM_Ax:0给出的一般是32位字地址的最低有效位。BA1:0引脚或者给出半字和字节选择信号,或者给出EM_A23:22的信号,这取决于异步1 配置寄存器(A1CR)中数据总线宽度的配置。,3.3.5 异步控制器和接口,1.异步存储器接口a)EMIF与8位存储器的接口注意地址线连接方式的变化

13、b)EMIF与16位存储器的接口注意地址线连接方式的变化c)EMIF与32位存储器的接口,3.3.5 异步控制器和接口,图a 给出了EMIF与一个字节使能的外部存储器的接口图。使用这个接口时EMIF要工作在选择触发模式,这样EM_WE_DQM就作为字节使能端工作。图b给出了当EMIF同一个字节使能的外部存储器的接口时,也可以处于WE触发模式,但是此时BE1:0要被置为低电平,而不是跟EM_WE_DQM1:0引脚相连。在这种接口状态下,不能进行字节写操作。图c EMIF同多个8位存储器的接口图。在这种情况下,EM_WE_DQM信号跟存储器的WE相连,使用这个接口时EMIF要工作在WE触发模式,这

14、样就可以对外部存储器进行字节操作。,3.3.5 异步控制器和接口,异步1配置寄存器(A1CR),3.3.5 异步控制器和接口,3.3.5 异步控制器和接口,WE触发模式下异步读周期的时序,3.3.5 异步控制器和接口,WE触发模式下异步写周期的时序,3.3.5 异步控制器和接口,选择触发模式下异步读周期的时序,3.3.5 异步控制器和接口,选择触发模式下异步写周期的时序,EMIF与SDRM和Flash的硬件连接图Flash有三个地址输入源采用轮询法对Flash编程和擦除 EM_WE引脚接到了Flash的WE输入端,EMIF运行在选择触发模式下,3.4 配置举例,SDRAM接口配置,1).对PL

15、L的编程2).SDRAM时序寄存器(SDTIMR)的设置,SDRAM接口配置,3).SDRAM自刷新退出时序寄存器(SDSRETR)的设置,SDRAM接口配置,4).SDRAM刷新控制寄存器(SDRCR)的设置,SDRAM接口配置,5).SDRAM配置寄存器(SDCR)的设置,Flash 接口配置,EMIF到FLASH的读时序,Flash 接口配置,EMIF到FLASH的写时序,Flash 接口配置,EMIF到FLASH的读时序 异步1配置寄存器(A1CR)各字段的数值计算如下:R_STROBE=(tD+tELQV+tSU)*fEM_CLK-1=(7ns+90ns+6.5ns)*100MHz-

16、1=9.35R_HOLD=tH*fEM_CLK-1=1ns*100MHz-1=-0.9R_HOLD字段必须与TA字段结合起来,满足Flash的CE高电平到高阻态之间的时间tEHQZ:R_HOLD+TA=(tD+tEHQZ)*fEM_CLK 2=(7ns+55ns)*100MHz 2=4.2对TA字段编程的最大值是3h,因此得到下面的值:R_HOLD=2TA=3对于写操作,为满足Flash的CE脉冲宽度(tELEH)的限制,要对W_STROBE字段进行设置:W_STROBE=tELEH*fEM_CLK 1=50ns*100MHz 1=4当连续操作时,W_SETUP 与 W_HOLD字段结合起来满

17、足Flash CE脉冲宽度的限制tEHEL:W_SETUP+W_HOLD=tEHEL*fEM_CLK 2=30ns*100MHz 2=1另外,整个写访问长度必须满足Flash的最小写周期时间(tAVAV)的要求:W_SETUP+W_STROBE+W_HOLD=tAVAV*fEM_CLK 3=90ns*100MHz 3=6在写操作时,通过解上面的方程,求得各字段的值为:W_SETUP=1W_STROBE=5W_HOLD=0,Flash 接口配置,在这个例子中,在每个周期(除了TA早就达到最大值)之间加入10ns(1个周期)的间隔会得到下面的推荐值:W_SETUP=2hW_STROBE=6hW_H

18、OLD=1hR_SETUP=1hR_STROBE=BhR_HOLD=3hTA=3h,Flash 编程命令字及顺序,FLASH写入流程,外部存储器读写示例,程序类型:汇编程序直接寄存器操作的C语言程序基于CSL的C语言程序基于DSP/BIOS的C语言程序SDRAM 读写示例 示例0301Flash 读写示例 示例0302,基于芯片支持库(CSL)的C语言程序,为什么要设计CSLDSP片上外设种类及其应用日趋复杂提供一组标准的方法用于访问和控制片上外设免除用户编写配置和控制片上外设所必需的定义和代码什么是CSL:Chip Support Library用于配置、控制和管理DSP片上外设已为C600

19、0和C5000系列DSP设计了各自的CSL库CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响,CSL 的特点,片上外设编程的标准协议:定义一组标准的APIs:函数、数据类型、宏对硬件进行抽象,提取符号化的片上外设描述定义一组宏,用于访问和建立寄存器及其域值基本的资源管理对多资源的片上外设进行管理已集成到DSP/BIOS中通过图形用户接口GUI对CSL进行配置使片上外设容易使用缩短开发时间,增加可移植性,CSL 的结构,CSL

20、中,每一个外设都有一个对应的API模块,如:直接存取器存取(EDMA)API模块多通道缓冲串行端口(MsBCP)API模块这种结构允许对CSL进行扩展,因为可以添加新的API模块作为新的外设形式。,通用外设模块,外设(PER)描述 Include File Module Support SymbolEDMA Enhanced direct memory access module csl_edma.h EDMA_SUPPORT EMIF External memory interface module csl_emif.h EMIF_SUPPORT GPIO General-Purpose i

21、nput/output module csl_gpio.h GPIO_SUPPORTHPI Host port interface module csl_hpi.h HPI_SUPPORT I2C InterIntegrated circuit module csl_i2c.h I2C_SUPPORT IRQ Interrupt controller module csl_irq.h IRQ_SUPPORT McASP Multichannel audio serial port module csl_mcasp.h MCASP_SUPPORT McBSP Multichannel buffe

22、red serial port module csl_mcbsp.h MCBSP_SUPPORT TIMER Timer module csl_timer.h TIMER_SUPPORT,CSL 命名规则和数据类型,对象类型 名称 Naming Convention Function PER_funcName()Variable PER_varNameMacro PER_MACRO_NAMETypedef PER_TypenameFunction Argument funcArg Structure Member memberName,Data Type Description Uint8 u

23、nsigned char Uint16 unsigned short Uint32 unsigned int Uint40 unsigned long Int8 char Int16 short Int32 int Int40 long,通用的CSL 函数,handle=PER_open(channelNumber,priority flags)功能:打开一个外设 通道,根据标志执行相应的操作。使用通道前必须调用此函数,返回一个唯一的设备句柄用于后续API调用。优先级(priority)参数仅适用于DAT模块。PER_config(handle,*configStructure)功能:将配置结

24、构的值写入外设寄存器。使用整型常量、整型变量、CSL符号常量 PER_REG_DEFAULT、PER_REG_RMK宏生成的合并域值进行初始化。PER_configArgs(handle,regval_1,.regval_n)功能:写值(regval_n)到外设寄存器。可写值包括:整型常量、整型变量、CSL符号常量 PER_REG_DEFAULT、PER_REG_RMK宏生成的合并域值。PER_reset(handle)功能:复位外设,将其所有值恢复到上电缺省值。PER_close(handle)功能:关闭由PER_open()函数打开的外设通道。通道寄存器恢复上电初始值,清除所有未执行的中断

25、。,通过寄存器来实现外设初始化,CSL提供了两种函数来初始化外设的寄存器:1、PER-config()用来初始化控制PER 外设的寄存器,其中PER 是CSL模块之一。这个函数需要一个地址来作为他的参数。这个地址指出了这个结构的位置,他代表了外设寄存器的值。每一个外设模块都定义了他的配置结构数据类型,包括PER-config()函数。PER_Config MyConfig=reg0,reg1,;PER_config(,通用CSL宏,1、PER 表示外设,如 EDMA2、REG 表示寄存器名,如PRICTL0,AUXCTL3、FIELD 表示寄存器域,如 ESIZE4、regval 表示外设域生

26、成宏PER-FMK()产生的整型常量,整型变量,符号常量(PER_REG_DEFAULT),或者融合域值5、fieldval 表示的是整常量,整型变量,或者符号常数(PER_REG_FIELD_SYMVAL)6、x 表示整型常量,整型变量7、sym 表示符号常量,通用CSL宏,PER_REG_RMK(fieldval_n,.fieldval_0)功能:产生外设寄存器值;_RMK宏基于位域,使构建寄存器值变得很简单。_RMK宏使用规则:域必须可写。首先指定域参数的最高有效位(MSB),不管用到与否,必须包含所有可写域的值。如果所传值超出特定域所允许的位宽,_RMK宏将截断该域值。PER_RGET

27、(REG)功能:返回外设寄存器值。PER_RSET(REG,regval)功能:将值写入外设寄存器。PER_FMK(REG,FIELD,fieldval)功能:可与其他_FMK宏的结果进行或(OR)操作后,生成移位的 fieldval 值,对REG寄存器进行初始化。作为_RMK宏的替代者,该宏允许初始化REG寄存器中的几个域,而不像_RMK宏那样必须初始化REG寄存器的所有域。PER_FGET(REG,FIELD)功能:返回外设寄存中指定域(FIELD)的值。PER_FSET(REG,FIELD,fieldval)功能:将 fieldval写入外设寄存器中指定域(FIELD)。PER_REG_

28、ADDR(REG)功能:如果可用,取得外设寄存器(REG)的内存地址(或子地址)PER_FSETS(REG,FIELD,sym)功能:将符号值写入外设指定域中。PER_FMKS(REG,FIELD,sym macro)功能:可与其他_FMK/_FMKS宏的结果进行或(OR)操作,生成移位的符号值,对REG寄存器进行初始化。,通用CSL宏,PER_ADDRH(h,REG)Returns the address of a memory-mapped register for a given handle.PER_RGETH(h,REG)Returns the value of a register

29、 for a given handle.PER_RSETH(h,REG,x)Sets the register value to x for a given handle.PER_FGETH(h,REG,FIELD)Returns the value of the field for a given handle.PER_FSETH(h,REG,FIELD,x)Sets the field value to x for a given handle.PER_FSETSH(h,REG,FIELD,SYM)Sets the field value to the symbol value for a

30、 given handle.,CSL符号常量值,PER_REG_DEFAULT 寄存器的缺省值,复位操作后对应的寄存器值或者复位失效后归零。PER_REG_FIELD_SYMVAL 该符号常量用于指定特定外设寄存器中某个域的值。符号值的详细信息请参见附录B:CSL Registers PER_REG_FIELD_DEFAULT 域的缺省值,复位操作后对应的寄存器值或者复位失效后归零。,使用CSL句柄,使用函数PER_open()来打开设备,获得一个句柄 Handle,若打开设备失败,那么PER_open()函数返回 INV。使用函数PER_close()来关闭设备。EDMA_Handle my

31、Edma;/*Defines a DMA_Handle object,myEdma*/*Once defined,the CSL handle object is initialized by a call to PER_open.*/myEdma=EDMA_open(EDMA_CHA0,EDMA_OPEN_RESET);/*Open EDMA channel 0*/*The call to DMA_open initializes the handle,myDma.This handle can then beused in calls to other API functions.*/if(myEdma!=INV)EDMA_start(myEdma);/*Begin transfer*/EDMA_close(myEdma);/*Free DMA channel*/,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号