CN105007208A - 一种基于can总线的机器人系统内通信方法 - Google Patents

一种基于can总线的机器人系统内通信方法 Download PDF

Info

Publication number
CN105007208A
CN105007208A CN201510304052.2A CN201510304052A CN105007208A CN 105007208 A CN105007208 A CN 105007208A CN 201510304052 A CN201510304052 A CN 201510304052A CN 105007208 A CN105007208 A CN 105007208A
Authority
CN
China
Prior art keywords
data
priority
robot
module
communication means
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.)
Granted
Application number
CN201510304052.2A
Other languages
English (en)
Other versions
CN105007208B (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.)
Nanjing Science And Technology Ltd Of A Fanda Robot
Original Assignee
Nanjing Science And Technology Ltd Of A Fanda Robot
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 Nanjing Science And Technology Ltd Of A Fanda Robot filed Critical Nanjing Science And Technology Ltd Of A Fanda Robot
Priority to CN201510304052.2A priority Critical patent/CN105007208B/zh
Publication of CN105007208A publication Critical patent/CN105007208A/zh
Application granted granted Critical
Publication of CN105007208B publication Critical patent/CN105007208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明公开的一种基于CAN总线的机器人系统内通信方法,通信只采用CAN总线的扩展帧,将29bit的扩展帧分为7部分,前三部分为优先级、源系统ID、目的系统ID。本发明的通信方法可以在多系统多模块的通信场景下更有效的利用每帧的CAN总线信息,可以通过优先级、原系统ID、目的系统ID(目的系统ID之后的bits不用参与仲裁)三级优先级的设置更快速利用CAN进行发送仲裁。在大数据接收组包方面,通过packet_id和packet_SN双重验证可以比其他的协议更有效的区分错包,少包,更准确的接收信息。本发明的通信方法有效地提高了机器人内部模块之间的信号传递速度和准确性,有利于多模块同时大量发送数据,符合机器人功能越来越多、越来越复杂的发展趋势的需要。

Description

