一种CAN通信转换为串口通信的数据缓存方法及转换介质技术

技术编号:39148548 阅读:10 留言:0更新日期:2023-10-23 14:57
本发明专利技术公开一种CAN通信转换为串口通信的数据缓存方法及转换介质,涉及汽车动力电池测试通信技术领域,包括以下步骤:步骤1,在CAN通信接口和串口通信接口之间设置数据缓存转换介质,所述数据缓存转换介质设置CAN数据缓存区和串口发送缓存区;步骤2,将接收的CANFD数据帧与CAN数据缓存区中的CANFD数据帧ID进行逐一比对,若存在ID相同的CANFD数据帧,则丢弃接收的CANFD数据帧。本发明专利技术能通过提前在转换介质中控制器MCU中的RAM上定义好CAN数据缓存区和串口发送缓存区,保证在CAN通信转串口通信数据传输转发过程中不同ID的CANFD数据帧不会出现丢失的问题。会出现丢失的问题。会出现丢失的问题。

【技术实现步骤摘要】
一种CAN通信转换为串口通信的数据缓存方法及转换介质


[0001]本专利技术涉及汽车动力电池测试通信
,尤其是涉及一种CAN通信转换为串口通信的数据缓存方法及转换介质。

技术介绍

[0002]随着总线技术在汽车电子领域越来越广泛和深入地应用,汽车电子对总线宽度和数据传输速率的要求也越来越高,传统的CAN通信已难以满足日益增加的需求。CANFD继承了CAN总线的绝大多数的特性,如同样的物理层,双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制等,另外CANFD也弥补了CAN在总线带宽和数据长度的不足。目前在汽车动力电池充放电均衡测试领域,广泛采用CAN通信特别是CANFD与电池管理系统BMS进行数据交互。但汽车动力电池除常规充电外,有时还需要通过充放电均衡等测试设备对动力电池进行维护测试,但锂电池充放电均衡维护测试设备通信接口通常均采用串口通信。因此,在对新能源汽车电池进行充放电均衡测试时,需要通过CAN通信转串口通信方式进行连接充放电均衡维护设备。
[0003]目前常规的电池充放电测试时,采用的CAN通信转串口由于数据交互量小,CAN通信转串口通信数据能正常地收发。但随着充放电测试的效率和要求提高,需要实时地收发电池电压容量等参数信息,同时通过电池参数信息对充放电测参数进行调整,数据量增大且收发频率增高,传统的CAN通信已无法满足要求,继而采用CANFD进行通信。
[0004]采用CANFD通信后数据转发过程中存在的问题:
[0005]相比较CAN而言,CANFD的数据量呈几何倍数增长。同时总线上CANFD存在长、短不同间隔的数据帧,由于短间隔的数据帧的间隔时间仅有几个毫秒。而CANFD的数据吞吐量远大于串口的数据吞吐量。因此,在进行数据转发时,接收数据量大于发送数据量,短间隔数据帧频繁地接收并缓存,且存在大量相同ID数据帧,造成串口发送缓存区被大量的CAN数据帧占满。从而导致部分长间隔数据帧或其他数据帧接收时因缓存区被占用而无法存储导致数据帧丢失。
[0006]应用在电池充放电测试场景中,短间隔数据帧可以看作是电池管理系统BMS获取的实时电压、容量等实时监测信息,通过CAN转串口发送到充放电设备;长间隔数据帧可以看作是电池管理系统BMS根据电池信息对充放电设备下发的参数调节指令。因在充放电测试过程中,某段时间内的电压、容量等参数变化可能不大,就不需要频繁地获取。因此,事实上这类信息就是ID相同的短数据帧。此类ID频繁的收发会占用带宽及缓存空间,造成长间隔数据帧的充放电指令等信息无法接收,导致CAN转串口转换器在新能源电池充放电均衡等维护场合无法使用;影响充放电测试效率和安全。

技术实现思路

[0007]为了解决上述技术问题,本专利技术提供一种CAN通信转换为串口通信的数据缓存方法及转换介质。采用如下的技术方案:
[0008]一种CAN通信转换为串口通信的数据缓存方法,包括以下步骤:
[0009]步骤1,在CAN通信接口和串口通信接口之间设置数据缓存转换介质,所述数据缓存转换介质设置CAN数据缓存区和串口发送缓存区;
[0010]当转换介质在接收CAN通信接口输出的CANFD数据帧时,先将接收的CANFD数据帧在转换介质的CAN数据缓存区进行缓存;
[0011]步骤2,将接收的CANFD数据帧与CAN数据缓存区中的CANFD数据帧ID进行逐一比对,若存在ID相同的CANFD数据帧,则丢弃接收的CANFD数据帧,若缓存区中无相同ID的CANFD数据帧,则将接收的CANFD数据帧缓存在CAN数据缓存区中。
[0012]步骤3:所述CAN数据缓存区中的CANFD数据帧根据缓存顺序生成发送数据索引,并根据发送数据索引依次复制待发送的CANFD数据帧到串口发送缓存区,并清空对应缓冲区中的CANFD数据帧;
[0013]步骤4:串口发送缓存区把缓冲区里面的CANFD数据从串口转发出去,转发一帧,清空一帧缓冲区的数据。
[0014]通过采用上述技术方案,在CAN通信接口和串口通信接口之间设置数据缓存转换介质,并在数据缓存转换介质设置CAN数据缓存区和串口发送缓存区,将CAN通信接口接收的CANFD数据帧在CAN数据缓存区进行缓存,然后通过对CAN数据缓存区的数据进行检索提取,启动串口数据发送流程,将CAN数据缓存区的CANFD数据帧提取后根据模块配置进行解析,转发至串口发送缓存区进行串口数据发送,保证短间隔帧和长间隔帧都能转发到串口上,不丢失任意ID的数据帧,提高了CAN通信转串口通信中数据的稳定性。
[0015]可选的,步骤3中,串口发送缓存区每复制CAN数据缓存区中的一帧CANFD数据帧,记录CANFD数据帧ID,并清除CAN数据缓存区记录的CANFD数据帧ID对应的数据包。
[0016]通过采用上述技术方案,避免大量重复ID数据帧发送导致串口无法及时转发而造成的数据帧丢失问题。
[0017]可选的,还包括CAN通信中断处理机制,所述CAN通信中断处理机制具体是:若检测到CAN通信接口接收中断,则跳转到CAN通信驱动单元中的CAN接收中断处理函数,并基于CAN接收中断处理函数提取CANFD数据帧。
[0018]通过采用上述技术方案,当CAN通信接口数据接收中断触发,即跳转到CAN通信驱动单元中CAN接收中断处理函数,提取接收到的CANFD数据帧,通过提取的CANFD数据帧,对存储在转换介质上CAN数据缓存区的CANFD数据进行检索,是否存在ID相同的数据帧;若CAN数据缓存区中没有此ID号CANFD数据帧,则将提取到的该ID数据帧存储在CAN数据缓存区中;若CAN数据缓存区中存在此ID号数据帧,则将提取到的CANFD数据帧丢弃,并进入串口数据转发流程阶段,避免CANFD数据帧的丢失或重复传输。
[0019]可选的,还包括串口发送完成中断机制,所述串口发送完成中断机制方法是:
[0020]步骤a1,判断串口通信接口是否正在发送数据,若串口通信接口正在发送数据,则不执行任何操作;
[0021]步骤a2,若串口通信接口未发送数据,则对CAN数据缓冲区的发送数据索引执行加1操作,并判断是否已到CAN数据缓冲区发送数据索引的末尾;
[0022]步骤a3,若CAN数据缓冲区的发送数据索引已到末尾处,则不执行任何操作;
[0023]步骤a4,若CAN数据缓冲区的发送数据索引未到末尾,则从当前数据索引开始查找
未转发的CANFD数据帧;
[0024]步骤a5,若找到未转发的CANFD数据帧,则复制待发送的CANFD数据帧到串口发送缓存区,并清空对应缓冲区中的CANFD数据帧;
[0025]若未找到未转发的CANFD数据帧,则跳转到步骤a2,并在步骤a2中执行数据发送数据索引对CAN数据缓冲区的发送数据索引加1。
[0026]通过采用上述技术方案,当出现串口通信接口发送完成中断时,可检索并提取CAN数据缓冲区的CANFD数据帧,根据串口发送完成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CAN通信转换为串口通信的数据缓存方法,其特征在于:包括以下步骤:步骤1,在CAN通信接口和串口通信接口之间设置数据缓存转换介质,所述数据缓存转换介质设置CAN数据缓存区和串口发送缓存区;当转换介质在接收CAN通信接口输出的CANFD数据帧时,先将接收的CANFD数据帧在转换介质的CAN数据缓存区进行缓存;步骤2,将接收的CANFD数据帧与CAN数据缓存区中的CANFD数据帧ID进行逐一比对,若存在ID相同的CANFD数据帧,则丢弃接收的CANFD数据帧,若缓存区中无相同ID的CANFD数据帧,则将接收的CANFD数据帧缓存在CAN数据缓存区中。步骤3,所述CAN数据缓存区中的CANFD数据帧根据缓存顺序生成发送数据索引,并根据发送数据索引依次复制待发送的CANFD数据帧到串口发送缓存区,并清空对应缓冲区中的CANFD数据帧;步骤4,串口发送缓存区把缓冲区里面的CANFD数据从串口转发出去,转发一帧,清空一帧并自动装载下一帧数据发送。2.根据权利要求1所述的一种CAN通信转换为串口通信的数据缓存方法,其特征在于:步骤3中,串口发送缓存区每复制CAN数据缓存区中的一帧CANFD数据帧,记录CANFD数据帧ID,并清除CAN数据缓存区记录的CANFD数据帧ID对应的数据包。3.根据权利要求2所述的一种CAN通信转换为串口通信的数据缓存方法,其特征在于:还包括CAN通信中断处理机制,所述CAN通信中断处理机制具体是:若检测到CAN通信接口接收中断,则跳转到CAN通信驱动单元中的CAN接收中断处理函数,并基于CAN接收中断处理函数提取CANFD数据帧。4.根据权利要求3所述的一种CAN通信转换为串口通信的数据缓存方法,其特征在于:还包括串口中断发送机制,所述串口中断发送机制方法是:步骤a1,判断串口通信接口是否正在发送数据,若串口通信接口正在发送数据,则不执行任何操作;步骤a2,若串口通信接口未发送数据,则对CAN数据缓冲区的发送数据索引执行加1操作,并判断是否已到CAN数据缓冲区发送数据索引的末尾;步骤a3,若CAN数据缓冲区的发送数据索引已到末尾处,则不执行任何操作;步骤a4,若CAN数据缓冲区的发送数据索引未到末尾,则从当前数据索引开始查找未转发的CANFD数据帧;步骤a5,若找到未转发的CANFD数据帧,则复制待发送的CANFD数据帧到串口发送缓存区,并清空对应缓冲区中的CANFD数据帧;若未找到未转发的CANFD数据帧,则跳转到步骤a2,并在步骤a2中执行对CAN数据缓冲区的发送数据...

【专利技术属性】
技术研发人员:林明星丁利剑罗权
申请(专利权)人:武汉源畅科技有限公司
类型:发明
国别省市:

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

1