以大容量FPGA为基础的多节点系统远程升级实现方法介绍

图1 多节点大容量FPGA系统远程升级系统结构框图

1.2 节点升级原理

各个节点通过RS485总线与主控计算机相连,在无升级数据时,总线可以用来传输主控计算机对各个节点的查询和控制命令。主控计算机与各个节点的通信协议可以采用具有查询控制帧、应答帧和数据帧3种帧类型的协议。只有主控计算机可以发送查询控制帧,查询或设定各个节点的远程升级状态或工况信息。子节点接收主控计算机的命令和数据,发送应答帧,并完成自身的升级。

2 子节点的硬件设计

2.1 子节点硬件结构框图

如图2所示,以一个由Xilinx公司的XC3S4000大容量FPGA构成的系统为例,远程升级系统子节点的硬件电路主要包括: ATmega64单片机,用于存储大容量FPGA配置数据的Flash,以及接入RS485总线的半双工总线收发器。ATmega64单片机用于实现对大容量FPGA XC3S4000的加载,以及从RS485总线接收FPGA的升级数据并写入拥有2 MB存储空间的Flash存储器SST36VF1601C中。RS485TTL电平变换电路采用RS485收发器SP485R。

以大容量FPGA为基础的多节点系统远程升级实现方法介绍

图2 子节点硬件结构框图

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;