dsp原理与应用第3章 emif_第1页
dsp原理与应用第3章 emif_第2页
dsp原理与应用第3章 emif_第3页
dsp原理与应用第3章 emif_第4页
dsp原理与应用第3章 emif_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 外部存储器接口外部存储器接口(EMIF) 3.1 概述概述 EMIF(External Memory Interface)外部存储器接口的用途外部存储器接口的用途 为为DSP芯片与众多外部设备之间提供一种连接方式,芯片与众多外部设备之间提供一种连接方式,EMIF 最常见的用途就是同时连接最常见的用途就是同时连接FLASH和和SDRAM。 EMIF性能优良,跟外部性能优良,跟外部SDRAM和异步器件连接时,具有和异步器件连接时,具有 很大的方便性和灵活性。根据很大的方便性和灵活性。根据DSP器件的不同,器件的不同,EMIF数据数据 总线可以是总线可以是32位或位或16位的。位的。

2、SRAM vs DRAM uSRAM是是Static Random Access Memory的缩写,中文含义为静态的缩写,中文含义为静态 随机访问存储器,它是一种类型的半导体存储器。随机访问存储器,它是一种类型的半导体存储器。“静态静态”是指只要是指只要 不掉电,存储在不掉电,存储在SRAM中的数据就不会丢失。这一点与中的数据就不会丢失。这一点与DRAM不同,不同, DRAM需要进行周期性的刷新操作。需要进行周期性的刷新操作。 同时,我们不应将同时,我们不应将SRAM与只与只 读存储器读存储器(ROM)和和Flash Memory相混淆,因为相混淆,因为SRAM是一种易失性是一种易失性 存储

3、器,它只有在电源保持连续供应的情况下才能够保持数据。存储器,它只有在电源保持连续供应的情况下才能够保持数据。“随随 机访问机访问”是指存储器的内容可以任意顺序访问,而不管前一次访问的是指存储器的内容可以任意顺序访问,而不管前一次访问的 是哪一个位置。是哪一个位置。 uDRAM是是Dynamic RAM的缩写,中文含义为的缩写,中文含义为动态随机存取存储器,动态随机存取存储器, 需要不断的刷新,才能保存数据。而且是行列地址复用的,许多都有需要不断的刷新,才能保存数据。而且是行列地址复用的,许多都有 页模式。页模式。SDRAM:Synchronous DRAM,即数据的读写需要时钟,即数据的读写需

4、要时钟 来同步。来同步。 u一个是静态的,一个是动态的,静态的是用的双稳态触发器来保存信一个是静态的,一个是动态的,静态的是用的双稳态触发器来保存信 息,而动态的是用电子,要不时的刷新来保持。息,而动态的是用电子,要不时的刷新来保持。 uDRAM容量大,容量大,SRAM容量小容量小 SDRAM的结构的结构 Flash-ROM(闪存)已经成为了目前最成功、流行的一种固态内存,与(闪存)已经成为了目前最成功、流行的一种固态内存,与 EEPROM 相比具有读写速度快,而与相比具有读写速度快,而与 SRAM 相比具有非易失、以及价廉等优相比具有非易失、以及价廉等优 势。而基于势。而基于 NOR 和和

5、NAND 结构的闪存是现在市场上两种主要的非易失闪存技结构的闪存是现在市场上两种主要的非易失闪存技 术。术。 Intel 于于 1988 年首先开发出年首先开发出 NOR flash 技术,彻底改变了原先由技术,彻底改变了原先由 EPROM 和和 EEPROM 一统天下的局面。紧接着,一统天下的局面。紧接着,1989 年东芝公司发表了年东芝公司发表了 NAND flash 技术(后将该技术无偿转让给韩国技术(后将该技术无偿转让给韩国Samsung公司),强调降低每比特的成公司),强调降低每比特的成 本,更高的性能,并且象磁盘一样可以通过接口轻松升级。本,更高的性能,并且象磁盘一样可以通过接口轻

6、松升级。 NOR 的特点是芯片内执行(的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直),这样应用程序可以直 接在闪存内运行,不必再把代码读到系统接在闪存内运行,不必再把代码读到系统 RAM 中。中。NOR 的传输效率很高,在的传输效率很高,在 14MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影 响了它的性能。响了它的性能。 NAND 结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的 速度也很快,这也是为何

