多節點(diǎn)大容量FPGA系統的遠程升級方法

發(fā)布時(shí)間:2010-6-4 14:20    發(fā)布者:李寬
關(guān)鍵詞: FPGA
引言

多節點(diǎn)系統,在目前的很多電子系統應用場(chǎng)合都可以看到。這種多節點(diǎn)系統由于具有結構可擴展性、功能配置的靈活性以及便于查找故障節點(diǎn)等良好的可維護性得到了越來(lái)越廣泛的應用。通常,多節點(diǎn)系統各個(gè)節點(diǎn)的主要硬件構成有很大的相似性。特別是近年來(lái),FPGA這個(gè)強大的平臺讓多節點(diǎn)系統各個(gè)節點(diǎn)的硬件構成擁有了更廣泛的通用性。尤其是隨著(zhù)IP核技術(shù)的推廣,再加上一些功能強大的CPU核的出現,如Xilinx公司提供的PicoBlaze和 MicroBlaze等,使得目前的許多系統的主要功能都可以由大容量的FPGA實(shí)現,而無(wú)需再使用比較昂貴的高性能微處理器。

對于節點(diǎn)系統,這將大大降低系統成本。對于由大容量FPGA構成的多節點(diǎn)系統,系統的升級是一個(gè)費時(shí)費力的工作。此時(shí),FPGA的遠程升級能力就顯得尤為重要。對于包含ARM、DSP、PowerPC等高性能嵌入式微處理器的多節點(diǎn)系統,使用這些嵌入式微處理器,采用SELECTMAP對 FPGA進(jìn)行加載并實(shí)現遠程升級,無(wú)需增加過(guò)多的外部器件,是非常經(jīng)濟和高效的。但對于核心器件就是大容量FPGA的系統,如果由FPGA本身來(lái)接收升級數據并寫(xiě)入存儲配置數據的非易失性存儲器,一旦升級失敗,將無(wú)法再次升級,從而限制了它在許多需要高可靠性要求或者維護人員不便于到達的場(chǎng)合的應用;而如果單純?yōu)榱藢?shí)現系統的遠程升級而加入價(jià)格昂貴的嵌入式微處理器,又會(huì )較大地增加系統成本和復雜性。針對這種情況,筆者設計了利用ATmega64單片機和 RS485總線(xiàn),加上接入以太網(wǎng)的主控計算機構成的遠程升級系統,解決了上述問(wèn)題。

1 系統設計

1.1 系統結構設計

遠程升級系統主要由一臺接入以太網(wǎng)的主控計算機、半雙工RS485總線(xiàn)以及各個(gè)子節點(diǎn)構成,組成結構如圖1所示。主控計算機通過(guò)以太網(wǎng)從外部獲取整個(gè)系統各個(gè)節點(diǎn)的升級數據,然后通過(guò)RS485總線(xiàn)向各個(gè)子節點(diǎn)發(fā)送其對應的升級數據,完成多節點(diǎn)系統的升級。RS485總線(xiàn)采用一主多從的半雙工方式,主控計算機為總線(xiàn)的主控制器,只能由它向各個(gè)節點(diǎn)發(fā)起通信連接,其余子節點(diǎn)只能響應主控計算機的控制命令。


圖1 多節點(diǎn)大容量FPGA系統遠程升級系統結構框圖

1.2 節點(diǎn)升級原理

各個(gè)節點(diǎn)通過(guò)RS485總線(xiàn)與主控計算機相連,在無(wú)升級數據時(shí),總線(xiàn)可以用來(lái)傳輸主控計算機對各個(gè)節點(diǎn)的查詢(xún)和控制命令。主控計算機與各個(gè)節點(diǎn)的通信協(xié)議可以采用具有查詢(xún)控制幀、應答幀和數據幀3種幀類(lèi)型的協(xié)議。只有主控計算機可以發(fā)送查詢(xún)控制幀,查詢(xún)或設定各個(gè)節點(diǎn)的遠程升級狀態(tài)或工況信息。子節點(diǎn)接收主控計算機的命令和數據,發(fā)送應答幀,并完成自身的升級。

