使用AVR单片机配置FPGA

发布者:幸福时刻最新更新时间:2013-12-06 来源: eefocus关键字:AVR单片机  FPGA 手机看文章 扫描二维码
随时随地手机看文章

Altera公司的ACEX、FLEX等系列的FPGA芯片应用广泛,但其FPGA基于SRAM结构,决定电路逻辑功能的编程数据存储于SRAM中。

由于SRAM的易失性,每次上电时必须重新把编程数据装载到SRAM中,这一过程就是FPGA的配置过程。FPGA的配置分为主动式和被动式。在主动模式下,FPGA上电后主动将配置数据从专用的EPROM(如EPC1,EPC2等)加载到SRAM中。被动模式下,FPGA为从属器件,由相应的控制电路或微处理器控制配置过程,包括通过下载电缆由计算机控制配置和单片机模拟配置时序配置。其中,专用的EPROM价格高,可编程次数少,而计算机配置在现场应用中又很不现实,因此本文提出一种基于AVR单片机的被动配置方式。由于AVR系列单片机的内嵌闪存的容量为8~128kB,可容纳中小规模(10万门以下)FPGA的配置文件并进行配置,另外还可实现多任务配置。以下将以FLEX10K10为例,介绍单片机对FPGA的双任务配置。

ATmega系列单片机

ATMEL公司的ATmega系列单片机根据片内闪存的大小分为ATmega8、ATmega32、ATmega128等。本设计采用的是ATmega32,该单片机片内含16K×16共32KB的片内可编程ROM,可擦写10 000次,能装载2万门以内FPGA的配置数据,最高性能可达16MIPS,可在最短的时间内完成FPGA的配置。如需要配置门数更高的FPGA,可采用MEGA128。

硬件电路设计

ATmega32内含32KB的闪存,FPGA为FLEX10K10,其配置文件的大小为15KB,因此该方案可实现双任务配置。硬件连接上,采用单片机配置模式时,须将FLEX10K10的MESL0、MESL1、nCE接地,同时将nCONFIG、DCLK、DATA0、nSTATUS、CONF_DONE分别与MEGA32的PA0~PA4相连。MEGA32的I/O口均是可编程的,根据需要将PA0、PA1、PA2设置为输出口,PA3、PA4设置为输入口。另外,需在单片机的PB0、PB1上连接两个按键以选择配置任务。具体电路如图1所示。

图1 硬件原理框图

配置方式

Altera公司FPGA器件的配置方式主要有AS(主动串行方式)、PS(被动串行方式)、PPS(被动并行同步方式)、PPA(被动并行方式)和JTAG(边界扫描方式),使用单片机对FPGA进行配置主要是采用单片机来模拟PS方式的时序,以实现FPGA器件的配置。

被动串行方式的工作过程如下:配置时需要五个引脚,其中nCONFIG、DCLK、DATA0为单片机的输出引脚,nSTATUS、CONF_DONE为单片机的输入引脚。系统上电后,由单片机使nCONFIG上产生一个大于8μs的负脉冲,FPGA检测到nCONFIG的下降沿后将启动配置过程,nSTATUS和CONF_DONE随之拉低。nCONFIG抬高1μs内,nSTATUS抬高,配置数据从DATA0上由低位到高位依次送出,当所有配置数据全部送出后,CONF_DONE被抬高,当MCU检测到这一变化后即结束配置过程。随后,DCLK必须再提供几个周期的时钟(对于FLEX10K需要10个周期)以供FPGA正确完成初始化,进入用户模式。若配置过程出错,nSTATUS将被拉低,MCU重新启动配置过程。其配置时序如图2所示。

图2 被动串行配置时序图[page]

配置文件

Altera公司的开发工具Quartus II和MAXPlus II可生成多种配置文件,包括sof、pof、hex、rbf、ttf等。该配置方案中采用的是rbf文件,rbf文件为二进制文件,包含了全部配置数据,1字节的rbf数据包含8bit的配置数据,配置时最低位先由低位到高位依次装入。

软件设计

使用单片机对FPGA的设计关键是软件设计。在双任务配置中,两个任务的配置数据分别存放于不同起始地址的连续存储器区域中。单片机上电复位后,进入按键查询状态,检测到按键按下后,单片机从相应起始地址中读出数据并对FPGA进行配置。配置过程按照PS方式的时序要求进行,配置完成后重新进入按键查询状态。控制程序流程图如图3所示。

图3 控制程序流程图

在双任务配置中,两个任务的配置数据分别存放于指定的地址中,由引导程序从指定地址中读出数据并对FPGA进行配置。引导程序和rbf文件(配置数据)的合并是软件设计的关键,以下详述其处理过程。

