当前位置:   article > 正文

Xilinx FPGA——在线升级_基于flash的fpga的在线升级

基于flash的fpga的在线升级

        同以前单片机在线升级的做法一样,本质就是通信+Flash操作+跳转。只是FPGA对应的操作与单片机相比稍微复杂一点。

一、通信驱动

        我使用的是UDP有线传输,

二、Flash芯片驱动

        规划Flash芯片的区域,一般bootloader放在起始位置,APP放在bootloader之后的空白区域。

        以M25P80芯片为例:

2.1 芯片参数

        使用一个芯片,要仔细拜读官方提供的芯片手册。

基本参数如下:

  • 型号:M25P80
  • 容量: 8Mbit * 1024=8192Kbit,,
  • 扇区:一个扇区512Kbit,8192/512=16总共16个扇区
  • 页:   一个扇区可存储512*1024/8=65536Byte(64KByte),一页可存储256Byte, 一个扇区有65536/256=256页

以下两种SPI模式之一运行:

  • CPOL=0,CPHA=0
  • CPOL=1,CPHA=1

        本驱动采用的方式是CPOL=1,CPHA=1(CPOL=1时钟空闲是高电平,CPHA=1偶数边沿数据采样,奇数边沿数据更新)

        使用时要关注各个操作需要的时间:

        各操作命令号:

2.2 Flash扇区擦除

各个扇区的地址如下:

        单个扇区擦除流程:

  1.  发送写使能指令(1Byte)
  2. 等待5ns以上
  3. 发生扇区擦除指令+要擦除的扇区地址(4Byte)
  4. tse

        注:扇区擦除指令+扇区内的任意一个地址即可擦除全部扇区内容        

2.3 Flash页编程

        我使用的是页编程。

        一次写一页(256字节),手册上:超出本页的数据会从本页的起始地址开始写入,先写的数据会被覆盖(例如:本页地址0~255,如果从200地址写入57个字节的数据,那个第56、57个字节的数据会分别被写到地址0、1)

        页编程流程:

  1.  发送写使能指令(1Byte)
  2. 页写指令(1Byte:0x02)+页地址(3Byte)+数据(256byte)
  3. tpp

三、ICAP原语跳转

  3.1、ICAP简介   

        在ISE14.7的这里,可以找到ICAP原语的代码,原语是赛灵思内置的操作,类似Flash芯片的操作指令一般,使用时直接实例化即可。

3.2、ICAP模块信号介绍

  • .BUSY     :1-bit      输出       忙信号               
  • .O            :16-bit    输出       模块输出            
  • .CE          :1-bit      输入       时钟使能段,低有效          
  • .CLK        :1-bit      输入       时钟    ICAP最小周期限制:50.000ns(20.000MHz)  
  • .I              :16-bit    输入       数据输入                    
  • .WRITE   : 1-bit     输入       读写控制线,低写、高读   

3.3、ICAP操作bit流

        起始地址要保证和Flash驱动以及Multboot文件一致:

        要注意手册上说了数据需要以下处理:

3.4、生成MultBoot烧录文件

        

四、 mcs、bit文件的区别

        BIN是纯二进制文件,MCS是ASCII格式的文本文件。

4.1 MCS文件

        MCS是Intel早期为MCS系列 II ISIS-II 系统 代码固化存储指定的文件格式,成为了普遍遵循的标准,Xilinx 的MCS文件也一样,格式大体如下,文件由行组成,每一行由6部分组成:

  • Start code 起始码
  • Byte count 字节长度
  • Address 起始地址
  • Record type 当前记录数据类型
  • Data 数据
  • Checksum 校验码

        MCS文件本质就是hex文件,将后缀名改成hex后用nootpad打开,黑色的数据部分即是要发送给FPGA的程序。

4.2 BIT文件 

        Bit文件相对多一个文件头。可以通过16进制打开的方式,将文件头去除,然后两个文件就会一致。

        bit文件去掉开头的109个字节后,与MCS文件一致。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/217146
推荐阅读
相关标签
  

闽ICP备14008679号