基于单片机的FPGA并行配置方法

发布者:MysticalWhisper最新更新时间:2006-11-16 来源: 电子技术应用关键字:AT89C52  ICR 手机看文章 扫描二维码
随时随地手机看文章

在当今变化的市场环境中,产品是否便于现场升级、是否便于灵活使用,已成为产品能否进入市场的关键因素。在这种背景下,Altera公司的基于SRAM LUT结构的FPGA器件得到了广泛的应用。这类器件的配置数据存储在SRAM中。由于SRAM的掉电易失性,系统每次上电时,必须重新配置数据,只有在数据配置正确的情况下系统才能正常工作。这种器件的优点是可在线重新配置ICR(In-Circuit Reconfigurability),在线配置方式一般有两类:一是通过下载电费由计算机直接对其进行配置;二是通过微处理器对其进行配置。前者调试时非常方便 ,但在应用现场是很不现实的。因此,如果系统重新上电时,系统本身具有自动加载可编程逻辑器件的编程文件,完成对可编程逻辑器件的配置,就可以省去了通过手工由下载电费对器件进行配置的过程。这种自动加载配置对FPGA的某些应用来说是必需的,在笔者参与研制的一种干扰系统中,利用单片机AT89C52对FLEX10K系列FPGA中的EPF10K10进行在线并行配置,取得了良好的效果。

1 FPGA器件的配置方式和配置文件

1.1 FPGA器件的配置方式

ALTERA公司生产的具有ICR功能的FPGA器件有FLEX6000、FLEX10K、APEX和ACEX等系列。它们的配置方式可分为PS(被动串行)、PPS(被动并行同步)、PPA(被动并行异步)、PSA(被动串行异步)和JTAG(Joint Test Action Group)等五种方式。这五种方式都适用于单片机配置。PS方式因电路简单,对配置时钟的要求相对较低而被广泛应用。相比而方,采用PPA配置的方案却很少见到。但由于PPA配置模式为并行配置,其配置速度快,且配置时钟由FPGA内部产生(而PS等配置模式需要外加配置时钟),故其更有利于在线实现。本文的配置方案便是采用PPA配置方式实现的。

图1

  1.2 FPGA器件的配置文件

ALTERA的MAX+PLUS II开发工具可以生成多种配置或编译文件,用于不同配置方法的配置系统。对于不同的目标器件,配置数据的大小不同,配置文件的大小一般由.tbf文件(即二进制文件)决定。本实例中,EPF10K10的配置文件.rbf的大小为15k。该文件包括所有的配置数据,一个字节的.rbf文件有8位配置数据。由于Altera提供的软件工具不自动生成.rbf文件,故文件需按照下面的步骤生成:①在MAX+PLUS II编译状态下,选择文件菜单中的变换SRAM目标文件命令;②在变换SRAM目标文件对话框,指定要转换的文件并且选择输出文件格式为.rbf(Sequential),之后予以确定。

2 硬件电路设计

AT89C52对EPF10K10并行配置的硬件电路示意图如图1所示。经MAX+PLUS II编译生成配置文件(.sof),通过格式转换成为(.rbf)文件并存储在图中所示的存储器中。当使用PPA配置方式时,需要将MSEL1和MSEL0置为高电平。为了不使DCLK出现不确定信号,必须将其经过1kΩ电阻上拉到Vcc。在采用PPA配置方式时,nCS和CS两个片选信号只需用一个。因此,如果采用其中一个作为片选信号,另一个必须直接置为有效位;如果选用CS作为片选信号控制配置,nCS必须接地;如果选用nCS作为片选信号控制配置,CS必须接高电平。本实例中采用后者。NRS为读选通输入信号,它为低输入时,FLEX10K将RDYnBSY信号置于DATA7引脚。当nRS不用时,必须将其置为高。nCE为FLEX10K器件的使能输入,nCE为低时使能配置过程。当器件是单片配置时,nCE必须始终为低。由于本实例为单片配置,故将nCE直接接地。然后将EPF10K10的nCONFIG、CONF_DONE、nSTATUS、RDYnBSY分别接到AT89C52的P17、P14、P13引脚上。DATA[7..0]接到AT89C52的P07~P00。NWs为写选通输入,由低到高跳变时锁存DATA[7..0]引脚上的字节数据。要注意的是,nSTATUS引脚和CONF_DONE引脚是双向漏极开路输出,在作输出使用时,应用经过1.0kΩ的电阻上拉到Vcc。

图2

3 软件设计

3.1 配置原理

PPA配置方式的下载时序如图2所示。由图可以看出PPA模式的工作过程如下:

(1)启动配置

