基于FPGA的多种编码器协议自由转换IP核及方法技术

技术编号:23558009 阅读:23 留言:0更新日期:2020-03-25 03:40
本发明专利技术公开了一种基于FPGA的多种编码器协议自由转换IP核及方法,涉及工业控制技术领域。该IP核包括:外设IP核模块,用于获取上位机写入的控制字;基本IP核模块,用于根据所述控制字,配置自定义IP核模块的控制寄存器,实现对输入、输出协议的选择,从而使能相应的状态机;自定义IP核模块,与外部的编码器及至少一个目的机相连,用于进行编码器数据采集、协议转化并输出数据至相应目的机,且数据采集与数据输出过程,均通过在相应的状态机控制下产生所需接口协议的时序的方式来实现。本发明专利技术实现了对编码器数据并行处理、同步采集,以及按需转化输出,不但信息的实时性、同步性较高,而且克服了编码器协议不一致的缺陷。

Free conversion IP core and method of various encoder protocols based on FPGA

【技术实现步骤摘要】
基于FPGA的多种编码器协议自由转换IP核及方法
本专利技术涉及工业控制
,具体来讲是一种基于FPGA(FieldProgrammableGateArray,现场可编程逻辑门阵列)的多种编码器协议自由转换IP(IntellectualProperty,知识产权)核及方法。
技术介绍
目前,编码器应用早已渗透到了工业控制的各个领域,现在市面上的编码器的接口方式有多种,包括常用的增量式A、B、Z相光电码盘式、RS422异步串口式、SSI协议式、Biss_c协议式等。而在一些高精度要求的应用场合,比如:高精度转台、光电经纬仪、红外反扫控制系统等,基于ENDAT2.2协议的海德汉编码器是比较可靠地应用选择。在传统的伺服驱动控制系统中,都是选择编码器与驱动器协议相匹配的方案,然后再从驱动器中读取当前的位置信息,以供他用。在一般的伺服控制场合,这种模式可以可靠地完成需要的工作或功能,其弊端在于从驱动器中读取位置信息时,会有一定的滞后性,这种延迟滞后,一般为毫秒级,最大可达几十到上百毫秒,当这些位置信息只作为观测信息时,不会对系统功能造成影响。但是,在一些高精度的应用场合,特别是编码器位置信息有其他的实时应用要求的时候,例如光电经纬仪的应用中,多台瞄向同一目标的光电观测仪,彼此之间的伺服运动编码器位置信息,必须严格实时同步地发送给同一工控机进行处理计算,同步要求必须控制在微秒级别,如此才能最大限度的消除系统误差。传统的伺服控制系统中,从驱动器读取位置信息的模式显然难以保证多台观测仪的编码器位置信息的实时性。再如红外反扫光电应用中,红外传感器中具有一片可转动平面镜,有与伺服运动方向相反短暂转动的功能,以此保证传感器在伺服转动的过程中对于同一目标有足够的曝光时间。但是这种红外传感器,除了需要实时编码器位置信息外,其协议往往是自定义的,并非标准的常见协议。因此,如何克服传统伺服控制领域中,位置信息多用时,信息的实时性、同步性较差,协议不一致等缺陷,是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种基于FPGA的多种编码器协议自由转换IP核及方法,实现了对编码器数据并行处理、同步采集,以及按需转化输出,不但信息的实时性、同步性较高,而且克服了编码器协议不一致的缺陷。为达到以上目的,本专利技术提供一种基于FPGA的多种编码器协议自由转换IP核,包括:通过Avalon总线相互连接的基本IP核模块、外设IP核模块以及自定义IP核模块;所述外设IP核模块,其用于获取上位机写入的控制字;所述基本IP核模块,其用于根据所述控制字,配置所述自定义IP核模块的控制寄存器,实现对输入、输出协议的选择,从而使能相应的状态机;所述自定义IP核模块,与外部的编码器及至少一个目的机相连,其用于进行编码器数据采集、协议转化并输出数据至相应目的机,且数据采集与数据输出过程,均通过在相应的状态机控制下产生所需接口协议的时序的方式来实现。在上述技术方案的基础上,所述自定义IP核模块进行编码器数据采集、协议转化并输出数据至相应目的机,且数据采集与数据输出过程均通过在相应的状态机控制下产生所需接口协议的时序的方式来实现,具体包括以下流程:所述自定义IP核模块在所述基本IP核模块确定输入协议并使能相应的状态机后,其接收端口按照相应的状态机产生时序输出,并在数据端进行相应命令发送和编码器数据采集;采集到的数据经过协议转化传递给输出端口;输出端口将传递过来的数据信息,在相应的状态机控制下,产生所需的时序,并完成数据的多端口同步输出;重新检查当前写入的控制字,按照相应的控制字,再次执行上述流程。在上述技术方案的基础上,所述外设IP核模块,包括定时器、PIO并口,用于为系统提供基本的计时,存储以及与上位机并口进行通讯的功能;所述基本IP核模块,包括NIOSIICPU、SDRAM控制器、FLASH控制器以及PLL模块,用于为系统设置时钟频率,中断地址及存储地址;所述自定义IP核模块的控制寄存器包括接收数据寄存器、发送数据寄存器。在上述技术方案的基础上,所述输入、输出协议包括SSI协议、Biss_c协议、Endat2.2协议以及自定义串口协议。在上述技术方案的基础上,当确定的输入协议为SSI协议时,所述自定义IP核模块进行编码器数据采集的具体流程包括:定义默认状态对应状态机的idle状态,且时钟信号保持高电平;收到使能信号En后开始采集编码器数据,此时对应状态机的Gen_start状态,所述自定义IP核模块接收端口的时钟信号产生一个下降沿信号,持续TDFC时长,此期间编码器锁存数据信息;接着时钟信号发出正常时序逻辑,编码器在每一个上升沿发出一位数据信息,自定义IP核模块在每一个下降沿读取数据信号线上的信息并按位锁存至接收数据寄存器,此时对应状态机的rec_pos状态,直至读取到最后一位数据;在最后一个上升沿,时钟信号持续一个至少Tm时长的高电平,此期间数据信号拉低,进入与状态机的Over_state对应的结束状态,并转入Pos保存进行数据信息保存;之后进入ilde状态,开启新一帧数据读取;当确定的输出协议为SSI协议时,所述自定义IP核模块输出数据至相应目的机的具体流程包括:自定义IP核模块检测目的机的时钟,按照上述编码器数据采集的逻辑将数据信息按位输出到相应目的机数据信号线上。在上述技术方案的基础上,当确定的输入协议为Biss_c协议时,所述自定义IP核模块进行编码器数据采集的具体流程包括:定义时钟信号由自定义IP核模块控制,数据信号则由编码器控制,默认状态对应状态机的idle状态,且时钟信号保持高电平,数据信号由编码器保持为高电平;开始采集编码器数据时,处于idle状态,收到使能信号En后,时钟进入Wait-ack状态,自定义IP核模块控制时钟信号线产生正常时钟信号,若干周期后,编码器在时钟信号上升沿,在数据信号线产生一个拉低的ACK应答信息,持续12个周期,并在此期间锁存数据信息,自定义IP核模块检测到数据信号拉低,状态机进入Wait_start状态;编码器锁存数据信息完毕后发出一个周期的高电平起始信号标志,自定义IP核模块进入Rec_pos状态;编码器再发送数据信息及校验信息;自定义IP核模块的接收端口,在每个时钟信号的下降沿,锁存一位数据信号到接收数据寄存器,同时进行校验;自定义IP核模块接收完数据后,拉高时钟信号,编码器则拉低数据信号,进入Timeout状态;校验无误后将数据传递到接收数据寄存器和发送数据寄存器;之后重新进入idle状态,开始新一帧数据接收;当确定的输出协议为Biss_c协议时,所述自定义IP核模块输出数据至相应目的机的具体流程包括:设置数据信号由自定义IP核模块控制,时钟信号则由目的机控制;然后按照上述数据采集的逻辑将数据输出到相应目的机数据信号线上。在上述技术方案的基础上,当确定的输入协议为Endat2.2协议时,所述自定义IP核模块进行编码器数据采集的具体流程包括:定义默认状态对应状态机的本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的多种编码器协议自由转换IP核,其特征在于:包括通过Avalon总线相互连接的基本IP核模块、外设IP核模块以及自定义IP核模块;/n所述外设IP核模块,其用于获取上位机写入的控制字;/n所述基本IP核模块,其用于根据所述控制字,配置所述自定义IP核模块的控制寄存器,实现对输入、输出协议的选择,从而使能相应的状态机;/n所述自定义IP核模块,与外部的编码器及至少一个目的机相连,其用于进行编码器数据采集、协议转化并输出数据至相应目的机,且数据采集与数据输出过程,均通过在相应的状态机控制下产生所需接口协议的时序的方式来实现。/n

