基于大容量FPGA的多節(jié)點(diǎn)系統(tǒng)的遠(yuǎn)程升級(jí)的實(shí)現(xiàn)
2.2 子節(jié)點(diǎn)硬件設(shè)計(jì)說明
在子節(jié)點(diǎn)的硬件設(shè)計(jì)中,ATmega64單片機(jī)是實(shí)現(xiàn)整個(gè)升級(jí)功能的關(guān)鍵。ATmega64是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega64 的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩解系統(tǒng)在功耗和處理速度之間的矛盾。AVR內(nèi)核具有豐富的指令集和32個(gè)通用工作寄存器,并且所有的寄存器都直接與算術(shù)邏輯單元(ALU)相連接,使得1條指令可以在1個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問2個(gè)獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC微控制器最高至10倍的數(shù)據(jù)吞吐率。ATmega64有如下特點(diǎn):
① 64 KB的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即RWW),2 KB的EEPROM,4 KB的SRAM,32個(gè)通用工作寄存器;
?、?53個(gè)通用I/O口線;
?、?實(shí)時(shí)計(jì)數(shù)器(RTC);
?、?4個(gè)具有比較模式與PWM的靈活的定時(shí)器/計(jì)數(shù)器(T/C),具有片內(nèi)振蕩器的可編程看門狗定時(shí)器;
⑤ 2個(gè)USART,面向字節(jié)的雙線串行接口(TWI),1個(gè)SPI 串行端口;
?、?8路10 位具有可選差分輸入級(jí)可編程增益的ADC;
⑦ 與IEEE 1149.1 標(biāo)準(zhǔn)兼容的,可用于訪問片上調(diào)試系統(tǒng)及編程的JTAG接口。
ATmega64是以Atmel 高密度非易失性存儲(chǔ)器技術(shù)生產(chǎn)的。片內(nèi)ISP Flash 允許程序存儲(chǔ)器通過ISP 串行接口(或者通用編程器)進(jìn)行編程,也可以通過運(yùn)行于AVR內(nèi)核之中的引導(dǎo)程序進(jìn)行編程。通過將8位RISC CPU與系統(tǒng)內(nèi)可編程的Flash集成在一個(gè)芯片內(nèi),ATmega64 成為一個(gè)功能強(qiáng)大的單片機(jī),為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。
利用ATmega64單片機(jī)實(shí)現(xiàn)對(duì)大容量FPGA的遠(yuǎn)程升級(jí),涉及的主要技術(shù)問題有三點(diǎn):一是如何將ATmega64單片機(jī)接入RS485總線;二是在接收到升級(jí)數(shù)據(jù)后和加載FPGA時(shí),如何利用ATmega64單片機(jī)對(duì)大容量的Flash存儲(chǔ)器進(jìn)行讀寫操作;三是ATmega64單片機(jī)實(shí)現(xiàn)FPGA的SELECTMAP加載。
2.2.1 RS485接口電路設(shè)計(jì)
如表1所列, RS485總線標(biāo)準(zhǔn)具有控制方便、價(jià)格低廉以及高噪聲抑制、相對(duì)高的傳輸速率、傳輸距離遠(yuǎn)和寬共模范圍等優(yōu)點(diǎn)。在過去的20年時(shí)間里,建議性標(biāo)準(zhǔn)RS485作為一種多點(diǎn)差分?jǐn)?shù)據(jù)傳輸?shù)碾姎庖?guī)范,被應(yīng)用在許多不同的領(lǐng)域作為數(shù)據(jù)傳輸鏈路。
表1 TIA/EIA485串行通信標(biāo)準(zhǔn)的性能
子節(jié)點(diǎn)的ATmega64單片機(jī)通過Sipex公司設(shè)計(jì)生產(chǎn)的高性能RS485收發(fā)器接入RS485總線。
SP485R是一款與流行的標(biāo)準(zhǔn)RS485芯片完全兼容,而且包含更高的ESD保護(hù)和高接收器輸入阻抗等性能的RS485收發(fā)器。接收器輸入高阻抗可以使400個(gè)收發(fā)器接到同一條傳輸線上,又不會(huì)引起RS485驅(qū)動(dòng)器信號(hào)的衰減。該收發(fā)器的特點(diǎn)如下:
?、?允許超過400個(gè)收發(fā)器接到同一條傳輸線上;
?、?接收器輸入高阻抗(標(biāo)準(zhǔn)值RIN=150 kΩ);
?、?半雙工配置與工業(yè)標(biāo)準(zhǔn)引腳一致;
?、?共模輸入電壓范圍為-7~+12 V;
⑤ 低功耗(250 mW);
?、?獨(dú)立驅(qū)動(dòng)器和接收器使能引腳。
其典型應(yīng)用電路如圖3所示。
圖3 利用SP485R構(gòu)成的半雙工RS485電路
ATmega64單片機(jī)的標(biāo)準(zhǔn)串行口通過RXD直接連接SP485R芯片的RO引腳,通過TXD直接連接SP485R芯片的DI引腳。由單片機(jī)輸出的R/D信號(hào)直接控制SP485R芯片的發(fā)送器/接收器使能:R/D信號(hào)為1,SP485R芯片的發(fā)送器有效,接收器禁止,此時(shí)單片機(jī)可以向RS485總線發(fā)送數(shù)據(jù)字節(jié);R/D信號(hào)為0,SP485R芯片的發(fā)送器禁止,接收器有效,單片機(jī)可以接收來自RS485總線的數(shù)據(jù)字節(jié)。上拉電阻R1、下拉電阻R2用于保證未連接總線時(shí)的SP485R芯片處于空閑狀態(tài),以提高每個(gè)RS485節(jié)點(diǎn)的工作可靠性。6.8 V的TVS管V1、V2、V3用來保護(hù)RS485總線,避免RS485總線受外界干擾時(shí)產(chǎn)生的高壓損壞RS485收發(fā)器。
2.2.2 ATmega64存儲(chǔ)空間的擴(kuò)展
ATmega64的尋址空間為64 KB,利用ATmega64自身的尋址系統(tǒng),只能訪問0x0000~0xFFFF的地址空間。顯然,這對(duì)于存儲(chǔ)和加載大容量FPGA的配置數(shù)據(jù)是遠(yuǎn)遠(yuǎn)不夠的。以Xilinx公司的Spartan3系列FPGA為例,其配置數(shù)據(jù)所需的存儲(chǔ)空間如表2所列。
評(píng)論