一种基于VerilogHDL的FPGA超高速工业控制系统的制作方法

文档序号:6295890阅读:347来源:国知局
一种基于Verilog HDL的FPGA超高速工业控制系统的制作方法
【专利摘要】一种基于Verilog?HDL的FPGA超高速工业控制系统,包括:DA上层控制模块,第一AD底层驱动模块,第二AD底层驱动模块,AD上层控制模块,DA底层驱动模块,异步串行通信发送接口,异步串行通信接收接口,控制器通信命令字接收控制模块,控制器信息发送控制模块,开关量输出DO逻辑控制模块,PID算法模块,PLL锁相环模块,正弦数值Rom存储器,第一AD转换值模块Ram,第二AD转换值模块Ram,模拟量DA实际输出值模块Ram,模拟量闭环PID控制参数模块Ram,模拟量输出DA手动设定值模块Ram,模拟量AI给定值模块Ram,波形参数模块Ram。本发明控制周期Ts可以根据需求设置得非常小,可用于超高速控制应用中。
【专利说明】—种基于Ver i log HDL的FPGA超高速工业控制系统
【技术领域】
[0001]本发明涉及一种超高速工业控制系统。特别是涉及一种基于Verilog HDL的FPGA超高速工业控制系统。
【背景技术】
[0002]近年来,随着计算机技术和电子技术的不断进步和完善,通用数字控制器作为工业自动化控制类产品,已经被越来越多的产业领域接受,并已达到一个令人瞩目的市场规模。在航空航天、大型装备制造、电子信息等高新领域中,对控制器的快速性、稳定性、抗干扰性、精度、速度等指标提出了更高的要求,对超高速工业控制器的需求越来越强烈。国内工业控制器近年在追赶国际先进水平方面取得了一定进展,但总体水平仍落后于国外技术先进的国家,发展还不成熟,主要体现在:①控制器难以运用于超高速应用场合,抗干扰性和稳定性较差。由于控制器软硬件体系结构设计不合理,导致控制周期大于超高速应用的要求,抗干扰性和稳定性不好,最终的控制效果较差。②核心控制器没有独立知识产权。现有的控制系统普遍采用国外PLC控制器及相关软件组成,所配控制器只有个别国外厂家提供,控制功能专用,不适合我国的应用要求。
[0003]现如今国内工业控制器市场仍是国外产品占据大部分份额,而高水平的控制器市场几乎被几家国外公司垄断,也就是说我国现在缺乏一种自主知识产权的超高速、低成本、高可靠性的工业控制器。
[0004]因此,开发一款具备自主知识产权,能够通用于各种控制系统的超高速、低成本、高可靠性的超高速工业控制器具有重要的意义。
[0005]工业控制系统现场包含各类设备:控制室或现场的上位计算机;测量现场各种生产变量的模拟式传感器,如流量传感器、压力传感器、位移传感器、温度传感器等;改变管路流体流量的调节阀,如溢流阀、比例双向阀等;反映生产状态与人机交互的开关式设备,如警报开关、启动/停止按钮等;用于通断各种生产回路的电磁阀等。
[0006]超高速工业控制器在工业控制系统中的应用情况,为了与上述工业控制系统现场包含的各类设备交互,超高速工业控制器具有如下接口:RS232和RS422(半/全双工RS485)总线——用于与上位机通信,16路4?20mA/0?IOV模拟量输入信号Al——用于采集各种模拟式传感器信号,8路-1OV?+IOV模拟量输出信号AO——用于控制调节阀开度,16路开关量输入信号DI——用于读取现场的各种开关量输入状态,8路开关量输出信号DO——用于直接驱动生产中的各种电磁阀。

【发明内容】

[0007]本发明所要解决的技术问题是,提供一种能够通用于各种控制系统的超高速、低成本、高可靠性的可与上位机共同组成控制系统及能够直接与传感器和执行机构信号匹配的基于Verilog HDL的FPGA超高速工业控制系统。
[0008]本发明所采用的技术方案是:一种基于Verilog HDL的FPGA超高速工业控制系统,包括:
[0009]DA上层控制模块,用于在一个控制周期Ts中,根据控制器通信命令字接收控制模块(8)输出的模拟量DA输出模式选择位AUT0_HAND_DA[31:0]数据按下述五种方式中的一种方式进行DA数值的计算,并调用DA底层驱动模块(5)完成8路模拟量输出的电压输出刷新,并存入模拟量DA实际输出值模块Ram (16),所述的五种方式为:
[0010]第一种方式,按照从模拟量输出DA手动设定值模块Ram读出的数值手动设置DA值并进行输出;
[0011]第二种方式,按照从波形参数模块Ram读出的周期相对值、峰值、谷值自动输出方波;
[0012]第三种方式,按照从波形参数模块Ram读出的周期相对值、峰值、谷值自动输出三角波;
[0013]第四种方式,按照从波形参数模块Ram读出的周期相对值、峰值、谷值,并按照从正弦数值Rom存储器读出的数值自动输出正弦波;
[0014]第五种方式,按照从模拟量Al给定值模块Ram读出的与8路模拟量输出的每一路AO通道相对应的模拟量输入Al的闭环给定值,和从模拟量闭环PID控制参数模块Ram读出的相应的闭环PID控制参数,调用用于实现增量式PID算法的PID算法模块,进行单闭环或双闭环的PID自动调节,计算DA数值并进行输出;
[0015]AD上层控制模块,用于调用第一 AD底层驱动模块和第二 AD底层驱动模块完成全部16路模拟量输入信号的轮询AD采样转换,并将转换结果存入第一 AD转换值模块Ram和第二 AD转换值模块Ram,向DA上层控制模块提供整个系统的控制周期同步信号Ts ;
[0016]第一 AD底层驱动模块,用于接收AD上层控制模块发送的16位并行控制字,转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的第一片12位8通道A/D转换器电路,控制该电路进行AD转换,并将转换结果的数据并行输出到AD上层控制模块;
[0017]第二 AD底层驱动模块,用于接收AD上层控制模块(4)发送的16位并行控制字,转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的第二片12位8通道A/D转换器电路,控制该电路进行AD转换,并将转换结果的数据并行输出到AD上层控制模块;
[0018]DA底层驱动模块,用于将DA上层控制模块发来的32位并行控制字转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的14位8通道D/A转换器电路。
[0019]异步串行通信接收接口,用于接收基于FPGA的超高速工业控制器中的通信数字隔离电路111输入的信号,并写入内部的异步串行通信接收FIFO模块中,供控制器通信命令字接收控制模块读取。
[0020]控制器通信命令字接收控制模块,用于从异步串行通信接收接口读出数据,每读出上位机发送的10字节命令字后都进行校验和计算,根据设定的控制器通信命令字接收解析表,由收到的第一个字节即功能码数值解析出上位机命令字的含义,从而进行相应的命令解析与参数设置。
[0021 ] 开关量输出DO逻辑控制模块,用于读入16路开关量输入状态信号,并根据控制器通信命令字接收控制模块设定的模式输出8路开关量输出状态信号。
[0022]控制器信息发送控制模块,分别:从开关量输出DO逻辑控制模块读取16路开关量输入状态和8路开关量输出状态的数值,从第一 AD转换值模块Ram读取16路模拟量输入通道12位AD转换值,从模拟量DA实际输出值模块Ram读取8路模拟量输出通道14位DA数值,并将读取的数值按设定的顺序格式写入异步串行通信发送接口,并将这一发送过程循环往复进行。
[0023]异步串行通信发送接口,利用内部的异步串行通信发送FIFO模块接收控制器信息发送控制模块的写入信息,最终在输出口上完成异步串行通信数据帧的发送。
[0024]PLL锁相环模块,用于接收基于FPGA的超高速工业控制器中的时钟输入与自动/手动复位电路单元的48MHz时钟输入,并为系统提供全局时钟信号。
[0025]所述的第一 AD底层模块和第二 AD底层模块结构完全相同,其中,所述的第一 AD底层模块在一个A/D转换器的读写周期4.770833us内,将接收AD上层控制模块发送的并行控制字转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的第一片12位8通道A/D转换器电路,并将从第一片12位8通道A/D转换器电路串行读出的16位包含上一个读写周期AD转换结果的数据并行输出到AD上层控制模块;所述的第二 AD底层模块在一个A/D转换器的读写周期4.770833us内,用于将接收AD上层控制模块发送的并行控制字转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的第二片12位8通道A/D转换器电路,并将从第二片12位8通道A/D转换器电路串行读出的16位包含上一个读写周期AD转换结果的数据并行输出到AD上层控制模块。
[0026]所述的AD上层控制模块,用于在每一个控制周期Ts=0.2896667ms内,调用第一AD底层驱动模块和第二 AD底层驱动模块完成全部16路模拟量输入信号的轮询AD采样转换,每次完成对基于FPGA的超高速工业控制器中的第一片12位8通道A/D转换器电路和第二片12位8通道A/D转换器电路中的一个输入通道连续7次的同步AD转换后,将第一片12位8通道A/D转换器电路和第二片12位8通道A/D转换器电路的7次同步AD转换结果的后6次进行简单选择排序后,再将第一片12位8通道A/D转换器电路和第二片12位8通道A/D转换器电路的中间AD转换值,存入第一 AD转换值模块Ram和第二 AD转换值模块Ram,向DA上层控制模块提供整个系统的控制周期同步信号Ts。
[0027]所述的异步串行通信发送接口包括有,异步串行通信底层发送驱动模块,异步串行通信上层发送控制模块,异步串行通信发送FIFO模块,其中,所述的异步串行通信发送FIFO模块接收控制器信息发送控制模块写入的信息;所述的异步串行通信上层发送控制模块从所述的异步串行通信发送FIFO模块读出I字节的待发送数据,调用异步串行通信底层发送驱动模块完成一帧数据的发送,并循环往复;所述的异步串行通信底层发送驱动模块将异步串行通信上层发送控制模块发来的8位并行待发送数据按照异步串行通信中I个起始位+8个数据位+1个停止位、无校验位的帧格式的时序逐位输出到输出口,所述的输出口配置为I路RS422或全双工RS485的发送引脚或2路RS232-C的发送引脚。
[0028]所述的异步串行通信接收接口包括有,异步串行通信底层接收驱动模块,异步串行通信上层接收控制模块,异步串行通信接收FIFO模块,其中,所述的异步串行通信上层接收控制模块调用异步串行通信底层接收驱动模块完成一帧数据的接收,向异步串行通信接收FIFO模块写入I字节的刚刚接收到的8位并行数据,循环往复;所述的异步串行通信底层接收驱动模块在异步串行通信上层接收控制模块的控制下,对输入口状态按照异步串行通信中I个起始位+8个数据位+1个停止位、无校验位的帧格式的时序转换成8位并行数据供异步串行通信上层接收控制模块读取,所述的输入口配置为I路RS422或全双工RS485的接收引脚或2路RS232-C的接收引脚;所述的异步串行通信接收FIFO模块接收异步串行通信上层接收控制模块写入的信息供控制器通信命令字接收控制模块读取。
[0029]所述的控制器通信命令字接收控制模块中的控制器通信命令字接收解析表设定:
[0030]当第一个字节即功能码数值为O时,解析命令字中的数值,并进行一路开关量输出DO手/自动设直;
[0031]当第一个字节即功能码数值为I时,解析命令字中的数值,并进行一路模拟量输出AO的DA值手动设置;
[0032]当第一个字节即功能码数值为2时,解析命令字中的数值,并进行一路模拟量输出AO自动生成方波的设置;
[0033]当第一个字节即功能码数值为3时,解析命令字中的数值,并进行一路模拟量输出AO自动生成三角波的设置;
[0034]当第一个字节即功能码数值为4时,解析命令字中的数值,并进行一路模拟量输出AO自动生成正弦波的设置;
[0035]当第一个字节即功能码数值为5时,解析命令字中的数值,并进行一路模拟量输出AO切自动PID调节使能;
[0036]当第一个字节即功能码数值为6时,解析命令字中的数值,并进行一路模拟量输入Al的闭环给定值设置;
[0037]当第一个字节即功能码数值为7时,解析命令字中的数值,并进行一路模拟量输入Al的闭环PID控制参数设置。
[0038]所述的功能码数值为O时,所述的控制器通信命令字接收控制模块按照所接收的命令字刷新输出给开关量输出DO逻辑控制模块的数据;所述的功能码数值为2、3、和4时,所述的控制器通信命令字接收控制模块按照所接收的命令字将波形参数写入波形参数模块Ram,并刷新输出给DA上层控制模块的模拟量DA输出模式选择位AUT0_HAND_DA[31:0]数据;所述的功能码数值为I时,所述的控制器通信命令字接收控制模块按照所接收的命令字将模拟量输出AO的DA手动值写入模拟量输出DA手动设定值模块Ram,并刷新输出给DA上层控制模块的模拟量DA输出模式选择位AUT0_HAND_DA[31:0]数据;所述的功能码数值为5时,所述的控制器通信命令字接收控制模块按照所接收的命令字刷新输出给DA上层控制模块的模拟量DA输出模式选择位AUT0_HAND_DA[31:0]数据;所述的功能码数值为6时,所述的控制器通信命令字接收控制模块按照所接收的命令字将一路模拟量输入的闭环给定值写入模拟量Al给定值模块Ram ;所述的功能码数值为7时,所述的控制器通信命令字接收控制模块按照所接收的命令字将一路模拟量输入的闭环PID控制参数写入模拟量闭环PID控制参数模块Ram。
[0039]所述的控制器信息发送控制模块向上位机循环发送控制器状态信息,在每个发送循环中,该控制器信息发送控制模块共发送52字节的控制器状态信息:先发送一字节的0x55作为上位机的接收同步信息,然后从第一 AD转换值模块Ram读取16X 12bit共32字节的16路Al数值并发送,然后从模拟量DA实际输出值模块Ram读取8 X 14bit共16字节的8路AO数值并发送,最后从开关量输出DO逻辑控制模块读取16路开关量输入状态和8路开关量输出状态共3字节的数值。[0040]本发明的一种基于Verilog HDL的FPGA超高速工业控制系统,因所有控制与采集功能均用现场可编程门阵列FPGA实现,故控制周期Ts可以根据需求设置得非常小,可用于超高速控制应用中。在EP3C16E144I7上完成Verilog代码的模块设计,几乎所有涉及时序的模块均用Verilog代码设计成有限状态机,工作快速、稳定。设计中仅仅使用一片FPGA作为主控芯片,完成工业控制系统的模拟量、开关量的采集与控制,最突出的特点是速度快、超高速,同时具有成本低、通用性好、稳定性高、可靠性好、现场可编程与扩展能力强等优点,一个控制周期Ts中每路Al采集7次的情况下,8个模拟量的PID闭环控制总周期可以低至289us (即0.289ms),如果一个控制周期Ts中每路Al采集少于7次,控制周期可以低至IOOus以下,完全可满足超高速的控制要求。控制器可通过RS232-C总线接口,RS422总线接口(半/全双工RS485总线接口),用于连接上位计算机或工控机,并可以作为半双工RS485总线上的一个控制节点连入工业控制网络,与工控机、信号调理板、被控对象组成一套完整的控制系统,实现了控制系统的整体化,用户可根据不同的控制要求扩充各种不同性能的支持RS485接口的控制器使控制系统的功能更加完善。本发明中的控制器使用四层FPGA核心板+信号调理板的设计结构,本发明中的信号调理板与FPGA相连,并可根据不同的需求调换不同的调理板以实现不同的性能(如改变A/D、D/A精度,增加接口数量等)。
【专利附图】

