您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

嵌入式体系中FPGA的被动串行配置方法

发布日期:2011-04-20

    择要:先容一种在嵌放式体系中利用微处理惩罚器被动串行配置方法实现对FPGA配置的方案,将体系步伐及配置文件存在体系Flash中,利用微处理惩罚器的I/O口孕育产生配置时序,省去配置器件;讨论FPGA的种种配置方法及种种配置文件的利用;详述被动串行配置的时序及在嵌入式体系中实现的软硬件计划;阐明本方案的良好性及应用远景。

    关键词:嵌入式体系 ARM7TDMI S3C44B0X FPGA 被动串行配置

随着信息期间的到来,嵌入式体系成为继IT网络技能之后又一个新的技能生长方向。嵌入式体系以其成果强、体积小、功耗低、可靠性高以及面向行业应用的突出特性,遍及应用于各个范畴。

    现场可编程门阵列FPGA(Field Programmable Gate Array)是一种高密度可编程逻辑器件,其逻辑成果的实现是通过把计划天生的数据文件配置进芯片内部的静态配置数据存储器(SRAM)来完成的,具有可重复编程性,可以机动实现种种逻辑成果。FPGA的这种特性使其在当代电子体系计划中得到了遍及应用。基于SRAM工艺的FPGA是易失性的,体系失电以后其内部配置数据将丢失,因此必要外接ROM生存其配置数据。FPGA的配置是偶然序请求的,要是FPGA本身不克不及控制配置时序,就必要有外部配置器件来举行时序控制。以Altera公司的系列FPGA为例,其本身不克不及控制配置时序,就有专用的EPC系列配置器件供其利用。在含有微处理惩罚器(MPU或MCU)的体系中(如嵌入式体系),可以利用微处理惩罚器孕育产生配置时序,将生存在体系RO风吹草动的配置数据置入FPGA。与前面一种方案相比,该方案不但节流了本钱,更缩小了体系体积。在对本钱和体积敏感的体系中,该方案非常实用。

    在某手持式通讯配置的计划中,利用了嵌入式体系和FPGA完成了体系成果。嵌入衰落处理惩罚器采取Samsung公司的ARM7TDMI系列处理惩罚器S3C44B0X;FPGA采取Alrera公司的APEX 20K系列EP20K200E,利用S3C44B0X完成了对EP20K200E的配置,获取了精良结果。本文对着实现要领予以先容。

1 ARM嵌入式处理惩罚器S3C4480X简介

S3C44B0X是Samsung公司专为手持配置和一样平常应用而计划的高性价比和高性能的嵌入式处理惩罚器。其突出特点它的CPU核采取ARM公司的16/32位ARM7TDMI RISC内核,0.25μm CMOS工艺制造,主频最高可达66MHz,存储器寻址空间达256MB。由于其本钱和功耗低,分外得当对本钱敏感和成果敏感的应用场合,如PDA、GPS、LCD Game、E-Book等。

2 APEX 20K系列FPGA配置方法及配置文件

2.1 配置方法先容

Altera公司的APEX 20K系列FPGA可以利用以下方法举行配;

①利用专用配置器件,如EPC16、EPC8、EPC2、EPC1、EPC1441;

②被动串行方法(PS),利用微处理惩罚器的串行步接口或ByteBlaster下载电缆;

③被动并行同步方法(PPS),利用微处理惩罚器的并行同步接口;

④被动并行异步方法(PPA),利用微处理惩罚器的并行异步接口;

⑤边界扫描方法(JTAG),利用JTAG下载电缆。

