3 软件设计

3.1 主控计算机的软件设计

主控制计算机的软件运行状态应该分为两种:一是平时的查询控制状态,用来查询和控制系统中各个节点的工作状态;二是系统的升级状态,用来执行对各个子节点的升级控制。如图 4 所示,这两种状态是可以相互转换的。

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

软件的查询控制状态,是由系统所要实现的主要功能决定的,不属于本文所讨论的范畴。在系统的升级状态,主控计算机先要通过以太网获得系统各个节点的远程升级数据,待全部升级数据接收完成后,向系统的一个节点发送升级指令。节点响应并建立起通信连接后,将该节点的升级数据全部发送到该节点。接下来,主控计算机判断上一个节点是否为最后一个需要升级的节点,如果不是,则继续进行下一个节点升级数据的传输。系统所有的节点升级完成后,等待外部输入的控制命令。例如,让整个系统重新启动,加载新的数据;或暂时不重新启动而返回查询控制状态。软件流程如图 5 所示。

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

3.2 子节点的软件设计

对于子节点的软件设计,与主控计算机一样,也分为平时的查询控制状态和系统升级状态,并且它们之间也能够与主控计算机一起相互转换;但 ATmega64 单片机还要承担对 FPGA 的加载任务。开机运行后,ATmega64 单片机先加载子节点 FPGA,使子节点能够正常工作。子节点正常工作后,监视 RS485 总线并判断有无对本节点的通信。当主控计算机要求与本节点建立通信连接时,发送反馈信息,与其建立通信连接。子节点根据主控计算机发送的命令,进入查询控制模式或者远程升级模式。进入远程升级模式后,子节点接收主控计算机发来的远程升级数据,升级数据经过校验后写入 Flash。升级完成后继续等待主控计算机的命令,重新启动或继续运行。其具体的软件设计流程如图 6 所示。

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

结语

FPGA 既继承了 ASIC 的大规模、高集成度、高可靠性的优点,又克服了普通 ASIC 周期长、投资大、灵活性差的缺点,逐步成为许多系统实现的理想选择。特别是随着 FPGA 容量和性能的提升,加上其独特的硬件升级能力,其应用范围越来越广。本文所提出的对大容量 FPGA 构成的多节点系统的远程升级方法,系统构成简单、技术成熟,而且具有明显的成本优势。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查