基于SD卡的Virtex FPGA 配置方案

发布者:会弹琴的鲸鱼3312最新更新时间:2011-12-27 来源: 互联网关键字:Virtex  FPGA 手机看文章 扫描二维码
随时随地手机看文章

1.引言

  由于 FPGA 良好的可编程性和优越的性能表现,当前采用FPGA 芯片的嵌入式系统数 量呈现迅速增加的趋势,特别是在需要进行大规模运算的通信领域。目前FPGA 配置数据一 般使用基于SRAM 的存储方式,掉电后数据消失,每次上电后都要重新写入。配置数据的 写入方式有3 种,即使用JTAG 仿真器、使用专用芯片以及使用微处理器。JTAG 仿真器的 方式在调试的时候使用较多,能随时修改,但缺点是FPGA 芯片必须与电脑主机连接,失去 了灵活性。使用专用芯片的方式可以将配置数据事先存储在非易失性存储介质中,为大规模 升级提供了方便,但不利之处在于专用芯片往往价格较高,并且也必须采用特定的存储介质, 提升了系统成本,而且没有利用到板上的现有资源,需要为配置芯片设置出专用的空间,占 用了电路板上的空间资源。而第三种方式可以利用当前嵌入式系统中一般都存在的微处理 器,同时也可以自行选择合适的存储介质。下面就这种配置方案进行说明。

  2. 系统介绍

  2.1 系统工作原理

  本配置方案中使用的微控制器是Philips 公司生产的ARM7 处理器LPC2468。FPGA 则 是Xilinx 公司的Virtex SX95T。存储配置数据的介质是成本较低而且使用广泛的SD 卡。

  系统的工作原理是上电时微控制器LPC2468 从SD 卡中读取FPGA 的配置文件,然后 通过其通用IO 管脚模拟FPGA 的某种配置模式的时序,将配置文件写入到FPGA 的配置 RAM 中。Virtex 系列FPGA 有几种不同的配置模式,每种配置模式使用到的管脚以及配置 信号的时序都是不同的, 因此对配置模式需要作出合适的选择。

  2.2 Viretex 系列FPGA 的配置模式

  Viretex 系列FPGA 的配置模式是由上电时其专用配置管脚的状态决定的,对应的关系 如下表所示:

  

  

  因在系统中使用微处理器作为主控制器,因此FPGA 的模式需选择Slave 方式,所以有 2 种模式可以选择,即Slave SelectMap 和Slave Serial。这2 种模式的区别在与数据管脚的数 目不同,Slave Serial 模式只有1 个管脚用于数据传输,属于串行传输,而Slave SelectMap 模式有8 个管脚用于数据传输,属于并行传输。这2 种模式可以任意选择,本文选择的是 Slave SelectMap 模式。

  2.3 Slave SelectMap 配置模式

  Slave SelectMap 配置模式在管脚信号功能、配置流程、配置数据等方面有自己的特点, 在进行电路板设计以及程序编写时需要注意。下面对其主要特点进行说明。

  2.3.1 Slave SelectMap 模式使用的管脚信号:

  SelectMap 模式下使用的FPGA 管脚为:

  

 

  根据上表,可以将微控制器的通用IO 管脚与上述FPGA 管脚连接起来,连接电路图如图1 所示:

   

  2.3.2 Slave SelectMap 模式的配置流程

  Slave SelectMap 模式下提供时钟的是外部器件,本方案中的时钟信号是CCLK 使用 ARM 芯片的通用IO 进行模拟。同时,该模式下数据管脚有8 个,因此在每个CCLK 的上 升沿,FPGA 可以读入1 个字节的数据。需要注意的是这1 字节的最高位是D0,而不是一 般微处理器默认的D7,在电路板布线和编写配置程序时应给予相应改变。

  配置过程的具体流程如图2 所示。

  

  接收完配置数据后,DONE 管脚会被拉高。但这并不是表示配置过程已经结束,系统仍 需要时钟来进行后续的上电启动工作。为保证上电配置过程的正确进行,最好的办法是将配 置文件中的所有数据写入FPGA 中之后,然后继续输出CCLK 信号,直到DONE 管脚被拉 高。之后,再输出8 个周期的CCLK,保证配置能正常完成。

  根据上述流程,配置程序的主要函数的伪码如下。

  1.初始化函数SelectMAP_Init,在其它函数之前运行。

  SelectMAP_Init(){

  将ARM 通用IO 设置为对应的SelectMap 管脚信号;

  设置 PROGRAM#,CS#和WRITE#管脚为低电平;

  延时至少300ns;

  设置 PROGRAM#为高电平;

  循环检查INIT#是否变为高电平;

  }

  2.发送数据的函数SendData_Byte,发送1 字节的数据。

  SendData(uint8 data){

  拉低CCLK;

  将 D0~D7 电平设置为与data 对应的状态;

  拉高 CCLK;

  }

  3.发送数据的函数SendData_Sector,发送SD 卡中1 个扇区的数据。

  void SendData_Sector(uint8 * data){

  声明计数器,并将初始值设为0;

  调用 SendData_Byte 发送1 个字节的数据,计数器加1;

  检查 BUSY 管脚的状态,等待其变为低电平;

  检查计数器是否到达规定的数据块大小,达到时函数返回,未到达时继续发送数据;

  }

  2.3.3 配置文件的格式

  FPGA 支持将配置文件生成为几种不同的格式,但在本方案中不是所有格式都可以使用 的。一般最常用的格式是.BIN 和.BIT 格式。由于.BIT 格式包含头部开销,会增加额外的处 理过程,因此本方案没有支持.BIT 格式的数据,仅推荐使用.BIN 格式。

  2.4 文件在SD 卡中的存储

  发送数据前,需要先从SD 卡中读取配置文件。所有文件在SD 卡中都是按照一定的格式来组织的,本方案默认文件采用FAT16 格式进行存储。FAT16 格式下,SD 卡的结构如下图所示[3]。

  

  主引导记录中最重要的参数是逻辑扇区的起始地址。获得该参数后即可以读取BIOS 参 数数据块(BPB)。BPB 中存储了扇区(Sector)、簇(Cluster)、文件分配表(FAT)的 大小,以及分区总扇区数等参数,是文件进行操作时必不可少的。文件分配表则是指明了文 件存储的位置,这些位置是以簇为单位的。每个簇包含的扇区数目在BPB 中说明。根文件 夹中存储了各不同文件的文件名和起始簇以及文件大小等信息。

  2.5 配置文件的读取和发送

  根据上述SD 卡存储格式的说明,可以对存储在其中的配置数据进行读取并发送出去。在本方案中,数据的读取和发送是同时进行的。

  在对 SD 卡进行读取时,首先需要读取主引导记录(MBR),获得逻辑扇区的位置,然 后根据该位置读取BIOS 参数数据块(BPB),得到文件分配表(FAT)的位置以及扇区大 小等参数。在读取文件分配表之前,需要先读取根文件夹来获得文件的起始位置,然后再 通过文件分配表获得后续数据的位置。

  得到文件的起始簇号之后,在文件分配表中读取对应该起始簇的字节,获得文件存储的 下一个簇的簇号,这样可以连续的进行读取。在读取一个簇后,即将整簇的数据发送出去。 如果发现文件分配表中某一簇对应的数值是0xFFFF,则说明是文件最后一个簇,这时该簇 的数据可以不足一个整簇,需要对其中的数据进行取舍,以保证发送数据的正确性。

  对配置文件读取和发送的函数伪码如下所示。

  ReadSD_FAT16(){

  读取物理第0 扇区内容,即MBR,获取逻辑0 扇区的位置;

  读取逻辑0 扇区的内容,获取每扇区字节数,每簇扇区数,FAT 表占据的扇区数等参数;

  读取根文件夹的内容,根据配置文件的文件名获取其起始簇号和文件长度;

  将当前簇设置为起始簇;

  While(1){

  读取FAT 中对应当前簇的内容,获得下一个簇的簇号;

  FAT 表中对应当前簇的内容为0xFFFF 时,即说明当前簇是最后一个簇,计算该簇内的有效数据,并进行发送;

  读取当前簇内容,进行发送;

  当前簇指向下一个簇;

  }

  }

  3 结束语

  在当前FPGA 使用领域日趋广泛的情况下,对现有的含有FPGA 的嵌入式产品进行升 级更新成为了一项比较繁琐的工作,特别是在产品数量较多的情况下。本方案提出了采用 SD 卡存储配置数据的配置方案,使用了目前嵌入式系统中常见的ARM 微处理器和SD 卡, 不仅降低了成本,而且利用了现有资源,节省了电路板布线布局的空间。最重要的是使升级 过程更加简洁,在进行调试时也可以灵活使用。本文只给出了对Virtex FPGA 进行配置的情 况,该方案也可以适用于Spartan 系列FPGA。

