【PSD813F2在FPGA配置中的应用】 应用配置

PSD813F2在FPGA配置中的应用

PSD813F2在FPGA配置中的应用 关键词:可编程外围器件(PSD) 在应用可编程(IAP) 可编程门阵列 (FPGA) 随着单片机的广泛应用,其性能不断提高,集成度也日益提高。然而,传 统的单片机系统设计需要众多分离器件(如地址锁存器、译码器、RAM、EPROM、 PLD等),使得系统复杂、可靠性低,并且调试繁琐、效率较低。可编程门阵列 (FPGA)需要外置存储器,且配置存储器多为OTP型,价格较高;
加之,利用 FPGA的JTAG口配置FPGA距离有限,调试不甚方便。

PSD813F2是PSD(Programmable System Devices)家庭的新成员,是基于 闪烁存储器的在线可编程外围器件。它将单片机系统所需的外围器件集成在一起, 并能与单片机进行无缝连接,因而简化了调度,提高了可靠性;
同时,它与当前 流行的众多单片机有极简单的接口,便于实现简单、灵活的嵌入式设计;
它还集 成了优化的“微控制器宏单元”逻辑结构,使得系统地址/数据总线可以与内部寄 存器直接互连,简化了控制总线的设计。此外,PSD813F2还具有以下一些特性:
①内部数据总线为8位,可方便地与各类8位单片机直接相连。如要与16 位单片机相连,需用2片PSD813F2构成16位的多路复用接口,并且地址必须循环 移位,以保证MCU工作时能同时正确接收不同PSD813F2 ROM中的信息。

②内部包含1Mbit的大容量Flash ROM,这分为8个大小相同的块(如 128K×8bit或64K×8bit),由用户规定的地址访问;
另外还有256K的Flash OPT ROM及16KB的SRAM,其中SRAM可配置为2K×8bit或16K×1bit。

③内存(Flash ROM)或Flash OPT ROM可同时编程,即在执行来自一个 存储器的代码时可同时对另一个存储器编程。

④带有16个输出宏单元和24个输入宏单元,能方便实现多种逻辑组合功能, 包括内外的状态信号产生、地址译码等。

⑤带有27个可重建的I/O端口,可以用作不同的I/O端口,如单片机的I/O、 PLD的I/O;
最多可提供19个外部片选信号,其中16个I/O可配置为漏极输出。

⑥具有可编程电源管理功能(PMU),加之低功耗的CMOS技术,使得其 工作时功耗很低;
另外还具有自动检测控制器工作的功能,使之在不工作时将PSD转入低功耗状态。

由于PSD813F2具有以下特性,因而能方便实现I/O重建、扩展,并具有通 过编程改变设计的灵活性,方便与各类不同单片机实现无缝连接。其内部框图如 图1所示。

2 系统设计 整个设计是利用计算机将FPGA的相关设计经单片机传送存储器,由单片 机配置PSD813F2,再由PSD813F2配置FPGA,实现IAP的功能,特别适于较远距 离在线编程、仿真。另外,利用计算机的串行口可以与单片机进行较长距离的通 信。

此外,由于PSD813F2片内有编程逻辑宏单元(CPLD),所以在MCU与 PSD813F2之间不需要地址锁存器及外部程序存储器;
并且PSD与LCD、FPGA的 接口地直接用其PA、PB口连接,只需在软件设计和MCU程序中相应设计为I/O 模式或地址锁存模式。

另外,FPGA的使用中通常需要时钟信号,并可能需用好几路同的时钟信 号。在系统中采用ICS公司的ISC501倍频芯片,可实现2×~8×共8种倍频方式, 最高可实现160MHz时钟;
加之使用内部分频,可以满足多数设计需要。

系统设计框图如2所示。

3 MCU与PSD813F接口设计 PSD813F2具有大容量Flash ROM、16个输出宏单元和24个输入宏单元,因 而在与单片机组成系统时很少需要外围分立器件,多数通过PSD813F2中的宏单 元逻辑组合产生与单片机连接的地址总线、数据总线、控制总线;
同时,通过内 部的逻辑译码产生对3块独立存储区片选信号。另外,单片机与PSD813F2D内部 宏单元的D触发器直通,使得设计计数器、外围逻辑控制极为方便。

PSD813F2内部包含3块并行、相互独立的存储器区,独立或并行的单片机 在任何时候都可以从一块存储器执行擦写另一块存储器的操作。这使得单片机能 够在执行程序期间,通过改变PSD内控制器的内容,而动态改变程序和数据空间 的地址范围;
同时,系统也能对逻辑资源、扩展输入和输出端口进行编程,使系 统具有实时ISP的能力。4 PSD813F2与FPGA接口设计 PSD813F2可以配置Altera或Xilinx的FPGA(本文以Altera的为例)。Altera 公司的EPF10K10/20是其万门级FPGA的代表,原来需要外置存储器,且配置存 储器EPC1441是OTP型,价格较高;
而PSD813F2具有很好的在线编程功能,并 且擦写次数10万次,同时,1片PSD813F2可以配置10片EPF10K10,因而其具有 良好的性价比。

用PSD813F2配置Altera公司的EPF10K系列FPGA,主要有以下信号:
DCLK——输入移位时钟;

DATA——数据;

nSTATUS——状态信号;

CONF_DONE——配置是否成功信号;

nCONFIG——开始配置信号。

在实际配置电路中采用FPGA的被动串行方式,因而EPF10K系列FPGA的 MSE0、MSE1均接地;
同时nSTATUS、CONF_DONE、nCONFIG均需通过上拉 电阻接电源。配置接口的信号线只需由PSD813F2的PA或PB口配置即可,如图3 所示。

5 软件设计 PSD813F2编程是在硬件基础上,利用专用开发软件PSDsoft进行系统开发 的;
而PSDsoft是一套在Windows环境下运行的软件工具,运用可视化界面进行 编程,具有人机交互功能,其一般开发流程如图4所示。

然而对于单片机系统,更熟悉的是采用C51或汇编进行编程。利用单片机 对PSD813F2进行配置时,所使用的C51程序中最主要的是对PSD813F2进行初始 化的子程序:
void InitPSD813F2(void){ ;
初始化程序 //PA0 LCD_R/W ;
定义PA0为LCD读写//PA1 LCD_RS ;定义PA1为LCD复位 //PA2 FPGA_DCLK ;
定义PA2为FPGA时钟 PSDPACtrlReg=0x03 ;
//设定PA口的读写模式 PSDPADir=0xff;
PSDPADri=0x00;
//PB0 FPGA-CON_DONE //PB1 FPGA-nSTATUS //PB2 FPGA-DATA //PB3 FPGA-nCONFIG //PB4 LCD-CS_LCD PSDPBCtrlReg=0x00 ;
//设定PB为MCU的读写 PSDPBDir=0x0fc ;
//设定PB读写模式 PSDPBDri=0x00;

} 完整的PSD源程序请见网络补充版(http://www.dpj.com.cn)。

结束语