著录项信息
专利名称 | 基于片上可编程系统的数控系统精插补器及其控制方法 |
申请号 | CN200810229319.6 | 申请日期 | 2008-12-05 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2010-06-23 | 公开/公告号 | CN101751009A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G05B19/41 | IPC分类号 | G;0;5;B;1;9;/;4;1查看分类表>
|
申请人 | 中国科学院沈阳计算技术研究所有限公司;沈阳高精数控技术有限公司 | 申请人地址 | 辽宁省沈阳市浑南新区南屏东路16号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国科学院沈阳计算技术研究所有限公司 | 当前权利人 | 中国科学院沈阳计算技术研究所有限公司 |
发明人 | 陶耀东;卢小张;刘伟;何方 |
代理机构 | 沈阳科苑专利商标代理有限公司 | 代理人 | 许宗富;周秀梅 |
摘要
本发明涉及一种基于片上可编程系统的数控系统精插补器及其控制方法,精插补器基于FPGA结构,处理器与精插补模块、三态桥、双口RAM、DMA模块、定时器模块以及片内ROM相连;精插补模块,接收处理器的控制信号和在处理器控制下由双口RAM传送的粗插补命令,输出精插补脉冲信号;三态桥将处理器与FPGA外部的FLASH及SRAM相连;双口RAM通过PCI接口模块与上位机微处理器相连;定时器模块,向精插补模块输出其生成脉冲信号所需的基础频率;DMA模块将FLASH中存储的精插补控制程序拷贝到处理器内存中;内部交换总线模块,为各模块提供内部连接总线。本发明采用基于FPGA的片上系统的设计,提高了精插补器的保密性和集成性,提高了精插补器处理的稳定性和速度,降低了上位机的数据处理量。
1.一种基于片上可编程系统的数控系统精插补器,其特征在于:基于FPGA结构,包括:
处理器,通过内部交换总线模块与精插补模块、三态桥、双口RAM、DMA模块、定时器模块以及片内ROM相连,运行精插补控制程序及双口RAM驱动程序;
精插补模块,接收处理器的控制信号和在处理器控制下由双口RAM传送的粗插补命令,完成精插补计算,输出精插补脉冲信号;
三态桥,将处理器与FPGA外部的FLASH及SRAM相连;
双口RAM,通过PCI接口模块与上位机微处理器相连;
定时器模块,在处理器的控制下,向精插补模块输出其生成脉冲信号所需的基础频率;
DMA模块,接收处理器的控制命令,将FLASH中存储的精插补控制程序拷贝到处理器内存中;
内部交换总线模块,为处理器模块、双口RAM模块、DMA模块、精插补模块、三态桥模块、定时器模块提供内部连接总线;
所述精插补模块包括:
精插补译码模块,在处理器的控制下对上位机发出的地址信号、片选信号和控制命令信号进行译码,选通数控系统中相应伺服轴的DDA积分器电路进行精插补运算;
精插补时序模块,接收定时器模块的时钟脉冲,经分频后产生DDA积分电路所需的累加时序脉冲和插补中断信号;
DDA积分电路,具有X、Y、Z、U 四组,每组对双口RAM中的粗插补数据进行精插补运算,产生均匀脉冲,输出至脉冲输出选择器,控制数控系统中相应的伺服轴;
所述精插补时序模块包括:
分频计数器,对定时器模块发出的时钟信号进行分频,输出控制精插补运算所需要的时钟节拍信号;
分频节拍时序发生器,在处理器CON信号的控制下将时钟节拍信号进行处理,产生DDA积分器的累加时序脉冲;
中断信号发生器,用于产生一个中断请求信号,使处理器进入中断服务子程序,进入下一个插补周期;
所述DDA积分电路包括:
进给增量低位寄存器,对来自双口RAM的粗插补数据进行精插补运算,产生被积分增量寄存器所需的进给增量值的低位;
进给增量高位寄存器,对来自双口RAM的粗插补数据进行精插补运算,产生被积分增量寄存器所需的进给增量值的高位;
被积分增量寄存器,对进给增量低位寄存器和进给增量高位寄存器的低位值及高位值进行整合,产生完整的进给增量值送至DDA积分器;
DDA积分器,对完整的进给增量值进行积分运算,产生溢出脉冲至脉冲输出选择器;
脉冲输出选择器,接收处理器的选择信号,对数控系统各轴的伺服控制驱动电机进行选择控制。
2.一种按权利要求1所述基于片上可编程系统的数控系统精插补器的控制方法,其特征在于包括以下步骤:
开始,装置初始化,启动精插补控制程序;
判断通讯是否请求中断?
如是,则从上位机通过PCI接口读取粗插补数据寄存至双口RAM中;
通过缓冲标志判断双口RAM中是否存有粗插补数据;
如存有粗插补数据,则进入判断是否发生时序中断;
如发生时序中断,则取粗插补数据至精插补模块进行精插补计算得到精插补数据;
实时输出精插补数据至数控系统各轴的伺服控制驱动电机;
转至通过缓冲标志判断双口RAM中是否存有数据步骤,循环进行;
取粗插补数据至精插补模块进行精插补计算得到精插补数据;即取双口RAM中的数据通过Avalon内部交换总线模块送到精插补模块中,进行精插补运算,具体为:对来自双口RAM的粗插补数据分解产生进给增量值的低位值及高位值;对低位值及高位值进行高位、低位整合,产生完整的进给增量值;对完整的进给增量值进行积分运算,在累加时序脉冲控制下,当进给增量值累加到一设定值时产生溢出脉冲;当一个插补周期完成时,精插补模块会发出一个中断信号,告知系统控制主程序取下一个数据送精插补模块运算;
如果不发生时序中断,则转至判断是否通信中断步骤;
如果双口RAM中不存有粗插补数据,则转至判断是否通信中断步骤;
如果不发生通信中断,则转至通过缓冲标志判断双口RAM中是否存有数据步骤。
3.按权利要求2所述的基于片上可编程系统的数控系统精插补器的控制方法,其特征在于所述精插补计算具体如下:
对来自双口RAM的粗插补数据分解产生进给增量值的低位值及高位值;
对低位值及高位值进行高位、低位整合,产生完整的进给增量值;
对完整的进给增量值进行积分运算,在累加时序脉冲控制下,当进给增量值累加到一设定值时产生溢出脉冲。
基于片上可编程系统的数控系统精插补器及其控制方法\n技术领域\n[0001] 本发明涉及计算机数控系统插补控制装置,具体的说是基于片上可编程系统的数控系统精插补器及其控制方法。\n背景技术\n[0002] 插补模块是整个数控系统中及其重要的的功能模块之一,其运算速度直接影响系统的速度、精度和加工能力等。在数控闭环控制系统中插补算法采用的是数据采样插补算法,即将整个插补过程分为粗插补和精插补两个阶段,而粗插补与精插补之间的通信速率和精插补计算的速度影响着整个数控系统的速度和加工能力。\n[0003] 目前,业内大量的高速精插补器是采用微处理器或者微控制器进行控制和通信的,采用微处理器或者微控制器的硬件开发平台并不是完全针对插补运算的应用情况的,因此在实际应用当中经常出现硬件资源浪费或者资源不够的问题,并且往往需要外接FPGA(现场可编程逻辑门阵列)芯片来进行精插补运算,存在接口速率的瓶颈问题。而采用SOPC(可编程片上系统)技术能解决这个问题。\n[0004] 近年来,随着半导体技术的飞速发展,传统的芯片设计方法正在进行一场变革,其标志就是系统级芯片(SOC)被业界广泛地接受,并成为研究与开发的热点。随着SOC技术应运而生的是SOPC技术。它结合了SOC与FPGA的优点,既是片上系统(SOC,System on a Chip),即由整个芯片完成整个系统的主要逻辑功能;又是可编程系统,具有灵活的设计方式,可裁剪、可扩充、可升级,并具备软硬件在系统中可编程的功能。SOPC的巨大吸引力来自于能够提供更好的性能以及更低的功耗,有效节省电路板空间并降低产品的总成本,因此电子工业正在向SOPC设计转移,使SOPC成为现代电子系统的最佳选择之一。但是目前基于FPGA的片上系统的设计应用于精插补器,不能合理的分配软件、硬件资源,接口速率存在瓶颈问题,保密性差,集成性不高,接口复杂,灵活性不强,不便于以后的升级。\n发明内容\n[0005] 针对现有技术中存在的精插补器多采用微处理器或者微控制器,存在不能合理的分配软件、硬件资源,接口速率存在瓶颈等问题,本发明要解决的技术问题是提供一种可合理分配软件、硬件资源、解决瓶颈问题的基于片上可编程系统的数控系统精插补器及其控制方法。\n[0006] 为解决上述技术问题,本发明采用的技术方案是:\n[0007] 本发明基于片上可编程系统的数控系统精插补器,是基于FPGA结构,包括:处理器,通过内部交换总线模块与精插补模块、三态桥、双口RAM、DMA模块、定时器模块以及片内ROM相连,运行精插补控制程序及双口RAM驱动程序;精插补模块,接收处理器的控制信号和在处理器控制下由双口RAM传送的粗插补命令,完成精插补计算,输出精插补脉冲信号;三态桥,将处理器与FPGA外部的FLASH及SRAM相连;双口RAM,通过PCI接口模块与上位机微处理器相连;定时器模块,在处理器的控制下,向精插补模块输出其生成脉冲信号所需的基础频率;DMA模块,接收处理器的控制命令,将FLASH中存储的精插补控制程序拷贝到处理器内存中;内部交换总线模块,为处理器模块、双口RAM模块、DMA模块、精插补模块、三态桥模块、定时器模块提供内部连接总线。\n[0008] 所述精插补模块包括:\n[0009] 精插补译码模块,在处理器的控制下对上位机发出的地址信号、片选信号和控制命令信号进行译码,选通数控系统中相应伺服轴的DDA积分器电路进行精插补运算;\n[0010] 精插补时序模块,接收定时器模块的时钟脉冲,经分频后产生DDA积分电路所需的累加时序脉冲和插补中断信号;\n[0011] DDA积分电路,具有X、Y、Z、U四组,每组对双口RAM中的粗插补数据进行精插补运算,产生均匀脉冲,输出至脉冲输出选择器,控制数控系统中相应的伺服轴。\n[0012] 所述精插补时序模块包括:\n[0013] 分频计数器,对定时器模块发出的时钟信号进行分频,输出控制精插补运算所需要的时钟节拍信号;\n[0014] 分频节拍时序发生器,在处理器CON信号的控制下将时钟节拍信号进行处理,产生DDA积分器的累加时序脉冲;\n[0015] 中断信号发生器,用于产生一个中断请求信号,使处理器进入中断服务子程序,进入下一个插补周期。\n[0016] 所述DDA积分电路包括:\n[0017] 进给增量低位寄存器,对来自双口RAM的粗插补数据进行精插补运算,产生被积分增量寄存器所需的进给增量值的低位;\n[0018] 进给增量高位寄存器,对来自双口RAM的粗插补数据进行精插补运算,产生被积分增量寄存器所需的进给增量值的高位;\n[0019] 被积分增量寄存器,对进给增量低位寄存器和进给增量高位寄存器的低位值及高位值进行整合,产生完整的进给增量值送至DDA积分器;\n[0020] DDA积分器,对完整的进给增量值进行积分运算,产生溢出脉冲至脉冲输出选择器;\n[0021] 脉冲输出选择器,接收处理器的选择信号,对数控系统各轴的伺服控制驱动电机进行选择控制。\n[0022] 本发明基于片上可编程系统的数控系统精插补器的控制方法,其特征在于包括以下步骤:\n[0023] 开始,装置初始化,启动精插补控制程序;\n[0024] 判断通讯是否请求中断?\n[0025] 如是,则从上位机通过PCI接口读取粗插补数据寄存至双口RAM中;\n[0026] 通过缓冲标志判断双口RAM中是否存有粗插补数据;\n[0027] 如存有粗插补数据,则进入判断是否发生时序中断;\n[0028] 如发生时序中断,则取粗插补数据至精插补模块进行精插补计算得到精插补数据;\n[0029] 实时输出精插补数据至数控系统各轴的伺服控制驱动电机;\n[0030] 转至通过缓冲标志判断双口RAM中是否存有数据步骤,循环进行。\n[0031] 所述精插补计算具体如下:\n[0032] 对来自双口RAM的粗插补数据分解产生进给增量值的低位值及高位值;\n[0033] 对低位值及高位值进行高位、低位整合,产生完整的进给增量值;\n[0034] 对完整的进给增量值进行积分运算,在累加时序脉冲控制下,当进给增量值累加到一设定值时产生溢出脉冲。\n[0035] 如果不发生时序中断,则转至判断是否通信中断步骤。\n[0036] 如果双口RAM中不存有粗插补数据,则转至判断是否通信中断步骤。\n[0037] 如果不发生通信中断,则转至通过缓冲标志判断双口RAM中是否存有数据步骤。\n[0038] 本发明具有以下有益效果及优点:\n[0039] 1.本发明采用基于FPGA的片上系统的设计,提高了精插补器的保密性和集成性。\n[0040] 2.本发明采用基于PCI总线通信,提高了精插补器处理的稳定性和速度;采用Altera公司生产的Cyclone系列FPGA,降低了成本,也便于以后的升级。\n[0041] 3.本发明采用双口RAM缓存数据,解决了接口速率瓶颈问题,提高了精插补处理速度。\n[0042] 4.本发明采用协处理器的工作方式,降低了上位机的数据处理量。\n附图说明\n[0043] 图1为本发明精插补器的结构框图;\n[0044] 图2为本发明精插补器中精插补模块内部结构框图;\n[0045] 图3A为精插补模块中精插补译码器结构框图;\n[0046] 图3B为精插补模块中精插补时序模块结构框图;\n[0047] 图3C为精插补模块中DDA积分电路结构框图;\n[0048] 图4为本发明方法中精插补控制程序流程图。\n具体实施方式\n[0049] 本发明精插补器应用于数控系统中,其将接收到上位机应用进程发送来的粗插补数据与控制信息提供给精插补模块,经精插补模块运算后得到的精插补数据发送给数控系统的各伺服控制驱动电机。本实施例中包括X轴、Y轴、Z轴以及U轴四维运动,本发明精插补器用于控制上述四维运动。\n[0050] 如图1所示,本发明精插补器基于FPGA结构,包括:处理器、精插补模块、三态桥、双口RAM、定时器模块、DMA模块以及内部交换总线模块,其中处理器通过内部交换总线模块与精插补模块、三态桥、双口RAM、DMA模块、定时器模块以及片内ROM相连,运行精插补控制程序及双口RAM驱动程序。本实施例中,处理器是上位机的协处理器,采用Altera公司提供的SOPC Builder中定制的NIOS II软核处理器,实现与上位机的信息协调处理,负责对上位机下传的粗插补数据和控制信息进行控制处理,将其放入双口RAM中进行缓存,与精插补运算模块之间的控制与协调处理,实现高速通讯;片内ROM模块主要是用来存储精插补控制程序与驱动程序;\n[0051] PCI接口模块用于与上位机进行通信,本实施例中是通过IP核pci_t32实现PCI接口的。Altera的PCI编译器提供了使用Altera器件实现PCI接口设计实现,包括4个\n32/64位、主/从模式PCI接口控制器兆核函数(即PCI接口IP)及相关测试平台,通过选择合适的芯片速度,可以满足运行在66MHz PCI时钟下的时序要求。\n[0052] 双口RAM模块利用Altera公司提供的宏来定制一个双口RAM,双口RAM提供了两个完全独立的端口,每个端口都有相对独立的地址、数据和控制信号,使用双口RAM可以方便快速地实现与上位机进行大量的数据交换,起到了缓存数据的作用。\n[0053] 三态桥模块,本实施例采用Avalon,其将处理器与FPGA外部的FLASH及SDRAM相互连接起来,用于存放系统的精插补控制程序与驱动程序。\n[0054] 如图2所示,精插补模块包括:精插补译码模块、精插补时序模块以及DDA积分电路,其中精插补译码模块在处理器的控制下对上位机发出的地址信号、片选信号和控制命令信号进行译码,选通数控系统中相应伺服轴的DDA积分器电路进行精插补运算;精插补译码模块根据来自上位机的地址信号WR3~WR10、片选信号CS和控制命令信号WR2、CON进行译码,产生数控系统中各个伺服运动控制轴DDA积分电路的选择信号XPL_sel、YPL_sel、ZPL_sel和UPL_sel,选择各个轴相应的DDA积分电路。精插补时序模块接收定时器模块的时钟脉冲,经分频后产生DDA积分电路所需的累加时序脉冲t0~t3和插补中断信号ST,累加时序脉冲t0~t3分别与各个伺服运动控制轴的DDA积分电路相连接,提供时序控制。\nDDA积分电路具有X、Y、Z、U四组,每组对双口RAM中的粗插补数据进行精插补运算,产生均匀脉冲XXP、YYP、ZZP和UUP,输出至脉冲输出选择器,控制数控系统中相应的伺服轴。\n[0055] 如图3A所示,精插补译码模块的功能是对上位机发出的地址信号WR3-WR10、片选信号CS和控制命令信号WR2、CON进行译码,从而选通相应轴的DDA积分器电路进行精插补运算。\n[0056] 如图3B所示,精插补时序模块,接收定时器模块的时钟脉冲,经分频后产生DDA积分电路所需的累加时序脉冲和插补中断信号。精插补时序模块包括:分频计数器,对定时器模块发出的时钟信号进行分频,输出控制精插补运算所需要的时钟节拍信号;分频节拍时序发生器,在处理器CON信号的控制下将时钟节拍信号进行处理,产生DDA积分器的累加时序脉冲;中断信号发生器,用于产生一个中断请求信号,使处理器进入中断服务子程序,进入下一个插补周期。定时器模块发出的基础脉冲频率CLK和来自处理器模块的RESET信号经过分频计数器后得到一组控制精插补运算所需要的时钟节拍信号,在处理器CON信号的控制下将其送入分频节拍时序发生器,产生DDA积分器的累加时序脉冲t0~t3,t0~t3的时序分别代表X轴、Y轴、Z轴和U轴的控制时序脉冲;精插补时序模块产生的节拍时钟信号作为DDA积分器的累加时钟,当DDA积分器累加到2048次后将增量值转换为相应个数的溢出脉冲信号,此溢出脉冲为精插补运算后得到的插补脉冲,并将其送给进给脉冲输出选择器进行实时输出。\n[0057] 如图3C所示,DDA积分电路,具有X、Y、Z、U四组,每组对双口RAM中的粗插补数据进行精插补运算,产生均匀脉冲,输出至脉冲输出选择器,控制数控系统中相应的伺服轴。\n本实施例中DDA积分器的位数为11位,用节拍信号t4作为中断信号发生计数器,当t4时钟信号达到2048个后,产生一个中断申请信号ST,使处理器进入中断服务子程序。DDA积分电路是对粗插补数据进行精插补运算,产生均匀脉冲的电路单元,处理器模块通过WR3和WR4写信号写入本次插补周期精插补运算所需要的进给增量值,由WR2启动信号将进给增量值寄存器中的寄存增量值送入到被积增量寄存器,同时将DDA积分器清零。\n[0058] 如图4所示,本发明方法通过运行精插补控制程序实现其对精插补器的控制,具体步骤如下:\n[0059] 开始,装置初始化,启动精插补控制程序。当精插补器接入到上位机后,NIOS II处理器初始化uC/OS操作系统、PCI接口、堆栈以及定时器等外围设备接口,并从外部存储器FLASH中获取精插补模块的驱动程序,驱动精插补模块,进入系统控制主程序;\n[0060] 判断通讯是否请求中断?即向上位机的应用进程发送准备接收信号,如果上位机的应用进程有粗插补数据发送,则产生通信中断信号1,进入中断服务子程序1,应用进程将粗插补数据通过PCI接口送到双口RAM中缓存;\n[0061] 如是,则从上位机通过PCI接口读取粗插补数据寄存至双口RAM中;\n[0062] 通过缓冲标志判断双口RAM中是否存有数据;当双口RAM中存在数据信息时,设置缓存标志位为1,表示存有粗插补数据;\n[0063] 如有数据,则进入中断;即不断地检测缓存标志为是否为1,如果为1,则产生一个时序中断信号2,进入中断服务子程序2;\n[0064] 取粗插补数据至精插补模块进行精插补计算得到精插补数据;即取双口RAM中的数据通过Avalon内部交换总线模块送到精插补模块中,进行精插补运算,具体为:对来自双口RAM的粗插补数据分解产生进给增量值的低位值及高位值;对低位值及高位值进行高位、低位整合(高、低位合并),产生完整的进给增量值;对完整的进给增量值进行积分运算,在累加时序脉冲控制下,当进给增量值累加到一设定值时产生溢出脉冲。当一个插补周期完成时,精插补模块会发出一个中断信号3,告知系统控制主程序取下一个数据送精插补模块运算;\n[0065] 实时输出精插补数据至数控系统各轴的伺服控制驱动电机;\n[0066] 转至通过缓冲标志判断双口RAM中是否存有粗插补数据步骤,循环进行。\n[0067] 如果不发生时序中断,则转至判断是否通信中断步骤,即如果缓存标志为0时,系统控制主程序则阻塞掉数据精插补运算,产生通信中断信号1,告知上位机的应用进程发送粗插补数据和控制信息。\n[0068] 如果双口RAM中不存有粗插补数据,则转至判断是否通信中断步骤。
法律信息
- 2015-08-26
专利权的转移
登记生效日: 2015.08.06
专利权人由中国科学院沈阳计算技术研究所有限公司变更为中国科学院沈阳计算技术研究所有限公司
地址由110171 辽宁省沈阳市浑南新区南屏东路16号变更为110171 辽宁省沈阳市浑南新区南屏东路16号
专利权人由沈阳高精数控技术有限公司变更为空
- 2011-11-09
- 2010-08-18
实质审查的生效
IPC(主分类): G05B 19/41
专利申请号: 200810229319.6
申请日: 2008.12.05
- 2010-06-23
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
2008-01-04
| | |
2
| | 暂无 |
2003-01-09
| | |
3
| | 暂无 |
2008-12-05
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2011-05-19 | 2011-05-19 | | |