本发明涉及数控系统软件领域,尤其涉及总线型驱动器通讯领域,具体是指一种支持多种总线驱动器通讯协议的控制器及其通讯控制方法。
背景技术:
相对于脉冲型驱动器,总线型驱动器具有性能可靠、数据吞吐量大、接线简单等优点,目前得到广泛应用。
现有的总线型驱动器控制系统,常只能适配一种总线协议。若想支持另一种总线驱动器,需要开发新的数控系统,硬件成本较高,开发难度大。
为了降低开发成本,使用一个专用的控制器,负责与总线驱动器通讯。数控系统的其他功能,由其他设备负责。这样更换总线协议时,仅需更换控制器即可。
技术实现要素:
本发明的目的是克服了上述现有技术的缺点,提供了一种硬件成本低、开发难度小、性能可靠的支持多种总线驱动器通讯协议的控制器及其通讯控制方法。
为了实现上述目的,本发明的支持多种总线驱动器通讯协议的控制器及其通讯控制方法如下:
该支持多种总线驱动器通讯协议的控制器,其主要特点是,所述的系统包括:
芯片级系统soc,用于管理控制器上硬件设备,并适配多种不同的通信协议;
硬件io,与所述的芯片级系统soc相连接,用于集成数控系统所需功能的硬件设备;
通讯接口,均与所述的芯片级系统soc和硬件io相连接,用于支持设备通过总线协议通讯的硬件接口。
所述的芯片级系统soc包括:
可编程的逻辑门电路结构pl,与所述的硬件io相连接,用于支持硬件io读写和与上位机通讯的数据链路层;
处理系统ps,与所述的硬件io和通讯接口相连接,用于完成控制器的线程工作。
较佳地,所述的处理系统ps包括:
周期性通讯模块,与所述的硬件io和通讯接口相连接,用于处理设备的周期性通讯报文和命令;
非周期性通讯模块,与所述的硬件io和通讯接口相连接,用于处理设备的非周期性通讯报文和命令。
较佳地,所述的可编程的逻辑门电路结构pl包括fpga。
较佳地,所述的硬件io包括io端口和手轮串口。
较佳地,所述的通讯接口包括:
上位机通讯接口,与所述的芯片级系统soc和硬件io相连接,与上位机相连接,用于与上位机通过自定义协议通讯;
驱动器通讯接口,与所述的芯片级系统soc和硬件io相连接,与驱动器相连接,用于与驱动器通过自定义协议通讯。
该利用上述控制器实现支持多种总线驱动器通讯协议的通讯控制方法,其主要特点是,所述的方法包括以下步骤:
(1-1)所述的处理系统ps自定义报文的派发;
(1-2)所述的处理系统ps与驱动器进行非周期性通讯;
(1-3)所述的控制器收到上位机的输出端口控制命令后设置对应的输出端口状态。
较佳地,所述的步骤(1-1)具体包含以下步骤:
(1-1.1)所述的处理系统ps把上位机发送的报文转交给各功能块
(1-1.2)所述的控制器收集各功能块产生的周期性、非周期性报文,并转交给上位机。
较佳地,所述的处理系统ps包括周期性通讯模块和非周期性通讯模块,所述的步骤(1-2)具体包含以下步骤:
(1-2.1)判断总线协议是否支持非周期性通讯,如果是,继续步骤(1-2.2);否则,继续步骤(1-2.3);
(1-2.2)所述的非周期性通讯模块将上位机生成的非周期性驱动器命令组成驱动器指令包,转发给驱动器,并解包后转发给上位机;
(1-2.3)所述的周期性通讯模块将上位机生成的非周期性驱动器命令转发给驱动器和上位机。
较佳地,所述的步骤(1-2.2)中所述的非周期性驱动器命令包括读写驱动器参数。
较佳地,所述的方法还包含以下操作步骤:
(2-1)所述的处理系统ps与驱动器进行周期性通讯;
(2-2)所述的控制器周期性上传输入端口状态。
较佳地,所述的处理系统ps包括周期性通讯模块和非周期性通讯模块,所述的步骤(2-1)具体包含以下步骤:
(2-1.1)所述的周期性通讯模块将上位机生成的脉冲命令和控制命令组成总线驱动器指令包,并转发给驱动器;
(2-1.2)所述的周期性通讯模块将所述的总线驱动器响应包拆分成反馈位置和驱动器状态,并转发给上位机。
较佳地,所述的步骤(2-1.1)中所述的脉冲命令和控制命令包括使能状态。
较佳地,所述的步骤(2-1.2)中所述的驱动器状态包括报警状态。
采用了本发明的支持多种总线驱动器通讯协议的控制器及其通讯控制方法,具有总线型驱动器的控制精度高、性能可靠、接线简单等优点,可适配多种总线协议,且不需要开发新的数控系统,开发成本降低,硬件成本更低,适用范围更广。
附图说明
图1为本发明的支持多种总线驱动器通讯协议的控制器的主要硬件构成示意图。
图2为本发明的支持多种总线驱动器通讯协议的控制器的连线示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
该支持多种总线驱动器通讯协议的控制器,其中,所述的系统包括:
芯片级系统soc,用于管理控制器上硬件设备,并适配多种不同的通信协议;
硬件io,与所述的芯片级系统soc相连接,用于集成数控系统所需功能的硬件设备;
通讯接口,均与所述的芯片级系统soc和硬件io相连接,用于支持设备通过总线协议通讯的硬件接口。
所述的芯片级系统soc包括:
可编程的逻辑门电路结构pl,与所述的硬件io相连接,用于支持硬件io读写和与上位机通讯的数据链路层;
处理系统ps,与所述的硬件io和通讯接口相连接,用于完成控制器的线程工作。
较佳地,所述的处理系统ps包括:
周期性通讯模块,与所述的硬件io和通讯接口相连接,用于处理设备的周期性通讯报文和命令;
非周期性通讯模块,与所述的硬件io和通讯接口相连接,用于处理设备的非周期性通讯报文和命令。
作为本发明的优选实施方式,所述的可编程的逻辑门电路结构pl包括fpga。
作为本发明的优选实施方式,所述的硬件io包括io端口和手轮串口。
作为本发明的优选实施方式,所述的通讯接口包括:
上位机通讯接口,与所述的芯片级系统soc和硬件io相连接,与上位机相连接,用于与上位机通过自定义协议通讯;
驱动器通讯接口,与所述的芯片级系统soc和硬件io相连接,与驱动器相连接,用于与驱动器通过自定义协议通讯。
该利用上述控制器实现支持多种总线驱动器通讯协议的通讯控制方法,其中包括以下步骤:
(1-1)所述的处理系统ps自定义报文的派发;
(1-1.1)所述的处理系统ps把上位机发送的报文转交给各功能块
(1-1.2)所述的控制器收集各功能块产生的周期性、非周期性报文,并转交给上位机;
(1-2)所述的处理系统ps与驱动器进行非周期性通讯;
(1-2.1)判断总线协议是否支持非周期性通讯,如果是,继续步骤(1-2.2);否则,继续步骤(1-2.3);
(1-2.2)所述的非周期性通讯模块将上位机生成的非周期性驱动器命令组成驱动器指令包,转发给驱动器,并解包后转发给上位机;
(1-2.3)所述的周期性通讯模块将上位机生成的非周期性驱动器命令转发给驱动器和上位机;
(1-3)所述的控制器收到上位机的输出端口控制命令后设置对应的输出端口状态。
较佳地,所述的步骤(1-2.2)中所述的非周期性驱动器命令包括读写驱动器参数。
较佳地,所述的方法还包含以下操作步骤:
(2-1)所述的处理系统ps与驱动器进行周期性通讯;
(2-1.1)所述的周期性通讯模块将上位机生成的脉冲命令和控制命令组成总线驱动器指令包,并转发给驱动器;
(2-1.2)所述的周期性通讯模块将所述的总线驱动器响应包拆分成反馈位置和驱动器状态,并转发给上位机;
(2-2)所述的控制器周期性上传输入端口状态。
较佳地,所述的步骤(2-1.1)中所述的脉冲命令和控制命令包括使能状态。
较佳地,所述的步骤(2-1.2)中所述的驱动器状态包括报警状态。
本发明的具体实施方式中,该结构的控制器,即可实现适配总线通讯协议的功能,同时可作为数控系统的部分外设使用。
soc:芯片级系统,也可以叫做片上系统,它是用来管理控制器上全部硬件设备的处理器。
pl:可编程的逻辑门电路,也就是fpga部分。
ps:处理系统,就是与fpga无关的soc部分。
上位机通讯接口:与上位机通过自定义协议通讯的硬件接口。
驱动器通讯接口:与驱动器通过总线协议通讯的硬件接口,包括部分总线通讯需要用的芯片。
硬件io:控制器上可以集成部分数控系统需要的功能的硬件设备,比如io端口、手轮串口等。
soc:管理控制器上全部硬件设备的处理器。
soc是该控制器的核心部分。
pl部分功能:
1、硬件io读写。
2、与上位机通讯的数据链路层。
ps部分:
1、自定义报文的派发
把上位机发送的报文转交给各功能块。
收集各功能块产生的周期性、非周期性报文,转交给上位机。
2、与驱动器周期性通讯
把上位机生成的脉冲、控制命令(如使能状态),组成驱动器指令包,转发给驱动器。
把总线驱动器响应包,拆分成反馈位置、驱动器状态(如报警状态),转发给上位机。
3、与驱动器非周期性通讯
把上位机生成的非周期性驱动器命令(如读写驱动器参数),组成驱动器指令包,转发给驱动器,并把响应解包后转发给上位机。
部分总线协议不支持非周期性通讯(如m2协议),可以在周期性通讯模块中实现该功能。
4、收到上位机的输出端口控制命令时,设置对应的输出端口状态。
5、周期性上传输入端口状态。
仅需要两个线程即可完成以上功能。
主线程:完成1、3、4功能
中断线程/定时器线程:完成2、5功能
现有的总线型驱动器控制系统,常只能适配一种总线协议,若想支持另一种总线驱动器,需要开发新的数控系统,开销是非常大的。
采用了本发明的支持多种总线驱动器通讯协议的控制器及其通讯控制方法,具有总线型驱动器的控制精度高、性能可靠、接线简单等优点,可适配多种总线协议,且不需要开发新的数控系统,开发成本降低,硬件成本更低,适用范围更广。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。