嵌入式系统中从串配置FPGA的实现

时间:2007-10-22

  本文主要论述在ARM嵌入式系统中如何实现FPGA从串配置的方法,将系统程序及配置数据存储在系统Flash中,利用ARM的通用I/O口产生配置时序,省去专用的配置PROM。
  文中ARM微处理器采用samsung公司的ARM7TDMI系列中的S3C4480X,FPGA采用xilinx
公司spartan3E系列中的XC3S100E,详细讨论FPGA的从串配置的时序,同时论述S3C4480X从串配置spartan3E系列FPGA的软、硬件实现方法。实践证明,该方法在成本、体积、灵活性上均具有优势,将此方法应用在嵌入式系统中具有很强的实用价值。

引言
  基于ARM微处理器技术的应用已经得到了广泛、深入的应用,包括工业控制领域、网络应用、消费类电子产品、成像和安全产品等领域。
  FPGA通过把设计生成的数据文件配置到芯片内部的SRAM完成其逻辑功能,具有可重复编程性,可灵活实现各种逻辑功能,FPGA的这种特性使其在现代电子系统设计中得到了广泛应用。
  基于SRAM工艺的FPGA是易失性的,系统掉电后SRAM内的数据将全部丢失,需要外接ROM保存其配置数据,系统每次上电时必须重新配置数据才能正常工作。通常设计时采用两种方案保存SRAM内的数据,一是使用专用的PROM,Xilinx公司的XCFxx系列PROM提供FPGA的配置时序,上电时自动加载PROM中的配置数据到FPGA的SRAM中;另一种是在含有微控制器的系统中,如嵌入式系统,采用其他非易失性存储器来存储配置数据,如EEPROM、FLASH等,微控制器模拟FPGA的配置时序将ROM中的数据置入FPGA中。与前面一种方案相比,在对成本和体积敏感的系统中,该方案更适用。
从串配嚣原理
1.从串配置原理
  Xilinx公司的Spartan3E系列FPGA采用90nm工艺的2.5V低电压FPGA芯片,高性能、低功耗、可无限次编程。XC3S100E总门数达10万门,可采用从串、主串、从并、主并、JTAG等方式进行配置,与从串配置相关的引脚功能及配置如下:
  ①M[2:O]:配置模式选择位。M2,M1,M0均接上拉电阻,即M[2:O]=111时为从串模式。
  ②CCLK:配置时钟位,由微处理器提供,上升沿有效。
  ③DIN:串行数据输入位。
  ④DOUT:串行数据输出位,用于菊花链式配置。
  ⑤)PROG_B:低电平异步复位FPGA内部逻辑位。内部配置Memory完全复位后,该引脚指示高电平,此时才能配置FPGA。
  ⑥ INIT_B:由低电平到高电平跳变时,采样配置模式选择位M[2:0],确定配置方式;配置过程中若出现配置错误,INIT_B将呈现低电平。
  ⑦DONE:复位时为低电平,配置成功,则为高电平。
2.微处理器从串配置FPGA的时序
FPGA的配置过程:
  ①系统上电后,将PROG_B置为低电平,复位FPGA内部逻辑重新配置FPGA,延时100 μs充分复位内部逻辑后,将PROG_B置为高电平。
  ②INIT_B保持低电平,将PROG_B置高电平大于300ns后,FPGA将INILB置为高电平,在INIT_B由低向高跳变的瞬间,采样配置模式选择位M[2:0],采用从串配置模式。
  ③FPGA采样配置模式后,微处理器开始配置FPGA时钟CCLK和数据,在CCLK的每个上升沿,每bit数据被传入到DIN,数据字节先发低位,再发高位,配置过程中若发生错误,则INIT_B呈现低电平。
  ④所有配置数据传送完成,CRC校验无误,则DONE呈现高电平,否则为低电平。
  ⑤DONE为高后,FPGA释放全局三态(GTS),激活IO管脚,释放全部置位复位(GSR)和全局写使能(GWE)有效,开始执行配置区里的逻辑。

