基于SOPC的运动控制器设计

基于SOPC的运动控制器设计
基于SOPC的运动控制器设计

基于SOPC的运动控制器设计

殷苏民李占发张春树

(江苏大学机械工程学院江苏镇江 212013)

摘要:设计了一种新型的基于SOPC(system on a programmable chip)的运动控制器,该运动控制器以PC机为上位机,采用数字控制方式实现三坐标的运动控制和相关I/O接口控制功能。运动控制器采用串口进行上、下位机的通讯,实现高速率运行,较好的实现运动控制器的实时控制。用以FPGA开发的运动控制器简化了平台硬件结构。系统具有开放、使用方便、性能可靠且本身结构紧凑等特点,可以灵活的实现定制应用。

关键词:运动控制器;开放式系统;SOPC;FPGA

中图分类号:TP368.2 文献标识码:A

Design of Movement-control System Based on SOPC

Yin Sumin Li Zhanfa Zhang Chunshu

(College of Mechanic and Electronic Engineering,Jiangsu University,JS Zhenjiang 212013) Abstract:Design a new Motion Controller based on SOPC.This Motion Controller take PC as upper computer,and use digital control mode to carry out three coordinate motion and function of related I/O. It take SPI as the communication between upper computer and lowwer computer,run at high speed and perfectly carry out Motion Controller’s real-time control. Introduce FPGA which simplified the structure of motion controller hardware. The system has character of open structure、use conveniencly、cost lowly、credibility of performance、small structucture.So this Motion Controller can achieve at custom applicaton flexibly.

Key words:Motion Controller;Open architecture numerical control system;SOPC;FPGA

0 引言

为每一个元件提供了一个向导,利用该向导很容易地定制元件功能。例如Builder

Sopc

通过向导能够非常容易地在一个设计中加入Nios处理器,外设接口等。为了将微处理器核、外围设备、存储器和其它IP核相互连接起来,Sopc Builder能够自动生成片上总线和总线仲裁器等所需的逻辑。通过自动完成以前易于出错的工作,Sopc Builder可以节约几周甚至几个月的开发时间。Sopc Builder在一个工具中实现了嵌入式系统各个方面的开发,包括软件的设计和验证,为充分利用Sopc技术提高电子系统的性能和降低成本提供了强有力的支持。

基于PC的CNC方案是把PC和运动控制器结合使用,再加上一些外围设备,如伺服放大器、电源、编码器等,构成一个模块化的数控系统。运动控制器完成运动轨迹的插补运算及电机的位置和速度的实时控制,这样主机可以从繁重的运动控制中解脱出来,进行更高层次的管理和控制任务。可以说运动控制器是构成这种CNC系统的核心之一。本设计主要是以Altera FPGA(EP1S10780C6)及内含的Nois嵌入式软核芯处理器来设计以脉冲为输出的运动控制器(SOPC)。在SOPC内主要包括两个模块:第一个模块在Nios处理器内用软件实现,其功能包括控制芯片与计算机(PC)之间的通信程序、运动指令的译码与运动轨迹的计算;第二个模块在FPGA芯片内以硬件的方式实现,主要完成XYZ平台三个的交流伺服电机或步进电机的位置控制,包括控制器法则计算、编码器信号检测电路及脉冲信号输出,这三个电机的位置控制器全部由硬件数字电路实现。这两个模块分别用软、硬件来实现。

1 系统硬件结构

在系统硬件结构中,1片FPGA中包含了Nios处理器、SRAM控制器、Flash控制器、UART、编码器检测模块(QEP)、轨迹规划模块以及输入输出模块。这正体现了SOPC的资金项目:江苏省高校自然科学基金项目(05KJD460045)

优势,将很多资源集中在FPGA中,使得对系统的更改变得非常容易,只要在FPGA中添加不同的模块就可以了。运动控制系统组成原理如图1所示。

图1 运动控制器系统组成原理图