关键字:Virtex  FPGA 引用地址:基于SD卡的Virtex FPGA 配置方案

上一篇:基于Verilog的顺序状态逻辑FSM的设计与仿真
下一篇:51单片机加CPLD让系统更高效

推荐阅读最新更新时间:2024-05-02 21:48

基于FPGA的监控系统中多画面处理器的设计
  近年来,随着视频监控系统在各个领域的广泛应用,作为视频监近系统组成之一的多画面处理器的应用也愈来愈普遍。如使用一台九画面处理器,则可在一台监视器上同时监控9个目标,只需使用一台录像机便可对9路视频信号同时实时录像。目前多画面处理器有黑白/彩色四、九、十六画面处理器等6种类型。一般说来,多画面处理器除了有画面分割功能外,还须有视频信号切换及报警功能。视频信号功换功能是指多画面处理器有一路视频输出是输入视频信号或画面分割信号的顺序切换,且切换时间可调;报警功能是指多画面处理器能输入、输出报警信号,报警时相应的画面上叠加有报警信息,并将报警信息存储起来以便日后查阅。设计多画面处理器可使用专用DSP芯片,这样虽然满足了速度要求,但开发
[工业控制]
基于<font color='red'>FPGA</font>的监控系统中多画面处理器的设计
基于Spartan-6 FPGA的可扩展驱动控制系统
许多情况下 驱动器 只是大规模工艺的一个组件,因此互操作性也是一项关键的设计要求。而影响这种要求的关键因素是工业网络协议的宽度(即现场总线)和相关器件特性,因为它们用来标准化驱动器在网络中的表达。现场总线(比如 CAN 和 Profibus)自身千差万别,虽然都属于现场总线,但是实际上并不具有互换性。为了降低成本和改善工业控制器 之间的通信,现场总线提供商已经开发出了基于以太网的工业网络解决方案和数种新的协议,比如 EtherCAT 和 Profinet 等。除此之外,EtherNET I/P 也在近年来开始大行其道。不过,这些都是自成体系的技术,迫使制造商不得不支持所有的提供商。   赛灵思设计服务部 (XDS) 已经为
[嵌入式]
基于Spartan-6 <font color='red'>FPGA</font>的可扩展驱动控制系统
基于FPGA的ARM并行总线设计与仿真分析
  在数字系统的设计中,FPGA+ARM的系统架构得到了越来越广泛的应用,FPGA主要实现高速数据的处理;ARM主要实现系统的流程控制。人机交互。外部通信以及FPGA控制等功能。I2C、SPI等串行总线接口只能实现FPGA和ARM之间的低速通信; 当传输的数据量较大。要求高速传输时,就需要用并行总线来进行两者之间的高速数据传输。   下面基于ARM处理器LPC2478 以及FPGA器件EP2C20Q240,以ARM外部总线的读操作时序为例,研究两者之间高速传输的并行总线;其中,数据总线为32位;并在FPGA内部构造了1024x32bits的SRAM高速存储缓冲器,以便于ARM处理器快速读写FPGA内部数据。   1 ARM并行