(1) 将引导程序在ICCAVR下编译并生成mcu.hex,hex文件格式是由Intel公司定义的,是按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示. 以下是一个例子。

:10008000AF5 F67F0602703E0322CFA92007780C361
:1000900089001C6B7EA7CA9200 FE10D2AA00477D81
:0B00A00080FA92006F3600 C3A00076CB
:00000001FF

第一行,“:”符号表明记录的开始。后面的两个字符表明记录的长度,这里是10h。后面的四个字符给出调入的地址,这里是0080h。后面的两个字符表明记录的类型后面则是真正的数据记录, 最后两位是校验和检查,最后一行是结束串,总写成这样;

(2)将fpga1.rbf改为fpga1.bin,使用“超级单片机工具”将fpga1.bin转换成起始地址为0x0273(mcu.hex的数据长度)的FPGA1.hex;
(3)将fpga2.rbf改为fpga1.bin,使用“超级单片机工具”将fpga2.bin转换成起始地址为0x3bd7(mcu.hex和fpga1.hex的数据长度和)的FPGA2.hex;
(4)将删除结束串后的mcu.hex和fpga1.hex与FPGA2.hex依次合并成config.hex;
(5)将config.hex用下载线下载到ATmega32单片机中。

结论

以上方案可适用于3.3V和5V系统的FPGA配置,无须扩展EEPROM,还能实现多任务配置。

关键字:AVR单片机  FPGA 引用地址:使用AVR单片机配置FPGA

上一篇:一种新思路的太阳能自动跟踪系统设计
下一篇:一种实用的车载空调控制器设计

推荐阅读最新更新时间:2024-03-16 13:31

Proteus—AVR单片机(ATMEGA16单片机)系统时钟及时钟选项设置
在设置之前呢,我得把ATMEGA16里面的datasheet里面的资料说说,当然是关于系统时钟和时钟选项的 一、系统时钟及时钟选项(这里主要是介绍原理,三里面会介绍如何设置,其实你会了一,那后面的二和三就相当简单了~~你懂得,就是根据一来的 ) 1. 时钟系统及其分布: Figure 11为AVR的主要时钟系统及其分布。这些时钟并不需要同时工作。为了降低功耗, 可以通过使用不同的睡眠模式来禁止无需工作的模块的时钟。 1)CPU 时钟- clkCPU CPU时钟与操作AVR内核的子系统相连,如通用寄存器文件、状态寄存器及保存堆栈指针 的数据存储器。终止CPU 时钟将使内核停止工作和计算。 2)I/O 时钟- clkI/O I/
[单片机]
Proteus—<font color='red'>AVR单片机</font>(ATMEGA16单片机)系统时钟及时钟选项设置
基于SOPC的EDSL Modem的研制
  1 引言   目前,xDSL宽带接入技术充分利用现有双绞线资源,为用户提供非对称高速通道,尤其是ADSL技术已被人们广为接受而成为宽带接入技术的主流。然而随着 IP交换技术的成熟与发展,主干网中交换方式将由 ATM逐步向IP交换方式转换,因此基于 ATM的ADSL技术也日益表现出其本身的局限性。基于此,中国信息产业部与2003年1月提出了基于IP交换网的EDSL技术,全称为基于时分双工的以太数字用户线系统(TDD based Ethernet Digital Subscriber Line System(TDD-EDSL)),它结合了目前广为应用的两大通信技术 xDSL和Ethernet 的精华,首次在接入网范畴内实现了I
