CN104536774B - 芯片软件烧录方法 - Google Patents
芯片软件烧录方法 Download PDFInfo
- Publication number
- CN104536774B CN104536774B CN201410663158.7A CN201410663158A CN104536774B CN 104536774 B CN104536774 B CN 104536774B CN 201410663158 A CN201410663158 A CN 201410663158A CN 104536774 B CN104536774 B CN 104536774B
- Authority
- CN
- China
- Prior art keywords
- usb
- chip
- chips
- sram
- host computer
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明为芯片软件烧录方法,解决巳有方法生产工时长,成本高的问题。通过SPI或I2C总线连接外部存储器至芯片,芯片上电时通过SPI或I2C总线加载应用程序,加载成功后运行应用程序,其特征在于所述芯片为现场可编程门阵列芯片FPGA(Field Programmable Gate Array),所述外部存储器为USB芯片,USB芯片在ROM(只读内存)存储上内置有Bootloader程序,同时内置配SRAM(静态随机存储器)用于写入应用程序,USB芯片引导模式配置为通过USB接口引导,当SRAM没有写入应用程序时,USB芯片从ROM中的Bootloader引导,否则从SRAM存储区引导,整个过程需要从上位机端配置FPGA、USB芯片,共需要一个FPGA应用程序、USB应用程序和一个USB芯片临时升级程序。
Description
技术领域:
本发明与芯片软件引导方法有关。
背景技术:
目前芯片引导方式一般有三种:一、外部存储器引导,即把应用程序烧入外部存储器,然后通过SPI或I2C总线连接外部存储器至芯片,芯片上电时通过SPI或I2C总线加载应用程序,加载成功后运行应用程序;二、芯片内部闪存(Flash)引导,即把应用程序烧入芯片内部闪存,芯片上电时,从内部闪存开始运行应用程序;三、芯片内部随机存储器(RAM)引导,即芯片上电时,首先把应用程序烧入芯片RAM,烧入完成后芯片从RAM处执行应用程序。对于一些USB芯片,还可以通过USB接口引导,如赛普拉斯公司生产的CYUSB3014。
目前广泛使用的是通过外部存储器引导芯片,即把应用程序烧入外部存储器。如果产品含有两个需要烧入应用程序的芯片,如图1所示,则需要两个存储器。
生产时,通过专门的烧录芯片(或叫编程器)烧入应用程序,如烧写NAND Flash的西尔特SUPERPRO/7100烧录器,这样一要消耗生产工时,二增加了两块存储器的成本。
发明内容:
本发明的目的是提供一种生产方便,无需烧录器进行专门烧录,成本低的芯片软件烧录方法。
本发明是这样实现的:
芯片软件烧录方法,上位机通过USB连接线与USB芯片连接,USB芯片通过 SPI或I2C总线连接FPGA芯片,USB芯片上电时通过SPI或I2C总线加载FPGA应用程序,加载成功后运行应用程序, USB芯片在ROM内置有Bootloader程序,同时内置SRAM用于写入USB应用程序,USB芯片引导模式配置为通过USB接口引导,当SRAM没有写入USB应用程序时,USB芯片从ROM中的Bootloader程序引导,否则从SRAM存储区引导,整个过程需要从上位机端配置FPGA、USB芯片,共需要一个FPGA应用程序、USB应用程序和一个USB芯片临时升级程序,如果选用USB芯片从SRAM引导,USB芯片和FPGA芯片必须首先通过JLink工具把应用程序写入其SRAM中,然后才能引导,重新上电时需要再次通过JLink工具写入应用程序,具体操作步骤为:
1)启动上位机软件,上位机侦测USB芯片是否启动;
2)USB芯片上电,USB 芯片启动Bootloader程序,并同时向上位机发送USB芯片描述符,
3)上位机侦测到USB芯片,获取到USB芯片描述符,判断USB芯片描述符是否为Bootloader程序的USB芯片描述符;
4)上位机判断是Bootloader程序的USB芯片描述符,通过USB连接线向Bootloader程序发送USB芯片临时升级程序;如果不是,则可能为USB芯片临时升级程序或USB芯片应用程序,转到步骤9)执行;
5)Bootloader程序接收到USB芯片临时升级程序,写入USB芯片的SRAM内;
6)上位机发送从SRAM启动命令,Bootloader程序从SRAM启动USB芯片临时升级程序;
7)USB芯片启动临时升级程序后,准备接收FPGA芯片应用程序和USB芯片应用程序,并同时向上位机发送FPGA芯片和USB芯片描述符;
8)上位机转到步骤3)开始执行;
9)上位机向USB芯片发送FPGA应用程序,并等待响应,响应成功则转到步骤11)执行,否则转到步骤16)执行,判断为已经正常启动USB应用程序;
10)USB芯片接收到FPGA应用程序,配置FPGA芯片,并同时发送升级响应;
11)上位机向USB芯片发送USB应用程序。
12)USB芯片临时升级程序接收到USB应用程序,写入SRAM;
13)上位机发送启动USB应用程序命令;
14)USB芯片临时升级程序启动USB应用程序;
15)USB应用程序向上位机发送芯片描述符,上位机转到步骤3)执行;
16)USB芯片应用程序启动完成。
本发明对含有两个需要配置芯片的芯片,通过USB直接烧录芯片1和芯片2,完全去掉了USB芯片和FPGA芯片的外部存储配置芯片,直接通过上位机软件和一个USB芯片临时升级程序就可实现对FPGA和USB芯片的配置。其优点如下:
一、生产方便,无需烧录器进行专门烧录;
二、减少了两块闪存的成本。
附图说明:
图1为己有芯片引导方式示意图。
图2为本发明的系统原理图。
图3为软件烧录流程图。
具体实施方式:
如图2所示,FPGA芯片为现场可编程门阵列芯片(Field Programmable GateArray),USB芯片由芯片生产商在ROM(只读内存)存储上内置有Bootloader程序,同时内置SRAM(静态随机存储器)用于写入应用程序。USB芯片引导模式配置为通过USB接口引导,当SRAM没有写入程序时,USB芯片从ROM中的Bootloader程序引导,否则从SRAM存储区引导。整个过程需要从电脑端配置FPGA芯片、USB芯片,共需要一个FPGA应用程序、一个USB应用程序和一个USB芯片临时升级程序。如果选用芯片从SRAM引导,USB芯片和FPGA芯片必须首先通过JLink工具把应用程序写入SRAM中,然后才能引导,重新上电时需要再次通过JLink工具写入应用程序。
具体操作步骤为:
1)启动上位机软件,上位机侦测USB芯片是否启动;
2)USB芯片上电,USB 芯片启动Bootloader程序,并同时向上位机发送USB芯片描述符(USB芯片描述符是由USB通信协议规定的,可以通过它判断当前USB芯片类型、厂商);
3)上位机侦测到USB芯片,获取到USB芯片描述符,判断USB芯片描述符是否为Bootloader程序的USB芯片描述符;
4)上位机判断是Bootloader程序的USB芯片描述符,通过USB线向Bootloader程序发送USB芯片临时升级程序;如果不是,则可能为USB芯片临时升级程序或USB芯片应用程序,转到步骤9)执行;
5)、Bootloader程序接收到USB芯片临时升级程序,写入USB芯片的SRAM内;
6)上位机发送从SRAM启动命令,Bootloader程序从SRAM启动USB芯片临时升级程序;
7)USB芯片启动临时升级程序后,准备接收FPGA芯片应用程序和USB芯片用程序,并同时向上位机发送FPGA芯片和USB芯片描述符;
8)上位机转到步骤3)开始执行;
9)上位机向USB芯片发送FPGA应用程序,并等待响应,响应成功则转到步骤11)执行,否则转到步骤16)执行(判断为已经正常启动USB应用程序);
10)USB芯片接收到FPGA应用程序,配置FPGA芯片,并同时发送升级响应;
11)上位机向USB芯片发送USB应用程序。
12)USB芯片临时升级程序接收到USB应用程序,写入SRAM;
13)上位机发送启动USB应用程序命令;
14)USB芯片临时升级程序启动USB应用程序;
15)USB应用程序向上位机发送芯片描述符,上位机转到步骤3)执行;
16)USB芯片应用程序启动完成。
使用本发明,完全去掉了USB芯片和FPGA芯片的外部存储配置芯片,直接通过上位机软件和一个临时升级程序就可实现对FPGA和USB芯片的配置。
在一款视频采集卡芯片上按照上述步骤,通过上位机软件和一个USB芯片临时升级程序,完全实现了对USB、FPGA芯片的配置。USB芯片选用了赛普拉斯(Cypress)公司生产的CYUSB3014芯片, FPGA芯片选用了Xilinx公司生产的XC6SLX9—2FTG256C芯片。
Claims (1)
1.芯片软件烧录方法,其特征在于上位机通过USB连接线与USB芯片连接,USB芯片通过SPI或I2C总线连接FPGA芯片,USB芯片上电时通过SPI或I2C总线加载FPGA应用程序,加载成功后运行应用程序, USB芯片在ROM内置有Bootloader程序,同时内置SRAM用于写入USB应用程序,USB芯片引导模式配置为通过USB接口引导,当SRAM没有写入USB应用程序时,USB芯片从ROM中的Bootloader程序引导,否则从SRAM存储区引导,整个过程需要从上位机端配置FPGA、USB芯片,共需要一个FPGA应用程序、USB应用程序和一个USB芯片临时升级程序,如果选用USB芯片从SRAM引导,USB芯片和FPGA芯片必须首先通过JLink工具把应用程序写入其SRAM中,然后才能引导,重新上电时需要再次通过JLink工具写入应用程序,具体操作步骤为:
1)启动上位机软件,上位机侦测USB芯片是否启动;
2)USB芯片上电,USB 芯片启动Bootloader程序,并同时向上位机发送USB芯片描述符,
3)上位机侦测到USB芯片,获取到USB芯片描述符,判断USB芯片描述符是否为Bootloader程序的USB芯片描述符;
4)上位机判断是Bootloader程序的USB芯片描述符,通过USB连接线向Bootloader程序发送USB芯片临时升级程序;如果不是,则可能为USB芯片临时升级程序或USB芯片应用程序,转到步骤9)执行;
5)Bootloader程序接收到USB芯片临时升级程序,写入USB芯片的SRAM内;
6)上位机发送从SRAM启动命令,Bootloader程序从SRAM启动USB芯片临时升级程序;
7)USB芯片启动临时升级程序后,准备接收FPGA芯片应用程序和USB芯片应用程序,并同时向上位机发送FPGA芯片和USB芯片描述符;
8)上位机转到步骤3)开始执行;
9)上位机向USB芯片发送FPGA应用程序,并等待响应,响应成功则转到步骤11)执行,否则转到步骤16)执行,判断为已经正常启动USB应用程序;
10)USB芯片接收到FPGA应用程序,配置FPGA芯片,并同时发送升级响应;
11)上位机向USB芯片发送USB应用程序;
12)USB芯片临时升级程序接收到USB应用程序,写入SRAM;
13)上位机发送启动USB应用程序命令;
14)USB芯片临时升级程序启动USB应用程序;
15)USB应用程序向上位机发送芯片描述符,上位机转到步骤3)执行;
16)USB芯片应用程序启动完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410663158.7A CN104536774B (zh) | 2014-11-20 | 2014-11-20 | 芯片软件烧录方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410663158.7A CN104536774B (zh) | 2014-11-20 | 2014-11-20 | 芯片软件烧录方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104536774A CN104536774A (zh) | 2015-04-22 |
CN104536774B true CN104536774B (zh) | 2018-02-02 |
Family
ID=52852306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410663158.7A Active CN104536774B (zh) | 2014-11-20 | 2014-11-20 | 芯片软件烧录方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536774B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156550A (zh) * | 2016-07-04 | 2016-11-23 | 广州市鸿远电子科技有限公司 | 一种芯片防破解的方法 |
CN107066301B (zh) * | 2017-04-27 | 2020-12-15 | 北京安控科技股份有限公司 | 一种嵌入式计算机固件程序的下载方法 |
CN108228217A (zh) * | 2018-01-18 | 2018-06-29 | 晶晨半导体(上海)股份有限公司 | 一种系统升级方法 |
CN112241279B (zh) * | 2019-07-19 | 2023-10-27 | 广州汽车集团股份有限公司 | 一种自适应的电子控制单元软件升级方法、系统及汽车 |
CN114860279B (zh) * | 2022-04-22 | 2023-03-14 | 珠海海奇半导体有限公司 | 一种快速空片升级方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308311B1 (en) * | 1999-05-14 | 2001-10-23 | Xilinx, Inc. | Method for reconfiguring a field programmable gate array from a host |
CN201514768U (zh) * | 2009-10-20 | 2010-06-23 | 西安瑞日电子发展有限公司 | Fpga控制设备的在线flash烧写器 |
CN102184741A (zh) * | 2011-02-28 | 2011-09-14 | 浪潮电子信息产业股份有限公司 | 一种烧写spi flash的方法 |
CN103389669A (zh) * | 2013-07-26 | 2013-11-13 | 中国船舶重工集团公司第七一五研究所 | 一种基于fpga/cpld控制器的处理器程序远程动态加载系统及方法 |
CN103645665A (zh) * | 2013-12-24 | 2014-03-19 | 南京富士通南大软件技术有限公司 | 一种可编程信号发生器及其信号发生方法 |
-
2014
- 2014-11-20 CN CN201410663158.7A patent/CN104536774B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308311B1 (en) * | 1999-05-14 | 2001-10-23 | Xilinx, Inc. | Method for reconfiguring a field programmable gate array from a host |
CN201514768U (zh) * | 2009-10-20 | 2010-06-23 | 西安瑞日电子发展有限公司 | Fpga控制设备的在线flash烧写器 |
CN102184741A (zh) * | 2011-02-28 | 2011-09-14 | 浪潮电子信息产业股份有限公司 | 一种烧写spi flash的方法 |
CN103389669A (zh) * | 2013-07-26 | 2013-11-13 | 中国船舶重工集团公司第七一五研究所 | 一种基于fpga/cpld控制器的处理器程序远程动态加载系统及方法 |
CN103645665A (zh) * | 2013-12-24 | 2014-03-19 | 南京富士通南大软件技术有限公司 | 一种可编程信号发生器及其信号发生方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104536774A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536774B (zh) | 芯片软件烧录方法 | |
CN104951334B (zh) | FPGA双片QSPI flash的程序加载方法 | |
CN101604272B (zh) | 存储卡测试装置及其测试方法 | |
US11294660B2 (en) | Apparatus and method for configuring or updating programmable logic device | |
CN108037938B (zh) | 一种eMMC的开卡方法 | |
CN103914324A (zh) | 一种自动烧写嵌入式设备固件的方法及其系统 | |
CN103544122B (zh) | 一种接口自适应匹配的协同系统及其协同方法 | |
CN102446141B (zh) | 用于实现写保护控制的装置和方法 | |
CN105159731A (zh) | 一种fpga配置文件远程升级的装置 | |
CN103544994A (zh) | 快闪存储器控制器、快闪存储器侦错方法 | |
CN106649137B (zh) | 一种Nand Flash坏块管理方法、装置及存储器 | |
CN106528217B (zh) | 一种现场可编程门阵列程序加载系统和方法 | |
CN116450552A (zh) | 基于i2c总线异步批量读写寄存器的方法及系统 | |
CN102075710A (zh) | 一种电视机的启动运行方法及电视机 | |
US10658046B2 (en) | Memory device and method for operating the same | |
CN111143898B (zh) | 可插拔存储器装置数据保护方法 | |
CN104239084A (zh) | 一种dsp程序自动加载的实现方法 | |
CN103680638B (zh) | 快闪存储器控制器和快闪存储器控制方法 | |
CN115410639A (zh) | 一种芯片测试装置和方法 | |
CN205103653U (zh) | 汽车控制器数据处理系统 | |
CN115509965A (zh) | 存储器控制器与链接识别方法 | |
CN108346453B (zh) | 一种闪存测试设备和方法 | |
TWI533121B (zh) | 通用序列匯流排測試治具 | |
US20150127888A1 (en) | Data Storage Device and Error Correction Method Thereof | |
CN106951287B (zh) | 一种软件的配置方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |