首页> 中国专利> 基于FPGA的具有并行处理结构的高速伺服控制器

基于FPGA的具有并行处理结构的高速伺服控制器

摘要

本发明公开的基于FPGA的具有并行处理结构的高速伺服控制器包括现场可编程逻辑门阵列(FPGA),两个A/D转换器,D/A转换器,晶振、键盘模块、显示模块、FLASH存储器、SDRAM存储器和EEPROM存储器,其中现场可编程逻辑门阵列包括两个A/D转换控制模块,D/A转换控制模块,用于控制计算的核心控制模块、时钟模块、两个双口RAM和软核处理器。该伺服控制器可以实现PID控制计算的硬件化以及A/D转换、控制计算和D/A转换的流水线化并行处理,显著缩短了控制周期;实现软核处理器对核心控制模块的监控和人机交互,具有极快的运算速度和高度的灵活性,可广泛应用于工业自动化领域的伺服控制系统中,适用范围广。

著录项

  • 公开/公告号CN101251753A

    专利类型发明专利

  • 公开/公告日2008-08-27

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200810060943.8

  • 申请日2008-04-08

  • 分类号G05B19/414(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人韩介梅

  • 地址 310027 浙江省杭州市浙大路38号

  • 入库时间 2023-12-17 20:41:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-06-27

    未缴年费专利权终止 IPC(主分类):G05B19/414 授权公告日:20100224 终止日期:20110408 申请日:20080408

    专利权的终止

  • 2010-02-24

    授权

    授权

  • 2008-10-22

    实质审查的生效

    实质审查的生效

  • 2008-08-27

    公开

    公开

说明书

技术领域

本发明涉及一种伺服控制器,特别是指一种基于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转换的流水线化并行处理,显著缩短了控制周期;实现了软核处理器对核心控制模块的监控和人机交互。本发明的伺服控制器具有极快的运算速度和高度的灵活性,可广泛应用于工业自动化领域的伺服控制系统中,适用范围广。

附图说明

图1本发明的结构框图;

图2是FPGA内部模块的具体电路示意图;

图3是伺服控制器流水化并行处理示意图;

图4是运行在软核处理器上的程序流程图。

具体实施方式

下面结合附图,对本发明作进一步说明。

参见图1,基于FPGA的具有并行处理结构的高速伺服控制器包括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、两个双口RAM11、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位处理器NIOS II,现按如下方式配置:一个32位处理器核心、一个flash控制器、一个SDRAM控制器、一个I2C控制器、一个LCD控制器、一个键盘控制器和一个双口RAM控制器。图例中,引脚wr_n_flash、readn、cs_n_flash、data[15..0]、address[21..1]为flash控制器的引出端口;引脚addr_sdram[11..0]、ba_sdram[1..0]、cas_n_sdram、cke_sdram、cs_n_sdram、dq_sdram[15..0]、dqm_sdram[1..0]、ras_n_sdram、we_n_sdram为SDRAM控制器的引出端口;引脚I2C[1..0]为I2C控制器的引出端口;引脚LCD_DATA[7..0]、LCD_CS、LCD_A0、LCD_RST、LCD_WR、LCD_RD为LCD控制器的引出端口;引脚KEY[8..0]为键盘控制器的引出端口;引脚RAM1_DATA[15..0]、RAM1_WRCLK、RAM1_WR、RAM2_DATA[15..0]、RAM_ADDR[7..0]、RAM2_RDCLK为双口RAM控制器的引出端口;clk是时钟输入端口。

两个双口RAM模块11、12为可重构RAM存储器,引脚rdaddress[7..0]为读地址端,引脚q[15..0]为读数据端、引脚rdclock为读时钟端、引脚wraddress[7..0]为写地址端、引脚data[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]、RAM1_addr[7..0]、RAM2_addr[7..0]、RAM1_clk和RAM2_clk为双口RAM控制接口,用于读写两个双口RAM11、12;引脚feedback_data[11..0]和setpoint_data[11..0]为数据输入端口,分别用于从第一A/D转换控制模块6和第二A/D转换控制模块7获取数据;引脚control_data[15..0]为数据输出端口,用于为D/A转换控制模块8提供数据。

两个A/D转换控制模块6、7分别控制两个A/D转换器3、4进行A/D转换并获得转换结果。两个A/D转换控制模块6、7的端口配置如下:引脚clk为时钟输入端口;引脚ad_clkout和datain[11..0]为A/D转换控制接口,用于控制两个A/D转换器3、4;引脚dataout[11..0]为数据输出端口,用于为核心控制模块提供A/D转换结果。

D/A转换控制模块8为D/A转换器5提供待D/A转换的数据并控制其进行转换。D/A转换控制模块8的端口配置如下:引脚clk为时钟输入端口;引脚datain[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、clk_da、clk_control均为时钟输出端口,用于为两个A/D转换控制模块6、7及D/A转换控制模块8和核心控制模块9提供时钟信号。

第一、第二A/D转换控制模块6、7的A/D转换控制接口ad_clkout、datain[11..0]分别与两个A/D转换器3、4所采用的AD9220芯片的时钟输入端clk和转换结果输出端BIT12~BIT1相连,以控制A/D转换并获取转换结果。

核心控制模块9的双口RAM控制接口中的RAM1_data[15..0]、RAM1_addr[7..0]和RAM1_clk分别与第一双口RAM11的读数据端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[11..0]与第一A/D转换控制模块6的数据输出端dataout[11..0]相连;核心控制模块9的设定值数据输入端setpoint_data[11..0]与第二A/D转换控制模块7的数据输出端dataout[11..0]相连;核心控制模块9的控制量输出端control_data[15..0]与D/A转换控制模块8的数据输入端datain[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控制器读取第一双口RAM11中的数据,向第二双口RAM12写入数据,以实现对核心控制模块的监控。

软核处理器13的时钟输入端口clk与晶振14相连;软核处理器13中的flash控制器端口wr_n_flash、readn、cs_n_flash、data[15..0]、address[21..1]分别与flash存储器17所采用的AM29LV320D芯片的WE、OE、CE、DQ15~DQ0、A20~A0端口对应相连;软核处理器13中的SDRAM控制器端口addr_sdram[11..0]、basdram[1..0]、cas_n_sdram、cke_sdram、cs_n_sdram、dq_sdram[15..0]、dqm_sdram[1..0]、ras_n_sdram、we_n_sdram分别与SDRAM存储器18所采用的HY57V641620芯片的A11~A0、BA1~BA0、CAS、CKE、CS、DQ15~DQ0、DQM1~DQM0、RAS、WE端口对应相连;软核处理器13中的I2C控制器端口I2C[1..0]与EEPROM存储器2所采用的FM24CL64芯片的DATA、CLK端口相连;软核处理器13中的LCD控制器端口LCD_DATA[7..0]、LCD_CS、LCD_A0、LCD_RST、LCD_WR、LCD_RD分别与显示模块16所采用的SED1335模块的D7~D0、CS、A0、RST、WR、RD对应相连;软核处理器13中的键盘控制器端口KEY[8..0]与键盘模块15的数据端相连;软核处理器13的双口RAM控制器端口中的RAM1_DATA[15..0]、RAM_ADDR[7..0]、RAM1_WRCLK、RAM1_WR分别与第一双口RAM11的data[15..0]、wraddress[7..0]、wrclock、wren端口对应相连;软核处理器13的双口RAM控制器端口中的RAM2_DATA[15..0]、RAM_ADDR[7..0]、RAM2_RDCLK分别与第二双口RAM12的q[15..01、rdaddress[7..0]、rdclock端口对应相连;

软核处理器13与核心控制模块9通过连接在它们之间的两个双口RAM模块11、12进行交互。软核处理器13将控制器参数按照一定格式写入第一双口RAM11,用于设定控制器参数;核心控制模块9从第一双口RAM11读取控制参数进行控制计算,并将包括控制计算结果在内的核心控制模块9的状态信息按照一定格式写入第二双口RAM12;软核处理器13再从第二双口RAM12读取数据,以获得核心控制模块状态信息。第一双口RAM中的数据格式如表1所示。config是控制器配置信息。config的具体说明如表2所示,其中en为数据有效信号,en为0表示第一双口RAM中的信息正在被修改,即数据无效,en为1表示RAM1中的信息没有在修改中,即数据有效;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才有效。q1、q2、q3分别为PID控制的参数,只有当config中的m/a为1时q1、q2、q3才有效。第二双口RAM中的数据格式如表3所示,en是数据有效标志,en为0表示第二双口RAM中的信息正在被修改,即数据无效,en为1表示第二双口RAM中的信息没有在修改中,即数据有效。u为核心控制模块计算出的控制输出。position为被控对象状态。alarm为报警信号,alarm为0表示核心控制模块工作正常,alarm为1表示被控对象状态信号丢失,alarm为2表示设定值非法。

表1

  地址    名称    说明  0x00    config    控制器配置信息  0x04    value    手操信号  0x08    set-point    内给定的设定值  0x0c    q1    控制参数q1  0x10    q2    控制参数q2  0x14    q3    控制参数q3  0x18~0x1ff    保留    保留

表2

Bit31    Bit30 Bit29    Bit28~Bit0en    m/a in/out    保留

表3

   地址    名称    说明   0x00    en    数据有效标志   0x04    position    被控对象状态   0x08    u    控制量   0x0c    alarm    报警信号   0x0c~0x1ff    保留    保留

图3是本发明流水化并行处理示意图。其中,T为控制周期。当两个A/D转换控制模块6、7控制两个A/D转换器3、4进行第N周期的外部信号采样时,核心控制模块9使用第N-1周期的被控对象状态信息和设定值信息进行控制计算,而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。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号