一种车载MCU可配置日志存储解析方法和系统与流程

文档序号:24872636发布日期:2021-04-30 12:45阅读:527来源:国知局
一种车载MCU可配置日志存储解析方法和系统与流程

本发明属于汽车技术领域,具体涉及一种车载mcu可配置日志存储解析方法和系统。



背景技术:

随着人们对智能化娱乐化的需求增加,越来越多的汽车上装载了车载信息娱乐装置。为保证车载信息娱乐装置的可靠性,在汽车量产前需要进行各种试验测试,对试验中出现的问题提前解决分析,提高信息娱乐装置的可靠性。车载信息娱乐装置一般采用多控制器组合的构架,其中soc芯片一般可以运行linux、安卓系统,可以通过操作系统自带的日志在后台查看软件运行状态,而嵌入式mcu控制器并没有自带的日志存储及显示功能,无法查看mcu处理器中嵌入式软件的运行状态。在量产之前,有的试验需要实地跑车,软件开发人员无法实时跟进试验过程,若中途出现故障,其他人员可能无法完整的转述当时异常现象,有的试验过程中出现的故障现象具有偶发性,问题复现较难,这些都会造成故障定位较难,花费时间较长,耽误研发周期。且后期车辆运行中出现问题,售后不能及时定位解决问题也会引起客户的不满。



技术实现要素:

本发明要解决的技术问题是:提供一种车载mcu可配置日志存储解析方法和系统,用于监测记录mcu在工作过程中的关键信息参数。

本发明为解决上述技术问题所采取的技术方案为:一种车载mcu可配置日志存储解析方法,包括以下步骤:

s1:mcu模块启动并读取外部存储模块的实时日志存储区的时间信息,将最新的日志块转存到关键日志备份区,保存上次异常情况下的日志数据信息;

s2:mcu模块正常运行一段时间后,若调试串口模块未收到日志读取指令,mcu模块以时间间隔为δt周期性地将记录有mcu运行关键数据的日志帧存入外部存储模块,具体步骤为:

s21:向外部存储模块写入数据前,mcu模块擦除第一个扇区用于存储最新的日志帧;

s22:mcu模块存入第一帧时在日志帧前面加入时间信息,当发送的日志存储满一个日志块后,向下一扇区写入日志;

s23:当所划分的实时日志存储区全部写满后写入扇区编号置零,执行步骤s21,日志内容在外部存储模块中循环存储;

s3:当系统在运行过程中出现问题时,上位机发送日志输出指令,mcu模块将外部存储模块中的数据通过调试串口模块发送到上位机,用于存储和解析原始数据。

按上述方案,所述的步骤s2中,外部存储模块的分区按变量进行划分,某个状态的信息统一存储在某个扇区中。

按上述方案,所述的步骤s22中,具体步骤为:mcu模块在开始存入日志时先读取rtc时间,将时间信息写入扇区的头部位置,并以0xff补齐不足的字节数;通过n次写入写满一个扇区,若n条日志均存储时间信息,则需要n*每条时间信息字节数。

按上述方案,所述的步骤s3中,具体步骤为:

s31:上位机解析原始数据,输出处理后的包括每条日志帧的时间信息和数值状态的日志信息,并按扇区顺序保存数据;

s32:上位机设定时间间隔,使输出的日志信息的时间间隔与mcu模块发送报文的时间间隔相同;每个扇区的首地址为时间信息,通过解析首条日志的时间信息,还原报文的详细时间信息t0+n*δt并存储在解析文本中;

s33:存储数据读取完毕后,发送清除指令,擦除之前存储的外部存储模块的数据。

按上述方案,还包括以下步骤:当出现突发情况急需存储状态时,通过临时存储指令将时间信息和日志信息写入关键数据备份区以供后续分析。

一种车载mcu可配置日志存储解析系统,包括mcu模块、外部存储模块,调试串口模块、上位机;外部存储模块连接mcu模块用于存储mcu在运行过程中的关键信息;mcu模块用于将关键信息按照协议周期性写入外部存储模块;上位机通过调试串口模块连接mcu模块,用于读取外部存储模块中存储的数据,并导出为日志文件以直观获得数据所代表的含义、分析程序运行状态;外部存储模块的存储空间包括实时日志存储区和关键日志备份区,实时日志存储区包括多个日志块,关键日志备份区包括备份实时日志和临时存储日志;外部存储模块的最小擦除单元为一个日志块;每个日志块的开头划分有用于记录时间信息t0的存储区域,时间信息用于将日志记录的内容与实际时间对应起来;每个日志块设有时间标志用于查找日志信息;每个日志块包括n条日志帧,单条日志帧的存储时间间隔为δt,第n条日志帧的时间信息为t0+n*δt。

进一步的,日志块中填充字节0xff用于使字节块内保存整数倍的日志帧,填充字节数为:4096-时间信息实际长度-日志每帧长度*[(4096-时间信息实际长度)/日志每帧长度]取整。

进一步的,关键信息包括系统关键电压值、任务运行次数、底层驱动状态参数。

进一步的,外部存储模块包括flash、sd卡。