[嵌入式]
FPGA为车用微控制器提升设计灵活性
在汽车电子中广为采用的微控制器(MCU)正快速面临时间和成本的压力。使用MCU的主要优势一直以来都是‘创造具有高性价比的高阶系统整合’。然而,在此一优势之下,有一些与元件本身相关的潜在成本是超乎于其单价水平的。例如,若选用的元件无法创造所需特性,则必须增加外部逻辑、软体或其它整合元件。 再者,目前汽车终端市场对于需求的变化屡见不鲜,以至MCU很快就变得不适用;许多具有专门特性以及固定专用介面数量的MCU,经过短暂的评估后即无法满足市场需求。因此,系统供应商不得不重新设计硬体及编写相关软体,在某些情况下,甚至必须更换处理器核心。 MCU的困境 MCU制造商正被迫面对会为整个市场带来巨大影响的挑战。MCU是针对应用而设计的
[嵌入式]
基于ARM和FPGA的微加速度计数据采集系统设计
0 引言 加速度计是一种应用十分广泛的惯性传感器,它可以用来测量运动系统的加速度。目前的加速度计大多采用微机电技术(MEMS)进行设计和制造的微型加速度计,由于采用了微机电技术,其设计尺寸大大缩小,一个MEMS加速度计只有指甲盖的一小部分,MEMS加速度计具有体积小、重量轻、能耗低等优点。 随着微加速度计的应用越来越广泛,对于微加速度计的数据信号采集和存储变得极为重要。传统的数据采集方法多数是用单片机完成的,其编程简单、控制灵活,但缺点是控制周期长、速度慢,特别是对高速转换的数据来说,单片机的慢速度极大地限制了数据传输速度。而FPGA(现场可编程门阵列)具有单片机无法比拟的优势。FPGA时钟频率高,内部延时小,全部控制逻辑
[单片机]
基于ARM和<font color='red'>FPGA</font>的微加速度计数据采集系统设计
基于ARM和FPGA的电力光纤信号分析仪的设计
随着电力网络的扩大复杂化和区域互联趋势的到来,电力系统的行为也将越来越复杂。一些原有的假设条件和简化模型的适用性都将接受进一步的挑战与检验。在此情况下丰富详尽的现场实测数据,尤其是故障或非正常状态下的数据。无疑将具有越来越重要的价值。它们不仅是分析故障原因检验继电保护动作行为的依据,也为电力工作者研究了解复杂系统的真实行为,发现其规律提供宝贵的资料,这种电力信号实时分析仪可以实时监测各种有用信息,电力系统也对其提出了更高的要求,而计算机技术的不断突飞猛进,也为这种光纤信号分析仪的采样速率、分析、处理、显示能力提供保证,为提高监控可靠性、准确性、灵活性、实时性以及信息资源共享提供了充分的条件。 目前,IEC61850标准的制定及
[测试测量]
基于ARM和<font color='red'>FPGA</font>的电力光纤信号分析仪的设计
基于FPGA的图像传感器驱动设计
汽车在给人们生活带来便利的同时也带来了交通事故。其中超速行驶是造成交通事故的重要隐患之一。据研究表明,目前针对车辆超速行驶情况的道路抓拍系统中所使用的图像传感器大多为小面阵器件,普遍为100万~200万像素,从而导致抓拍图像的像素比较低、能够同时抓拍的车道数较少等等问题。面对这一系列问题,大面阵的图像传感器便逐渐成了人们关注的热点。在设计过程中,分析了具有500万像素的CMOS图像传感器MT9P401的工作模式,选用QuartusⅡ做为开发工具,使用Verilog HDL语言对驱动电路设计方案进行了硬件描述,并对所设计的驱动时序进行仿真和验证。 1 MT9P401图像传感器介绍 1.1 主要特点 MT9P401是Micron
[模拟电子]
基于<font color='red'>FPGA</font>的图像传感器驱动设计
可编程芯片:拼合成一个模拟解决方案
   要点   经济形势刺激了对可编程模拟元件的兴趣。   不存在将可编程模拟芯片用于一个系统的设计流程。   设计流取决于供应商为理解芯片而提供的隐喻(metaphor)。   今后,这些设计流也许是今天FPGA(现场可编程门阵列)流的混合信号版。   可配置模拟IC已经出现了多年,表面看来对市场的影响不及其数字同胞FPGA(现场可编程门阵列)。不过,当前的经济形势却使可编程模拟标准产品的概念突然显现出吸引力。一些需求能很好地适合这些器件的优点:保持在某个产品领域的设计前沿,不花费很多的设计成本,并且不存在会影响任何一个设计进入量产的最终用户需求。这样的日子可能为时不远了。 不过,如果可编程模拟时代到来了,仍
[嵌入式]
可编程芯片:拼合成一个模拟解决方案
FPGA基于非易失性技术的低功耗汽车设计
  概述   可编程逻辑器件已经越来越多地用于汽车电子应用,以替代ASIC和ASSP器件。Actel FPGA基于非易失性技术(快闪和反熔丝),不易发生由中子引发的固件错误,因而成为适用于关键性汽车应用(如动力传动和安全设备)的唯一FPGA技术。请参照产品选择指南以了解适用于各种汽车电子解决方案的Actel器件清单。   爱特公司能够为最严苛的汽车电子应用要求,提供可靠的解决方案。        爱特公司拥有开发功能强大的军用和航天用FPGA的传统优势和丰富经验,足已证实我们的技术在关键性应用中具有独特的优势。Actel FPGA器件不单能让产品运作畅顺,还能够确保安全运作。因而,汽车供应商可以依赖Acte
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved