公开/公告号CN103077140A
专利类型发明专利
公开/公告日2013-05-01
原文格式PDF
申请/专利权人 北京配天大富精密机械有限公司;
申请/专利号CN201310045645.2
发明设计人 曹华;
申请日2013-02-05
分类号G06F13/32;
代理机构
代理人
地址 100085 北京市海淀区信息路7号18号楼数字传媒大厦二层201室
入库时间 2024-02-19 18:33:18
法律状态公告日
法律状态信息
法律状态
2016-12-21
专利实施许可合同备案的生效 IPC(主分类):G06F13/32 合同备案号:2016990000487 让与人:北京配天技术有限公司 受让人:安徽省配天机器人技术有限公司 发明名称:一种机器人运动控制卡与上位机的通信方法及通信装置 申请公布日:20130501 授权公告日:20150805 许可种类:排他许可 备案日期:20161125 申请日:20130205
专利实施许可合同备案的生效、变更及注销
2015-08-05
授权
授权
2014-09-03
著录事项变更 IPC(主分类):G06F13/32 变更前: 变更后: 申请日:20130205
著录事项变更
2013-06-05
实质审查的生效 IPC(主分类):G06F13/32 申请日:20130205
实质审查的生效
2013-05-01
公开
公开
技术领域
本发明涉及机器人技术领域,具体涉及一种机器人运动控制卡与上位机的 通信方法及通信装置。
背景技术
典型的工业机器人系统结构包括显示、输入输出设备,上位机,PCI总线, 运动控制卡,电机、驱动器等。
该结构中,运动控制卡通过PCI总线与上位机相连,上位机通过PCI驱 动程序实现对运动控制卡的各种操作。上位机负责用户的输入输出,将用户输 入的指令(包括运动控制指令、设置指令等)发送给运动控制卡,运动控制卡 对用户输入的数据进行处理(例如运动规划等)后最终实现对电机的控制。同 时,电机、驱动器会将自己的状态(运行状态、当前位置等)报告给运动控制 卡,运动控制卡将这些信息进一步发送给上位机显示。
这里涉及到两个方向的数据流,一是由上位机发送到运动控制卡,二是 由运动控制卡发送给上位机。由上位机将数据发送到运动控制卡的方法比较成 熟,首先上位机通过IO操作将数据发送到PCI驱动程序,PCI驱动程序接着 将数据写入运动控制卡的存储器中,并通过触发运动控制卡的中断来及时的通 知运动控制卡有新数据写入。而如果运动控制卡需要实时的发送数据给上位 机,方法就复杂的多。这是因为运动控制卡是上位机的一种PCI设备,上位机 做为主设备,可以很方便的对运动控制卡进行数据读写和触发中断,而PCI 设备是从设备,只能被动接收指令和数据,无法主动给主设备(上位机)发送 指令和数据,所以PCI驱动程序无法实时的通知上位机。如果PCI设备要主动 给上位机发送指令或数据,只能采用定时器轮询或者单独线程轮询运动控制卡 的标志寄存器来获知运动控制卡是否有数据要发送给上位机:
定时器轮询的方式是使用定时器来定时,每隔一段时间对运动控制卡的 标志寄存器进行扫描;
单独线程轮询是指单独创建一个线程,在线程里用while语句来不停的扫 描运动控制卡的标志寄存器。
在对现有技术的研究和实践过程中,本发明的发明人发现,上述方法中, 若使用定时器轮询的方式,则无法保证通信的实时性,因为在运动控制卡的标 志寄存器更新后,上位机无法及时的得到通知,必须等下一个定时器触发时才 会得到通知,如果定时器周期很长,则实时性会很差。若使用单独线程进行循 环检测,实时性比定时器的方式有所提高,但也会受到CPU速度和运动控制卡 读写速度的限制,而且这种循环检测的方式会占用大量的CPU资源。因此,现 有的方法存在实时性差和占用过多CPU资源的缺点。
发明内容
为了解决现有技术中存在的实时性差和占用过多CPU资源的问题,本发明 提供了一种机器人运动控制卡与上位机的通信方法及一种机器人运动控制卡 与上位机的通信装置。
本发明提供的一种机器人运动控制卡与上位机的通信方法,所述通信方法 包括步骤:
运动控制卡触发驱动程序的中断程序;
驱动程序根据运动控制卡的中断信息触发上位机相对应的软中断信号;
上位机根据触发的软中断信号执行相应的处理。
本发明还提供了一种机器人运动控制卡与上位机的通信装置,所述通信装 置包括:
运动控制卡,包括驱动程序中断触发模块,用于触发驱动程序的中断程序;
驱动程序,包括软中断信号处理函数,用于驱动程序在被运动控制卡的驱 动程序中断触发模块触发中断后,根据运动控制卡的中断信息触发上位机相对 应的软中断信号;
及上位机,包括中断处理模块,用于上位机根据软中断信号触发模块触发 的软中断信号执行相应的处理。
本发明提供的机器人运动控制卡与上位机的通信方法和通信装置,运动控 制卡可以和上位机软件实时信息传输,两者之间的数据同步,这样可以减小工 业机器人的插补周期,从而提高机器人的精度。当运动控制卡需要通知上位机 时,它只需要触发驱动程序的中断程序,上位机就能立即得到通知,而避免了 现有技术中需等到下一个定时器被触发,实现了实时通信;并且,可以避免单 独开线程所带来的额外CPU开销。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图1为实施例一中一种机器人运动控制卡与上位机的通信方法的流程图;
图2为实施例二中一种机器人运动控制卡与上位机的通信方法的流程图;
图3为实施例三中一种机器人运动控制卡与上位机的通信装置的结构示意 图;
图4为实施例四中一种机器人运动控制卡与上位机的通信装置的结构示意 图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一、
参考图1,图1为本实施例中机器人运动控制卡与上位机的通信方法流程 图,包括步骤:
步骤S101:运动控制卡触发驱动程序的中断程序。
运动控制卡是用来实现工业机器人运动控制功能的板卡,驱动程序是使设 备能被总线识别并正常使用的程序,本实施方式中的总线可以是PCI (Peripheral Component Interconnect)总线,驱动程序可以是PCI驱动程序。运 动控制卡通过PCI总线与上位机相连,上位机通过PCI驱动程序实现对运动控制 卡的各种操作,上位机负责用户的输入输出,将用户输入的指令例如运动控制 指令、设置指令等发送给运动控制卡,运动控制卡对用户输入的数据例如运动 规划等进行处理后最终实现对电机的控制。同时,电机、驱动器会将自己的状 态例如运行状态、当前位置信息等报告给运动控制卡,运动控制卡将这些信息 进一步发送给上位机显示。
本实施例中,当运动控制卡有警报信息需报告给上位机处理时,将首先触 发PCI驱动程序中的中断程序。
步骤S102:驱动程序根据运动控制卡的中断信息触发上位机相对应的软中 断信号。
上位机的软中断信号与运动控制卡上的中断信息存在一一对应的关系,各 通过不同的信息表达方式表达同样的请求信息,例如驱动器的运行状态、当前 位置信息等。
步骤S103:上位机根据触发的软中断信号执行相应的处理。
上位机被PCI驱动程序触发相应的软中断信号后,即执行与软中断信号相 对应的中断处理。
实施例二、
参见图2,图2为本实施例中机器人运动控制卡与上位机的通信方法的流程 图,包括步骤:
步骤S201:上位机注册与运动控制卡的中断信息有对应关系的软中断信 号。
上位机所注册的软中断信号为运动控制卡可能通知的用户状态,上位机的 软中断信号与运动控制卡的中断信息是一一对应的关系。本实施例中的通信方 法基于添加了RTAI的实时Linux系统,RTAI(Real-Time Application Interface) 是对Linux内核的硬实时扩展,它遵循自由软件规范,需要重新编译Linux内核。 由于Linux的信号机制中有效信号值是1~64,其中1~31已经被占用,都对应着 特定的事件,不能被修改,本实施例中的软中断信号在32~64信号值注册上位 机的软中断信号,32~64信号值为可靠信号,避免了信号丢失的现象,从而确 保运动控制卡的每一次中断触发都得到相应。
步骤S202:上位机建立与软中断信号相对应的中断处理程序。
在此步骤中上位机建立步骤S201中所注册的软中断信号需执行的中断处 理函数。
步骤S203:上位机建立软中断信号与驱动程序之间的联系。
此步骤中上位机通过函数将信号句柄告知驱动程序,即将上位机的程序进 程与驱动程序通过信号绑定,从而建立上位机软中断信号与驱动程序之间的联 系。
步骤S204:上位机执行主线程。
执行完上述步骤后,上位机继续执行主线程。S201~S204为在运动控制卡 有事件需通知给上位机之前所执行的动作。
步骤S205:运动控制卡置位中断标志寄存器上的中断类型。
运动控制卡包括中断标志寄存器,当运动控制卡有数据或者指令给上位机 时,要先置位中断标志寄存器上的中断类型。
步骤S206:运动控制卡触发驱动程序的中断程序。
步骤S207:驱动程序根据运动控制卡的中断信息触发上位机相对应的软中 断信号。其中,本发明实施例中的驱动程序为实时驱动。
其中,步骤S207还包括:
步骤S207a:驱动程序的中断程序读取运动控制卡的中断标志寄存器;
步骤S207b:中断程序判断中断标志寄存器上的中断类型;
步骤S207c:驱动程序根据获取的中断类型触发上位机相对应的软中断信 号。
上述中断类型为上位机和运动控制卡约定的事件类型,所述中断类型与上 位机注册的软中断信号是一一对应的关系。驱动程序中存储有触发上位机的函 数,驱动程序根据不同的中断类型通过此函数触发上位机所对应的信号,所触 发信号即为步骤S201预先注册的软中断信号。
步骤S208:上位机根据触发的软中断信号执行相应的处理。
步骤S208还包括:
步骤S208a:上位机判断所述软中断信号的类型;
步骤S208b:根据所述软中断信号的类型执行相对应的中断处理程序。
上述中断处理程序即为步骤S202上位机预先建立的中断处理程序。
本实施方式中上位机根据触发的信号执行相应的处理后,通过DMA (Direct Memory Access)传输方式即成组数据传输方式传输数据,上位机可 以通过PCI总线直接向运动控制卡传输数据,从而上位机的CPU(Central Processing Unit)可以继续执行中断前的主线程。例如,当运动控制卡向上位 机请求插补数据时,向PCI驱动发中断,上位机收到信号后进入中断处理函数, 通知DMA控制器开始传输数据,然后就退出中断处理函数继续主线程,数据 的传输完全交给DMA控制器完成。对于机器人位置数据等数据量很大时通过 DMA传输,可以提高传输效率,且不占用CPU资源。
本实施方式中的运动控制卡可以和上位机软件实时信息传输,两者之间的 数据同步,这样可以减小工业机器人的插补周期,从而提高机器人的精度。当 运动控制卡需要通知上位机时,它只需要触发驱动程序的中断程序,上位机就 能立即得到通知,而避免了现有技术中需等到下一个定时器被触发,实现了实 时通信;并且,可以避免单独开线程所带来的额外CPU开销。
实施例三、
参阅图3,图3是本实施例中机器人运动控制卡与上位机的通信装置的结构 示意图,所述通信装置包括:运动控制卡101、运动控制卡101包括驱动程序中 断触发模块1011,驱动程序102,驱动程序102包括软中断信号触发模块1021, 上位机103,上位机103包括中断处理模块1031。
驱动程序中断触发模块1011,用于运动控制卡101触发驱动程序102的中断 程序;
软中断信号触发模块1021,用于驱动程序102在被运动控制卡101的驱动程 序中断触发模块1011触发中断后,根据运动控制卡101的中断信息触发上位机 103相对应的软中断信号;
中断处理模块1031,用于上位机103根据软中断信号触发模块1021触发的 软中断信号执行相应的处理。
实施例四、
参见图4,图4为本实施例中机器人运动控制卡与上位机的通信装置的结构 示意图。所述通信装置包括运动控制卡201,运动控制卡201包括中断信息存储 模块2011及驱动程序中断触发模块2012;驱动程序202,驱动程序202包括中断 信息读取模块2021及软中断信号触发模块2022;上位机203,上位机203包括软 中断信号存储模块2031、软中断信号通知模块2032及中断处理模块2033。
中断信息存储模块2011,用于存储运动控制卡201的中断信息。
驱动程序中断触发模块2012,用于运动控制卡201触发驱动程序202的中断 程序。
中断信息读取模块2021,用于驱动程序202读取运动控制卡201的中断信息 存储模块2012的中断信息,并通过所述中断信息判断中断类型。
软中断信号触发模块2022,用于驱动程序202在被运动控制卡201的驱动程 序中断触发模块2012触发中断后,根据运动控制卡201的中断信息触发上位机 203相对应的软中断信号。软中断信号触发模块2022根据中断信息读取模块 2021判断的中断类型触发上位机203相对应的软中断信号。
软中断信号存储模块2031,用于上位机203存储与运动控制卡202的中断信 息存储模块2011中的中断信息有对应关系的软中断信号。
软中断信号通知模块2032,用于建立所述软中断信号存储模块2031中的软 中断信号与驱动程序202之间的联系。
中断处理模块2033,用于上位机203根据软中断信号触发模块2022触发的 软中断信号执行相应的处理。
上位机所注册的软中断信号为运动控制卡可能通知的用户状态,上位机的 软中断信号与运动控制卡的中断信息是一一对应的关系。本实施例中的通信方 法基于添加了RTAI的实时Linux系统,RTAI(Real-Time Application Interface) 是对Linux内核的硬实时扩展,它遵循自由软件规范,需要重新编译Linux内核, 另外,本发明实施例中的驱动程序也为实时驱动。由于Linux的信号机制中有 效信号值是1~64,其中1~31已经被占用,都对应着特定的事件,不能被修改, 本实施例中的软中断信号在32~64信号值注册上位机的软中断信号,32~64信号 值为可靠信号,避免了信号丢失的现象,从而确保运动控制卡的每一次中断触 发都得到响应。
本实施例中还包括DMAC(Direct Memory Access Controller)数据存取模 块,用于使上位机在执行中断处理模块后,直接进入DMA(Direct Memory Access)数据传输方式,上位机继续执行中断前的主线程。
上位机根据触发的信号执行相应的处理后,通过DMA传输方式即成组数 据传输方式传输数据,上位机可以通过PCI总线直接向运动控制卡传输数据, 从而上位机的CPU(Central Processing Unit)可以继续执行中断前的主线程。 例如,当运动控制卡向上位机请求插补数据时,向PCI驱动发中断,上位机收 到信号后进入中断处理函数,通知DMA控制器开始传输数据,然后就退出中 断处理函数继续主线程,数据的传输完全交给DMA控制器完成。对于机器人 位置数据等数据量很大时通过DMA传输,可以提高传输效率,且不占用CPU 资源。
本实施方式中的机器人运动控制卡与上位机的通信装置,运动控制卡可以 和上位机软件实时信息传输,两者之间的数据同步,这样可以减小工业机器人 的插补周期,从而提高机器人的精度。当运动控制卡需要通知上位机时,它只 需要触发驱动程序的中断程序,上位机就能立即得到通知,而避免了现有技术 中需等到下一个定时器被触发,实现了实时通信;并且,可以避免单独开线程 所带来的额外CPU开销。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施 例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的 一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变 之处,综上所述,本说明书内容不应理解为对本发明的限制。
机译: 驱动装置,机器人装置,通信装置,驱动装置的控制方法,机器人装置的控制方法,通信设备通信方法,使用机器人设备的制造方法,控制程序和记录介质
机译: 机器人设备,机器人设备的控制方法,使用机器人设备制造物品的方法,通信装置,通信方法,控制程序和记录介质
机译: 用于公共性能的机器人的通信装置和通信方法,以及用于进行通信的计算机可读介质记录程序,以及用于公共性能的机器人系统