CN113341853B - 一种ip核、fpga芯片、交流伺服驱动器及通讯方法 - Google Patents

一种ip核、fpga芯片、交流伺服驱动器及通讯方法 Download PDF

Info

Publication number
CN113341853B
CN113341853B CN202110899135.6A CN202110899135A CN113341853B CN 113341853 B CN113341853 B CN 113341853B CN 202110899135 A CN202110899135 A CN 202110899135A CN 113341853 B CN113341853 B CN 113341853B
Authority
CN
China
Prior art keywords
module
data
state
sending
sdo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110899135.6A
Other languages
English (en)
Other versions
CN113341853A (zh
Inventor
矫日华
韩乐
刘家骏
雷成林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202110899135.6A priority Critical patent/CN113341853B/zh
Publication of CN113341853A publication Critical patent/CN113341853A/zh
Application granted granted Critical
Publication of CN113341853B publication Critical patent/CN113341853B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24215Scada supervisory control and data acquisition

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Communication Control (AREA)

Abstract

本申请涉及工业现场总线的技术领域,尤其是涉及一种IP核、FPGA芯片、交流伺服驱动器及通讯方法,所述IP核包括:CAN控制器和CANopen协议解析器;CAN控制器包括CAN接口模块、接收数据存储器以及发送数据存储器,CAN接口模块与外部的CAN收发器连接,接收数据存储器与CAN接口模块连接且用于缓存接收数据帧,所述发送数据存储器与所述CAN接口模块连接且用于缓存发送数据帧;所述CANopen通讯协议解析器包括数据处理模块、RPDO模块、SDO模块、NMT模块、SYN模块、TPDO模块及对象字典。本申请具有系统集成度高、控制灵活性强的特点,有利于保证交流伺服系统的工作可靠性。

Description

一种IP核、FPGA芯片、交流伺服驱动器及通讯方法
技术领域
本申请涉及工业现场总线的技术领域,尤其是涉及一种IP核、FPGA芯片、交流伺服驱动器及通讯方法。
背景技术
CANopen是一种架构在控制局域网络(Controller Area Ntework,CAN)上的高层通信协议,包括通信子协议以及设备子协议,其协议内容完全开放,广泛应用于I/O设备、伺服驱动设备、测控仪器、可编程设备、编码器、医疗器械、电梯控制、挤压设备、市政车辆等各种工业控制行业中。利用CANopen协议集里的运动控制子协议,可以实现对变频器、伺服驱动器等工业控制设备的CANopen 通信接口开发。
具体而言,将CANopen现场总线技术集成到交流伺服系统中,可以充分利用CAN总线的物理特性以及CANopen通讯协议的开放与免费等技术优势,将伺服驱动器作为一个标准的CANopen从站设备接入CANopen网络中,利用上位控制器对从站进行状态监控与参数给定,同时使用CANopen协议中规定的协议框架和各种通讯对象实现数据通信,大大提高了通讯效率。
如图1所示,目前的交流伺服系统中,通常是通过FPGA+MCU的组合实现CANopen通讯,该种实现方式中,FPGA与MCU之间需要数据交互,设计复杂,开发周期长,可移植性差,并且该种实现方式需要占用较多资源,不能保证并行处理速度,导致影响控制的灵活性,尤其是在电机伺服控制系统中,响应慢、定位不精准、误差大,不利于确保系统的工作可靠性。对此,有待进一步的改进。
发明内容
为了在伺服控制系统中实现CANopen通讯,同时保证CANopen通讯功能的可移植性,提高伺服控制系统并行处理的能力,本申请提供一种IP核、FPGA芯片、交流伺服驱动器及通讯方法。
第一方面,本申请提供的一种IP核采用如下的技术方案:
一种IP核,应用于伺服控制系统中以实现CANopen通讯,所述IP核包括:用于实现CAN通讯的CAN控制器和用于实现CANopen通讯协议的CANopen协议解析器;
所述CAN控制器包括CAN接口模块、接收数据存储器以及发送数据存储器,所述CAN接口模块与外部的CAN收发器连接,所述接收数据存储器与所述CAN接口模块连接且用于缓存接收数据帧,所述发送数据存储器与所述CAN接口模块连接且用于缓存发送数据帧;
所述CANopen通讯协议解析器包括数据处理模块、RPDO模块、SDO模块、NMT模块、SYN模块、TPDO模块以及对象字典;
所述数据处理模块与所述接收数据存储器连接且用于识别所述接收数据存储器中缓存的接收数据帧,根据所述接收数据帧的ID确定报文类型以及节点地址,并根据确定的报文类型以及节点地址将所述接收数据帧下发给对应的所述SYN模块、NMT模块、SDO模块或者所述RPDO模块进行处理;
所述RPDO模块用于实现RPDO通讯,当所述数据处理模块接收到的数据帧的功能码为FUNCTION_CODE_RPD时,调用所述RPDO模块,所述RPDO模块解析所述接收数据帧,并将相应参数存入对象字典;
所述SDO模块用于实现SDO通讯,当所述数据处理模块接收到的数据帧的功能码为FUNCTION_CODE_SDO_RX时,调用所述SDO模块,所述SDO模块进行SDO数据处理,并生成发送数据帧缓存至发送数据寄存器供所述发送数据存储器读取;
所述NMT模块用于进行节点状态管理,根据接收到的网络管理报文,进行节点状态切换;
所述SYN模块用于实现整个网络的同步传输,所述SYN模块接收到同步报文后,根据对象字典中的同步参数,进行相应的同步处理;
所述TPDO模块用于实现TPDO通讯,当所述TPDO模块接收到中断信号后,从对象字典中读取信号,生成发送数据帧缓存至发送数据寄存器供所述发送数据存储器读取;
所述对象字典用于存储CANopen节点的所有参数,所述对象字典通过EEPROM控制器与外部EEPROM连接以进行数据存储。
通过采用上述技术方案,通过将CANopen通讯功能设计为具有良好可移植性的IP核,便于用户调用,大大提高了实现CANopen通讯协议方式的灵活性。
可选的,所述接收数据存储器与所述发送数据存储器均采用FIFO存储器。
可选的,所述CAN接口模块通过数据线RX以及数据线TX与外部CAN收发器连接。
可选的,所述数据处理模块包括一有限状态机。
可选的,所述有限状态机的状态跳转流程包括:
S1:初始状态,接收到复位信号后,进入此状态并复位所述IP核的所有信号和寄存器,复位完成后会自动跳转到S2状态;
S2:应用层复位状态,此状态下复位NMT模块、SDO模块、TPDO模块、RPDO模块、SYN模块的信号和寄存器,复位完成后会自动跳转到S3状态;
S3:通讯接口复位状态,此状态下复位CAN控制器,复位完成后,接收到CANBUS_READY信号,进入S4状态,否则保持在S3状态;
S4:节点上线状态,此状态下准备节点上线报文,将报文数据存储至发送数据存储器,用于提示主站此节点已经加入网络,准备完成后进入S5状态;
S5:发送准备状态,此状态下将发送数据寄存器中发送数据帧存入发送FIFO中,等待发送,存储完成后进入S6状态;
S6:发送等待状态,此状态下等待CAN控制器从发送FIFO中读取发送数据帧,当接收到TxFifoReadEnable信号后,跳转至S7状态,否则保持在S6状态;
S7:空闲状态,当接收到HeartbeatProducerInterrupt信号或TpdoInterrupt信号后进入S8状态,当接收到RxFifoReadFinish信号后进入S9状态,否则保持在S7状态;
S8:TPDO状态,此状态下当接收到TpdoInterrupt信号,调用TPDO模块,进行TPDO数据准备,当接收到HeartbeatProducerInterrupt信号,进行心跳报文准备,最后分别将要发送的数据存储至发送数据寄存器,完成后自动跳转至S5状态;
S9:接收数据预处理状态,此状态下对接收数据帧进行分解,判断其ID对应的功能码,当功能码为FUNCTION_CODE_SDO_RX或FUNCTION_CODE_SYN时,进入S10状态,当功能码为FUNCTION_CODE_RPD或FUNCTION_CODE_NMT时,进入S11状态,当接收到NMT_RESET_APP信号时,从S9状态跳转到S2状态,当接收到NMT_RESET_COMM信号时,从S9状态跳转到S3状态;
S10:SDO或SYN状态,此状态下当功能码为FUNCTION_CODE_SDO_RX时,调用SDO模块,进行SDO数据处理和发送数据准备,当功能码为FUNCTION_CODE_SYN时,调用SYN模块,进行同步处理和发送数据准备,最后分别将要发送的数据存储至发送数据寄存器,完成后自动跳转至S5状态;
S11:RPDO 或NMT状态,此状态下当功能码为FUNCTION_CODE_RPD时,调用RPDO模块,进行RPDO数据处理,当功能码为FUNCTION_CODE_NMT时,调用NMT模块,进行节点状态切换处理,数据处理完成后自动跳转至S7状态。
第二方面,本申请提供一种FPGA芯片,其上构建有如上所述的实现CANopen通讯协议的IP核。
第三方面,本申请提供一种交流伺服驱动器,其采用如上所述的FPGA芯片作为主控芯片。
可选的,所述交流伺服驱动器包括伺服控制模块,所述伺服控制模块与所述IP核构建于同一FPGA芯片上。
第四方面,本申请提供一种交流伺服驱动器从站与主站实现CANopen通讯的方法,采用如上所述的交流伺服驱动器,所述方法包括以下步骤:
从站接收主站发送的数据并通过CAN收发器传入IP核的CAN接口模块;
CAN接口模块将接收到的数据帧整理并存入接收FIFO中;
数据处理模块从接收FIFO中读取接收数据帧,根据帧ID确定报文类型以及从站节点地址,并将数据发送给对应的模块处理。
可选的,所述根据帧ID确定报文类型以及从站节点地址,并将数据发送给对应的模块处理包括:
当根据帧ID确定报文类型为SDO,节点地址为该从站节点,数据处理模块将数据发送给SDO模块处理;
SDO模块读取接收到的数据,根据数据中的索引和子索引,将伺服控制参数存储到对象字典;
伺服控制模块在进行参数配置时,通过读取对象字典中存储伺服控制参数的寄存器,进行参数配置。
由上可知,本申请具有的有益技术效果包括:通过设计具有良好可移植性且能够实现CANopen通讯协议的IP核,通过将将IP核构建在FPGA上,通过使用构建有上述IP核的FPGA芯片作为主控芯片,在交流伺服系统中实现CANopen通讯,系统整体的集成度高,同时能够保证交流伺服系统并行处理的能力。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1是现有技术中实现CANopen通讯常用方案的功能模块框图。
图2是本申请实施例提供的实现CANopen通讯协议的IP核的功能模块框图。
图3是数据处理模块状态机的状态跳转流程图。
图4是对本申请实施例提供的IP核进行通讯测试时的操作页面示意图。
图5是测试NMT功能是否正常时的页面示意图。
图6是测试PDO功能、SYN功能以及SDO功能是否正常时的页面示意图。
图7是本申请实施提供的一种伺服驱动器的主控芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
参照图1,为在伺服系统中实现CANopen通讯的一种现有技术方案,其通过FPGA+MCU的组合实现CANopen通讯,FPGA与MCU之间需要数据交互,实际使用时不容易实现实时CANopen通讯。为了在交流伺服系统中实现高效率的CANopen通讯,本申请实施例公开一种IP核、FPGA芯片、交流伺服驱动器及通讯方法。
参照图2,该实现CANopen通讯协议的IP核包括CAN控制器以及CANopen通讯协议解析器,其中,所述CAN控制器用于实现CAN通讯,所述CANopen通讯协议解析器用于实现CANopen通讯。
参照图2,本申请实施例中的CAN控制器包括:CAN接口模块、接收数据存储器以及发送数据存储器,所述CAN接口模块与外部的CAN收发器连接,所述接收数据存储器与所述CAN接口模块连接且用于缓存接收数据帧(RxFrame_q),所述发送数据存储器与所述CAN接口模块连接且用于缓存发送数据帧(TxFrame_q)。
其中,所述CAN接口模块可通过数据线RX以及数据线TX与外部CAN收发器连接,所述CAN接口模块可以实现位流处理、错误处理以及位逻辑控制等功能。CAN接口模块接收完成一帧数据后,将DATA(Data,数据)、ID(Identifier,标识符)、RTR(Remote TransmissionRequest,远程传输请求)、IDE(Identifier Extension,标识符扩展)以及DLC(Data LengthCode,数据长度)等合并至接收数据帧(RxFrame_q),并存入接收数据存储器中。发送数据时,CAN接口模块从发送数据存储器中读取发送数据帧(TxFrame_q)并解析发送。
在一些实施例中,所述接收数据存储器与所述发送数据存储器采用FIFO(FirstInput First Output)存储器,即将接收数据存储器设置为接收FIFO,将发送数据存储器设置为发送FIFO。利用FIFO存储器“先进先出”的特性,增加数据传输率,从而提高IP核性能。
参照图2,本申请实施例中的CANopen协议解析器包括:数据处理模块;接收过程数据对象模块(Receive Process Data Object),以下简称RPDO模块;服务数据对象模块(Service Data Object),以下简称SDO模块;网络管理模块(Network Management),以下简称NMT模块;同步模块(Synchronize),以下简称SYN模块;发送过程数据对象模块(TransmitProcess Data Object),以下简称TPDO模块;以及,对象字典。
其中,所述数据处理模块与所述接收FIFO连接且用于识别所述接收FIFO中缓存的接收数据帧(RxFrame_q),根据所述接收数据帧(RxFrame_q)的ID确定报文类型以及节点地址,并根据确定的报文类型以及节点地址将所述接收数据帧(RxFrame_q)下发给对应的所述SYN模块、NMT模块、SDO模块或者所述RPDO模块进行处理;
所述RPDO模块用于实现RPDO通讯,当所述数据处理模块接收到的数据帧的功能码为FUNCTION_CODE_RPD时,调用所述RPDO模块,所述RPDO模块解析所述接收数据帧(RxFrame_q),并将相应参数存入对象字典;
所述SDO模块用于实现SDO通讯,当所述数据处理模块接收到的数据帧的功能码为FUNCTION_CODE_SDO_RX时,调用所述SDO模块,所述SDO模块进行SDO数据处理,并生成发送数据帧(TxFrame_q)缓存至发送数据寄存器供所述发送FIFO读取;
所述NMT模块用于进行节点状态管理,根据接收到的网络管理报文,进行节点状态切换;
所述SYN模块用于实现整个网络的同步传输,所述SYN模块接收到同步报文后,根据对象字典中的同步参数,进行相应的同步处理;
所述TPDO模块用于实现TPDO通讯,当所述TPDO模块接收到中断信号后,从对象字典中读取信号,生成发送数据帧(TxFrame_q)缓存至发送数据寄存器供所述发送FIFO读取;
所述对象字典用于存储CANopen节点的所有参数,所述对象字典通过EEPROM控制器与外部EEPROM(Electrically Erasable Programmable Read-Only Memory,电可插编程只读存储器)连接以进行数据存储。
其中,所述数据处理模块包括一有限状态机。
参照图3,所述有限状态机的状态跳转流程包括:
S1:初始状态,当接收到复位信号后,所述IP核进入此状态并复位所述IP核的所有信号和寄存器,复位完成后会自动跳转到S2状态;
S2:应用层复位状态,此状态下复位NMT模块、SDO模块、TPDO模块、RPDO模块、SYN模块的信号和寄存器,复位完成后会自动跳转到S3状态;
S3:通讯接口复位状态,此状态下复位CAN控制器,复位完成后,接收到CANBUS_READY信号,进入S4状态,否则保持在S3状态;
S4:节点上线状态,此状态下准备节点上线报文,将报文数据存储至发送数据存储器,用于提示主站此节点已经加入网络,准备完成后进入S5状态;
S5:发送准备状态,此状态下将发送数据寄存器中发送数据帧存入发送FIFO中,等待发送,存储完成后进入S6状态;
S6:发送等待状态,此状态下等待CAN控制器从发送FIFO中读取TxFrame_q(即发送数据帧),当接收到TxFifoReadEnable(即发送FIFO读使能)信号后,跳转至S7状态,否则保持在S6状态;
S7:空闲状态,当接收到HeartbeatProducerInterrupt(即心跳中断)信号或TpdoInterrupt(即TPDO中断)信号后进入S8状态,当接收到RxFifoReadFinish(即接收FIFO读取完成)信号后进入S9状态,否则保持在S7状态;
S8:TPDO或HEARTBEAT状态,此状态下当接收到TpdoInterrupt(即TPDO中断)信号,调用TPDO模块,进行TPDO数据准备,当接收到HeartbeatProducerInterrupt(即心跳中断)信号,进行心跳报文准备,最后分别将要发送的数据存储至发送数据寄存器,完成后自动跳转至S5状态;
S9:接收数据预处理状态,此状态下对接收数据帧进行分解,判断其ID对应的功能码,当功能码为FUNCTION_CODE_SDO_RX或FUNCTION_CODE_SYN时,进入S10状态,当功能码为FUNCTION_CODE_RPD或FUNCTION_CODE_NMT时,进入S11状态;当接收到NMT_RESET_APP信号时,从S9状态跳转到S2状态,当接收到NMT_RESET_COMM信号时,从S9状态跳转到S3状态;
S10:SDO或SYN状态,此状态下当功能码为FUNCTION_CODE_SDO_RX时,调用SDO模块,进行SDO数据处理和发送数据准备,当功能码为FUNCTION_CODE_SYN时,调用SYN模块,进行同步处理和发送数据准备,最后分别将要发送的数据存储至发送数据寄存器,完成后自动跳转至S5状态;
S11:RPDO或NMT状态,此状态下当功能码为FUNCTION_CODE_RPD时,调用RPDO模块,进行RPDO数据处理,当功能码为FUNCTION_CODE_NMT时,调用NMT模块,进行节点状态切换处理,数据处理完成后自动跳转至S7状态。
本申请实施例中,通过在伺服驱动器的控制系统中采用构建有上述实现CANopen通讯协议IP核的FPGA芯片作为主控芯片,将伺服驱动器作为一个标准的CANopen从站设备,并利用USBCAN总线分析仪作为CANopen主站,进行CANopen通讯测试。
其中,CANopen节点状态有六种,如表1所示:
Figure 626187DEST_PATH_IMAGE001
Figure 481010DEST_PATH_IMAGE003
CANopen通讯测试过程如下:
参照图4-6,本申请实施例通过USBCAN总线分析仪作为CANopen主站,进行通讯测试:
具体的,参照图4和图5,从站周期发送心跳报文,上电复位后进入boot up状态,发送心跳报文数据为0x00,之后进入操作状态,心跳报文数据为0x05,主站可以通过NMT命令来改变从站的节点状态,例如发送0x0205,让节点进入停止状态0x04,发送0x0105,让节点进入操作状态0x05,说明NMT功能正常。
参照图6,当主站发送PDO数据和同步报文后,从站也返回PDO数据,PDO的参数如表2所示:
表 2
Figure 464010DEST_PATH_IMAGE004
首先主站通过PDO模块向从站发送控制字(Controlword)0x0012和目标位置(Target position)0x00000040,之后发送同步报文,从站接收到同步报文后向主站通过PDO模块发送状态字(Statusword)0x0012和当前位置(Position actual value)0x00000055,说明从站PDO功能和SYN功能正常。
主站通过SDO模块向从站写入电流限制值0x0018,即向索引0x6410和子索引0x01内写入0x0018,写入成功后,主站通过SDO模块读取从站电流限制值,读取数值为0x0018,说明SDO功能正常。
另外,本申请实施例还公开一种FPGA芯片,其上构建有如上所述的能够实现CANopen通讯协议的IP核。
参照图7,本申请实施例还公开一种交流伺服驱动器,所述交流伺服驱动器采用如上所述的FPGA芯片作为主控芯片,所述交流伺服驱动器包括伺服控制模块,且所述伺服控制模块与所述IP核构建于同一FPGA芯片上,所述伺服控制模块与对象字典连接,所述CAN接口模块通过数据线RX和数据线TX与芯片外部CAN收发器连接。
其中,所述交流伺服驱动器作为一个CANopen从站设备接入包括CANopen主站的CANopen网络中。
本申请实施例还公开一种交流伺服驱动器从站与主站实现CANopen通讯的方法,采用上述的交流伺服驱动器,所述方法包括以下步骤:
P1、从站接收主站发送的数据并通过CAN收发器传入IP核的CAN接口模块;
P2、CAN接口模块将接收到的数据帧整理并存入接收FIFO中;
P3、数据处理模块从接收FIFO中读取接收数据帧,根据帧ID确定报文类型以及从站节点地址,并将数据发送给对应的模块处理。
其中,所述数据可为SDO数据、PDO数据、RPDO数据等。
当所述数据为包含伺服控制参数的SDO数据时,所述步骤P3还包括:
P31、根据帧ID确定报文类型为SDO,节点地址为该从站节点,数据处理模块将数据发送给SDO模块处理;
P32、SDO模块读取接收到的数据,根据数据中的索引和子索引,将伺服控制参数存储到对象字典;
P33、伺服控制模块在进行参数配置时,通过读取对象字典中存储伺服控制参数的寄存器,进行参数配置。
P34、SDO模块接收到正确的数据并处理完成后,生成接收相应数据帧,并将其储存至发送FIFO中;
P35、CAN接口模块识别到发送FIFO不为空时,从发送FIFO中读取数据,将数据发送给CAN收发器,进而发送给CANopen主站。
简言之,本申请实施例通过将上述实现CANopen通讯协议的IP核与伺服控制模块构建于同一FPGA芯片上,并采用该FPGA芯片作为交流伺服驱动器的主控芯片,实现CANopen主站与从站之间的实时CANopen通讯,系统集成度高且并行处理能力强,有利于缩短开发周期,且控制灵活性强,有利于确保交流伺服驱动器的工作可靠性。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种IP核,应用于伺服控制系统中以实现CANopen通讯,其特征在于,所述IP核包括:
用于实现CAN通讯的CAN控制器和用于实现CANopen通讯协议的CANopen通讯协议解析器;
所述CAN控制器包括CAN接口模块、接收数据存储器以及发送数据存储器,所述CAN接口模块与外部的CAN收发器连接,所述接收数据存储器与所述CAN接口模块连接且用于缓存接收数据帧,所述发送数据存储器与所述CAN接口模块连接且用于缓存发送数据帧;
所述CANopen通讯协议解析器包括数据处理模块、RPDO模块、SDO模块、NMT模块、SYN模块、TPDO模块以及对象字典;
所述数据处理模块与所述接收数据存储器连接且用于识别所述接收数据存储器中缓存的接收数据帧,根据所述接收数据帧的ID确定报文类型以及节点地址,并根据确定的报文类型以及节点地址将所述接收数据帧下发给对应的所述SYN模块、NMT模块、SDO模块或者所述RPDO模块进行处理;
所述RPDO模块用于实现RPDO通讯,当所述数据处理模块接收到的数据帧的功能码为FUNCTION_CODE_RPD时,调用所述RPDO模块,所述RPDO模块解析所述接收数据帧,并将相应参数存入对象字典;
所述SDO模块用于实现SDO通讯,当所述数据处理模块接收到的数据帧的功能码为FUNCTION_CODE_SDO_RX时,调用所述SDO模块,所述SDO模块进行SDO数据处理,并生成发送数据帧缓存至发送数据寄存器供所述发送数据存储器读取;
所述NMT模块用于进行节点状态管理,根据接收到的网络管理报文,进行节点状态切换;
所述SYN模块用于实现整个网络的同步传输,所述SYN模块接收到同步报文后,根据对象字典中的同步参数,进行相应的同步处理;
所述TPDO模块用于实现TPDO通讯,当所述TPDO模块接收到中断信号后,从对象字典中读取信号,生成发送数据帧缓存至发送数据寄存器供所述发送数据存储器读取;
所述对象字典用于存储CANopen节点的所有参数,所述对象字典通过EEPROM控制器与外部EEPROM连接以进行数据存储。
2.根据权利要求1所述的一种IP核,其特征在于,所述接收数据存储器与所述发送数据存储器均采用FIFO存储器。
3.根据权利要求1所述的一种IP核,其特征在于:所述CAN接口模块通过数据线RX以及数据线TX与外部CAN收发器连接。
4.根据权利要求1所述的一种IP核,其特征在于:所述数据处理模块包括一有限状态机。
5.根据权利要求4所述的一种IP核,其特征在于:所述有限状态机的状态跳转流程包括:
S1:初始状态,接收到复位信号后,进入此状态并复位所述IP核的所有信号和寄存器,复位完成后会自动跳转到S2状态;
S2:应用层复位状态,此状态下复位NMT模块、SDO模块、TPDO模块、RPDO模块、SYN模块的信号和寄存器,复位完成后会自动跳转到S3状态;
S3:通讯接口复位状态,此状态下复位CAN控制器,复位完成后,接收到CANBUS_READY信号,进入S4状态,否则保持在S3状态;
S4:节点上线状态,此状态下准备节点上线报文,将报文数据存储至发送数据存储器,用于提示主站此节点已经加入网络,准备完成后进入S5状态;
S5:发送准备状态,此状态下将发送数据寄存器中发送数据帧存入发送FIFO中,等待发送,存储完成后进入S6状态;
S6:发送等待状态,此状态下等待CAN控制器从发送FIFO中读取发送数据帧,当接收到TxFifoReadEnable信号后,跳转至S7状态,否则保持在S6状态;
S7:空闲状态,当接收到HeartbeatProducerInterrupt信号或TpdoInterrupt信号后进入S8状态,当接收到RxFifoReadFinish信号后进入S9状态,否则保持在S7状态;
S8:TPDO或HEARTBEAT状态,此状态下当接收到TpdoInterrupt信号,调用TPDO模块,进行TPDO数据准备,当接收到HeartbeatProducerInterrupt信号,进行心跳报文准备,最后分别将要发送的数据存储至发送数据寄存器,完成后自动跳转至S5状态;
S9:接收数据预处理状态,此状态下对接收数据帧进行分解,判断其ID对应的功能码,当功能码为FUNCTION_CODE_SDO_RX或FUNCTION_CODE_SYN时,进入S10状态,当功能码为FUNCTION_CODE_RPD或FUNCTION_CODE_NMT时,进入S11状态,当接收到NMT_RESET_APP信号时,从S9状态跳转到S2状态,当接收到NMT_RESET_COMM信号时,从S9状态跳转到S3状态;
S10:SDO或SYN状态,此状态下当功能码为FUNCTION_CODE_SDO_RX时,调用SDO模块,进行SDO数据处理和发送数据准备,当功能码为FUNCTION_CODE_SYN时,调用SYN模块,进行同步处理和发送数据准备,最后分别将要发送的数据存储至发送数据寄存器,完成后自动跳转至S5状态;
S11:RPDO或NMT状态,此状态下当功能码为FUNCTION_CODE_RPD时,调用RPDO模块,进行RPDO数据处理,当功能码为FUNCTION_CODE_NMT时,调用NMT模块,进行节点状态切换处理,数据处理完成后自动跳转至S7状态。
6.一种FPGA芯片,其特征在于,所述FPGA芯片上构建有如权利要求1-5任一项所述的IP核。
7.一种交流伺服驱动器,其特征在于,所述交流伺服驱动器采用如权利要求6所述的FPGA芯片作为主控芯片。
8.根据权利要求7所述的一种交流伺服驱动器,其特征在于,所述交流伺服驱动器包括伺服控制模块,所述伺服控制模块与所述IP核构建于同一FPGA芯片上。
9.一种交流伺服驱动器从站与主站实现CANopen通讯的方法,其特征在于,采用如权利要求8所述的交流伺服驱动器,所述方法包括以下步骤:
从站接收主站发送的数据并通过CAN收发器传入IP核的CAN接口模块;
CAN接口模块将接收到的数据帧整理并存入接收FIFO中;
数据处理模块从接收FIFO中读取接收数据帧,根据帧ID确定报文类型以及从站节点地址,并将数据发送给对应的模块处理。
10.根据权利要求9所述的一种交流伺服驱动器从站与主站实现CANopen通讯的方法,其特征在于,所述根据帧ID确定报文类型以及从站节点地址,并将数据发送给对应的模块处理包括:
当根据帧ID确定报文类型为SDO,节点地址为该从站节点,数据处理模块将数据发送给SDO模块处理;
SDO模块读取接收到的数据,根据数据中的索引和子索引,将伺服控制参数存储到对象字典;
伺服控制模块在进行参数配置时,通过读取对象字典中存储伺服控制参数的寄存器,进行参数配置。
CN202110899135.6A 2021-08-06 2021-08-06 一种ip核、fpga芯片、交流伺服驱动器及通讯方法 Active CN113341853B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110899135.6A CN113341853B (zh) 2021-08-06 2021-08-06 一种ip核、fpga芯片、交流伺服驱动器及通讯方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110899135.6A CN113341853B (zh) 2021-08-06 2021-08-06 一种ip核、fpga芯片、交流伺服驱动器及通讯方法

Publications (2)

Publication Number Publication Date
CN113341853A CN113341853A (zh) 2021-09-03
CN113341853B true CN113341853B (zh) 2021-10-12

Family

ID=77481078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110899135.6A Active CN113341853B (zh) 2021-08-06 2021-08-06 一种ip核、fpga芯片、交流伺服驱动器及通讯方法

Country Status (1)

Country Link
CN (1) CN113341853B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314338B (zh) * 2022-07-27 2024-03-12 湖南航天机电设备与特种材料研究所 一种实时性运动控制方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103916252A (zh) * 2014-04-18 2014-07-09 岳阳巅峰电子科技有限责任公司 一种基于fpga的高带宽以太网ip核
CN106483930A (zh) * 2016-11-18 2017-03-08 华中科技大学 一种混合型可重构CANopen从站的自动配置方法
CN108650136A (zh) * 2018-05-17 2018-10-12 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的主/从站卡的设计方法
CN108768981A (zh) * 2018-05-17 2018-11-06 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的IP核

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017214892A1 (de) * 2017-08-25 2019-02-28 Lenze Automation Gmbh Verfahren zur Inbetriebnahme eines Steuergerätesystems und Steuergerätesystem

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103916252A (zh) * 2014-04-18 2014-07-09 岳阳巅峰电子科技有限责任公司 一种基于fpga的高带宽以太网ip核
CN106483930A (zh) * 2016-11-18 2017-03-08 华中科技大学 一种混合型可重构CANopen从站的自动配置方法
CN108650136A (zh) * 2018-05-17 2018-10-12 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的主/从站卡的设计方法
CN108768981A (zh) * 2018-05-17 2018-11-06 中工科安科技有限公司 一种实现Powerlink工业实时以太网通讯的IP核

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"CAN总线控制器IP核设计";张俊国 等;《微处理机》;20070815(第4期);12-17 *
"基于SOPC的CANopen节点的设计";宋瑞雪 等;《计算机工程与设计》;20130331;第34卷(第3期);863-867 *

Also Published As

Publication number Publication date
CN113341853A (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
CN100471156C (zh) 数据总线桥接器及其工作方法
CN103714029B (zh) 新型二线同步通信协议及应用
CN108650136B (zh) 一种实现Powerlink工业实时以太网通讯的主/从站卡的设计方法
CN110471872B (zh) 一种基于zynq芯片实现m-lvds总线数据交互系统和方法
CN110471880B (zh) 一种基于FPGA支持Label号筛选的ARINC429总线模块及其数据传输方法
CN107741915B (zh) 一种基于sdio接口的fpga板级通信装置及通信方法
JPS61212940A (ja) マルチネツトワ−クシステムのデ−タ伝送方法
CN108255754B (zh) 一种兼容i2c的i3c主设备、i3c主从设备通信系统及方法
CN110109872B (zh) 一种遥感卫星异构数据统一存储管理装置
CN110519138B (zh) 一种Profibus-DP主站协议的实现方法及系统
CN104714907B (zh) 一种pci总线转换为isa和apb总线设计方法
CN101937406A (zh) 一种VxWorks操作系统中实现驱动1394设备的方法和系统
CN112564882B (zh) 一种基于ahb总线的单线数字通讯接口
CN102088444A (zh) Profibus dp与profibus pa协议转换网关模块
CN112398714B (zh) 一种背板总线主站、系统及其数据通信方法
CN110635985A (zh) 一种FlexRay-CPCIe通信模块
CN113341853B (zh) 一种ip核、fpga芯片、交流伺服驱动器及通讯方法
CN107579894B (zh) 一种基于fpga的ebr1553总线协议实现装置
CN102981827A (zh) 一种基于中间件的显示界面数据处理方法及平台
CN107370750A (zh) 一种转接模块的数据存储方法、装置以及转接模块
CN107957971A (zh) 一种基于fpga的多处理器之间的通信系统及通信方法
CN110851390B (zh) 一种基于fpga实现4m 1553b总线协议的方法及系统
WO2024113990A1 (zh) 一种光模块的信息查询方法及其相关组件
CN114124609B (zh) 一种基于1553b总线的通信装置及通信方法
CN115065575B (zh) 基于can总线控制器的数据传输系统及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant