基于fpga的具有并行处理结构的高速伺服控制器的制作方法

文档序号:6292992阅读:249来源:国知局

专利名称::基于fpga的具有并行处理结构的高速伺服控制器的制作方法
技术领域
:本发明涉及一种伺服控制器,特别是指一种基于FPGA的具有并行处理结构的高速伺服控制器,属于工业自动化控制
技术领域

背景技术
:在工业自动化控制领域,现有的伺服控制器大都采用软件实现控制器计算。随着工业控制行业的发展,对伺服控制器的运算速度有了越来越高的要求。然而,由于微处理器运行结构和计算能力的限制,传统伺服控制器在进行控制计算时开销较大,同时,A/D转换、PID控制计算和D/A转换需要顺序执行,造成传统的伺服控制器已经不能满足很多场合对控制速度的要求。
发明内容本发明的目的是提供一种控制快速、适用范围广的基于FPGA的具有并行处理结构的高速伺服控制器。本发明的基于FPGA的具有并行处理结构的高速伺服控制器,其特征是包括现场可编程逻辑门阵列(FPGA),两个A/D转换器,D/A转换器,晶振、键盘模块、显示模块、FLASH存储器、SDRAM存储器和EEPROM存储器,其中现场可编程逻辑门阵列集成有两个A/D转换控制模块,D/A转换控制模块,用于控制计算的核心控制模块,时钟模块,两个双口RAM和软核处理器,两个A/D转换控制模块分别与两个A/D转换器相连,两个A/D转换控制模块的数据输出端分别与核心控制模块的数据输入端相连,核心控制模块的数据输出端与D/A转换控制模块的数据输入端相连,D/A转换控制模块的输出端与D/A转换器的输入端相连,核心控制模块的双口RAM控制端口分别与第一双口RAM和第二双口RAM的一端相连,第一双口RAM和第二双口RAM的另一端分别与软核处理器的双口RAM控制端口相连,键盘模块、显示模块、FLASH存储器、SDRAM存储器和EEPROM存储器分别与软核处理器相应的控制端口相连,晶振的输出端分两路,一路与软核处理器的时钟输入端相连,另一路与时钟模块的时钟输入端相连,时钟模块的四个时钟输出端分别与第一、第二A/D转换控制模块,D/A转换控制模块和核心控制模块的时钟输入端相连。本发明的工作过程晶振为软核处理器和时钟模块提供稳定的基本时钟信号,时钟模块对基本时钟信号进行处理,为两个A/D转换控制模块和核心控制模块以及D/A转换控制模块提供各自的时钟信号。第一A/D转换控制模块负责控制第一A/D转换器,获得被控对象的状态信息,包括位置、速度、加速度等;第二A/D转换控制模块负责控制第二A/D转换器,获得被控对象的设定值信息。核心控制模块首先读取第一双口RAM,获取控制器的参数,然后从第一A/D转换控制模块和第二A/D转换控制模块分别获得被控对象状态信息和设定值信息,并根据两者之间的偏差,应用经典的增量式数字PID控制算法,计算出控制量,最后将包括控制量在内的核心控制模块的状态信息写入第二双口RAM。D/A转换控制模块从核心控制模块获得控制量,并控制D/A转换器将控制量输出给调节机构,以调节被控对象的状态。其中,两个A/D转换控制模块、核心控制模块和D/A转换控制模块是流水化并行工作的。当两个A/D转换控制模块控制两个A/D转换器进行第N周期的外部信号采样时,核心控制模块使用第N-1周期的被控对象状态信息和设定值信息进行控制计算,而D/A转换控制模块控制D/A转换器输出第N-2周期的控制量。软核处理器负责完成刷新显示模块输出、读取键盘模块输入和读写两个双口RAM以实现与核心控制模块之间的通讯。软核处理器上所运行的软件存储在FLASH存储器上,软件运行过程中产生的临时数据存储在SDRAM存储器上。EEPROM存储器在控制器掉电时存储控制器参数上。本发明的高速伺服控制器实现了PID控制计算的硬件化以及A/D转换、控制计算和D/A转换的流水线化并行处理,显著縮短了控制周期;实现了软核处理器对核心控制模块的监控和人机交互。本发明的伺服控制器具有极快的运算速度和高度的灵活性,可广泛应用于工业自动化领域的伺服控制系统中,适用范围广。图l本发明的结构框图2是FPGA内部模块的具体电路示意图3是伺服控制器流水化并行处理示意图4是运行在软核处理器上的程序流程图。具体实施例方式下面结合附图,对本发明作进一步说明。参见图1,基于FPGA的具有并行处理结构的高速伺服控制器包括FPGA1,两个A/D转换器3、4,D/A转换器5,晶振14、键盘模块15、显示模块16、FLASH存储器17、SDRAM存储器18和EEPROM存储器2,其中现场可编程逻辑门阵列1包括两个A/D转换控制模块6、7,D/A转换控制模块8,用于控制计算的核心控制模块9、时钟模块10、两个双口RAMll、12和软核处理器13,两个A/D转换控制模块6、7分别与两个A/D转换器3、4相连,两个A/D转换控制模块6、7的数据输出端分别与核心控制模块9的数据输入端相连,核心控制模块9的数据输出端与D/A转换控制模块8的数据输入端相连,D/A转换控制模块8的输出端与D/A转换器5的输入端相连,核心控制模块9的双口RAM控制端口分别与第一双口RAM11和第二双口RAM12的一端相连,第一双口RAM11和第二双口RAM12的另一端分别与软核处理器13的双口RAM控制端口相连,键盘模块15、显示模块16、FLASH存储器17、SDRAM存储器18和EEPROM存储器2分别与软核处理器13相应的控制端口相连,晶振14的输出端分两路,一路与软核处理器13的时钟输入端相连,另一路与时钟模块10的输入端相连,时钟模块10的四个时钟输出端分别与两个A/D转换控制模块6、7,D/A转换控制模块8和核心控制模块9的时钟输入端相连。本发明中所说的SDRAM存储器18可以选择HY57V641620芯片;FLASH存储器17可以选择AM29LV320D芯片;两个A/D转换器3、4均可以选择AD9220芯片;D/A转换器5可以选择AD420芯片;显示模块16可以选择SED1335液晶模块;EEPROM存储器2可采用FM24CL64芯片。图2是FPGA内部模块的具体电路示意软核处理器13为可重配置32位处理器NIOSK,现按如下方式配置一个32位处理器核心、一个flash控制器、一个SDRAM控制器、一个I2C控制器、一个LCD控制器、一个键盘控制器和一个双口RAM控制器。图例中,引脚wr—n_flash、readn、cs—n—flash、data[15..0]、address[21.,l]为flash控制器的引出端口;弓|脚addr一sdram[ll..O]、ba—sdram[l..O]、cas—n一sdram、eke—sdram、cs—n—sdram、dq_sdram[15.0]、dqm_sdram[1.0]、ras—n_sdram、we—n_sdram为SDRAM控制器的引出端口;弓l脚12C[L.0]为I2C控制器的引出端口;弓l脚LCD—DATA[7..0]、LCD—CS、LCD_A0、LCD_RST、LCD_WR、LCD_RD为LCD控制器的引出端口;引脚KEY[8.,0]为键盘控制器的引出端口;引脚RAM1一DATA[15"0]、RAMI—戰CLK、RAM1一WR、RAM2—DATA[15"0]、RAM_ADDR[7..0]、RAM2—RDCLK为双口RAM控制器的引出端口;elk是时钟输入端口。两个双口RAM模块ll、12为可重构RAM存储器,引脚^&(1(1^88[7..0]为读地址端,引脚^15..0]为读数据端、引脚^01(^为读时钟端、引脚^^(11^3[7..0]为写地址端、引脚(1&1&[15..0]为写数据端、引脚wrclock为写时钟端、引脚wren为写使能端。核心控制模块9,两个A/D转换控制模块6、7,D/A转换控制模块8和时钟控制模块10由硬件描述语言VHDL(《用VHDL设计电子线路》,2000年出版,清华大学出版社)实现,核心控制模块9负责执行控制计算,从两个A/D转换控制模块6、7分别获得被控对象的状态信息和设定值信息,读第一双口RAM11获得控制器参数信息,根据获得的信息进行控制计算,将控制结果传递给D/A转换控制模块8,并将核心控制模块的状态信息写入第二双口RAM12。核心控制模块9的端口配置如下引脚RAM1—data[15..0]、RAM2—data[15..0]、RAMl_addr[7..0]、RAM2—addr[7..0]、RAMI—clk和RAM2—elk为双口RAM控制接口,用于读写两个双口RAMll、12;引脚feedbad^data[ll.,0]和s邻oint—data[ll..O]为数据输入端口,分别用于从第一A/D转换控制模块6和第二A/D转换控制模块7获取数据;弓|脚0)他01_£1由[15..0]为数据输出端口,用于为D/A转换控制模块8提供数据。两个A/D转换控制模块6、7分别控制两个A/D转换器3、4进行A/D转换并获得转换结果。两个A/D转换控制模块6、7的端口配置如下引脚clk为时钟输入端口;引脚ad一clkout和datain[ll..O]为A/D转换控制接口,用于控制两个A/D转换器3、4;弓l脚dataout[ll..O]为数据输出端口,用于为核心控制模块提供A/D转换结果。D/A转换控制模块8为D/A转换器5提供待D/A转换的数据并控制其进行转换。D/A转换控制模块8的端口配置如下引脚clk为时钟输入端口;引脚血^11[15..0]为数据输入端口,用于从核心控制模块获取待D/A转换的数据;引脚da一clk、da_data、da—cs为D/A转换控制接口,用于控制D/A转换器。时钟控制模块10为两个A/D转换控制模块6、7及核心控制模块9和D/A转换控制模块8提供各自的时钟。时钟模块10的端口配置如下引脚clk时钟输入端口,用于从晶振获得基本时钟信号;引脚clk一ad、elk—da、clk—control均为时钟输出端口,用于为两个A/D转换控制模块6、7及D/A转换控制模块8和核心控制模块9提供时钟信号。第一、第二A/D转换控制模块6、7的A/D转换控制接口ad—dkout、datain[l1..O]分别与两个A/D转换器3、4所采用的AD9220芯片的时钟输入端clk和转换结果输出端BIT12BIT1相连,以控制A/D转换并获取转换结果。核心控制模块9的双口RAM控制接口中的RAMl_data[15..0]、RAMl_addr[7..0;^t]RAMl—clk分别与第一双口RAMll的读数据端q[15..0]、读地址端rdaddress[7.,0]和读时钟端rdclock相连;核心控制模块9的双口RAM控制接口中的RAM2—data[15..0]、RAM2—addr[7..0]、RAM2—clk和RAM2_en分别与第二双口RAM12的写数据端data[15..0]、写地址端wraddress[7..0]、写时钟端wrclock和写使能端wren相连;核心控制模块9的被控对象状态数据输入端feedback一data[l1..O]与第一A/D转换控制模块6的数据输出端dataout[l1..O]相连;核心控制模块9的设定值数据输入端3邻01加_(1^[11..0]与第二A/D转换控制模块7的数据输出端dataout[ll..O]相连;核心控制模块9的控制量输出端control—data[15.,0]与D/A转换控制模块8的数据输入端€^^11[15..0]相连。D/A转换控制模块8的D/A转换控制接口da—clk、da—data、da_cs分别与D/A转换器5所采用的AD420芯片的时钟信号输入端CLK、待转换数据输入端DATA和转换使能信号输入端LATCH相连,从而为D/A转换器5提供待D/A转换数据并控制其进行转换。软核处理器13通过集成在其内部的flash控制器、SDRAM控制器、I2C控制器、LCD控制器和键盘控制器控制FPGA外部的flash存储器17、SDRAM存储器18、EEPROM存储器2、显示模块15和键盘模块16;软核处理器13通过集成在其内部的双口RAM控制器读取第一双口RAMll中的数据,向第二双口RAM12写入数据,以实现对核心控制模块的监控。软核处理器13的时钟输入端口clk与晶振14相连;软核处理器13中的flash控制器端口wr—n—flash、readn、cs—n—flash、data[15..0]、address[21,.l]分别与flash存储器17所采用的AM29LV320D芯片的WE、OE、CE、DQ15DQ0、A20A0端口对应相连;软核处理器13中的SDRAM控制器端口addr_sdram[11..0〗、ba一sdram[l..O]、cas—n_sdram、eke—sdram、cs_n—sdram、dq_sdram[15..0]、dqm一sdram[l..O]、ras—n一sdram、we_n—sdram分别与SDRAM存储器18所采用的HY57V641620芯片的A11A0、BA1BA0、CAS、CKE、CS、DQ15DQ0、DQM1DQM0、RAS、WE端口对应相连;软核处理器13中的I2C控制器端口12C[L.0]与EEPROM存储器2所采用的FM24CL64芯片的DATA、CLK端口相连;软核处理器13中的LCD控制器端口LCD—DATA[7.,0]、LCD一CS、LCD一A0、LCD_RST、LCD_WR、LCD_RD分别与显示模块16所采用的SED1335模块的D7D0、CS、A0、RST、WR、RD对应相连;软核处理器13中的键盘控制器端口KEY[8.,0]与键盘模块15的数据端相连;软核处理器13的双口RAM控制器端口中的RAMI—DATA[15..0]、RAM—ADDR[7..0]、RAMI—WRCLK、RAMI—WR分别与第一双口RAMll的data[15..0]、wraddress[7..0]、wrclock、wren端口对应相连;软核处理器13的双口RAM控制器端口中的RAM2—DATA[15..0]、RAM—ADDR[7..0]、RAM2—RDCLK分别与第二双口RAM12的q[15..0]、rdaddress[7..0]、rdclock端口对应相连;软核处理器13与核心控制模块9通过连接在它们之间的两个双口RAM模块11、12进行交互。软核处理器13将控制器参数按照一定格式写入第一双口RAMll,用于设定控制器参数;核心控制模块9从第一双口RAM11读取控制参数进行控制计算,并将包括控制计算结果在内的核心控制模块9的状态信息按照一定格式写入第二双口RAM12;软核处理器13再从第二双口RAM12读取数据,以获得核心控制模块状态信息。第一双口RAM中的数据格式如表1所示。config是控制器配置信息。config的具体说明如表2所示,其中en为数据有效信号,en为0表示第一双口RAM中的信息正在被修改,即数据无效,en为1表示RAMI中的信息没有在修改中,即数据有效;m/a为手操/自动信号,m/a为0表示控制器输出由人工控制,即输出手操信号,m/a为1表示控制器输出自动控制信号;in/out为内/外给定信号,in/out为0表示设定信号来自控制器内部,即内给定,in/out为1表示设定信号来自控制器外部,即外给定。value是手操信号,只有当config中的m/a为0时value才有效。set-point是内给定信号,只有当config中的m/a为1且in/out为0时set-point才有效。ql、q2、q3分别为PID控制的参数,只有当config中的m/a为1时ql、q2、q3才有效。第二双口RAM中的数据格式如表3所示,en是数据有效标志,en为0表示第二双口RAM中的信息正在被修改,即数据无效,en为1表示第二双口RAM中的信息没有在修改中,即数据有效。u为核心控制模块计算出的控制输出。position为被控对象状态。alarm为报警信号,alarm为0表示核心控制模块工作正常,alarm为1表示被控对象状态信号丢失,alarm为2表示设定值非法。<table>tableseeoriginaldocumentpage8</column></row><table>表2<table>tableseeoriginaldocumentpage9</column></row><table>图3是本发明流水化并行处理示意图。其中,T为控制周期。当两个A/D转换控制模块6、7控制两个A/D转换器3、4进行第N周期的外部信号采样时,核心控制模块9使用第N-l周期的被控对象状态信息和设定值信息进行控制计算,而D/A转换控制模块8控制D/A转换器5输出第N-2周期的控制量。A/D转换、控制计算和D/A转换同时进行,从而实现了流水化并行处理。图4是运行在软核处理器13上的程序流程图。该程序需要完成两部分任务人机交互、核心控制模块监控。程序包括下列步骤a.系统初始化;b.读取第二双口RAM12中的数据;c.根据第二双口RAM12中的数据刷新显示模块;d.读取键盘模块15的输入,如果没有键盘输入,那么直接返回步骤b,如果有键盘输入,输入的命令分两种——修改控制器参数和保存控制器参数,如果命令为修改控制器参数,进入步骤e,如果命令为保存控制器参数,进入步骤f。e.根据命令修改第一双口RAM11中的相应内容;f.将当前的控制器参数存入EEPROM存储器2;g.返回步骤b。权利要求1.基于FPGA的具有并行处理结构的高速伺服控制器,其特征是包括现场可编程逻辑门阵列(1),两个A/D转换器(3)、(4),D/A转换器(5),晶振(14)、键盘模块(15)、显示模块(16)、FLASH存储器(17)、SDRAM存储器(18)和EEPROM存储器(2),其中现场可编程逻辑门阵列(1)集成有两个A/D转换控制模块(6)、(7),D/A转换控制模块(8),用于控制计算的核心控制模块(9),时钟模块(10),两个双口RAM(11)、(12)和软核处理器(13),两个A/D转换控制模块(6)、(7)分别与两个A/D转换器(3)、(4)相连,两个A/D转换控制模块(6)、(7)的数据输出端分别与核心控制模块(9)的数据输入端相连,核心控制模块(9)的数据输出端与D/A转换控制模块(8)的数据输入端相连,D/A转换控制模块(8)的输出端与D/A转换器(5)的输入端相连,核心控制模块(9)的双口RAM控制端口分别与第一双口RAM(11)和第二双口RAM(12)的一端相连,第一双口RAM(11)和第二双口RAM(12)的另一端分别与软核处理器(13)的双口RAM控制端口相连,键盘模块(15)、显示模块(16)、FLASH存储器(17)、SDRAM存储器(18)和EEPROM存储器(2)分别与软核处理器(13)相应的控制端口相连,晶振(14)的输出端分两路,一路与软核处理器(13)的时钟输入端相连,另一路与时钟模块(10)的时钟输入端相连,时钟模块(10)的四个时钟输出端分别与第一、第二A/D转换控制模块(6)、(7),D/A转换控制模块(8)和核心控制模块(9)的时钟输入端相连。2.根据权利要求1所述的基于FPGA的具有并行处理结构的高速伺服控制器,其特征在于SDRAM存储器(18)为HY57V641620芯片。3.根据权利要求1所述的基于FPGA的具有并行处理结构的高速伺服控制器,其特征在于FLASH存储器(17)为AM29LV320D芯片。4.根据权利要求1所述的基于FPGA的具有并行处理结构的高速伺服控制器,其特征在于EEPROM存储器(2)为FM24CL64芯片。5.根据权利要求1所述的基于FPGA的具有并行处理结构的高速伺服控制器,其特征在于两个A/D转换器(3)、(4)均为AD9220芯片。6.根据权利要求1所述的基于FPGA的具有并行处理结构的高速伺服控制器,其特征在于D/A转换器(5)为AD420芯片。7.根据权利要求1所述的基于FPGA的具有并行处理结构的高速伺服控制器,其特征在于显示模块(16)为SED1335液晶模块。8.根据权利要求1所述的基于FPGA的具有并行处理结构的高速伺服控制器,其特征在于软核处理器(13)为可重配置32位处理器NIOSII。全文摘要本发明公开的基于FPGA的具有并行处理结构的高速伺服控制器包括现场可编程逻辑门阵列(FPGA),两个A/D转换器,D/A转换器,晶振、键盘模块、显示模块、FLASH存储器、SDRAM存储器和EEPROM存储器,其中现场可编程逻辑门阵列包括两个A/D转换控制模块,D/A转换控制模块,用于控制计算的核心控制模块、时钟模块、两个双口RAM和软核处理器。该伺服控制器可以实现PID控制计算的硬件化以及A/D转换、控制计算和D/A转换的流水线化并行处理,显著缩短了控制周期;实现软核处理器对核心控制模块的监控和人机交互,具有极快的运算速度和高度的灵活性,可广泛应用于工业自动化领域的伺服控制系统中,适用范围广。文档编号G05B19/414GK101251753SQ20081006094公开日2008年8月27日申请日期2008年4月8日优先权日2008年4月8日发明者刘希琳,宋执环,富一林,杨春节,沈新荣申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1