一种基于CAN总线的独占式数据采集方法技术

技术编号:15692257 阅读:259 留言:0更新日期:2017-06-24 06:07
本发明专利技术是一种基于CAN总线的独占式数据采集方法,该方法是基于CAN总线多终端的独占式数据采集方法,实现一套“数据汇总端”和N套“采集终端”之间的数据通信;“数据汇总端”和“采集终端”是智能设备;N套“采集终端”之间通过一根CAN总线电缆,采用手拉手的方式并联CAN总线上,最终连接于“数据汇总端”。包括:独占式“一对一”通信、独占式“一对多”轮询通信和紧急通信。设计了“紧急位”和“命令码”两种标志位的相互配合方法,通过在不同情况下调整报文的优先级,保证紧急数据的实时发送及响应。本发明专利技术应用范围广、性能提升数十倍、对紧急数据的实时响应能力强,且“采集终端”数量越多,采用本发明专利技术的技术效果越明显。

An exclusive data acquisition method based on CAN bus

The invention is a kind of exclusive data acquisition method based on the CAN bus, the method is the exclusive method of data acquisition terminal based on CAN bus, to achieve a \data collection terminal\ and N \communication between the data acquisition terminal\; \data collection terminal\ and \acquisition terminal is intelligent equipment N; set of acquisition terminal between through a CAN bus cable, adopt hand way parallel CAN bus, finally connected to the\ data collection terminal\. Including: exclusive one to one communication, exclusive \one to many\ polling communication and emergency communication. The method of matching two flag bits, emergency and command code, is designed to adjust the priority of message in different cases to ensure the real-time transmission and response of emergency data. The invention has the advantages of wide application range, tens of times performance improvement, strong real-time response to emergency data, and more number of acquisition terminals, and the technical effect of the invention is more obvious.

