【技术实现步骤摘要】
一种CAN总线双通路备份中冗余消息处理方法
[0001]本专利技术涉及一种CAN总线数据传输冗余消息处理方法,属于总线通讯
技术介绍
[0002]在各种系统应用中,经常需要使用CAN总线来传输数据,而在数据传输过程中有可能受空间干扰或电源波动等原因,会导致某一帧数据信息缺损、错乱或者丢失。为解决这一问题,现有技术主要是从硬件电路的可靠性出发,在节点接收端和发送端电路上增加对CAN电路的保护,如电源上增加滤波、隔离电路,在数字通信接口增加隔离电路,增强电路稳定性。这种方式,在节点单一、传输环境简单、数据信息少量的情况下,CAN总线传输的过程中比较可靠有效。但是涉及到传输环境复杂、数据量较大的情况下时,就缺乏一种保护措施,来保证数据传输的可靠性。
[0003]在一些对系统可靠性要求很高的应用中或者传输环境较差的场景下,比如在航天系统应用中,如何保证CAN总线组网通信中数据传输无缺损或者缺损率极低,是本领域技术人员主要解决的问题。现有技术中有一些信息传输的可靠方法,例如CN109587020B通过增加一些物理过滤 ...
【技术保护点】
【技术特征摘要】
1.一种CAN总线双通路备份中冗余消息处理方法,控制系统各节点设备之间采用CAN1和CAN2双总线组网机制进行传输数据和冗余消息处理,其特征在于:所述冗余消息处理方法作为应用程序运行于控制器,通过在CAN消息的发送端增加缓存机制和进行冗余备份,在接收端采用查重过滤机制来完成对数据信息处理,以保证CAN总线组网通信中数据传输无缺损或者缺损率极低,其过程包括:1)设备节点发送CAN信息过程:某节点需要向外发送CAN消息时,将发送的CAN消息先存入CAN1和CAN2消息FIFO队列中,通过主循环不间断查询方式,将CAN消息发送到CAN1和CAN2总线上;2)设备节点接收CAN信息过程:CAN总线线缆网中,对各节点设备ID分配采用互斥性设计,保持其唯一性,各节点与各节点之间通过CAN通讯协议完成通讯;为避免无关信息对各执行节点产生干扰,各节点单机对CAN总线节点信息进行过滤处理,只响应与本节点相关信息;单机节点在收到控制信息后,无论信息来自哪条总线,首先确认是否为重复信息,如果不是重复信息则执行动作。2.根据权利要求1所述的CAN总线双通路备份中冗余消息处理方法,其特征在于:设备节点发送CAN信息过程中,节点待发CAN消息先存入CAN1和CAN2消息FIFO队列中,通过在程序中设置不间断查询方式判断CAN发送邮箱是否有空闲的邮箱;若有空闲邮箱,则划出一条CAN消息从FIFO队列中出栈进入CAN发送邮箱中,等待发送;若发送邮箱都被占用,则等待下一次主循环判断CAN发送邮箱是否有空闲;设置每个邮箱优先级相同,消息依次发送,发送成功后将当前被占用的邮箱置空,等待接收CAN信息,此时CAN消息已发送CAN1和CAN2总线上;发送失败后,不设置丢弃此信息,邮箱被继续占用等待下一次发送;对于不多于3个节点设备或少数据量的简单系统,设备节点需要向外发送CAN消息时,直接放入CAN发送邮箱使用而不需要存入FIFO缓存队列中。3.根据权利要求1或2所述的CAN总线双通路备份中冗余消息处理方法,其特征在于:CAN发送邮箱有3个,每个邮箱只能装一个报文;设备节点发送CAN信息过程中,应用程序查询到发送邮箱有空闲状态的,选择1个空闲邮箱将一帧CAN数据填充进去,将此空闲邮箱状态设置为繁忙,并设置CAN数据长度和发送数据位,然后将此邮箱请求预定,此时每个邮箱优先级相同,邮箱被预定发送后,等待总线空闲,发送成功后,邮箱置空,若发送失败,返回预定发送。4.根据权利要求1或2所述的CAN总线双通路备份中冗余消息处理方法,其特征在于:设备节点接收CAN信息过程中,节点接收到有效报文时,被存储在3级邮箱深度的FIFO中,此时接收回调函数会被调用,通过读取FIFO输出邮箱,来读取FIFO中最先收到的报文,等这个读完之后,才能读下一个报文;读取报文数据时,通过判断CAN句柄指针地址,判断是CAN1地址区接受的数据还是CAN2,然后对读取到的报文数据进行解析和检查是否是新消息,防止CAN1、CAN2总线上的重复消息,避免二次执行;对收到数据ID与缓存队列2中的数据ID依次进行对别,当前收...
【专利技术属性】
技术研发人员:代希杰,杨威,杨文俊,陈明欣,李之强,刘进,张骞,丁攀,
申请(专利权)人:宁波天擎航天科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。