CN105007208B - 一种基于can总线的机器人系统内通信方法 - Google Patents
一种基于can总线的机器人系统内通信方法 Download PDFInfo
- Publication number
- CN105007208B CN105007208B CN201510304052.2A CN201510304052A CN105007208B CN 105007208 B CN105007208 B CN 105007208B CN 201510304052 A CN201510304052 A CN 201510304052A CN 105007208 B CN105007208 B CN 105007208B
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- system identifier
- priority
- byte
- 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
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,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 (3)
1.一种基于CAN总线的机器人系统内通信方法,其特征在于:通信只采用CAN总线的扩展帧,将29bit的扩展帧分为7部分,前三部分为优先级、源系统ID、目的系统ID;具体为:第28-26bit为优先级;第25-22bit为源系统ID,全系统编号,每个系统一个编号,总控系统编号为0,优先级最高,其他系统编号根据实际测试进行编号,源系统ID中最大的编号视为广播ID;第21-18bit为目的系统ID,与源系统ID相同,只是处在的场景不同,每个系统的CAN接收过滤都是以自身的系统ID和广播ID为基准,即只接收目的系统ID为自身系统ID和广播ID的数据包;在多系统同时发送数据时CAN模块分别以优先级、源系统ID、目的系统ID作为一二三级仲裁依据,在收取数据时每个系统的CAN模块以目的系统ID为过滤基准进行收取,具体模块的区分在系统代码中进行解析;第15-8bit为数据包的总包数,实际值为数据分包总数减一,为区分后续数据帧为单包还是多包数据的依据;第7-4bit为源模块ID,第3-0bit为目的模块ID;
CAN发送的数据小于等于8字节时,无需分包,所述数据包的总包数设置为0;当发送数据大于8字节时,需要分包处理,根据图表二对数据帧的规定,当数据总字节数是6的倍数时,分包总数 = 数据总字节数÷6,当数据总字节数不是6的倍数时,分包总数 = (数据总字节数÷6)+ 1,分包总数均取结果的小数点前整数;分包总数设置在扩展ID的总包数中,每次传输的数据帧中需要添加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占用1字节,packet_SN占用1字节,实际数据占用1~6字节。
2.根据权利要求1所述的基于CAN总线的机器人系统内通信方法,其特征在于:所述优先级提供8个优先级别,0级的优先级最高,7级最低。
3.根据权利要求1所述的基于CAN总线的机器人系统内通信方法,其特征在于:所述目的模块ID与源模块ID一致。
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 CN105007208A (zh) | 2015-10-28 |
CN105007208B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493216B (zh) * | 2017-08-11 | 2020-05-12 | 北京瑞华高科技术有限责任公司 | 控制器局域网can总线数据处理方法及装置 |
KR102256670B1 (ko) * | 2019-11-06 | 2021-05-27 | (주)로보티즈 | 효율적인 통신 버스 중재 시스템 및 방법 |
CN113452591B (zh) * | 2021-06-21 | 2023-04-07 | 合安科技技术有限公司 | 基于can总线连续数据帧的回路控制方法及装置 |
Citations (5)
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总线的高效数据记录方法 |
CN104333517A (zh) * | 2014-09-28 | 2015-02-04 | 航天科工深圳(集团)有限公司 | 基于can总线的自动化设备通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2675147B1 (en) * | 2012-06-11 | 2022-03-23 | Samsung Electronics Co., Ltd. | Service providing system in a vehicle including display device and mobile device, and method for providing service using the same |
-
2015
- 2015-06-04 CN CN201510304052.2A patent/CN105007208B/zh active Active
Patent Citations (5)
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消息动态调度方法 |
CN103325155A (zh) * | 2013-03-28 | 2013-09-25 | 朱银娟 | 基于can总线的高效数据记录方法 |
CN104333517A (zh) * | 2014-09-28 | 2015-02-04 | 航天科工深圳(集团)有限公司 | 基于can总线的自动化设备通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105007208A (zh) | 2015-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10530606B2 (en) | Method for transmitting data via a serial communication bus, bus interface, and computer program | |
CN106776436B (zh) | 一种适用于多点互联的高速串行总线的通信方法 | |
CN103875206B (zh) | 一种数据传输方法和数据转发设备及系统 | |
US8060672B2 (en) | Event signaling between peripheral modules and a processing unit | |
CN101385296B (zh) | 用于总线间信息自动路由的网关 | |
CN107919947B (zh) | 一种can总线长报文传输的编码方法 | |
CN105007208B (zh) | 一种基于can总线的机器人系统内通信方法 | |
KR20120014554A (ko) | 버퍼 디스크립션 테이블을 이용하는 can 모듈을 구비한 마이크로컨트롤러 | |
CN105791214A (zh) | 一种RapidIO报文和以太网报文之间的转换方法和设备 | |
CN108768667B (zh) | 一种用于多核处理器片内核间网络通信的方法 | |
KR20140021304A (ko) | 통신 네트워크 시스템 | |
CN112019440B (zh) | 基于标识符复用的can总线组播方法 | |
CN101202634B (zh) | 提高带宽利用率的单板和数据传输系统以及方法 | |
CN1124552C (zh) | 可监听的通信用户、通信方法和具有可监听的通信用户的通信系统 | |
CN104503354B (zh) | 数字化控制系统 | |
CN113328926B (zh) | 一种fc-ae-1553和fc-ae-asm的混合网络系统 | |
JP2003198572A (ja) | 確定的フィールドバス及びその種のバスの管理方法 | |
Desai et al. | Controller area network for intelligent vehicular systems | |
CN109428798B (zh) | 一种工业以太网与DeviceNet间的转换装置 | |
CN105812216B (zh) | PBUS无变压器EtherCAT通信电路及应用方法 | |
CN208971553U (zh) | 基于点对点的通讯网络系统 | |
CN100372334C (zh) | 一种实现在光网络中传输InfiniBand数据的设备及方法 | |
CN112291256B (zh) | Uart网关数据传输方法 | |
CN112667555B (zh) | 一种微控制单元的通信方法和装置 | |
CN111630958B (zh) | 一种基于Powerlink的语音通信方法 |
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 |