3.配置文件产生的方法
  用Xilinx公司提供的开发工具ISE8.1将工程经过综合、映射、布局、布线后产生编程文件,编程文件有.bit、.bin、.mcs、.tek、.hex等格式,其中.bit格式用作JTAG,其他几种格式用作专用PROM编程。系统产生配置文件时首先按照产生专用PROM编程文件的方法产生.bin文件,然后将该bin文件转换成ASC Il码文件存储,并且各个字节之间用逗号分隔,把该配置数据存放在系统程序的一个头文件的数组Config_data_array[]中,作为系统程序源代码的一部分,和其它程序一起编译。
硬件设计
  ARM微处理器S3C44BOX片内集成ARM7TDMI核,同时集成了丰富的外围功能模块,内部增加的8K高速缓;中器大大提高了性能。S3C44BOX可访问256MB的地址空间,运行频率达66MHz,包含4M Flash程序存储器,XC3S100E从串配置程序和配置文件都固化于其中保存,该FIash支持低电压写入(1.65~3.3V)。SDRAM具有8M的运行空间,系统在直接运行Flastl时速度非常慢,通常将Flash中的代码搬到SDRAM中运行。
  S3C4480X与XC3S100E接口主要是PROG_B、lNIT_B、DONE、CCLK、DIN五根信号线,硬件接口电路如图2所示,其中VCC33表示3.3V,VCC25表示2.5V。

1.在S3C44BOX中实现配置时序
  Xilinx公司的每个特定型号的FPGA器件,其配置文件大小是相同的,跟FPGA内部逻辑设计的复杂度无关,Spartan3E系列的10万门FPGA×C3S100E,其配置文件固定为581344bits,若CCLK的时钟周期设置为2 μ s,配置时间约为1.2s。
  软件配置以确保ARM完全按照配置信号的时序工作,本文采用S3C44BOX的通用IO口GPF0、GPFl、GPF2、GPF3胶GPF4模拟FPGA的DIN、CCLK、DONE、INIT_B及PROG_B的时序。
  S3C44BOX微处理中大多数引脚都是多功能引脚,通过端口配置寄存器选择不同的功能。以端口F为例,控制寄存器rP-CONF用作设定引脚功能、输入、输出或特殊功能;数据寄存器rPDATF[0:8]对应GPF0-GPF8引脚上的数据;读写寄存器rP-DATF的相应位,对应于相应引脚的读或写的控制。
  微处理器将CCLK设为上升沿时,可先向GPF1写0,再写1得到,延时程序由for循环实现,程序如下所示:

  微处理器读取某个引脚状态,如等待INIT_B(GPF3)为高电平时,可通过如下程序实现:

  CCLK在每个上升沿将1 bit数据输入到DIN,首先将GPF1置低电平,1bit数据在GPF0准备好,然后将GPF1置高即可传输,重复循环着将Config_data_array[]中的每个字节按先低位再高位的次序写入FPGA中。
实验结果验证
  验证环境:编程专用PROM的led.bin文件。用一个简单的C程序将bin文件转成ASC II码文件,把该ASC II码文件复制到配置数据数组corlfig_data_array[]中,然后把配置程序、配置数据、和系统程序在ADT环境下一起编译,将生成的bin文件通过JTAG口烧写到FLASH中。重新上电后,FPGA配置正常,实验运行结果与预设一致。
结束语
  基于ARM的FPGA从串配置方案结构简单,接线容易,软件编程也不复杂,虽然该配置控制电路以Xilinx公司Spartan13E系列的FPGA为例,但稍加修改即可适用于其它系列的FPGA器件,具有一定的通用性。
  另外,FPGA具有可重复配置的灵活性,在嵌入式系统中可以通过串口、网口远程烧写Flash重构系统功能,这种在线重构技术,为设备的智能化在线维护、功能重组和在线升级等提供了可能,具有很强的灵活性。
  
上一篇:基于USB接口的炮弹测速系统设计
下一篇:嵌入式数字摄像机配置系统设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料