一种CAN总线数据传输方法技术

技术编号:4270544 阅读:1214 留言:0更新日期:2012-04-11 18:40
一种CAN总线数据传输方法,采用动态改变帧优先级、帧顺序控制、多帧应答机制、多帧遴选策略等方法提高CAN总线大数据块传输的可靠性。本发明专利技术采用了动态改变帧优先级的策略,多帧数据的第一帧和最后一帧的优先级高于普通数据,因此这两帧将不受普通多帧数据的影响,保证了帧标识、帧长度、帧校验码等重要控制信息的正常接收;本发明专利技术多帧应答机制增加了头帧应答与尾帧应答,保证了头帧有效接收的同时,也杜绝了头帧已错误但仍继续发送数据的情况,有效节约了总线带宽,提高了传输效率;本发明专利技术尾帧应答中含有的错误帧序号也使得数据发送端尽快得知错误的具体帧号,从而仅重发错误的帧号,而不必全部重新发送,浪费总线带宽;本发明专利技术大幅提高了CAN总线大数据块收发的可靠性,并具有一定的纠检错功能,扩大了CAN总线的应用层次,提高了网络系统的健壮性。

【技术实现步骤摘要】

本专利技术涉及一种CAN现场总线数据传输方法,特别是采用动态改变优先级、帧顺序控制、多帧应答机制等多项技术提高CAN总线多帧数据传输可靠性的方法,属于数据传输