【技术特征摘要】
1.一种基于FPGA的多种编码器协议自由转换IP核,其特征在于:包括通过Avalon总线相互连接的基本IP核模块、外设IP核模块以及自定义IP核模块;
所述外设IP核模块,其用于获取上位机写入的控制字;
所述基本IP核模块,其用于根据所述控制字,配置所述自定义IP核模块的控制寄存器,实现对输入、输出协议的选择,从而使能相应的状态机;
所述自定义IP核模块,与外部的编码器及至少一个目的机相连,其用于进行编码器数据采集、协议转化并输出数据至相应目的机,且数据采集与数据输出过程,均通过在相应的状态机控制下产生所需接口协议的时序的方式来实现。


2.如权利要求1所述的基于FPGA的多种编码器协议自由转换IP核,其特征在于:所述自定义IP核模块进行编码器数据采集、协议转化并输出数据至相应目的机,且数据采集与数据输出过程均通过在相应的状态机控制下产生所需接口协议的时序的方式来实现,具体包括以下流程:
所述自定义IP核模块在所述基本IP核模块确定输入协议并使能相应的状态机后,其接收端口按照相应的状态机产生时序输出,并在数据端进行相应命令发送和编码器数据采集;
采集到的数据经过协议转化传递给输出端口;输出端口将传递过来的数据信息,在相应的状态机控制下,产生所需的时序,并完成数据的多端口同步输出;
重新检查当前写入的控制字,按照相应的控制字,再次执行上述流程。


