




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 FPGA中SPI复用配置的编程方法FPGA中SPI复用配置的编程方法SPI(SerialPeripheralInteRFace,串行外围设备接口)是一种高速、全双工、同步的通信总线,在芯片的引脚上只占用4根线,不仅节约了芯片的引脚,同时在PCB的布局上还节省空间。正是出于这种简单、易用的特性,现在越来越多的芯片集成了这种通信协议。1SPI配置介绍11Spantan-3ESPI配置流程SPI方式是通过符合SPI接口时序的第三方SPIFlash对FPGA进行加载。它适合作为FPGA硬件结构的bit文件保存介质,如果FPGA中SPI复用配置的编程方法S
2、PI(Serial Peripheral InteRFace,串行外围设备接口)是一种高速、全双工、同步的通信总线,在芯片的引脚上只占用4根线,不仅节约了芯片的引脚,同时在PCB的布局上还节省空间。正是出于这种简单、易用的特性,现在越来越多的芯片集成了这种通信协议。1 SPI配置介绍11 Spantan-3E SPI配置流程SPI方式是通过符合SPI接口时序的第三方SPIFlash对FPGA进行加载。它适合作为FPGA硬件结构的bit文件保存介质,如果应用软件工程编译后的代码较小,保存在同一片SPI FLash中(即复用SPI Flash)无疑是可行的最廉价方案。由于本没计软件工程规模较小,所
3、以利用此复用SPI Flash方式对FPGA进行配置,既保存FPGA配置的bit文件,也保存应用软件工程的bit文件。系统在上电或向PROG_B引脚发出低脉冲后,FPGA芯片经过一个初始化序列清空内部FPGA配置存储器。此序列开始时,DONE和INIT_B引脚均转为低。初始化完成后,INIT_B引脚转为高,并采样芯片的配置模式及变量选择引脚。SPI模式下,FPGA对变量选择(VS2:0)引脚采样,以确定发出哪个SPI命令序列。当初始化之后发出INIT_B信号时,模式引脚和变量选择引脚都必须处在正确的逻辑级,以确保正确采样。在变量选择引脚选择SPI命令集之后,FPGA将CSO_B选择信号置为低,
4、并且开始通过FPGA的CCLK引脚对SPI Flash存储器进行时钟控制。接着发出8位读命令后跟24位起始地址0x000000和目标命令集的适量虚拟字节。FPGA从地址0开始读取SPI Flash存储器阵列,直到读完所需的配置位数。如果从存储器件读取到有效比特流,则发DONE信号,以指示FPGA配置成功。图1为SPI配置方式的时序。图2是AT45DB161DSPI Flash的配置接口。这种配置方式只占用了FPGA芯片的4个引脚,而且配置成功之后,所有SPI引脚都成为可用的用户IO引脚,这就节省了FPGA的引脚资源。12 SPI Flash存储器的复用复用SPI Flash是指既用它来保存硬件
5、配置文件、Bootloader引导程序还用来保存用户应用程序。在加载阶段,FPGA自动从SPI Flash中读取硬件配置bit文件及Bootloader程序进行配置到片内BRAM中运行。当完成加载后,FPGA内部逻辑启动,通过运行的Bootloader程序读取SPI Flash中的用户应用程序,并写到外部SDRAM的相应位置,最后Bootloader程序切换指令指针到SDRAM指定位置,在外部的SDRAM中开始执行应用程序。图3给出了本系统中复用SPI Flash嵌入式系统结构图,用EDK中的opb_sdram连接外部SDRAM,用opb_spi连接SPI Flash(AT45DB161D),
6、通过Bootloader软件程序实现从SPI Flash中复制用户应用程序到SDRAM中,然后在SDRAM中运行。但是,Boot-loader在系统上电时会通过FP-GA芯片的配置引脚首先加载到BRAM中运行,这样就可以实现上电自动加载启动程序。2 Bootloader引导程序的设计在工程代码编写之前要求对硬件器件有所了解,主要需要了解FPGA所需要的配置文件空间,还有Flash存储结构。例如:XC3S500E配置文件空间为2 270 208位,所以要根据它计算存储应用程序的基地址。AT45DB161D是串行接口的闪存芯片,它包含有17301 504位,被组织为4 096页,每页512528字
7、节。除了主存储器,AT45DB161D还包括2个SRAM数据缓冲区,每个缓冲区512528字节。在主存储器正在编程时,缓冲区是允许接收数据的,并且支持数据流式写入。(此处为528字节页)AT45DB161D的存储器阵列分为3个级别的粒度,分别为扇区、块与页。图4对各个级别进行了分析,详细说明了每个扇区与块的页数。所有的编程操作都是针对页的。擦除操作可以作用于芯片、扇区、块或页。最后利用定义的空函数int(*boot_app_jump) (void);”将地址指针指向内存的应用程序基地址,使其从此处开始运行程序。将目的地址赋给跳转函数boot_app_jump=(int(*)(void)DEST
8、INATION_AD-DR;运行跳转函数,使其在该函数地址开始运行程序boot_app_jump();3 SPI Flash软件引导过程及SPI Flash编程本实验使用简单的应用程序(打印hello_world),即工程“hello_world”。工程serial_Flash_bootloader就是上面设计的引导程序。31 编译用户应用程序的二进制文件由于应用程序要在外部SDRAM中运行,所以不需要初始化BRAM存储器,如图5所示。为了指明程序的开始地址和应用程序的可执行文件的产生路径,需要在编译选项中设置。右键“应用程序工程”,SetCompiler Options在Output ELF
9、 file中选择可执行文件的产生路径,如XC3S500Ehello_worldhello_worldelf,在Program Start Address中键入程序执行的起始地址(这里是SDRAM的基地址:0x90000000)。接下来编译应用程序工程,编译完成后就会在XC3S500Ehello_world文件夹中产生hello_worldelf。为了后面对SPI Flash编程的需要,应将elf转变成二进制形式的文件。这就需要利用cygwin shell窗口命令来完成,这个脚本提供了一个简单的命令实现这个目的。利用mb-objcopy-O binary<options>&l
10、t;ELF file input><bi-nary file to output>命令就可以将elf转变成二进制形式的文件(b文件)。例如:mb-objcopy-O binary hello worldhelloworldelfhello_worldhello_worldb用来在工程目录下hello_world文件夹创建工程的一个hello_worldb的二进制文件。生成的文件hello_worldb大约2 KB左右。32 Bootloader引导程序与硬件配置文件的生成serial_Flash_bootloader要初始化到BRAM中(即在“工程”上右键BRAM Initi
11、alization and unmark a11)。这样做的意义是在编译Bootloader程序时就将它编译后的执行文件(elf文件)加入到硬件systembit中生成一个downloadbit。这个文件既包含了系统硬件配置信息,又包括了Bootloader程序执行文件。由于设置了初始化到BRAM中,所以在系统上电时才能使Bootloader程序自动加载到片内BRAM中运行,实现程序的引导功能。只要利用EDK用软件中download bitstram功能就可以实现上述功能。33 编写SPI PROM文件本部分提供为SPI Flash存储器创建PROM文件的指导原则。在将生成bitstrambi
12、t比特流转换成SPI格式PROM文件之前,设计人员必须确认该比特流是用bitg-en-g StartupClk:Cclk选项生成的。此选项使启动顺序与Spartan-3E内部时钟同步,从而确保FPGA功能正常。将硬件配置和serial_Flash_bootloader引导程序的bitstrembit转换为MCS格式文件。将前面得到的应用程序的二进制文件(hello_worldb)转换为MCS格式文件。将以上得到了2个MCS文件合成1个MCS文件。编程SPI Flash芯片。以上过程,除了以外,Xilinx公司的iMPACT编程软件都可以实现。要由DOS命令完成。所以下面都是以DOS命令来完成编
13、程的全过程。再使用DOS命令完成格式化和编程之前,要对down-loadbit、应用程序、spiPartNam和spi_offset参数进行设置,以便XSPI软件程序能对用户要求加以识别。如下:set bitstream=implementationdownloadbitset application="hello"_worldset spiPartName="AT45DB161D"SPI Flash器件的名称set spi_offset=0x63000hello_world的应用程序就会从Flash中0x63000地址向上存放,引导程序也是从这里开始加
14、载到SDRAM中的接下来就是执行转换的命令。第1步:REM Step 1Convert downloadbit to mcsimpact convert_bits_to_mcscmd此命令将硬件配置和serial_Flash_bootloader引导程序的bitstrembit转换为MCS格式文件。第2步:REM Step 2Convert binary application tomcsxmcsutil-accept_notice-iapplicationb-oappli-cationmcs-29完成了应用程序(hello_world)的二进制文件(hello_worldb)转换为MCS格式
15、文件。第3步:REM Step 3combine application mcs withbitstream mcsxmcsutil-accept_notice-i bitstreammcsapplica-tionmcs-o combinedmcs-16-segaddr 0x00spi_off-set-usedataaddr-padff这个命令将以上得到了的MCS文件合成一个MCS文件。第4步:REM Step 4Program the AT45DB161Dxip-accept_notice-skip_syncword_check-mcs-spi_epv-icombinedmcs-o verifytxt-select_cable 1完成对SPI Flash芯片编程。此命令使用轮询擦除SPI内容,然后对SPI器件的内容进行编程和验证。任何验证不匹配项都记录在resultout文件中。默认情况下,XSPI认定数据是HEX格式。如果输入文件是HEX格式,则去除-mcs选项。Xilinx软件工具iMPACT从Spartan-3E比特流生成SPI格式PROM文件。SPI存储器件首先串行输出数据的MSB字节,而Xilinx PROM则首先输出数据的LSB。与标准Xilinx PROM文件相比,SPI格式PROM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务平台用户信息保护协议
- 货物框架买卖合同书
- 电子竞技引领办公自动化的新方向
- 小学《生命教育与生态安全》实践活动计划
- 2025年时尚家居体验店装修与陈列设计合同
- 一年级音乐期末复习计划
- 人教版四年级数学上册复习计划指南
- 2025年度商场车库租赁与停车信息平台开发合同4篇
- 2020-2025年中国燃气涡轮发电机行业市场前景预测及投资方向研究报告
- 体育赛事赞助协议
- 马工程教材《公共财政概论》PPT-第四章 政府消费支出
- GB/T 20313-2006建筑材料及制品的湿热性能含湿率的测定烘干法
- 拉挤树脂及其成型工艺介绍课件
- 山东省中考物理总复习 八上 第6讲 质量与密度
- 2023年南京信息职业技术学院单招职业技能考试笔试模拟试题及答案解析
- 10KV供配电工程施工方案设计
- 商务部专员绩效考核指标量表
- (完整)PEP人教版小学生英语单词四年级上册卡片(可直接打印)
- 面神经疾病课件
- 基本公共卫生服务项目绩效考核的课件
- 三年级下册小学科学活动手册答案
评论
0/150
提交评论