利用方法①时,必要起首利用下载电缆将谋略机天生的FPGA配置文件烧入EPC配置器件中,然后由EPC配置器件控制配置时序对FPGA举行配置,一次烧写即可重复利用。利用方法②、③、④时,配置文件事先以二进制情势生存在体系ROM中,可以脱退出谋略机重复利用。若利用方②、③、④时,配置文件事先以二进制情势生存在体系ROM中,可以脱退出谋略机重复利用。若利用方法②,微处理惩罚器将配置数据以串行(比特流)方法送给FPGA,在配置时钟驱动下完成配置。若利用方法③,微处理惩罚器将配置数据以并行(字节)方法送给FPGA,由FPGA在其内部将并行数据转换成串行数据,该串行化的进程必要外部配置时钟的驱动。在配置时钟速率雷同的环境下,方法②、③所用的配置时间险些雷同,但方法②的接口要比喻式③大略,若利用方法④,微处理惩罚器仍将配置数据以并行方法送给FPGA,在FPGA内部完成数据串行化;与方法③差别的是,该进程不必要外部配置时钟的驱动,但其接口更巨大,并且必要举行地点译码,增长了体系的巨大程度,一样平常很少采取。利用方法⑤时必要谋略机的共同,无法在终极的实际体系中脱机利用,此处不予讨论。

    通过上述讨论可以看出,在利用APEX 20K系列FPGA开辟实际应用体系,分外是要形成某种产品时,要是体系中不含微处理惩罚器,只能利用方法①;若体系中含有微处理惩罚器,方法①、②、③、④都可以利用,但②、③、④可以发明,方法②的接口最大略,实现起来比别的两种方法都方便因而在含有微处理惩罚器的体系中得到了遍及应用,本通讯体系的计划中即采取了该方法。

2.2 配置文件的利用

Altera公司的开辟东西Quartus II及MAX+PLUS II可以天生多种格局的配置文件,针对差别的配置方法要利用差别格局的配置文件。计划项目编译以后会主动天生.sof文件和.pof文件。此中.pof文件在配置方法①利用专用配置器件时利用,.sof文件用于通过连接在谋略机上的下载电缆直接对FPGA举行配置的场合,配置方法可以是JTAG方法或PS方法中利用ByteBlaster下载电缆的环境。基于.sof文件还可以天生.hex、.rbf和.ttf文件。.hex文件是Intel Hex格局的ASCII码文件,第三方的编程器可以利用这种格局的文件对Altera公司的配置器件举行编程。.rbf文件是二进制文件,1字节的rbf数据包括8bit的配置数据,利用时将其存入ROM中。微处理惩罚器人ROM利用这种格局的文件。.ttf文件是列表文本文件,.rbf文件的ASCII码存储情势,并且各个字节之间用逗号举行了退出。要是体系中有别的步伐,可以将.ttf文件作为体系步伐源代码的一部分,和别的步伐一起编译。本体系中采取了.ttf文件作为体系步伐的一个头文件利用,其配置数据以数组情势被配置步伐利用。对付某种特定型号的FPGA,无论其计划有多巨大,在雷同版本的开辟东西下天生的配置文件大小是一样的。

3 被动串行方法(PS)配置时钟

利用PS方法对FPGA举行配置时,只必要5根信号线,其配置时序如图1所示。

配置时这五根信号线都接至微处理惩罚器的I/O上,此中nCONFIG、DCLK、DATA0设置成输出态,由微处理惩罚器对FPGA举行操纵;nSTATUS/CONF_DONE设置成输入态,由微处理惩罚器对FPGA的配置状态举行检测。微处理惩罚器起首在nCONFIG信号线上孕育产生一个宽度大于8μs的负脉冲,然后开始检测nSTATUS信号的状态。FPGA检测到nCONFIG信号的降落沿后会迫使nSTATUS和CONF_DONC信号拉低,并且在nCONFIG信号重新举高之间保持为低电平。NCONFIG信号举高后,nSTATUS将在1μs之内随之举高,微处理惩罚器检测到此变革后就以为FPGA已经做好准备可以开始配置。配置第一个上升沿与nSTATUS的上升沿之间请求至少有1μs的时间隔断。由于配置数据是与配置上升沿同步的,在配置时钟的上升沿来之间应当将1bit的配置数据在数据线上准备好,配置数据按低位在先高位在后的次序从数据线上送出。当全部配置数据送出以后,CONF_DONE信号将被举高,表明配置结束。微处理惩罚器检测到CONF_DONE信号举高,就结束配置进程。要是配置进程中堕落,FPGA将迫使nSTATUS信号拉低,微处理惩罚器检测到此变革将重新开始配置。

配置结束以后,FPGA还必要个初始化的进程才华进入正常事景况态。在Quartus II或MAX+PLUS II天生的配置文件中已经包括了分外的初始化比特,只需将配置文件 数据在配置时钟的同步下全部送出就已经完成了初始化,用户不必别的加以思量。

4 硬件电路计划

体系的硬件电路计划如图2所示。

