基于SOPC的嵌入式双核伺服控制器及其设计方法与流程

文档序号:14248603阅读:198来源:国知局
基于SOPC的嵌入式双核伺服控制器及其设计方法与流程

本发明所涉及的是数字化伺服控制系统领域,特别涉及一种基于sopc的嵌入式双核伺服控制器及其设计方法。



背景技术:

目前,数字伺服控制器硬件平台主要包括dsp、dsp+fpga、fpga·三种架构,基于dsp的伺服控制器有着设计灵活、调试方便的优势,但是外设资源有限,不能适应目前多种通信接口高速并行处理的需求,即使ti公司推出了f28m35双核处理器,也不能改变这一弊端,基于dsp+fpga的伺服控制器,能够同时满足设计灵活和并接通信的要求,但是电路较为复杂,成本较高。近年来随着微电子技术的发展,片上可编程技术也逐渐兴起,fpga内部可以嵌入软核或者硬核处理器,将处理器、存储器、i/o接口等系统设计所需的功能集成到一个可编程逻辑器件fpga上,从而构成片上可编程系统(sopc),采用基于单fpga的控制器即可实现dsp+fpga控制器的所有功能,从而在航天、航空领域得到了广泛应用。

随着任务量的增多,fpga嵌入式单核系统存在对存储器的访问不能同时进行,在高速运行情况下容易混乱的问题,xilinx公司的fpga推出了双核系统,即可以在一个fpga内部嵌入两个片上微处理器软核microblaze(一种针对xilinxfpga器件而优化的功能强大的32位微处理器,也是业界最快的软处理器ip核解决方案),进行多任务协同,并行计算,极大提高了系统的响应速度。

近年来国内外学者针对基于fpga的嵌入式系统进行了大量研究,哈尔滨工业大学的王晓路在“基于fpga的嵌入式双核系统设计”一文中介绍了双核之间通信的几种方法。南京理工大学的柏玉娴在“基于sopc技术的嵌入式控制系统研究与设计”一文中提出了基于xilinx公司virtex-5fxtfpga为平台的嵌入式控制系统的设计方案,此方案主要是基于嵌入式实时操作系统vxworks软件开发及应用相关的研究,此外在文中还提及了powerpc440硬核处理器,并未采用microblaze的软核处理器。夏门大学的姚铭同志在“基于fpga的双核嵌入式系统构建”一文中提出了一种基于xilinx的virtex-iipro开发板实现了双核嵌入式系统构建,给出了双核系统的构建方法及原理,这种构建方法主要powerpc405的硬核处理器架构。

专利申请“基于fpga的嵌入式双核系统的自主配置方法”(cn201410047913.9)一文中,提出了双核系统自主完成配置和加载的问题。专利申请“基于fpga的嵌入式双核继电保护系统”(cn201510107412.x)一文中提出基于niosii软核处理器的双核设计方法。专利申请“一种机器视觉控制方法及机器人控制器和机器人控制系统”(cn201610122709.8)一文中提出了嵌入式双核微处理器在图像处理和运动控制中的应用。现有技术均未见涉及基于sopc的嵌入式双核天线伺服控制器设计方法。

目前,基于fpga的单核数字化伺服控制系统,采用单一主线程,多任务调度均需采用查询或者中断的方式,加大了阻塞状态下的等待时间,延长了数据更新的周期,且无绝对意义上的并行处理。在面临多任务、大数据量等实际问题,单核处理器执行时间较长和无法并行处理的劣势逐渐显露,控制的实时性和算法精度无法得到保证。



技术实现要素:

为解决以上现行技术存在的问题,本发明的目的在于提出一种基于sopc的嵌入式双核伺服控制器,提高控制器的协同处理能力,而且具有资源丰富、可扩展性强、可靠性高、低成本以及设计容易的优点。本发明还提供了基于sopc的嵌入式双核伺服控制器的设计方法。

为了达到上述目的,本发明的一个技术方案是提供一种基于sopc的嵌入式双核伺服控制器,其包含:

作为主控制器的fpga,和与之信号连接的以下模块:

电源系统,为fpga及其他模块供电;

程序flash,对程序进行存储,供fpga读取程序;

数据flash,对控制参数进行存储,供fpga读取控制参数;

数据指令通信单元,实现fpga与外部装置的数据指令通信;

传感器数据读取单元,获取传感器数据,提供给fpga;

驱动器,根据fpga提供的驱动信号,对执行装置进行驱动;

其中,fpga设有两个microblaze软核处理器来进行双核并行计算;多个ip软核通过plb总线进行信号连接,各microblaze软核处理器通过plb总线与各个ip软核进行数据交互;两个microblaze软核处理器之间进行双核数据通信。

