图1 是本人所使用的系统,DSP芯片通过EMIF接口连接了2 片FPGA,其中EP2C8F256I8 主要负责DSP核心处理所需数据的交换,连接了FLASH 芯片,SDRAM芯片,A/D 芯片。另一块FPGA 芯片EP2C8F144I8 负责与外部通信,连接了USB 接口芯片,I2C通信芯片和CAN总线通信芯片。
图2 所示是DSP 与一片FPGA 的接口连接图,DSP 与多片FPGA连接时,接口可以按图的方式复用,TMS320C6722 型DSP的EMIF 接口有14 根地址线,与不同FPGA进行通信时,要使用不同的地址。
一个EMIF读操作分为建立时间、触发时间和保持时间三部分。在建立时间开始时,EM_CS[2]片选信号拉低,同时地址线EM_A 与EM_BA 给出所读取数据的地址。触发时间开始时,EM_OE信号拉低,同时FPGA在EM_D信号线上传输数据,DSP将在触发时间的最后一个时钟处对数据采样。保持时间中EM_OE 信号将拉高,并在保持时间结束后,EM_CS[2]信号拉高。在整个周期中EM_WE_DQM、EM_WE、EM_RW信号始终为高电平。
类似于读操作,EMIF 写操作分为建立时间、触发时间和保持时间三部分。在建立时间开始时,EM_CS[2]片选信号拉低,EM_RW信号拉低,同时地址线EM_A与EM_BA给出所读取数据的地址,数据线EM_D 给出需要写入FPGA的数据。触发时间开始时,EM_WE信号拉低,EM_WE_DMQ信号给出字节使能信号。保持时间开始时EM_WE_DMQ信号与 EM_WE信号拉高,并在保持时间结束后,EM_CS[2]信号与EM_RW信号拉高。在整个写操作周期中EM_OE信号始终为高电平。
系统上电后,DSP 的RESET 引脚要通过下拉电阻拉低,使DSP 处于复位态。FPGA 芯片EP2C8F256I8 上电后从FPGA 配置芯片EPCS4 中下载程序启动。FPGA启动成功后将DSP芯片的SPI0SOMI 引脚与SPI0CLK 引脚拉低,将SPI0SIMO 引脚拉高,然后再将RESET引脚拉高。这样配置是为了使DSP退出复位态时能根据上述3 个引脚的电平获知DSP 芯片将通过EMIF接口启动。此后,DSP芯片将从EMIF 接口读取1KB数据,并将这1KB数据存放于DSP的RAM中,再执行这1KB的程序。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |