CN117827288A - 数据传输方法及控制系统 - Google Patents
数据传输方法及控制系统 Download PDFInfo
- Publication number
- CN117827288A CN117827288A CN202311748906.7A CN202311748906A CN117827288A CN 117827288 A CN117827288 A CN 117827288A CN 202311748906 A CN202311748906 A CN 202311748906A CN 117827288 A CN117827288 A CN 117827288A
- Authority
- CN
- China
- Prior art keywords
- data
- pdo
- shared
- servo controller
- application layer
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 114
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000008569 process Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明适用于计算机系统技术领域,提供了数据传输方法及控制系统,本发明提出的数据传输方法应用于核心控制器的驱动层,该方法包括:响应于应用层发送的设备启动指令,创建共享数据区;将共享数据区的存储地址发送至应用层,以使应用层将获取的PDO数据存储至共享数据区;获得共享数据区的PDO数据,PDO数据通过数据包进行传输;若判定数据包完整,则根据PDO数据生成驱动数据;将驱动数据传输至伺服控制器,以使伺服控制器根据驱动数据控制至少一个设备。本发明提供的数据传输方法及控制系统,提高了PDO数据的传输效率。
Description
技术领域
本发明属于计算机系统技术领域,尤其涉及一种数据传输方法及控制系统。
背景技术
随着处理器性能不断提升、处理器内核数量不断增加以及软可编程逻辑控制器(Programmable Logic Controller,PLC)技术的不断发展,越来越多的工业机器人通常采用商用的软PLC集成方案作为软件控制系统。
在软PLC集成方案中,通常采用linux控制系统提供工业机器人的软件控制。在linux控制系统中,一般是通过设定ioctl函数接口api实现应用层与系统内核层的数据交换。例如,linux控制系统中的copy_to_user函数和copy_from_user函数用于实现应用层与系统内核之间数据搬运工作。
然而,由于linux控制系统中过程数据对象(Process Data Object,PDO)数据传输过程中需要进行内存数据复制,导致现有的PDO线程的调用过程效率较低,影响PDO数据传输的实时性。
发明内容
本发明实施例提供了数据传输方法及控制系统,提高了PDO数据的传输效率。
第一方面,本发明实施例提供了一种数据传输方法,应用于核心控制器的驱动层,其中,所述核心控制器还包含应用层;所述方法包括:
响应于所述应用层发送的设备启动指令,创建共享数据区;
将所述共享数据区的存储地址发送至所述应用层,以使所述应用层将获取的PDO数据存储至所述共享数据区;
获得所述共享数据区的PDO数据,其中,所述PDO数据通过数据包进行传输;
若判定所述数据包完整,则根据所述PDO数据生成驱动数据;
将所述驱动数据传输至伺服控制器,以使所述伺服控制器根据所述驱动数据控制至少一个设备。
应理解,本发明提出的数据传输方法应用于核心控制器的驱动层,该方法通过共享内存的方式实现PDO数据从核心控制器的应用层到核心控制器的驱动层的数据传输,省去了PDO数据传输过程中的内存数据复制过程,从而提高了PDO数据的传输效率。
在第一方面的一种可能的实现方式中,所述若判定所述数据包完整,则根据所述PDO数据生成驱动数据,包括:
获得所述数据包的数据头以及数据尾;
若所述数据头与所述数据尾相同,则判定所述数据包完整,否则重复执行所述获取所述共享数据区的PDO数据的步骤,直至获得的所述数据包的数据头以及数据尾相同;
根据所述PDO数据生成驱动数据。
在第一方面的一种可能的实现方式中,所述共享数据区包含第一子共享数据区以及第二子共享数据区;
相应地,所述将所述共享数据区的存储地址发送至所述应用层,以使所述应用层将获取的PDO数据存储至所述共享数据区,包括:
将所述第一子共享数据区的存储地址以及所述第二子共享数据区的存储地址发送至所述应用层,以使所述应用层将获取的PDO数据存储至所述第一子共享数据区;
相应地,所述获得所述共享数据区的PDO数据,包括:
获得所述第一子共享数据区的PDO数据。
在第一方面的一种可能的实现方式中,在所述将所述驱动数据传输至伺服控制器之后,还包括:
接收所述伺服控制器返回的PDO传输指令的返回值,并将所述返回值存储至所述第二子共享数据区;
通知所述应用层,以使所述应用层按照预设软件处理逻辑从所述第二子共享数据区获得所述返回值。
在第一方面的一种可能的实现方式中,在所述获取所述PDO数据的数据头以及数据尾之后,还包括:
若所述数据头与所述数据尾不相同,则重复执行所述获得所述共享数据区的PDO数据的步骤,直至获得的所述PDO数据的数据头以及数据尾相同。
在第一方面的一种可能的实现方式中,所述将所述驱动数据传输至伺服控制器,以使所述伺服控制器根据所述驱动数据控制至少一个设备,包括:
响应于伺服控制器发送的数据传输信号,将所述驱动数据传输至伺服控制器,以使所述伺服控制器根据所述驱动数据控制至少一个设备,其中,所述数据传输信号为所述伺服控制器的通用输入输出管脚的硬件中断信号。
第二方面,本发明实施例提供了一种控制系统,包含核心控制器以及伺服控制器;
所述核心控制器包含驱动层以及应用层,所述驱动层用于执行如第一方面中所述的数据传输方法。
在第二方面的一种可能的实现方式中,所述核心控制器通过高速串行总线将驱动数据传输至所述伺服控制器;
相应地,所述核心控制器通过高速串行总线接收所述伺服控制器发送的PDO传输指令的返回值。
在第二方面的一种可能的实现方式中,所述核心控制器被划分为第一处理器、第二处理器、第三处理器以及第四处理器;
所述第一处理器,用于处理PDO应用线程;
所述第二处理器,用于处理PDO内核线程以及响应伺服控制器发送的数据传输信号;
所述第三处理器以及所述第四处理器,均用于处理SDO应用线程、至少一个应用线程、系统服务线程以及中断线程,其中,所述SDO应用线程的优先级高于至少一个所述应用线程,至少一个所述应用线程的优先级高于所述系统服务线程,所述系统服务线程的优先级高于所述中断线程。
在第二方面的一种可能的实现方式中,所述核心控制器还包括空分多址SDMA控制模块,其中,所述SDMA控制模块用于提供PDO数据传输通道、SDO数据传输通道、以太网数据传输通道、串口数据传输通道、USB数据传输通道以及CAN总线数据通道,所述PDO数据传输通道、所述SDO数据传输通道、所述以太网数据传输通道、所述串口数据传输通道、所述USB数据传输通道以及所述CAN总线数据通道的优先级顺序为从高到低。
本发明实施例与现有技术相比存在的有益效果是:响应于应用层发送的设备启动指令,创建共享数据区;将共享数据区的存储地址发送至应用层,以使应用层将获取的PDO数据存储至共享数据区;获得共享数据区的PDO数据,PDO数据通过数据包进行传输;若判定数据包完整,则根据PDO数据生成驱动数据;将驱动数据传输至伺服控制器,以使伺服控制器根据驱动数据控制至少一个设备。本发明提出的数据传输方法,利用共享内存的方式完成了PDO数据从应用层到驱动层的数据传输,省去了PDO数据传输过程中的内存数据复制过程,提高了PDO数据的传输效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的控制系统的结构示意图一;
图2是本发明实施例提供的控制系统的结构示意图二;
图3是本发明实施例提供的数据传输方法的流程示意图一;
图4是本发明实施例提供的PDO数据包结构示意图;
图5是本发明实施例提供的共享数据区的结构示意图;
图6是本发明实施例提供的数据传输方法的流程示意图二;
图7是本发明实施例提供的数据传输装置的结构示意图;
图8是本发明实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本发明说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本发明说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本发明说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本发明的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
图1是本发明实施例提供的控制系统的结构示意图一。如图1所示,本发明实施例提供的控制系统10包含核心控制器101以及伺服控制器102,核心控制器包含驱动层1011以及应用层1012。
示例性的,本发明实施例提供的核心控制器101为包含armv7四核cpu的处理器imx6q soc,软PLC集成环境为Codesys,本发明实施例提供的控制系统提供开发6轴机器人应用软件。
应理解,在工业机器人的控制过程中,为满足传输PDO数据的实时性要求,核心控制器101通过提供硬件应用对象的直接访问通道,以传输实时短帧数据。PDO数据传输在应用层传输的过程中,不包含传输控制信息,以提高PDO数据的报文利用率。
示例性的,核心控制器101通过高速串行总线串行外设接口(Serial PeripheralInterface,SPI)将驱动数据传输至伺服控制器102。具体的,核心控制器101通过高速串行总线接收伺服控制器102发送的PDO传输指令的返回值。
图2是本发明实施例提供的控制系统的结构示意图二。如图2所示,核心控制器101被划分为第一处理器CPU1、第二处理器CPU2、第三处理器CPU3以及第四处理器CPU4。具体的,第一处理器CPU1,用于处理PDO应用线程。具体的,PDO应用线程为系统软件应用当中处理PDO数据的应用任务;第二处理器CPU2,用于处理PDO内核线程即将驱动层的PDO数据传输至所述伺服控制器、以及响应伺服控制器发送的数据传输信号。具体的,PDO内核线程为操作系统及驱动当中处理PDO数据的系统任务。第三处理器CPU3以及第四处理器CPU4,均用于处理SDO应用线程、至少一个应用线程、系统服务线程以及中断线程。具体的,SDO应用线程为系统软件应用当中处理SDO数据的应用任务。
应理解,为保证控制系统能够满足机器人应用的高实时性,采用linux虚拟控制系统以及PREEMT实时补丁的系统方案,通过设定FIFO抢占式调度算法来保证PDO数据传输的优先级。linux虚拟控制系统作为一个多任务多核的控制系统,运行机器人应用具有多任务高实时特点。具体的,根据数据实时性需求不同,本发明实施例对PDO数据和SDO数据采用不同通信通道,即在本发明的控制系统中,PDO数据流必须满足从应用端一直硬件设备端的尽快响应,即PDO数据的传输的优先级最高。在此基础上,设置SDO应用线程的优先级高于至少一个应用线程,并设置至少一个应用线程的优先级高于系统服务线程,以及系统服务线程的优先级高于中断线程。具体的,至少一个应用线程为除了PDO应用线程以及SDO应用线程之外的其他应用线程。
进一步的,核心控制器还包括SDMA控制模块,其中,SDMA控制模块用于提供PDO数据传输通道、SDO数据传输通道、以太网数据传输通道、串口数据传输通道、USB数据传输通道以及CAN总线数据通道。如图2所示,PDO数据传输通道、SDO数据传输通道、以太网数据传输通道、串口数据传输通道、USB数据传输通道以及CAN总线数据通道的优先级顺序为从高到低。
应理解,通过对控制系统的资源进行如图2所示的资源划分以及优先级设置,PDO数据传输任务设置为流贯穿全程的最高优先级任务,以及设置高速串行总线驱动涉及的内核线程单独配置CPU资源。通过将PDO应用线程和内核驱动资源分开,进一步可以将应用的计算与内核驱动的数据传输解耦,有利于PDO应用线程以及内核驱动优化开发,不仅保证了控制系统中所有运行的系统线程互不打扰,还排除了控制系统自行调度均衡带来的线程迁移延时。本发明还通过设置SDO数据流贯穿全程的次优先级任务以及其余低速串行总线驱动涉及的内核线程与其他外设驱动、控制系统服务的守护进程共享处理器资源,满足了不同线程的任务优先级。
图3是本发明实施例提供的数据传输方法的流程示意图一。如图3所示,本发明实施例提供的数据传输方法可以包括以下步骤:
S301:响应于应用层发送的设备启动指令,创建共享数据区。
在本发明实施例中,驱动层接收到应用层发送的设备启动指令之后,在打开驱动设备的过程中,额外分配一块内存作为共享内存,并在设备试用期间保存整个生命周期,保留该共享内存。
S302:将共享数据区的存储地址发送至应用层,以使应用层将获取的PDO数据存储至共享数据区。
在本发明实施例中,驱动层将创建的共享数据区发送至应用层。具体的,在该设备对应的操作函数当中,设置驱动层调用mmap操作函数,将创建的共享数据区对应的内存地址的首地址以及内存大小发送至应用层,使得应用层将PDO数据存储至共享数据区。应理解,应用层接收用户输入的控制参数,并根据该控制参数生成了硬件应用对象对应的设备启动指令,并根据控制参数中包含的控制数据创建驱动该硬件应用对象对应的PDO数据,并存储至应用层。
S303:获得共享数据区的PDO数据,其中,PDO数据通过数据包进行传输。
具体的,在同一个硬件应用对象对应的PDO数据的传输线程中,针对存储PDO数据对应的共享数据区,应用层在获得共享数据区地址之后,将PDO数据按照数据包的形式存储在共享数据区。图4是本发明实施例提供的PDO数据包结构示意图。其中,数据包的第一个字节为数据头,数据包的最后一个字节为数据尾。如图4所示,应用层依次将需要传输的PDO数据按照图4的格式写入共享数据区中,即在PDO数据的前面加上数据头,在PDO数据的最后加上数据尾。其中,数据头和数据尾会根据写入共享数据区的先后顺序进行累计。具体的,第一次写入共享数据区的PDO数据对应的数据包的数据头和数据尾均为0X01,第二条写入共享数据区的PDO数据对应的数据包的数据头和数据尾均为0X02。通过根据写入共享数据区的先后顺序对数据包的数据头和数据尾进行累计,能够保证当数据头和数据尾一致时,共享数据区中存储的PDO数据属于同一条PDO数据,且共享数据区中存储的PDO数据是完整的。
S304:若判定数据包完整,则根据PDO数据生成驱动数据。
应理解,在一种可能的情形中,当驱动层开始从共享数据区读数据包时,应用层可能正在执行将PDO数据的数据包存入共享数据区的过程中,即此时驱动层读出的数据可能不是来自同一条PDO数据包。具体的,在应用层将第八条PDO数据对应的数据包写入共享数据区之前,此时共享数据区内存储的为第七条PDO数据对应的数据包,即共享数据区中位于数据头位置的数据为0X07,共享数据区中位于数据尾位置的数据为0X07。随后,应用层开始将第八条PDO数据对应的数据包写入共享数据区,在第八个数据包正在写入共享数据区的过程中,第八个数据包的数据头已经覆盖了存储在相同位置的第七个数据包的数据头,然而,第八个数据包的数据尾尚未覆盖存储在相同位置的第七个数据包的数据尾。若此时,驱动层开始读共享数据区的数据,读取的共享数据区中位于数据头位置的数据为第八个数据包的数据头即0X08,读取的位于数据尾位置的数据为第七个数据包的数据尾即0X07,此时读取的数据头与数据尾不一致,则判定读取的PDO数据不完整,即不是完整的第八条PDO数据对应的数据包。若读取的数据头与数据尾不一致,驱动层废弃读取的数据包,重复读取共享数据区的PDO数据,直至读取的数据头以及数据尾相同。
应理解,若数据包的数据头与数据尾相同,则可以确定读出的数据包中的PDO数据为完整的,即读出的PDO数据可以用于驱动硬件设备的有效应用数据。若数据包中数据头与数据尾不同,则需要重复执行获取共享数据区的PDO数据的步骤,直至读出的数据包的数据头与数据尾相同,再执行根据PDO数据生成驱动数据的步骤。
本发明实施例中,提出了一种基于应用层与驱动层的共享数据区的数据读写一致性协议,能够保证驱动层读取数据的完整性和有效性,提高了PDO数据传输的可靠性。
S305:将驱动数据传输至伺服控制器,以使伺服控制器根据驱动数据控制至少一个设备。
应理解,驱动层根据核心控制器与伺服控制器之间的传输协议,根据PDO数据生成驱动数据,即将PDO数据包装为伺服控制器控制对应的硬件对象的实时驱动数据。需要说明的是,现有的虚拟控制系统中提供了核心控制器与伺服控制器之间的PDO数据传输通道,在此不再赘述将驱动数据传输至伺服控制器以及伺服控制器根据驱动数据控制对应的硬件设备的过程。
本发明实施例提供的数据传输方法应用于核心控制器的驱动层,该方法通过共享内存的方式实现PDO数据从核心控制器的应用层到核心控制器的驱动层的数据传输,省去了PDO数据传输过程中的内存数据复制过程,从而提高了PDO数据的传输效率。
图5是本发明实施例提供的数据传输方法的流程示意图二。需要说明的是,图5实施例提供的数据传输方法是基于图6提供的共享数据区的结构实现的。如图6所示,图6是本发明实施例提供的共享数据区的结构示意图。示例性的,共享数据区包含第一子共享数据区1以及第二子共享数据区2。示例性的,图5实施例提供的数据传输方法包括以下步骤:
S501:响应于应用层发送的设备启动指令,创建共享数据区。
在本发明实施例中,本步骤与图3实施例中S301实现的方法以及效果一致,在此不再赘述。
S502:将第一子共享数据区的存储地址以及第二子共享数据区的存储地址发送至应用层,以使应用层将获取的PDO数据存储至第一子共享数据区。
应理解,在传输PDO数据的过程中,一方面,应用层将PDO数据存入共享数据区以及驱动层从共享数据区读取数据,另一方面,在PDO数据完成传输之后,驱动层将PDO传输指令的返回值传输至应用层。
在本发明实施例中,为了提高PDO数据的传输效率,如图6所示,将共享数据区划分为第一子共享数据区以及第二子共享数据区,一方面,设置应用层将数据写入第一子共享数据区以及驱动层从第一子共享数据区读取数据,另一方面,设置驱动层将数据写入第二子共享数据区以及应用层从第二子共享数据区读取数据。
在本发明实施例中,驱动层将创建的共享数据区划分为第一子共享数据区以及第二子共享数据区,并将第一子共享数据区的存储地址以及第二子共享数据区的存储地址发送至应用层,以使应用层将获取的PDO数据存储至第一子共享数据区。
S503:获得第一子共享数据区的PDO数据,其中,PDO数据通过数据包进行传输。
S504:若判定数据包完整,则根据PDO数据生成驱动数据。
应理解,本实施例中S503至S504实现的方法以及效果与图3实施例中S303至S304一致,在此不再赘述。
S505:响应于伺服控制器发送的数据传输信号,将驱动数据传输至伺服控制器,以使伺服控制器根据驱动数据控制至少一个设备。
示例性的,在本发明实施例中,设置伺服控制器的通用输入输出管脚的硬件中断信号作为数据传输信号,引入伺服控制器的通用输入输出管脚的硬件中断信号作为同步信号,实现了核心控制器与伺服控制的通信周期同步。具体的,挂载GPIO1_5管脚作为硬件中断信号,驱动SPI数据传输。由此,可在SDMA设备的启动初期等待此信号,实现核心控制器与伺服控制器的信号同步。
应理解,在控制系统的每个PDO执行周期,是以伺服控制器的给定信号作为基准,为实现此过程在硬件设计上,通过伺服控制的一个GPIO管脚输入硬件信号提供给控制系统。在控制系统软件范围即在高速串行总线的驱动当中挂载该信号中断来同步数据传输过程。在数据传输执行过程,启动SDMA设备之前,必须等到该中断到达,才能够进一步执行完成数据传输过程。此操作能够保障数据落在伺服控制器的有效数据时间区域,否则会被伺服控制器作为无效错误数据而废弃。
S506:接收伺服控制器返回的PDO传输指令的返回值,并将返回值存储至第二子共享数据区。
在本发明实施例中,通过划分不同数据流向的共享数据区,实现了应用层和驱动层的互斥读写,还实现了驱动层和应用层的读写并行以及数据的单项流向,不仅降低了读写操作的时延,还实现了保持共享数据区的数据读写一致性的目的。
S507:通知应用层,以使应用层按照预设软件处理逻辑从第二子共享数据区获得返回值。
在本发明实施例中,在数据传输完成之后,通知系统调用返回来同步执行过程。应理解,由于本发明实施例采用的是共享内存方案,因此,应用层无法得知数据传输过程是否结束。当PDO返回数据已经准备就绪,本发明实施例通过复写系统调用通知应用,将系统调用通知发送至应用层。
本发明实施例提供的数据传输方法,一方面,通过划分不同数据流向的共享数据区,设置应用层和驱动层的互斥读写,降低了读写操作的时延,提高了数据的传输效率;另一方面,本发明实施例提供的数据传输方法,通过引入伺服控制器的硬件中断信号,触发PDO数据的传输线程,通过设置在SDMA设备的启动初期等待此信号,实现了核心控制器与伺服控制器的信号同步。
应理解,在本发明实施例提供的控制系统中,核心控制器的驱动层执行了上述实施例提供的数据传输方法,自主设计了一种利用共享数据存储区实现PDO数据实时传输的数据传输方法,在此基础上,设置了核心控制器采用伺服控制器的硬件中断信号作为传输数据的同步信号,并按照最高优先级执行PDO的数据传输线程,与现有的工业机器人应用的软PLC集成方案相比,能够监控控制系统进而全程追踪整个数据流向,利于排查和定位问题,还便于软件系统的再度开发,降低了研发成本。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例的数据传输方法,图7是本发明实施例提供的数据传输装置的结构示意图。为了便于说明,仅示出了与本发明实施例相关的部分。
如图7所示,本发明实施例提供的数据传输装置,包括:创建模块701,发送模块702、获取模块703以及生成模块704。
创建模块701,用于响应于应用层发送的设备启动指令,创建共享数据区;
发送模块702,用于将共享数据区的存储地址发送至应用层,以使应用层将获取的PDO数据存储至共享数据区;
获得模块703,用于获得所述共享数据区的PDO数据,其中,所述PDO数据通过数据包进行传输;
生成模块704,用于若判定所述数据包完整,则根据所述PDO数据生成驱动数据;
传输模块705,用于将所述驱动数据传输至伺服控制器,以使所述伺服控制器根据所述驱动数据控制至少一个设备。
需要说明的是,上述模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
另外,图7所示的数据传输装置可以是内置于现有的终端设备内的软件单元、硬件单元、或软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中,还可以作为独立的终端设备存在。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图8是本发明实施例提供的电子设备的结构示意图,本发明实施例提供的电子设备80包括:至少一个处理器81(图8中仅示出一个)、存储器82以及存储在所述存储器82中并可在所述至少一个处理器81上运行的计算机程序83,所述处理器81执行所述计算机程序83时实现上述任意各个数据传输方法实施例中的电子设备执行的步骤。
所称处理器81可以是中央处理单元(Central Processing Unit,CPU),该处理器81还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器82在一些实施例中可以是所述电子设备80的内部存储单元,例如电子设备80的硬盘或内存。所述存储器82在另一些实施例中也可以是所述电子设备80的外部存储设备,例如所述电子设备80上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述电子设备80还可以既包括所述电子设备80的内部存储单元也包括外部存储设备。所述存储器82用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器82还可以用于暂时地存储已经输出或者将要输出的数据。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述任意各个数据传输方法实施例中的步骤。
本发明实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现上述任意各个数据传输方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据传输方法,其特征在于,应用于核心控制器的驱动层,其中,所述核心控制器还包含应用层;所述方法包括:
响应于所述应用层发送的设备启动指令,创建共享数据区;
将所述共享数据区的存储地址发送至所述应用层,以使所述应用层将获取的PDO数据存储至所述共享数据区;
获得所述共享数据区的PDO数据,其中,所述PDO数据通过数据包进行传输;
若判定所述数据包完整,则根据所述PDO数据生成驱动数据;
将所述驱动数据传输至伺服控制器,以使所述伺服控制器根据所述驱动数据控制至少一个设备。
2.根据权利要求1所述的方法,其特征在于,所述若判定所述数据包完整,则根据所述PDO数据生成驱动数据,包括:
获得所述数据包的数据头以及数据尾;
若所述数据头与所述数据尾相同,则判定所述数据包完整,否则重复执行所述获取所述共享数据区的PDO数据的步骤,直至获得的所述数据包的数据头以及数据尾相同;
根据所述PDO数据生成驱动数据。
3.根据权利要求1所述的方法,其特征在于,所述共享数据区包含第一子共享数据区以及第二子共享数据区;
相应地,所述将所述共享数据区的存储地址发送至所述应用层,以使所述应用层将获取的PDO数据存储至所述共享数据区,包括:
将所述第一子共享数据区的存储地址以及所述第二子共享数据区的存储地址发送至所述应用层,以使所述应用层将获取的PDO数据存储至所述第一子共享数据区;
相应地,所述获得所述共享数据区的PDO数据,包括:
获得所述第一子共享数据区的PDO数据。
4.根据权利要求3所述的方法,其特征在于,在所述将所述驱动数据传输至伺服控制器之后,还包括:
接收所述伺服控制器返回的PDO传输指令的返回值,并将所述返回值存储至所述第二子共享数据区;
通知所述应用层,以使所述应用层按照预设软件处理逻辑从所述第二子共享数据区获得所述返回值。
5.根据权利要求1所述的方法,其特征在于,在所述获取所述PDO数据的数据头以及数据尾之后,还包括:
若所述数据头与所述数据尾不相同,则重复执行所述获得所述共享数据区的PDO数据的步骤,直至获得的所述PDO数据的数据头以及数据尾相同。
6.根据权利要求1所述的方法,其特征在于,所述将所述驱动数据传输至伺服控制器,以使所述伺服控制器根据所述驱动数据控制至少一个设备,包括:
响应于伺服控制器发送的数据传输信号,将所述驱动数据传输至伺服控制器,以使所述伺服控制器根据所述驱动数据控制至少一个设备,其中,所述数据传输信号为所述伺服控制器的通用输入输出管脚的硬件中断信号。
7.一种控制系统,其特征在于,包含核心控制器以及伺服控制器;
所述核心控制器包含驱动层以及应用层,所述驱动层用于执行如权利要求1至6任一项所述的数据传输方法。
8.根据权利要求7所述的控制系统,其特征在于,所述核心控制器通过高速串行总线将驱动数据传输至所述伺服控制器;
相应地,所述核心控制器通过高速串行总线接收所述伺服控制器发送的PDO传输指令的返回值。
9.根据权利要求7所述的控制系统,其特征在于,所述核心控制器被划分为第一处理器、第二处理器、第三处理器以及第四处理器;
所述第一处理器,用于处理PDO应用线程;
所述第二处理器,用于处理PDO内核线程以及响应伺服控制器发送的数据传输信号;
所述第三处理器以及所述第四处理器,均用于处理服务数据对象SDO应用线程、至少一个应用线程、系统服务线程以及中断线程,其中,所述SDO应用线程的优先级高于至少一个所述应用线程,至少一个所述应用线程的优先级高于所述系统服务线程,所述系统服务线程的优先级高于所述中断线程。
10.根据权利要求9所述的控制系统,其特征在于,所述核心控制器还包括空分多址SDMA控制模块,其中,所述SDMA控制模块用于提供PDO数据传输通道、SDO数据传输通道、以太网数据传输通道、串口数据传输通道、USB数据传输通道以及CAN总线数据通道,所述PDO数据传输通道、所述SDO数据传输通道、所述以太网数据传输通道、所述串口数据传输通道、所述USB数据传输通道以及所述CAN总线数据通道的优先级顺序为从高到低。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311748906.7A CN117827288A (zh) | 2023-12-18 | 2023-12-18 | 数据传输方法及控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311748906.7A CN117827288A (zh) | 2023-12-18 | 2023-12-18 | 数据传输方法及控制系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827288A true CN117827288A (zh) | 2024-04-05 |
Family
ID=90520118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311748906.7A Pending CN117827288A (zh) | 2023-12-18 | 2023-12-18 | 数据传输方法及控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827288A (zh) |
-
2023
- 2023-12-18 CN CN202311748906.7A patent/CN117827288A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976925B (zh) | 一种基于混合多系统核间实时通信的方法和系统 | |
US8694595B2 (en) | Low latency, high bandwidth data communications between compute nodes in a parallel computer | |
CN105511954B (zh) | 一种报文处理方法及装置 | |
US7433977B2 (en) | DMAC to handle transfers of unknown lengths | |
CN109558344B (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
CN114553635B (zh) | Dpu网络设备中的数据处理方法、数据交互方法及产品 | |
US11341087B2 (en) | Single-chip multi-processor communication | |
US7966618B2 (en) | Controlling data transfers from an origin compute node to a target compute node | |
CN112947857B (zh) | 一种数据搬移方法、装置、设备及计算机可读存储介质 | |
US6052729A (en) | Event-reaction communication protocol in an object oriented processor array | |
CN108829530B (zh) | 一种图像处理方法及装置 | |
CN112131176B (zh) | 一种基于pcie的fpga快速局部重构方法 | |
CN109992539B (zh) | 双主机协同工作装置 | |
CN117827288A (zh) | 数据传输方法及控制系统 | |
CN108055186B (zh) | 一种主从处理器通信方法及装置 | |
CN113407357A (zh) | 进程间数据搬移的方法及装置 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN111124987B (zh) | 一种基于pcie的数据传输控制系统和方法 | |
CN116226021B (zh) | 数据收发方法、装置以及图形处理器 | |
CN117149471B (zh) | 通信方法、装置、嵌入式系统、存储介质以及电子设备 | |
WO2021179218A1 (zh) | 直接内存存取单元、处理器、设备、处理方法及存储介质 | |
CN109101457B (zh) | 一种基于c6678的单核实现ndk通信与srio传输的方法 | |
CN111160546B (zh) | 一种数据处理系统 | |
US7111301B1 (en) | Request and completion queue load balancing | |
CN117743252A (zh) | 基于Mailbox的异构Soc子系统间通信的方法 |
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 |