CN112333066B - 一种提高can总线通讯可靠性的技术方法 - Google Patents

一种提高can总线通讯可靠性的技术方法 Download PDF

Info

Publication number
CN112333066B
CN112333066B CN202011049857.4A CN202011049857A CN112333066B CN 112333066 B CN112333066 B CN 112333066B CN 202011049857 A CN202011049857 A CN 202011049857A CN 112333066 B CN112333066 B CN 112333066B
Authority
CN
China
Prior art keywords
communication
bus
data
reliability
receiving
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
Application number
CN202011049857.4A
Other languages
English (en)
Other versions
CN112333066A (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.)
707th Research Institute of CSIC
Original Assignee
707th Research Institute of CSIC
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 707th Research Institute of CSIC filed Critical 707th Research Institute of CSIC
Priority to CN202011049857.4A priority Critical patent/CN112333066B/zh
Publication of CN112333066A publication Critical patent/CN112333066A/zh
Application granted granted Critical
Publication of CN112333066B publication Critical patent/CN112333066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明涉及一种提高CAN总线通讯可靠性的技术方法,其技术特点是:通过设置CAN总线通讯验证码和屏蔽码;CAN总线通讯波特率设置采取75%以上采样率的参数;CAN总线接收使用10次循环进行接收;CAN总线通讯写寄存器前后关闭和恢复接收中断;采用外部救援方法拯救CAN总线通讯错误故障;采用压力测试的方法测试CAN总线通讯的正确性和可靠性,实现了CAN总线通讯正确性和可靠性的提高。本发明能够在不影响实时接收数据不丢数据的前提下,CAN节点尽量少接收与自身无关数据少产生接收中断,保证CAN节点发送出来的数据均为预期数据。

Description

