基于单片机12C5A60S2的FPGA的加载
2014-11-07杨婉
杨婉
摘 要:目前绝大部分FPGA都是用SRAM构成逻辑函数发生器,因此需要外加专用配置芯片。上电时,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作。本文采用STC深圳宏晶公司单片机12C5A60S2以PS模式对Altera公司的FLEX6000系列芯片EPF6016进行配置,软件采用MAX+PLUS II。
关键词:FPGA 单片机 SRAM
中图分类号:TP27 文献标识码:A 文章编号:1672-3791(2014)06(a)-0011-01
1 12C5A60S2的功能特点
12C5A60S2器件采用高性能的静态80C51设计,可编程。芯片为1时钟模式,其最大工作频率为35 MHz。此芯片包含60 KB的Flash程序存储器、1024字节RAM、32个I/O口、3个16位定时/计数器、6中断源-4中断优先级-嵌套的中断结构、2个增强型UART。它频率范围宽,具有空闲模式和掉电模式两种节电模式。12C5A60S2的Flash存储器可在板编程ISP,EPF6016芯片的配置信息可存储于12C5A60S2的Flash存储器中,也可采用外配串行EEPROM 24C512使用更加方便。
2 配置原理和配置文件
FPGA的加载主要通过被动串行加载模式,主动串行加载模式,被动并行加载模式和边界扫描加载模式。所有的FPGA芯片都有三个或四个加载模式配置管脚,通过配置来选取不同的加载模式。FPGA的配置文件在MAX+PLUS II编译时自动生成。用12C5A60S2来配置FPGA,需将引导配置代码(.hex文件)和FPGA的配置数据(.hex文件)一起通过编程器写入12C5A60S2或通过编程器将数据写入24C512经由单片机对FPGA进行编程。
本硬件设计不适用单片机的RXD,TXD管脚,转而使用任意I/O,可留出RXD,TXD做串口通讯之用,FPGA配置信息存储在外配24C512中,如此可通过更换24C512芯片,变化FPGA的芯片功能。
3 软件设计
下面给出用汇编语言编写的程序(核心内容):
NSTATUS BIT P1.0 CONFIG-DONE BIT P1.1 ADATA BIT P3.2
DCLK BIT P3.3 NCONFIG BIT P3. SDA BIT P1.6
SCL BIT P1.7 INDI BIT P1.3 LED-LAMP BIT P3.1
ORG 0000H; MEMORY RESET SETB SDA;
MEMORY RESET SETB SCL MOV R0,#10H
XLK: CLR SCL NOP NOP SETB SCL NOP DJNZ R0,XLK
ALK: CLR SCL NOP NOP SETB SCL; GIVE A RISING TO EEPROM NOP NOP JB SDA,SLK; IT IS SATISFIED FOR SDA=1
WHEN SCL=1 LJMP ALK
;INITIAL TO READ EEPROM, PREPARE TO RANDOM READ ONE WORDS
CNTER:LCALL START
MOV A,#10100010B; SHIFT OUT DEVICE ADDRESS WRITE
LCALL SHOUT
LOKED:JZ LOKED; IF IT IS ZERO THE PROGRAMME WILL STOP HERE
DEC A
MOV 30H,A; SAVE THE COUNTER VALUE TO RAM 30H
;WRITE BACK THE DECREASED VALUE
MOV DPTR,#0FFF0H
MOV B,A
LCALL WRITE
INI: CLR P1.2
CLR DCLK
CLR ADATA
CLR P3.5
SETB SCL
MOV R0,#10H
XAA: CLR SCL
NOP
NOP
SETB SCL
NOP
DJNZ R0,XAA
AGA: CLR SCL
NOP
NOP
SETB SCL; GIVE A RISING TO EEPROM
NOP
NOP
JB SDA,SAT; IT IS SATISFIED FOR SDA=1 WHEN SCL=1
LJMP AGA
SAT: LCALL START; NOW RESET FINISHED
;WHEN SCL=1 GIVE SDA A FALLING EDGE
;START CONDITION HAS FINISHED
;EXIT WITH SDA=0 SCL=0
; INITIAL TO READ EEPROM, PREPARE TO SEQUENCIAL READ
MOV A,#10100010B; SHIFT OUT DEVICE ADDRESS WRITE
LCALL SHOUT
MOV A,#00H; HIGH BYTE ADDRESS
LCALL SHOUT
MOV A,#00H; LOW BYTE ADDRESS
LCALL SHOUT; THIS IS DUMMY WRITE
………………………………………………………………………….
SERSD:RRC A
MOV ADATA,C; LSB PRESENT FIRST BIT 0
SETB DCLK
CLR DCLK
RRC A
SETB DCLK
………………………………………………………………………….
CLR DCLK
RET END
4 结语
用12C5A60S2单片机外配24C512串行EEROM来配置FPGA,较之于EPC1441PC8配置芯片,具有经济,可重复编程的优点。同时由于单片机可加入按键,通讯接口等功能,可在不断电的情况下实现在线的重配及参数修改,增强了系统功能。FPGA的高速性和单片机的智能性达到完美结合。
参考文献
[1] 杨晓慧,杨旭.FPGA系统设计与实例[M].人民邮电出版社,2010(1).
[2] 华清远见嵌入式培训中心.FPGA应用开发入门与典型实例[M].人民邮电出版社,2008(7).endprint