CN117692273A - Can帧的发送方法、装置及系统 - Google Patents

Can帧的发送方法、装置及系统 Download PDF

Info

Publication number
CN117692273A
CN117692273A CN202311786081.8A CN202311786081A CN117692273A CN 117692273 A CN117692273 A CN 117692273A CN 202311786081 A CN202311786081 A CN 202311786081A CN 117692273 A CN117692273 A CN 117692273A
Authority
CN
China
Prior art keywords
terminal
main control
bus error
interrupt
control processor
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.)
Pending
Application number
CN202311786081.8A
Other languages
English (en)
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.)
Beijing Armyfly Technology Co Ltd
Original Assignee
Beijing Armyfly Technology Co Ltd
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 Beijing Armyfly Technology Co Ltd filed Critical Beijing Armyfly Technology Co Ltd
Priority to CN202311786081.8A priority Critical patent/CN117692273A/zh
Publication of CN117692273A publication Critical patent/CN117692273A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种CAN帧的发送方法、装置及系统,该方法包括:第一CAN控制器确定连接第一CAN终端异常时,触发CAN总线错误中断,已写入发送缓存器中的待发送的CAN帧被滞留;主控处理器响应CAN总线错误中断,去使能CAN总线错误中断,将第一CAN终端不在线标志位置位后确定不再向第一CAN控制器的发送缓存器中写入CAN帧。本申请当CAN终端异常时,通过CAN控制器触发CAN总线错误中断,由主控处理器响应CAN总线错误中断并置位CAN终端不在线标志位,这样就不会再向CAN控制器的发送缓存器写入CAN帧,这样不会使主控处理器一直轮询CAN控制器的发送缓存器,不会耗费主控处理器的CPU资源。

Description

CAN帧的发送方法、装置及系统
技术领域
本申请涉及CAN帧的发送技术领域,特别是指一种CAN帧的发送方法、装置及系统、计算设备及存储介质。
背景技术
传统的通过软件发送CAN帧的方法,需要主控处理器把要发送的CAN帧的ID、数据以及数据长度写到CAN控制器的发送缓存器,然后启动CAN帧发送,把CAN帧发送至与CAN控制器连接的CAN终端。其中,主控处理器通过轮询CAN控制器的发送缓存器的方式确定是否继续发送CAN帧,如果发送缓存器空闲,则把待发送的CAN帧写入发送缓存器进行发送,如果发送缓存器已满,则不再向发送缓存器写入CAN帧。
上述发送CAN帧的方式,依赖于对发送缓存器状态的不断轮询的机制,基于该机制主控制处理器才能在每个轮询周期知晓发送缓存器状态,来确定是否继续向发送缓存器写入CAN帧,主控处理器并不关注CAN控制器所连接的CAN终端的在线状态。这种发送CAN帧的方式具有如下的问题:
当所述CAN终端出现不在线或故障等异常时,写入CAN控制器的发送缓存器的CAN帧会无法发送出去,会导致发送缓存器被逐渐写满,而此时主控处理器依然会对该发送缓存器进行不断轮询,将会耗费主控处理器的CPU资源。
因此,如何在CAN终端出现连接异常时,能够使主控处理器不去轮询发送缓存器,以降低对CPU资源的耗费,是有待解决的技术问题。
发明内容
鉴于现有技术的以上问题,本申请提供一种CAN帧的发送方法、装置及系统、计算设备及存储介质,以在CAN终端连接异常时可降低对主控处理器的CPU资源的耗费。
为达到上述目的,本申请第一方面提供了一种CAN帧的发送方法,包括:
第一CAN控制器确定连接的第一CAN终端异常时,触发CAN总线错误中断,已写入所述第一CAN控制器的发送缓存器中的待发送的CAN帧被滞留;
主控处理器响应所述CAN总线错误中断,将第一CAN终端不在线标志位置位,以及去使能所述CAN总线错误中断,以使所述CAN总线错误中断不被一直触发;
所述主控处理器基于所述第一CAN终端不在线标志位的置位,不再向所述第一CAN控制器的发送缓存器中写入CAN帧。
由上,本申请当CAN控制器连接的CAN终端异常时,CAN控制器触发CAN总线错误中断,已写入CAN控制器的发送缓存器中的待发送的CAN帧则被滞留,然后主控处理器响应该CAN总线错误中断并置位CAN终端不在线标志位,使得不会再向CAN控制器发送CAN帧,同时去使能所述CAN总线错误中断,以使CAN总线错误中断不被一直触发。可见,本申请采用了中断服务机制,替代了轮询机制,从而在CAN终端异常时降低了主控处理器的CPU资源。
作为第一方面的一种可能的实现方式,还包括:
所述第一CAN控制器确定连接的第一CAN终端恢复正常时,将滞留在所述发送缓存器中的待发送的CAN帧发送出去,并在发送完成后触发CAN发送完成中断;
所述主控处理器响应所述CAN发送完成中断,清除所述第一CAN终端不在线标志位,以及使能所述CAN总线错误中断,以使所述CAN总线错误中断可被触发;
所述主控处理器基于所述CAN终端不在线标志位的清除,向所述第一CAN控制器的发送缓存器中写入CAN帧。
由上,本申请可以在CAN终端恢复正常时,由CAN控制器发送滞留的CAN帧并触发CAN发送完成中断,主控处理器响应CAN发送完成中断后会清除CAN终端不在线标志位,从而可以向CAN控制器的发送缓存器中写入CAN帧,同时使能CAN总线错误中断,使得下次CAN终端异常时可以被触发。可见,本申请采用了中断服务机制,替代了轮询机制,从而在CAN终端异常时降低了主控处理器的CPU资源。
作为第一方面的一种可能的实现方式,还包括:
所述主控处理器将第一CAN终端不在线标志位置位后,将尚未写入所述发送缓存器中的CAN帧丢弃。
由上,本申请当主控处理器置位CAN终端不在线标志位后,会将尚未写入CAN控制器的CAN帧丢弃,这样不会占用主控处理器的内存资源。
作为第一方面的一种可能的实现方式,所述主控处理器响应所述CAN发送完成中断,清除所述第一CAN终端不在线标志位,包括:
所述主控处理器记录所述CAN发送完成中断的触发次数,当所述次数达到次数阈值时,清除所述第一CAN终端不在线标志位。
由上,本申请设定触发CAN发送完成中断的次数,当次数超过设定的次数阈值时,才会清除CAN终端不在线标志位,这样避免CAN总线错误中断被误触发或者频繁触发。
作为第一方面的一种可能的实现方式,还包括:
所述第一CAN控制器触发所述CAN发送完成中断之后,设置所述发送缓存器为空闲状态;
所述主控处理器检测到所述发送缓存器为空闲状态时,向所述发送缓存器写入待发送的CAN帧。
由上,本申请在CAN控制器触发CAN发送完成中断之后,通过中断来设置发送缓存器的状态,在主控处理器检测到发送缓存器空闲时向发送缓存器写入待发送的CAN帧,这样由中断方式替代了背景技术中的轮询的方式,降低了轮询方式对主控处理器的CPU的资源消耗。
作为第一方面的一种可能的实现方式,还包括:
所述主控处理器在初始化阶段,创建CAN发送完成中断服务、CAN总线错误中断服务;其中,所述CAN发送完成中断服务用于响应所述CAN发送完成中断,所述CAN总线错误中断服务用于响应所述CAN总线错误中断;
使能CAN发送完成中断和所述CAN总线错误中断。
由上,本申请中主控处理器进行初始化、使能CAN发送完成中断和CAN总线错误中断,使得当CAN终端异常时,可以立刻触发CAN总线错误中断,当CAN终端恢复正常时可以立刻触发CAN发送完成中断。可见本申请采用了中断服务机制,替代了轮询机制,从而在CAN终端异常时降低了主控处理器的CPU资源。
为达到上述目的,本申请第二方面提供了一种CAN帧的发送装置,包括:
第一CAN控制器,用于确定连接的第一CAN终端异常时,触发CAN总线错误中断,已写入所述第一CAN控制器的发送缓存器中的待发送的CAN帧被滞留;
主控处理器,用于响应所述CAN总线错误中断,将第一CAN终端不在线标志位置位,以及去使能所述CAN总线错误中断,以使所述CAN总线错误中断不被一直触发,基于所述第一CAN终端不在线标志位的置位,不再向所述第一CAN控制器的发送缓存器中写入CAN帧。
为达到上述目的,本申请第三方面提供了一种CAN帧的发送系统,包括:主控处理器、多个CAN控制器和多个CAN终端;
所述主控处理器与所述多个CAN控制器连接,所述多个CAN控制器与所述多个CAN终端一一连接;
所述主控处理器、所述多个CAN控制器和所述多个CAN终端用于:实现上述第一方面任一所述的CAN帧的发送方法。
本申请第四方面提供了一种计算设备,包括:
处理器,以及
存储器,其上存储有程序指令,所述程序指令当被所述处理器执行时使得所述处理器执行上述第一方面任一所述的方法。
本申请第五方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机实现上述第一方面的任一所述的方法。
附图说明
图1是本申请实施例提供的一种CAN帧的发送系统的结构性示意性图;
图2是本申请实施例提供的一种CAN帧的发送方法的一实施例的流程图;
图3为本申请实施例提供的一种主控处理器初始化流程示意图;
图4为本申请实施例提供的一种CAN帧的发送方法的一具体实施方式的流程图;
图5是本申请实施例提供的一种计算设备的结构性示意性图。
应理解,上述结构示意图中,各框图的尺寸和形态仅供参考,不应构成对本发明实施例的排他性的解读。结构示意图所呈现的各框图间的相对位置和包含关系,仅为示意性地表示各框图间的结构关联,而非限制本发明实施例的物理连接方式。
具体实施方式
下面结合附图并举实施例,对本申请提供的技术方案作进一步说明。应理解,本申请实施例中提供的系统结构和业务场景主要是为了说明本申请的技术方案的可能的实施方式,不应被解读为对本申请的技术方案的唯一限定。本领域普通技术人员可知,随着系统结构的演进和新业务场景的出现,本申请提供的技术方案对类似技术问题同样适用。
应理解,本申请实施例提供的CAN帧的发送方案,包括CAN帧的发送方法、装置及系统。由于这些技术方案解决问题的原理相同或相似,在如下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本发明,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义。
【本申请CAN帧的发送系统的实施例】
如图1所示,本申请实施例提供了一种CAN帧的发送系统,包括:主控处理器和、多个CAN控制器和多个CAN终端;所述主控处理器与所述多个CAN控制器连接,多个CAN控制器与多个CAN终端一一连接;所述主控处理器、多个CAN控制器和多个CAN终端用于:实现CAN帧的发送方法,具体的,可以分别实现各CAN控制器的CAN帧的发送。
其中,如图1所示的例子中,多个CAN控制器为CAN控制器1、CAN控制器2、……、CAN控制器n,多个CAN终端为CAN终端1、CAN终端2、……、CAN终端n。CAN控制器1连接CAN终端1、CAN控制器2连接CAN终端2、……、CAN控制器n连接CAN终端n。
其中,每个CAN控制器上具有中断处理逻辑(中断处理逻辑即在什么情况下产生中断),具体的,本申请中CAN控制器在确定连接的CAN终端异常时会产生CAN总线错误中断,在发送缓存器中的CAN帧发送出去会产生CAN发送完成中断。其中,主控处理器运行有两个中断服务程序,以分别响应两个中断执行相应的操作,对此将在后文详述。
对于具体的CAN帧的发送方法,下面将以其中的一CAN控制器(如下称为第一CAN控制器)和所连接的CAN终端(如下称为第一CAN终端)为例,详细描述。
【CAN帧的发送方法的第一实施例】
为了实现CAN终端异常时的CAN帧的发送,本申请实施例提供了一种CAN帧的发送方法,该方法的具体流程如图2所示,包括:
S210:第一CAN控制器确定连接的第一CAN终端异常时,触发CAN总线错误中断,已写入所述第一CAN控制器的发送缓存器中的待发送的CAN帧被滞留;
S220:主控处理器响应所述CAN总线错误中断,将第一CAN终端不在线标志位置位,以及去使能所述CAN总线错误中断,以使所述CAN总线错误中断不被一直触发;
S230:所述主控处理器基于所述第一CAN终端不在线标志位的置位,不再向所述第一CAN控制器的发送缓存器中写入CAN帧。
其中,所述第一CAN控制器、第一CAN终端可以为图1中的CAN控制器1和CAN终端1、CAN控制器2和CAN终端2、……、CAN控制器n和CAN终端n中的一个或多个。
其中,当第一CAN控制器未能成功向第一CAN终端发送CAN帧时,表明第一CAN控制器连接的第一CAN终端异常。当第一CAN控制器能成功向第一CAN终端发送CAN帧时,表明第一CAN控制器连接的第一CAN终端正常。即由第一CAN控制器检测到第一CAN终端异常或恢复正常。其中,第一CAN终端异常可以是第一CAN终端掉线或第一CAN终端出现故障。
其中,第一CAN控制器触发CAN总线错误中断后会产生一个中断信号给到主控处理器,然后主控处理器接收到中断信号后会响应CAN总线错误中断,在响应CAN总线错误中断时需要将第一CAN控制器的CAN总线错误中断去使能,这样可以使第一CAN控制器的CAN总线错误中断不被一直触发。若中断一直被触发将导致主控处理器会一直响应CAN总线错误中断,不仅容易会出错,也会占用主控处理器的内存。
其中,去使能CAN总线错误中断后,对应的CAN控制器将不会因CAN终端异常持续触发CAN总线错误中断,避免了CAN终端异常未回复时反复触发该CAN总线错误中断的情况。
由上,本申请当某CAN控制器连接的CAN终端异常时,该CAN控制器触发CAN总线错误中断,已写入CAN控制器的发送缓存器中的待发送的CAN帧则被滞留,然后主控处理器响应该CAN总线错误中断并置位CAN终端不在线标志位,使得不会再向该CAN控制器的发送缓存器中写入CAN帧,同时去使能该CAN控制器的所述CAN总线错误中断,以使CAN总线错误中断不被一直触发。可见,本申请采用了中断服务机制,替代了轮询机制,从而在CAN终端异常时降低了主控处理器的CPU资源。
在一些实施例中,还包括:
所述第一CAN控制器确定连接的第一CAN终端恢复正常时,将滞留在所述发送缓存器中的待发送的CAN帧发送出去,并在发送完成后触发CAN发送完成中断;
所述主控处理器响应所述CAN发送完成中断,清除所述第一CAN终端不在线标志位,以及使能所述CAN总线错误中断,以使所述CAN总线错误中断可被触发;
所述主控处理器基于所述CAN终端不在线标志位的清除,向所述第一CAN控制器的发送缓存器中写入CAN帧。
在该些实施例中,由上,本申请可以在CAN终端恢复正常时,由CAN控制器发送滞留的CAN帧并触发CAN发送完成中断,主控处理器响应CAN发送完成中断后会清除CAN终端不在线标志位,从而可以向该CAN控制器的发送缓存器中写入CAN帧,同时使能CAN总线错误中断,使得下次CAN终端异常时可以被触发。可见,本申请采用了中断服务机制,替代了轮询机制,从而在CAN终端异常时降低了主控处理器的CPU资源。
在一些实施例中,如图3所示,本申请方法还包括:
主控处理器在初始化阶段,创建CAN发送完成中断服务、CAN总线错误中断服务;其中,所述CAN发送完成中断服务用于响应所述CAN发送完成中断,所述CAN总线错误中断服务用于响应所述CAN总线错误中断;
使能CAN发送完成中断和所述CAN总线错误中断。
在上述实施例中,在进行本申请图2所示的方法步骤之前,需要对主控处理器进行图3所示的初始化:在主控处理器中创建CAN发送完成中断服务程序和CAN总线错误中断服务程序,同时每个CAN控制器上具有中断处理逻辑,这样CAN控制器在触发中断后会产生中断信号给主控处理器,主控处理器会运行中断服务程序来响应中断。
初始使能CAN发送完成中断,使得该CAN发送完成中断一直能被触发。
初始使能CAN总线错误中断,使得第一CAN控制器确定连接的第一CAN终端异常时可以立刻触发该CAN总线错误中断。
另外,还初始设置所有的CAN终端为在线状态。
经过上述初始化之后,执行图2所示的步骤S210、S220和S230。
在一些实施例中,还包括:
所述主控处理器将第一CAN终端不在线标志位置位后,将尚未写入所述发送缓存器中的CAN帧丢弃。
在该些实施例中,当响应CAN总线错误中断并将第一CAN终端不在线标志位置位后,此时就不能再向CAN控制器的发送缓存器中写入CAN帧了,那主控处理器会将已接收但还没有写入发送缓存器中的CAN帧丢弃。这样可以不占用主控处理器的内存。
在一些实施例中,所述主控处理器响应所述CAN发送完成中断,清除所述第一CAN终端不在线标志位,以及使能所述CAN总线错误中断,包括:
所述主控处理器记录所述CAN发送完成中断的触发次数,当所述触发次数达到次数阈值时,清除所述第一CAN终端不在线标志位,使能所述CAN总线错误中断。
在该些实施例中,当初始检测异常的第一CAN终端上线或故障恢复时,被滞留在该第一CAN控制器的发送缓存器中的CAN帧就会被发送到该第一CAN终端,CAN帧被发送就会触发CAN发送完成中断,此时记录触发CAN发送完成中断的次数,当触发次数达到次数阈值(比如连续收到5个触发CAN发送完成中断),此时认为第一CAN终端和第一CAN控制器之间的网络连接恢复稳定,此时再让主控处理器在CAN发送完成中断服务的程序中清除对应的第一CAN终端不在线标志位,并且使能总线错误中断。这样避免发送一帧CAN帧之后就清除对应的第一CAN终端不在线标志位,因为第一CAN终端和第一CAN控制器之间的网络连接不稳定,导致CAN总线错误中断被误触发或者频繁触发。
在一些实施例中,还包括:
所述第一CAN控制器触发所述CAN发送完成中断之后,设置所述发送缓存器为空闲状态;
所述主控处理器检测到所述发送缓存器为空闲状态时,向所述发送缓存器写入待发送的CAN帧。
在该些实施例中,当发送了CAN帧触发CAN发送完成中断后,设置该CAN控制器的发送缓存器为空闲状态,此时就可以再向该发送缓存器写入CAN帧。即,通过中断服务程序来设置发送缓存器的状态,替代了背景技术中的轮询的方式,降低了轮询方式对主控处理器的CPU的资源消耗。
【CAN帧的发送方法的一具体实施方式】
图4为本申请实施例提供的一种CAN帧的发送方法一具体实施方式的流程图,其中,以图1中的CAN终端1异常,使得CAN控制器1触发中断为例进行说明。如图4所示,该CAN帧的发送方法包括:
S410:在主控处理器中创建两个中断服务程序:CAN发送完成中断服务程序和CAN总线错误中断服务程序,使能CAN发送完成中断和CAN总线错误中断,在所有CAN控制器设置中断处理逻辑,以及设置所有的CAN终端为在线状态;
其中,在连接CAN终端异常或恢复正常时,由与该CAN终端连接的CAN控制器的中断处理逻辑产生中断给主控处理器,主控处理器运行中断服务程序来响应中断。
S420:当主控处理器通过CAN控制器1的中断处理逻辑检测到CAN终端1正常时,向该CAN控制器1的发送缓存器中写入待发送的CAN帧,然后CAN控制器1将发送缓存器中的CAN帧发送至CAN终端1,CAN控制器1触发CAN发送完成中断;
S430:当CAN控制器1将发送缓存器中的CAN帧发送后,会确定该发送缓存器为空闲状态,主控处理器可以继续向该发送缓存器内写入待发送的CAN帧;
S440:当连接CAN终端1异常(如不在线或故障导致连接异常,会检测到line down)时,CAN控制器1触发已使能的CAN总线错误中断,此时,已写入发送缓存器中的待发送的CAN帧被滞留;
S450:主控处理器响应该CAN总线错误中断,将CAN终端1不在线标志位置位,并去使能CAN控制器1的CAN总线错误中断,避免该CAN总线错误中断被一直触发,基于该CAN终端不在线标志位的置位,不再向该CAN控制器1的发送缓存器中写入CAN帧,并将主控处理器尚未写入CAN控制器1的发送缓存器中的CAN帧丢弃;
S460:当连接CAN终端1恢复正常(即恢复在线或故障解除,会检测到line up)时,CAN控制器1将滞留在其发送缓存器中的待发送的CAN帧发送至CAN终端1,在每发送完一帧CAN帧后会触发CAN发送完成中断;
S470:主控处理器响应该CAN发送完成中断,并记录CAN发送完成中断的触发次数,当触发次数大于等于次数阈值(比如5)时,清除CAN终端1不在线标志位,使能CAN控制器1的CAN总线错误中断,以使CAN控制器1的CAN总线错误中断可被触发,基于CAN终端1不在线标志位的清除,主控处理器可向CAN控制器1的发送缓存器中写入CAN帧。
其中,使能CAN总线错误中断后,对应的CAN控制器1将在连接CAN终端1再次异常时会再次触发CAN总线错误中断。
【本申请CAN帧的发送装置的实施例】
本申请实施例提供了一种CAN帧的发送装置,该CAN帧的发送装置可以用于实现上述实施例中的CAN帧的发送方法,该CAN帧的发送装置具有第一CAN控制器、主控处理器。
第一CAN控制器,用于确定连接的第一CAN终端异常时,触发CAN总线错误中断,已写入所述第一CAN控制器的发送缓存器中的待发送的CAN帧被滞留;
主控处理器,用于响应所述CAN总线错误中断,将第一CAN终端不在线标志位置位,以及去使能所述CAN总线错误中断,以使所述CAN总线错误中断不被一直触发,基于所述第一CAN终端不在线标志位的置位,不再向所述第一CAN控制器的发送缓存器中写入CAN帧。
具体可参见方法实施例中的详细描述,此处不做赘述。
【本申请计算设备的实施例】
图5是本申请实施例提供的一种计算设备900的结构性示意性图。该计算设备可以作为CAN帧的发送装置,执行上述CAN帧的发送方法中的各可选实施例,该计算设备可以是终端,也可以是终端内部的芯片或芯片系统。如图5所示,该计算设备900包括:处理器910、存储器920、通信接口930。
应理解,图5所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信,具体可以包括一个或多个收发电路或接口电路。
其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器910独立的外部存储单元的部件。
可选的,计算设备900还可以包括总线。其中,存储器920、通信接口930可以通过总线与处理器910连接。总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中采用了一条无箭头的线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本申请实施例中,该处理器910可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行上述方法的任一操作步骤以及其中任一可选的实施例。
应理解,根据本申请实施例的计算设备900可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行上述方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
另外,说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在上述的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,均属于本申请保护范畴。