优选地,第一软核处理器microblaze0进行数据指令接收发送、传感器数据读取及预处理,并通过双核数据通信与第二软核处理器microblaze1共享数据;第二软核处理器microblaze1上电读取控制参数,根据共享数据完成伺服控制算法的计算,并送出驱动信号到驱动器,实现伺服系统的既定功能。

优选地,第一软核处理器microblaze0通过第一plb总线,与定时器ip核、中断控制ip核、传感器读取ip核交互数据;第二软核处理器microblaze1通过第二plb总线,与定时器ip核、中断控制ip核、数据指令读取ip核、驱动器控制ip核、控制参数存储ip核交互数据。

优选地,两个microblaze软核处理器之间的双核数据通信,基于sharedbram或mailbox方式实现。

优选地,sharedbram方式还通过互斥访问ip核mutex进行仲裁。

优选地,数据共享量大于1000字节时,双核数据通信选择sharedbram方式,否则选择mailbox。

本发明的另一个技术方案是提供一种基于sopc的嵌入式双核伺服控制器的设计方法,适用于上述任意一种基于sopc的嵌入式双核伺服控制器。

优选地,所述设计方法包含以下步骤:

s1、根据伺服系统既定功能的需求,构建控制回路;

s2、根据控制回路,确定嵌入式双核伺服控制器的硬件架构,包含fpga和与之信号连接的电源系统、程序flash、数据flash、驱动器、数据指令通信单元、传感器数据读取单元;

s3、根据硬件架构和控制策略,确定嵌入式双核伺服控制器底层所需的ip软核,包含定时器ip核、中断控制ip核、传感器读取ip核、数据指令读取ip核、驱动器控制ip核、控制参数存储ip核;各ip软核开放相应的数据端口与plb总线连接;

s4、在xps中搭建基于ip软核的底层软件平台:

根据选用的fpga型号,创建具有两个microblaze软核处理器的底层软件平台;将ip软核添加到底层软件平台中与plb总线连接,分配内部时钟、外部端口、地址,进行底层软件架构编译;

s5、xps搭建的软件底层架构编译完成后,导出顶层接口文件到sdk中进行控制系统的顶层开发。

本发明提供一种基于sopc的嵌入式双核伺服控制器及其设计方法,采用基于xilinx(赛灵思)公司fpga的双microblaze软核处理器,完成数字控制器并行计算,协同工作,提高运行速率,实现高精度、高实时性、多任务等高要求伺服控制。

根据控制系统功能要求确定硬件架构、接口类型,然后确定软件底层架构,利用xps工具进行编译,导出顶层接口文件,在sdk平台中进行顶层软核控制器设计开发。

本发明带来以下有益效果:

(1)高实时性:该设计方法采用两个microblaze嵌入式软核处理器,可以实现控制算法和数据预处理的同步运行,实时性得到了大幅提高。

(2)低成本:该设计方法采用单个fpga实现了原有dsp+fpga方案的所有功能,可以实现低成本设计。

(3)灵活性高:采用嵌入式系统microbalze运行控制算法和数据预处理,均可在线运行调试,监控运行数据,改变了传统fpga的繁琐的调试方式。不仅如此,控制参数可以上电读取,可以根据伺服系统的差异性进行灵活调整。

(4)稳定性好:经实验证实,该系统在重复上电及长时间高低温环境试验及振动试验下仍可稳定运行。

附图说明

图1是基于sopc的嵌入式双核伺服控制器的硬件架构示意图;

图2是本发明中双核架构的参数化调试硬件调试平台的示意图;

图3是本发明基于状态机的控制器参数变更流程的示意图;

图4是本发明实施例中角速率陀螺式稳定平台的稳定回路示意图;

图5是本发明实施例中角速率陀螺式稳定平台的硬件架构的示意图;

图6是本发明实施例中角速率陀螺式稳定平台的底层软件架构示意图。

具体实施方式

本发明所述基于sopc的双核控制系统,均是基于xilinx公司的fpga为核心处理器,并利用片上的两个microblaze软核处理器,实现数字控制器双核并行计算。fpga包含丰富的逻辑设计资源,可以完成复杂的逻辑及数据处理功能,具有可重复编程、设计周期短、研发成本低等优点。

基于sopc的双核控制系统硬件架构如图1所示,包含fpga主控制器、电源系统、程序flash、数据指令通信、传感器数据读取单元、驱动器、数据flash等。电源系统主要为fpga及其他模块提供电源,程序flash主要用于程序存储,数据flash主要用于存储控制参数,驱动器主要用于驱动执行装置,fpga主控制器用于完成读取程序、传感器数据、运行控制算法、输出驱动信号等功能。