在Sopc Builder中添加Nois软核、ram、uart、flash、定时器1、定时器2、Avalon三态门总线、编码器检测模块(QEP)、轨迹规划模块和输入输出模块。

FPGA模块:现场可编程门阵列(FPGA)集成度高、体积小,具有通过用户编程实现专门应用的功能。采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时由于可现场编程,所以还可以很方便地对设计进行在线修改。本模块主要完成总线逻辑控制;光电编码器反馈信号的倍频、辨相、记数;产生控制伺服电机的脉冲输出;开关输入信号的消除抖动;时钟分频等功能。

轨迹规划模块:本模块是整个板卡的核心部分。在数控系统中,为了保证在起动或停止时不产生冲击、失步、超程、或振荡,必须设计专门的加减速控制规律,驱使加给电动机的输入脉冲频率按照这个规律变化。根据零件的加工精度,就要考虑合适的进给速度,而进给速度的控制方法和所采用的插补算法相关。插补运算是数控系统根据输入的基本数据(如直线的起点和终点,圆弧的起点、终点和圆心,进给速度等),在轮廓起点和终点之间,计算出若干中间点的坐标值,通过计算将工件轮廓描述出来。因此本模块在NiosII IDE设计了一组频率为1KHz的中断。并编写多个数学方程式:梯形加减速、S曲线加减速、直线插补、圆形插补、速度检测、位置检测等。首先由主数学方程根据主界面输入的数据计算出所需轨迹,然后由中断1KHz的频率执行所需的速度、位置以及运动轨迹。

伺服控制过程如下:设计的基于SOPC的运动控制器从上位PC机得到运动指令,经过运动规划,得到理想的目标位置。和实际的目标位置(由光电编码器反馈的位置)比较得到偏差值。将偏差信号放大后,得到控制量输出。

输入输出模块:原点,正、负限位,报警等外部I/O信号,经过光电隔离后,经FPGA 消抖、缓冲,最后送给Nios软核,Nios软核根据通过读取相应的端口来读取数据。

FPGA芯片:FPGA晶片将参考采用Altera公司的生产的Altera StratixII EP1S10F780C6,该芯片具有10570LEs,最大可用I/O管脚426个,6个DSP模块,总共920448个RAM位及一个Nios嵌入式微处理器。该Nios嵌入式微处理器具有16位或32位可配置CPU内核、1B~20KB片内存储器与4GB片外存储器,因此,相当适合开发多轴伺服运动控制芯片。

2 软件设计

本运动控制器可以控制2-3轴(多轴以上及个性化功能可以定制)的高性能运动控制FPGA方案,也是SOPC方案。适用于脉冲序列输入的伺服马达、步进马达。可以进行各轴独立的定位控制、速度控制,亦可在多轴中任意选择2轴、3轴来进行圆弧、直线、位方式插补。模块1在Nios处理器内用软件方式实现,包括控制芯片与计算机(PC)的通讯程序、XYZ平台三轴电机的运动轨迹的计算。包括主程序、通信程序、控制程序。

Nios处理器的软件设计方法是在Nios内存中放一段自己编写的监控程序,控制CPU运行,它可以读写芯片的存储单元,与外围设备进行通信。在本系统中,Nios程序的任务是在规定的控制周期内:通过串口SPI模块将光电编码器反馈的信号送至中央处理器32位CPU,CPU将反馈信号进行预处理后,得到实时的电机速度、位置等状态参数;通过UART 模块得到上位机发出的控制任务及控制参数,如期望的速度、位置等;由CPU实现运动控制器的闭环控制算法并将控制信号(脉冲、方向)送入轨迹规划模块,实现实时控制。程序采用VC编写,流程图如图2所示。

图2主程序流程图

3 测试与实验

为了测试硬件与软件的正确性,以及是否能达到实时性要求,设计了单电机实验。即通过给运动控制器发送数据来实现一个电机的转、停以及变速等功能,看是否能达到实验预计的效果。通讯程序部分采用VC语言编写,下位机(即运动控制器)采用VHDL语言实现。具体的通讯参数:串口选择用COM1,波特率设为9600,奇偶校验为无,数据位为8,停止位为1。运动控制器的最大输出脉冲频率为5MHz。通讯程序部分均采用VC编写,要运行的参数通过串口传递给运动控制器,测试用的界面如图3所示:

图3 测试用的控制界面

所需实验设备包括上位机,需测试的运动控制器以及松下交流伺服电机(MSDA043A1A)。打开编译好的VC可执行文件,即出现图3的界面,输入串口设置以及脉冲输出的频率。点击“正转”按钮,电机即可按规定的正方向转动。按“停止”后,电机停止。再按“反转”按钮,电机按规定的反方向转动。在电机转动过程中,改变输入的脉冲频率,再按“实时变速”按钮,电机可实现实时变速。在实验中,将输入脉冲频率由500Hz 改为800Hz后,按“实时变速”按钮,则电机沿原来转动方向转动的速度明显加快了。

主程序用NiosII IDE提供的开发平台编写。NiosII IDE(集成开发环境)是NiosII系列嵌入式处理器的基本软件开发工具。所有开发任务都可以在NiosII IDE下完成,包括编辑、编译和调试程序。

通过本实验验证了在VC界面上输入脉冲频率数值,即可控制电机的转速。通过按“正转”、“反转”按钮,可以成功的为电机加方向信号,实现电机的正转、反转功能。实时变速也可以实现电机速度的实时改变。本实验成功的验证了硬件与软件的正确性,并能达到实时性要求,达到了实验的目的。

4 结束语

嵌入式系统已经广泛的应用到生活的方方面面,但是嵌入式运动控制器的研究,国外已经开始起步,国内还没有相关的产品出现。本设计在研究传统的运动控制器的基础上,对运动控制器基于的平台进行了创新。因为FPGA是一个包含大量门电路的逻辑元件,它的每一个门的定义可以由使用者来定义,如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们还可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。这也就为运动控制器的升级带来了极大的便利。为客户节约了成本。同时可解决传统基于PC的运动控制器的高速度和高精度的瓶颈问题,提出了将数字IP复用技术应用于运动控制技术的方法,从而达到嵌入式运动控制器的终极目标SOPC的实现。本文的创新点是对传统运动控制器基于的平台进行了创新,采用了基于FPGA的平台,采用EDA来设计硬件平台和采用数字IP复用技术。

参考文献:

[1]Nios II Processor Reference Handbook[DB/OL].https://www.360docs.net/doc/0415795339.html, 2005.

[2]许哲志、蔡明宏关节型机器人片上可编程系统的研制[J] Nios软核心嵌入式处理器设计大赛优秀作品选 2005 (3)

[3]王梅、厉剑基于嵌入式运动控制器系统的设计与开发[J]微计算机信息 2006,6: 72-74

[4]李现勇 Visual C++串口通信技术与工程实践[M] 人民邮电出版社,2002 (5)

[5]潘松、黄继业 SOPC技术实用教程[M] 北京:清华大学出版社,2005 (3)

[6]Y.S.Kung and G.S.Shu,“Servo Control System for a XYZ Table Using SOPC Technology,”Automation 2005,The Eighth International Conference on Automation Technology,pp.692~697, May 5~6,2005(Taichung,Taiwan)

作者简介:殷苏民(1956-),男,江苏扬州人,江苏大学机械学院副教授,主要从事开放式数控系统研究。李占发(1981-),男,天津人,江苏大学机械学院硕士研究生,主要研究方向机床数字控制研究Biography:Yin Sumin,born in 1956,male. He is assistant professor of JiangSu University mechanical engineering institute.His main interests include open architecture numerical control system.

Li Zhanfa,born in 1981,male.He is a graduate student of JiangSu University mechanical engineering institute.His main interests include Machine Tool CNC Technique.

联系地址:江苏大学机械工程学院邮编:212013

电子邮箱:smyin@https://www.360docs.net/doc/0415795339.html,

相关主题
相关文档
最新文档