本发明涉及一种高速嵌入式实时伺服控制器及其硬件加速方法,属于高速伺服控制器设计技术领域,可广泛应用于高速气压、高速液压伺服控制器以及常规伺服控制器的设计与应用。
背景技术:
伺服控制技术在气压驱动、液压驱动、振动控制技术方面应用广泛,其关键技术在于伺服控制器的设计,伺服控制器又以控制算法稳定性及其执行的实时性作为其性能优劣的评价标准。通常伺服控制器采用集成式总线控制器,如pxi/pxi-e总线控制器,这类控制器基于仪器总线卡模式构建,借助rt操作系统以及fpga模块可实现实时pid伺服控制,但这类系统需借助于pxi机箱、a/d采集卡、d/a转换卡、fpga高速运算卡完成控制器设计,体积庞大,功耗高,编程复杂,而且仅适合于地面控制模式,其pid控制环的运行速度通道仅达到10khz~20khz;对于特殊场合如航空、航天器、导弹等系统的气压或液压驱动伺服控制器,采用pxi总线卡模式设计控制器并不适合,只能采用嵌入式伺服控制器。嵌入式伺服控制器集成片上a/d、d/a、cpu、ram存储器等资源,集成度高,功耗低,优越性明显。但是,常规嵌入式伺服控制器控制算法采用软件编程实现,利用cpu逐条取控制指令并执行指令、频繁响应a/d、d/a中断,使得cpu执行效率低下,pid控制环的执行速度低下,大量研究表明,制约pid控制环的执行速度高低的关键是算法中的算术运算,采用软件编码执行的pid相关算术运算因cpu主频不同,取指令、执行指令的周期长,通常执行一次运算耗费的时间达数百数千个时钟周期,全系统控制频率通常只能做到数百hz左右,尤其对于具有多个pid环、多路a/d、d/a的复杂高速实时伺服控制需求,实现难度较大。
技术实现要素:
本发明的目的就在于为了解决上述问题而提供一种高速嵌入式实时伺服控制器及其硬件加速方法,采用一种内嵌的全硬件执行流程实现伺服控制算法中的所有算术运算,相对以往基于软件编程实现的伺服控制算法,可显著提高控制环的速度。
本发明通过以下技术方案来实现上述目的:
一种高速嵌入式实时伺服控制器,包括niosii软核处理器、a/d采集芯片、d/a转换芯片、flash存储器、sdram存储器、上位机接口组件、具有加减乘除四种运算功能的pid算法算术运算硬核处理器,所述a/d采集芯片连接有a/d采集控制逻辑电路,所述d/a转换芯片连接有d/a转换控制逻辑电路,所述flash存储器连接有flash接口控制器,所述sdram存储器连接有sdram控制器,所述niosii软核处理器、所述pid算法算术运算硬核处理器、所述a/d采集控制逻辑电路、所述d/a转换控制逻辑电路、所述flash接口控制器、所述sdram控制器和所述上位机接口组件均挂在avalon总线上。
作为本专利选择的一种技术方案,所述pid算法算术运算硬核处理器为一个或多个。
作为本专利选择的一种技术方案,所述pid算法算术运算硬核处理器包括整形数加法ip核、整形数减法ip核、整形数乘法ip核、整形数除法ip核、浮点数加法ip核、浮点数减法ip核、浮点数乘法ip核、浮点数除法ip核、与所述整形数加法ip核连接的整形数加法avalon总线接口单元、与所述整形数减法ip核连接的整形数减法avalon总线接口单元、与所述整形数乘法ip核连接的整形数乘法avalon总线接口单元、与所述整形数除法ip核连接的整形数除法avalon总线接口单元、与所述浮点数加法ip核连接的浮点数加法avalon总线接口单元、与所述浮点数减法ip核连接的浮点数减法avalon总线接口单元、与所述浮点数乘法ip核连接的浮点数乘法avalon总线接口单元、与所述浮点数除法ip核连接的浮点数除法avalon总线接口单元。
作为本专利选择的一种技术方案,所述niosii软核处理器的时钟频率为50mhz~150mhz。
作为本专利选择的一种技术方案,所述a/d采集芯片为同步采集芯片或异步采集芯片,所述d/a转换芯片为同步转换芯片或异步转换芯片。
作为本专利选择的一种技术方案,所述a/d采集控制逻辑电路具备与avalon总线连接的avalon总线从属设备接口和与a/d采集芯片连接的a/d转换时序逻辑接口,所述d/a转换控制逻辑电路具备与avalon总线连接的avalon总线从属设备接口和与d/a转换芯片连接的d/a转换时序逻辑接口。
作为本专利选择的一种技术方案,所述上位机接口组件为com串口通信组件、usb通信组件、lan通信组件、can总线通信组件中的一种。
作为本专利选择的一种技术方案,所述niosii软核处理器通过所述上位机接口组件实现与外部计算机的通信,实现pid控制参数以及控制过程数据的上下位机传递。
根据上述内容得到一种高速嵌入式实时伺服控制器的硬件加速方法:
利用niosii软核处理器对伺服控制p、i、d参数按照计算机整型数和浮点数组织形式,采用地址整合方法得到二进制浮点数表现形式;
将过程返回参数和所得到二进制浮点数表现形式的伺服控制参数传递到外挂在avalon总线上的pid算法算术运算硬核处理器中,并执行pid算法加、减、乘、除四则运算,其结果读入到所述niosii软核处理器中进行处理。
进一步地,在数据处理过程中利用flash存储器存储pid伺服控制程序,利用sdram存储器存储pid伺服控制过程数据。
本发明的有益效果在于:
本发明采用纯硬件执行所有pid算术运算,实现过程简单,计算过程不需cpu参与,在10余个时钟周期内便可完成加、减、乘、除运算,显著提高运算的速度。
附图说明
图1是本发明的硬件结构示意框图;
图2是本发明所述算术运算硬核的结构示意框图;
图3是的pid算法的pid计算参数与计算结果的总线传输图。
具体实施方式
下面结合附图对本发明作进一步说明:
如图1所示,本发明由alterafpga采用sopc构建片上嵌入式硬件系统,硬件系统包括niosii软核处理器、a/d采集芯片、d/a转换芯片、flash存储器、sdram存储器、上位机接口组件、具有加减乘除四种运算功能的pid算法算术运算硬核处理器,a/d采集芯片连接有a/d采集控制逻辑电路,d/a转换芯片连接有d/a转换控制逻辑电路,flash存储器连接有flash接口控制器,sdram存储器连接有sdram控制器,niosii软核处理器、pid算法算术运算硬核处理器、a/d采集控制逻辑电路、d/a转换控制逻辑电路、flash接口控制器、sdram控制器和上位机接口组件均挂在avalon总线上,以实现pid控制算法的全硬件实现,该结构适合于需要高速实时嵌入式伺服控制的场合。
如图2所示,pid算法算术运算硬核处理器的算数运算满足整型数加、减、乘、除四则运算,单精度、双精度加、减、乘、除法四则运算,它包括整形数加法ip核、整形数减法ip核、整形数乘法ip核、整形数除法ip核、浮点数加法ip核、浮点数减法ip核、浮点数乘法ip核、浮点数除法ip核、与整形数加法ip核连接的整形数加法avalon总线接口单元、与整形数减法ip核连接的整形数减法avalon总线接口单元、与整形数乘法ip核连接的整形数乘法avalon总线接口单元、与整形数除法ip核连接的整形数除法avalon总线接口单元、与浮点数加法ip核连接的浮点数加法avalon总线接口单元、与浮点数减法ip核连接的浮点数减法avalon总线接口单元、与浮点数乘法ip核连接的浮点数乘法avalon总线接口单元、与浮点数除法ip核连接的浮点数除法avalon总线接口单元。
pid算法算术运算硬核处理器包含整型、浮点型四则运算功能,在功能实现方法上,采用了对整型、浮点型加、减、乘、除的ip核例化调用,并在ip核外部增加avalon总线读写接口信号进行ip核的二次封装,封装完成后形成独立功能组件作为一个外设挂在avalon总线上,实现niosii软核处理器作为主控设备通过avalon总线向封装后的ip算术运算硬核传递伺服控制的过程运算变量并通过avalon总线直接获取pid闭环控制的运算结果。
作为本专利选择的一种技术方案,pid算法算术运算硬核处理器为一个或多个。根据伺服控制算法的不同任务需求,可由单片fpga包含多个niosii软核处理器、多片a/d采集芯片和d/a转换芯片、多个pid算法算术运算硬核处理器,组建多个pid实时控制通道。
作为本专利选择的一种技术方案,niosii软核处理器是通过fpgasopc工具生成的软核,其时钟频率为50mhz~150mhz。
作为本专利选择的一种技术方案,a/d采集芯片为同步采集芯片或异步采集芯片,d/a转换芯片为同步转换芯片或异步转换芯片,具体采用哪种类别的芯片取决于伺服控制的具体需求。
作为本专利选择的一种技术方案,a/d采集控制逻辑电路具备与avalon总线连接的avalon总线从属设备接口和与a/d采集芯片连接的a/d转换时序逻辑接口,d/a转换控制逻辑电路具备与avalon总线连接的avalon总线从属设备接口和与d/a转换芯片连接的d/a转换时序逻辑接口。a/d采集控制逻辑电路是采用verilog/vhdl硬件描述语言生成的硬核,该硬核根据伺服控制器选取的a/d采集芯片不同而进行不同的设计;d/a转换控制逻辑电路是采用verilog/vhdl硬件描述语言生成的硬核,该硬核根据伺服控制器选取的d/a转换芯片不同而进行不同的设计。
作为本专利选择的一种技术方案,上位机接口组件为com串口通信组件、usb通信组件、lan通信组件、can总线通信组件中的一种,具体选用哪种取决于伺服控制器与外部计算机的通信需求。
作为本专利选择的一种技术方案,niosii软核处理器通过上位机接口组件实现与外部计算机的通信,实现pid控制参数以及控制过程数据的上下位机传递。
根据上述内容得到一种高速嵌入式实时伺服控制器的硬件加速方法:
1)利用niosii软核处理器对伺服控制p、i、d参数按照计算机整型数和浮点数组织形式,采用地址整合方法得到二进制浮点数表现形式,在本发明中采用变量的地址与指针相结合的方法进行整型数、浮点数到二进制数据的转换;
2)将过程返回参数和所得到二进制浮点数表现形式的伺服控制参数传递到外挂在avalon总线上的pid算法算术运算硬核处理器中,并执行pid算法加、减、乘、除四则运算,其结果读入到niosii软核处理器中进行处理。
在步骤2)中,niosii软核处理器是通过avalon总线将伺服控制器pid运算过程参数传递到pid算法算术运算硬核处理器中的整形数加法ip核、整形数减法ip核、整形数乘法ip核、整形数除法ip核、浮点数加法ip核、浮点数减法ip核、浮点数乘法ip核、浮点数除法ip核,各ip核将加、减、乘、除硬件运算的结果通过avalon总线回传到niosii软核cpu中。
在数据处理过程中利用flash存储器存储pid伺服控制程序,利用sdram存储器存储pid伺服控制过程数据。
整个高速嵌入式实时伺服控制器的硬件加速方法是通过nioside环境的开发平台实现,通过c语言表达,控制算法中的所有运算全采用纯硬件ip调用实现。凡是pid算法所涉及的加、减、乘、除四则运算均利用iowr、iord读写指令传递给avalon总线上的pid算法算术运算硬核处理器执行,pid算法程序的pid计算参数与计算结果的总线传输图如图3所示。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围内。