一种基于CAN总线的机器人系统内通信方法
技术领域
本发明涉及机器人系统内通信领域,具体是一种基于CAN总线的机器人系统内通信方法。
背景技术
控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议开始用于汽车各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。凭借其高性能、高可靠性,在工业控制、汽车电子等领域越来越普及。CAN 协议定义了仲裁ID及数据帧中数据的格式,即仲裁ID分为标准格式(11bit)和扩展格式(29bit),而每个数据帧最多可传送8个字节。
目前,应对多模块中的通信,基本的策略是将CAN总线ID设计成简单的地址模式,这种形式对于模块系统中又包含子模块的设计很难处理,会占用很大的数据帧空间去区分子模块;而处理大数据时,数据帧采用“末帧标记”的方法,这种策略在多模块同时大量发送数据时难以发现丢包及错包问题。
发明内容
本发明要解决的问题是提供一种基于CAN总线的机器人系统内通信方法,该方法无需占用很大的数据帧空间去区分子模块,且可准确发现丢包及错包。
本发明的一种基于CAN总线的机器人系统内通信方法,通信只采用CAN总线的扩展帧,将29bit的扩展帧分为7部分,前三部分为优先级、源系统ID、目的系统ID;具体为:第28-26bit为优先级、第25-22bit为源系统ID、第21-18bit为目的系统ID;在多系统同时发送数据时CAN模块分别以优先级、原系统ID、目的系统ID作为一二三级仲裁依据,在收取数据时每个系统的CAN模块以目的系统ID为过滤基准进行收取,具体模块的区分在系统代码中进行分发;第15-8bit为数据包的总包数,实际值为数据分包总数减一,为区分后续数据帧为单包还是多包数据的依据;第7-4bit为源模块ID,3-0为目的模块ID。
作为上述技术方案的进一步改进,所述优先级提供8个优先级别,0级的优先级最高,7级最低。
作为上述技术方案的另一种改进,所述源系统ID为全系统的编号,每个系统一个编号,总控系统编号为0,优先级最高,其他系统编号根据实际测试进行编号。
作为上述技术方案的另一种改进,所述目的系统ID与源系统ID一致。
作为上述技术方案的另一种改进,所述源模块ID为每个系统内对自身子模块单独编号,与系统ID结合为系统子模块ID后对机器人系统全局唯一。
作为上述技术方案的另一种改进,所述目的模块ID与源模块ID一致。
作为上述技术方案的另一种改进,CAN发送的数据小于等于8字节时,无需分包,所述数据包的总包数设置为0;当发送数据大于8字节时,需要分包处理,根据图表二对数据帧的规定,分包总数=数据总字节数/6 + !(!(数据总字节数%6)) ;在接收组包时当数据帧的packet_SN和总包数相等时,则这个分包为数据的最后一个分包。
相对其他CAN总线自定数据规范和通信方法,通过本发明的基于CAN总线的机器人系统内通信方法可以在多系统多模块的通信场景下更有效的利用每帧的CAN总线信息,可以通过优先级、原系统ID、目的系统ID(目的系统ID之后的bits不用参与仲裁)三级优先级的设置更快速利用CAN进行发送仲裁。在大数据接收组包方面,通过packet_id和packet_SN双重验证可以比其他的协议更有效的区分错包,少包,更准确的接收信息。本发明的通信方法有效地提高了机器人内部模块之间的信号传递速度和准确性,有利于多模块同时大量发送数据,符合机器人功能越来越多、越来越复杂的发展趋势的需要。
具体实施方式
下面对本发明提出的一种基于CAN总线的机器人系统内通信方法进行详细说明。所列举的实施例仅是示例性说明,并不对本发明的保护范围造成限制。
机器人系统包括大量的模块,模块间的通信采用CAN协议,为了使各个模块间的通信能够按优先级稳定完整快速的进行通信,本发明采用基于CAN总线的机器人系统内通信方法,具体如表1所示,将CAN的仲裁ID和数据位做统一定义,为了每帧的最大化利用,优选通信只采用CAN的扩展ID,将29bit的扩展帧分为7部分,前三部分为优先级、源系统ID、目的系统ID。优先级、源系统ID、目的系统ID这三个部分决定了CAN线上发送顺序,因为每个系统都有一个独立的CAN收发单元,系统内不同模块发送的顺序由写入CANbuffer中的先后决定,所以虽使用了扩展帧,但是CAN线的仲裁还只是使用了11bit数据。
第28-26bit为优先级,最高三位作为优先级这样符合CAN本身的仲裁规定,提供8个优先级别,0级的优先级最高,7级最低。在使用中默认情况使用中间的值如3级,紧急的事件传输采用0级或1级,优先级别低的事件默认采用7级。当三个bit的位址值全为1时优先级最低,全为0时优先级最高。具体为:0级:000,1级:001,二级:010,三级011,四级:100,五级:101,六级:110,七级:111。将系统模块ID分解为系统ID和子模块ID,由于每个系统对应一个CAN收发模块,这样在多系统同时发送数据时CAN模块分别已优先级、原系统ID、目的系统ID作为一二三级仲裁依据,在收取数据时每个系统的CAN模块以目的系统ID为过滤基准进行收取,具体模块的区分在系统代码中进行分发。
第25-22bit为源系统ID,全系统编号,每个系统一个编号,总控系统编号为0,优先级最高,其他系统编号根据实际测试进行编号。源系统ID中最大的编号视为广播ID。第21-18bit为目的系统ID,与源系统ID相同,只是处在的场景不同,每个系统的CAN接收过滤都是以自身的系统ID和广播ID为基准,即只接收目的系统ID为自身系统ID和广播ID的数据包。
第15-8bit为数据包的总包数,实际值为数据分包总数减一,为区分后续数据帧为单包还是多包数据的依据,即区分后续数据帧是分包数据还是完整的数据,并与数据位中packet_SN一起来判定数据包的完结。如表2所示,数据帧分为两种情况:当为实际传输的数据字节数小于等于8字节时,扩展ID的总包数设置为0,数据帧为实际数据;当实际数据字节数大于8字节时,就需要做分包处理,分包总数=数据总字节数/6 + !(!(数据总字节数%6)),分包总数设置在扩展ID的总包数中(为实际总数-1),每次传输的数据帧中需要添加1字节的packet_id和1字节的packet_SN,之后才是实际数据分解的值。Packet_SN为多包的分解序列号,组包时候按照这个编号进行整合,Packet_SN与总包数一致时,表明此数据帧为最后一帧分解数据。packet_id为同一系统子模块发送时候的发送标记号,同一数据发送的分解帧packet_id相同,每次发送完一个数据的全部分解帧后,packet_id加1,packet_id等于127时归零以防止越界;这样packet_id和系统子模块ID结合就可以准确的对分包定位,避免了只用系统子模块ID做组包依据时对同源同目的的其他分解包的错误整合。需要说明的是,多包数据帧分为三个部分:packet_id,packet_SN及实际数据分解。本发明所述的通信方法只对分包数据帧,单包没有packet_id,packet_SN部分。
第7-4bit为源模块ID,3-0为目的模块ID。源模块ID为每个系统内对自身子模块单独编号,与系统ID结合为系统子模块ID后对机器人系统全局唯一。目的模块ID与源模块ID一致。源模块ID和目的模块ID结合源系统ID和目的系统ID可以确定CAN收发的源和目的系统子模块。
17-16位缺省,值恒为“00”。
表1 CAN总线扩展ID分解示意
  
表2多包时数据帧部分的分解示意
    以上实施例仅用以说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,其均应涵盖在本发明的权利要求范围当中。

Claims (7)

1.一种基于CAN总线的机器人系统内通信方法,其特征在于:通信只采用CAN总线的扩展帧,将29bit的扩展帧分为7部分,前三部分为优先级、源系统ID、目的系统ID;具体为:第28-26bit为优先级、第25-22bit为源系统ID、第21-18bit为目的系统ID;在多系统同时发送数据时CAN模块分别以优先级、原系统ID、目的系统ID作为一二三级仲裁依据,在收取数据时每个系统的CAN模块以目的系统ID为过滤基准进行收取,具体模块的区分在系统代码中进行分发;第15-8bit为数据包的总包数,实际值为数据分包总数减一,为区分后续数据帧为单包还是多包数据的依据;第7-4bit为源模块ID,3-0为目的模块ID。
2.根据权利要求1所述的基于CAN总线的机器人系统内通信方法,其特征在于:所述优先级提供8个优先级别,0级的优先级最高,7级最低。
3.根据权利要求1所述的基于CAN总线的机器人系统内通信方法,其特征在于:所述源系统ID为全系统的编号,每个系统一个编号,总控系统编号为0,优先级最高,其他系统编号根据实际测试进行编号。
4.根据权利要求1所述的基于CAN总线的机器人系统内通信方法,其特征在于:所述目的系统ID与源系统ID一致。
5.根据权利要求1所述的基于CAN总线的机器人系统内通信方法,其特征在于:所述源模块ID为每个系统内对自身子模块单独编号,与系统ID结合为系统子模块ID后对机器人系统全局唯一。
6.根据权利要求1所述的基于CAN总线的机器人系统内通信方法,其特征在于:所述目的模块ID与源模块ID一致。
7.根据权利要求1所述的基于CAN总线的机器人系统内通信方法,其特征在于:CAN发送的数据小于等于8字节时,无需分包,所述数据包的总包数设置为0;当发送数据大于8字节时,需要分包处理,根据图表二对数据帧的规定,分包总数=数据总字节数/6 + !(!(数据总字节数%6));在接收组包时当数据帧的packet_SN和总包数相等时,则这个分包为数据的最后一个分包。
CN201510304052.2A 2015-06-04 2015-06-04 一种基于can总线的机器人系统内通信方法 Active CN105007208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510304052.2A CN105007208B (zh) 2015-06-04 2015-06-04 一种基于can总线的机器人系统内通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510304052.2A CN105007208B (zh) 2015-06-04 2015-06-04 一种基于can总线的机器人系统内通信方法

Publications (2)

Publication Number Publication Date
CN105007208A true CN105007208A (zh) 2015-10-28
CN105007208B CN105007208B (zh) 2018-11-23

Family

ID=54379735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510304052.2A Active CN105007208B (zh) 2015-06-04 2015-06-04 一种基于can总线的机器人系统内通信方法

Country Status (1)

