一种伺服驱动器现场总线接口的控制系统
技术领域
本发明涉及工业自动化领域的伺服驱动器控制,具体地说是一种伺服驱动器现场总线接口的控制系统及方法。
背景技术
传统的伺服驱动器具有性能优良,系列全等优点,但只支持模拟量输入方式,不能用于基于现场总线通讯的工业自动化控制领域。传统的模拟量伺服驱动器,具有品种多,性能优,系列全等优点,但其信号容易受干扰,传输距离短,不能应该到大机床中;接线复杂,不方便扩展。不能用于基于现场总线通讯的工业自动化控制领域中。
发明内容
针对现有技术的上述不足之处,本发明要解决的技术问题是提供一种伺服驱动器现场总线接口的控制系统及方法。
本发明为实现上述目的所采用的技术方案是:一种伺服驱动器现场总线接口的控制系统,
现场总线外围接口电路,连接现场总线和FPGA模块,用于把从现场总线接收到的数据帧传送给FPGA模块,并把FPGA模块从串行总线通信电路接收到的上行信息,以现场数据帧的格式发送到现场总线;
FPGA模块,连接现场总线外围接口电路和串行总线通讯电路,实现了现场总线协议处理功能并用于现场总线数据帧与串行总线数据帧之间的通信;
串行总线通讯电路,连接FPGA模块和伺服驱动器控制模块,用于把下行信息以串行总线数据帧的格式发送给伺服驱动器控制模块,并接收上行信息。
所述FPGA模块包括:现场总线控制器模块,处理器模块、数据处理模块、数据校验模块和串并转换模块;
所述现场总线控制器模块是处理器模块、数据处理模块、数据校验模块、串并转换模块和串行总线通讯模块与现场总线进行数据交互的接口模块;
所述处理器模块,包括RAM、ROM和NIOS软核处理器,一方面将现场总线发送的下行信息,通过Avalon总线存储到双口RAM中,另一方面读取双口RAM中的上行信息;
所述数据处理模块一方面读取处理器模块存储在双口RAM中的下行信息,将下行信息转换成并行数据,传输到并行数据总线上,另一方面将并行数据总线上的上行信息存储到双口RAM中;
所述数据校验模块是实现上行信息与下行信息的数据校验功能的模块;
所述串并转换模块包括串行转并行模块和并行转串行模块,实现了串行数据和并行数据互相转换功能。
所述上行信息包括伺服驱动器的状态信息、错误报警信息和设备信息。
所述下行信息包括命令信息和参数设置信息。
所述现场总线协议处理包括对现场总线物理层、数据链路层、应用层的处理,并对外提供RAM接口和中断信号。
还包括系统复位电路,与FPGA模块连接,用于对NIOS软核处理器进行系统复位。
还包括栈号选择模块,与FPGA模块连接,用于设置现场总线从站设备栈号。
一种伺服驱动器现场总线接口的控制方法,包括上行过程和下行过程:
所述下行过程步骤为:总线控制器模块接收现场总线的下行信息后,通过Avalon总线将下行信息传给处理器模块进行处理,将处理后的下行信息,通过Avalon总线存储到双口RAM中,数据处理模块读取双口RAM里的下行信息,将下行信息转换成并行数据传输到并行数据总线上,并进行数据校验,将校验后的并行数据经过串并转换模块后转换成串行数据传到伺服驱动器控制模块;
所述上行过程步骤为:串并转换模块接收到伺服驱动器控制模块反馈的上行信息后,将串行数据转换成并行数据,通过数据校验后,传输到并行数据总线上,数据处理模块读取并行数据总线上的上行信息,存储在双口RAM里,处理器模块通过Avalon总线读取并处理双口RAM里的上行信息,将处理后的上 行信息发送给总线控制器模块,并传输到现场总线。
本发明具有以下优点:
1、本发明的在保留传统模拟伺服驱动器优点的情况下,使之具有了现场总线通讯的功能,且改进成本比较低;
2、本发明采用现场总线通讯,具有抗干扰性强,扩展性好等优点;
3、本发明由于采用现场总线通讯,使得系统与伺服驱动器的距离可达几百米远,适用于大机床;且大大简化吊挂与配电柜连线数量,提高了电器柜布线效率;
4、本发明的装置,使得传统伺服驱动器可直接连到现场总线上,并且可与别的现场总线设备混合使用,提高了经济性。
附图说明
图1为本发明的总体结构图;
图2为本发明的FPGA逻辑框图;
图3为本发明的双口RAM数据布局图;
图4为本发明的数据处理模块的数据处理流程图;
图5为本发明的伺服驱动器主控制板的串行总线的通讯时序。
其中,1为现场总线,2为现场总线外围接口电路。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
如图1所示,是本发明的总体结构框图,本发明装置应用在一种传统的伺服驱动器上,使之支持现场总线通讯,实现现场总线控制的功能。本发明装置硬件部门包括:现场总线外围接口电路,FPGA逻辑芯片,串行总线通讯电路,FPGA复位电路,栈号设置电路。
串行总线通讯电路,将来自FPGA的上位机的控制信息和数据以串行总线信号的方式传输给伺服驱动器,并把伺服驱动的状态信息、错误报警信息和设备信息等数据传输给FPGA。
如图2所示为本发明的FPGA逻辑框图,包括:现场总线处理模块、NIOS处理器模块、处理器总线接口模块、数据处理模块、数据校验模块、串并行转换模块、串行总线通讯模块。
FPGA为伺服驱动器现场总线接口卡的控制核心,通过现场总线控制电路接收到总线上传输的控制命令和数据,并对该信息进行数据处理,提取出该伺服驱动器的控制信息和数据,将该信息进行并串行转换,以串行总线的方式,将该命令数据发送给伺服驱动器执行。并接收串行总线上伺服驱动器发送回来的上行信息,主要是伺服驱动器的状态信息、错误报警信息和设备信息等,进行数据处理后,输入给协处理器,然后经现场总线控制模块发送到现场总线上,传送给上位机,实现上位机与伺服驱动器的现场总线通讯的功能。
现场总线控制模块的作用是接收并相应现场总线上位机发出的数据帧,同时把这个数据帧转发给下一个从站。如果数据帧的站地址与本站地址相同,则保存这个数据帧的数据,并发出响应帧。现场总线控制模块具有同步时钟模块可以保证各从站执行的同步性。协议处理模块具有硬件CRC校验模块,保证数据的可靠性。
NIOS处理器模块,包括软核处理器及RAM、ROM模块,是上位机的协处理器,负责对上位机通过现场总线发送的命令和数据进行运算处理,然后把处理过的数据通过Avalon总线存储到双口RAM中,供数据处理模块读写,以实现现场总线与数据处理模块的链接,现场总线与伺服驱动器进行信息交互。运行现场总线通信处理程序,作用是读取双口RAM中的配置数据,并将配置数据写入到总线协议处理模块的相关寄存器中。通信处理程序对总线协议处理模块的实时响应是通过调用中断服务函数实现的,通过判断状态寄存器的响应状态位区别该中断是命令中断还是消息中断,并调用相应的处理函数。消息中断处理函数用于处理现场总线上位机装置发送的消息帧,并将消息帧中的配置数据写入到相应的控制寄存器中。命令中断处理函数用于处理现场总线上位机装置发送的命令帧,将命令帧数据写入到双口RAM存储器中,同时读出双口RAM 存储器中的响应帧数据写入到现场总线协议处理模块中。
数据处理模块,作用是一方面读取双口RAM中的下行信息,把下行信息经过信息处理后,发送到下行的并行总线上,另一方面,读取上行的并行总线上的上行信息,经过信息处理后,把相应的配置数据写入到双口RAM中,供NIOS处理器模块读取。用来读取处理器模块放在双口RAM里命令和数据,把伺服驱动器相关的命令和数据读取出来,把它转换成并行数据,传输到并行数据总线上,提供给并行转串行模块。读取从伺服驱动器接收到的经过串并转换的并行数据,把相应的状态信息、错误报警信息和设备数据等信息填到相应的双口RAM存储器上,然后经过处理器模块,总线控制模块,以现场总线数据帧要求的格式把信息发送到现场总线上。实现与上位机通过现场总线通讯的功能。
数据校验模块,作用是对数据进行校验,以判断数据传输的正确性。把伺服驱动器的数据进行按位奇校验,然后把校验的值与最后1个字节的校验字节比对,如果相同,则代表校验正确,如果不相同,则代表校验错误,这是个传输错误的数据,应该丢弃。
串并行转换模块,主要实现伺服驱动器发来的串行数据与数据处理模块输出的并行数据实现串行转并行和并行转串行数据的功能作用是一方面把数据处理模块发送下来的下行信息,由并行数据转成串行数据数据,传递给串行总线模块发送出去,另一方面,将接收到串行总线模块上的上行信息,由串行数据转成并行数据发给数据处理模块。
串行总线通讯模块,作用是实现串行总线通讯的接收发送功能。
处理器总线接口模块,通过总线控制器模块与处理器模块进行读写数据交互,并将处理器处理后的现场总线的数据放置在双口RAM存储器重,供数据处理模块读取。
双口RAM存储器模块,是一部分用于放置现场总线的下行信息,包括伺服驱动器的命令和配置信息等,一部分用于放置现场总线的上行信息,主要是指状态信息、错误报警信息和设备信息等。
如图3所示为本发明的双口RAM数据布局图,容量为2048x32bit,划分为32块,每个块的大小容量为256x32bit,每4个块为1组,第一组用于存储上行信息,主要包括伺服状态,伺服错误/报警,伺服状态等信息。剩下的7组块,都用于存储现场总线的下行信息。主要包括伺服命令、伺服参数等。数据处理模块,说明分别如下:
伺服主控板到SC100为上行信息,主要是状态信息、错误报警信息和设备信息,如下表所示。
表1
上行信息块(256x 32bit) |
信息块说明 |
|
块1 |
伺服状态(位置、速度、力矩) |
|
块2 |
伺服报警信息(伺服相关参数配置) |
|
块3 |
伺服设备信息(厂家、规格、出厂日期等) |
|
块4 |
保留 |
|
由SC100发送给伺服主控板的为下行信息,主要是命令、配置信息,如下表所示。
表2
下行信息块(256x 32bit) |
信息块说明 |
|
块1 |
伺服命令(CNC发往伺服的命令) |
|
块2 |
伺服参数信息(伺服相关参数配置) |
|
块3 |
保留 |
|
块4 |
保留 |
|
图4所示为本发明的数据处理模块的数据处理流程图,在初始状态IDLE下,不做任何处理,当检测到数据处理的触发信号有效时,数据处理模块,进度到 数据处理过程,首先在双口RAM中读取到下行信息,将下行信息发送到并行总线上,然后再读取上行信息,将上行信息写到双口RAM中。最后再返回到初始状态。完成一次数据处理流程。
图5所示为本发明的伺服驱动器主控制板的串行总线的通讯时序,其各信号含义如下表所示:
表3
符号 |
名称 |
输入/输出 |
功能 |
|
SSEL |
通讯有效 |
主站输出 |
片选,通讯启动、停止 |
|
MOSI |
数据输出 |
主站输出 |
主板向扩展卡发送数据 |
|
MISO |
数据输入 |
主站输入 |
扩展卡向主板发送数据 |
|
SCK |
时钟 |
主站输出 |
|
|
串行总线通讯的数据帧固定为16个字节,连续发送,同时进行发送和接收数据。
从现场总线接收到的上位机发给伺服驱动器的下行信息,主要是命令和配置信息,经过数据转换处理后,已串行总线的方式发送给伺服驱动器执行;然后把从串行总线上接收到的伺服驱动器上行信息,主要是伺服驱动器的状态信息、错误报警信息和设备信息等,经过信息转换处理后,以现场总线方式发送给上位机。
将现场总线主站发出的信息放置于双口RAM中,然后经过串行数据处理模块,把信息处理成伺服驱动器要求的串行通信标准格式,发送给伺服驱动器的执行,并把伺服驱动器反馈回来的串行的状态和错误信息,经过数据处理模块,转变成现场总线数据帧的格式发送给主站。解决了传统伺服驱动器与现场总线设备通讯的问题。由于现场总线需要接收64个字节的数据,而这些数据包含许多从站的数据信息,而这些数据信息跟伺服驱动器相关的信息。
为了解决这个问题,在本设计采用软硬件结合的方法,处理现场总线传送的多站数据,采用NIOS软核处理器作为现场总线的上位机的协处理器,在FPGA上构建一个完整的片上嵌入式系统,无须外扩RAM和ROM。构建一个2048x32bit的双口RAM,划分为32块,每个块的大小容量为256x32bit,每4个块为1组,第一组用于存储上行信息,主要包括伺服状态,伺服错误/报警,伺服状态等信息。剩下的7组块,都用于存储现场总线的下行信息。主要包括伺服命令、伺服参数等。数据处理模块,分别读取伺服命令、伺服参数,通过状态机分别发送到并行总线上。在从并行总线读取伺服状态,伺服错误/报警,伺服状态等信息,用状态机分别存储到双口RAM中,然后处理器模块,通过avalon总线读取数据,数据经过总线控制模块,发送到现场总线上。实现上位机与传统伺服驱动器通过现场总线通信。