在nCONFIG引脚上产生一个低脉冲,等待nSTATUS回应一个低脉冲以及CONF_DONE变低。在nCONFIG跳高后4μs,内nSTATUS也跳高,表示FPGA可以配置了。

(2)配置过程

在对FPGA进行配置时,单片机将8位的配置数据放在FPGA器件的数据端,并且给nWS一个负脉冲,在nWS的上升沿,FPGA器件将该字节配置数据锁存;然后FPGA器件驱动RDYnBSY为低,表示它正在处理该字节信息,配置过程可以通过nCS和CS引脚暂停。当RDYnBSY为低电平时,FLEX10K器件利用其内部振荡器(其频率一般为10MHz)在其内部将每一个字节的配置数据串行化。当FLEX10K器件准备接收下一个配置数据时,就使RDnBSY变高。单片机检测该高电平信号后,送出下一个字节的数据。这一过程一直持续到全部数据配置完成。在配置过程中,系统需要进行实时监测,一旦出现错误,nSATUS将被拉低,系统必须能识别出这个信号,并重新启动配置过程。

图3

   (3)结束配置

配置数据全部正确写入芯片内部后,器件释放CONF_DONE,由外部将其拉高。如果单片机检测到这个信号,则表明配置成功;否则,要对其重新配置。

3.2 配置软设计

单片机实现配置过程的控制程序流程图如图3所示。

汇编程程序设计如下:

nCONFIG EQU P1.7

nSTATUS EQU P1.5

RDYnBSY EQU P1.3

CONF_DONE EQU P1.4

ORG 0000H

LJMP MAIN

ORG 0030H

;对数据长度相关进行初始化,其中所要配置的数据长度放在地址为0000H和0001H中

;0000H放数据长度的低位,0001H放数据长度的高位

;从0002开始放置的是所要配置的数据

MAIN:MOV DPTR,#0000H

MOVX A,@DPTR

MOV R3,A; R3放配置数据个数的低位

MOV DPTR,#0001H

MOVX A,@DPTR

MOV R4,A; R4放配置数据个数的高位

MOV R5,#00H ;放配置数据个数的低位

MOV R6,#00H ;放配置数据个数的高位

;以下是将数据进行配置的子程序

COFIG:MOV DPTR,#0002H

CLR P1.7

ACALL DELAY4 ;延时约为15μs

JB nSTATUS,COFIG ;检测FPGA是否响应置低位

SETB nCONFIG ;FPGA响应置低位后,将nCONFIG置高位

STA_JUDGE:JB nSTATUS,COFIG_BEG;等待FPGA是否响应置高位,然后准备进行配置

LJMP STA_JUDGE

COFIG_BEG:ACALL DELAY2

LJMP SEND_DATA

READY_DATA1:JNB nSTATUS,COFIG

SEND_DATA:MOVX A,@DPTR ;读取数据

PUSH DPH

PUSH DPL

MOV DPTR,#7000H ;读入FPGA地址

JNB P1.3,$ ;判断RDYnBSY的状态

MOVX @DPTR,A ;配置数据

POP DPL

POP DPH

INC DPTR

;以下实现配置个的判断

CLR C;

MOV A,#01H

ADD A,R5

MOV R5,A

MOV A,#00H

ADDC A,R6

MOV R6,A

MOV A,R5

CJNE A,03H,RESESH_COFIG

MOV A,R6

CJNE A,04H,RESESH_COFIG

CON_REFRESH:ACALL DELAY2 ;延时5μs,JB P1.4,END1 ;判断CONF_DONE的状态,看是否配置成功

LJMP COFIG

PESESH_COFIG:LJMPREADY_DATA1

;延时子程序,延时约为5μs

DELAY2:NOP

NOP

NOP

NOP

NOP

RET

;延时子程序,延时约为15μs

DELAY4:MOV R1,#08H

DJNZ R1,$

RET

END1:END

本文讨论的基于单片机的FPGA并行配置方法具有线路结构简单、开发容易、成本低的特点。与常用的串行配置方法相比,该配置方法更具有配置时间短、准确率高、易于实现等优点。虽然该配置控制电路是为配置ALTERA公司FLEX10k系列的FPGA器件而设计的,但稍加修改也适用于其它系列的FPGA器件,故其有一定的通用性。

关键字:AT89C52  ICR 引用地址:基于单片机的FPGA并行配置方法

上一篇:基于单片机的FPGA并行配置方法
下一篇:基于单片机的FPGA并行配置方法

推荐阅读最新更新时间:2024-12-17 15:01

