CN106681944B - 一种基于单spi闪存的fx3-fpga快速启动方法及系统 - Google Patents
一种基于单spi闪存的fx3-fpga快速启动方法及系统 Download PDFInfo
- Publication number
- CN106681944B CN106681944B CN201611064399.5A CN201611064399A CN106681944B CN 106681944 B CN106681944 B CN 106681944B CN 201611064399 A CN201611064399 A CN 201611064399A CN 106681944 B CN106681944 B CN 106681944B
- Authority
- CN
- China
- Prior art keywords
- fpga
- spi
- peripheral controller
- usb peripheral
- spi flash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于单SPI闪存的FX3‑FPGA快速启动方法及系统,在单个SPI闪存中存储FPGA配置文件和USB外设控制器固件镜像文件,FPGA配置文件存储在SPI闪存地址0,由FPGA先通过SPI闪存读取配置文件启动,再将USB外设控制器的启动镜像数据映射到地址0,使USB外设控制器得以通过FPGA间接访问SPI闪存实现启动。采用本发明的方法FPGA‑FX3启动速度快,且启动仅需单个SPI闪存,设备成本低、生产方便、实现系统升级功能的软件实现简单。
Description
技术领域
本发明涉及一种基于单SPI闪存的FX3-FPGA快速启动方法及系统。
背景技术
Cypress FX3系列控制器芯片被广泛应用于USB 3.x设备中,并广泛通过GPIF II接口与FPGA相结合实现高速的数据传输。在这样的系统中,通常采用双SPI闪存的方式,1个用于Cypress FX3 控制器,1个用于FPGA的配置,其启动原理如图1所示。此方式系统起动速度快,但需要2片存储器,成本高;系统批量生产时需烧录2个不同的Flash,生产效率低,并且系统更新升级时需更新2个不同的Flash,会增加系统软件的复杂度并降低易用性。
现有技术中采用单SPI闪存启动FX3的原理如图2所示,采用SPI闪存完成FX3启动后,通过SPI读取SPI闪存中FPGA的Bit流,并通过GPIO控制FPGA被动配置接口,实现FPGA的配置启动。采用本方法由于需通过软件控制I/O引脚实现类似SPI协议的FPGA配置协议,其整个配置过程CPU被占用,效率低下,并且GPIO输出配置时钟信号抖动大,可靠性差,时钟频率低,配置速度慢。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种基于单SPI闪存的FX3-FPGA快速启动方法。
为实现上述技术目的,本发明采用如下技术方案:
一种基于单SPI闪存的FX3-FPGA快速启动方法,包括如下步骤:
(1)USB外设控制器Reset信号置于有效状态;
(2)FPGA从SPI闪存中读取FPGA配置文件,完成配置后,将USB外设控制器Reset信号置为无效;
(3)USB外设控制器向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储USB外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据发送至FPGA,FPGA将接收到的数据发送至USB外设控制器,完成USB外设控制器的启动;
其中,所述USB外设控制器为FX3系列的USB3.x控制器。
所述方法中,USB外设控制器、FPGA和SPI闪存采用菊花链式连接,USB外设控制器通过SPI连接FPGA,USB外设控制器作为SPI主设备,FPGA作为SPI从设备;FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备。
USB外设控制器完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使USB外设控制器能够访问到整个SPI闪存。
SPI闪存中预存储FPGA配置文件和FX3固件镜像。
USB外设控制器Reset信号通过下拉电阻置于有效状态。
本发明的另一目的在于提供一种可快速启动FX3-FPGA的系统。
为实现上述技术目的,本发明采用如下技术方案:
一种基于单SPI闪存的FX3-FPGA快速启动系统,所述系统包括USB外设控制器、FPGA和SPI闪存;
USB外设控制器、FPGA和SPI闪存采用菊花链式连接;
USB外设控制器通过SPI连接FPGA,USB外设控制器作为SPI主设备,FPGA作为SPI从设备;
FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备;
其中,所述USB外设控制器为FX3系列的USB3.x控制器。
所述系统中,FPGA、USB外设控制器启动方式具体如下:
(1)USB外设控制器Reset信号置于有效状态;
(2)FPGA通过SPI从SPI闪存中读取FPGA配置文件,完成配置后,将USB外设控制器Reset信号置为无效;
(3)USB外设控制器通过SPI向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储USB外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据通过SPI发送至FPGA,FPGA将接收到的数据通过SPI发送至USB外设控制器,完成USB外设控制器的启动。
采用上述方法和系统的USB 3.x装置也在本发明的保护范围之内。
本发明的方法中,外设控制器对SPI闪存访问通过FPGA间接实现,启动速度快。且启动仅需单个SPI闪存,设备成本低、生产方便、实现系统升级功能的软件实现简单。本发明的内容还可以进一步拓展,通过外设控制器启动代码重定向功能实现存放多个代码版本等功能。
附图说明
图1为现有双SPI闪存启动方式原理图;
图2为现有单SPI闪存启动方式原理图;
图3为本发明单SPI闪存启动方式原理图。
具体实施方式
下面结合附图说明和具体实施方式对本发明的技术方案作进一步描述。
实施例1
本实施例具体说明本发明方法的实现方式。
本发明的方法具体包括如下步骤:
(1)将FX3 Reset信号置于有效状态;
为保证FPGA先完成配置,然后FX3通过FPGA间接访问SPI闪存,在一开始FX3的RESET#为低电平(本实施例中通过下拉电阻拉低),即处于复位状态;当FPGA配置完成后,FPGA将RESET#拉高,此时FX3才开始启动。
(2)FPGA从SPI闪存中读取FPGA配置文件,完成配置后,将FX3 Reset信号置为无效;
FPGA和SPI闪存采用SPI连接,FPGA作为主设备,SPI闪存作为从设备,SPI闪存通过MISO接口将配置文件发送至FPGA,完成FPGA的配置。
(3)FX3向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储FX3固件镜像的地址,并通过SPI发送至SPI闪存;
FX3和FPGA间采用SPI连接,FX3作为主设备,FPGA作为从设备,FX3通过MOSI接口向SPI闪存发送读取命令。
SPI闪存中预先存储FX3固件镜像文件和FPGA配置文件,SPI闪存地址0存放FPGA配置位流,FX3和FPGA均需从SPI闪存的地址0引导,在FPGA配置完成后,FPGA将FX3的启动镜像数据映射到地址0,实现FX3的启动。
(4)SPI闪存将读取数据发送至FPGA,FPGA将接收到的数据发送至FX3,完成FX3的启动。
FX3完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使FX3能够访问到整个SPI闪存。
本发明的方法可应用于FX3及后续系列产品,如FX3PD等。
实施例2
本实施例具体说明本发明系统的实现方式。
如图3所示的一种基于单SPI闪存的FX3-FPGA快速启动系统,所述系统包括FX3外设控制器、FPGA和SPI闪存;FX3外设控制器可通过USB 2.0/3.x接口与USB连接线连接。
其中,FX3外设控制器、FPGA和SPI闪存采用菊花链式连接;
FX3外设控制器通过SPI连接FPGA,FX3外设控制器作为SPI主设备,FPGA作为SPI从设备;
FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备;
FPGA和FX3外设控制器的启动方式具体如下:
(1)FX3外设控制器Reset信号置于有效状态;
(2)FPGA通过SPI从SPI闪存中读取FPGA配置文件,完成配置后,将FX3外设控制器Reset信号置为无效;
(3)FX3外设控制器通过SPI向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储FX3外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据通过SPI发送至FPGA,FPGA将接收到的数据通过SPI发送至FX3外设控制器,完成FX3外设控制器的启动。
FX3完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使FX3能够访问到整个SPI闪存。
Claims (7)
1.一种基于单SPI闪存的FX3-FPGA快速启动方法,其特征在于,包括如下步骤:
(1)USB外设控制器Reset信号置于有效状态;
(2)FPGA从SPI闪存中读取FPGA配置文件,完成配置后,将USB外设控制器Reset信号置为无效;
(3)USB外设控制器向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储USB外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据发送至FPGA,FPGA将接收到的数据发送至USB外设控制器,完成USB外设控制器的启动;
其中,所述USB外设控制器为FX3系列的USB3.x控制器。
2.根据权利要求1所述的方法,其特征在于,USB外设控制器、FPGA和SPI闪存采用菊花链式连接,USB外设控制器通过SPI连接FPGA,USB外设控制器作为SPI主设备,FPGA作为SPI从设备;FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备。
3.根据权利要求1所述的方法,其特征在于,USB外设控制器完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使USB外设控制器能够访问到整个SPI闪存。
4.根据权利要求1所述的方法,其特征在于,SPI闪存中预存储FPGA配置文件和FX3固件镜像。
5.根据权利要求1所述的方法,其特征在于,USB外设控制器Reset信号通过下拉电阻置于有效状态。
6.一种基于单SPI闪存的FX3-FPGA快速启动系统,其特征在于,所述系统包括USB外设控制器、FPGA和SPI闪存;
USB外设控制器、FPGA和SPI闪存采用菊花链式连接;
USB外设控制器通过SPI连接FPGA,USB外设控制器作为SPI主设备,FPGA作为SPI从设备;
FPGA通过SPI连接SPI闪存;FPGA作为SPI主设备,SPI闪存作为SPI从设备;
其中,所述USB外设控制器为FX3系列的USB3.x控制器;
FPGA、USB外设控制器启动方式具体如下:
(1)USB外设控制器Reset信号置于有效状态;
(2)FPGA通过SPI从SPI闪存中读取FPGA配置文件,完成配置后,将USB外设控制器Reset信号置为无效;
(3)USB外设控制器通过SPI向FPGA发送SPI闪存读取命令;FPGA将接收的SPI闪存读取命令中的取地址翻译为存储USB外设控制器固件镜像的地址,并通过SPI发送至SPI闪存;
(4)SPI闪存将读取数据通过SPI发送至FPGA,FPGA将接收到的数据通过SPI发送至USB外设控制器,完成USB外设控制器的启动。
7.根据权利要求6所述的系统,其特征在于,USB外设控制器完成启动后,驱动GPIO引脚通知FPGA启动完成;FPGA取消对SPI闪存的地址翻译,使USB外设控制器能够访问到整个SPI闪存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611064399.5A CN106681944B (zh) | 2016-11-25 | 2016-11-25 | 一种基于单spi闪存的fx3-fpga快速启动方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611064399.5A CN106681944B (zh) | 2016-11-25 | 2016-11-25 | 一种基于单spi闪存的fx3-fpga快速启动方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106681944A CN106681944A (zh) | 2017-05-17 |
CN106681944B true CN106681944B (zh) | 2019-10-18 |
Family
ID=58865946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611064399.5A Active CN106681944B (zh) | 2016-11-25 | 2016-11-25 | 一种基于单spi闪存的fx3-fpga快速启动方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106681944B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610631B (zh) * | 2023-07-21 | 2023-09-26 | 西安智多晶微电子有限公司 | 支持多片SPI Flash访问的FPGA启动配置方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408902A (zh) * | 2008-10-06 | 2009-04-15 | 南京大学 | 基于fpga和usb总线的高速数据采集与传输方法 |
CN103577741A (zh) * | 2013-03-13 | 2014-02-12 | 深圳市振华微电子有限公司 | 一种usb外设 |
CN104881388A (zh) * | 2015-06-12 | 2015-09-02 | 哈尔滨工业大学 | 基于fpga的usb 3.0接口模块 |
CN105608032A (zh) * | 2014-11-01 | 2016-05-25 | 江苏绿扬电子仪器集团有限公司 | Usb接口电路系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080147931A1 (en) * | 2006-10-17 | 2008-06-19 | Smart Modular Technologies, Inc. | Data striping to flash memory |
US20080109566A1 (en) * | 2006-11-03 | 2008-05-08 | Hitt David H | Usb mass storage device interconnect module having automatic file transfer capability and method of operation thereof |
-
2016
- 2016-11-25 CN CN201611064399.5A patent/CN106681944B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408902A (zh) * | 2008-10-06 | 2009-04-15 | 南京大学 | 基于fpga和usb总线的高速数据采集与传输方法 |
CN103577741A (zh) * | 2013-03-13 | 2014-02-12 | 深圳市振华微电子有限公司 | 一种usb外设 |
CN105608032A (zh) * | 2014-11-01 | 2016-05-25 | 江苏绿扬电子仪器集团有限公司 | Usb接口电路系统 |
CN104881388A (zh) * | 2015-06-12 | 2015-09-02 | 哈尔滨工业大学 | 基于fpga的usb 3.0接口模块 |
Also Published As
Publication number | Publication date |
---|---|
CN106681944A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9389804B2 (en) | Host, system, and methods for transmitting commands to non-volatile memory card | |
CN1199117C (zh) | 信源同步及公共时钟协议中的数据传输 | |
CN101545933B (zh) | 用于雷电探测的远程智能升级装置及其实现方法 | |
WO2017172014A1 (en) | Usb interface using repeaters with guest protocol support | |
TWI378467B (en) | Method and system for improving latency to memory device and integrated circuits therefor | |
US7707321B2 (en) | Chained DMA for low-power extended USB flash device without polling | |
CN102012885A (zh) | 采用动态i2c总线实现通讯的系统及方法 | |
CN1169193A (zh) | 同步dma传输协议 | |
WO2002097643A1 (en) | Method and apparatus for interconnecting wired-and buses | |
CN103454996A (zh) | 主从机系统及其控制方法 | |
CN204537117U (zh) | 一种基于微处理器的fpga远程在线升级系统 | |
US20110016267A1 (en) | Low-Power USB Flash Card Reader Using Bulk-Pipe Streaming with UAS Command Re-Ordering and Channel Separation | |
CN104834620A (zh) | 串行外设接口spi总线电路、实现方法以及电子设备 | |
JP2007251947A (ja) | マルチマスタのチェーン接続された二線シリアルバス | |
CN102073611B (zh) | 一种i2c总线控制系统及方法 | |
WO2016197883A1 (zh) | 一种在线更新单片机程序的方法及系统 | |
CN106407145A (zh) | 接口访问方法、系统及存储卡 | |
CN102752180A (zh) | Can总线网络节点的实现方法 | |
CN104077166A (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
CN103077139B (zh) | 使用内部集成电路总线的集成电路及其控制方法 | |
CN106681944B (zh) | 一种基于单spi闪存的fx3-fpga快速启动方法及系统 | |
CN204155612U (zh) | 闪存烧入器及烧入系统 | |
US9892032B2 (en) | Management of random cache read operations | |
US20180357121A1 (en) | Error correction calculation upon serial bus abort | |
CN113886297A (zh) | 一种基于dma的spi并发通讯se装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |