本发明专利技术实施例公开了一种CAN帧传输方法、装置、设备及介质。其中,CAN帧传输方法,包括:将至少一个待发送控制器局部网CAN帧,存储至所述主控制器的发送链表中;在接收到CAN控制器触发的发送中断时,从所述发送链表中顺序取出一个待发送CAN帧,写入至所述CAN控制器中与所述发送中断对应的目标发送缓存区,以指示所述CAN控制器进行CAN帧发送。本发明专利技术实施例的技术方案,通过设置在主控制器中的发送链表,在CAN控制器中没有空闲的发送缓存区时,对待发送CAN帧进行缓存,在CAN控制器触发发送中断时,再将待发送CAN帧存储至发送缓存区,减少了CAN总线冲突。
【技术实现步骤摘要】
一种CAN帧传输方法、装置、设备及介质
本专利技术实施例涉及移动通信领域,尤其涉及一种CAN帧传输方法、装置、设备及介质。
技术介绍
现有技术中,SPI(SerialPeripheralinterface,串行外围接口)接口的CAN(ControllerAreaNetwork,控制器局部网)控制器发送CAN帧时,通过主控制器把CAN帧写到CAN控制器中空闲的发送缓存区,CAN控制器将CAN帧发送完毕后,以中断的方式通知主控制器,主控制器根据中断状态设置该发送缓存区为空闲状态。上述方式,导致主控制器在向CAN控制器的发送缓存区写入待发送CAN帧的速率受限于SPI接口的速率和主控制器的空闲程度。当SPI接口传输速率比较低或者主控制器较忙时,容易造成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帧的速率受限于SPI接口的速率和主控制器空闲程度的问题,通过设置在主控制器中的发送链表,在CAN控制器中没有空闲的发送缓存区时,对待发送CAN帧进行缓存,在CAN控制器触发发送中断时,再将待发送CAN帧存储至发送缓存区,减少了CAN总线冲突。附图说明图1是本专利技术实施例一中的一种CAN帧传输方法的流程图;图2是本专利技术实施例二中的一种CAN帧传输方法的流程图;图3是本专利技术实施例三中的一种CAN帧传输方法的流程图;图4是本专利技术实施例四中的一种CAN帧传输装置的结构示意图;图5是本专利技术实施例五中的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一中的一种CAN帧传输方法的流程图,本实施例的技术方案适用于通过设置在主控制器的发送链表对待发送CAN帧进行缓存的情况,该方法可以由CAN帧传输装置执行,具体包括如下步骤:步骤110、将至少一个待发送CAN帧,存储至主控制器的发送链表中。其中,发送链表是设置于主控制器中用于缓存待发送CAN帧的链表。在进行CAN帧发送时,需要主控制器将待发送CAN帧发送至CAN控制器中空闲的发送缓存区,由CAN控制器进行发送。当短时间内需要发送的CAN帧较多,CAN控制器中没有空闲的发送缓存区时,主控制器需要等待较长时间,当等待时间超过设定时长,主控制器会报错,导致CAN帧发送失败。为了解决上述问题,本实施例中,在主控制器端创建了发送链表,当CAN控制器中没有空闲的发送缓存区时,主控制器可以先将待发送CAN帧缓存至发送链表中,并去执行其他操作,无需持续等待CAN控制器中出现空闲的发送缓存区。步骤120、在接收到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帧的速率受限于SPI接口的速率和主控制器空闲程度的问题,通过设置在主控制器中的发送链表,在CAN控制器中没有空闲的发送缓存区时,对待发送CAN帧进行缓存,在CAN控制器触发发送中断时,再将待发送CAN帧存储至发送缓存区,减少了CAN总线冲突。实施例二图2为本专利技术实施例二提供的一种CAN帧传输方法的流程图,本实施例在上述实施例的基础上进一步细化,提供了将至少一个待发送控制器局部网CAN帧,存储至主控制器的发送链表中之前的具体步骤,和在接收到CAN控制器触发的发送中断时,从发送链表中顺序取出一个待发送CAN帧,写入至CAN控制器中与发送中断对应的目标发送缓存区的具体步骤。下面结合图2对本专利技术实施本文档来自技高网...
【技术保护点】
1.一种CAN帧传输方法,其特征在于,应用于主控制器,包括:/n将至少一个待发送控制器局部网CAN帧,存储至所述主控制器的发送链表中;/n在接收到CAN控制器触发的发送中断时,从所述发送链表中顺序取出一个待发送CAN帧,写入至所述CAN控制器中与所述发送中断对应的目标发送缓存区,以指示所述CAN控制器进行CAN帧发送。/n
【技术特征摘要】
1.一种CAN帧传输方法,其特征在于,应用于主控制器,包括:
将至少一个待发送控制器局部网CAN帧,存储至所述主控制器的发送链表中;
在接收到CAN控制器触发的发送中断时,从所述发送链表中顺序取出一个待发送CAN帧,写入至所述CAN控制器中与所述发送中断对应的目标发送缓存区,以指示所述CAN控制器进行CAN帧发送。
2.根据权利要求1所述的方法,其特征在于,在将至少一个待发送控制器局部网CAN帧,存储至所述主控制器的接收链表中之前,还包括:
查询所述CAN控制器中是否包含至少一个处于空闲状态的发送缓存区;
若是,则将至少一个待发送CAN帧写入至少一个空闲状态的发送缓存区;
若否,则执行将至少一个待发送CAN帧,存储至所述主控制器的接收链表中的操作。
3.根据权利要求1所述的方法,其特征在于,所述发送中断中包含至少一个发送缓存区的标志位状态;
在接收到CAN控制器触发的发送中断时,从所述发送链表中顺序取出一个待发送CAN帧,写入至所述CAN控制器中与所述发送中断对应的目标发送缓存区,包括:
根据所述至少一个发送缓存区的标志位状态,确定所述CAN控制器中与所述发送中断对应的目标发送缓存区;
从所述发送链表中顺序取出一个待发送CAN帧,写入所述目标发送缓存区。
4.根据权利要求1所述的方法,其特征在于,还包括:
在接收到所述CAN控制器触发的接收中断时,对所述CAN控制器中的至少一个接收缓存区进行轮询;
在轮询过程中读取存储于至少一个接收缓存区的CAN帧,并将读取到的CAN帧写入所述主控制器的接收链表中。<...
【专利技术属性】
技术研发人员:王小军,孙大娟,
申请(专利权)人:北京东土军悦科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。