Country Link
CN (1) CN105007208B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107493216A (zh) * 2017-08-11 2017-12-19 辽宁瑞华实业集团高新科技有限公司 控制器局域网can总线数据处理方法及装置
CN113452591A (zh) * 2021-06-21 2021-09-28 合安科技技术有限公司 基于can总线连续数据帧的回路控制方法及装置
CN114631289A (zh) * 2019-11-06 2022-06-14 株式会社乐博益思 有效的通信总线仲裁系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101106504A (zh) * 2007-06-28 2008-01-16 北京大学 基于can总线的智能自主机器人分布式通信系统
CN101547149A (zh) * 2009-04-20 2009-09-30 浙江大学 一种基于can网络的osek com消息动态调度方法
CN101662404A (zh) * 2008-08-27 2010-03-03 上海海事大学 基于can总线船舶电站控制仪表通信方法
CN103325155A (zh) * 2013-03-28 2013-09-25 朱银娟 基于can总线的高效数据记录方法
US20130331147A1 (en) * 2012-06-11 2013-12-12 Samsung Electronics Co., Ltd. Service providing system including display device and mobile device, and method for providing service using the same
CN104333517A (zh) * 2014-09-28 2015-02-04 航天科工深圳(集团)有限公司 基于can总线的自动化设备通信方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101106504A (zh) * 2007-06-28 2008-01-16 北京大学 基于can总线的智能自主机器人分布式通信系统
CN101662404A (zh) * 2008-08-27 2010-03-03 上海海事大学 基于can总线船舶电站控制仪表通信方法
CN101547149A (zh) * 2009-04-20 2009-09-30 浙江大学 一种基于can网络的osek com消息动态调度方法
US20130331147A1 (en) * 2012-06-11 2013-12-12 Samsung Electronics Co., Ltd. Service providing system including display device and mobile device, and method for providing service using the same
CN103325155A (zh) * 2013-03-28 2013-09-25 朱银娟 基于can总线的高效数据记录方法
CN104333517A (zh) * 2014-09-28 2015-02-04 航天科工深圳(集团)有限公司 基于can总线的自动化设备通信方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107493216A (zh) * 2017-08-11 2017-12-19 辽宁瑞华实业集团高新科技有限公司 控制器局域网can总线数据处理方法及装置
CN107493216B (zh) * 2017-08-11 2020-05-12 北京瑞华高科技术有限责任公司 控制器局域网can总线数据处理方法及装置
CN114631289A (zh) * 2019-11-06 2022-06-14 株式会社乐博益思 有效的通信总线仲裁系统及方法
CN114631289B (zh) * 2019-11-06 2023-10-24 株式会社乐博益思 有效的通信总线仲裁系统及方法
CN113452591A (zh) * 2021-06-21 2021-09-28 合安科技技术有限公司 基于can总线连续数据帧的回路控制方法及装置

Also Published As

Publication number Publication date
CN105007208B (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN106776436B (zh) 一种适用于多点互联的高速串行总线的通信方法
US8060672B2 (en) Event signaling between peripheral modules and a processing unit
US5315707A (en) Multiprocessor buffer system
US8665891B2 (en) Gateway apparatus
US5132680A (en) Polling communication system with priority control
CN103875206B (zh) 一种数据传输方法和数据转发设备及系统
CN102427426B (zh) 同时支持afdx与普通以太网交换的方法及装置
CN105007208A (zh) 一种基于can总线的机器人系统内通信方法
CN101977094A (zh) 一种适于多主通信的星载can总线通信方法
CN102857397A (zh) 一种多主异步双工差分总线及通讯方法
CN108111494A (zh) 一种1553B总线与FlexRay总线的协议转换装置
CN103281321A (zh) 一种星载FlexRay总线动态段通信方法
KR20140021304A (ko) 통신 네트워크 시스템
CN101082896A (zh) 一种主从模块间的控制方法和装置
CN104378274B (zh) 基于can总线的无主网络通信系统
CN101106504A (zh) 基于can总线的智能自主机器人分布式通信系统
CN109067630A (zh) 一种串口数据通信链路分路协调控制装置
CN111740922B (zh) 数据传输方法、装置、电子设备及介质
CN103812797A (zh) 传输数据分组的方法及发送和接收数据分组的通信模块
CN1819506A (zh) 串行接口无线通信数据的处理方法
CN102638589B (zh) 一种通道的对应连接关系的确定方法及相关连接端和系统
CN102694712B (zh) 网络系统及网络至网络桥接器
CN107222379A (zh) 一种串口通信的方法和装置
CN107241251A (zh) 多路can报文实时接收的软件实现方法
CN108712347A (zh) 一种交换机的数据传输系统及其传输方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: No. 3 Gu Tan Road in Gaochun Economic Development Zone of Nanjing city in Jiangsu province 211316

Applicant after: Nanjing Science and Technology Ltd. of A Fanda robot

Address before: 210012, 1-A2 building, Nanhai biological garden, No. 180, software Avenue, Yuhuatai District, Jiangsu, Nanjing

Applicant before: Nanjing Science and Technology Ltd. of A Fanda robot

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant