基于CPLD的多DSP及FPGA遠(yuǎn)程加載設(shè)計(jì)
2 遠(yuǎn)程更新硬件實(shí)現(xiàn)
遠(yuǎn)程更新和加載就是系統(tǒng)具有從遠(yuǎn)端通過下發(fā)指令或參數(shù)對處理模塊中存儲的應(yīng)用程序進(jìn)行修改升級的功能,模塊內(nèi)部控制單元啟動加載模塊,完成模塊功能重構(gòu)。反映到硬件功能就是主控芯片要具備擦除、讀寫模塊內(nèi)存儲芯片的功能,可以控制模塊內(nèi)的各處理器及可編程器件重新加載運(yùn)行新程序。數(shù)字處理模塊采用4顆DSP芯片和1顆FPGA來完成系統(tǒng)的數(shù)據(jù)處理任務(wù),因此在系統(tǒng)升級時需要對4個處理器或部分處理器及FPCA的程序進(jìn)行更新并重新加載。所以主控芯片要具備擦除、讀寫各DSP和FPCA芯片掛接的FLASH芯片,并能對其完成程序加載。
硬件設(shè)計(jì)時FLASH芯片采用了集中式設(shè)計(jì),多個DSP芯片和FPGA分段共享同一片大容量FLASH。共享存儲器有利于提高模塊可靠性、模塊小型化設(shè)計(jì)、有利于主控模塊對其操作控制,有效降低功能實(shí)現(xiàn)復(fù)雜度,也有利于擴(kuò)充模塊功能。一般FPGA設(shè)計(jì)多采用掛接與之匹配的FLASH芯片,這些專用存儲芯片不但具備專用接口與FPGA匹配,而且內(nèi)部嵌入了FPCA信息,硬件設(shè)計(jì)時只需要將FPCA設(shè)計(jì)成主動加載模式即可。系統(tǒng)上電后FPGA將自動識別存儲器并完成程序加載,整個過程不需要外部干預(yù)。但對于通用存儲芯片來說FPGA是無法實(shí)現(xiàn)自動加載的。而且這種遠(yuǎn)程控制也是要通過外部干預(yù)來實(shí)現(xiàn)的,所以FPGA只能設(shè)計(jì)為被動模式,通過主控模塊完成加載過程。而ALTERA公司專門研發(fā)了一款MAXⅡ系列的CPLD來實(shí)現(xiàn)StratixⅢ系列FPGA的加載管理CPLD硬件框圖如圖2所示。本文引用地址:http://m.butianyuan.cn/article/190244.htm
2.1 通用接口存儲器(CFI Flashl更新
系統(tǒng)將更新數(shù)據(jù)從上位機(jī)下發(fā)至處理模塊。經(jīng)過CPLD解碼、識別系統(tǒng)更新要求。CPLD將啟動擦寫模塊,對CFI_Flash的相應(yīng)空間段進(jìn)行數(shù)據(jù)擦除操作,同時將更新數(shù)據(jù)寫入存儲器中,實(shí)現(xiàn)系統(tǒng)程序升級更新。其流程框圖如圖3所示。
2.2 程序重構(gòu)
當(dāng)CPLD按照系統(tǒng)要求將CFI Flash中程序更新完畢后,就會自動喚醒加載模塊,對已更新的處理器或FPGA的程序進(jìn)行重新加載。DSP的加載相對簡單,將DSP設(shè)計(jì)成主機(jī)口加載模式,設(shè)計(jì)框圖如圖4所示。由CPLD強(qiáng)行復(fù)位相應(yīng)DSP使其進(jìn)入加載狀態(tài),然后從CFI_Flash中分別讀出各DSP的目標(biāo)數(shù)據(jù),按照主機(jī)口加載時序?qū)懭隓SP的內(nèi)部靜態(tài)存儲區(qū),加載完畢再對DSP初始化控制寄存器進(jìn)行設(shè)置,完成加載過程并喚醒各DSP重新運(yùn)行新程序。完成模塊處理器的功能重構(gòu)工作。
評論