一种计算机存储介质,其内存储有可被计算机处理器执行的计算机程序,该计算机程序执行一种车载mcu可配置日志存储解析方法。

本发明的有益效果为:

1.本发明的一种车载mcu可配置日志存储解析方法和系统,通过连接mcu和外部flash,通过串口导出flash数据到上位机,实现了监测、存储、解析mcu在工作过程中的关键信息参数的功能,便于嵌入式mcu开发人员在开发中后期快速定位故障和解决问题,提高了开发效率,缩短了问题解决的时间。

2.本发明对mcu软件的运行状态进行监控,能够发现长时间运行过程中的潜在问题,降低了系统迭代成本。

附图说明

图1是本发明实施例的功能框图。

图2是本发明实施例的flash存储区域划分图。

图3是本发明实施例的流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。

参见图1,本发明实施例的系统包括mcu处理器、外置falsh芯片、调试uart接口以及pc端上位机解析软件;mcu系统上预留有独立的调试串口接口;印制板板载flash可替换为其他存储设备、如可插拔sd卡等。

存储区域的分区可按变量进行划分,比如某个状态的信息统一存储在某个扇区,而不是所有的日志信息统一在一起存储。

mcu处理器通过spi接口连接外部flash,用以存储mcu处理器运行过程中的关键信息。mcu软件依据开发需求输出关键程序变量、运行状态等信息,按照预先配置好的协议周期性的写入flash的块。当出现故障后,通过调试uart串口读出flash中存储的数据,为了直观得获得数据所代表的含义,可以将导出的数据配合上位机进行解析。

mcu处理器周期性地发送日志帧内容到flash中进行存储,具体发送的日志内容可以由开发人员自定义,主要记录与mcu处理器本身运行有关的关键数据,比如系统关键电压值、各种任务运行次数,底层驱动状态参数等可以用来分析程序运行状态的变量;

mcu处理器通过spi接口将数据按照周期写入flash中进行存储。flash的存储空间被划分为实时日志存储区、关键日志备份区,详见图2所示。由于flash内存空间有限,日志数据不能一直存储下去,所以需要重新覆盖前期已经写过的数据。flash写入数据前需要擦除操作,选用的flash芯片最小擦除单元为4kb,因此本方案中每写满4kb的日志块数据后,mcu将擦除编号最前的flash扇区,用于最新日志帧数据的存储;

由于日志内容在flash中是循环存储的,为了找到最新的日志信息,每个日志块需要具有时间标志,本方案中为了将日志中记录的内容与实际时间对应起来,每块日志块开头需开辟存储区域记录时间信息t0,由于日志数据是周期性存在的,因此后续日志信息时间可以推算出来,时间为t0+n*δt,n为日志帧条数,δt为单个日志帧的存储时间间隔,因此可以不需要每条日志都存储时间信息,节省flash空间。mcu处理器可以周期性(时间间隔为δt)地发送,每个扇区开始写入时,mcu会读取rtc时间,将时间信息写入扇区头部位置(字节数不足的按0xff补齐),写入n次后,一个扇区写满,若n条日志均存储时间信息,则需要n*每天时间信息字节数(最少6个字节)。mcu存储的日志信息需要配合上位机进行解析,上位机发送读取指令后,将flash芯片中的数据读取出来保存并解析,存储的数据按扇区顺序保存。上位机解析数据时,可以设定时间间隔,设置的时间间隔与mcu时间发送报文的时间间隔相同,每个扇区的首地址为时间信息,首条日志的时间信息可以直接解析,后面报文的详细时间信息通过t0+n*δt还原出来并存储在解析文本中,更加直观得供给开发者进行分析;

日志块的时间信息长度可调整,除了必要的时间信息字节外,需要填充字节0xff,具体填充的个数由日志每帧的长度决定,保证4kb字节块内能保存整数倍的日志帧,即填充字节数为4096-时间信息实际长度-日志每帧长度*[(4096-时间信息实际长度)/日志每帧长度]取整;

本发明的流程如图3所示,包括以下步骤:首先mcu启动,包括正常启动和异常复位启动的情况,读取falsh实时日志区的时间信息,将最新的日志块信息转存到关键日志备份区,保存上次异常情况下的日志数据信息。然后mcu正常运行1min后,如果调试uart未收到日志读出指令,则按固定的周期写入日志帧,写入第一帧时前面需要加入时间信息,当发送的日志存储满4kb后,向下一扇区写入日志,同样的第一条日志帧前需要加入当前的时间信息,当所划分的实时日志区全部都写满后,擦除第一个扇区,擦除后写入按上述要求写入日志,重复上述写入步骤。此外,当出现突发情况急需存储状态时,soc提供临时存储指令,此时将时间信息+日志信息写入关键信息存储区,以供后续分析;

当信息娱乐装置在运行过程中出现问题后,将调试串口通过转接板接入pc上位机,上位机发送日志输出指令,mcu将flash中的数据通过调试串口发送到pc机进行原始数据的存储。此外,上位机还可以对原始的数据进行解析,输出处理后的日志信息,输出结果可以包含每条日志帧的时间信息,数值所代表的具体状态等,方便解读。存储数据读取完毕后,可以发送清除指令,擦除之前存储的flash数据。

以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1