国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      對包括ARM芯片、DSP芯片和FPGA芯片的嵌入式系統(tǒng)進行程序更新的方法與流程

      文檔序號:12664557閱讀:250來源:國知局
      對包括ARM芯片、DSP芯片和FPGA芯片的嵌入式系統(tǒng)進行程序更新的方法與流程

      本發(fā)明涉及嵌入式硬件領域,具體地涉及對包括ARM芯片、DSP芯片和FPGA芯片的嵌入式系統(tǒng)進行程序更新的方法。



      背景技術:

      在嵌入式硬件領域,基于ARM(低成本RISC微處理器)、DSP(數(shù)字信號處理器)、FPGA(現(xiàn)場可編程邏輯陣列)的硬件結構有著廣泛的應用。在一些復雜的應用場合中,三種硬件能夠優(yōu)勢互補,共同完成特定的復雜功能。舉例來講,在一些組合導航控制系統(tǒng)中,可以用ARM實現(xiàn)慣性測量單元的數(shù)據(jù)采集、標定、補償,用DSP實現(xiàn)組合導航和控制算法,以及用FPGA實現(xiàn)各種外部接口。通常情況下,通過這三者各自的JTAG接口將它們的程序數(shù)據(jù)下載到FLASH芯片中。但在有些場合,當產(chǎn)品封裝并交付使用后,通過JTAG接口更新程序數(shù)據(jù)就變的比較困難,尤其是ARM/DSP/FPGA聯(lián)合使用的場合,可能會同時需要三個JTAG接口,這是不期望的。此外,在產(chǎn)品調(diào)試過程中,JTAG接口可能并不方便使用。因此,期待一種能夠?qū)θ叩某绦驍?shù)據(jù)方便地進行更新升級的方法。



      技術實現(xiàn)要素:

      為了解決現(xiàn)有技術中存在的上述問題,本發(fā)明提出了一種對包括ARM芯片、DSP芯片和FPGA芯片的嵌入式系統(tǒng)進行程序更新的方法。

      根據(jù)本發(fā)明的一個方面,提出了一種對包括ARM芯片、DSP芯片和FPGA芯片的嵌入式系統(tǒng)進行程序更新的方法。在所述嵌入式系統(tǒng)中,F(xiàn)PGA芯片分別與ARM芯片和DSP芯片相連,F(xiàn)PGA芯片和DSP芯片之一連接到第一存儲單元,該第一存儲單元存儲有FPGA芯片和DSP芯片的程序,所述ARM芯片連接到第二存儲單元,該第二存儲單元存儲有ARM芯片的程序。所述方法包括通過串行數(shù)據(jù)接口執(zhí)行以下步驟:向FPGA芯片發(fā)送針對ARM芯片、DSP芯片和/或FPGA芯片的升級指令;從FPGA芯片接收針對所述升級指令的響應;向FPGA芯片發(fā)送針對ARM芯片、DSP芯片和/或FPGA芯片的更新數(shù)據(jù),其中,對FPGA芯片和DSP芯片的程序更新與對ARM芯片的程序更新是并行的。

      在一個實施例中,如果所述第一存儲單元連接FPGA芯片,則所述方法包括:通過串行數(shù)據(jù)接口向FPGA芯片發(fā)送升級指令,并使得所述FPGA芯片將所述升級指令轉發(fā)到ARM芯片;通過串行數(shù)據(jù)接口從FPGA芯片接收分別來自FPGA芯片和ARM芯片的升級響應;通過串行數(shù)據(jù)接口向FPGA發(fā)送針對FPGA芯片、DSP芯片和ARM芯片中的至少一種芯片的更新數(shù)據(jù),以及如果所述更新數(shù)據(jù)中包括針對FPGA芯片和/或DSP芯片的更新數(shù)據(jù),則使FPGA芯片使用所接收到的針對FPGA芯片和/或DSP芯片的更新數(shù)據(jù)對第一存儲單元中存儲的程序進行更新,如果所述更新數(shù)據(jù)中包括針對ARM芯片的更新數(shù)據(jù),則使FPGA芯片將針對ARM芯片的更新數(shù)據(jù)轉發(fā)到ARM芯片,以便由ARM芯片使用所述針對ARM芯片的更新數(shù)據(jù)對第二存儲單元中存儲的程序進行更新。

      在一個實施例中,如果所述第一存儲單元連接DSP芯片,則所述方法包括:通過串行數(shù)據(jù)接口向FPGA芯片發(fā)送升級指令,并使得所述FPGA芯片將所述升級指令轉發(fā)到DSP芯片和ARM芯片;通過串行數(shù)據(jù)接口從FPGA芯片接收分別來自DSP芯片和ARM芯片的升級響應;通過串行數(shù)據(jù)接口向FPGA發(fā)送針對FPGA芯片、DSP芯片和ARM芯片中的至少一種芯片的更新數(shù)據(jù),以及如果所述更新數(shù)據(jù)中包括針對FPGA芯片和/或DSP芯片的更新數(shù)據(jù),則使FPGA芯片將所述針對FPGA芯片和/或DSP芯片的更新數(shù)據(jù)轉發(fā)到DSP芯片,以便由DSP芯片使用所述針對FPGA芯片和/或DSP芯片的更新數(shù)據(jù)對第一存儲單元中存儲的程序進行更新,如果所述更新數(shù)據(jù)中包括針對ARM芯片的更新數(shù)據(jù),則使FPGA芯片將針對ARM芯片的更新數(shù)據(jù)轉發(fā)到ARM芯片,以便由ARM芯片使用所述針對ARM芯片的更新數(shù)據(jù)對第二存儲單元中存儲的程序進行更新。

      在一個實施例中,所述串行數(shù)據(jù)接口是RS232接口、RS422接口和RS485接口之一。

      在一個實施例中,所述第一存儲單元是EPCS存儲單元,所述第二存儲單元是FLASH(閃存)存儲單元。

      在一個實施例中,所述第一存儲單元和所述第二存儲單元都是FLASH存儲單元。

      在一個實施例中,所述第二存儲單元是所述ARM芯片的一部分。

      在一個實施例中,所述FPGA芯片包括與運算模塊,所述與運算模塊能夠?qū)ψ陨淼男盘柣騺碜訢SP芯片的信號與來自ARM芯片的信號進行與運算,并將得到的信號發(fā)送到串行數(shù)據(jù)接口。

      在一個實施例中,所述FPGA芯片與所述串行數(shù)據(jù)接口之間通過UART協(xié)議進行通信,所述FPGA芯片與所述ARM芯片之間通過UART協(xié)議進行通信,所述FPGA芯片與所述DSP接口之間通過EMIF協(xié)議進行通信。

      在一個實施例中,在通過串行數(shù)據(jù)接口向FPGA發(fā)送針對FPGA芯片、DSP芯片和ARM芯片中的至少一種芯片的更新數(shù)據(jù)之前,向FPGA發(fā)送指示更新文件大小的指令。

      在本發(fā)明所提出的對包括ARM、DSP、FPGA芯片的嵌入式系統(tǒng)進行程序更新的方法中,通過使用串行數(shù)據(jù)接口(例如,RS422接口),能夠在不增加系統(tǒng)硬件和軟件成本的前提下,方便地完成對三種芯片的程序數(shù)據(jù)的更新。

      附圖說明

      圖1示出了根據(jù)本發(fā)明的實施例的嵌入式系統(tǒng)的結構框圖。

      圖2示出了根據(jù)第一情形的嵌入式系統(tǒng)的結構框圖。

      圖3示出了根據(jù)第二情形的嵌入式系統(tǒng)的結構框圖。

      圖4示出了第一存儲單元的示例數(shù)據(jù)存儲結構。

      圖5示出了第二存儲單元的示例數(shù)據(jù)存儲結構。

      圖6示出了根據(jù)本發(fā)明的實施例的對包括ARM芯片、DSP芯片和FPGA芯片的嵌入式系統(tǒng)進行程序更新的方法的流程圖。

      圖7示意性地示出了基于圖3的情形的包括與運算模塊的FPGA芯片以及其與ARM芯片和DSP芯片的連接關系。

      具體實施方式

      下面將詳細描述本發(fā)明的具體實施例,應當注意,這里描述的實施例只用于舉例說明,并不用于限制本發(fā)明。在以下描述中,為了提供對本發(fā)明的透徹理解,闡述了大量特定細節(jié)。然而,對于本領域普通技術人員顯而易見的是:不必采用這些特定細節(jié)來實行本發(fā)明。在其他實例中,為了避免混淆本發(fā)明,未具體描述公知的電路、材料或方法。

      在整個說明書中,對“一個實施例”、“實施例”、“一個示例”或“示例”的提及意味著:結合該實施例或示例描述的特定特征、結構或特性被包含在本發(fā)明至少一個實施例中。因此,在整個說明書的各個地方出現(xiàn)的短語“在一個實施例中”、“在實施例中”、“一個示例”或“示例”不一定都指同一實施例或示例。此外,可以以任何適當?shù)慕M合和/或子組合將特定的特征、結構或特性組合在一個或多個實施例或示例中。此外,本領域普通技術人員應當理解,在此提供的附圖都是為了說明的目的,并且附圖不一定是按比例繪制的。這里使用的術語“和/或”包括一個或多個相關列出的項目的任何和所有組合。

      以下參考附圖對本發(fā)明進行具體描述。

      圖1示出了根據(jù)本發(fā)明的實施例的嵌入式系統(tǒng)100的結構框圖。如圖所示,嵌入式系統(tǒng)100包括ARM芯片110、DSP芯片120、FPGA芯片130和串行數(shù)據(jù)接口140。在所述嵌入式系統(tǒng)100中,F(xiàn)PGA芯片130分別與ARM芯片110和DSP芯片120相連。在一個實施例中,所述FPGA芯片與所述串行數(shù)據(jù)接口之間通過UART(通用異步收發(fā))協(xié)議進行通信,所述FPGA芯片與所述ARM芯片之間通過UART協(xié)議進行通信,所述FPGA芯片與所述DSP接口之間通過EMIF(外部存儲接口)協(xié)議進行通信。

      具體地,ARM可以使用意法半導體公司的STM32FXXX系列芯片,F(xiàn)PGA可以使用ALTERA公司cyclone系列芯片,DSP以使用TI公司C6000系列芯片。此外,實際應用過程中,ARM的UART發(fā)送/接收可使用DMA方式。

      ARM芯片110、DSP芯片120、FPGA芯片130應該分別連接到用于存儲它們的程序文件的存儲單元。在本發(fā)明的實施例中,考慮將ARM芯片110的程序與DSP芯片120和FPGA芯片1230的程序分別存儲的情形。具體地,根據(jù)存儲單元的連接不同,可以分兩種示例情形進行討論。

      第一情形

      圖2示出了根據(jù)第一情形的嵌入式系統(tǒng)200的結構框圖。圖2中的ARM芯片210、DSP芯片220、FPGA芯片230和串行數(shù)據(jù)接口240與圖1中的相應單元一致,在此不再贅述。

      在圖2中,F(xiàn)PGA芯片230連接到第一存儲單元250,ARM芯片210連接到第二存儲單元260。第一存儲單元250存儲有FPGA芯片230和DSP芯片220的程序,第二存儲單元260存儲有ARM芯片210的程序。

      在一個實施例中,所述第一存儲單元250是EPCS存儲單元,所述第二存儲單元260是FLASH存儲單元。

      在一個實施例中,所述第二存儲單元260是所述ARM芯片210的一部分。

      第二情形

      圖3示出了根據(jù)第二情形的嵌入式系統(tǒng)300的結構框圖。圖3中的ARM芯片310、DSP芯片320、FPGA芯片330和串行數(shù)據(jù)接口340與圖1中的相應單元一致,在此不再贅述。

      在圖3中,DSP芯片320連接到第一存儲單元350,ARM芯片310連接到第二存儲單元360。第一存儲單元350存儲有FPGA芯片330和DSP芯片320的程序,第二存儲單元360存儲有ARM芯片310的程序。

      在一個實施例中,所述第一存儲單元350和第二存儲單元360都是FLASH存儲單元。

      在一個實施例中,所述第二存儲單元360是ARM芯片310的一部分。

      下文中,將在“系統(tǒng)啟動”部分以第二情形為例描述嵌入式系統(tǒng)的啟動過程,并在“系統(tǒng)更新”部分針對第一情形和第二情形分別描述對嵌入式系統(tǒng)進行更新的方法。

      在一個實施例中,串行數(shù)據(jù)接口140是RS232接口、RS422接口和RS485接口之一。在進行升級更新時,所示串行數(shù)據(jù)接口140連接上位機(或其他能夠提供更新文件的接口或設備)。

      系統(tǒng)啟動

      本部分描述參照圖3中所示的嵌入式系統(tǒng)300的結構進行。

      首先,圖4和圖5分別示出了作為FLASH存儲單元的第一存儲單元350和連接到ARM芯片310的(或位于ARM芯片310的內(nèi)部)的第二存儲單元360(同樣以FLASH存儲單元為例)的數(shù)據(jù)存儲結構。

      如圖4所示,第一存儲單元350的數(shù)據(jù)存儲結構包括FIRST_BOOT_1K、SECOND_BOOT、FPGA_BOOT、FPGA_APP和DSP_APP五部分。如圖5所示,對第二存儲單元360的數(shù)據(jù)存儲結構包括ARM_BOOT和ARM_APP兩部分。需要指出的是,對嵌入式系統(tǒng)進行程序更新的方法是指FPGA_APP、DSP_APP和ARM_APP這三段用戶程序數(shù)據(jù)的更新方法。FIRST_BOOT_1K、SECOND_BOOT、FPGA_BOOT和ARM_BOOT都是在單板調(diào)試的過程中,分別通過DSP和ARM的JTAG接口燒寫至對應存儲器的地址空間。

      系統(tǒng)上電后,DSP通過EMIF從第一存儲單元350的基地址處開始,將FIRST_BOOT_1K復制到其內(nèi)部隨機存取存儲器(RAM)中,然后開始執(zhí)行這段程序。然而,F(xiàn)IRST_BOOT_1K受制于其1K字節(jié)代碼長度的限制,能完成的工作很少。本發(fā)明的實施例中還將SECOND_BOOT復制到DSP的內(nèi)部RAM中,并加以執(zhí)行。SECOND_BOOT開始運行后,首先從第一存儲單元350中讀取FPGA_BOOT,完成FPGA的配置。然后,查詢是否有來自例如上位機的升級指令。如果有升級指令,則與上位機建立升級通信,完成FPGA_APP或者DSP_APP的數(shù)據(jù)更新,如果沒有升級指令,則讀取FPGA_APP數(shù)據(jù),控制完成FPGA的配置,最后將DSP_APP復制內(nèi)部RAM中,并加以執(zhí)行。至此,用戶FPGA程序和DSP應用程序都開始運行。

      同時,系統(tǒng)上電后,ARM開始運行ARM_BOOT程序,ARM_BOOT等待DSP用FPGA_BOOT配置完FPGA后,同樣查詢是否有經(jīng)由FPGA傳遞的上位機升級指令。如果有,則經(jīng)由FPGA與上位機建立通信,完成ARM_APP的更新。如果沒有則跳轉至ARM_APP,開始執(zhí)行ARM的應用程序。

      系統(tǒng)更新

      本部分描述對嵌入式系統(tǒng)進行更新的方法。并將針對圖2和圖3所示的結構分別進行描述。

      圖6示出了根據(jù)本發(fā)明的實施例的對包括ARM芯片、DSP芯片和FPGA芯片的嵌入式系統(tǒng)進行程序更新的方法600的流程圖。

      所述方法600包括通過串行數(shù)據(jù)接口執(zhí)行步驟S610-S630。

      在步驟S610中,通過串行數(shù)據(jù)接口向FPGA芯片發(fā)送針對ARM芯片、DSP芯片和/或FPGA芯片的升級指令。

      針對圖2所示的情形,所述第一存儲單元250連接FPGA芯片230。此時,通過串行數(shù)據(jù)接口240向FPGA芯片230發(fā)送升級指令,并使得所述FPGA芯片230將所述升級指令轉發(fā)到ARM芯片210。

      針對圖3所示的情形,所述第一存儲單元350連接DSP芯片320。此時,通過串行數(shù)據(jù)接口340向FPGA芯片330發(fā)送升級指令,并使得所述FPGA芯片330將所述升級指令轉發(fā)到DSP芯片320和ARM芯片310。

      在步驟S620中,通過串行數(shù)據(jù)接口從FPGA芯片接收針對所述升級指令的響應。

      針對圖2中的情形,通過串行數(shù)據(jù)接口240從FPGA芯片230接收分別來自FPGA芯片230和ARM芯片210的升級響應。而針對圖3中的情形,通過串行數(shù)據(jù)接口340從FPGA芯片330接收分別來自DSP芯片320和ARM芯片310的升級響應。

      在步驟S630中,通過串行數(shù)據(jù)接口向FPGA芯片發(fā)送針對ARM芯片、DSP芯片和/或FPGA芯片的更新數(shù)據(jù)。

      其中,對FPGA芯片和DSP芯片的程序更新與對ARM芯片的程序更新是并行的。

      針對圖2中的情形,通過串行數(shù)據(jù)接口240向FPGA芯片230發(fā)送針對FPGA芯片230、DSP芯片220和ARM芯片210中的至少一種芯片的更新數(shù)據(jù)。如果所述更新數(shù)據(jù)中包括針對FPGA芯片230和/或DSP芯片220的更新數(shù)據(jù),則使FPGA芯片230使用所接收到的針對FPGA芯片230和/或DSP芯片220的更新數(shù)據(jù)對第一存儲單元250中存儲的程序進行更新。如果所述更新數(shù)據(jù)中包括針對ARM芯片210的更新數(shù)據(jù),則使FPGA芯片230將針對ARM芯片210的更新數(shù)據(jù)轉發(fā)到ARM芯片210,以便由ARM芯片210使用所述針對ARM芯片210的更新數(shù)據(jù)對第二存儲單元260中存儲的程序進行更新。

      針對圖3中的情形,通過串行數(shù)據(jù)接口340向FPGA芯片330發(fā)送針對FPGA芯片330、DSP芯片320和ARM芯片310中的至少一種芯片的更新數(shù)據(jù)。如果所述更新數(shù)據(jù)中包括針對FPGA芯片330和/或DSP芯片320的更新數(shù)據(jù),則使FPGA芯片330將所述針對FPGA芯片330和/或DSP芯片320的更新數(shù)據(jù)轉發(fā)到DSP芯片320,以便由DSP芯片320使用所述針對FPGA芯片330和/或DSP芯片320的更新數(shù)據(jù)對第一存儲單元350中存儲的程序進行更新。如果所述更新數(shù)據(jù)中包括針對ARM芯片310的更新數(shù)據(jù),則使FPGA芯片330將針對ARM芯片310的更新數(shù)據(jù)轉發(fā)到ARM芯片310,以便由ARM芯片310使用所述針對ARM芯片310的更新數(shù)據(jù)對第二存儲單元360中存儲的程序進行更新。

      在本發(fā)明的實施例中,所述FPGA芯片還可包括與運算模塊。針對圖2的情形,所述與運算模塊能夠?qū)ψ陨淼男盘柵c來自ARM芯片210的信號進行與運算,并將得到的信號發(fā)送到串行數(shù)據(jù)接口240。針對圖3的情形,所述與運算模塊能夠?qū)碜訢SP芯片320的信號與來自ARM芯片310的信號進行與運算,并將得到的信號發(fā)送到串行數(shù)據(jù)接口340。

      圖7示意性地示出了基于圖3的情形的包括與運算模塊731的FPGA芯片730以及其與ARM芯片710和DSP芯片720的連接關系。

      更新發(fā)送信號Tx分為兩路,一路進入FPGA芯片730的UART模塊,另一路通過直連的方式進入ARM芯片710。根據(jù)UART協(xié)議層的信號規(guī)范,信號在空閑時刻為高電平。因此,接收信號Rx可以由ARM芯片710的發(fā)送信號和來自UART模塊的發(fā)送信號在與運算模塊731處進行與運算后驅(qū)動。通過這樣的連接,可以通過一個串行數(shù)據(jù)接口同時與DSP芯片720和ARM芯片710進行通信。進行數(shù)據(jù)發(fā)送時,DSP芯片720和ARM芯片710可以同時接收,并做出相應響應。另外,DSP芯片720和ARM芯片710也可以分時反饋數(shù)據(jù)。

      在一個實施例中,在步驟S630之前,還可向FPGA芯片發(fā)送指示更新文件大小的指令,以便相應的芯片擦除存儲單元中的相應存儲空間。

      在一個實施例中,在更新完程序數(shù)據(jù)后,還可進行校驗。

      以上的詳細描述通過使用示意圖、流程圖和/或示例,已經(jīng)闡述了眾多實施例。在這種示意圖、流程圖和/或示例包含一個或多個功能和/或操作的情況下,本領域技術人員應理解,這種示意圖、流程圖或示例中的每一功能和/或操作可以通過各種結構、硬件、軟件、固件或?qū)嵸|(zhì)上它們的任意組合來單獨和/或共同實現(xiàn)。在一個實施例中,本發(fā)明的實施例所述主題的若干部分可以通過專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號處理器(DSP)、或其他集成格式來實現(xiàn)。然而,本領域技術人員應認識到,這里所公開的實施例的一些方面在整體上或部分地可以等同地實現(xiàn)在集成電路中,實現(xiàn)為在一臺或多臺計算機上運行的一個或多個計算機程序(例如,實現(xiàn)為在一臺或多臺計算機系統(tǒng)上運行的一個或多個程序),實現(xiàn)為在一個或多個處理器上運行的一個或多個程序(例如,實現(xiàn)為在一個或多個微處理器上運行的一個或多個程序),實現(xiàn)為固件,或者實質(zhì)上實現(xiàn)為上述方式的任意組合,并且本領域技術人員根據(jù)本公開,將具備設計電路和/或?qū)懭胲浖?或固件代碼的能力。此外,本領域技術人員將認識到,本公開所述主題的機制能夠作為多種形式的程序產(chǎn)品進行分發(fā),并且無論實際用來執(zhí)行分發(fā)的信號承載介質(zhì)的具體類型如何,本公開所述主題的示例性實施例均適用。信號承載介質(zhì)的示例包括但不限于:可記錄型介質(zhì),如軟盤、硬盤驅(qū)動器、緊致盤(CD)、數(shù)字通用盤(DVD)、數(shù)字磁帶、計算機存儲器等;以及傳輸型介質(zhì),如數(shù)字和/或模擬通信介質(zhì)(例如,光纖光纜、波導、有線通信鏈路、無線通信鏈路等)。

      雖然已參照幾個典型實施例描述了本發(fā)明,但應當理解,所用的術語是說明和示例性、而非限制性的術語。由于本發(fā)明能夠以多種形式具體實施而不脫離發(fā)明的精神或?qū)嵸|(zhì),所以應當理解,上述實施例不限于任何前述的細節(jié),而應在隨附權利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權利要求或其等效范圍內(nèi)的全部變化和改型都應為隨附權利要求所涵蓋。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1