本发明涉及程序固化技术领域,尤其涉及一种基于usb的zynq程序固化方法。
背景技术:
zynq芯片是xilinx公司的soc芯片,行业内第一个可扩展处理平台,内部集成7系列fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列)(artix-7与kintex-7fpga)和双核armcortex-a9嵌入式处理器,同时具备fpga可编程逻辑强大的并行处理能力,还具备有arm的数据信号处理与计算的能力,这个特性使得zynq芯片系列广泛应用于视频、监控、汽车自主导航、航空航天等领域。
对于zynq程序的固化,通常是将zynq芯片的boot.bin文件通过jtag方式写入外置spiflash芯片中,然后每次zynq芯片上电后,程序将自动从spiflash启动,这样就完成了zynq芯片的程序固化更新。
现有技术存在的问题:
1、每次都得从jtag接口来进行程序的固化,对于一个产品来说,这个jtag接口一般是没有引出到产品对外接口上,这就造成了产品的难以更新程序版本的问题;
2、基于jtag方式的程序固化方法太依赖于jtag口,如果一个产品上有多款zynq芯片时,那就需要存在多个jtag口,这样就增加了产品pcb板子的布局面积,不利于产品小型化设计要求。
技术实现要素:
针对上述问题中的至少之一,本发明提供了一种基于usb的zynq程序固化方法,通过usb接口将固化程序软件发送至zynq芯片中,再对flash芯片进行擦除和写入操作,实现对flash芯片的程序固化,增加了产品调试和更新的便利性,也相应减少了产品调试、更新的成本和时间,提高了产品的适应性、可维护性。
为实现上述目的,本发明提供了一种基于usb的zynq程序固化方法,包括:将zynq芯片与上位的pc机之间建立通信连接;将固化程序文件通过所述pc机的usb接口发送至所述zynq芯片,并存储至ddr3存储芯片中;对flash芯片进行数据擦除操作,并将所述ddr3存储芯片中的所述固化程序文件写入所述flash芯片中。
在上述技术方案中,优选地,基于usb的zynq程序固化方法还包括:读取所述flash芯片中的数据,并与所述ddr3存储芯片中的数据进行比较验证;若数据相同则校验成功,完成固化;若数据不同则重新进行固化操作,直至所述flash芯片中的数据与所述ddr3存储芯片中的数据相同。
在上述技术方案中,优选地,所述zynq芯片包括usb控制器、ddr(doubledatarate,双倍速率)存储控制器和qspi(queuedserialperipheralinterface,队列串行外围接口协议)控制器,所述usb控制器用于接收所述pc机通过usb收发器芯片传输来的所述固化程序文件,并将所述固化程序文件通过所述ddr存储控制器存入所述ddr3存储芯片中;所述qspi控制器用于对所述flash芯片进行数据擦除操作。
在上述技术方案中,优选地,所述固化程序文件为boot.bin文件。
在上述技术方案中,优选地,所述flash芯片为spiflash芯片。
与现有技术相比,本发明的有益效果为:通过usb接口将固化程序软件发送至zynq芯片中,再对flash芯片进行擦除和写入操作,实现对flash芯片的程序固化,增加了产品调试和更新的便利性,也相应减少了产品调试、更新的成本和时间,提高了产品的适应性、可维护性。
附图说明
图1为本发明一种实施例公开的基于usb的zynq程序固化方法的结构示意图。
图中,各组件与附图标记之间的对应关系为:
1.固化程序文件,2.pc机,21.usb收发器芯片,3.zynq芯片,31.usb控制器,32.ddr存储控制器,33.qspi控制器,4.flash芯片,5.ddr3存储芯片。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1所示,根据本发明提供的一种基于usb的zynq程序固化方法,包括:将zynq芯片与上位的pc机2之间建立通信连接;将固化程序文件1通过pc机2的usb接口发送至zynq芯片,并存储至ddr3存储芯片5中;对flash芯片4进行数据擦除操作,并将ddr3存储芯片5中的固化程序文件1写入flash芯片4中。
在该实施例中,通过usb接口将固化程序软件发送至zynq芯片3中,再对flash芯片4进行擦除和写入操作,实现对flash芯片4的程序固化,不需要拆开产品即可实现在线更新zynq的程序,增加了产品调试和更新的便利性,也相应减少了产品调试、更新的成本和时间,提高了产品的适应性、可维护性。
在上述实施例中,优选地,基于usb的zynq程序固化方法还包括:读取flash芯片4中的数据,并与ddr3存储芯片5中的数据进行比较验证;若数据相同则校验成功,完成固化;若数据不同则重新进行固化操作,直至flash芯片4中的数据与ddr3存储芯片5中的数据相同。
在上述实施例中,优选地,zynq芯片包括usb控制器31、ddr(doubledatarate,双倍速率)存储控制器和qspi(queuedserialperipheralinterface,队列串行外围接口协议)控制器,usb控制器31用于接收pc机2通过usb收发器芯片21传输来的固化程序文件1,并将固化程序文件1通过ddr存储控制器32存入ddr3存储芯片5中;qspi控制器33用于对flash芯片4进行数据擦除操作。
在上述实施例中,优选地,固化程序文件1为boot.bin文件。
在上述实施例中,优选地,flash芯片4为spiflash芯片。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于usb的zynq程序固化方法,其特征在于,包括:
将zynq芯片与上位的pc机之间建立通信连接;
将固化程序文件通过所述pc机的usb接口发送至所述zynq芯片,并存储至ddr3存储芯片中;
对flash芯片进行数据擦除操作,并将所述ddr3存储芯片中的所述固化程序文件写入所述flash芯片中。
2.根据权利要求1所述的基于usb的zynq程序固化方法,其特征在于,还包括:
读取所述flash芯片中的数据,并与所述ddr3存储芯片中的数据进行比较验证;
若数据相同则校验成功,完成固化;
若数据不同则重新进行固化操作,直至所述flash芯片中的数据与所述ddr3存储芯片中的数据相同。
3.根据权利要求1所述的基于usb的zynq程序固化方法,其特征在于,所述zynq芯片包括usb控制器、ddr存储控制器和qspi控制器,
所述usb控制器用于接收所述pc机通过usb收发器芯片传输来的所述固化程序文件,并将所述固化程序文件通过所述ddr存储控制器存入所述ddr3存储芯片中;
所述qspi控制器用于对所述flash芯片进行数据擦除操作。
4.根据权利要求1所述的基于usb的zynq程序固化方法,其特征在于,所述固化程序文件为boot.bin文件。
5.根据权利要求1所述的基于usb的zynq程序固化方法,其特征在于,所述flash芯片为spiflash芯片。