AT89C52单片机对蜂鸣器的设计
该电路较简单,用PNP型三极管驱动蜂鸣器,当P3.7为低电平时,PN结正向偏置,三极管导通,蜂鸣器发声。 程序如下: #include #define uchar unsigned char sbit sounder=P3^7; void delay(uchar z) { uchar j,i; for(i=z;i》0;i--) for(j=110;j》0;j--); } void main() { sounder=1; while(1) { sounder=~sounder; delay(500); } 仿真结果如下:
[单片机]
<font color='red'>AT89C52</font>单片机对蜂鸣器的设计
基于AT89C52和USB接口的数据采集系统设计
在工业生产和科学技术研究中,常利用PC或工控机对各种数据进行采集,以获得所需要的控制信息和实验数据。传统的数据采集系统多以ISA,EISA或PCI插卡的形式完成数据传输,这种方式存在安装麻烦,受计算机插槽数量、地址、中断资源限制,可扩展性差等缺点。由于通用串行总线(Universal Serial Bus.USB)具有自动被系统识别.自动安装驱动程序、自行进行系统配置,以及支持不同速率的同步和异步传输方式,支持热插拔和即插即用(Plug and Play,PNP)等优点,已逐渐成为现代数据传输的发展趋势。目前实现USB数据传送多采用专用的USB接口芯片,文献采用的PDIUSBDl2可支持USBl.1协议,文献E37采用的接口芯片
[单片机]
基于<font color='red'>AT89C52</font>和USB接口的数据采集系统设计
CATV的智能校园广播/考试系统的设计
传统的广播系统,一般需要由人工定时操作,且只能实现一路广播,功能少,传统的打铃设备,音源单一,声音刺耳,随着学校教学改革的不断深入,这些电教设备已不能满足学校的要求和发展,根据学校的需求,笔者利用电脑多媒体技术和单片机技术,结合CATV系统设计出了智能校园广播/考试系统,该系统不仅可以实现多路调频广播,而且可以寻址广播,控制校园任一广播终端的功能操作,如广播开关、声音调节和频道切换等,同时广播终端也可以对自己的广播功能进行操作,其可以通过遥控电脑进行全自动定时广播,实现打铃、课间操、课间音乐、年级语言考试等功能。因此,该系统是学校现代教育“三网”工程的一个较佳选择。 1 系统组成和各部分功能 智能校园广播/考试系统的组成如
[单片机]
CATV的智能校园广播/考试系统的设计
AT89C52单片机实现RS422到CAN总线的转换
引言 RS422是串行通讯中应用较广的标准总线。他能很方便地把各种计算机、外部设备、测量仪器有机地连接起来,构成一个测量、控制系统。但是,他传输速率低、传输距离短并且接口处信号间易产生串扰,因此不能直接应用于工业控制。 CAN总线刚好以其高性能、高可靠性及独特的设计赢得了工业界的高度重视。例如,奔驰S型轿车上采用的就是CAN总线系统,美国商用车辆制造商们也将注意力转向了CAN总线,美国一些企业已将CAN作为内部总线应用在生产线和机床上。同时,由于CAN总线可以提供较高的安全性,因此在医疗领域、纺织机械及电梯控制中也得到了广泛应用。可见,实现RS422总线和CAN总线之间的转换非常有必要。 2硬件设计 2.1总体设计分析
[单片机]
用<font color='red'>AT89C52</font>单片机实现RS422到CAN总线的转换
基于AT89C52智能温度控制器设计
1 工作原理 图1 系统结构框图 本设计温控仪由温度监测、信号处理、输出控制三部分组成。其系统框图如图1所示,它通过预埋在变压器三相绕组中的三只铂电阻传感器获取绕组温度值,经信号调理电路处理后直接送入控制器的A/D转换输入端。微控制器根据信号数据及设定的各种控制参数,按照嵌入的软件控制规律执行计算与处理,自动显示变压器绕组的温度值、输出相应的控制信号、控制风机的启停, 并根据当前状态输出正常、报警和跳闸信号等,同时将各种数据通过RS-485总线传到上位机实现集中监控。 1.1 模拟转换电路 模拟转换控制电路用于将温度模拟量转换成单片机能够识别的电信号,转换原理如图2所示。当温度变化时,PT100的阻
[单片机]
基于<font color='red'>AT89C52</font>智能温度控制器设计
AT89C52单片机点亮数码管的设计
电路只驱动一个数码管,该数码管为共阴管,公共端接地,段管直连到单片机的P2口,所用单片机为AT89C52,电路图如下所示: 通过昨天对数码管的讲解,我们知道如果要点亮一个共阴型的数码管,只需要把公共端连到低电平,段管给高电平就可以,如下图所示。 所以看程序: 第4行:共阴数码管的字段表; 第17行:for循环,循环10次,控制数码管的显示内容; 第19行:将所要显示的内容送给数码管; 本次的内容很简单,希望对初学者有个借鉴作用。
[单片机]
<font color='red'>AT89C52</font>单片机点亮数码管的设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved