一、EMIF接口介绍
外部存储器接口(External Memory Interface,简称EMIF)是TMS DSP器件上的一种接口,具体可以分为EMIFA和EMIFB。一般来说,EMIF可实现DSP与不同类型存储器(SRAM、Flash RAM、DDR-RAM等)的连接。一般EMIF与FPGA相连,从而使FPGA平台充当一个协同处理器、高速数据处理器或高速数据传输接口。
1.特性:
- 主频为CPU/6频率
- 可编程配置的时序周期
- 24位地址线,可寻址16M地址空间[((2 ^ (24)) / 1024 / 1024 = 16]
- 不支持同步设备操作
2.结构组成
如下图所示为EMIF框图。
二、EMIF接口支持的模式
EMIF16支持与ASRAM、NAND和NOR的异步数据传输接口。
EMIF16可运行在以下模式:WE strobe模式和select strobe模式。
- WE strobe模式特性:
- CE3的默认模式,其他空间不支持该模式。
- 该模式的优点在于可以连接两个8bit外部存储设备到同一个片选,字节使能EMIFBE可以用作写选通,通常EMIFBE与两个8bit设备的写选通相连。
-
- 字节使能EMIFBE恒为低电平,EMIFWE恒为高(写不使能)
- 片选使能EMIFCE变为低电平,地址通过地址线EMIFA传输,标志着读建立周期的开始
- 读使能EMIFOE变为低电平,标志着读选通周期开始;
- 读选通周期中,待读取的数据通过数据线EMIFD传输;
- 读选通周期结束后,读使能EMIFOE变为高电平,标志着读保持周期的开始;
- 片选使能EMIFCE变为高电平,读保持周期结束,地址线中的地址传输结束。
- Select strobe模式特点:
- 通过设置异步配置寄存器“ss”位激活该模式
- 片选EMIFCE充当选通信号,所以该模式中EMIFCE与EMIFOE行为一致
- EMIFWE只在选通周期内激活
- EMIFBE扮演字节使能角色
- 所有片选都支持,会覆盖WE模式
-
- 字节使能EMIFBE变为低电平,地址通过地址线AMIFA传输,标志着读建立周期的开始
- 片选使能EMIFCE变为低电平,读使能EMIFOE变为低电平,标志着读选通周期开始;
- 读选通周期中,待读取的数据通过数据线EMIFD传输;
- 读选通周期结束后,片选使能EMIFCE和读使能EMIFOE变为高电平,标志着读保持周期的开始;
- 读保持周期结束时,字节使能EMIFBE变为高电平,地址线中的地址传输结束。
三、EMIF16与ASRAM或NOR FLASH接口
1.与16bitASRAM连接
- EMIFA[23:22]作为地址选择(区分连接存储设备为16bit还是8bit),对16bit接口来说,EMIFA23连接到ASRAM/NOR FLASH的地址管脚A0,对8bit接口来说,EMIF[23:22]连接到地址管脚A[1:0]
2.与8bitASRAM相连
3.EMIF16信号描述
- 读使能
- EMIFCE低、EMIFWE高、EMIFOE低、EMIFBE低
- 写使能
- EMIFCE低、EMIFWE低、EMIFBE低(写使能中不判断EMIFOE状态,)
四、EMIF16的配置
1.配置参数
- 建立Setup:读写周期的开始,激活读写选通,片选低、地址有效
- 选通Strobe:读写选通激活到关闭之间的周期
- 保持Hold:读写选通关闭到读写周期结束(读写地址变化,或者片选信号失效)
- 翻转Turnaround:一次异步存储传输的结束至下一次传输的开始,两次读周期或者写周期之间无翻转延时发生
- 数据宽度Data width:8/16bit
2.真值表
异步传输时EMIF的配置代码如下:
(SOC_EMIFA_0_REGS + EMIFA_CE3CFG) = ((0u << EMIFA_CE3CFG_SS_SHIFT)
| (0u << EMIFA_CE3CFG_EW_SHIFT)
| (0x1u << EMIFA_CE3CFG_W_SETUP_SHIFT)
| (0x5u << EMIFA_CE3CFG_W_STROBE_SHIFT)
| (1u << EMIFA_CE3CFG_W_HOLD_SHIFT)
| (0x1u << EMIFA_CE3CFG_R_SETUP_SHIFT)
| (0xAu << EMIFA_CE3CFG_R_STROBE_SHIFT)
| (1u << EMIFA_CE3CFG_R_HOLD_SHIFT)
| (0u << EMIFA_CE3CFG_TA_SHIFT)
| (1u << EMIFA_CE3CFG_ASIZE_SHIFT));
五. FPGA与DSP异步传输的实现
EMIF支持ASRAM、NAND和NOR之间的异步接口【异步接口(Asynchronous Interface)采用异步传输方式。采用异步传输方式时,按比特划分为小组独立发送,发送方可以在任何时间发送这些比特组,而不需要同步时钟的控制。如果没有比特传输,则信号电平处于空闲位,长度不定。异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达,这就需要通信协议来加以解决。如每次异步传输之前都以一个开始比特开始,通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据的时间;在传输结束时,发送一个停止比特表示传输终止】
FPGA与DSP异步传输时序的设计:
以EMIF接收为例,示例代码如下:
int emifDataRead(uint16_t* inBuf, uint16_t len) |
标签:异步,周期,芯片,接口,EMIF,传输,地址,C66x From: https://www.cnblogs.com/alia1010/p/16803836.html