【技术实现步骤摘要】
一种基于CAN总线的独占式数据采集方法
本专利技术涉及一种数据采集方法,特别是一种基于CAN总线的独占式数据采集方法。
技术介绍
在众多现场总线中,CAN总线由于具有突出的可靠性、实时性和灵活性等优点越来越受到人们的青睐,相应地,基于CAN总线的产品需求市场正在日益扩大,应用也越来越广泛。数据采集是利用一种装置从系统外部采集数据并输入到系统内部的一种接口技术,每间隔一定时间(称采样周期)对同一点数据重复采集,广泛应用在各个领域。随着互联网行业的快速发展,数据采集已经被广泛应用于互联网及分布式领域,将数据采集带入了一个全新的时代。周期性的数据采集采用客户机/服务器的工作架构,数据汇总端作为客户机,采集终端作为服务器,当数据汇总端需要采集数据时,向采集终端发送命令请求,采集终端响应命令请求,返回要采集的数据。按照此通信流程,在一个采样周期内,完成对其他剩余的采集终端的数据采集。其缺陷是:在一个采样周期内,数据中心发出多次同样的命令请求,在CAN总线上,同一个采集终端会收到多次同样的命令请求,加上命令处理时间,极大地浪费了通信带宽。另外,采集终端需要发送紧急数据时,数据中心的实时响应时间不确定。最好的响应情况是在查询指定采集终端时,该终端正好需要发送紧急数据;最差的响应情况是在查询第一个采集终端时,最后一个采集终端需要发送紧急数据。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术的不足,提供一种实时、高效的基于CAN总线的独占式数据采集方法。本专利技术所要解决的技术问题是通过以下的技术方案来实现的。本专利技术是一种基于CAN总线的独占式数据采集方法,其特点是:该方法是基于CAN总线多终端的独占式数据采集方法,实现一套“数据汇总端”和N套“采集终端”之间的数据通信,N为正整数;所述的“数据汇总端”和“采集终端”是具有CAN硬件接口且能执行程序代码特征的智能设备;N套“采集终端”之间通过一根CAN总线电缆,采用手拉手的方式并联CAN总线上,最终连接于“数据汇总端”;该数据采集方法包括:独占式“一对一”通信;在CAN总线上,“数据汇总端”向具有指定标识符值的“采集终端”发起命令请求,仅该“采集终端”响应命令请求,并返回响应数据;独占式“一对多”轮询通信;通过配置“父亲终端”,“数据汇总端”只需发送一次命令请求就可以完成一个周期的数据采集过程;紧急通信;设计了“紧急位”和“命令码”两种标志位的相互配合方法,通过在不同情况下调整报文的优先级,保证紧急数据的实时发送及响应。本专利技术所述的一种基于CAN总线的独占式数据采集方法,其进一步优选的技术方案是:所述的智能设备为PC计算机。本专利技术所述的一种基于CAN总线的独占式数据采集方法,其进一步优选的技术方案是:该方法支持CAN2.0A或CAN2.0B协议的CAN硬件;使用了M位标识符,Y≥M≥3,对于CAN2.0A硬件,Y等于11,对于CAN2.0B硬件,Y等于29;标识符保存于CAN报文的标识符域。本专利技术所述的一种基于CAN总线的独占式数据采集方法,其进一步优选的技术方案是:“数据汇总端”和“采集终端”的标识符采用不同数值,并且“数据汇总端”标识符的数值最小;定义标识符的最低一位为紧急位,默认为“1”表示正常状态通信,“0”表示紧急数据通信;使用标识符的bit(M-2)|bit(M-1)两位作为命令码;bit0表示标识符的最低位,bit(M-1)表示标识符的最高位。本专利技术所述的一种基于CAN总线的独占式数据采集方法,其进一步优选的技术方案是:在“数据汇总端”中采用以下方法定义命令码:(1)“11b”表示数据汇总端发出数据轮询命令,请求从指定第x个采集终端开始,依次返回各个终端采集数据,x为该采集终端的标识符,x保存在CAN报文的数据域中;(2)“10b”表示数据汇总端向第x个采集终端发出特定命令请求,x为该采集终端的标识符,x与特定命令请求保存在CAN报文的数据域中;在“采集终端”中采用以下方法定义命令码:A、“11b”和“10b”表示“采集终端”响应“数据汇总端”发出的“11b”数据轮询命令请求;其中“10b”表示当前的数据发送还没有结束;“11b”表示当前的数据发送已经结束;B、在紧急位为“1”时,“00b”和“01b”表示“采集终端”响应“数据汇总端”发出的“10b”特定命令请求;其中“00b”表示当前的数据发送还没有结束;“01b”表示当前的数据发送已经结束;(3)在紧急位为“0”时,“00b”和“01b”表示“采集终端”向“数据汇总端”发出紧急命令请求;其中“00b”表示当前的数据发送还没有结束;“01b”表示当前的数据发送已经结束。本专利技术所述的一种基于CAN总线的独占式数据采集方法,其进一步优选的技术方案是:该方法采用独占式一对一通信,即数据汇总端向具有指定标识符值的采集终端发起命令请求,仅该采集终端响应命令请求,并返回响应数据;配置父亲终端过程属于一对一通信,数据汇总端向指定采集终端发出“10b”命令请求包,命令请求包的数据域里含有标识符值,命令请求具有该标识符值的采集终端配置成该终端的父亲终端,该终端接收到命令请求后,进行响应配置,配置结果报告给数据汇总端;配置父亲终端实现了让该采集终端可以接收来自父亲终端的CAN报文,用于独占式一对多轮询通信。本专利技术所述的一种基于CAN总线的独占式数据采集方法,其进一步优选的技术方案是:该方法采用独占式“一对多”轮询通信:“数据汇总端”向多个“采集终端”发起查询请求,要求它们把各自的采集数据返回给“数据汇总端”,“一对多”通信是周期性的数据通信过程;在一个“一对多”通信周期里,“数据汇总端”只需发送一次命令请求,多个“采集终端”依次响应,返回本终端的采集数据;(1)“数据汇总端”向CAN总线上发出“11b”命令请求,报文的数据域里包含“采集终端1#”的标识符值,要求“采集终端1#”返回它的采集数据;(2)在CAN总线上的所有“采集终端”都可以接收“数据汇总端”的“11b”命令请求报文,通过判断报文数据域的标识符值,“采集终端1#”满足要求,它响应命令请求,向“数据汇总端”返回采集数据,其他的“采集终端”忽略该命令报文;(3)“采集终端1#”是“采集终端2#”的“父亲终端”,“采集终端2#”会同时接收到“采集终端1#”的响应报文,“采集终端1#”判断报文中标识符的紧急位是否“0”,如果是“0”,则忽略该报文;如是“1”,则再通过识别响应报文中标识符的“命令码”进行如下处理:(i)“命令码”为非“11b”时,“采集终端2#”忽略该报文,不做处理;(ii)“命令码”为“11b”时,“采集终端2#”向“数据汇总端”返回自身采集数据;而其他的“采集终端”则直接忽略“采集终端1#”的响应报文,不做处理;(4)“采集终端2#”是“采集终端3#”的“父亲终端”,“采集终端3#”会同时接收到“采集终端2#”的响应报文,“采集终端2#”判断报文中标识符的紧急位是否“0””,如果是“0”,则忽略该报文;如是“1”,则再通过识别响应报文中标识符的“命令码”进行如下处理:(i)“命令码”为非“11b”时,“采集终端2#”忽略该报文,不做处理;(ii)“命令码”为“11b”时,“采集终端2#”向“数据汇总端”返回自身采集数据;而其他的“采集终端”本文档来自技高网...
一种基于CAN总线的独占式数据采集方法

