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 串行通信标准的性能

大容量FPGA构成的多节点系统远程升级系统设计详解

子节点的 ATmega64 单片机通过 Sipex 公司设计生产的高性能 RS485 收发器接入 RS485 总线。

SP485R 是一款与流行的标准 RS485 芯片完全兼容,而且包含更高的 ESD 保护和高接收器输入阻抗等性能的 RS485 收发器。接收器输入高阻抗可以使 400 个收发器接到同一条传输线上,又不会引起 RS485 驱动器信号的衰减。该收发器的特点如下:

① 允许超过 400 个收发器接到同一条传输线上;

② 接收器输入高阻抗(标准值 RIN=150 kΩ);

③ 半双工配置与工业标准引脚一致;

④ 共模输入电压范围为 -7~+12 V;

⑤ 低功耗(250 mW);

⑥ 独立驱动器和接收器使能引脚。

其典型应用电路如图 3 所示。

大容量FPGA构成的多节点系统远程升级系统设计详解

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 收发器。