當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]引言多節(jié)點系統(tǒng),在目前的很多電子系統(tǒng)應(yīng)用場合都可以看到。這種多節(jié)點系統(tǒng)由于具有結(jié)構(gòu)可擴展性、功能配置的靈活性以及便于查找故障節(jié)點等良好的可維護性得到了越來越廣泛的應(yīng)用。通常,多節(jié)點系統(tǒng)各個節(jié)點的主要硬

引言

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

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

1 系統(tǒng)設(shè)計

1.1 系統(tǒng)結(jié)構(gòu)設(shè)計

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

 


圖1 多節(jié)點大容量FPGA系統(tǒng)遠程升級系統(tǒng)結(jié)構(gòu)框圖

1.2 節(jié)點升級原理

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

2 子節(jié)點的硬件設(shè)計

2.1 子節(jié)點硬件結(jié)構(gòu)框圖

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

 


圖2 子節(jié)點硬件結(jié)構(gòu)框圖

2.2 子節(jié)點硬件設(shè)計說明

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

① 64 KB的系統(tǒng)內(nèi)可編程Flash(具有同時讀寫的能力,即RWW),2 KB的EEPROM,4 KB的SRAM,32個通用工作寄存器;

② 53個通用I/O口線;

③ 實時計數(shù)器(RTC);

④ 4個具有比較模式與PWM的靈活的定時器/計數(shù)器(T/C),具有片內(nèi)振蕩器的可編程看門狗定時器;

⑤ 2個USART,面向字節(jié)的雙線串行接口(TWI),1個SPI 串行端口;

⑥ 8路10 位具有可選差分輸入級可編程增益的ADC;

⑦ 與IEEE 1149.1 標準兼容的,可用于訪問片上調(diào)試系統(tǒng)及編程的JTAG接口。

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

利用ATmega64單片機實現(xiàn)對大容量FPGA的遠程升級,涉及的主要技術(shù)問題有三點:一是如何將ATmega64單片機接入RS485總線;二是在接收到升級數(shù)據(jù)后和加載FPGA時,如何利用ATmega64單片機對大容量的Flash存儲器進行讀寫操作;三是ATmega64單片機實現(xiàn) FPGA的SELECTMAP加載。

2.2.1 RS485接口電路設(shè)計

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

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

 


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

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

① 允許超過400個收發(fā)器接到同一條傳輸線上;

② 接收器輸入高阻抗(標準值RIN=150 kΩ);

③ 半雙工配置與工業(yè)標準引腳一致;

④ 共模輸入電壓范圍為-7~+12 V;

⑤ 低功耗(250 mW);

⑥ 獨立驅(qū)動器和接收器使能引腳。

其典型應(yīng)用電路如圖3所示。

 


圖3 利用SP485R構(gòu)成的半雙工RS485電路

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

2.2.2 ATmega64存儲空間的擴展

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

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

 

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

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

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

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

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

按照FPGA是否控制加載過程,加載方式可分為Master方式和Slave方式;按照加載數(shù)據(jù)時的數(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)。加載過程大體分為3個步驟:配置的建立、配置數(shù)據(jù)的加載和加載完成。

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

ATmega64通過將FPGA的PROG_B、CS_B和RDWR_B引腳置低來開啟加載過程,F(xiàn)PGA在PROG_B置低后開始清除內(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腳由低變高時,說明FPGA已經(jīng)完成了內(nèi)部配置RAM的清除工作,并準備好接收配置數(shù)據(jù)。在ATmega64給出的CCLK配置時鐘的上升沿,配置數(shù)據(jù)D[0~7]寫入配置RAM。當(dāng)FPGA接收完所有的配置數(shù)據(jù)后,DONE引腳被FPGA置為高電平。ATmega64可以通過監(jiān)視DONE引腳來判斷FPGA是否加載完成。對于Spartan3系列的FPGA,如果配置FPGA的CCLK的頻率高于50 MHz,則外部控制器還需要監(jiān)視FPGA的BUSY引腳。當(dāng)BUSY腳為高時,說明FPGA還未完成上一個配置數(shù)據(jù)的處理,此時外部控制器需要繼續(xù)保持上一個配置數(shù)據(jù)在D[0~7]引腳,直至BUSY引腳回到低電平。對于本設(shè)計的應(yīng)用,ATmega64給出的配置時鐘頻率遠低于50 MHz,不必考慮BUSY引腳的控制作用。

3 軟件設(shè)計

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

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

 

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

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

 

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

3.2 子節(jié)點的軟件設(shè)計

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

 

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

結(jié)語

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