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和串口配置芯片连接图:

image

 

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管脚上检测到一个从低到高的跳变沿,因此可以自动启动配置过程。

image

image

 

 

(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”部分。

image

 

有以下问题:

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.HTMhttp://blog.sina.com.cn/s/blog_7d1e2bb101016w1n.html

ARM动态配置FPGA:http://wenku.baidu.com/link?url=iB6WRAIZ5G32fJERWgiC4VBQt5Wg5fohFy9AWCPMJaUqIqhpPcjWtcgxdM3G580_Xi9lLrtYzWUBcXnOm-jc04NM884mEdO0pAAEdcJGP7C

以上是关于FPGA(microblaze)怎么代替单片机实现串口通信,定时器/计数器,中断、系统时间同步?的主要内容,如果未能解决你的问题,请参考以下文章

ISE14.2如何将FPGA程序和microblaze的程序一起固化到flash里面去?

vivado microblaze 怎么查看波形

Artix-7 50T FPGA试用笔记之Create a simple MicroBlaze System

microblaze例化问题

FPGA 学习笔记:Vivado 2018.2 MicroBlaze Uartlite 配置

请问谁学过基于FPGA的数字图像处理,能不能给点学习的建议,推荐本好书,讲下自己学习的过程