由于S3C44B0X内部只有8KB的SRAM作CPU的Cache利用,无法餍足体系步伐存储及运行的必要,因此必要外挂存储器作为步伐生存和运行的空间。体系中利用1片2MB的Flash作为步伐存储器,体系的整个应用步伐,包括EP20K200E配置步伐及配置文件都固化于此中生存。别的利用1片9MB的SDRAM作为体系步伐运行空间,S3C44B0X、Flash和SDRAM构成了一个最小的嵌入式体系。Flash、SDRAM与S3C44B0X的连接要领可参考S3C44B0X用户手岫。

利用PS配置地必要将EP20K200E的MSEL0、MSEL1、nCE三个引脚接地,然后将EP20K200E的nCONFIG、DATA0、DCLK、CONF_DONE、nSTATUS引脚分别接至S3C44B0X的GPC0、GPC1、GPC2、GPC3、GPC4引脚上。S3C44B0X的I/O口均为多成果口,可以根据应用的必要通过内部寄存器将其设置成输入口、输出口或分外成果口。此处将GPC0、GPC1和GPC2设置成输出口,将GPC3和GPC4设置成输入口。

5 软件计划

配置时根据配置时序请求,起首在GPC0引脚(映射nCONFIG)孕育产生一个负脉冲,启动配置,然后检测GPC4引脚的nSTATUS信号。NSTATUS信号正常后就在GPC2引脚(映射DCLK)上送配置时钟,在GPC1引脚(映射DATA0)上同步送出配置数据。配置数据以字节为单位从SDRAM中读出,通过移位操纵以串行比特流方法从GPC1引脚送出。全部数据送出后,检测GPC3引脚(映射CONF_DONE)的状态,如为高电平阐明配置告成,不然配置失败,必要重新举行配置。配置步伐流程如图3所示。

步伐实现利用了C语言。在GPC0引脚孕育产生负脉冲可以通过对其先写0后写1来实现,延时利用大略的循环语句即可,其语句为

rPDATC=rPDATC&0xfffe; //*GPC0置低

for(i=0;i<150;i++); //延时15μs

rPDATC=rPDATC|0x0001|; //GPC0置高

此中rPDATC为C端口的数据寄存器。

读入某个引脚的状态并果断其曲折可以利用一条语句实现,如读入GPC4的状态并果断其曲折为

while(!rPDATC&0x0010));

要是GPC4为低电平,该语句就会不停此处循环,直至其变为高电平。

配置时钟通过在GPC2引脚循环置0、置1来实现,着实现语句为rPDATC=rPDATC|0x0004;//GPC2置高rPDATC=rPDATC&0xfffb;//GPC2置低

在GPC2由低变高之前,将1bit的配置数据在GPC1引脚上准备好。

要是配置进程中堕落,EP20K200E将会迫使nSTATUS引脚拉低来关照S3C44B0X。在本步伐中为了主加快配置速率,没有对此举行果断,而是在步伐末了通过CONF_DONE信号否举高来果断配置告成与否。要是配置堕落,该信号将不会举高,从而可以重新开始配置。

本国步伐、配置文件和体系的别的步伐同一编译成一个应用步伐存在Flash中,体系加电以后起首运行位于Flash 0地点的引导步伐,引导步伐完成CPU的初始化,然后将应用步伐从Flash复制到SDRAM中,从SDRAM中开始运行。在本体系中利用了及时多任务操纵体系(RTOS),在软件计划时将配置步伐放在第一个运行的任务中,包管在开机手起首完成FPGA配置。配置所必要的时间与微处理惩罚器的运行速率及配置文件的大小有关。在本体系中,微处理惩罚器运行在64MHz,配置文件的二进制情势有240KB,配置所需的时间在3s左右。

本文所讨论的在嵌入式体系中利用微处理惩罚器实现对FPGA配置的方案不但在体系本钱上有上风,并且在体系体积上也有上风,已经在实际体系中得到了应用,获取了精良结果。本方案固然是针对APEX 20K系列FPGA的,但对付Altera公司别的系列的FPGA产品,只需稍做窜改即可加以应用。别的,由于FPGA具有可重复配置的机动性,可以在体系中包括多个差别成果的配置文件,利用时根据成果必要举行相应的配置,实现了一机多能。这一点在日益鼓起的软件无线电体系中具有广阔的应用远景。