技术介绍
由于CAN总线标准只规定了物理层和数据链路层,应用层部分需要自行开发。目前小卫星常用作法是将大块数据分割成较小的数据块,小块数据单独发送,接收端将数据全部接收后按照先后顺序拼接成原始数据。该种处理方式简单实用,适用于数据量较小、通信场合稳定可靠的情况。在数据块变大,且通信环境恶劣时,可能会产生误码。目前对于误码的处理方式为重新发送。而大数据块全部重新发送需要占用总线带宽及通信时间,不利于星载测控数据的可靠传输。 许杭等于2007年12月发表在《计算机工程》的《CAN总线上层协议的设计》一文重点阐述了基于CAN扩展帧格式的应用层协议设计,而本专利技术基于CAN标准帧格式,格式定义不同,现场应用的方向不同。
技术实现思路
本专利技术的技术解决问题是克服现有技术的不足,提供一种高可靠的CAN总线大数据块传输方法,大幅提高了CAN总线大数据块收发的可靠性,并具有一定的纠检错功能,扩大了CAN总线的应用层次,提高了网络系统的健壮性。 本专利技术的技术解决方案是一种CAN总线数据传输方法,通过以下步骤实现 第一步,数据发送方将要传输的大数据块按照特定的帧格式分成若干个数据帧的多帧形式,每一帧数据包括仲裁场、控制场和有效数据场,其中仲裁场的ID10、ID9位为帧优先级、ID8~ID3位为帧顺序控制域,用来填写帧序号,将若干个数据帧的第一帧即头帧和最后一帧即尾帧的帧优先级定为0,其他数据帧的优先级定为1,头帧的帧序号为0,其余数据帧的帧序号按1、2、3...N的顺序编号,N为大数据块分成的数据帧的帧总数,头帧的有效数据场第一位数据字节T为帧标识,第二个数据字节L为帧总数,即N的数值,尾帧的有效数据场的最后一个字节SUM为校验字,头帧、尾帧剩余有效数据场及其余的数据帧的有效数据场的字节为要传输的有效数据; 第二步,数据发送方将头帧发送到数据接收方; 第三步,数据接收方接到头帧后,向数据发送方返回头帧应答数据帧,头帧应答数据帧格式为有效数据场第一字节T为应答帧的帧标识,第二字节为头帧接收状态,第三个字节SUM为本帧的校验字,若数据接收方向数据发送方返回的头帧应答数据帧有效数据场第二字节为0表示头帧正确接收,进入第四步,若头帧应答数据帧有效数据场第二字节为1表示头帧未正确接收,需要重新发送,则返回第二步,若数据发送方在10ms内未收到头帧应答数据帧,则返回第二步; 第四步,数据发送方继续向数据接收方发送其余的数据帧,直到尾帧; 第五步,数据接收方接收完所有的数据帧,根据检查所有数据帧的结果向数据发送方返回尾帧应答数据帧,若数据发送方10ms未接到数据接收方返回的尾帧应答数据帧,则回到第二步; (1)数据接收方检查所有数据帧的帧顺序控制域,若数据帧的顺序号连续完整,进入步骤(2),若数据帧的顺序号不是连续完整的,则进入步骤(3); (2)利用尾帧的校验字对接收到所有数据帧进行校验,若校验正确,则进入步骤(4),若校验不正确则进入步骤(5); (3)数据接收方向数据接收方返回部分重发的尾帧应答数据帧,数据帧的格式为有效数据场的第一字节T为应答帧的帧标识,中间的字节为需重新发送的数据帧的帧序号,第后一个字节SUM为本帧的校验字,进入步骤(6); (4)数据接收方向数据接收方返回全部正确的尾帧应答数据帧,数据帧的格式为有效数据场的第一字节T为应答帧的帧标识,第二个字节SUM为本帧的校验字,进入第七步; (5)数据接收方向数据接收方返回全部重发的尾帧应答数据帧,数据帧的格式为有效数据场的第一字节T为应答帧的帧标识,中间的字节为全部的数据帧的帧序号,第后一个字节SUM为本帧的校验字,进入步骤(6); (6)数据接收方根据数据接收方返回的尾帧应答数据帧,向数据接收方发送所需重新发送的数据帧,回到步骤(1); 第六步,在数据接收方接受多帧数据时,接受到多帧数据以外的数据帧,根据数据帧仲裁场的帧优先级确定接收的顺序,优先级高的先接收; 第七步,多帧数据传输完毕。 所述第三步中若数据发送方在10ms内未收到头帧应答数据帧,回到第二步重新发送头帧的次数最多不超过5次,重新发送5次后仍未收到头帧应答数据帧,则停止发送,多帧数据传输结束。 所述第五步若数据发送方在10ms内未接到数据接收方返回的尾帧应答数据帧,则回到第二步重新发送,重新发送的次数不超过3次,重新发送3次后仍未收到尾帧应答数据帧,则停止发送,多帧数据传输结束。 所述第五步步骤(6)中,数据接收方返回的尾帧应答数据帧为部分重发,数据发送方重新发送所需数据帧,重新发送的次数最多不超过5次,重新发送5次后仍未收到全部正确的尾帧应答数据帧,则停止发送,多帧数据传输结束。 所述第五步步骤(6)中,数据接收方返回的尾帧应答数据帧为全部重发,数据发送方重新发送所有数据帧,重新发送的次数最多不超过3次,重新发送3次后仍未收到全部正确的尾帧应答数据帧,则停止发送,多帧数据传输结束。 本专利技术设计原理 本专利技术采用动态改变帧优先级、帧顺序控制、多帧应答机制、多帧遴选策略等方法提高CAN总线大数据块传输的可靠性。 (1)动态改变帧优先级,提高第一帧(头帧)和最后一帧(尾帧)的优先级,使得多帧的头帧与尾帧的优先级高于其它多帧或优先级不高的单帧,保证重要信息(如帧标识、校验字)等数据的正确接收。帧优先级通过帧仲裁场ID10~ID9来体现,数值越小优先级越高; (2)帧顺序控制,将大数据块分成多帧后,将仲裁场ID8~ID3定义为帧顺序控制域,发送前将多帧按特定顺序编号,该编号填充在帧顺序控制域中。接收端将数据全部接收后,按照帧顺序控制域的内容将接收数据进行排序,并将数据拼接进行校验。如果发生后发先至的情况,接收端可根据帧顺序控制域进行适当调整。 (3)多帧应答机制,多帧数据接收方需要对多帧的头帧和尾帧分别进行应答。头帧和尾帧分别在帧顺序控制域中给出,由于这两帧最为重要,需要分别进行应答,多帧中的其它帧则通过异或和校验字SUM进行校验。尾帧作为多帧数据的结尾,包含有全部数据的校验字,因此尾帧的应答帧需要根据全部数据是否正确接收进行组织。尾帧的应答帧包含错误帧的序号,可促使发送端自动重发。 (4)多帧遴选策略,在多帧传送过程中,有可能被插入其它单帧或多帧,如重要的控制信息。为简化处理,这里采取舍弃低优先级帧的策略。 本专利技术与现有技术相比有益效果为 (1)本专利技术采用了动态改变帧优先级的策略,多帧数据的第一帧和最后一帧的优先级高于普通数据,因此这两帧将不受普通多帧数据的影响,保证了帧标识、帧长度、帧校验码等重要控制信息的正常接收。 (2)本专利技术多帧应答机制增加了头帧应答与尾帧应答,保证了头帧有效接收的同时,也杜绝了头帧已错误但仍继续发送数据的情况,有效节约了总线带宽,提高了传输效率; (3)本专利技术尾帧应答中含有的错误帧序号也使得数据发送端尽快得知错误的具体帧号,从而仅重发错误的帧号,而不必全部重新发送,浪费总线带宽; (4)本专利技术大幅提高了CAN总线大数据块收发的可本文档来自技高网...

【技术保护点】
一种CAN总线数据传输方法,其特征在于通过以下步骤实现:第一步,数据发送方将要传输的大数据块按照特定的帧格式分成若干个数据帧的多帧形式,每一帧数据包括仲裁场、控制场和有效数据场,其中仲裁场的ID10、ID9位为帧优先级、ID8~ID3位为帧顺序控制域,用来填写帧序号,将若干个数据帧的第一帧即头帧和最后一帧即尾帧的帧优先级定为0,其他数据帧的优先级定为1,头帧的帧序号为0,其余数据帧的帧序号按1、2、3...N的顺序编号,N为大数据块分成的数据帧的帧总数,头帧的有效数据场第一位完毕。数据字节T为帧标识,第二个数据字节L为帧总数,即N的数值,尾帧的有效数据场的最后一个字节SUM为校验字,头帧、尾帧剩余有效数据场及其余的数据帧的有效数据场的字节为要传输的有效数据;第二步,数据发送方将头帧发送到数据接收方;第三步,数据接收方接到头帧后,向数据发送方返回头帧应答数据帧,头帧应答数据帧格式为有效数据场第一字节T为应答帧的帧标识,第二字节为头帧接收状态,第三个字节SUM为本帧的校验字,若数据接收方向数据发送方返回的头帧应答数据帧有效数据场第二字节为0表示头帧正确接收,进入第四步,若头帧应答数据帧有效数据场第二字节为1表示头帧未正确接收,需要重新发送,则返回第二步,若数据发送方在10ms内未收到头帧应答数据帧,则返回第二步;第四步,数据发送方继续向数据接收方发送其余的数据帧,直到尾帧;第五步,数据接收方接收完所有的数据帧,根据检查所有数据帧的结果向数据发送方返回尾帧应答数据帧,若数据发送方10ms未接到数据接收方返回的尾帧应答数据帧,则回到第二步;(1)数据接收方检查所有数据帧的帧顺序控制域,若数据帧的顺序号连续完整,进入步骤(2),若数据帧的顺序号不是连续完整的,则进入步骤(3);(2)利用尾帧的校验字对接收到所有数据帧进行校验,若校验正确,则进入步骤(4),若校验不正确则进入步骤(5);(3)数据接收方向数据接收方返回部分重发的尾帧应答数据帧,数据帧的格式为有效数据场的第一字节T为应答帧的帧标识,中间的字节为需重新发送的数据帧的帧序号,第后一个字节SUM为本帧的校验字,进入步骤(6);(4)数据接收方向数据接收方返回全部正确的尾帧应答数据帧,数据帧的格式为有效数据场的第一字节T为应答帧的帧标识,第二个字节SUM为本帧的校验字,进入第七步;(5)数据接收方向数据接收方返回全部重发的尾帧应答数据帧,数据帧的格式为有效数据场的第...

【技术特征摘要】
1.一种CAN总线数据传输方法,其特征在于通过以下步骤实现第一步,数据发送方将要传输的大数据块按照特定的帧格式分成若干个数据帧的多帧形式,每一帧数据包括仲裁场、控制场和有效数据场,其中仲裁场的ID10、ID9位为帧优先级、ID8~ID3位为帧顺序控制域,用来填写帧序号,将若干个数据帧的第一帧即头帧和最后一帧即尾帧的帧优先级定为0,其他数据帧的优先级定为1,头帧的帧序号为0,其余数据帧的帧序号按1、2、3...N的顺序编号,N为大数据块分成的数据帧的帧总数,头帧的有效数据场第一位数据字节T为帧标识,第二个数据字节L为帧总数,即N的数值,尾帧的有效数据场的最后一个字节SUM为校验字,头帧、尾帧剩余有效数据场及其余的数据帧的有效数据场的字节为要传输的有效数据;第二步,数据发送方将头帧发送到数据接收方;第三步,数据接收方接到头帧后,向数据发送方返回头帧应答数据帧,头帧应答数据帧格式为有效数据场第一字节T为应答帧的帧标识,第二字节为头帧接收状态,第三个字节SUM为本帧的校验字,若数据接收方向数据发送方返回的头帧应答数据帧有效数据场第二字节为0表示头帧正确接收,进入第四步,若头帧应答数据帧有效数据场第二字节为1表示头帧未正确接收,需要重新发送,则返回第二步,若数据发送方在10ms内未收到头帧应答数据帧,则返回第二步;第四步,数据发送方继续向数据接收方发送其余的数据帧,直到尾帧;第五步,数据接收方接收完所有的数据帧,根据检查所有数据帧的结果向数据发送方返回尾帧应答数据帧,若数据发送方10ms未接到数据接收方返回的尾帧应答数据帧,则回到第二步;(1)数据接收方检查所有数据帧的帧顺序控制域,若数据帧的顺序号连续完整,进入步骤(2),若数据帧的顺序号不是连续完整的,则进入步骤(3);(2)利用尾帧的校验字对接收到所有数据帧进行校验,若校验正确,则进入步骤(4),若校验不正确则进入步骤(5);(3)数据接收方向数据接收方返回部分重发的尾帧应答数据帧,数据帧的格式为有效数据场的第一字节T为应答帧的帧标识,...

【专利技术属性】
技术研发人员:李国军谢松霍德聪
申请(专利权)人:航天东方红卫星有限公司
类型:发明
国别省市:11[中国|北京]

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

1
相关领域技术
  • 暂无相关专利