Claims (10)

1.一种CAN帧的发送方法,其特征在于,包括:
第一CAN控制器确定连接的第一CAN终端异常时,触发CAN总线错误中断,已写入所述第一CAN控制器的发送缓存器中的待发送的CAN帧被滞留;
主控处理器响应所述CAN总线错误中断,将第一CAN终端不在线标志位置位,以及去使能所述CAN总线错误中断,以使所述CAN总线错误中断不被一直触发;
所述主控处理器基于所述第一CAN终端不在线标志位的置位,不再向所述第一CAN控制器的发送缓存器中写入CAN帧。
2.如权利要求1所述的方法,其特征在于,还包括:
所述第一CAN控制器确定连接的第一CAN终端恢复正常时,将滞留在所述发送缓存器中的待发送的CAN帧发送出去,并在发送完成后触发CAN发送完成中断;
所述主控处理器响应所述CAN发送完成中断,清除所述第一CAN终端不在线标志位,以及使能所述CAN总线错误中断,以使所述CAN总线错误中断可被触发;
所述主控处理器基于所述CAN终端不在线标志位的清除,向所述第一CAN控制器的发送缓存器中写入CAN帧。
3.如权利要求1所述的方法,其特征在于,还包括:
所述主控处理器将第一CAN终端不在线标志位置位后,将尚未写入所述发送缓存器中的CAN帧丢弃。
4.如权利要求2所述的方法,其特征在于,所述主控处理器响应所述CAN发送完成中断,清除所述第一CAN终端不在线标志位,包括:
所述主控处理器记录所述CAN发送完成中断的触发次数,当所述触发次数达到次数阈值时,清除所述第一CAN终端不在线标志位。
5.如权利要求2所述的方法,其特征在于,还包括:
所述第一CAN控制器触发所述CAN发送完成中断之后,设置所述发送缓存器为空闲状态;
所述主控处理器检测到所述发送缓存器为空闲状态时,向所述发送缓存器写入待发送的CAN帧。
6.如权利要求1所述的方法,其特征在于,还包括:
所述主控处理器在初始化阶段,创建CAN发送完成中断服务、CAN总线错误中断服务;其中,所述CAN发送完成中断服务用于响应所述CAN发送完成中断,所述CAN总线错误中断服务用于响应所述CAN总线错误中断;
使能CAN发送完成中断和所述CAN总线错误中断。
7.一种CAN帧的发送装置,其特征在于,包括:
第一CAN控制器,用于确定连接的第一CAN终端异常时,触发CAN总线错误中断,已写入所述第一CAN控制器的发送缓存器中的待发送的CAN帧被滞留;
主控处理器,用于响应所述CAN总线错误中断,将第一CAN终端不在线标志位置位,以及去使能所述CAN总线错误中断,以使所述CAN总线错误中断不被一直触发,基于所述第一CAN终端不在线标志位的置位,不再向所述第一CAN控制器的发送缓存器中写入CAN帧。
8.一种CAN帧的发送系统,其特征在于,包括:主控处理器、多个CAN控制器和多个CAN终端;
所述主控处理器与所述多个CAN控制器连接,所述多个CAN控制器与所述多个CAN终端一一连接;
所述主控处理器、所述多个CAN控制器和所述多个CAN终端用于:实现权利要求1至6任一项所述的CAN帧的发送方法。
9.一种计算设备,其特征在于,包括:
处理器,以及
存储器,其上存储有程序指令,所述程序指令当被所述处理器执行时使得所述处理器执行权利要求1至6任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行权利要求1至6任一项所述的方法。
CN202311786081.8A 2023-12-22 2023-12-22 Can帧的发送方法、装置及系统 Pending CN117692273A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311786081.8A CN117692273A (zh) 2023-12-22 2023-12-22 Can帧的发送方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311786081.8A CN117692273A (zh) 2023-12-22 2023-12-22 Can帧的发送方法、装置及系统