2 子節點(diǎn)的硬件設計

2.1 子節點(diǎn)硬件結構框圖

如圖2所示,以一個(gè)由Xilinx公司的XC3S4000大容量FPGA構成的系統為例,遠程升級系統子節點(diǎn)的硬件電路主要包括:ATmega64單片機,用于存儲大容量FPGA配置數據的Flash,以及接入RS485總線(xiàn)的半雙工總線(xiàn)收發(fā)器。ATmega64單片機用于實(shí)現對大容量FPGA XC3S4000的加載,以及從RS485總線(xiàn)接收FPGA的升級數據并寫(xiě)入擁有2MB存儲空間的Flash存儲器SST36VF1601C中。 RS485TTL電平變換電路采用RS485收發(fā)器SP485R。


圖2 子節點(diǎn)硬件結構框圖

2.2 子節點(diǎn)硬件設計說(shuō)明

在子節點(diǎn)的硬件設計中,ATmega64單片機是實(shí)現整個(gè)升級功能的關(guān)鍵。ATmega64是基于增強的AVR RISC結構的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執行時(shí)間,ATmega64 的數據吞吐率高達1MIPS/MHz,從而可以緩解系統在功耗和處理速度之間的矛盾。AVR內核具有豐富的指令集和32個(gè)通用工作寄存器,并且所有的寄存器都直接與算術(shù)邏輯單元(ALU)相連接,使得1條指令可以在1個(gè)時(shí)鐘周期內同時(shí)訪(fǎng)問(wèn)2個(gè)獨立的寄存器。這種結構大大提高了代碼效率,并且具有比普通的 CISC微控制器最高至10倍的數據吞吐率。ATmega64有如下特點(diǎn):

 、 64 KB的系統內可編程Flash(具有同時(shí)讀寫(xiě)的能力,即RWW),2 KB的EEPROM,4KB的SRAM,32個(gè)通用工作寄存器;
 、 53個(gè)通用I/O口線(xiàn);
 、 實(shí)時(shí)計數器(RTC);
 、 4個(gè)具有比較模式與PWM的靈活的定時(shí)器/計數器(T/C),具有片內振蕩器的可編程看門(mén)狗定時(shí)器;
 、 2個(gè)USART,面向字節的雙線(xiàn)串行接口(TWI),1個(gè)SPI 串行端口;
 、 8路10 位具有可選差分輸入級可編程增益的ADC;
 、 與IEEE 1149.1 標準兼容的,可用于訪(fǎng)問(wèn)片上調試系統及編程的JTAG接口。

ATmega64是以Atmel高密度非易失性存儲器技術(shù)生產(chǎn)的。片內ISP Flash 允許程序存儲器通過(guò)ISP串行接口(或者通用編程器)進(jìn)行編程,也可以通過(guò)運行于A(yíng)VR內核之中的引導程序進(jìn)行編程。通過(guò)將8位RISC CPU與系統內可編程的Flash集成在一個(gè)芯片內,ATmega64成為一個(gè)功能強大的單片機,為許多嵌入式控制應用提供了靈活而低成本的解決方案。

利用ATmega64單片機實(shí)現對大容量FPGA的遠程升級,涉及的主要技術(shù)問(wèn)題有三點(diǎn):

一是如何將ATmega64單片機接入RS485總線(xiàn);二是在接收到升級數據后和加載FPGA時(shí),如何利用ATmega64單片機對大容量的 Flash存儲器進(jìn)行讀寫(xiě)操作;三是ATmega64單片機實(shí)現FPGA的SELECTMAP加載。

2.2.1 RS485接口電路設計

如表1所列,RS485總線(xiàn)標準具有控制方便、價(jià)格低廉以及高噪聲抑制、相對高的傳輸速率、傳輸距離遠和寬共模范圍等優(yōu)點(diǎn)。在過(guò)去的20年時(shí)間里,建議性標準RS485作為一種多點(diǎn)差分數據傳輸的電氣規范,被應用在許多不同的領(lǐng)域作為數據傳輸鏈路。

