FPGA(microblaze)怎么代替单片机实现串口通信,定时器/计数器,中断、系统时间同步?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPGA(microblaze)怎么代替单片机实现串口通信,定时器/计数器,中断、系统时间同步?相关的知识,希望对你有一定的参考价值。
我现在有一块51开发板,一个xilinx FPGA(SPARTAN),一个下载器,现在要求不能用单片机,只能用FPGA(microblaze)来代替。有没有这方面的教程或参考教材(现在只会51,对microblaze完全没有概念),实验软件为ise14.0
单片机和FPGA运行架构是不一样的。单片机是居于CPU的流水线串行执行指令。FPGA是基于硬件电路实现的,可以并行运行。速度比单片机高。追问
有没有xilinx FPGA这方面的入门教程?Altera和xilinx的使用方法差别大吗?xilinx和microblaze这方面的教程没找到,但是网上Altera的教程比较多。
追答开发语言有主要有两种Verilog HDL和VHDL会其中一种就可以了。不同的芯片用不同的开发环境和工具软件,下载方法和用到的工具都有所不同。在FPGA里面是可以做出像CPU这样的内核的。也可以做串口这些都不是问题了。要做这个要会看英文的原文档。如果看不懂,英语不好的话,你先把英语学好了再说吧。讲什么都没有。数据手册看不懂的话,只能玩些皮毛的。
追问万事开头难啊,能否推荐一些入门的FPGA学习资料,现在是老师指定必须用microblaze实现一些基本功能,要求自学。那块FPGA板子里到底封装了写什么东西,各部分逻辑功能是什么,怎么配置环境、从端口读数据,写数据,原理图到底该怎么看,用什么语言来读写,语法函数等入门知识。我现在遇到的问题不是要不要学,而是必须要用但又不会用。大神能否推荐一些入门的学习资料,就是零基础开始学的
追答你那板子没有相关的PDF文档吗。实在不行的话,在淘宝再找一个开发板也可以。现在这东西不贵。
参考技术A 为什么不能用单片机FPGA配置方式
首先介绍下AS、PS、JTAG三种模式的区别。
AS模式: 烧到FPGA的配置芯片里保存的,FPGA器件每次上电时,作为控制器从配置器件EPCS主动发出读取数据信号,从而把EPCS的数据读入FPGA中,实现对FPGA的编程,该方法适用于不需要经常升级的场合;
PS模式:EPCS作为控制器件,把FPGA当做存储器,把数据写人到FPGA中,实现对FPGA的编程。可以采用微控制器(单片机、ARM等)或者CPLD,该模式可以实现对FPGA在线可编程,升级方便;
JTAG:直接烧到FPGA里面的,由于是SRAM,断电后要重烧,适用于调试;
.pof文件可以通过AS方式下载;
.sof文件或者转换的.jic可以通过JTAG方式下载。
usb blaster下载线支持以上三种模式。(http://baike.baidu.com/link?url=qmMniuXETFfL3zzXWhJYCDzAA4x0nVTKfkMGYMg7laPPhYqiYrY8ydGkibSYgf3PFlS-76m2C-istSaQtw5iCK)
FPGA在正常工作时,它的配置数据存储在SRAM中,加电时须重新下载。在实验系统中,通常用计算机或控制器进行调试,因此可以使用PS。在实用系统中,多数情况下必须由FPGA主动引导配置操作过程,这时FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中fpga配置信息是用普通编程器将设计所得的pof格式的文件烧录进去。
1. JATG模式
JTAG接口是一个业界标准接口,主要用于芯片测试等功能。altera FPGA基本上都可以支持JTAG命令来配置FPGA的方式,而且JTAG配置方式比其他任何方式优先级都高。JTAG接口有4个必需的信号TDI, TDO, TMS和TCK以及1个可选信号TRST构成,其中:
. TDI,用于测试数据的输入;
. TDO,用于测试数据的输出;
. TMS,模式控制管脚,决定JTAG电路内部的TAP状态机的跳变;
. TCK,测试时钟,其他信号线都必须与之同步;
. TRST,可选,如果JTAG电路不用,可以讲其连到GND。
用户可以使用altera的下载电缆,也可以使用微处理器等智能设备从JTAG接口设置FPGA。nCONFIG、MESL和DCLK信号都是用在其他配置方式下。如果只用JTAG配置,则需要将nCONFIG拉高,将MSEL拉成支持JTAG的任一方式,并将DCLK拉成高或低的固定电平。
FPGA和10针插座连接图:
2. AS(主动串行)模式
由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EPCS4配置器件专供AS模式,目前只支持 Stratix II 和Cyclone系列。使用Altera串行配置器件来完成。Cyclone器件处于主动地位,配置器件处于从属地位。配置数据通过DATA0引脚送入 FPGA。配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。
AS配置器件是一种非易失性、基于flash存储器的存储器,用户可以使用altera的ByteBlaster II加载电缆、altera的“altera programming unit”或者第三方的编程器来对配置芯片进行编程。它与FPGA的接口为以下简单的4个信号线:
. 串行时钟输入(DCLK):是在配置模式下FPGA内部的振荡器(oscillator)产生的,在配置完成后,该振荡器将被关掉。工作时钟在20MHz左右,而fast AS方式下(stratix II和cyclone II支持该种配置方式),DCLK时钟工作在40MHz左右,在altera的主动串行配置芯片中,只有EPCS16和EPCS64的DCLK可以支持到40MHz,EPCS1和EPCS4只能支持20MHz。
. AS控制信号输入(ASDI);
. 片选信号(nCS);
. 串行数据输出(DATA)。
FPGA和串口配置芯片连接图:
FPGA、串口配置芯片和10针插座连接图1:
FPGA、串口配置芯片和10针插座连接图2:
3. PS(被动串行)模式
PS(被动串行)则由外部计算机或控制器控制配置过程,是使用最多的一种配置方式。。所有altera FPGA都支持这种配置模式。通过altera 的下载电缆、加强型配置器件(EPC16,EPC8,EPC4)等配置器件或智能主机(如微处理器和CPLD)来完成,在PS配置期间,配置数据从外部储存部件(这些存储器可以是altera配置器件或单板上的其他flash器件),通过DATA0引脚送入FPGA。配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。
与FPGA的信号接口:
. DCLK(配置时钟);
. DATA0(配置数据);
. nCONFIG(配置命令);
. nSTATUS(状态信号);
. CONF_DONE(配置完成指示)。
在PS方式下,FPGA处于完全被动的地位。FPGA接收配置时钟、配置命令和配置数据,给出配置的状态信号以及配置完成指示信号等。PS配置可以使用altera的配置器件(EPC1、EPC4等),可以使用系统中的微处理器,也可以使用单板上的CPLD,或者altera的下载电缆,不管配置的数据源从哪里来,只要可以模拟出FPGA需要的配置时序来,将配置数据写入FPGA就可以。
在上电以后,FPGA会在nCONFIG管脚上检测到一个从低到高的跳变沿,因此可以自动启动配置过程。
(1)根据模式的不同,MSEL有不同的设置。
(2)配置芯片EPCS16存储大小为16Mbits=2MB.
(3)实验室的板子的配置方式JAG方式和“AS方式”,但是没有AS配置口,将SOF文件转换我JIC文件,利用JATG将配置文件下载到配置芯片中。所以,可以把这种方式叫做伪AS模式。
串口配置芯片EPCS16的4个引脚(DATA、DCLK、nCS和ASDI)与FPGA相连即可,JTAG口连接方式按上文所述即可。MSEL只有三位,配置为010(AS模式),这里按照AS模式连 接。
这种利用JTAG将配置文件下载配置芯片的方式如下所示:
通过serial flash loader design将JTAG interface和AS interface联系起来。详见C3手册“Programming Serial Configuration Devices In-System Using the JTAG Interface”部分。当然,也可以将AS和JTAG都保留,详见“Combining JTAG and Active Serial Configuration Schemes”部分。
有以下问题:
1. JTAG口4脚和6脚的连接不理解。4脚按手册说法如下,那么应该是VCCA(模拟),而不是设计中的VCC(数字)。学习FPGA电源设计!
而6脚按手册说法如下,那么应该是不连接吧,设计中连了VCC。
2. 虽然nCONFIG、nSTATUS、CONFIG_DONE与外部ARM连接,但是DATA[0]、DCLK没有和ARM相连,所以项目中PS模式通过ARM配置FPGA不行,不知这样连接是否可以实现AS模式的远程更新??
答:应该是存在设计问题。
参考资料:http://bbs.ednchina.com/BLOG_ARTICLE_1796890.HTM,http://blog.sina.com.cn/s/blog_7d1e2bb101016w1n.html,