【附图说明】
[0041]图1是基于FPGA的超高速工业控制器的硬件结构图;
[0042]图2是本发明系统的顶层方框图设计中各个虚拟功能模块的连接示意及对外引脚图;
[0043]图3是DA上层控制模块DA_top_control.V的状态转换图;
[0044]图4是AD上层控制模块AD_top_control.V的状态转换图;
[0045]图5是AD底层驱动模块AD.V的状态转换图;
[0046]图6是AD7928的串行接口时序图;
[0047]图7是AD7928的12位控制寄存器的位定义图;
[0048]图8是DA底层驱动模块DA.V的状态转换图;
[0049]图9是DA转换器(AD5648)的串行接口时序图;
[0050]图10是DA转换器(AD5648)的32位输入寄存器的位定义图;
[0051]图11是异步串行通信接收接口 rx_interface.bdf的方框图;
[0052]图12是异步串行通信底层接收驱动模块rx_module.V的状态转换图;
[0053]图13是异步串行通信上层接收控制模块rx_top_control_module.V的状态转换图;
[0054]图14是控制器通信命令字接收控制模块rx_control.V的状态转换图;
[0055]图15是控制器信息发送控制模块tx_control.V的状态转换图;
[0056]图16是异步串行通信发送接口 tx_interface.bdf的方框图;
[0057]图17是异步串行通信底层发送驱动模块tx_module.V的状态转换图;
[0058]图18是异步串行通信上层发送控制模块tx_top_control_module.V的状态转换图。【具体实施方式】
[0059]下面结合实施例和附图对本发明的一种基于Verilog HDL的FPGA超高速工业控制系统做出详细说明。
[0060]本发明的一种基于Verilog HDL的FPGA超高速工业控制系统是用于基于FPGA的超高速工业控制器上的。所述的基于FPGA的超高速工业控制器的结构图如图1所示,包括由型号为EP3C16E144I7的Altera Cyclone III系列FPGA构成的FPGA核心主控芯片1,连接在FPGA核心主控芯片I的模拟量信号输入端的16路模拟量输入A/D转换电路单元7,连接在FPGA核心主控芯片I的模拟量信号输出端的8路模拟量输出D/A转换电路单元8,连接在FPGA核心主控芯片I的开关量信号输入端的16路开关量输入信号隔离单元9,连接在FPGA核心主控芯片I的开关量信号输出端的8路开关量输出信号隔离与驱动单元10,所述的FPGA核心主控芯片I通过RS232/半/全双工RS485 (RS422)总线通信单元11连接上位机或接入工业网络,所述的FPGA核心主控芯片I连接FPGA独立电源(3.3V,2.5V,1.2V)供电单元2,FPGA核心主控芯片I连接时钟输入与自动/手动复位电路单元5,FPGA核心主控芯片I连接JTAG调试接口电路3,FPGA核心主控芯片I连接EPCS16程序配置芯片电路4,所述的FPGA核心主控芯片I与所述的2、3、4、5共同构成FPGA超高速工业控制器的四层核心板,调理板电源(5V,± 12V)供电单元6与所述的7、8、9、10、11共同构成FPGA超高速工业控制器的两层信号调理板。
[0061]本发明中的控制器设计中仅仅使用一片FPGA作为主控芯片,选用Altera公司Cyclone III系列FPGA中的EP3C16E144I7,其内部逻辑资源相当丰富,频率高、延迟小,用它完成工业控制系统的模拟量、开关量的采集与控制,最突出的特点是速度快、超高速,同时具有速度快、成本低、通用性好、稳定性高、可靠性好、现场可编程与扩展能力强等优点,一个控制周期Ts中每路Al采集7次的情况下,8个模拟量的PID闭环控制总周期可以低至289us (即0.289ms),如果一个控制周期Ts中每路Al采集少于7次,控制周期可以低至IOOus以下,完全可满足超高速的控制要求。本发明中的控制器具有DI和DO两大类外部开关量接口,16路DI (24V数字量输入)与8路DO (30VDC/250VAC、5A数字量输出)可用于直接与工业控制系统常用设备及其驱动模块的开关量接口相连以完成工业现场开关量的采集与控制。本发明中的控制器具有A/D和D/A两大类外部模拟量数据接口,16路A/D(其中8路同时支持4?20mA、0?IOV模拟量采集,另外8路仅支持4?20mA模拟量采集)用于与工业控制系统常用的流量、压力和位移传感器的模拟量信号连接以完成工业现场模拟量信号的采集,8路D/A(经信号放大以-10?+IOV输出,输出电流不低于IOOmA)用于与工业控制系统常用设备的驱动模块(交直流电机、伺服阀、溢流阀、冲液阀、换向阀的驱动器)连接以完成工业现场模拟控制量的双极性输出。本发明中的控制器具有RS232-C总线接口,RS422总线接口(半/全双工RS485总线接口),用于连接上位计算机或工控机,并可以作为半双工RS485总线上的一个控制节点组成DCS (集散控制系统),与网络内的其他设备共同组成一套完整的控制系统,实现了控制系统的整体化。本发明中的控制器在与工业控制系中Al、A0、D1、D0、总线通信的所有接口均采用了隔离措施与抗干扰措施,通过光耦、磁耦的隔离,使FPGA与其他各种工业现场信号无任何电气回路连接,从而大大增强了控制器的抗干扰性能,使得FPGA核心板几乎不可能受到工业现场的干扰而损坏。本发明中的控制器是真正的工业级超高速控制器,在硬件上所有芯片的选型必须保证是工业级芯片且力求集成度高、处理速度快,如FPGA芯片EP3C16E144I7、DA芯片AD5648、AD芯片AD7928、磁耦芯片ADuM系列、RS422/RS485接口芯片MAX49IESD等,所有芯片的工作范围宽于_40°C?+85°C,是名符其实的工业级超高速控制器。本发明中的控制器使用四层FPGA核心板+信号调理板的设计结构,本发明中的信号调理板与FPGA相连,并可根据不同的需求调换不同的调理板以实现不同的性能(如改变A/D、D/A精度,增加接口数量等)。本发明中的控制器核心控制芯片选用Altera公司Cyclone III系列FPGA中的EP3C16E144I7,其内部逻辑资源相当丰富,频率高、延迟小,为编写状态机等复杂的逻辑控制程序和复杂的控制算法程序奠定了硬件基础,使超高速控制成为可能,同时利于今后控制器的软件升级。
[0062]FPGA超高速工业控制器的FPGA核心主控芯片I选用的是Altera公司CycloneIII系列FPGA中的EP3C16E144I7,因为EP3C16E144I7的内部逻辑资源非常丰富,所以在Quartus II集成开发环境下进行Verilog代码或方框图的模块设计就显得异常灵活,资源使用绰绰有余,更有利于今后软件的升级与更高级控制算法和更复杂控制逻辑在以EP3C16E144I7为核心主控芯片的FPGA超高速工业控制器上的实现。
[0063]FPGA的主要作用是:FPGA通过A/D转换器将最多16路传感器采集的模拟量输入信号Al转换为FPGA能识别的二进制信息,然后FPGA根据这些信息与控制算法计算出调节阀应有的开度,然后经过D/A转换器和驱动放大电路,输出最多8路-1OV?+IOV模拟量给调节阀,从而达到控制目的:同时FPGA可通过RS232和RS422 (半/全双工RS485)总线向上位机发送所有16路A1、8路AO的数值和16路D1、8路DO的状态,上位机可向FPGA发送各种控制信息。
[0064]如图2所示,本发明的一种基于Verilog HDL的FPGA超高速工业控制系统,包括:DA上层控制模块1、第一 AD底层驱动模块2、第二 AD底层模块3、AD上层控制模块4、DA底层驱动模块5、异步串行通信发送接口 6、异步串行通信接收接口 7、控制器通信命令字接收控制模块8、控制器信息发送控制模块9、开关量输出DO逻辑控制模块10、PID算法模块11、PLL锁相环模块12、正弦数值Rom存储器13、第一 AD转换值模块Raml4、第二 AD转换值模块Raml5、模拟量DA实际输出值模块Raml6、模拟量闭环PID控制参数模块Raml7、模拟量输出DA手动设定值模块Raml8、模拟量Al给定值模块Raml9和波形参数模块Ram20。其中,
[0065]DA上层控制模块1,用于在一个控制周期Ts中,根据控制器通信命令字接收控制模块8输出的模拟量DA输出模式选择位AUT0_HAND_DA[31:0]数据按下述五种方式中的一种方式进行DA数值的计算,并调用DA底层驱动模块5完成8路模拟量输出的电压输出刷新,并存入模拟量DA实际输出值模块Raml6,所述的五种方式为:
[0066]第一种方式,按照从模拟量输出DA手动设定值模块RamlS读出的数值手动设置DA值并进行输出;
[0067]第二种方式,按照从波形参数模块Ram20读出的周期相对值、峰值、谷值自动输出方波;
[0068]第三种方式,按照从波形参数模块Ram20读出的周期相对值、峰值、谷值自动输出三角波;
[0069]第四种方式,按照从波形参数模块Ram20读出的周期相对值、峰值、谷值,并按照从正弦数值Rom存储器13读出的数值自动输出正弦波;
[0070]第五种方式,按照从模拟量Al给定值模块Raml9读出的与8路模拟量输出的每一路AO通道相对应的模拟量输入Al的闭环给定值,和从模拟量闭环PID控制参数模块Raml7读出的相应的闭环PID控制参数,调用用于实现增量式PID算法的PID算法模块11,进行单闭环或双闭环的PID自动调节,计算DA数值并进行输出。
[0071]如图3所示,DA上层控制模块DA_top_control.V的状态转换图中,DA上层控制模块DA_top_control.v完成的主要功能是:在每一个控制周期Ts=0.2896667ms内,对8路模拟量输出的每一路AO通道,都根据AUT0_HAND_DA[31:0]中与该路AO通道对应的4位数值,按如下5种方式之一进行DA数值的计算,并根据计算出的DA值调用DA底层驱动模块DA.V完成DA转换器AD5648的电压输出刷新。8路AO的每一路均可通过上位机向控制器发送命令字的方法(命令字格式见表37)配置为以下任何一种输出方式,且每路AO的输出方式完全独立。方式1-M按手动设置的DA值进行输出;方式2:A0按设置的周期相对值、峰值、谷值自动输出方波;方式3:A0按设置的周期相对值、峰值、谷值自动输出三角波;方式4:A0按设置的周期相对值、峰值、谷值自动输出正弦波;方式5:A0根据与其对应的模拟量输入Al的闭环给定值和相应的闭环PID控制参数进行单闭环/双闭环的PID自动调节。
[0072]上述的方式5是控制器AO最重要的输出方式,可完成最多8路模拟量Al的定值或随动控制,且控制周期仅为Ts=0.2896667msο
[0073]AOO-A03与Al的单闭环对应关系见下表。
[0074]
【权利要求】
1.一种基于Verilog HDL的FPGA超高速工业控制系统,其特征在于,包括: DA上层控制模块(I ),用于在一个控制周期Ts中,根据控制器通信命令字接收控制模块(8)输出的模拟量DA输出模式选择位AUT0_HAND_DA[31:0]数据按下述五种方式中的一种方式进行DA数值的计算,并调用DA底层驱动模块(5)完成8路模拟量输出的电压输出刷新,并存入模拟量DA实际输出值模块Ram (16),所述的五种方式为: 第一种方式,按照从模拟量输出DA手动设定值模块Ram (18)读出的数值手动设置DA值并进行输出; 第二种方式,按照从波形参数模块Ram (20)读出的周期相对值、峰值、谷值自动输出方波; 第三种方式,按照从波形参数模块Ram (20)读出的周期相对值、峰值、谷值自动输出三角波; 第四种方式,按照从波形参数模块Ram (20)读出的周期相对值、峰值、谷值,并按照从正弦数值Rom存储器(13)读出的数值自动输出正弦波; 第五种方式,按照从模拟量Al给定值模块Ram (19)读出的与8路模拟量输出的每一路AO通道相对应的模拟量输入Al的闭环给定值,和从模拟量闭环PID控制参数模块Ram(17)读出的相应的闭环PID控制参数,调用用于实现增量式PID算法的PID算法模块(11),进行单闭环或双闭环的PID自动调节,计算DA数值并进行输出; AD上层控制模块(4),用于调用第一 AD底层驱动模块(2)和第二 AD底层驱动模块(3)完成全部16路模拟量输入信号的轮询AD采样转换,并将转换结果存入第一 AD转换值模块Ram (14)和第二 AD转换值模块Ram (15),向DA上层控制模块(I)提供整个系统的控制周期同步信号Ts; 第一 AD底层驱动模块(2),用于接收AD上层控制模块(4)发送的16位并行控制字,转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的第一片12位8通道A/D转换器电路,控制该电路进行AD转换,并将转换结果的数据并行输出到AD上层控制模块(4); 第二 AD底层驱动模块(3),用于接收AD上层控制模块(4)发送的16位并行控制字,转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的第二片12位8通道A/D转换器电路,控制该电路进行AD转换,并将转换结果的数据并行输出到AD上层控制模块(4); DA底层驱动模块(5),用于将DA上层控制模块(I)发来的32位并行控制字转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的14位8通道D/A转换器电路。 异步串行通信接收接口(7),用于接收基于FPGA的超高速工业控制器中的通信数字隔离电路111输入的信号,并写入内部的异步串行通信接收FIFO模块中,供控制器通信命令字接收控制模块(8)读取。 控制器通信命令字接收控制模块(8),用于从异步串行通信接收接口(7)读出数据,每读出上位机发送的10字节命令字后都进行校验和计算,根据设定的控制器通信命令字接收解析表,由收到的第一个字节即功能码数值解析出上位机命令字的含义,从而进行相应的命令解析与参数设置。 开关量输出DO逻辑控制模块(10 ),用于读入16路开关量输入状态信号,并根据控制器通信命令字接收控制模块(8)设定的模式输出8路开关量输出状态信号。 控制器信息发送控制模块(9),分别:从开关量输出DO逻辑控制模块(10)读取16路开关量输入状态和8路开关量输出状态的数值,从第一 AD转换值模块Ram (14)读取16路模拟量输入通道12位AD转换值,从模拟量DA实际输出值模块Ram (16)读取8路模拟量输出通道14位DA数值,并将读取的数值按设定的顺序格式写入异步串行通信发送接口(6),并将这一发送过程循环往复进行。 异步串行通信发送接口( 6 ),利用内部的异步串行通信发送FIFO模块接收控制器信息发送控制模块(9)的写入信息,最终在输出口上完成异步串行通信数据帧的发送。 PLL锁相环模块(12),用于接收基于FPGA的超高速工业控制器中的时钟输入与自动/手动复位电路单元的48MHz时钟输入,并为系统提供全局时钟信号。
2.根据权利要求1所述的一种基于VerilogHDL的FPGA超高速工业控制系统,其特征在于,所述的第一 AD底层模块(2)和第二 AD底层模块(3)结构完全相同,其中,所述的第一 AD底层模块(2)在一个A/D转换器的读写周期4.770833us内,将接收AD上层控制模块(4)发送的并行控制字转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的第一片12位8通道A/D转换器电路,并将从第一片12位8通道A/D转换器电路串行读出的16位包含上一个读写周期AD转换结果的数据并行输出到AD上层控制模块(4);所述的第二 AD底层模块(3)在一个A/D转换器的读写周期4.770833us内,用于将接收AD上层控制模块(4)发送的 并行控制字转换成SPI串行接口时序,写入基于FPGA的超高速工业控制器中的第二片12位8通道A/D转换器电路,并将从第二片12位8通道A/D转换器电路串行读出的16位包含上一个读写周期AD转换结果的数据并行输出到AD上层控制模块(4)。
3.根据权利要求1所述的一种基于VerilogHDL的FPGA超高速工业控制系统,其特征在于,所述的AD上层控制模块(4),用于在每一个控制周期Ts=0.2896667ms内,调用第一AD底层驱动模块(2)和第二 AD底层驱动模块(3)完成全部16路模拟量输入信号的轮询AD采样转换,每次完成对基于FPGA的超高速工业控制器中的第一片12位8通道A/D转换器电路和第二片12位8通道A/D转换器电路中的一个输入通道连续7次的同步AD转换后,将第一片12位8通道A/D转换器电路和第二片12位8通道A/D转换器电路的7次同步AD转换结果的后6次进行简单选择排序后,再将第一片12位8通道A/D转换器电路和第二片12位8通道A/D转换器电路的中间AD转换值,存入第一 AD转换值模块Ram (14)和第二AD转换值模块Ram (15),向DA上层控制模块(I)提供整个系统的控制周期同步信号Ts。
4.根据权利要求1所述的一种基于VerilogHDL的FPGA超高速工业控制系统,其特征在于,所述的异步串行通信发送接口(6)包括有,异步串行通信底层发送驱动模块(63),异步串行通信上层发送控制模块(62),异步串行通信发送FIFO模块(61),其中,所述的异步串行通信发送FIFO模块(61)接收控制器信息发送控制模块(9)写入的信息;所述的异步串行通信上层发送控制模块(62)从所述的异步串行通信发送FIFO模块(61)读出I字节的待发送数据,调用异步串行通信底层发送驱动模块(63)完成一帧数据的发送,并循环往复;所述的异步串行通信底层发送驱动模块(63)将异步串行通信上层发送控制模块(62)发来的8位并行待发送数据按照异步串行通信中I个起始位+8个数据位+1个停止位、无校验位的帧格式的时序逐位输出到输出口,所述的输出口配置为I路RS422或全双工RS485的发送引脚或2路RS232-C的发送引脚。
5.根据权利要求1所述的一种基于VerilogHDL的FPGA超高速工业控制系统,其特征在于,所述的异步串行通信接收接口(7)包括有,异步串行通信底层接收驱动模块(71),异步串行通信上层接收控制模块(72),异步串行通信接收FIFO模块(73),其中,所述的异步串行通信上层接收控制模块(72)调用异步串行通信底层接收驱动模块(71)完成一帧数据的接收,向异步串行通信接收FIFO模块(73)写入I字节的刚刚接收到的8位并行数据,循环往复;所述的异步串行通信底层接收驱动模块(71)在异步串行通信上层接收控制模块(72)的控制下,对输入口状态按照异步串行通信中I个起始位+8个数据位+1个停止位、无校验位的帧格式的时序转换成8位并行数据供异步串行通信上层接收控制模块(72)读取,所述的输入口配置为I路RS422或全双工RS485的接收引脚或2路RS232-C的接收引脚;所述的异步串行通信接收FIFO模块(73)接收异步串行通信上层接收控制模块(72)写入的信息供控制器通信命令字接收控制模块(8)读取。
6.根据权利要求1所述的一种基于VerilogHDL的FPGA超高速工业控制系统,其特征在于,所述的控制器通信命令字接收控制模块(8)中的控制器通信命令字接收解析表设定: 当第一个字节即功能码数值为O时,解析命令字中的数值,并进行一路开关量输出DO手/自动设置; 当第一个字节即功能码数值为I时,解析命令字中的数值,并进行一路模拟量输出AO的DA值手动设置; 当第一个字节即功能码数值为2时,解析命令字中的数值,并进行一路模拟量输出AO自动生成方波的设置; 当第一个字节即功能码数值为3`时,解析命令字中的数值,并进行一路模拟量输出AO自动生成三角波的设置; 当第一个字节即功能码数值为4时,解析命令字中的数值,并进行一路模拟量输出AO自动生成正弦波的设置; 当第一个字节即功能码数值为5时,解析命令字中的数值,并进行一路模拟量输出AO切自动PID调节使能; 当第一个字节即功能码数值为6时,解析命令字中的数值,并进行一路模拟量输入Al的闭环给定值设置; 当第一个字节即功能码数值为7时,解析命令字中的数值,并进行一路模拟量输入Al的闭环PID控制参数设置。
7.根据权利要求6所述的一种基于VerilogHDL的FPGA超高速工业控制系统,其特征在于,所述的功能码数值为O时,所述的控制器通信命令字接收控制模块(8)按照所接收的命令字刷新输出给开关量输出DO逻辑控制模块(10)的数据;所述的功能码数值为2、3、和4时,所述的控制器通信命令字接收控制模块(8)按照所接收的命令字将波形参数写入波形参数模块Ram (20),并刷新输出给DA上层控制模块(I)的模拟量DA输出模式选择位AUT0_HAND_DA[31:0]数据;所述的功能码数值为I时,所述的控制器通信命令字接收控制模块(8)按照所接收的命令字将模拟量输出AO的DA手动值写入模拟量输出DA手动设定值模块Ram( 18),并刷新输出给DA上层控制模块(I)的模拟量DA输出模式选择位AUT0_HAND_DA[31:0]数据;所述的功能码数值为5时,所述的控制器通信命令字接收控制模块(8)按照所接收的命令字刷新输出给DA上层控制模块(I)的模拟量DA输出模式选择位AUTO_HAND_DA[31:0]数据;所述的功能码数值为6时,所述的控制器通信命令字接收控制模块(8)按照所接收的命令字将一路模拟量输入的闭环给定值写入模拟量Al给定值模块Ram (19);所述的功能码数值为7时,所述的控制器通信命令字接收控制模块(8)按照所接收的命令字将一路模拟量输入的闭环PID控制参数写入模拟量闭环PID控制参数模块Ram (17)。
8.根据权利要求1所述的一种基于Verilog HDL的FPGA超高速工业控制系统,其特征在于,所述的控制器信息发送控制模块(9)向上位机循环发送控制器状态信息,在每个发送循环中,该控制器信息发送控制模块(9)共发送52字节的控制器状态信息:先发送一字节的0x55作为上位机的接收同步信息,然后从第一 AD转换值模块Ram( 14)读取16 X 12bit共32字节的16路Al数值并发送,然后从模拟量DA实际输出值模块Ram (16)读取8X 14bit共16字节的8路AO数值并发送,最后从开关量输出DO逻辑控制模块(10)读取16路开关量输入状态和8路开关 量输出状态共3字节的数值。
【文档编号】G05B19/418GK103455002SQ201310391220
【公开日】2013年12月18日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】吴爱国, 崔巍, 江涛 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1