[单片机]
基于<font color='red'>FPGA</font>的ARM并行总线设计与仿真分析
莱迪思发运首批低成本、低功耗LatticeECP4 FPGA样片
    21ic讯 莱迪思半导体公司日前宣布已经开始发运其下一代LatticeECP4™FPGA系列的密度最大的器件至部分客户。新的LatticeECP4 FPGA系列提供了多种200K LUT以下的低成本,低功耗的中档器件,具有高性能的创新,如低成本封装的6G SERDES,功能强大的DSP块和内置的基于硬IP的通信模块。LatticeECP4-190是这个系列中最高密度的器件,拥有183K  LUT,480个双数据速率DSP乘法器(18×18),5.8 Mbits存储器和12个6 Gbps SERDES通道,使得它非常适合各种成本和功耗敏感的无线、有线、视频和计算应用。莱迪思已发布了三个倒装芯片封装的LatticeECP4-1
[嵌入式]
FPGA芯片厂商复旦微科创板IPO成功过会了
集微网消息 3月31日,据上交所发布科创板上市委2021年第22次审议会议结果显示,上海复旦微电子集团股份有限公司(以下简称:复旦微)科创板IPO成功过会。 据了解,复旦微是一家从事超大规模集成电路的设计、开发、测试,并为客户提供系统解决方案的专业公司。公司目前已建立健全安全与识别芯片、非挥发存储器、智能电表芯片、FPGA芯片和集成电路测试服务等产品线,产品广泛应用于金融、社保、城市公共交通、电子证照、移动支付、防伪溯源、智能手机、安防监控、工业控制、信号处理、智能计算等众多领域。 目前,复旦微的RFID芯片、智能卡芯片、EEPROM、智能电表MCU等多类产品的市场占有率位居行业前列,且产品性能受到三星、LG、VIVO、海尔、
[手机便携]
<font color='red'>FPGA</font>芯片厂商复旦微科创板IPO成功过会了
采用FPGA低成本虚拟测试系统实现
本文选用FPGA实现数据处理、逻辑控制,充分利用PC机,结合Labwindows图形化上层应用软件界面生成的虚拟测试系统具有较强的竞争力。本系统在FPGA单板单片主控器件控制下,实现两路独立、幅值可控的信号发生器,一路虚拟存储示波器,具有外部触发信号和采样时钟的16路高速逻辑分析仪。 硬件设计 2.1硬件系统框图 硬件系统设计是以并行处理能力强、可重配置的低端FPGA单片EP1C6为主控器件。图1所示为硬件系统框图,是由参考电压及选择模块、USB2.0接口模块、电源设计模块、高速存储模块、示波器调理输入A/D转换模块、逻辑分析仪匹配输入比较模块和信号源输出滤波模块组成。 USB
[测试测量]
采用<font color='red'>FPGA</font>低成本虚拟测试系统实现
发明一个基于FPGA的机器人阿凡达
我真心佩服Duane Benson。 为什么? 他呀,正打算自己发明一个机器人阿凡达,他说他还打算为我发明一个机器人呢! 搜寻你无可挑剔的记忆,对,Duane 正是那位微控制器专家。 过去他在机器人项目中使用微控制器,但尽管当时这些设计使用了更为高端,利用更为密集的计算机技术,但现在这些设备开始“过时”了。这也是Duane 开始学习如何使用FPGA 设计的原因。 他在开发FPGA 栏目系列中,撰写文章记录发明过程。 (参见:开发 FPGA,第一部分:所有这些都说明了什么?。) 我与Duane 通电话,电话内容是机器人阿凡达的话题。 全球有多少这样的精灵?你也会觉得惊奇。 例如,日本庆应大学的研究员发明的Telesar V Te
[嵌入式]
以生态之力推动产业创新,英特尔发布两大FPGA新品部署
“芯加速 智未来”,英特尔FPGA中国创新中心发布两大新品部署 身处不断数字化的世界中,我们需要更加高效灵活的计算来处理日益复杂多样的数据,这对半导体技术的创新提出了更高的要求。 近日,“芯加速 智未来”英特尔FPGA中国创新中心前沿技术及新品部署发布会于重庆举办。 发布会上,英特尔FPGA中国创新中心总经理张瑞宣布,创新中心已全新部署英特尔® Agilex™️ FPGA和英特尔® Stratix® 10 NX FPGA两大产品。新品部署将进一步释放创新中心的技术与生态实力,加速推动产业创新。面向新领域、新场景,英特尔始终履行对加速创新的承诺,持续支持高新技术企业创新,为重庆乃至全国的产业创新贡献力量。 英特尔® A
[嵌入式]
以生态之力推动产业创新,英特尔发布两大<font color='red'>FPGA</font>新品部署
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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