小型PLC的FPGA内部功能模块及模块控制IP核的研制
发布时间:2020-04-10 06:34
【摘要】:本课题在课题组之前的项目基础之上,主要研究小型PLC的FPGA内部控制模块,逻辑运算模块指令执行的过程与堆栈操作编程的方法,优化了定时器电路结构和指令的编码格式。设计以ARM+FPGA系统作为研制的新型的PLC的主机,充分利用FPGA高速并行处理的优势,两侧通过双口RAM对数据进行交换处理。进而完成对PLC指令的逻辑运算、定时和计数等功能。并且在指令结束后,向ARM侧发送指令运行结果数据。主要取得如下成果:(1)对双口RAM的各个存储空间的读写特点进行了分析,提出了避免出现读写冲突的解决的方法和设计原则;根据FPGA模块的基本组成结构,设计了FPGA模块的处理工作流程,对FPGA内部控制模块进行了设计,同时设计了FPGA和ARM之间的接口电路,实现了ARM侧与FPGA侧的通信。另外本研究对FPGA与ARM之间的双口RAM的存储区域进行了规划和地址的划分。对两侧传输的指令进行了一定的修改,优化了FPGA对各个功能模块控制的时序。(2)针对FPGA逻辑运算模块,划分梯形图程序模块,提出堆栈操作的基本原则,对于逻辑运算模块执行指令的堆栈操作和执行过程进行了规范,进而完善了设计的方案,确定指令执行的过程与堆栈操作编程的方法,对时序进行规划和设计。重新设计和修改了部分的指令格式,完成IP核的封装与逻辑运算模块的调试。(3)对于定时器模块,提出其设计思路,设计定时器模块内部总线,1ms、10m和100ms定时器的三个模块通过总线与定时器输入输出控制端口模块连接,提出了对定时器定时溢出处理的方法,实现了基于FPGA的PLC内部定时器的功能。并且优化了定时器指令的编码格式,完成了对定时器模块的封装。(4)完成了计数器模块的设计。分析了计数器模块的工作原理,计数信号的特点,以及计数值已达到计数值的处理方法,实现了计数器模块的功能。并且优化了计数器的指令的编码格式,完成了对计数器模块的封装。(5)针对设计完成后逻辑运算模块、定时器模块以及计数器模块进行了仿真验证。编写testbench仿真测试文件在modelsim软件观察仿真波形,最后将仿真无误的程序下载到开发板上进行板级验证,测试结果正确。
【图文】:
11图2-6 双口RAM IP核参数配置示意图Figure 2-6 Schematic diagram of dual port RAM IP core parameter configuration2.4.4 双口 RAM 的时序设计双口 RAM 的读写时序的准确设计是 ARM-FPGA 系统正常数据交换的前提条件。当 FPGA 总控制器发来 BLK 为“0”时,片选 B 端口,接口电路 B 端口开始工作,,根据双口 RAM 的地址空间分配原则,当 B 的地址值为 8’h80 时,选中双口 RAM 存储区。写操作:当接口电路的 B 端口的写信号为低电平时,FPGA 侧开始对双口 RAM进行数据写入操作。为了保证数据的准确传输,为该数据传输过程分配 4 个时钟周期。读操作:接口电路的 B 端口读信号为低电平时
内部总线有 16 位数据线,其端口由组合逻辑三态门构成,5 位地址线,读、号线,复位线,各个功能模块中断申请线。在确定内部总线的读/写时序,统一各个功能模块的读指令的时序的基础上内部控制器。其基本思路是按照计算机总线时序控制的方法,写操作时,先发令/数据,选通数据输出的逻辑三态门导通,然后地址信息,再就是写信号,将三态门设置为高阻状态;读操作时,先发出地址信息(选通数据输入的逻辑三导通),然后读信号,内部控制器读入数据/运算结果,将逻辑三态门设置为高态。.3 FPGA 内部控制器电路模块的设计.3.1ARM 侧中断检测电路当双口 RAM 中收到 ARM 侧写入的数据后,ARM 侧每发送一条指令进去,送中断给 FPGA 侧,FPGA 侧通过接收中断信号线 INT_a 的信号来决定是否读息。本设计中通过中断检测电路来“侦听”ARM 侧的信号。
【学位授予单位】:广西科技大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP273;TN791
本文编号:2621879
【图文】:
11图2-6 双口RAM IP核参数配置示意图Figure 2-6 Schematic diagram of dual port RAM IP core parameter configuration2.4.4 双口 RAM 的时序设计双口 RAM 的读写时序的准确设计是 ARM-FPGA 系统正常数据交换的前提条件。当 FPGA 总控制器发来 BLK 为“0”时,片选 B 端口,接口电路 B 端口开始工作,,根据双口 RAM 的地址空间分配原则,当 B 的地址值为 8’h80 时,选中双口 RAM 存储区。写操作:当接口电路的 B 端口的写信号为低电平时,FPGA 侧开始对双口 RAM进行数据写入操作。为了保证数据的准确传输,为该数据传输过程分配 4 个时钟周期。读操作:接口电路的 B 端口读信号为低电平时
内部总线有 16 位数据线,其端口由组合逻辑三态门构成,5 位地址线,读、号线,复位线,各个功能模块中断申请线。在确定内部总线的读/写时序,统一各个功能模块的读指令的时序的基础上内部控制器。其基本思路是按照计算机总线时序控制的方法,写操作时,先发令/数据,选通数据输出的逻辑三态门导通,然后地址信息,再就是写信号,将三态门设置为高阻状态;读操作时,先发出地址信息(选通数据输入的逻辑三导通),然后读信号,内部控制器读入数据/运算结果,将逻辑三态门设置为高态。.3 FPGA 内部控制器电路模块的设计.3.1ARM 侧中断检测电路当双口 RAM 中收到 ARM 侧写入的数据后,ARM 侧每发送一条指令进去,送中断给 FPGA 侧,FPGA 侧通过接收中断信号线 INT_a 的信号来决定是否读息。本设计中通过中断检测电路来“侦听”ARM 侧的信号。
【学位授予单位】:广西科技大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP273;TN791
【相似文献】
相关硕士学位论文 前1条
1 张汉卿;小型PLC的FPGA内部功能模块及模块控制IP核的研制[D];广西科技大学;2019年
本文编号:2621879
本文链接:https://www.wllwen.com/kejilunwen/dianzigongchenglunwen/2621879.html