7、所有的速度也很快,这也是为何所有的 U 盘都使用盘都使用 NAND 闪存做为存储介质的原因。闪存做为存储介质的原因。 应用应用 NAND 的困难在于需要特殊的系统接口。的困难在于需要特殊的系统接口。 FLASH ROM NAND flash和和NOR flash的对比的对比 性能比较性能比较 闪存是非易失内存,可以对称为块的内存单元块进行擦写闪存是非易失内存,可以对称为块的内存单元块进行擦写 和再编程。任何闪存器件的写入操作只能在空或已擦除的和再编程。任何闪存器件的写入操作只能在空或已擦除的 单元内进行,所以大多数情况下,在进行写入操作之前必单元内进行,所以大多数情况下,在进行写入操作之前必

8、须先执行擦除。须先执行擦除。 NAND器件执行擦除操作是十分简单的,而器件执行擦除操作是十分简单的,而NOR则要求在则要求在 进行擦除前先要将目标块内所有的位都写为进行擦除前先要将目标块内所有的位都写为0。由于擦除。由于擦除 NOR器件时是以器件时是以64128KB的块进行的,执行一个写入的块进行的,执行一个写入/擦擦 除操作的时间为除操作的时间为5s,与此相反,擦除,与此相反,擦除NAND器件是以器件是以8 32KB的块进行的,执行相同的操作最多只需要的块进行的,执行相同的操作最多只需要4ms。 接口差别接口差别 NOR 闪存带有闪存带有SRAM接口,有足够的地址引脚来寻址,可接口,有足够的

9、地址引脚来寻址,可 以很容易地存取其内部的每一个字节。以很容易地存取其内部的每一个字节。 NAND闪存使用复杂的闪存使用复杂的I/O口来串行地存取资料,各个产品口来串行地存取资料,各个产品 或厂商的方法可能各不相同。或厂商的方法可能各不相同。8个引脚用来传送控制、地个引脚用来传送控制、地 址和资料信息。址和资料信息。NAND读和写操作采用读和写操作采用512字节的块,这字节的块,这 一点有点像硬盘管理此类操作,很自然地,基于一点有点像硬盘管理此类操作,很自然地,基于NAND的的 闪存就可以取代硬盘或其它块设备。闪存就可以取代硬盘或其它块设备。 NAND flash和和NOR flash的对比的

10、对比 容量和成本容量和成本 NAND 闪存的单元尺寸几乎是闪存的单元尺寸几乎是NOR闪存的一半,由于生产闪存的一半,由于生产 过程更为简单,过程更为简单,NAND结构可以在给定的模具尺寸内提供结构可以在给定的模具尺寸内提供 更高的容量,也就相应地降低了价格。更高的容量,也就相应地降低了价格。 NOR 闪存容量为闪存容量为116MB,而,而NAND 闪存只是用在闪存只是用在8MB 以上的产品当中,这也说明以上的产品当中,这也说明NOR主要应用在代码存储介质主要应用在代码存储介质 中,中,NAND适合于资料存储,适合于资料存储,NAND在在 CompactFlash、 Secure Digital

11、、PC Cards和和MMC存储卡市场上所占份额存储卡市场上所占份额 最大。最大。 NAND flash和和NOR flash的对比的对比 可靠性和耐用性可靠性和耐用性 寿命寿命(耐用性耐用性):在:在NAND闪存中每个块的最大擦写次数是闪存中每个块的最大擦写次数是 一百万次,而一百万次,而NOR的擦写次数是十万次。的擦写次数是十万次。 位交换位交换:位反转的问题更多见于:位反转的问题更多见于NAND闪存,如果用来闪存,如果用来 存储操作系统、配置文件或其它敏感信息时,必须使用存储操作系统、配置文件或其它敏感信息时,必须使用 EDC/ECC算法以确保可靠性。算法以确保可靠性。 坏块处理坏块处理

12、:NAND器件中的坏块是随机分布的,需要对器件中的坏块是随机分布的,需要对 介质进行初始化扫描以发现坏块,并将坏块标记为不可介质进行初始化扫描以发现坏块,并将坏块标记为不可 用。用。 NAND flash和和NOR flash的对比的对比 易于使用易于使用 可以非常直接地使用基于可以非常直接地使用基于NOR的闪存,可以像其它内存那的闪存,可以像其它内存那 样连接,并可以在上面直接运行代码。样连接,并可以在上面直接运行代码。 由于需要由于需要I/O接口,接口,NAND要复杂得多。各种要复杂得多。各种NAND器件的器件的 存取方法因厂家而异。在使用存取方法因厂家而异。在使用NAND器件时,必须先写

