论文部分内容阅读
本课题研究的是一种基于ARM+FPGA构架的小型PLC系统。其中,FPGA部分负责完成定时、计数、输入输出、多操作位逻辑运算等功能,ARM部分负责对PLC指令的静动态编译,以及对自身存储器和FPGA各功能模块的数据配置。ARM与FPGA相互协作,实现了对PLC指令的执行。本课题在已有的研究成果的基础上,主要研究PLC数据配置的方式方法,设计PLC的ARM-FPGA总线接口及总线协议,以及PLC的异常处理机制,并对所设计的PLC系统进行优化和完善。主要取得了以下成果:(1)完成了PLC数据配置的设计。设计了静态编译的数据结构,对静态编译后的PLC指令采用变长的顺序存储方式,有效解决了PLC指令的运行效率和存储空间问题。按照一定的格式设计了定时器和计数器参数,以及跳转地址的存储方式,解决了ARM对FPGA中定时器和计数器的初始化配置工作,以及跳转类指令的转移地址的配置问题。针对基本指令和应用指令,根据动态编译的结果转换为FPGA所需数据格式,通过ARM-FPGA总线对FPGA进行数据配置,并根据FPGA内各功能模块的运算结果,对ARM内软元件及相应的存储区域进行了动态的数据配置。(2)设计了ARM-FPGA总线接口,并制定了ARM-FPGA总线协议。根据设计的双口RAM的特点与ARM与FPGA进行数据交换的需求,设计了基于ARM外部存储器总线接口的ARM-FPGA总线并行接口。根据FPGA内设计的各功能模块的特点,以及PLC基本指令和应用指令的特点制定了ARM与FPGA间数据传输的格式,为实现ARM-FPGA高效通信奠定了基础。(3)设计了PLC的API接口、SHELL命令及异常处理机制,完善了PLC系统的功能。设计了PLC的异常处理器,可以捕获PLC系统在运行时出现的异常并进行相应的处理,保证PLC的安全运行。为方便PLC的开发,设计了外部设备和ARM主机进行通信的统一的API接口,为人机界面、上位机、手持编程器等外部设备应用层通信协议的实现提供统一的标准。设计了PLC的SHELL命令,可通过SHELL对PLC进行管理和控制,并且通过SHELL命令可以查看系统异常的具体信息,有利于系统调试。(4)完成PLC系统数据配置、ARM-FPGA通信等功能的测试。通过对PLC系统执行指令的测试结果表明PLC系统能够正确的完成在静动态编译对ARM和FPGA的数据配置;ARM-FPGA总线能够实现ARM-FPGA协调、高效地通信;设计的API接口功能上能够满足PLC与人机界面、上位机的通信的需求;设计的SHELL命令能够查看并设置PLC的状态;设计的异常处理器能够有效的捕获并收集系统中出现的异常,并作出相应的处理。