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