一種基于zynq的單板或多板系統(tǒng)及在線更新方法
【專利說明】一種基于ZYNQ的單板或多板系統(tǒng)及在線更新方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明屬于計算機(jī)技術(shù)領(lǐng)域,涉及一種ZYNQ系統(tǒng)及在線更新方法,尤其涉及一種基于ZYNQ的單板或多板系統(tǒng)及遠(yuǎn)程在線升級方法。
[0003]
【背景技術(shù)】
[0004]ZYNQ-7000是基于Xilinx全可編程的可擴(kuò)展處理平臺結(jié)構(gòu),該結(jié)構(gòu)在單芯片內(nèi)集成了具有豐富特點(diǎn)的雙核ARM Cortex-A9多核處理器的處理系統(tǒng)(Processing System,PS)和Xilinx 可編程邏輯(Programmable Logic,PL)。雙核ARM Cortex_A9 包含片上存儲器、外部存儲器接口和一套豐富的I/O外設(shè)。ZYNQ-7000中的PL采用了Xilinx 7系列的FPGA技術(shù),用于擴(kuò)展功能,以滿足特定的功能需求。
[0005]ZYNQ在完成上電復(fù)位后,ARM CorteX-A9處理器系統(tǒng)需要初始化相應(yīng)的外設(shè)資源,如網(wǎng)絡(luò)、DDR3等,有些應(yīng)用還需要配置操作系統(tǒng),如Linux等;ZYNQ的可編程邏輯部分還需要相應(yīng)的bit stream來配置。這些初始化和配置程序通常是固化在FLASH或SD卡等存儲器里的。在線更新又稱在線編程,即是在不需要斷電的情況下,更改這些存儲器里的程序,完成ZYNQ的重新配置。
[0006]目前,主要有兩種方法對ZYNQ的程序進(jìn)行更新,一種是使用USB-Blaster等仿真器通過JTAG(Joint Test Act1n Group聯(lián)合測試行動小組)方式將程序?qū)懭氲紽LASH里,常用的有SPI FLASH、N0RFALSH和NANDFLASH,如圖1所示,當(dāng)系統(tǒng)中包含多塊ZYNQ板時,則需要分別通過仿真器進(jìn)行程序更新;另一種方法是當(dāng)用SD卡來存儲程序時,可取下SD卡,利用讀卡器等設(shè)備將更新程序拷貝至SD卡,重新安裝SD卡即可完成程序的更新。
[0007]受限于JTAG的時鐘速率,使用JTAG燒寫FLASH速度較慢,當(dāng)配置數(shù)據(jù)較大時,需要14?18分鐘才能完成ZYNQ程序更新;由于仿真器連接的距離限制,不能實現(xiàn)遠(yuǎn)程更新;當(dāng)系統(tǒng)中有多塊ZYNQ板時,使用仿真器通過JTAG燒寫的方式顯然十分不便。使用SD卡更新程序,則需要反復(fù)拆裝SD卡,自動化程度低,費(fèi)時費(fèi)力,十分不便。
[0008]
【發(fā)明內(nèi)容】
[0009]本發(fā)明的要解決的技術(shù)問題在于針對現(xiàn)有JTAG燒寫方式速度慢,不能遠(yuǎn)程更新,燒寫多塊ZYNQ板時需要反復(fù)插拔、使用不便的問題,提出了一種新的基于ZYNQ的單板或多板系統(tǒng)及遠(yuǎn)程在線更新的方法。
[0010]本發(fā)明的系統(tǒng)所采用的技術(shù)方案是:一種基于ZYNQ的單板或多板系統(tǒng),包括I個或多個ZYNQ板;其特征在于:所述ZYNQ板上包括了至少一片ZYNQ,ZYNQ上配置了以太網(wǎng)控制器、DDR3控制器和QSPI FLASH控制器;所述以太網(wǎng)控制器通過PHY芯片或網(wǎng)絡(luò)交換機(jī)向外至少擴(kuò)展一個千兆網(wǎng)口;所述DDR3控制器上外掛IGB DDR3存儲器;所述QSPI FLASH控制器上外掛了兩片128Mb QSPI FLASH;
當(dāng)所述系統(tǒng)中只有一個ZYNQ板時,所述以太網(wǎng)控制器通過PHY芯片或網(wǎng)絡(luò)交換機(jī)向外至少擴(kuò)展一個千兆網(wǎng)口,與上位機(jī)相連;
當(dāng)所述系統(tǒng)中有多個ZYNQ板時,包括一個ZYNQ主板和多個ZYNQ從板;所述ZYNQ主板的以太網(wǎng)控制器通過網(wǎng)絡(luò)交換機(jī)向外擴(kuò)展多個千兆網(wǎng)口,分別與PC機(jī)和ZYNQ從板連接;所述ZYNQ從板的以太網(wǎng)控制器通過PHY芯片或網(wǎng)絡(luò)交換機(jī)向外至少擴(kuò)展一個千兆網(wǎng)口,與所述ZYNQ主板連接。
[0011 ]本發(fā)明的方法所采用的技術(shù)方案是:一種基于ZYNQ的單板或多板系統(tǒng)在線更新方法,其特征在于,包括以下步驟:
步驟I:上位機(jī)生成需要更新的ZYNQ系統(tǒng)鏡像文件;
步驟2:將ZYNQ板的BOOT MODE設(shè)置成QSPI FLASH方式并上電啟動;;
步驟3:等待ZYNQ板上電啟動完成;
步驟4:上位機(jī)將ZYNQ系統(tǒng)鏡像文件傳輸至下位機(jī);
步驟5:上位機(jī)利用文件校驗算法,生成ZYNQ系統(tǒng)鏡像文件的校驗碼;
步驟6:下位機(jī)將ZYNQ系統(tǒng)鏡像文件緩存至DDR3存儲器映射文件系統(tǒng)中;
步驟7:下位機(jī)使用步驟4中所述文件校驗算法生成其存儲在DDR3存儲器映射文件系統(tǒng)中的ZYNQ系統(tǒng)鏡像文件的校驗碼,并獲取步驟5中上位生成的校驗碼,將兩份校驗碼進(jìn)行匹配比較;
若校驗碼不匹配,則回轉(zhuǎn)執(zhí)行所述步驟4:
若校驗碼匹配,則順序執(zhí)行下述步驟8:
步驟8:下位機(jī)執(zhí)行FLASH擦除命令,將外掛在ZYNQ板上的QSPI FLASH數(shù)據(jù)進(jìn)行擦除;步驟9:執(zhí)行FLASH寫入命令,將緩存在DDR3存儲器映射文件系統(tǒng)中的ZYNQ系統(tǒng)鏡像將被寫入QSPI FLASH中,完成ZYNQ系統(tǒng)在線更新過程。
[0012]作為優(yōu)選,當(dāng)系統(tǒng)中包括多個ZYNQ板時,通過不同的IP地址來選擇相應(yīng)的ZYNQ板進(jìn)行在線更新。
[0013]作為優(yōu)選,步驟I中所述ZYNQ系統(tǒng)鏡像文件包括The First Stage Boot loader(FSBL)、配置ProgrammabIe Logic(PL)的bit stream、U_boot和Linux系統(tǒng)相關(guān)文件。
[0014]作為優(yōu)選,首次實施在線更新前,需要使用傳統(tǒng)的更新方法,即將ZYNQ的B00TM0DE設(shè)置為JTAG方式,連接仿真器,將生成的ZYNQ系統(tǒng)鏡像文件燒寫至QSPI FLASH中。
[0015]采用本發(fā)明提出的方法后,相較于傳統(tǒng)的更新方法,程序更新的速度提高了6?7倍,實現(xiàn)了ZYNQ程序的遠(yuǎn)程更新,該方法尤其適用于多塊ZYNQ板組成的系統(tǒng),使用十分方便。
[0016]
【附圖說明】
[0017]圖1是現(xiàn)有技術(shù)中多塊ZYNQ板系統(tǒng)的調(diào)試結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例的系統(tǒng)結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例中的ZYNQ板結(jié)構(gòu)示意圖;
圖4是本發(fā)明實施的方法流程圖; 圖5是現(xiàn)有技術(shù)的更新方法流程圖。
[0018]
【具體實施方式】
[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]本發(fā)明實施例提供的一種基于ZYNQ的單板或多板系統(tǒng),如圖2所示,包括A板、B板和C板。單板在線更新程序時,A板、B板或C板通過以太網(wǎng)接口與上位機(jī)連接即可;系統(tǒng)中多個單板需要在線更新程序時,B板和C板通過以太網(wǎng)接口與A板相連,A板則通過以太網(wǎng)接口和上位機(jī)連接。
[0021]圖3為本發(fā)明實施例的A板原理框圖。該板包括一片ZYNQ XC7Z030FFG676,ZYNQ上含DDR3控制器,外部配置了兩片DDR3芯片MT41K256M16HA-125IT作為ZYNQ的外存,每片DDR3寬度為 16位,大小512MBJYNQ的QSPI FLASH控制器采用了Dual x8_bit para