双核控制系统fpga内部软件架构如图2所示,包括两个microblaze软核处理器,基于sharedbram(共享内存方式)或mailbox(邮箱)实现双核数据通信,存储器ip核、定时器ip核、中断控制ip核、外部功能ip核、数据指令通信ip核、驱动器控制ip核、控制参数存储ip核等,以上ip软核通过plb总线进行连接,microblaze软核处理器通过plb总线与各软核进行数据交互。

目前fpga双核通信主要包含2种方式:sharedbram和mailbox。基于sharedbram的双核通信方式相对比较简单,适用于大数据量共享情况,读取速度快,实现简单,但是两个microblaze处理器存在同时读写的情况,必须通过内部mutex(xps提供的用于处理多线程工作对共享资源的互斥访问ip核)进行仲裁,实现互斥访问,而且双核并无实时数据交换。基于mailbox的软核建立起两个软核之间的通信,且每个mailbox自带数据发送和接收fifo,可以做到数据实时直接交互,适合频繁数据帧交换。以上两种通信方式各有优缺点,本发明并不限定使用其中的哪种方式进行数据通信。优选的示例中,可以根据数据共享量进行选择,如果大于1000字节,选择sharedbram,否则建议选择mailbox。

基于sopc的双核控制系统运行方案如图3所示,伺服控制领域控制算法的稳定实现,均是建立在固定周期t的时域运算之上,且该控制周期应远小于伺服系统的响应周期。在高精度、高实时性、多任务伺服控制领域,为了获取较高的控制器计算精度,要求控制周期非常短,传感器预处理和复杂的控制算法会同时消耗大量的运算时间,因此必须采用双核系统可以较好的解决此类问题。

其中,软核microblaze0用作传感器读取和指令接收发送功能,并按照要求进行数据预处理,通过mailbox或sharedram与软核microblaze1共享数据;软核microblaze1上电读取控制参数,根据共享数据完成伺服控制算法的计算,并送出驱动信号到驱动器,实现伺服系统的既定功能。

在此以二轴高精度空间稳定平台为例,详细介绍本发明提出的一种基于sopc的嵌入式双核伺服控制器的设计方法:

1、根据伺服系统功能要求,构建控制回路

控制回路的构建是根据不同控制功能需求决定的,目前角速率陀螺式稳定平台的稳定回路主要由控制器gc(s),包含电机功放、电机和机构的驱动机构g(s),速率陀螺t(s),测速机等构成,如图4所示。由测速机构成的内回路主要用于提高系统刚度,由速率陀螺构成的外回路主要用于隔离扰动,实现空间稳定。

2、根据控制回路,确定整体硬件控制器架构

根据构建的控制回路,控制器的硬件架构,如图5所示,基于fpga,以rs422进行数据指令通信,对测速机进行ad信号读取,对陀螺以rs422进行信号读取,向驱动器输出pwm信号,以及与数据flash进行spi信号读写。本实施例中不对选取测速机、驱动器类型、陀螺接口类型等问题进行讨论,根据本领域公知技术可以解决。

3、根据整体硬件控制器架构和控制,确定底层所需ip软核

根据控制器硬件架构,可以确定控制器的底层软件架构需要:定时器ip核、中断控制ip核、陀螺rs422读取ip核、测速机ad读取ip核、数据指令rs422读取ip核,pwm驱动器控制ip核,spi数据存储ip核,如图6所示,由于本例中提及的数据通信和传感器数据量不超过1000字节,双核之间的通信方式选用mailbox方式。ip软核在编写的过程中根据需要开放相应数据端口与plb总线连接。

4、在xps中搭建基于ip软核的底层软件平台

xps(xilinxplatformstudio)是xilinx公司提供的基于ip软核的编程工具,根据选用的fpga型号,通过xps创建底层双microblaze平台,根据图6确定的软件架构,将上述ip软核添加到xps平台中,连接到plb总线,分配内部时钟和外部端口,然后分配地址,进行底层软件架构编译。

5、在sdk中进行控制系统设计

sdk(softwaredevelopkit)是xilinx公司提供的嵌入式平台开发工具,主要用于开发系统的具体实现和算法,调试方便灵活。将上述xps搭建的软件底层架构编译完成后,可以导出到sdk平台进行顶层开发。ip核的设计方法在此不再赘述。

如图3所示,软核microblaze0会在定时器中断中完成陀螺数据读取、测速机数据读取,并进行数据预处理,通过mailbox与microbalze1进行数据交互;microblaze1主要会在定时器中断中完成与microlbalze0数据交互、控制算法运行、驱动器控制和参数读取、存储。

microblaze1定时器中断的周期t1主要由控制回路的响应特性决定,应满足下述公式:

t≤1/10/fbw

式中fbw控制系统所需响应带宽。

microblaze0定时器中断的周期t0是t1的2倍以上。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1