表1 TIA/EIA485串行通信標準的性能


子節點(diǎn)的ATmega64單片機通過(guò)Sipex公司設計生產(chǎn)的高性能RS485收發(fā)器接入RS485總線(xiàn)。

SP485R是一款與流行的標準RS485芯片完全兼容,而且包含更高的ESD保護和高接收器輸入阻抗等性能的RS485收發(fā)器。接收器輸入高阻抗可以使400個(gè)收發(fā)器接到同一條傳輸線(xiàn)上,又不會(huì )引起RS485驅動(dòng)器信號的衰減。該收發(fā)器的特點(diǎn)如下:

 、 允許超過(guò)400個(gè)收發(fā)器接到同一條傳輸線(xiàn)上;
 、 接收器輸入高阻抗(標準值RIN=150 kΩ);
 、 半雙工配置與工業(yè)標準引腳一致;
 、 共模輸入電壓范圍為-7~+12 V;
 、 低功耗(250 mW);
 、 獨立驅動(dòng)器和接收器使能引腳。

其典型應用電路如圖3所示。


圖3 利用SP485R構成的半雙工RS485電路

ATmega64單片機的標準串行口通過(guò)RXD直接連接SP485R芯片的RO引腳,通過(guò)TXD直接連接SP485R芯片的DI引腳。由單片機輸出的R/D信號直接控制SP485R芯片的發(fā)送器/接收器使能:R/D信號為1,SP485R芯片的發(fā)送器有效,接收器禁止,此時(shí)單片機可以向 RS485總線(xiàn)發(fā)送數據字節;R/D信號為0,SP485R芯片的發(fā)送器禁止,接收器有效,單片機可以接收來(lái)自RS485總線(xiàn)的數據字節。上拉電阻R1、下拉電阻R2用于保證未連接總線(xiàn)時(shí)的SP485R芯片處于空閑狀態(tài),以提高每個(gè)RS485節點(diǎn)的工作可靠性。6.8V的TVS管V1、V2、V3用來(lái)保護 RS485總線(xiàn),避免RS485總線(xiàn)受外界干擾時(shí)產(chǎn)生的高壓損壞RS485收發(fā)器。

2.2.2 ATmega64存儲空間的擴展

ATmega64的尋址空間為64KB,利用ATmega64自身的尋址系統,只能訪(fǎng)問(wèn)0x0000~0xFFFF的地址空間。顯然,這對于存儲和加載大容量FPGA的配置數據是遠遠不夠的。以Xilinx公司的Spartan3系列FPGA為例,其配置數據所需的存儲空間如表2所列。

表2 Spartan3系列FPGA配置文件大小


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

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

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

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

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

按照FPGA是否控制加載過(guò)程,加載方式可分為Master方式和Slave方式;按照加載數據時(shí)的數據位寬,可分為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è)步驟:配置的建立、配置數據的加載和加載完成。

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

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

3 軟件設計

3.1 主控計算機的軟件設計

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


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

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


圖5 系統升級狀態(tài)流程

3.2 子節點(diǎn)的軟件設計

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


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

結語(yǔ)

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

參考文獻

  [1] 宓城,徐新民.利用GPRS網(wǎng)絡(luò )對FPGA系統進(jìn)行遠程更新[J]. 電子技術(shù), 2005(6):24-26.
  [2] Atmel. ATmega64 Data Sheet,200503.
  [3] Xilinx.  Spartan3 Complete Data Sheet,200501.
  [4] 廖傳書(shū),程鑫.基于GPRS的配電網(wǎng)遠程監控終端的設計[J]. 電子技術(shù)應用, 2007,33(5):8082.

作者:國防科技大學(xué) 張?chǎng)?nbsp; 牟衛華
來(lái)源:?jiǎn)纹瑱C與嵌入式系統應用  2008 (9)
本文地址:http://selenalain.com/thread-12037-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页