專利名稱:Fpga程序的升級(jí)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng),特別是涉及一種FPGA程序的升級(jí)方法。
背景技術(shù):
隨著技術(shù)的進(jìn)步,現(xiàn)場(chǎng)可編程門陣列(Field-Programmable GateArray, FPGA)的功能越來(lái)越強(qiáng)大,可以內(nèi)嵌CPU軟核,還能運(yùn)行操作系統(tǒng),越來(lái)越多的嵌入式產(chǎn)品由FPGA來(lái)實(shí)現(xiàn),它可以實(shí)現(xiàn)功能復(fù)雜、需求多樣的產(chǎn)品。為了優(yōu)化程序提供產(chǎn)品性能需要做多次程序的升級(jí)更新,F(xiàn)PGA程序一般存放在外部Flash存儲(chǔ)器中,燒寫外部Flash存儲(chǔ)器方法一般有兩種一種是用文件燒錄器直接將代碼的二進(jìn)制文件燒入Flash中,然后再通過(guò)焊接技術(shù)將芯片裝在電路板上,這種方式不便于因性能的改善而隨時(shí)進(jìn)行軟件的升級(jí),而且將Flash 器件反復(fù)裝卸很容易造成器件的損壞,增加成本,效率低下;第二種是通過(guò)FPGA的JTAG下載線纜和專用下載工具對(duì)Flash進(jìn)行燒錄實(shí)現(xiàn)程序的升級(jí),但這種方式不能離開FPGA設(shè)計(jì)工具,而且不同的FPGA芯片,設(shè)計(jì)工具也不一樣。上述兩種方法都不利于設(shè)計(jì)、生產(chǎn)的快速順利進(jìn)行。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種FPGA程序的升級(jí)方法,能使升級(jí)操作簡(jiǎn)單、方便,且無(wú)需專用的下載線纜和下載工具,更不需要通過(guò)燒錄器將Flash存儲(chǔ)器取下進(jìn)行FPGA程序的更新,所以還能提高效率且具有較好的靈活性。為解決上述技術(shù)問(wèn)題,本發(fā)明提供的一種FPGA程序的升級(jí)方法,包括如下步驟步驟一、將Flash存儲(chǔ)器的空間分成低、中、高三個(gè)地址段,分別用于存儲(chǔ)FPGA程序、寄存器參數(shù)、更新引導(dǎo)程序;其中用于存儲(chǔ)所述寄存器參數(shù)的中地址段還能細(xì)分為多個(gè)地址段。通過(guò)一跳線來(lái)設(shè)置FPGA從所述Flash存儲(chǔ)器加載程序的地址段。所述跳線設(shè)置在低地址端時(shí),所述FPGA從所述Flash存儲(chǔ)器的低地址段加載所述FPGA程序并運(yùn)行;所述跳線設(shè)置在高地址端時(shí),所述FPGA從所述Flash存儲(chǔ)器的高地址段加載所述更新引導(dǎo)程序并運(yùn)行。步驟二、將更新引導(dǎo)程序固化在Flash中高地址段中。所述更新引導(dǎo)程序根據(jù)各不同的所述地址段設(shè)計(jì)了不同命令菜單,采用交互式方式進(jìn)行更新,點(diǎn)擊各所述命令時(shí),各所述命令對(duì)應(yīng)的地址段的更新文件會(huì)通過(guò)串口下載到各所述命令對(duì)應(yīng)的地址段中。所述更新引導(dǎo)程序由串口文件接收模塊、串口通信的差錯(cuò)校驗(yàn)?zāi)K、命令控制模塊、Flash擦除模塊、Flash讀寫模塊、Flash操作有效性校驗(yàn)?zāi)K組成。所述串口文件接收模塊用于通過(guò)串口協(xié)議接收文件;所述串口通信差錯(cuò)校驗(yàn)?zāi)K是用于依據(jù)串口協(xié)議驗(yàn)證接收的文件、數(shù)據(jù)是否存在誤碼;所述命令控制模塊是用于以菜單的方式顯示需要對(duì)Flash更新操作的命令;所述Flash擦除模塊是用于將所述Flash存儲(chǔ)器芯片進(jìn)行擦除操作;所述Flash讀寫模塊是用于讀寫所述Flash存儲(chǔ)器芯片;所述Flash操作有效性校驗(yàn)?zāi)K是用于驗(yàn)證Flash 操作過(guò)程是否成功,如擦除是否成功、讀寫數(shù)據(jù)是否正確。所述更新文件為二進(jìn)制文件,各所述命令對(duì)應(yīng)的地址段包括低地址段、中地址段,分別用于所述FPGA程序、所述寄存器參數(shù)的更新。所述Flash存儲(chǔ)器的用于存儲(chǔ)所述寄存器參數(shù)的中地址段能根據(jù)實(shí)際不同需要細(xì)分為多個(gè)地址段,細(xì)分出來(lái)的各所述多個(gè)地址段也分別在所述更新引導(dǎo)程序中有各自對(duì)應(yīng)的命令菜單,通過(guò)點(diǎn)擊各所述命令實(shí)現(xiàn)所對(duì)應(yīng)的地址段的更新。步驟三、將所述FPGA通過(guò)一串口通信電平轉(zhuǎn)換模塊和一計(jì)算機(jī)相連,將串口調(diào)試工具或Windows的超級(jí)終端安裝到所述計(jì)算機(jī)中,啟動(dòng)所述串口調(diào)試工具或Windows的超級(jí)終端并設(shè)置好串口通信參數(shù)步。所述串口通信參數(shù)包括波特率、串口端口、校驗(yàn)方式、數(shù)據(jù)位寬、停止位數(shù)。所述FPGA和所述計(jì)算機(jī)的連接方法為是通過(guò)所述FPGA的一串口通信接口和一 RS-232電平轉(zhuǎn)換模塊相連、通過(guò)所述RS-232電平轉(zhuǎn)換模塊和所述計(jì)算機(jī)的COM 口相連,且上述連接的電纜都為DB9接口的電纜。步驟四、設(shè)置所述跳線到高地址端并啟動(dòng)所述FPGA,使所述FPGA從高地址段加載所述更新引導(dǎo)程序并運(yùn)行,所述更新引導(dǎo)程序的命令菜單顯示于所述串口調(diào)試工具或 Windows的超級(jí)終端上,根據(jù)需要點(diǎn)擊各所述命令,將各所述命令對(duì)應(yīng)的地址段的更新文件通過(guò)串口下載到各所述命令對(duì)應(yīng)的地址段中。本發(fā)明方法能使升級(jí)操作簡(jiǎn)單、方便,且無(wú)需專用的下載線纜和下載工具,更不需要通過(guò)燒錄器將Flash存儲(chǔ)器取下進(jìn)行FPGA程序的更新,所以還能提高效率且具有較好的靈活性。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明圖1是本發(fā)明方法流程圖;圖2是本發(fā)明實(shí)施例方法的硬件連接示意圖。
具體實(shí)施例方式如圖1所示,是本發(fā)明方法的流程圖,圖2是本發(fā)明實(shí)施例方法的硬件連接示意圖。本發(fā)明FPGA程序的升級(jí)方法,包括如下步驟步驟一、如圖2所示,本發(fā)明的FPGA和其Flash存儲(chǔ)器制作在同一塊主板卡上, 將Flash存儲(chǔ)器的空間分成低、中、高三個(gè)地址段,分別用于存儲(chǔ)FPGA程序、寄存器參數(shù)、更新引導(dǎo)程序;其中用于存儲(chǔ)所述寄存器參數(shù)的中地址段還能根據(jù)不同芯片細(xì)分為多個(gè)地址段,每段的大小根據(jù)需要來(lái)劃分,所述不同芯片指是需要所述FPGA進(jìn)行初始化的芯片,如 AD芯片,DA芯片,壓縮解壓縮芯片等一切需要由所述FPGA控制的芯片;地址段的大小劃分根據(jù)所述Flash存儲(chǔ)器芯片的不同定義也不一樣,例如能定義一個(gè)地址段包含數(shù)個(gè)塊,而一個(gè)塊為256字節(jié)。通過(guò)一跳線來(lái)設(shè)置FPGA從所述Flash存儲(chǔ)器加載程序的地址段。所述跳線設(shè)置在低地址端時(shí),所述FPGA從所述Flash存儲(chǔ)器的低地址段加載所述FPGA程序并運(yùn)行;所述跳線設(shè)置在高地址端時(shí),所述FPGA從所述Flash存儲(chǔ)器的高地址段加載所述更新引導(dǎo)程序并運(yùn)行。步驟二、如圖2所示,將更新引導(dǎo)程序固化在Flash中高地址段中。所述更新引導(dǎo)程序根據(jù)各不同的所述地址段設(shè)計(jì)了不同命令菜單,采用交互式方式進(jìn)行更新,點(diǎn)擊各所述命令時(shí),各所述命令對(duì)應(yīng)的地址段的更新文件會(huì)通過(guò)串口下載到各所述命令對(duì)應(yīng)的地址段中。所述更新引導(dǎo)程序由串口文件接收模塊、串口通信的差錯(cuò)校驗(yàn)?zāi)K、命令控制模塊、 Flash擦除模塊、Flash讀寫模塊、Flash操作有效性校驗(yàn)?zāi)K組成。所述更新文件為二進(jìn)制文件,各所述命令對(duì)應(yīng)的地址段包括低地址段、中地址段,分別用于所述FPGA程序、所述寄存器參數(shù)的更新。步驟三、如圖2所示,將所述FPGA通過(guò)一串口通信電平轉(zhuǎn)換模塊和一計(jì)算機(jī)相連, 將串口調(diào)試工具或Windows的超級(jí)終端安裝到所述計(jì)算機(jī)中,啟動(dòng)所述串口調(diào)試工具或 Windows的超級(jí)終端并設(shè)置好串口通信參數(shù)步。所述串口通信參數(shù)包括波特率、串口端口、 校驗(yàn)方式、數(shù)據(jù)位寬、停止位數(shù)。所述FPGA和所述計(jì)算機(jī)的連接方法為是通過(guò)所述FPGA的一串口通信接口和一 RS-232電平轉(zhuǎn)換模塊相連、通過(guò)所述RS-232電平轉(zhuǎn)換模塊和所述計(jì)算機(jī)的COM 口相連,且上述連接的電纜都為DB9接口的電纜。步驟四、設(shè)置所述跳線到高地址端并啟動(dòng)所述FPGA,使所述FPGA從高地址段加載所述更新引導(dǎo)程序并運(yùn)行,所述更新引導(dǎo)程序的命令菜單顯示于所述串口調(diào)試工具或 Windows的超級(jí)終端上,根據(jù)需要點(diǎn)擊各所述命令,將各所述命令對(duì)應(yīng)的地址段的更新文件通過(guò)串口下載到各所述命令對(duì)應(yīng)的地址段中。這樣就很方便的實(shí)現(xiàn)了 FPGA程序和寄存器參數(shù)的更新,操作簡(jiǎn)單,使用靈活。以上通過(guò)具體實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,但這些并非構(gòu)成對(duì)本發(fā)明的限制。在不脫離本發(fā)明原理的情況下,本領(lǐng)域的技術(shù)人員還可做出許多變形和改進(jìn),這些也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種FPGA程序的升級(jí)方法,其特征在于,包括如下步驟步驟一、將Flash存儲(chǔ)器的空間分成低、中、高三個(gè)地址段,分別用于存儲(chǔ)FPGA程序、 寄存器參數(shù)、更新引導(dǎo)程序;通過(guò)一跳線來(lái)設(shè)置FPGA從所述Flash存儲(chǔ)器加載程序的地址段;步驟二、將更新引導(dǎo)程序固化在Flash中高地址段中;所述更新引導(dǎo)程序根據(jù)各不同的所述地址段設(shè)計(jì)了不同命令菜單,采用交互式方式進(jìn)行更新,點(diǎn)擊各所述命令時(shí),各所述命令對(duì)應(yīng)的地址段的更新文件會(huì)通過(guò)串口下載到各所述命令對(duì)應(yīng)的地址段中;步驟三、將所述FPGA通過(guò)一串口通信電平轉(zhuǎn)換模塊和一計(jì)算機(jī)相連,將串口調(diào)試工具或Windows的超級(jí)終端安裝到所述計(jì)算機(jī)中,啟動(dòng)所述串口調(diào)試工具或Windows的超級(jí)終端并設(shè)置好串口通信參數(shù);步驟四、設(shè)置所述跳線并啟動(dòng)所述FPGA,使所述FPGA從高地址段加載所述更新引導(dǎo)程序并運(yùn)行,所述更新引導(dǎo)程序的命令菜單顯示于所述串口調(diào)試工具或Windows的超級(jí)終端上,根據(jù)需要點(diǎn)擊各所述命令,將各所述命令對(duì)應(yīng)的地址段的更新文件通過(guò)串口下載到各所述命令對(duì)應(yīng)的地址段中。
2.如權(quán)利要求1所述的FPGA程序的升級(jí)方法,其特征在于步驟一中所述跳線設(shè)置在低地址端時(shí),所述FPGA從所述Flash存儲(chǔ)器的低地址段加載所述FPGA程序并運(yùn)行;所述跳線設(shè)置在高地址端時(shí),所述FPGA從所述Flash存儲(chǔ)器的高地址段加載所述更新引導(dǎo)程序并運(yùn)行。
3.如權(quán)利要求1所述的FPGA程序的升級(jí)方法,其特征在于所述更新引導(dǎo)程序由串口文件接收模塊、串口通信的差錯(cuò)校驗(yàn)?zāi)K、命令控制模塊、Flash擦除模塊、Flash讀寫模塊、Flash操作有效性校驗(yàn)?zāi)K組成;所述串口文件接收模塊用于通過(guò)串口協(xié)議接收文件;所述串口通信差錯(cuò)校驗(yàn)?zāi)K是用于依據(jù)串口協(xié)議驗(yàn)證接收的文件、數(shù)據(jù)是否存在誤碼;所述命令控制模塊是用于以菜單的方式顯示需要對(duì)Flash更新操作的命令;所述Flash擦除模塊是用于將所述Flash存儲(chǔ)器芯片進(jìn)行擦除操作;所述Flash讀寫模塊是用于讀寫所述Flash存儲(chǔ)器芯片;所述Flash操作有效性校驗(yàn)?zāi)K是用于驗(yàn)證Flash操作過(guò)程是否成功。
4.如權(quán)利要求1所述的FPGA程序的升級(jí)方法,其特征在于步驟三中所述FPGA和所述計(jì)算機(jī)的連接方法為是通過(guò)所述FPGA的一串口通信接口和一 RS-232電平轉(zhuǎn)換模塊相連、 通過(guò)所述RS-232電平轉(zhuǎn)換模塊和所述計(jì)算機(jī)的COM 口相連,且上述連接的電纜都為DB9接口的電纜。
5.如權(quán)利要求1所述的FPGA程序的升級(jí)方法,其特征在于所述更新文件為二進(jìn)制文件,各所述命令對(duì)應(yīng)的地址段包括低地址段、中地址段,分別用于所述FPGA程序、所述寄存器參數(shù)的更新。
6.如權(quán)利要求1或5所述的FPGA程序的升級(jí)方法,其特征在于所述Flash存儲(chǔ)器的用于存儲(chǔ)所述寄存器參數(shù)的中地址段能細(xì)分為多個(gè)地址段。
7.如權(quán)利要求1所述的FPGA程序的升級(jí)方法,其特征在于步驟三中所述串口通信參數(shù)包括波特率、串口端口、校驗(yàn)方式、數(shù)據(jù)位寬、停止位數(shù)。
全文摘要
本發(fā)明公開了一種FPGA程序的升級(jí)方法,包括步驟步驟一、將Flash存儲(chǔ)器的空間分成分別用于存儲(chǔ)FPGA程序、寄存器參數(shù)、更新引導(dǎo)程序的低、中、高三個(gè)地址段;通過(guò)一跳線來(lái)設(shè)置FPGA從Flash存儲(chǔ)器加載程序的地址段。步驟二、將更新引導(dǎo)程序固化在Flash中高地址段中;更新引導(dǎo)程序根據(jù)各不同的所述地址段設(shè)計(jì)了不同命令菜單。步驟三、將FPGA通過(guò)一串口通信電平轉(zhuǎn)換模塊和一計(jì)算機(jī)相連。步驟四、設(shè)置跳線并啟動(dòng)所述FPGA,使所述FPGA從高地址段加載所述更新引導(dǎo)程序并運(yùn)行,根據(jù)需要點(diǎn)擊各所述命令通過(guò)串口進(jìn)行更新。本發(fā)明能使升級(jí)操作簡(jiǎn)單、方便,還能提高效率且具有較好的靈活性。
文檔編號(hào)G06F9/445GK102346677SQ201010245850
公開日2012年2月8日 申請(qǐng)日期2010年8月5日 優(yōu)先權(quán)日2010年8月5日
發(fā)明者周智, 袁斯華 申請(qǐng)人:盛樂信息技術(shù)(上海)有限公司