3.如权利要求1所述的基于FPGA的多种编码器协议自由转换IP核,其特征在于:
所述外设IP核模块,包括定时器、PIO并口,用于为系统提供基本的计时,存储以及与上位机并口进行通讯的功能;
所述基本IP核模块,包括NIOSIICPU、SDRAM控制器、FLASH控制器以及PLL模块,用于为系统设置时钟频率,中断地址及存储地址;
所述自定义IP核模块的控制寄存器包括接收数据寄存器、发送数据寄存器。


4.如权利要求3所述的基于FPGA的多种编码器协议自由转换IP核,其特征在于:所述输入、输出协议包括SSI协议、Biss_c协议、Endat2.2协议以及自定义串口协议。


5.如权利要求4所述的基于FPGA的多种编码器协议自由转换IP核,其特征在于,当确定的输入协议为SSI协议时,所述自定义IP核模块进行编码器数据采集的具体流程包括:
定义默认状态对应状态机的idle状态,且时钟信号保持高电平;收到使能信号En后开始采集编码器数据,此时对应状态机的Gen_start状态,所述自定义IP核模块接收端口的时钟信号产生一个下降沿信号,持续TDFC时长,此期间编码器锁存数据信息;接着时钟信号发出正常时序逻辑,编码器在每一个上升沿发出一位数据信息,自定义IP核模块在每一个下降沿读取数据信号线上的信息并按位锁存至接收数据寄存器,此时对应状态机的rec_pos状态,直至读取到最后一位数据;在最后一个上升沿,时钟信号持续一个至少Tm时长的高电平,此期间数据信号拉低,进入与状态机的Over_state对应的结束状态,并转入Pos保存进行数据信息保存;之后进入ilde状态,开启新一帧数据读取;
当确定的输出协议为SSI协议时,所述自定义IP核模块输出数据至相应目的机的具体流程包括:自定义IP核模块检测目的机的时钟,按照上述编码器数据采集的逻辑将数据信息按位输出到相应目的机数据信号线上。


6.如权利要求4所述的基于FPGA的多种编码器协议自由转换IP核,其特征在于,当确定的输入协议为Biss_c协议时,所述自定义IP核模块进行编码器数据采集的具体流程包括:
定义时钟信号由自定义IP核模块控制,数据信号则由编码器控制,默认状态对应状态机的idle状态,且时钟信号保持高电平,数据信号由编码器保持为高电平;开始采集编码器数据时,处于idle状态,收到使能信号En后,时钟进入Wait-ack状态,自定义IP核模块控制时钟信号线产生正常时钟信号,若干周期后,编码器在时钟信号上升沿,在数据信号线产生一个拉低的ACK应答信息,持续12个周期,并在此期间锁存数据信息,自定义IP核模块检测到数据信号拉低,状态机进入Wait_start状态;编码器锁存数据信息完毕后发出...

【专利技术属性】
技术研发人员:柯洋徐亚飞程维福谌昊赵志刚
申请(专利权)人:武汉华之洋科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1