【技术保护点】
一种基于CAN总线的独占式数据采集方法,其特征在于:该方法是基于CAN总线多终端的独占式数据采集方法,实现一套“数据汇总端”和N套“采集终端”之间的数据通信,N为正整数;所述的“数据汇总端”和“采集终端”是具有CAN硬件接口且能执行程序代码特征的智能设备;N套“采集终端”之间通过一根CAN总线电缆,采用手拉手的方式并联CAN总线上,最终连接于“数据汇总端”;其数据采集方法包括:独占式“一对一”通信;在CAN总线上,“数据汇总端”向具有指定标识符值的“采集终端”发起命令请求,仅该“采集终端”响应命令请求,并返回响应数据;独占式“一对多”轮询通信;通过配置“父亲终端”,“数据汇总端”只需发送一次命令请求就可以完成一个周期的数据采集过程;紧急通信;设计了“紧急位”和“命令码”两种标志位的相互配合方法,通过在不同情况下调整报文的优先级,保证紧急数据的实时发送及响应。

【技术特征摘要】
1.一种基于CAN总线的独占式数据采集方法,其特征在于:该方法是基于CAN总线多终端的独占式数据采集方法,实现一套“数据汇总端”和N套“采集终端”之间的数据通信,N为正整数;所述的“数据汇总端”和“采集终端”是具有CAN硬件接口且能执行程序代码特征的智能设备;N套“采集终端”之间通过一根CAN总线电缆,采用手拉手的方式并联CAN总线上,最终连接于“数据汇总端”;其数据采集方法包括:独占式“一对一”通信;在CAN总线上,“数据汇总端”向具有指定标识符值的“采集终端”发起命令请求,仅该“采集终端”响应命令请求,并返回响应数据;独占式“一对多”轮询通信;通过配置“父亲终端”,“数据汇总端”只需发送一次命令请求就可以完成一个周期的数据采集过程;紧急通信;设计了“紧急位”和“命令码”两种标志位的相互配合方法,通过在不同情况下调整报文的优先级,保证紧急数据的实时发送及响应。2.根据权利要求1所述的一种基于CAN总线的独占式数据采集方法,其特征在于:所述的智能设备为PC计算机。3.根据权利要求1所述的一种基于CAN总线的独占式数据采集方法,其特征在于:该方法支持CAN2.0A或CAN2.0B协议的CAN硬件;使用了M位标识符,Y≥M≥3,对于CAN2.0A硬件,Y等于11,对于CAN2.0B硬件,Y等于29;标识符保存于CAN报文的标识符域。4.根据权利要求1所述的一种基于CAN总线的独占式数据采集方法,其特征在于:“数据汇总端”和“采集终端”的标识符采用不同数值,并且“数据汇总端”标识符的数值最小;定义标识符的最低一位为紧急位,默认为“1”表示正常状态通信,“0”表示紧急数据通信;使用标识符的bit(M-2)|bit(M-1)两位作为命令码;bit0表示标识符的最低位,bit(M-1)表示标识符的最高位。5.根据权利要求1-4任何一项所述的一种基于CAN总线的独占式数据采集方法,其特征在于:在“数据汇总端”中采用以下方法定义命令码:(1)“11b”表示数据汇总端发出数据轮询命令,请求从指定第x个采集终端开始,依次返回各个终端采集数据,x为该采集终端的标识符,x保存在CAN报文的数据域中;(2)“10b”表示数据汇总端向第x个采集终端发出特定命令请求,x为该采集终端的标识符,x与特定命令请求保存在CAN报文的数据域中;在“采集终端”中采用以下方法定义命令码:A、“11b”和“10b”表示“采集终端”响应“数据汇总端”发出的“11b”数据轮询命令请求;其中“10b”表示当前的数据发送还没有结束;“11b”表示当前的数据发送已经结束;B、在紧急位为“1”时,“00b”和“01b”表示“采集终端”响应“数据汇总端”发出的“10b”特定命令请求;其中“00b”表示当前的数据发送还没有结束;“01b”表示当前的数据发送已经结束;(3)在紧急位为“0”时,“00b”和“01b”表示“采集终端”向“数据汇总端”发出紧急命令请求;其中“00b”表示当前的数据发送还没有结束;“01b”表示当前的数据发送已经结束。6.根据权利要求5所述的一种基于CAN总线的独占式数据采集方法,其特征在于:该方法采用独占式一对一通信,即数据汇总端向具有指定标识符值的采集终端发起命令请求,仅该采集终端响应命令请求,并返回响应数据;配置父亲终端过程属于一对一通信,数据汇总端向指定采集终端发出“10b”命令请求包,命令请求包的数据域里含有标识符值,命令请求具有该标识符值的采集终端配置成该终端的父亲终端,该终端接收到命令请求后,进行响应配置,配置结果报...

【专利技术属性】
技术研发人员:朱建培颜耀黄斌周军张继果王跃张政董奇咸云飞王成万静静
申请(专利权)人:连云港杰瑞深软科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1