13、入器件时,必须先写入 驱动程序,才能继续执行其它操作。向驱动程序,才能继续执行其它操作。向NAND器件写入信器件写入信 息需要相当的技巧,因为设计师绝不能向坏块写入,这就息需要相当的技巧,因为设计师绝不能向坏块写入,这就 意味着在意味着在NAND器件上自始至终都必须进行虚拟映像。器件上自始至终都必须进行虚拟映像。 NAND flash和和NOR flash的对比的对比 3.2 EMIF寄存器寄存器 偏移量偏移量 缩写缩写 说明说明 04h AWCCR 异步等待周期配置寄存器异步等待周期配置寄存器 08h SDCR SDRAM配置寄存器配置寄存器 0Ch SDRCR SDRAM刷新控制寄存器刷新

14、控制寄存器 10h A1CR 异步异步1配置寄存器配置寄存器 20h SDTIMR SDRAM时序寄存器时序寄存器 3Ch SDSRETR SDRAM自刷新退出时序寄存器自刷新退出时序寄存器 40h EIRR EMIF中断寄存器中断寄存器44h EIMREMIF中断屏蔽寄存器中断屏蔽寄存器 48h EIMSR EMIF中断屏蔽设置寄存器中断屏蔽设置寄存器 4Ch EIMCR EMIF中断屏蔽清除寄存器中断屏蔽清除寄存器 60h NANDFCR NAND Flash控制寄存器控制寄存器 64h NANDFSR NAND Flash状态寄存器状态寄存器 70h NANDF1ECC NAND Fla

15、sh1纠错码寄存器纠错码寄存器(CS2空间空间) 3.3 EMIF结构和操作结构和操作 3.3.1 EMIF引脚描述引脚描述 1、SDRAM专用专用EMIF引脚引脚 2、异步储存器专用引脚、异步储存器专用引脚 3、访问、访问SDRAM和异步和异步 存储器的存储器的EMIF引脚引脚 3.3 EMIF结构和操作结构和操作 访问访问SDRAM和异步存储器的和异步存储器的EMIF引脚引脚 引脚引脚I/O 功能描述功能描述 EM_Dx:0 I/O EMIF数据总线数据总线 不同器件的数据总线宽度不同,请参考器件的数据手册。不同器件的数据总线宽度不同,请参考器件的数据手册。 EM_ Ax:0 O EMIF

16、地址总线地址总线 当与当与SDRAM器件连接时,地址总线主要为器件连接时,地址总线主要为SDRAM提供行地址和列地址。提供行地址和列地址。 当与异步器件连接时,这些引脚与当与异步器件连接时,这些引脚与EM_BA引脚共同形成送到器件的地址。引脚共同形成送到器件的地址。 EM_BA1:0O EMIF存储区地址线存储区地址线 当与当与SDRAM连接时,为连接时,为SDRAM提供存储区地址。提供存储区地址。 当与异步器件连接时,这些引脚与当与异步器件连接时,这些引脚与EM_A引脚共同形成送到器件的地址。引脚共同形成送到器件的地址。 EM_WE_DQMx:0 O 低电平有效写触发或字节使能引脚低电平有效

17、写触发或字节使能引脚 与与SDRAM器件连接时,这些引脚与器件连接时,这些引脚与SDRAM的的DQM引脚相连,在数据访问引脚相连,在数据访问 中分别使能中分别使能/禁用每一字节。禁用每一字节。 与异步器件连接时,这些引脚可作为字节使能与异步器件连接时,这些引脚可作为字节使能(DQM)或字节写触发或字节写触发(WE)。 EM_WE O 低电平有效写使能引脚低电平有效写使能引脚 与与SDRAM器件连接时,此引脚与器件连接时,此引脚与SDRAM的的WE引脚相连用于向器件发送引脚相连用于向器件发送 命令。命令。 与异步器件连接时,在异步写访问周期,提供一低电平信号。与异步器件连接时,在异步写访问周期,

18、提供一低电平信号。 3.3 EMIF结构和操作结构和操作 SDRAM专用专用EMIF引脚引脚 引脚引脚I/O功能描述功能描述 EM_CS0 OSDRAM器件低电平有效芯片使能引脚器件低电平有效芯片使能引脚 该引脚与该引脚与SDRAM器件的片选引脚连接,用于使能器件的片选引脚连接,用于使能/禁用命令。即使禁用命令。即使EMIF 没有连接没有连接SDRAM器件,缺省情况下它也保持此器件,缺省情况下它也保持此SDRAM的片选有效。当访的片选有效。当访 问异步存储区时此引脚失效,在完成异步存取后自动恢复其功能。问异步存储区时此引脚失效,在完成异步存取后自动恢复其功能。 EM_RAS O低电平有效行地址

19、选通引脚低电平有效行地址选通引脚 此引脚连接在此引脚连接在SDRAM器件的器件的RAS引脚上,用于向此器件发送命令。引脚上,用于向此器件发送命令。 EM_CAS O低电平有效列地址选通引脚低电平有效列地址选通引脚 此引脚连接在此引脚连接在SDRAM器件的器件的CAS引脚上,用于向此器件发送命令。引脚上,用于向此器件发送命令。 EM_CKE O 时钟使能引脚时钟使能引脚 此引脚连接在此引脚连接在SDRAM器件的器件的CKE引脚上,发出自刷新命令使器件进入自引脚上,发出自刷新命令使器件进入自 刷新模式。刷新模式。 EM_CLK O SDRAM时钟引脚时钟引脚 此引脚与此引脚与SDRAM器件的器件的

20、CLK相连。相连。 3.3 EMIF结构和操作结构和操作 异步储存器专用引脚异步储存器专用引脚 引脚引脚I/O 功能描述功能描述 EM_CS2 O 低电平有效异步器件使能引脚低电平有效异步器件使能引脚 此引脚与异步器件的片选引脚相连接。它仅在访问异步存储器时有效。此引脚与异步器件的片选引脚相连接。它仅在访问异步存储器时有效。 EM_WAIT I 可编程极性等待输入引脚可编程极性等待输入引脚/ NAND Flash准备好输入引脚准备好输入引脚 EMIF接口中插入接口中插入EM_WAIT等待可以扩展异步器件访问的触发周期。等待可以扩展异步器件访问的触发周期。 为了实现这一功能,异步为了实现这一功能

21、,异步1配置寄存器配置寄存器(A1CR)的的EW位必须置位必须置1。另外,。另外, 必须配置必须配置A1CR的的WP0位来定义位来定义EM_WAIT脚的极性。并不是所有器件上脚的极性。并不是所有器件上 都有都有EM_WAIT引脚,详细内容可以参考器件数据手册。当引脚,详细内容可以参考器件数据手册。当NAND Flash 控制寄存器控制寄存器(NANDFCR)的的CS2NAND位被置位时,此引脚作为位被置位时,此引脚作为NAND Flash准备好输入引脚。准备好输入引脚。 EM_OE O 低电平有效异步器件使能引脚低电平有效异步器件使能引脚 此引脚在异步读访问的触发周期提供一个低电平信号。此引脚

22、在异步读访问的触发周期提供一个低电平信号。 EM_RW O 读读/写选择引脚写选择引脚 此引脚在异步读取的整个周期呈现高电平,写入周期呈现低电平。此引脚在异步读取的整个周期呈现高电平,写入周期呈现低电平。 3.3.2 时钟控制时钟控制 EMIF 的内部时钟来自的内部时钟来自DSP 的锁相环的锁相环(PLL)控制器的控制器的 SYSCLK3时钟模块,不能直接利用外部输入时钟。时钟模块,不能直接利用外部输入时钟。 SYSCLK3时钟模块的频率通过对锁相环控制器的乘法器和时钟模块的频率通过对锁相环控制器的乘法器和 除法器的设置来进行控制。除法器的设置来进行控制。 EMIF的时钟是通过的时钟是通过EM

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

24、可通过编程来设定,如刷新速率, CAS延迟和很多延迟和很多SDRAM时序参数,这样就提供了很大的灵活性。时序参数,这样就提供了很大的灵活性。 EMIF支持与具有下列特点的支持与具有下列特点的SDRAM器件的无缝连接:器件的无缝连接: Pre-charge 位为位为A10 列地址位数为列地址位数为8、9或或10 行地址位数根据行地址位数根据DSP器件不同可以变化:器件不同可以变化: 对于有对于有12位位EMIF地址引脚的地址引脚的DSP:11或或12位行地址位位行地址位 对于有对于有13位位EMIF地址引脚的地址引脚的DSP:11、12或或13位行地址位位行地址位 内部存储区数为内部存储区数为1

25、、2或或4 EMIF与与2Mx16x4 SDRAM的连接图的连接图 EMIF与与2Mx32x4 SDRAM的连接图的连接图 EMIF与双与双4Mx16x4 SDRAM的连接图的连接图 SDRAM读操作读操作 当当EMIF收到任何一个收到任何一个SDRAM的读操作请求时,就会进行一的读操作请求时,就会进行一 个或多个读访问。个或多个读访问。 当当EMIF收到任何一个收到任何一个SDRAM的写操作请求时,的写操作请求时,EMIF就会就会 进行一个或多个写访问操作。进行一个或多个写访问操作。 SDRAM写操作写操作 3.3.5 异步控制器和接口异步控制器和接口 uEMIF可以很容易的与各种异步器件直

26、接连接,这些异步可以很容易的与各种异步器件直接连接,这些异步 器件包括器件包括NOR Flash,NAND Flash和和 SRAM。 u两种主要运行模式的对比两种主要运行模式的对比 : 触发模式触发模式EM_WE_DQM引脚功能引脚功能EM_CS2 的操作的操作 WE 触发模式触发模式写触发写触发 异步访问期间一直处于激活异步访问期间一直处于激活 状态状态 选择触发模式选择触发模式字节使能字节使能 仅在一个访问中的触发阶段仅在一个访问中的触发阶段 是被激活的是被激活的 1. 异步存储器接口异步存储器接口 EMIF的地址引脚的地址引脚EM_Ax:0给出的给出的 一般是一般是32位字地址的最低有

27、效位。位字地址的最低有效位。 BA1:0引脚或者给出半字和字节选引脚或者给出半字和字节选 择信号,或者给出择信号,或者给出EM_A23:22的的 信号,这取决于异步信号,这取决于异步1 配置寄存器配置寄存器 (A1CR)中数据总线宽度的配置。中数据总线宽度的配置。 3.3.5 异步控制器和接口异步控制器和接口 1. 异步存储器接口异步存储器接口 a) EMIF与与8位存储器的接口位存储器的接口 u注意地址线连接方式的变注意地址线连接方式的变 化化 b) EMIF与与16位存储器的接口位存储器的接口 注意地址线连接方式的变化注意地址线连接方式的变化 c) EMIF与与32位存储器的接口位存储器的

28、接口 3.3.5 异步控制器和接口异步控制器和接口 图图a 给出了给出了EMIF与一个字节使能的外部存与一个字节使能的外部存 储器的接口图。使用这个接口时储器的接口图。使用这个接口时EMIF要工要工 作在作在选择触发模式选择触发模式,这样,这样EM_WE_DQM就就 作为字节使能端工作。作为字节使能端工作。 图图b给出了当给出了当EMIF同一个字节使能的外部存同一个字节使能的外部存 储器的接口时,也可以处于储器的接口时,也可以处于WE触发模式,触发模式, 但是此时但是此时BE1:0要被置为低电平,而不是要被置为低电平,而不是 跟跟EM_WE_DQM1:0引脚相连。在这种接引脚相连。在这种接 口

29、状态下,不能进行字节写操作。口状态下,不能进行字节写操作。 图图c EMIF同多个同多个8位存储器的接口图。在这位存储器的接口图。在这 种情况下,种情况下,EM_WE_DQM信号跟存储器的信号跟存储器的 WE相连,使用这个接口时相连,使用这个接口时EMIF要工作在要工作在 WE触发模式,这样就可以对外部存储器进触发模式,这样就可以对外部存储器进 行字节操作。行字节操作。 3.3.5 异步控制器和接口异步控制器和接口 异步异步1配置寄存器配置寄存器(A1CR) 参数参数说明说明 SS 选择触发模式。选择触发模式。SS = 0时选择时选择WE触发模式,触发模式,SS = 1时选择触发模式时选择触发

30、模式 W_SETUP/R_SETUP 读读/写建立时间宽度写建立时间宽度 这些位定义了地址引脚这些位定义了地址引脚(EM_A 和和 EM_BA),字节使能,字节使能 (EM_WE_DQM),异步片选使能,异步片选使能(EM_CS2)在读触发在读触发(ARE)和写触和写触 发发(EM_WE)信号下落前的信号下落前的EMIF时钟周期数,至少一个时钟周期。时钟周期数,至少一个时钟周期。 W_STROBE/R_STROBE 读读/写触发时间宽度写触发时间宽度 这些位定义了读触发引脚这些位定义了读触发引脚(ARE)和写触发引脚和写触发引脚(ARE)上升沿和下降上升沿和下降 沿之间的沿之间的EMIF时钟周

31、期数,至少一个时钟周期。时钟周期数,至少一个时钟周期。 W_HOLD/R_HOLD 读写保持时间宽度读写保持时间宽度 这些位定义了地址引脚这些位定义了地址引脚(EM_A 和和 EM_BA),字节使能,字节使能 (EM_WE_DQM),异步片选使能,异步片选使能(EM_CS2)在读触发在读触发(ARE)和写触和写触 发发(EM_WE)信号上升前的信号上升前的EMIF时钟周期数,至少一个时钟周期。时钟周期数,至少一个时钟周期。 ASIZE 异步器件数据总线宽度异步器件数据总线宽度 ASIZE = 0时选择时选择8位总线位总线 ASIZE = 1时选择时选择16位总线位总线 ASIZE = 2时选择

32、时选择32位总线位总线 配置配置ASIZE位确定了位确定了EM_A和和EM_BA引脚的功能。引脚的功能。 3.3.5 异步控制器和接口异步控制器和接口 3.3.5 异步控制器和接口异步控制器和接口 WE触发模式下异步读周期的时序触发模式下异步读周期的时序 3.3.5 异步控制器和接口异步控制器和接口 WE触发模式下异步写周期的时序触发模式下异步写周期的时序 3.3.5 异步控制器和接口异步控制器和接口 选择触发模式下异步读周期的时序选择触发模式下异步读周期的时序 3.3.5 异步控制器和接口异步控制器和接口 选择触发模式下异步写周期的时序选择触发模式下异步写周期的时序 EMIF与SDRM和Fl

33、ash的 硬件连接图 Flash有三个地址输入源 采用轮询法对Flash编程 和擦除 EM_WE引脚接到了Flash 的WE输入端,EMIF运行 在选择触发模式下 3.4 配置举例配置举例 SDRAM接口配置接口配置 1). 对对PLL的编程的编程 2). SDRAM时序寄存器时序寄存器(SDTIMR)的设置的设置 字段字段公式公式SDRAM数据手册上的值数据手册上的值计算值计算值 T_RFC T_RFC = (tRFC*fEM_CLK) -1 tRFC = 68 ns (min)6 T_RP T_RP = (tRP*fEM_CLK) -1 tRP = 20 ns (min) 1 T_RCD

34、T_RCD = (tRCD*fEM_CLK) -1 tRCD = 20 ns (min) 1 T_WR T_WR = (tWR*fEM_CLK) -1 tWR = 2 CLK = 20ns (min)1 T_RAS T_RAS = (tRAS*fEM_CLK) -1 tRAS = 49 ns (min) 4 T_RC T_RC = (tRC*fEM_CLK) -1 tRC = 68 ns (min) 6 T_RRD T_RRD = (tRRD*fEM_CLK) -1 tRRD = 14 ns (min) 1 68 . 51101001068_ 69 RFCT SDRAM接口配置接口配置 3).

35、 SDRAM自刷新退出时序寄存器自刷新退出时序寄存器(SDSRETR)的设置的设置 字段字段公式公式SDRAM数据手册上的值数据手册上的值计算值计算值 T_XS T_XS = (tXSR*fEM_CLK) -1 tRC = 68 ns (min)6 SDRAM接口配置接口配置 4). SDRAM刷新控制寄存器刷新控制寄存器(SDRCR)的设置的设置 字段字段公式公式SDRAM数据手册数值数据手册数值计算值计算值 RR RR = (tD + tELQV + tSU) * fEM_CLK - 1 = (7ns + 90ns + 6.5ns) * 100MHz - 1= 9.35 R_HOLD =

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

37、限制,要对W_STROBE字段进行设置:字段进行设置: W_STROBE = tELEH * fEM_CLK 1 = 50ns * 100MHz 1 = 4 当连续操作时,当连续操作时,W_SETUP 与与 W_HOLD字段结合起来满足字段结合起来满足Flash CE脉冲宽度的限制脉冲宽度的限制tEHEL: W_SETUP + W_HOLD = tEHEL * fEM_CLK 2 = 30ns * 100MHz 2 = 1 另外,整个写访问长度必须满足另外,整个写访问长度必须满足Flash的最小写周期时间的最小写周期时间(tAVAV)的要求:的要求: W_SETUP + W_STROBE +

38、W_HOLD = tAVAV * fEM_CLK 3 = 90ns * 100MHz 3 = 6 在写操作时,通过解上面的方程,求得各字段的值为:在写操作时,通过解上面的方程,求得各字段的值为: W_SETUP = 1 W_STROBE = 5 W_HOLD = 0 Flash 接口配置接口配置 在这个例子中,在每个周期在这个例子中,在每个周期(除了除了TA早就达到最大值早就达到最大值)之间加入之间加入10ns(1个周期个周期)的间隔会得到下面的推荐值:的间隔会得到下面的推荐值: W_SETUP = 2h W_STROBE = 6h W_HOLD = 1h R_SETUP = 1h R_STR

39、OBE = Bh R_HOLD = 3h TA = 3h 命令顺序命令顺序 第第1写周期写周期第第2写周期写周期第第3写周期写周期第第4写周期写周期第第5写周期写周期第第6写周期写周期 地址地址数据数据地址地址数据数据地址地址数据数据地址地址数据数据地址地址数据数据地址地址数据数据 写入字写入字5555H AAH 2AAAH 55H 5555H A0H 写入地址写入地址Data 扇区擦除扇区擦除5555H AAH 2AAAH 55H 5555H 80H 5555H AAH 2AAAH 55H SAX30H 块擦除块擦除5555H AAH 2AAAH 55H 5555H 80H 5555H AA