一种提高CAN总线通讯可靠性的技术方法
技术领域
本发明属于嵌入式通讯领域,尤其是一种提高CAN总线通讯可靠性的技术方法。
背景技术
控制器局域网络CAN总线是国际上应用最广泛的现场总线之一,它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。由于CAN总线本身的特点,其应用范围已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。特别是在军用领域,通讯的正确性和可靠性的重要性不言而喻。
在实际项目中,惯导设备做为一个CAN节点,能够接收到整车CAN网上的所有数据,其发送的数据也可以被在CAN网上的其它节点所接收。根据通讯协议,惯导设备实时接收CAN 网上的数据同时,以200Hz高频向CAN总线上发送三维姿态角信息。在实际整车使用过程中,出现了数据频率低于惯导发送的200Hz频率以及偶发出现数据报文校验不通过的问题,即出现了非预期数据,严重影响了通讯的正确性和可靠性。
发明内容
本发明的目的在于克服现有技术的不足,提出一种提高CAN总线通讯可靠性的技术方法,能够提高CAN总线通讯的正确性和可靠性。
本发明解决其技术问题是采取以下技术方案实现的:
一种提高CAN总线通讯可靠性的技术方法,包括以下步骤:
步骤1、设置CAN总线通讯验证码和屏蔽码;
步骤2、设置CAN总线通讯参数;
步骤3、CAN总线接收使用数次循环进行接收;
步骤4、CAN总线通讯写寄存器前后关闭和恢复接收中断;
步骤5、采用外部救援方法拯救CAN总线通讯错误故障;
步骤6、采用压力测试的方法测试CAN总线通讯的正确性和可靠性。
而且,所述步骤1的具体实现方法为:根据通讯协议规定的ID,计算CAN通讯验证码和屏蔽码,并设置CAN通讯验证码和屏蔽码。
而且,所述步骤2的具体实现方法为:CAN总线通讯波特率设置采取75%以上采样率的参数。
而且,所述步骤3的具体实现方法为:判断CAN总线在10次循环内是否接受到中断标志,若接收到中断则进行处理。
而且,所述步骤4的具体实现方法为:在判断为发送中断后,开始发送数据,此时关闭接收中断,数据写入发送寄存器,触发发送中断,使能接收中断。
而且,所述步骤5的具体实现方法为:CAN总线通讯产生错误时,错误寄存器会有错误标志,此时在CAN的中断服务函数以外进行判断,一旦判断检测到错误寄存器有错误标志后,重新初始化CAN芯片的方式恢复CAN的通讯。
而且,所述步骤6的具体实现方法为:采用多CAN节点模拟整个CAN网上的数据,数据设置为协议内的和协议外的干扰数据,采用高频率通讯和干扰通讯,实时查看数据的正确性和是否存在丢数现象。
本发明的优点和积极效果是:本发明通过设置CAN总线通讯验证码和屏蔽码;CAN总线通讯波特率设置采取75%以上采样率的参数;CAN总线接收使用10次循环进行接收;CAN总线通讯写寄存器前后关闭和恢复接收中断;采用外部救援方法拯救CAN总线通讯错误故障;采用压力测试的方法测试CAN总线通讯的正确性和可靠性,实现了CAN总线通讯正确性和可靠性的提高。本发明能够在不影响实时接收数据不丢数据的前提下,CAN节点尽量少接收与自身无关数据少产生接收中断,保证CAN节点发送出来的数据均为预期数据。
附图说明
图1是单滤波器扩展帧验收码和屏蔽码计算过程示意图;
图2是CAN总线通讯单次中断处理流程图;
图3是本发明CAN总线通讯写寄存器前后关闭和恢复接收中断流程图;
图4是本发明接收中断关闭时间测量流程图;
图5是本发明接收中断关闭时间测量波形图;
图6是测试环境搭建示意图。
具体实施方式
以下结合附图对本发明做进一步详述。
一种提高CAN总线通讯可靠性的技术方法,包括以下步骤:
步骤1、设置CAN总线通讯验证码和屏蔽码。根据通讯协议规定的ID,计算CAN总线通讯的验收码和屏蔽码,这样CAN芯片会在底层屏蔽掉一些与CAN自身节点无关的数据,从而在一定程度上能够有效的使CAN节点少产生接收中断。
如图1所示,为单滤波器扩展帧验收码和屏蔽码计算方法。
步骤2、CAN总线通讯波特率设置采取75%以上采样率的参数。CAN总线异常表现为:使用CAN盒和惯导点对点直接连接时通讯正常,当在上述两者间通过三轴转台进行CAN总线通讯时,实际接收到的数据频率会明显低于发送数据的频率,这是因为CAN总线为串行通讯,采样率的设置关系到数据被采集的正确性,是造成CAN总线存在电磁干扰时丢数的关键原因,同一波特率时不同采样率如表1所示。
表1
Figure RE-GDA0002835814640000021
Figure RE-GDA0002835814640000031
步骤3、CAN总线接收使用10次循环进行接收。判断CAN总线在10次循环内是否接受到中断标志,若接收到中断则进行处理。若不采用循环,只进行一次读取是否有接收中断时,因为CAN网上有大量的高频数据,会产生丢失数据或一直有未处理完的接收中断,从而CAN 芯片不再产生新的接收中断,造成通讯故障。同时若采用while循环,会导致无法跳出while 循环使得其它逻辑得不到执行。
步骤4、CAN总线通讯写寄存器前后关闭和恢复接收中断。通过本步骤能够有效的防止整个CAN网上的高频数据中断打乱CAN控制器往寄存器中写入非预期数据。惯导工作时会实时检验接收到的数据源地址是否是火控上位机、目的地址是否为惯导、帧ID是否与惯导通讯协议中规定的帧ID一致及数据校验是否正确。CAN总线上存在的大量数据帧会导致惯导CAN控制器频繁的产生接收中断,从而频繁的进入CAN接收中断服务函数,而与此同时如果惯导处于发送数据时,由于接收中断优先级高于发送中断,使数据发送流程不能被连续执行完毕,导致高频三维姿态数据写入CAN控制器发送寄存器时会写入非预期数据,从而导致CAN控制器发送出校验不通过的非预期数据。
如图2所示为CAN总线通讯单次中断处理流程图,其流程为:
⑴、CAN总线接收数据;
⑵、CAN控制器中断启动;
⑶、执行惯导中断服务函数;
⑷、判断是否为接收中断,若为接收中断,则进行⑸,否则进行⑽;
⑸、判断是否目的地址是惯导,若目的地址是惯导,则进行⑹,否则离开中断服务函数;
⑹、判断是否源地址是火控系统主节点,若源地址是火控系统主节点,则进行⑺,否则离开中断服务函数;
⑺、判断是否帧ID在协议内,若帧ID在协议内,则进行⑻,否则离开中断服务函数;
⑻、判断是否校验通过,若校验通过,则进行⑼,否则离开中断服务函数;
⑼、CAN进行数据处理,并离开中断服务函数;
⑽、判断是否为发送中断,若为发送中断,则将数据写入发送寄存器,使能发送中断,并离开中断服务函数,否则执行其他中断处理流程,并离开中断服务函数。
如图3所示为CAN总线通讯写寄存器前后关闭和恢复接收中断流程图,其步骤为:在判断为发送中断后,开始发送数据,此时关闭接收中断,数据写入发送寄存器,触发发送中断,使能接收中断。
由于采取的更改措施会在数据发送流程开始时关闭接收中断,在数据写入发送寄存器并触发发送中断后,才使能接收中断,因此在此期间可能存在影响惯导CAN总线控制器接收数据的风险。
由关闭接收中断导致接收数据丢失的原因是:在关闭中断期间,由于不产生接收中断,惯导不从RXFIFO中读取数据,CAN总线数据中却不断写RXFIFO,最终导致RXFIFO溢出,数据丢失。因此,若发送流程结束后使能接收中断时,RXFIFO没有写满溢出,接收到的数据就不会有损失而导致接收错误。
步骤5、采用外部救援方法拯救CAN总线通讯错误故障。CAN总线通讯产生错误时,错误寄存器会有错误标志,此时在CAN的中断服务函数以外进行判断,一旦判断检测到错误寄存器有错误标志后,重新初始化CAN芯片的方式恢复CAN的通讯。
步骤6、采用压力测试的方法测试CAN总线通讯的正确性和可靠性。采用多CAN节点模拟整个CAN网上的数据,数据设置为协议内的和协议外的干扰数据,采用高频率通讯和干扰通讯,开发数据接收检测软件,实时查看数据的正确性和是否存在丢数现象。
根据上述一种提高CAN总线通讯可靠性的技术方法,进行仿真测试以验证本发明。
惯导使用的CAN控制器型号为SJA1000,其RXFIFO为64字节,每帧数据最大13个字节,因此RXFIFO能够存储4帧数据。在波特率为250kbps的情况下,惯导接收1帧数据的时间为 13*10/250000,即为0.52毫秒。若关闭接收中断时长小于0.52毫秒,那么关闭接收中断的措施就不会影响惯导CAN总线上数据的接收。
接收中断关闭时间测量具体流程如图4所示。
⑴、开始发送数据;
⑵、指示灯管脚置高;
⑶、关闭接收中断;
⑷、将数据写入发送寄存器;
⑸、触发发送中断;
⑹、使能接收中断;
⑺、指示灯管脚置低。
首先更改惯导DSP软件,在关闭和打开接收中断的时刻分别将线路板LED指示灯管脚置高和置低,在上述流程执行期间,用示波器测量管脚高低电平变化时间,即为关闭接收中断时间。
经实际测量,关闭接收中断时间长度为0.025毫秒,示波器测量结果如图5所示,根据此测量结果,关闭接收中断时间长度远小于惯导接收1帧数据时长,因此该措施不影响惯导数据接收功能。
采用如图6所示的测试环境搭建示意图进行测试,采用实装200Hz惯导和双CAN盒模拟干扰数据,分别进行了5次连续2小时考核测试,共1440000帧数据,CAN通讯情况如表2所示。
表2
Figure RE-GDA0002835814640000051
从表中可以看出,采用实装设备搭建的测试环境下,采取技术措施前CAN总线通讯存在大量的丢数现象和少量的非预期数据;而采取技术措施后,CAN总线通讯一切正常,丢数和非预期数据的情况没有发生,证明了采取的技术措施的有效性。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

