CN116909972A - 一种can通信转换为串口通信的数据缓存方法及转换介质 - Google Patents

一种can通信转换为串口通信的数据缓存方法及转换介质 Download PDF

Info

Publication number
CN116909972A
CN116909972A CN202310916553.0A CN202310916553A CN116909972A CN 116909972 A CN116909972 A CN 116909972A CN 202310916553 A CN202310916553 A CN 202310916553A CN 116909972 A CN116909972 A CN 116909972A
Authority
CN
China
Prior art keywords
data
communication
canfd
serial
buffer area
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
CN202310916553.0A
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.)
Wuhan Yuanchang Technology Co ltd
Original Assignee
Wuhan Yuanchang 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 Wuhan Yuanchang Technology Co ltd filed Critical Wuhan Yuanchang Technology Co ltd
Priority to CN202310916553.0A priority Critical patent/CN116909972A/zh
Publication of CN116909972A publication Critical patent/CN116909972A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/36Arrangements for testing, measuring or monitoring the electrical condition of accumulators or electric batteries, e.g. capacity or state of charge [SoC]
    • G01R31/385Arrangements for measuring battery or accumulator variables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Small-Scale Networks (AREA)

Abstract

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

Description

一种CAN通信转换为串口通信的数据缓存方法及转换介质
技术领域
本发明涉及汽车动力电池测试通信技术领域,尤其是涉及一种CAN通信转换为串口通信的数据缓存方法及转换介质。
背景技术
随着总线技术在汽车电子领域越来越广泛和深入地应用,汽车电子对总线宽度和数据传输速率的要求也越来越高,传统的CAN通信已难以满足日益增加的需求。CANFD继承了CAN总线的绝大多数的特性,如同样的物理层,双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制等,另外CANFD也弥补了CAN在总线带宽和数据长度的不足。目前在汽车动力电池充放电均衡测试领域,广泛采用CAN通信特别是CANFD与电池管理系统BMS进行数据交互。但汽车动力电池除常规充电外,有时还需要通过充放电均衡等测试设备对动力电池进行维护测试,但锂电池充放电均衡维护测试设备通信接口通常均采用串口通信。因此,在对新能源汽车电池进行充放电均衡测试时,需要通过CAN通信转串口通信方式进行连接充放电均衡维护设备。
目前常规的电池充放电测试时,采用的CAN通信转串口由于数据交互量小,CAN通信转串口通信数据能正常地收发。但随着充放电测试的效率和要求提高,需要实时地收发电池电压容量等参数信息,同时通过电池参数信息对充放电测参数进行调整,数据量增大且收发频率增高,传统的CAN通信已无法满足要求,继而采用CANFD进行通信。
采用CANFD通信后数据转发过程中存在的问题:
相比较CAN而言,CANFD的数据量呈几何倍数增长。同时总线上CANFD存在长、短不同间隔的数据帧,由于短间隔的数据帧的间隔时间仅有几个毫秒。而CANFD的数据吞吐量远大于串口的数据吞吐量。因此,在进行数据转发时,接收数据量大于发送数据量,短间隔数据帧频繁地接收并缓存,且存在大量相同ID数据帧,造成串口发送缓存区被大量的CAN数据帧占满。从而导致部分长间隔数据帧或其他数据帧接收时因缓存区被占用而无法存储导致数据帧丢失。
应用在电池充放电测试场景中,短间隔数据帧可以看作是电池管理系统BMS获取的实时电压、容量等实时监测信息,通过CAN转串口发送到充放电设备;长间隔数据帧可以看作是电池管理系统BMS根据电池信息对充放电设备下发的参数调节指令。因在充放电测试过程中,某段时间内的电压、容量等参数变化可能不大,就不需要频繁地获取。因此,事实上这类信息就是ID相同的短数据帧。此类ID频繁的收发会占用带宽及缓存空间,造成长间隔数据帧的充放电指令等信息无法接收,导致CAN转串口转换器在新能源电池充放电均衡等维护场合无法使用;影响充放电测试效率和安全。
发明内容
为了解决上述技术问题,本发明提供一种CAN通信转换为串口通信的数据缓存方法及转换介质。采用如下的技术方案:
一种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数据从串口转发出去,转发一帧,清空一帧缓冲区的数据。
通过采用上述技术方案,在CAN通信接口和串口通信接口之间设置数据缓存转换介质,并在数据缓存转换介质设置CAN数据缓存区和串口发送缓存区,将CAN通信接口接收的CANFD数据帧在CAN数据缓存区进行缓存,然后通过对CAN数据缓存区的数据进行检索提取,启动串口数据发送流程,将CAN数据缓存区的CANFD数据帧提取后根据模块配置进行解析,转发至串口发送缓存区进行串口数据发送,保证短间隔帧和长间隔帧都能转发到串口上,不丢失任意ID的数据帧,提高了CAN通信转串口通信中数据的稳定性。
可选的,步骤3中,串口发送缓存区每复制CAN数据缓存区中的一帧CANFD数据帧,记录CANFD数据帧ID,并清除CAN数据缓存区记录的CANFD数据帧ID对应的数据包。
通过采用上述技术方案,避免大量重复ID数据帧发送导致串口无法及时转发而造成的数据帧丢失问题。
可选的,还包括CAN通信中断处理机制,所述CAN通信中断处理机制具体是:若检测到CAN通信接口接收中断,则跳转到CAN通信驱动单元中的CAN接收中断处理函数,并基于CAN接收中断处理函数提取CANFD数据帧。
通过采用上述技术方案,当CAN通信接口数据接收中断触发,即跳转到CAN通信驱动单元中CAN接收中断处理函数,提取接收到的CANFD数据帧,通过提取的CANFD数据帧,对存储在转换介质上CAN数据缓存区的CANFD数据进行检索,是否存在ID相同的数据帧;若CAN数据缓存区中没有此ID号CANFD数据帧,则将提取到的该ID数据帧存储在CAN数据缓存区中;若CAN数据缓存区中存在此ID号数据帧,则将提取到的CANFD数据帧丢弃,并进入串口数据转发流程阶段,避免CANFD数据帧的丢失或重复传输。
可选的,还包括串口发送完成中断机制,所述串口发送完成中断机制方法是:
步骤a1,判断串口通信接口是否正在发送数据,若串口通信接口正在发送数据,则不执行任何操作;
步骤a2,若串口通信接口未发送数据,则对CAN数据缓冲区的发送数据索引执行加1操作,并判断是否已到CAN数据缓冲区发送数据索引的末尾;
步骤a3,若CAN数据缓冲区的发送数据索引已到末尾处,则不执行任何操作;
步骤a4,若CAN数据缓冲区的发送数据索引未到末尾,则从当前数据索引开始查找未转发的CANFD数据帧;
步骤a5,若找到未转发的CANFD数据帧,则复制待发送的CANFD数据帧到串口发送缓存区,并清空对应缓冲区中的CANFD数据帧;
若未找到未转发的CANFD数据帧,则跳转到步骤a2,并在步骤a2中执行数据发送数据索引对CAN数据缓冲区的发送数据索引加1。
通过采用上述技术方案,当出现串口通信接口发送完成中断时,可检索并提取CAN数据缓冲区的CANFD数据帧,根据串口发送完成中断机制进行串口数据转发,确保不同ID的CANFD数据帧都可以被转发而不出现丢失,保证了CAN通信接口接收数据的一致性和完整性。
串口DMA发送完成中断机制检测判断当前串口已发送完成,则将数据缓存区的发送数据索引+1,将缓存区从当前的结构体ID为当前发送数据索引ID中开始查找未转发的所有CANFD数据帧,按照结构体ID顺序依次复制到发送缓存区后启动DMA串口数据发送,同时缓存在结构体中的CANFD数据帧清空,等待串口DMA发送完成中断,则将数据缓存区的发送数据索引再+1,依此类推,直到发送数据索引加到末尾100(假设数据缓存区中结构体设置为100个,ID此次为1、2、3、4.....100),自动将结构体ID为100的数据转发完成,发送数据索引自动回到开始的1,重新进行下一轮数据的转发,依次类推。
一种CAN通信转换为串口通信的数据缓存转换介质,数据缓存转换介质包括CAN通信接收接口、控制器单元和串行通信发送接口;
所述CAN通信接收接口与CAN通信接口通信连接,用于采集CAN通信接口输出的CANFD数据帧,所述串行通信发送接口与串口通信接口通信连接,用于向串口通信接口转发CANFD数据帧,串行通信发送接口通过控制器单元与CAN通信接收接口通信连接,所述控制器单元用于设置CAN数据缓存区和串口发送缓存区,并控制、检测CAN通信接收接口和串行通信发送接口的执行动作,串行通信接口中设置检测发送单元,用于检测判断串行通信接口数据发送状态。
通过采用上述技术方案,数据缓存转换介质的设置主要是为了在CAN通信接口和串行通信接口之间提供一个数据缓冲转发的转换介质硬件,具体的主要基于CAN通信接收接口、控制器单元和串行通信发送接口实现,其中控制器单元用于设置CAN数据缓存区和串口发送缓存区,并控制、检测CAN通信接收接口和串行通信发送接口的执行动作,实现CAN通信转换为串口通信的数据缓存。
可选的,所述控制器单元包括CAN数据缓存区、多个第一数据结构体、DMA控制器、第二数据结构体和串口发送缓存区,所述CAN数据缓存区的数据入口对接CAN通信接收接口,所述第一数据结构体设置在CAN数据缓存区中,用于缓存接收的CANFD数据帧,所述第二数据结构体设置在串口发送缓存区中,用于缓存待发送的CANFD数据帧,所述DMA控制器用于将第一数据结构体的CANFD数据复制到第二数据结构体,所述串口发送缓存区的数据出口对接串口通信接口。
通过采用上述技术方案,CAN数据缓存区和串口发送缓存区的数据缓存主要基于第一数据结构体和第二数据结构体,而对于第一数据结构体和第二数据结构体上缓存的数据的逻辑处理主要基于DMA控制器实现。
可选的,控制器单元还包括第一索引生成器和第二索引生成器,所述第一索引生成器用于为第一数据结构体上从CAN通信接口接收的CANFD数据帧生成数据缓存接收索引,进行CANFD数据帧缓存;所述第二索引生成器用于为第一数据结构体上缓存的CANFD数据帧复制到串口发生缓存区生成数据缓存发送索引,进行CNNFD数据帧的复制发送。
通过采用上述技术方案,数据缓存接收索引主要用来建立标记接收到的CANFD数据帧指针,通过该指针CANFD数据缓存到相应的数据结构体中;数据缓存发送索引是用来建立标记待发送到数据发送缓存区CANFD数据帧指针,通过该指针CANFD数据帧复制到串口发送缓存区中。
数据索引ID的命名规则遵循“结构体ID+顺序码+帧ID”的原则。结构体ID:数据帧存在哪个结构体中;顺序码:数据帧缓存的顺序记录;帧ID:数据帧的唯一识别码,用于查找结构体中是否存在相同ID的数据帧。
可选的,所述串口发送缓存区是建立在串口通信接口中的动态缓存区。
可选的,用于新能源汽车动力电池充放电均衡测试的数据采集与转换。
可选的,CAN通信接收接口对接电池管理系统BMS的CAN通信接口,采集CAN通信接口输出的CANFD数据帧,并在控制器单元的控制下,通过串行通信发送接口传输给电池充放电均匀测试设备的串口通信接口。
通过采用上述技术方案,应用在新能源汽车动力电池充放电均衡测试场景中,具体地,电池管理系统BMS的数据输出一般为CAN通信接口,而电池充放电均匀测试设备的输入口一般是串口通信接口,因此将数据缓存转换介质应用到上述测试场景中,能够高效地实现电池充放电均匀测试设备从电池管理系统BMS采集动力电池在测试中的数据。
综上所述,本发明包括以下至少一种有益技术效果:
本发明能提供一种CAN通信转换为串口通信的数据缓存方法及转换介质,通过提前在转换介质中控制器MCU中的RAM上定义好CAN数据缓存区和串口发送缓存区,在CANFD数据接收过程中,先将CANFD数据在CAN数据缓存区进行缓存,通过建立在CAN数据缓存区结构体的索引ID进行检索,发现相同ID的数据帧则直接丢弃,如果有不同ID的数据帧则先进行缓存,然后启动串口发送缓存区发送,把缓存在缓存区上的数据帧逐一进行转发,这样CAN总线上长短不同间隔的数据帧都能转发到串口,保证不同ID的CANFD数据帧不会出现丢失的问题;可将CAN数据缓存区尽量设置大一些,可实现转发更大量不同ID的数据帧;提高串口的通信波特率,还可实现串口的吞吐量的提升。
附图说明
图1是本发明一种CAN通信转换为串口通信的数据缓存方法的流程示意图;
图2是本发明一种CAN通信转换为串口通信的数据缓存方法串口中断发送机制的流程示意图;
图3是本发明一种CAN通信转换为串口通信的数据缓存转换介质的架构原理示意图;
图4是本发明一种CAN通信转换为串口通信的数据缓存转换介质应用于新能源汽车动力电池充放电均衡测试场景的连接原理示意图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明实施例公开一种CAN通信转换为串口通信的数据缓存方法及转换介质。
参照图1-图4,实施例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数据从串口转发出去,转发一帧,清空一帧缓冲区的数据。
在CAN通信接口和串口通信接口之间设置数据缓存转换介质,并在数据缓存转换介质设置CAN数据缓存区和串口发送缓存区,将CAN通信接口接收的CANFD数据帧在CAN数据缓存区进行缓存,然后通过对CAN数据缓存区的数据进行检索提取,启动串口数据发送流程,将CAN数据缓存区的CANFD数据帧提取后根据模块配置进行解析,转发至串口发送缓存区进行串口数据发送,保证短间隔帧和长间隔帧都能转发到串口上,不丢失任意ID号的数据帧,提高了CAN通信转串口通信中数据的稳定性。
实施例2,步骤3中,串口发送缓存区每转发CAN数据缓存区中的一帧CANFD数据帧,记录CANFD数据帧ID,并清除CAN数据缓存区已转发CANFD数据帧ID对应的数据包。
避免大量重复ID数据帧发送导致串口无法及时转发而造成的数据帧丢失问题。
实施例3,还包括CANFD数据接收中断处理机制,CANFD数据接收中断处理机制具体是:若检测到CANFD数据接收中断,则跳转到CAN通信驱动单元中的CAN接收中断处理函数,并基于CAN接收中断处理函数提取接收到CANFD数据帧。
当CANFD数据接收中断触发,即跳转到CAN通信驱动单元中CANFD接收中断处理函数,提取接收到的CANFD数据帧,通过提取的CANFD数据帧,对存储在转换介质上CAN数据缓存区的CANFD数据进行检索,是否存在ID相同的数据帧;若CAN数据缓存区中没有此ID号CANFD数据帧,则将提取到的该ID数据帧存储在CAN数据缓存区中;若CAN数据缓存区中存在此ID号数据帧,则将提取到的CANFD数据帧丢弃,并进入串口数据转发流程阶段,避免CANFD数据帧的丢失或重复传输。
实施例4,参见图2,还包括串口发送完成中断机制,串口发送完成中断机制方法是:
步骤a1,判断串口通信发送接口是否正在发送数据,若串口通信发送接口正在发送数据,则不执行任何操作;
步骤a2,若串口通信发送接口未发送数据,则对CAN数据缓冲区的发送数据索引执行加1操作,并判断是否已到CAN数据缓冲区发送数据索引的末尾;
步骤a3,若CAN数据缓冲区的发送数据索引已到末尾处,则不执行任何操作;
步骤a4,若CAN数据缓冲区的发送数据索引未到末尾,则从当前数据索引开始查找未转发的CANFD数据帧;
步骤a5,若找到未转发的CANFD数据帧,则复制待发送的CANFD数据帧到串口发送缓存区,并清空对应缓冲区中的CANFD数据帧;
若未找到未转发的CANFD数据帧,则跳转到步骤a2,并在步骤a2中执行数据发送数据索引对CAN数据缓冲区的发送数据索引加1,重复之后的流程。
当出现串口通信接口发送完成中断时,可检索并提取CAN数据缓冲区的CANFD数据帧,根据串口发送中断机制进行串口数据转发,确保不同ID的CANFD数据帧都可以被转发而不出现丢失,保证了CAN通信接口接收数据的一致性和完整性。
串口DMA发送完成中断机制检测判断当前串口已发送完成,则将数据缓存区的发送数据索引+1,将缓存区从当前的结构体ID为当前发送数据索引ID中开始查找未转发的所有CANFD数据帧,按照结构体ID顺序依次复制到发送缓存区后启动DMA串口数据发送,同时缓存在结构体中的CANFD数据帧清空,等待串口DMA发送完成中断,则将数据缓存区的发送数据索引再+1,依此类推,直到发送数据索引加到末尾100,(假设数据缓存区中结构体设置为100个,ID此次为1、2、3、4.....100)自动将结构体ID为100的数据转发完成,发送数据索引自动回到开始的1,重新进行下一轮数据的转发,依次类推。
实施例5,参见图3,一种CAN通信转换为串口通信的数据缓存转换介质,数据缓存转换介质包括CAN通信接收接口、控制器单元和串行通信发送接口;
CAN通信接收接口与CAN通信接口通信连接,用于采集CAN通信接口输出的CANFD数据帧,串行通信发送接口与串口通信接口通信连接,用于向串口通信接口转发CANFD数据帧,串行通信发送接口通过控制器单元与CAN通信接收接口通信连接,控制器单元用于设置CAN数据缓存区和串口发送缓存区,并控制、检测CAN通信接收接口和串行通信发送接口的执行动作。
数据缓存转换介质的设置主要是为了在CAN通信接口和串行通信接口之间提供一个数据缓冲转发的转换介质硬件,具体的主要基于CAN通信接收接口、控制器单元和串行通信发送接口实现,其中控制器单元用于设置CAN数据缓存区和串口发送缓存区,并控制、检测CAN通信接收接口和串行通信发送接口的执行动作,实现CAN通信转换为串口通信的数据缓存,串行通信接口中设置检测发送单元,用于检测判断串行通信接口数据发送状态,同时通过串口向外发送数据。
实施例6,控制器单元包括CAN数据缓存区、多个第一数据结构体、DMA控制器、第二数据结构体和串口发送缓存区,CAN数据缓存区的数据入口对接CAN通信接收接口,第一数据结构体设置在CAN数据缓存区中,用于缓存接收的CANFD数据帧,第二数据结构体设置在串口发送缓存区中,用于缓存待发送的CANFD数据帧,DMA控制器用于将第一数据结构体的CANFD数据复制到第二数据结构体,串口发送缓存区的数据出口对接串口通信接口。
CAN数据缓存区和串口发送缓存区的数据缓存主要基于第一数据结构体和第二数据结构体,而对于第一数据结构体和第二数据结构体上缓存的数据的逻辑处理主要基于DMA控制器实现。
实施例7,控制器单元还包括第一索引生成器和第二索引生成器,第一索引生成器用于为第一数据结构体上从CAN通信接口接收的CANFD数据帧生成数据缓存接收索引,进行CANFD数据帧缓存;第二索引生成器用于为第一数据结构体上缓存的CANFD数据帧复制到串口发生缓存区生成数据缓存发送索引,进行CNNFD数据帧的复制发送。
数据缓存接收索引主要用来建立标记接收到的CANFD数据帧指针,通过该指针CANFD数据缓存到相应的数据结构体中;数据缓存发送索引是用来建立标记待发送到数据发送缓存区CANFD数据帧指针,通过该指针CANFD数据帧复制到串口发送缓存区中。
数据索引ID的命名规则遵循“结构体ID+顺序码+帧ID”的原则。结构体ID:数据帧存在哪个结构体中;顺序码:数据帧缓存的顺序记录;帧ID:数据帧的唯一识别码,用于查找结构体中是否存在相同ID的数据帧。
数据索引的建立及数据接收索引和缓存发送索引的处理逻辑如下:
结构体ID建立:建立缓存区时,根据缓存容量的需要依次建立数据结构体并进行ID命名,比如需要建立100个数据结构体,每组数据结构体能存储的数据帧个数为1个,每个数据结构体依次命名为1、2、3、......99、100,数据结构体缓存CANFD帧数据后依次排列在数据缓存区中1、2、3、......99、100。
CANFD数据帧的接收及缓存:接收CANFD数据帧时,依次按照结构体ID顺序缓存在数据结构体中,假如接收到的数据帧ID为00000010100,在CANFD数据帧进行缓存时,只检索已缓存有数据的结构体中的帧ID,若存在相同ID帧,则丢弃不存储,若无此ID帧,则按顺序依次缓存在结构体中,直至该结构体存满,(如检索结构体1号中帧ID如果是0,则将帧ID为00000010100的CAN数据帧存入其中,否则就检索结构体2号,依此类推。所有存在缓存区的结构体数据索引通过数据缓存发送索引进行复制转发至发送缓存区中,数据缓存发送索引主要按照结构体ID进行转存发送至发送缓存区,比如依次按照ID1、ID2、.....ID099、ID100的顺序进行转存。
串口发送缓存区是建立在串口通信接口中的动态缓存区。
实施例8,参见图4,用于新能源汽车动力电池充放电均衡测试的数据采集与转换和数据转换。
CAN通信接收接口对接电池管理系统BMS的CAN通信接口,采集CAN通信接口输出的CANFD数据帧,并在控制器单元的控制下,通过串行通信发送接口传输给电池充放电均匀测试设备的串口通信接口。
应用在新能源汽车动力电池充放电均衡测试场景中,具体的,电池管理系统BMS的数据输出一般为CAN通信接口,而电池充放电均匀测试设备的输入口一般是串口通信接口,因此将数据缓存转换介质应用到上述测试场景中,能够高效的实现电池充放电均匀测试设备从电池管理系统BMS采集动力电池在测试中的数据。
以上均为本发明的较佳实施例,并非以此限制本发明的保护范围,故:凡依本发明的结构、形状、原理所做的等效变化,均应涵盖于本发明的保护范围之内。

Claims (10)

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数据缓冲区的发送数据索引加1。
5.一种CAN通信转换为串口通信的数据缓存转换介质,其特征在于:用于实现权利要求4所述的一种CAN通信转换为串口通信的数据缓存方法,数据缓存转换介质包括CAN通信接收接口、控制器单元和串行通信发送接口;
所述CAN通信接收接口与CAN通信接口通信连接,用于采集CAN通信接口输出的CANFD数据帧,所述串行通信发送接口与串口通信接口通信连接,用于向串口通信接口转发数据,串行通信发送接口通过控制器单元与CAN通信接收接口通信连接,所述控制器单元用于设置CAN数据缓存区和串口发送缓存区,并控制、检测CAN通信接收接口和串行通信发送接口的执行动作。
6.根据权利要求5所述的一种CAN通信转换为串口通信的数据缓存转换介质,其特征在于:所述控制器单元包括CAN数据缓存区、多个第一数据结构体、DMA控制器、第二数据结构体和串口发送缓存区,所述CAN数据缓存区的数据入口对接CAN通信接收接口,所述第一数据结构体设置在CAN数据缓存区中,用于缓存接收的CANFD数据帧,所述第二数据结构体设置在串口发送缓存区中,用于缓存待发送的CANFD数据帧,所述DMA控制器用于将第一数据结构体的CANFD数据复制到第二数据结构体,所述串口发送缓存区的数据出口对接串口通信接口,串行通信接口中设置检测发送单元,用于检测判断串行通信接口数据发送状态。
7.根据权利要求6所述的一种CAN通信转换为串口通信的数据缓存转换介质,其特征在于:控制器单元还包括第一索引生成器和第二索引生成器,所述第一索引生成器用于为第一数据结构体上从CAN通信接口接收的CANFD数据帧生成数据缓存接收索引,进行CANFD数据帧缓存;所述第二索引生成器用于为第一数据结构体上缓存的CANFD数据帧复制到串口发生缓存区生成数据缓存发送索引,进行CNNFD数据帧的复制发送。
8.根据权利要求6所述的一种CAN通信转换为串口通信的数据缓存转换介质,其特征在于:所述串口发送缓存区是建立在串口通信接口中的动态缓存区。
9.根据权利要求8所述的一种CAN通信转换为串口通信的数据缓存转换介质,其特征在于:用于新能源汽车动力电池充放电均衡测试的数据采集与转换。
10.根据权利要求9所述的一种CAN通信转换为串口通信的数据缓存转换介质,其特征在于:CAN通信接收接口对接电池管理系统BMS的CAN通信接口,采集CAN通信接口输出的CANFD数据帧,并在控制器单元的控制下,通过串行通信发送接口将转换后的UART数据传输给电池充放电均衡测试设备的串口通信接口。
CN202310916553.0A 2023-07-25 2023-07-25 一种can通信转换为串口通信的数据缓存方法及转换介质 Pending CN116909972A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310916553.0A CN116909972A (zh) 2023-07-25 2023-07-25 一种can通信转换为串口通信的数据缓存方法及转换介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310916553.0A CN116909972A (zh) 2023-07-25 2023-07-25 一种can通信转换为串口通信的数据缓存方法及转换介质

Publications (1)

Publication Number Publication Date
CN116909972A true CN116909972A (zh) 2023-10-20

Family

ID=88364483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310916553.0A Pending CN116909972A (zh) 2023-07-25 2023-07-25 一种can通信转换为串口通信的数据缓存方法及转换介质

Country Status (1)

Country Link
CN (1) CN116909972A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234974A (zh) * 2023-11-10 2023-12-15 湖南进芯电子科技有限公司 一种通信系统、通信方法及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234974A (zh) * 2023-11-10 2023-12-15 湖南进芯电子科技有限公司 一种通信系统、通信方法及存储介质
CN117234974B (zh) * 2023-11-10 2024-02-06 湖南进芯电子科技有限公司 一种通信系统、通信方法及存储介质

Similar Documents

Publication Publication Date Title
CN116909972A (zh) 一种can通信转换为串口通信的数据缓存方法及转换介质
CN100483377C (zh) 一种异步桥及数据传输方法
CN101878558A (zh) 电池管理系统以及充电器
CN110719231B (zh) 一种数据处理方法、装置、设备及可读存储介质
JPH05268257A (ja) バーチャルパス運用情報トレース方法とその装置
CN113092130A (zh) 一种模拟对电动汽车进行符合性测试的方法及车载终端
CN107618394B (zh) 一种电动汽车行驶能耗数据获取装置
CN102184637B (zh) 基于传感器网络的交通状态获取方法、装置以及系统
CN110703105A (zh) 一种电池管理系统
JP2024504296A (ja) 電源オフアラーム方法及び関連デバイス
CN110191435B (zh) 一种基于异构网络控制器的车载异构网络测试系统及方法
CN116647838B (zh) 基于无线通讯技术的环保监测数据传输系统及方法
CN109495546A (zh) 数据处理方法、系统及服务器
CN113223287B (zh) 一种基于spi的智能电能表与负荷辨识模块的通信方法及系统
CN116320100A (zh) 一种vdlm2机载电台mac层实现方法
US6252874B1 (en) Ethernet card and ethernet card improvement methods
CN114006784B (zh) 高速总线通信数据实时交互方法及装置
WO2023115678A1 (zh) 数据通信方法、装置、电子设备及存储介质
CN205280910U (zh) 一种电池组状态远程监控系统
CN115027295A (zh) 一种汽车的电池包体检报告的生成、获取方法及装置
WO2020103486A1 (zh) 机车柴油机远程通信控制方法、装置及存储介质
CN113298971B (zh) 考虑多设备间无线信号干扰的发电厂巡检方法和系统
CN109922490B (zh) 一种数据防中断持续传输管理系统
CN109149773A (zh) 一种对变电站蓄电池组充放电过程进行远程控制的系统
CN116684913B (zh) 4g通信模组的测试方法、系统、电子设备及存储介质

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