一种与绝对值编码器通信的方法与流程

文档序号:12117163阅读:523来源:国知局

本发明涉及工业控制中与绝对值编码器通信的领域,尤其涉及一种与绝对值编码器通信的方法。



背景技术:

绝对值编码器由于极高分辨率和对位置的记忆功能使其在工业控制中得到了越来越广泛的应用。但由于没有统一的协议标准,导致各个生产商提供的绝对值编码器都是使用自己的通信协议。这就要求用户首先要有一种与绝对值编码器通信的方法才能使用它们。

现有技术的方法有两种:一种是使用编码器供应商提供的解码芯片与绝对值编码器进行通信。另一种是使用各种绝对值编码器专用的IP核与其通信。

第一种做法需要购买绝对值编码器专用的解码芯片,先用解码芯片解码出绝对值编码器的数据,然后MCU再通过SPI或者并口总线与解码芯片通讯,从而获得绝对值编码器的数据。需要使用较多的硬件电路, 且解码芯片的价格比较昂贵。

第二种做法是使用FPGA加载绝对值编码器的IP核,先用IP核与绝对值编码器通讯,然后再用FPGA将解码出来的绝对值编码器数据发送给MCU。但IP核只能解码其相对应的编码器,换一种编码器就不再适用,使用起来非常的不灵活。

针对现有技术的缺陷,有必要设计一种与绝对值编码器通信的方法,通用于多种类型的绝对值编码器,解决现有技术中硬件电路复杂,价格昂贵,以及兼容性差、使用不灵活的问题。



技术实现要素:

为了克服现有技术中存在的缺点和不足,本发明的目的在于提供一种与绝对值编码器通信的方法,通用于多种类型的绝对值编码器,兼容性强,硬件电路简单,价格低廉且使用灵活。

本发明具体技术方案如下:

一种与绝对值编码器通信的方法,包括以下步骤:

S1:主控芯片生成使能模块、数据发送模块、数据接收模块、数据接收时钟模块和数据发送时钟模块;

S2:使能模块生成触发信号tx_int和数据收发使能信号en;

S3:数据发送模块接收到触发信号tx_int后,生成数据发送时钟模块的使能信号bps_start2;

S3:数据发送时钟模块收到使能bps_start2后,生成波特率为F的数据发送点clk_bps2;

S4:数据发送模块按照clk_bps2依次向绝对值编码器发送命令数据,发送完毕后关闭bps_start2;

S5:绝对值编码器向数据接收模块发送数据;

S6:当数据接收模块接收到绝对值编码器发送数据的起始位后,生成数据接收时钟模块的使能信号bps_start1;

S7:数据接收时钟模块接收到使能信号bps_start1后,生成波特率为F的数据接收点clk_bps1,并发送给数据接收模块;

S8:数据接收模块按照clk_bps1依次接收绝对值编码器发送的N字节数据,并对N字节数据的前N-1字节数据进行CRC运算,得出CRC校验码。

S9:比较CRC校验码与接收到的第N字节数据是否一致。若一致代表与绝对值编码器通讯正确;若不一致,则代表与绝对值编码器通讯错误,此时放弃此次接收的数据。

其中,所述的主控芯片为FPGA芯片。

其中,该方法种还包括SN75176芯片,所述SN75176芯片一方面用于接收数据收发使能信号en、数据发送时钟模块生发送的clk_bps2信号、与FPGA芯片通信,另一方面用于与绝对值编码器通信和向数据接收模块发送数据。

其中,数据收发使能信号en的发送周期为T,其中T为FPGA芯片与绝对值编码器通讯一次的总时间;SN75176芯片的数据发送使能信号的发送周期T1;SN75176芯片的数据接收使能信号的发送周期T2;其中T等于T1+T2。

其中,该方法还包括接收数据存储器,所述数据存储器用于存储校验正确的编码器数据。

其中,数据发送时钟模块和数据接收时钟模块分别包括波特率生成模块。波特率生成模块用于生成特定波特率的数据发送点和数据接收点。

本发明的有益效果:本发明的一种与绝对值编码器通信的方法,使用时只需根据绝对值编码器的类型,设置适当的发送周期T、发送使能的周期T1、接收使能的周期T2、通信波特率F、通信字节数N,按照上述步骤,即可通用于多种类型的绝对值编码器,兼容性强,硬件电路简单,价格低廉且使用灵活。

附图说明

图1是本发明一种与绝对值编码器通信的方法的原理框图。

具体实施方式

为了便于本领域技术人员的理解,下面结合实施例及附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。

如图1所示,一种与绝对值编码器通信的方法,包括以下步骤:

S1:主控芯片生成使能模块、数据发送模块、数据接收模块、数据接收时钟模块和数据发送时钟模块;

S2:使能模块生成触发信号tx_int和数据收发使能信号en;

S3:数据发送模块接收到触发信号tx_int后,生成数据发送时钟模块的使能信号bps_start2;

S3:数据发送时钟模块收到使能bps_start2后,生成波特率为F的数据发送点clk_bps2;

S4:数据发送模块按照clk_bps2依次向绝对值编码器发送命令数据,发送完毕后关闭bps_start2;

S5:绝对值编码器向数据接收模块发送数据;

S6:当数据接收模块接收到绝对值编码器发送数据的起始位后,生成数据接收时钟模块的使能信号bps_start1;

S7:数据接收时钟模块接收到使能信号bps_start1后,生成波特率为F的数据接收点clk_bps1,并发送给数据接收模块;

S8:数据接收模块按照clk_bps1依次接收绝对值编码器发送的N字节数据,并对N字节数据的前N-1字节数据进行CRC运算,得出CRC校验码。

S9:比较CRC校验码与接收到的第N字节数据是否一致。若一致代表与绝对值编码器通讯正确;若不一致,则代表与绝对值编码器通讯错误,此时放弃此次接收的数据。

其中,所述的主控芯片为FPGA芯片。

其中,该方法种还包括SN75176芯片,所述SN75176芯片一方面用于接收数据收发使能信号en、数据发送时钟模块生发送的clk_bps2信号、与FPGA芯片通信,另一方面用于与绝对值编码器通信和向数据接收模块发送数据。

其中,数据收发使能信号en的发送周期为T,其中T为FPGA芯片与绝对值编码器通讯一次的总时间;SN75176芯片的数据发送使能信号的的发送周期T1;SN75176芯片的数据接收使能信号的的发送周期T2;其中T等于T1+T2。

其中,该方法还包括接收数据存储器,所述数据存储器用于存储校验正确的编码器数据。

其中,数据发送时钟模块和数据接收时钟模块分别包括波特率生成模块。波特率生成模块用于生成特定波特率的数据发送点和数据接收点。

用户使用时只需按照上述步骤设置参数,即可通用于多种类型的绝对值编码器,本发明一种与绝对值编码器通信的方法,兼容性强,硬件电路简单,价格低廉且使用灵活。

最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

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