Claims (5)

1.一种提高CAN总线通讯可靠性的技术方法,其特征在于:包括以下步骤:
步骤1、设置CAN总线通讯验证码和屏蔽码;
步骤2、设置CAN总线通讯参数;
步骤3、CAN总线接收使用数次循环进行接收;
步骤4、CAN总线通讯写寄存器前后关闭和恢复接收中断;
本步骤的具体实现方法为:
在判断为发送中断后,开始发送数据,此时关闭接收中断,数据写入发送寄存器,触发发送中断,使能接收中断;
步骤5、采用外部救援方法拯救CAN总线通讯错误故障;
本步骤的具体实现方法为:
CAN总线通讯产生错误时,错误寄存器会有错误标志,此时在CAN的中断服务函数以外进行判断,一旦判断检测到错误寄存器有错误标志后,重新初始化CAN芯片的方式恢复CAN的通讯;
步骤6、采用压力测试的方法测试CAN总线通讯的正确性和可靠性。
2.根据权利要求1所述的一种提高CAN总线通讯可靠性的技术方法,其特征在于:所述步骤1的具体实现方法为:根据通讯协议规定的ID,计算CAN通讯验证码和屏蔽码,并设置CAN通讯验证码和屏蔽码。
3.根据权利要求1所述的一种提高CAN总线通讯可靠性的技术方法,其特征在于:所述步骤2的具体实现方法为:CAN总线通讯波特率设置采取75%以上采样率的参数。
4.根据权利要求1所述的一种提高CAN总线通讯可靠性的技术方法,其特征在于:所述步骤3的具体实现方法为:判断CAN总线在10次循环内是否接受到中断标志,若接收到中断则进行处理。
5.根据权利要求1所述的一种提高CAN总线通讯可靠性的技术方法,其特征在于:所述步骤6的具体实现方法为:采用多CAN节点模拟整个CAN网上的数据,数据设置为协议内的和协议外的干扰数据,采用高频率通讯和干扰通讯,实时查看数据的正确性和是否存在丢数现象。
CN202011049857.4A 2020-09-29 2020-09-29 一种提高can总线通讯可靠性的技术方法 Active CN112333066B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011049857.4A CN112333066B (zh) 2020-09-29 2020-09-29 一种提高can总线通讯可靠性的技术方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011049857.4A CN112333066B (zh) 2020-09-29 2020-09-29 一种提高can总线通讯可靠性的技术方法

Publications (2)

Publication Number Publication Date
CN112333066A CN112333066A (zh) 2021-02-05
CN112333066B true CN112333066B (zh) 2022-06-10

Family

ID=74313391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011049857.4A Active CN112333066B (zh) 2020-09-29 2020-09-29 一种提高can总线通讯可靠性的技术方法

Country Status (1)

Country Link
CN (1) CN112333066B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134184B (zh) * 2022-06-07 2023-05-23 西北机电工程研究所 一种任意形式can总线通讯判断方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508486A (zh) * 2011-11-09 2012-06-20 李伟 一种使用can通信数据协议的励磁故障诊断方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823414B2 (en) * 2002-03-01 2004-11-23 Intel Corporation Interrupt disabling apparatus, system, and method
EP2719599A4 (en) * 2011-06-07 2017-05-10 Daesung Electric Co., Ltd. Device and method for detecting error in dual controller system
CN106469125B (zh) * 2016-08-30 2019-08-06 浙江中控技术股份有限公司 一种基于fpga的总线通信控制器及总线通信控制方法
CN110334046A (zh) * 2019-07-11 2019-10-15 南方电网科学研究院有限责任公司 一种spi全双工的通信方法、装置及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508486A (zh) * 2011-11-09 2012-06-20 李伟 一种使用can通信数据协议的励磁故障诊断方法及装置

Also Published As

Publication number Publication date
CN112333066A (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
US10503848B2 (en) Target capture and replay in emulation
US9384108B2 (en) Functional built-in self test for a chip
US7171653B2 (en) Systems and methods for providing communication between a debugger and a hardware simulator
US20080040636A1 (en) Integrated circuit having a subordinate test interface
CN112333066B (zh) 一种提高can总线通讯可靠性的技术方法
CN109857087B (zh) 一种城轨区域控制器系统硬件在环测试系统
CN102662808B (zh) 一种pcie硬件故障检测的实现方法与装置
CN109508540B (zh) 一种芯片安全监视方法和安全监视芯片
CN117709046B (zh) 一种基于uvm的APB_bridge子系统级的验证平台的搭建方法
CN101923494B (zh) 一种存储器控制器验证系统、方法及记分板
US9117018B2 (en) Method of debugging software and corresponding computer program product
CN109273045A (zh) 存储设备在线检测方法、装置、设备及可读存储介质
CN111865928A (zh) 一种拟态交换机的安全性测试装置及测试方法
CN103713977B (zh) 一种微处理器ip核比较验证的实现方法
CN106897469A (zh) 一种测试环境生成方法及装置
CN110456763A (zh) 智能驾驶控制器的测试系统及方法
CN112329369B (zh) 一种在芯片仿真模型上进行软件调试的方法
CN115658507A (zh) 针对实时嵌入式软件源代码覆盖率分析系统
CN104678292A (zh) 一种复杂可编程逻辑器件cpld测试方法和装置
CN113467222B (zh) 主从冗余控制系统的数据同步方法及装置
CN109032918B (zh) 一种基于异常任务函数轨迹的感知节点程序异常诊断方法
CN107817696B (zh) 一种微观交通半物理仿真工具
CN104123043B (zh) 基于红外触摸屏触摸点识别算法的虚拟测试系统和方法
CN117112396B (zh) 覆盖率收集方法、组件、系统及相关设备
CN110059390A (zh) 待测器件验证装置及相关产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant