<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于大容量FPGA的多節(jié)點(diǎn)系統(tǒng)的遠(yuǎn)程升級(jí)的實(shí)現(xiàn)

          基于大容量FPGA的多節(jié)點(diǎn)系統(tǒng)的遠(yuǎn)程升級(jí)的實(shí)現(xiàn)

          作者: 時(shí)間:2013-10-17 來(lái)源:網(wǎng)絡(luò) 收藏

            表2 Spartan3系列配置文件大小

          以XC3S4000型為例,它的配置文件所需的存儲(chǔ)空間約為1.35 MB,已遠(yuǎn)遠(yuǎn)超出了ATmega64單片機(jī)的尋址空間。因此,為了能夠利用ATmega64單片機(jī)來(lái)實(shí)現(xiàn)對(duì)配置數(shù)據(jù)的讀寫(xiě),必須對(duì)其尋址空間進(jìn)行擴(kuò)展。擴(kuò)展的硬件連接框圖如圖2中的單片機(jī)與Flash的連接部分所示。

            本設(shè)計(jì)中是使用通用I/O來(lái)擴(kuò)展ATmega64單片機(jī)的尋址空間的。ATmega64單片機(jī)的總尋址空間為64 KB,但片內(nèi)4 KB的SRAM及各種寄存器占用了前面的部分尋址空間,故其片外存儲(chǔ)器尋址空間是0x1100~0xFFFF。因此將Flash的低15位地址直接接到ATmega64單片機(jī)的低15位地址總線上,其余6位高位地址用單片機(jī)的通用I/O進(jìn)行選擇。尋址時(shí)單片機(jī)的專用地址口只輸出0x8000~0xFFFF的地址數(shù)據(jù),與通用I/O輸出的地址組合后給出Flash的讀寫(xiě)地址。

            通過(guò)以上對(duì)ATmega64單片機(jī)尋址空間的擴(kuò)展方法,可以實(shí)現(xiàn)ATmega64單片機(jī)對(duì)合適的Flash存儲(chǔ)器的尋址操作,從而解決了大容量FPGA配置數(shù)據(jù)的存儲(chǔ)和讀取問(wèn)題。

            2.2.3 用ATmega64實(shí)現(xiàn)FPGA的SELECTMAP加載

            Xilinx公司的Spartan3系列FPGA加載方式分為5種: Master Serial、Slave Serial、Master Parallel、Slave Parallel、JTAG。

            按照FPGA是否控制加載過(guò)程,加載方式可分為Master方式和Slave方式;按照加載數(shù)據(jù)時(shí)的數(shù)據(jù)位寬,可分為Serial方式和Parallel方式。用于加載的引腳主要有: PROG_B,CCLK,RDWR_B,DONE,INIT_B,CS_B,BUSY,D[0~7],M[0~2],HSWAP和JTAG接口(TDI、TMS、TCK、TDO)。加載過(guò)程大體分為3個(gè)步驟:配置的建立、配置數(shù)據(jù)的加載和加載完成。

            SELECTMAP即Slave Parallel方式,是由外部控制器控制FPGA的加載過(guò)程,并以8位數(shù)據(jù)的形式向FPGA寫(xiě)入加載數(shù)據(jù)的加載方法。圖2中FPGA與ATmega64的連接部分為ATmega64單片機(jī)采用SELECTMAP方式對(duì)FPGA進(jìn)行加載的硬件連接框圖,具體實(shí)現(xiàn)過(guò)程如下:

            ATmega64通過(guò)將FPGA的PROG_B、CS_B和RDWR_B引腳置低來(lái)開(kāi)啟加載過(guò)程,F(xiàn)PGA在PROG_B置低后開(kāi)始清除內(nèi)部配置RAM,并將INIT_B腳置低。PROG_B重新置1后,在INIT_B由低變高的上升沿,F(xiàn)PGA采樣M[0~2]引腳獲取配置方式信息。ATmega64監(jiān)視FPGA的INIT_B腳,當(dāng)INIT_B腳由低變高時(shí),說(shuō)明FPGA已經(jīng)完成了內(nèi)部配置RAM的清除工作,并準(zhǔn)備好接收配置數(shù)據(jù)。在ATmega64給出的CCLK配置時(shí)鐘的上升沿,配置數(shù)據(jù)D[0~7]寫(xiě)入配置RAM。當(dāng)FPGA接收完所有的配置數(shù)據(jù)后,DONE引腳被FPGA置為高電平。ATmega64可以通過(guò)監(jiān)視DONE引腳來(lái)判斷FPGA是否加載完成。對(duì)于Spartan3系列的FPGA,如果配置FPGA的CCLK的頻率高于50 MHz,則外部控制器還需要監(jiān)視FPGA的BUSY引腳。當(dāng)BUSY腳為高時(shí),說(shuō)明FPGA還未完成上一個(gè)配置數(shù)據(jù)的處理,此時(shí)外部控制器需要繼續(xù)保持上一個(gè)配置數(shù)據(jù)在D[0~7]引腳,直至BUSY引腳回到低電平。對(duì)于本設(shè)計(jì)的應(yīng)用,ATmega64給出的配置時(shí)鐘頻率遠(yuǎn)低于50 MHz,不必考慮BUSY引腳的控制作用。

            3 軟件設(shè)計(jì)

            3.1 主控計(jì)算機(jī)的軟件設(shè)計(jì)

            主控制計(jì)算機(jī)的軟件運(yùn)行狀態(tài)應(yīng)該分為兩種:一是平時(shí)的查詢控制狀態(tài),用來(lái)查詢和控制系統(tǒng)中各個(gè)節(jié)點(diǎn)的工作狀態(tài);二是系統(tǒng)的升級(jí)狀態(tài),用來(lái)執(zhí)行對(duì)各個(gè)子節(jié)點(diǎn)的升級(jí)控制。如圖4所示,這兩種狀態(tài)是可以相互轉(zhuǎn)換的。

          圖4 主控計(jì)算機(jī)主要狀態(tài)

            軟件的查詢控制狀態(tài),是由系統(tǒng)所要實(shí)現(xiàn)的主要功能決定的,不屬于本文所討論的范疇。在系統(tǒng)的升級(jí)狀態(tài),主控計(jì)算機(jī)先要通過(guò)以太網(wǎng)獲得系統(tǒng)各個(gè)節(jié)點(diǎn)的數(shù)據(jù),待全部升級(jí)數(shù)據(jù)接收完成后,向系統(tǒng)的一個(gè)節(jié)點(diǎn)發(fā)送升級(jí)指令。節(jié)點(diǎn)響應(yīng)并建立起通信連接后,將該節(jié)點(diǎn)的升級(jí)數(shù)據(jù)全部發(fā)送到該節(jié)點(diǎn)。接下來(lái),主控計(jì)算機(jī)判斷上一個(gè)節(jié)點(diǎn)是否為最后一個(gè)需要升級(jí)的節(jié)點(diǎn),如果不是,則繼續(xù)進(jìn)行下一個(gè)節(jié)點(diǎn)升級(jí)數(shù)據(jù)的傳輸。系統(tǒng)所有的節(jié)點(diǎn)升級(jí)完成后,等待外部輸入的控制命令。例如,讓整個(gè)系統(tǒng)重新啟動(dòng),加載新的數(shù)據(jù);或暫時(shí)不重新啟動(dòng)而返回查詢控制狀態(tài)。軟件流程如圖5所示。

          圖5 系統(tǒng)升級(jí)狀態(tài)流程

            3.2 子節(jié)點(diǎn)的軟件設(shè)計(jì)

            對(duì)于子節(jié)點(diǎn)的軟件設(shè)計(jì),與主控計(jì)算機(jī)一樣,也分為平時(shí)的查詢控制狀態(tài)和系統(tǒng)升級(jí)狀態(tài),并且它們之間也能夠與主控計(jì)算機(jī)一起相互轉(zhuǎn)換;但ATmega64單片機(jī)還要承擔(dān)對(duì)FPGA的加載任務(wù)。開(kāi)機(jī)運(yùn)行后,ATmega64單片機(jī)先加載子節(jié)點(diǎn)FPGA,使子節(jié)點(diǎn)能夠正常工作。子節(jié)點(diǎn)正常工作后,監(jiān)視RS485總線并判斷有無(wú)對(duì)本節(jié)點(diǎn)的通信。當(dāng)主控計(jì)算機(jī)要求與本節(jié)點(diǎn)建立通信連接時(shí),發(fā)送反饋信息,與其建立通信連接。子節(jié)點(diǎn)根據(jù)主控計(jì)算機(jī)發(fā)送的命令,進(jìn)入查詢控制模式或者模式。進(jìn)入模式后,子節(jié)點(diǎn)接收主控計(jì)算機(jī)發(fā)來(lái)的遠(yuǎn)程升級(jí)數(shù)據(jù),升級(jí)數(shù)據(jù)經(jīng)過(guò)校驗(yàn)后寫(xiě)入Flash。升級(jí)完成后繼續(xù)等待主控計(jì)算機(jī)的命令,重新啟動(dòng)或繼續(xù)運(yùn)行。其具體的軟件設(shè)計(jì)流程如圖6所示。

          圖6 子節(jié)點(diǎn)軟件流程

            結(jié)語(yǔ)

            FPGA既繼承了ASIC的大規(guī)模、高集成度、高可靠性的優(yōu)點(diǎn),又克服了普通ASIC周期長(zhǎng)、投資大、靈活性差的缺點(diǎn),逐步成為許多系統(tǒng)實(shí)現(xiàn)的理想選擇。特別是隨著FPGA容量和性能的提升,加上其獨(dú)特的硬件升級(jí)能力,其應(yīng)用范圍越來(lái)越廣。本文所提出的對(duì)大容量FPGA構(gòu)成的的遠(yuǎn)程升級(jí)方法,系統(tǒng)構(gòu)成簡(jiǎn)單、技術(shù)成熟,而且具有明顯的成本優(yōu)勢(shì)


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: FPGA 多節(jié)點(diǎn)系統(tǒng) 遠(yuǎn)程升級(jí)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();