保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

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


出口或特别功能口。此处将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具有可重复配置的灵活性,可以在系统中包含多个不同功能的配置文件,使用时根据功能需要进行相应的配置,实现了一机多能。这一点在日益兴起的软件无线电系统中具有广阔的应用前景。

 

  《嵌入式系统中FPGA的被动串行配置方式(第3页)》

本文链接地址:http://www.oyaya.net/fanwen/view/172587.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。