40、H 2AAAH 55H BAX 50H 芯片擦除芯片擦除5555H AAH 2AAAH 55H 5555H 80H 5555H AAH 2AAAH 55H 5555H 10H 软件软件ID入口入口5555H AAH 2AAAH 55H 5555H 90H CFI查询入口查询入口5555H AAH 2AAAH 55H 5555H 98H 软件软件ID退出退出/ CFI退退 出出 XXH F0H 软件软件ID退出退出/ CFI退退 出出 5555H AAH 2AAAH 55H 5555H F0H Flash 编程命令字及顺序编程命令字及顺序 FLASH写入流程写入流程 外部存储器读写示例外部存储器

41、读写示例 程序类型:程序类型: u汇编程序汇编程序 u直接寄存器操作的直接寄存器操作的C语言程序语言程序 u基于基于CSL的的C语言程序语言程序 u基于基于DSP/BIOS的的C语言程序语言程序 SDRAM 读写示例读写示例 示例示例0301 Flash 读写示例读写示例 示例示例0302 基于芯片支持库基于芯片支持库(CSL)的的C语言程序语言程序 u为什么要设计为什么要设计CSL DSP片上外设种类及其应用日趋复杂片上外设种类及其应用日趋复杂 提供一组标准的方法用于访问和控制片上外设提供一组标准的方法用于访问和控制片上外设 免除用户编写配置和控制片上外设所必需的定义和代码免除用户编写配置和

42、控制片上外设所必需的定义和代码 u什么是什么是CSL:Chip Support Library 用于配置、控制和管理用于配置、控制和管理DSP片上外设片上外设 已为已为C6000和和C5000系列系列DSP设计了各自的设计了各自的CSL库库 CSL库函数大多数是用库函数大多数是用C语言编写的,并已对代码的大小和速度进行语言编写的,并已对代码的大小和速度进行 了优化了优化 CSL库是可裁剪的:即只有被使用的库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序模块才会包含进应用程序 中中 CSL库是可扩展的:每个片上外设的库是可扩展的:每个片上外设的API相互独立,增加新的相互独立,增加新的A

43、PI, 对其他片上外设没有影响对其他片上外设没有影响 CSL 的特点的特点 u片上外设编程的标准协议:片上外设编程的标准协议: 定义一组标准的定义一组标准的APIs:函数、数据类型、宏:函数、数据类型、宏 u对硬件进行抽象,提取符号化的片上外设描述对硬件进行抽象,提取符号化的片上外设描述 定义一组宏,用于访问和建立寄存器及其域值定义一组宏,用于访问和建立寄存器及其域值 u基本的资源管理基本的资源管理 对多资源的片上外设进行管理对多资源的片上外设进行管理 u已集成到已集成到DSP/BIOS中中 通过图形用户接口通过图形用户接口GUI对对CSL进行配置进行配置 u使片上外设容易使用使片上外设容易使

44、用 缩短开发时间,增加可移植性缩短开发时间,增加可移植性 CSL 的结构的结构 CSL中,中,每一个外设都有一个对应的每一个外设都有一个对应的API模块,如:模块,如: 直接存取器存取(直接存取器存取(EDMA)API模块模块 多通道缓冲串行端口(多通道缓冲串行端口(MsBCP)API模块模块 这种结构允许对这种结构允许对CSL进行扩展,因为可以添加新的进行扩展,因为可以添加新的API模块作为新的外设形式模块作为新的外设形式 。 通用外设模块通用外设模块 外设外设 (PER) 描述描述 Include File Module Support Symbol EDMA Enhanced direc

45、t memory access module csl_edma.h EDMA_SUPPORT EMIF External memory interface module csl_emif.h EMIF_SUPPORT GPIO General-Purpose input/output module csl_gpio.h GPIO_SUPPORT HPI Host port interface module csl_hpi.h HPI_SUPPORT I2C InterIntegrated circuit module csl_i2c.h I2C_SUPPORT IRQ Interrupt co

46、ntroller module csl_irq.h IRQ_SUPPORT McASP Multichannel audio serial port module csl_mcasp.h MCASP_SUPPORT McBSP Multichannel buffered serial port module csl_mcbsp.h MCBSP_SUPPORT TIMER Timer module csl_timer.h TIMER_SUPPORT CSL 命名规则和数据类型命名规则和数据类型 对象类型对象类型 名称名称 Naming Convention Function PER_funcNa

47、me() Variable PER_varName Macro PER_MACRO_NAME Typedef PER_Typename Function Argument funcArg Structure Member memberName Data Type Description Uint8 unsigned char Uint16 unsigned short Uint32 unsigned int Uint40 unsigned long Int8 char Int16 short Int32 int Int40 long 通用的通用的CSL 函数函数 handle = PER_op

48、en( channelNumber, priority flags ) 功能:打开一个外设功能:打开一个外设 通道,根据标志执行相应的操作。使用通道前必须调用此函数,返回一个唯一的通道,根据标志执行相应的操作。使用通道前必须调用此函数,返回一个唯一的 设备句柄用于后续设备句柄用于后续API调用。优先级调用。优先级(priority)参数仅适用于参数仅适用于DAT模块。模块。 PER_config( handle, *configStructure ) 功能:将配置结构的值写入外设寄存器。使用整型常量、整型变量、功能:将配置结构的值写入外设寄存器。使用整型常量、整型变量、CSL符号常量符号常量

49、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 ) 功能:复位外设,将其所有值恢复到上电缺省值。功能:复位外设,将其所有值恢复到上电缺省值。

50、PER_close( handle ) 功能:关闭由功能:关闭由PER_open()函数打开的外设通道。通道寄存器恢复上电初始值,清除所有未执行的中断函数打开的外设通道。通道寄存器恢复上电初始值,清除所有未执行的中断 。 通过寄存器来实现外设初始化通过寄存器来实现外设初始化 CSL提供了两种函数来初始化外设的寄存器:提供了两种函数来初始化外设的寄存器: 1、PER-config() 用来初始化控制用来初始化控制PER 外设的寄存器,其中外设的寄存器,其中PER 是是CSL模块模块 之一。这个函数需要一个地址来作为他的参数。这个地址指出了这个结构的位之一。这个函数需要一个地址来作为他的参数。这个

51、地址指出了这个结构的位 置,他代表了外设寄存器的值。每一个外设模块都定义了他的配置结构数据类置,他代表了外设寄存器的值。每一个外设模块都定义了他的配置结构数据类 型,包括型,包括PER-config()函数。函数。 PER_Config MyConfig = reg0, reg1, ; PER_config( 2、PER-configArgs() 允许将个别寄存器的值传给函数的变量,然后将独立的允许将个别寄存器的值传给函数的变量,然后将独立的 值传给寄存器。值传给寄存器。 PER_configArgs(reg0, reg1, ); 通用通用CSL宏宏 1、PER 表示外设,如表示外设,如 ED

52、MA 2、REG 表示寄存器名,如表示寄存器名,如PRICTL0,AUXCTL 3、FIELD 表示寄存器域,如表示寄存器域,如 ESIZE 4、regval 表示外设域生成宏表示外设域生成宏PER-FMK()产生的整型常量,整型变量,符号产生的整型常量,整型变量,符号 常量常量(PER_REG_DEFAULT),或者融合域值,或者融合域值 5、fieldval 表示的是整常量,整型变量,或者符号常数表示的是整常量,整型变量,或者符号常数 (PER_REG_FIELD_SYMVAL) 6、x 表示整型常量,整型变量表示整型常量,整型变量 7、sym 表示符号常量表示符号常量 通用通用CSL宏宏

53、 PER_REG_RMK( fieldval_n, . . . fieldval_0 ) 功能:产生外设寄存器值;功能:产生外设寄存器值;_RMK宏基于位域,使构建寄存器值变得很简单。宏基于位域,使构建寄存器值变得很简单。_RMK宏使用规则:域必须可写。首先指定域宏使用规则:域必须可写。首先指定域 参数的最高有效位(参数的最高有效位(MSB),不管用到与否,必须包含所有可写域的值。如果所传值超出特定域所允许的位宽,),不管用到与否,必须包含所有可写域的值。如果所传值超出特定域所允许的位宽,_RMK宏将宏将 截断该域值。截断该域值。 PER_RGET(REG ) 功能:返回外设寄存器值。功能:返回外设寄存器值。 PER_RSET(REG, regval ) 功能:将值写入外设寄存器。功能:将值写入外设寄存器。 PER_FMK(REG, FIELD , fieldval ) 功能:可与其他功能:可与其他_FMK宏的结果进行宏的结果进行或或(OR)操作后,生成移位的操作后,生成移位的 fieldval 值,对值,对REG寄存器进行初始化。寄存器进行初始化。 作为作为_RMK宏的替宏的替 代者,该宏允许初始化代者,该宏允许初始化REG寄存器中的几个域,而不像寄存器中的几个域,而不像_RMK宏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论