Fpga和dsp目標(biāo)程序的燒寫和啟動(dòng)的方法及設(shè)備的制作方法
【專利摘要】本發(fā)明涉及嵌入式系統(tǒng)【技術(shù)領(lǐng)域】,公開了一種FPGA和DSP目標(biāo)程序的燒寫和啟動(dòng)方法及設(shè)備。該方法包括步驟:將DSP目標(biāo)程序轉(zhuǎn)換成FPGA目標(biāo)程序可執(zhí)行的文件格式;將FPGA目標(biāo)程序和轉(zhuǎn)換后的DSP目標(biāo)程序轉(zhuǎn)換成一個(gè)文件并燒寫到目標(biāo)板上的存儲(chǔ)器的不同地址段,一次性完成兩種處理器目標(biāo)程序的燒寫;將設(shè)備重新上電或復(fù)位,F(xiàn)PGA從程序存儲(chǔ)器中讀取FPGA程序代碼并運(yùn)行,完成FPGA加載;FPGA給DSP一個(gè)復(fù)位信號(hào),DSP從程序存儲(chǔ)器中讀取DSP程序代碼并運(yùn)行,完成DSP加載。在硬件上,本發(fā)明設(shè)計(jì)在一片存儲(chǔ)芯片同時(shí)存儲(chǔ)FPGA目標(biāo)程序和DSP目標(biāo)程序,降低硬件設(shè)計(jì)復(fù)雜度,減小了設(shè)計(jì)成本;在目標(biāo)程序燒寫過程中,只需通過FPGA下載器燒寫一個(gè).mcs文件即可,簡化車間批量生產(chǎn)時(shí)FPGA和DSP程序加載流程。
【專利說明】FPGA和DSP目標(biāo)程序的燒寫和啟動(dòng)的方法及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)【技術(shù)領(lǐng)域】,尤其涉及一種FPGA和DSP目標(biāo)程序的燒寫和啟動(dòng)方法及設(shè)備。
【背景技術(shù)】
[0002]隨著嵌入式技術(shù)的發(fā)展,在實(shí)際工程應(yīng)用中,技術(shù)人員常用的信號(hào)處理器或控制器有微控制器(MCU)、現(xiàn)場可編程門陣列(FPGA)和數(shù)字信號(hào)處理器(DSP)三類,這三種處理器各具有獨(dú)特的優(yōu)勢,但又在某些方面略顯不足。MCU具有豐富的外設(shè)接口,非常適合于工業(yè)控制;FPGA設(shè)計(jì)靈活,且工作速度快;DSP具有超強(qiáng)的運(yùn)算能力,速度快,廣泛運(yùn)用于大量數(shù)據(jù)計(jì)算的場合。因此,結(jié)合以上各類處理器的優(yōu)缺點(diǎn),在信號(hào)處理和電子通信系統(tǒng)中常采用FPGA+DSP架構(gòu)來搭建其硬件平臺(tái),DSP用于實(shí)現(xiàn)高速的信號(hào)處理,而FPGA可滿足復(fù)雜的控制和靈活的設(shè)計(jì)。
[0003]針對這兩種處理器傳統(tǒng)的程序加載方法采用JTAG硬件下載器實(shí)現(xiàn),且FPGA和DSP的程序分別存儲(chǔ)在不同的存儲(chǔ)器中。燒寫時(shí),DSP程序和FPGA程序的燒寫過程是獨(dú)立進(jìn)行的,通過FPGA JTAG下載器來下載FPGA目標(biāo)程序,通過DSP JTAG下載器來下載DSP目標(biāo)程序。燒寫過程首先將目標(biāo)板上FPGA的JTAG 口通過FPGA下載器與PC機(jī)相連接,燒寫FPGA目標(biāo)程序到FPGA程序存儲(chǔ)器中,然后將目標(biāo)板上DSP的JTAG 口通過DSP下載器與PC機(jī)相連,將DSP目標(biāo)程序文件燒寫到DSP的存儲(chǔ)芯片中。當(dāng)上電或復(fù)位時(shí),DSP和FPGA芯片分別從相應(yīng)的存儲(chǔ)芯片中讀取程序代碼并運(yùn)行。
[0004]針對傳統(tǒng)的程序加載方法,在設(shè)計(jì)電路板時(shí),需要給DSP和FPGA配置獨(dú)立的程序存儲(chǔ)器,這加大了電路的設(shè)計(jì)復(fù)雜度,其次,在對DSP和FPGA燒寫過程中,分別需要DSP仿真器和FPGA下載器,提高了設(shè)計(jì)成本,再次,DSP程序和FPGA程序的燒寫過程需要獨(dú)立進(jìn)行,不利于簡化車間批量生產(chǎn)時(shí)FPGA和DSP程序加載流程。
[0005]此外,針對傳統(tǒng)程序加載方法出現(xiàn)的問題,吳湘寧教授等人提出了基于以太網(wǎng)通過MCU加載FPGA和DSP的方法,外部計(jì)算機(jī)通過以太網(wǎng)將代碼傳送給MCU,由MCU寫入Flash存儲(chǔ)器模塊中,然后有MCU通過FPGA的從串加載模式和DSP的主機(jī)引導(dǎo)加載實(shí)現(xiàn)對FPGA和DSP程序代碼的引導(dǎo)加載。但是,該方法雖然實(shí)現(xiàn)了程序的遠(yuǎn)程動(dòng)態(tài)加載,并且網(wǎng)口通訊速度快、信號(hào)穩(wěn)定,卻仍然額外需要一片MCU,無疑增加了系統(tǒng)的復(fù)雜度和涉及生產(chǎn)成本。
【發(fā)明內(nèi)容】
[0006]針對現(xiàn)有技術(shù)的缺陷,本發(fā)明所要解決的技術(shù)問題是如何簡化同時(shí)具備FPGA和DSP芯片的嵌入式系統(tǒng)的程序燒寫啟動(dòng)的復(fù)雜度。
[0007]為解決上述問題,一方面,本發(fā)明提供了一種FPGA和DSP目標(biāo)程序的燒寫和啟動(dòng)方法,該方法包括步驟:
[0008]SI,將DSP目標(biāo)程序文件轉(zhuǎn)換成FPGA目標(biāo)程序文件可執(zhí)行的文件格式;[0009]S2,將FPGA目標(biāo)程序和轉(zhuǎn)換后的DSP目標(biāo)程序轉(zhuǎn)換成一個(gè)文件并燒寫到目標(biāo)板上的存儲(chǔ)器的不同地址段,一次性完成兩種處理器目標(biāo)程序的燒寫;
[0010]S3,將設(shè)備重新上電或復(fù)位,F(xiàn)PGA自動(dòng)從程序存儲(chǔ)器中相應(yīng)的地址讀取FPGA程序代碼并運(yùn)行,完成FPGA加載;
[0011]S4,將DSP外部的程序加載接口與程序存儲(chǔ)器連接,同時(shí)FPGA給DSP —個(gè)復(fù)位信號(hào),此時(shí)DSP自動(dòng)從程序存儲(chǔ)器對應(yīng)的地址中讀取DSP程序代碼并運(yùn)行,完成DSP加載。
[0012]優(yōu)選地,所述方法還包括步驟:
[0013]S5,當(dāng)DSP的加載完成之后,F(xiàn)PGA將檢測DSP的運(yùn)行狀態(tài),若正常運(yùn)行則表明加載完成,若DSP運(yùn)行狀態(tài)異常,則再產(chǎn)生復(fù)位信號(hào),重新加載DSP程序,當(dāng)加載的次數(shù)不少于3次,加載仍不成功,將報(bào)錯(cuò)并結(jié)束加載程序。
[0014]優(yōu)選地,步驟S2中,燒寫到所述目標(biāo)板上的所述FPGA目標(biāo)程序的地址為存儲(chǔ)器的首地址,所述DSP目標(biāo)程序的地址根據(jù)具體情況任意設(shè)置。
[0015]優(yōu)選地,步驟S4中,當(dāng)FPGA給DSP —個(gè)復(fù)位信號(hào)后,DSP程序的加載運(yùn)行采用ROM引導(dǎo)的加載方式。
[0016]另一方面,本發(fā)明還同時(shí)提供了一種FPGA和DSP程序燒寫和啟動(dòng)設(shè)備,包括:上位機(jī)、JTAG下載器、程序存儲(chǔ)器、FPGA芯片以及DSP芯片,其中,所述JTAG下載器分別連接所述上位機(jī)和和FPGA芯片,所述FPGA芯片以及DSP芯片之間通過總線和復(fù)位信號(hào)線連接,所述FPGA芯片和程序存儲(chǔ)器之間也通過總線連接。
[0017]優(yōu)選地,所述FPGA芯片為XILINX公司的XC5VLX110T型號(hào),所述DSP芯片為TI公司的TMS320F6416,所述JTAG下載器為XILINX公司的JTAG下載器,所述程序存儲(chǔ)器為非易失性存儲(chǔ)器。
[0018]與現(xiàn)有技術(shù)相比,本發(fā)明所述的一種對FPGA和DSP目標(biāo)程序的燒寫和啟動(dòng)方法及對應(yīng)的設(shè)備,在硬件上,設(shè)計(jì)在一片存儲(chǔ)芯片同時(shí)存儲(chǔ)FPGA目標(biāo)程序和DSP目標(biāo)程序,降低硬件設(shè)計(jì)復(fù)雜度,減小了硬件設(shè)計(jì)成本;在目標(biāo)程序燒寫過程中,只需要通過FPGA下載器燒寫一個(gè).mcs文件即可,簡化車間批量生產(chǎn)時(shí)FPGA和DSP程序加載流程,操作方法極其簡單。
【專利附圖】
【附圖說明】
[0019]圖1是本發(fā)明實(shí)施例所述的一種FPGA和DSP目標(biāo)程序的燒寫和啟動(dòng)的設(shè)備組成框圖。
[0020]圖2是本發(fā)明實(shí)施例所述的一種FPGA和DSP目標(biāo)程序的燒寫和啟動(dòng)的方法的步驟示意圖。
【具體實(shí)施方式】
[0021]如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同名詞來稱呼同一個(gè)組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。說明書后續(xù)描述為實(shí)施本發(fā)明的較佳實(shí)施方式,然所述描述乃以說明本發(fā)明的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。[0022]以下結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明,但不作為對本發(fā)明的限定。
[0023]本發(fā)明主要是針對FPGA+DSP架構(gòu)的信號(hào)處理板,在降低硬件設(shè)計(jì)的復(fù)雜度的同時(shí),簡化該架構(gòu)兩種處理芯片程序燒寫流程,特別是第一次燒寫兩種處理芯片的程序,即此時(shí)芯片中無程序運(yùn)行,不通過網(wǎng)口實(shí)現(xiàn)遠(yuǎn)程加載,實(shí)現(xiàn)方便快速的燒寫。
[0024]如圖1所示,圖1為本發(fā)明實(shí)施例所述的一種FPGA和DSP程序燒寫和啟動(dòng)的設(shè)備組成框圖。
[0025]該設(shè)備包括上位機(jī)、JTAG下載器、程序存儲(chǔ)器、FPGA芯片以及DSP芯片。在本實(shí)施例中,為方便說明,將程序存儲(chǔ)器、FPGA芯片以及DSP芯片的組合統(tǒng)稱為數(shù)字信號(hào)處理設(shè)備。其中,所述JTAG下載器一端連接所述上位機(jī),另一端和FPGA芯片上的JTAG接口相連,所述FPGA芯片以及DSP芯片之間連接有總線和復(fù)位信號(hào)線,所述FPGA芯片和程序存儲(chǔ)器間也通過總線連接。這樣,上位機(jī)將通過JTAG下載器與數(shù)字信號(hào)處理設(shè)備中FPGA的JTAG接口連接,進(jìn)而實(shí)現(xiàn)對FPGA和DSP程序的燒寫和啟動(dòng)。JTAG (Joint Test Action Group)是一種國際標(biāo)準(zhǔn)測試協(xié)議,主要應(yīng)用于芯片內(nèi)部的測試及對系統(tǒng)進(jìn)行仿真、調(diào)試,現(xiàn)在大多數(shù)高級(jí)器件都支持JTAG協(xié)議,如DSP/FPGA器件等,標(biāo)準(zhǔn)的JTAG接口是4線連接,分別為模式選擇線(TMS)、時(shí)鐘線(TCK)、數(shù)據(jù)輸入線(TDL)、數(shù)據(jù)輸出線(TDO)。JTAG的基本原理是在器件內(nèi)部定義一個(gè)TAP (Test Access Port ;測試訪問口),通過專用的JTAG測試工具對進(jìn)行內(nèi)部節(jié)點(diǎn)進(jìn)行測試。JTAG測試允許多個(gè)器件通過JTAG接口串聯(lián)在一起,形成一個(gè)JTAG鏈,能實(shí)現(xiàn)對各個(gè)器件分別測試。JTAG接口還常用于實(shí)現(xiàn)ISP (In-System Programmable在線編程),對FLASH等器件進(jìn)行編程,可對PSD芯片內(nèi)部的所有器件進(jìn)行編程。
[0026]作為一個(gè)優(yōu)選的實(shí)施方式,本發(fā)明中的FPGA芯片選用XILINX公司的XC5VLX110TFPGAjJTAG下載器選用XILINX公司的JTAG下載器,DSP芯片選用TI公司的TMS320F6416,程序存儲(chǔ)器選用第三方專業(yè)配置芯片,且為非易失性存儲(chǔ)器(Non-volatile Memory),其特點(diǎn)是既能像ROM那樣,在斷電后依然保持?jǐn)?shù)據(jù)不丟失,又能像RAM那樣及時(shí)進(jìn)行數(shù)據(jù)的擦寫,常采用 ROM、EPROM 或 Flash Memory 等。
[0027]采用上述對目標(biāo)程序燒寫和啟動(dòng)的設(shè)備進(jìn)行FPGA和DSP目標(biāo)程序燒寫和啟動(dòng)的基本操作過程如下:
[0028]將FPGA目標(biāo)程序(.bit的文件格式)和DSP目標(biāo)程序(.bin的文件格式)轉(zhuǎn)換成.mcs的文件格式;再將FPGA的JTAG下載器分別與上位機(jī)終端和數(shù)字信號(hào)處理設(shè)備上FPGA的JTAG 口相連,打開FPGA程序加載軟件,通過XINLIX公司提供的燒寫軟件將生成的.mcs文件寫入信號(hào)處理設(shè)備的存儲(chǔ)器中,完成FPGA和DSP目標(biāo)程序的燒寫。
[0029]燒寫完成之后,再進(jìn)行FPGA目標(biāo)程序和DSP目標(biāo)程序的啟動(dòng)測試:先給所述數(shù)字信號(hào)處理設(shè)備重新上電或給出一個(gè)復(fù)位信號(hào),當(dāng)所述FPGA芯片成功運(yùn)行后,其內(nèi)部電路通過總線將所述DSP芯片與存儲(chǔ)器直接連接起來,同時(shí)所述FPGA芯片通過復(fù)位信號(hào)線給DSP產(chǎn)生一個(gè)復(fù)位信號(hào)。
[0030]當(dāng)所述DSP檢測到復(fù)位信號(hào)后,重新加載程序,其通過程序加載口從存儲(chǔ)器中讀取DSP目標(biāo)程序并運(yùn)行,DSP程序加載采用ROM引導(dǎo)加載方式。
[0031]所述DSP加載完成之后,所述FPGA將檢測DSP運(yùn)行狀態(tài),若正常運(yùn)行則加載完成,若檢測到DSP運(yùn)行狀態(tài)異常,則產(chǎn)生復(fù)位信號(hào),重新加載DSP程序,3次加載仍不成功后報(bào)錯(cuò),并結(jié)束加載。[0032]基于本發(fā)明的另一方面,如圖1所示,還提供一種FPGA和DSP目標(biāo)程序燒寫和啟動(dòng)的方法,主要分目標(biāo)程序的燒寫和啟動(dòng)兩個(gè)階段,共分為4個(gè)步驟,其中步驟S1、S2對應(yīng)目標(biāo)程序的燒寫,步驟S3、S4對應(yīng)目標(biāo)程序的啟動(dòng)。
[0033]燒寫主要是對單片機(jī)(含嵌入式)/存儲(chǔ)器(含BIOS)之類的芯片來說的,單片機(jī)在生產(chǎn)出來的時(shí)候其內(nèi)部是沒有程序的,如果要其實(shí)現(xiàn)某種功能,需要將相應(yīng)的程序烤到單片機(jī)中,把可編程的集成電路寫上數(shù)據(jù),這個(gè)過程就叫做燒寫。本發(fā)明中的目標(biāo)程序的燒寫主要包括以下步驟:
[0034]步驟SI,將DSP的目標(biāo)程序文件.0ut轉(zhuǎn)換成DSP可執(zhí)行的二進(jìn)制格式文件.bin。
[0035]步驟S2,將FPGA目標(biāo)程序文件.bit和DSP目標(biāo)程序文件.bin轉(zhuǎn)換成一個(gè).mcs文件,在轉(zhuǎn)換過程中,F(xiàn)PGA目標(biāo)程序的地址為存儲(chǔ)器的首地址,DSP目標(biāo)程序的地址可根據(jù)具體情況任意設(shè)置;然后再將FPGA的JTAG下載器分別與電腦和數(shù)字信號(hào)處理設(shè)備上FPGA的JTAG 口相連,打開FPGA程序加載軟件,通過XINLIX公司提供的燒寫軟件燒將生成的.mcs文件寫入信號(hào)處理設(shè)備的存儲(chǔ)器中,完成FPGA和DSP目標(biāo)程序的燒寫。
[0036]當(dāng)完成FPGA和DSP目標(biāo)程序的燒寫之后,開始目標(biāo)程序的啟動(dòng)過程,主要是檢測并調(diào)試程序是否可用。本發(fā)明中的目標(biāo)程序的啟動(dòng)主要包括以下步驟:
[0037]步驟S3,加載完成之后,給數(shù)字信號(hào)處理設(shè)備重新上電或復(fù)位;在FPGA檢測到復(fù)位信號(hào)后,F(xiàn)PGA將自動(dòng)從程序存儲(chǔ)器中讀取FPGA程序代碼并運(yùn)行,完成FPGA的加載。
[0038]步驟S4,當(dāng)FPGA成功運(yùn)行后,其內(nèi)部通過總線將DSP與存儲(chǔ)器直接連接,同時(shí)FPGA通過復(fù)位信號(hào)線給DSP產(chǎn)生復(fù)位信號(hào);當(dāng)DSP檢測到復(fù)位信號(hào)后,重新加載程序,其通過程序加載口從存儲(chǔ)器中讀取DSP目標(biāo)程序并運(yùn)行,DSP程序加載采用ROM引導(dǎo)加載方式,實(shí)現(xiàn)DSP的程序加載。
[0039]當(dāng)DSP加載完成之后,F(xiàn)PGA檢測DSP運(yùn)行狀態(tài),若正常運(yùn)行則加載完成,若DSP運(yùn)行狀態(tài)異常,則產(chǎn)生復(fù)位信號(hào),重新加載DSP程序,3次或3次以上加載仍不成功后報(bào)錯(cuò)并結(jié)束加載,加載的次數(shù)可以根據(jù)實(shí)際情況設(shè)置。
[0040]與現(xiàn)有技術(shù)相比,本發(fā)明所述的一種FPGA和DSP程序燒寫和啟動(dòng)的方法及對應(yīng)的設(shè)備,在硬件上,在一片存儲(chǔ)芯片上同時(shí)存儲(chǔ)FPGA目標(biāo)程序和DSP目標(biāo)程序,降低硬件設(shè)計(jì)復(fù)雜度,減小了硬件設(shè)計(jì)成本;在目標(biāo)程序燒寫過程中,只需要通過FPGA下載器燒寫一個(gè).mcs文件即可,簡化車間批量生產(chǎn)時(shí)FPGA和DSP程序加載流程,操作方法簡單。
[0041]上述說明示出并描述了本發(fā)明的若干優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種FPGA和DSP目標(biāo)程序的燒寫和啟動(dòng)的方法,其特征在于包括如下步驟: SIJfDSP目標(biāo)程序文件轉(zhuǎn)換成FPGA目標(biāo)程序文件可執(zhí)行的文件格式; S2,將FPGA目標(biāo)程序和轉(zhuǎn)換后的DSP目標(biāo)程序轉(zhuǎn)換成一個(gè)文件并燒寫到目標(biāo)板上的存儲(chǔ)器的不同地址段,一次性完成兩種處理器目標(biāo)程序的燒寫; S3,將設(shè)備重新上電或復(fù)位,F(xiàn)PGA自動(dòng)從程序存儲(chǔ)器中相應(yīng)的地址讀取FPGA程序代碼并運(yùn)行,完成FPGA加載; S4,將DSP外部的程序加載接口與程序存儲(chǔ)器連接,同時(shí)FPGA給DSP —個(gè)復(fù)位信號(hào),此時(shí)DSP自動(dòng)從程序存儲(chǔ)器對應(yīng)的地址中讀取DSP程序代碼并運(yùn)行,完成DSP加載。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括步驟: S5,當(dāng)DSP的加載完成之后,F(xiàn)PGA將檢測DSP的運(yùn)行狀態(tài),若正常運(yùn)行則表明加載完成,若DSP運(yùn)行狀態(tài)異常,則再產(chǎn)生復(fù)位信號(hào),重新加載DSP程序,當(dāng)加載的次數(shù)不少于3次,加載仍不成功,將報(bào)錯(cuò)并結(jié)束加載程序。
3.如權(quán)利要求1所述的方法,其特征在于,步驟S2中,燒寫到所述目標(biāo)板上的所述FPGA目標(biāo)程序的地址為存儲(chǔ)器的首地址,所述DSP目標(biāo)程序的地址根據(jù)具體情況任意設(shè)置。
4.如權(quán)利要求1所述的方法,其特征在于,步驟S4中,當(dāng)FPGA給DSP—個(gè)復(fù)位信號(hào)后,DSP程序的加載運(yùn)行采用ROM引導(dǎo)的加載方式。
5.一種FPGA和DSP程序燒寫和啟動(dòng)設(shè)備,其特征在于,包括:上位機(jī)、JTAG下載器、程序存儲(chǔ)器、FPGA芯片以及DSP芯片,其中,所述JTAG下載器分別連接所述上位機(jī)和和FPGA芯片,所述FPGA芯片以及DSP芯片之間通過總線和復(fù)位信號(hào)線連接,所述FPGA芯片和程序存儲(chǔ)器之間也通過總線連接。
6.如權(quán)利要求5所述的設(shè)備,其特征在于,所述FPGA芯片為XILINX公司的XC5VLX110T型號(hào),所述DSP芯片為TI公司的TMS320F6416,所述JTAG下載器為XILINX公司的JTAG下載器,所述程序存儲(chǔ)器為非易失性存儲(chǔ)器。
【文檔編號(hào)】G06F9/445GK103823698SQ201410069555
【公開日】2014年5月28日 申請日期:2014年2月27日 優(yōu)先權(quán)日:2014年2月27日
【發(fā)明者】任周唱, 熊朝廷, 楊廷洪 申請人:四川九洲電器集團(tuán)有限責(zé)任公司