Publications (1)

Publication Number Publication Date
CN117692273A true CN117692273A (zh) 2024-03-12

Family

ID=90135212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311786081.8A Pending CN117692273A (zh) 2023-12-22 2023-12-22 Can帧的发送方法、装置及系统

Country Status (1)

Country Link
CN (1) CN117692273A (zh)

Similar Documents

Publication Publication Date Title
US10372199B2 (en) Apparatus for managing power and running and booting an inter-processor communication link between independently operable processors
CN102866971B (zh) 传输数据的装置、系统及方法
CN100365994C (zh) 用于调试以太网的方法和装置
CN109688058B (zh) 报文处理方法、装置及网络设备
US10078543B2 (en) Correctable error filtering for input/output subsystem
JP2006259869A (ja) マルチプロセッサシステム
JP2012521042A (ja) ウェブフロントエンドスロットリング
CN109474489B (zh) 一种链路检测方法、装置及网络设备
CN110912985B (zh) 一种网络链路调度方法及相关设备
US8527669B2 (en) Communication apparatus and method for communicating with an external device through USB interface using a high-speed or low-speed communication mode
CN111625388A (zh) Ssd前端错误处理方法、装置、计算机设备和存储介质
CN114880266B (zh) 故障处理的方法、装置、计算机设备和存储介质
CN117692273A (zh) Can帧的发送方法、装置及系统
KR20170117326A (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
CN114257492B (zh) 智能网卡的故障处理方法、装置、计算机设备和介质
CN109710187A (zh) NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质
CN115755570A (zh) 多冗余度异构调度裁决器的调度裁决方法及装置
CN115422099A (zh) 一种通信信息发送方法、装置、电子设备及存储介质
CN111177028B (zh) 一种动态多级缓存的方法和设备
CN108600044B (zh) 一种接口状态获取方法、装置及设备
US7512776B2 (en) Optimized control plane signalling for a high availability network device in a communications network
CN108037942B (zh) 一种嵌入式设备的自适应数据恢复与更新方法及装置
KR102474800B1 (ko) 게이트웨이 및 게이트웨이 제어방법
EP4387177A1 (en) Transmitter equalization parameter evaluation method and apparatus
US20230318984A1 (en) Data transmission flow control regime

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