一种基于嵌入式SD卡的日志回放系统构建方法与流程

文档序号:28746313发布日期:2022-02-07 23:26阅读:216来源:国知局
一种基于嵌入式SD卡的日志回放系统构建方法与流程
一种基于嵌入式sd卡的日志回放系统构建方法
技术领域
1.本发明属于嵌入式系统日志管理技术领域,具体地说,涉及一种嵌入式sd卡的日志回放系统及其构建方法。


背景技术:

2.现有的大多数嵌入式设备的日志信息输出已经成为监测设备运行状态的一种常用调试方式,目前主要通过串口设备实时打印新数据或者嵌入式内部空间存储数据等两种方式来获取日志信息。
3.经检索发现如下专利文献:专利名称为应用程序日志记录方法及系统,公开了一种日志服务系统,该发明利用进程间通讯技术将原来频繁的磁盘i/o操作大大降低,既能进行日志的详细记录,又保持较低的资源占用率。该发明针对的是pc系统,嵌入式系统与pc系统的差别在于硬件资源更加缺乏,且由于工作环境复杂,随时可能出现看门狗复位的情况,针对嵌入式系统的特点,提出了一种在提高效率的同时确保日志记录可靠性的方法。
4.目前,现存的嵌入式设备输出日志信息存在一些缺点和不足,1)在设备运行的过程中实时输出数据却不能保存数据信息,当嵌入式设备故障时无法检查故障原因;2)嵌入式系统ram和flash存储空间小,可运用资源有限,无法通过内部存储空间来保存数据;3)传统的这种日志服务方法针对日志记录信息的读写,都需要对存储介质进行读写。然而外部存储介质访问速度慢,频繁的读写访问对系统资源消耗严重,使用效率低;且读取到的所有日志记录信息,庞大而无序,无法区分日志是属于当前系统运行时的日志,还是系统历史的日志信息,难于实现系统的快速、准确的诊断和定位;基于文件系统进行读写访问,对于嵌入式实时系统来说,异常故障导致看门狗复位系统随时可能发生,它会导致文件系统不一致,带来文件系统的破坏和信息的丢失。


技术实现要素:

5.针对现有嵌入式系统内部空间较小无法保存大量实时数据的缺陷,本发明提供一种基于嵌入式sd卡的日志回放系统及其构建方法,在嵌入式系统中移植物联网操作系统,创建线程用于运行日志系统任务,在嵌入式系统中移植fatfs文件系统,根据sd卡模块的驱动程序对所述fatfs文件系统优化,根据所述rct时钟模块中的时间确定所述日志系统中读写协议;接收运行参数,按照所述日志系统中读写规则,将所述运行参数转换为字符串作为日志记录写入fatfs文件系统,并存入sd卡,能够实时将设备运行的数据保存在sd卡中,即使当嵌入式设备故障时,也可以通过sd卡中的数据检查故障原因;另外,采用多线程的方式进行数据读写,读写线程分开执行,互不干扰,资源利用率高,时延较低。
6.为了实现本发明目的,本发明公开了一种基于嵌入式sd卡的日志回放系统的方法,包括以下步骤:在嵌入式系统中移植物联网操作系统,创建线程用于运行日志系统任务,所述日志系统任务分为写日志任务和读日志任务;
初始化嵌入式系统的sd卡模块和rct时钟模块;在嵌入式系统中移植fatfs文件系统,根据sd卡模块的驱动程序对所述fatfs文件系统优化,根据所述rct时钟模块中的时间确定所述日志系统中读写协议;接收运行参数,按照所述日志系统中读写规则,将所述运行参数转换为字符串作为日志记录写入fatfs文件系统,并存入sd卡中。
7.作为优选的方案,在嵌入式系统设定的时间阈值,删除存储在sd卡中超过所述时间阈值内的日志记录。
8.作为优选的方案,根据所述写日志任务和所述读日志任务所需堆栈空间大小给线程分配内存空间。
9.作为优选的方案,所述初始化嵌入式系统的sd卡模块的步骤包括:基于模拟spi的sd卡驱动程序,初始化sd卡,对sd卡进行数据读写操作。
10.作为优选的方案,根据所述rct时钟模块中的时间确定所述日志系统中读写协议步骤包括:获取rct时钟模块的时间,把rct时钟的时间通过sprintf函数转换为字符串,作为日志时间;将日志时间和对应的数据整体打组,作为所述日志系统的写入格式;按照年份和月份设定文件夹目录,在每个月份的文件夹中,将每一天做为一个csv文件,每一个csv文件中每行按照所述日志系统的写入格式存储数据。
11.作为优选的方案,所述方法还包括根据上位机的读取指令,读取日志系统的数据内容。
12.建立嵌入式系统端串口与网络端的tcp通信接口连接,进行数据通信和传输;接收来自所述网络端的tcp通信接口的读取指令;所述读取指令包括第一读取指令和第二读取指令;其中,所述第一读取指令用于根据年份和月份信息确定目标文件夹信息;所述第二读取指令用于确定目标文件夹中某时间的数据。
13.本发明第二方面提供一种基于嵌入式sd卡的日志回放系统,采用上述的方法构建。
14.本发明第三方面提供一种电子设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器依次连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如上述的方法。
15.相比于现有技术,本发明的有益效果为:(1)本发明使用rt thread操作系统,rt-thread nano 是一个极简版的硬实时内核,是一款可裁剪的、抢占式实时多任务的 rtos;其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性;通过采用多线程的方式进行数据读写,读写线程分开执行,互不干扰,资源利用率高,时延较低。
16.(2)采用模拟spi的方式驱动sd卡并挂载文件系统,相比于硬件spi和sdio模式驱动sd卡,在gpio引脚资源利用设计具有较高的灵活性,不受硬件资源的限制,任意四个引脚就可以驱动sd卡,在复杂的嵌入式系统中解决了引脚资源不够用的缺陷。
17.(3)采用树状目录的存储结构,方便查询数据;采用查询时间段的数据,提高查询效率,选择性去除无效信息,进行信息过滤,提高查询精度。
18.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
19.通过结合附图对本技术实施例进行更详细的描述,本技术的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本技术实施例的进一步理解,并且构成说明书的一部分,与本技术实施例一起用于解释本技术,并不构成对本技术的限制。在附图中,相同的参考标号通常代表相同部件或步骤。附图中:图1为本发明提供的一种嵌入式sd卡的日志回放系统的构建方法流程图;图2是本发明方法的嵌入式硬件结构图;图3是本发明方法的文件系统存储结构图;图4图示了根据本技术实施例的电子设备的框图。
具体实施方式
20.下面,将参考附图详细地描述根据本技术的示例实施例。显然,所描述的实施例仅仅是本技术的一部分实施例,而不是本技术的全部实施例,应理解,本技术不受这里描述的示例实施例的限制。
21.示例性方法本发明公开了一种基于嵌入式sd卡的日志回放系统构建方法,包括以下步骤:s102:在嵌入式系统中移植物联网操作系统,创建线程用于运行日志系统任务,所述日志系统任务分为写日志任务和读日志任务。
22.具体的,现有的大多数嵌入式设备的日志信息主要通过串口设备实时打印新数据或者嵌入式内部空间存储数据等两种方式来获取日志信息。本示例在stm32嵌入式系统中移植rt thread物联网操作系统,采用线程调用的方式运行日志系统的任务,日志系统任务分为写日志任务和读日志任务。例如,通过stm32cubemax软件创建hal库基础工程,在rt thread官网下载rt thread nano版本的源码,并根据官网的移植手册进行代码的移植,最终保证在所选用的stm32芯片上通过编译,并且能够完成基本的任务创建和执行。
23.在一种实施方式中,为了优化内存,根据所述写日志任务和所述读日志任务所需堆栈空间大小给线程分配内存空间。具体的,首先在操作系统中创建任务句柄(线程控制块);宏定义写日志任务和读日志任务的堆栈空间大小,根据任务优先级,确定线程时间片;创建线程的入口函数,实现每一个入口函数都是一个死循环,无返回值。进而创建操作系统中的2个线程任务,分别用于运行日志系统的写日志任务和读日志任务。
24.s104;初始化嵌入式系统的sd卡模块和rct时钟模块。
25.首先,需要说明的是sd卡本身是一种安全的,大容量的可移动存储设备,其可以通过两种总线协议与mcu进行数据传输,一种是称为sd bus的4位串行数据模式,另一种就是常用的4线spi bus模式。为了体现本发明的硬件的灵活性,在stm32核心上使用模拟的spi
引脚,实现spi协议,根据sd卡的时序选择,编写基于模拟spi的sd卡驱动程序,初始化sd卡,对sd卡进行数据读写操作。
26.初始化rct时钟模方式包括:开启stm32的lsb低速时钟,编写基于rct实时时钟的驱动程序,获取当前系统的日志和时间,以便根据系统时间创建日志信息,为了保证在断电后rtc时钟仍然在运行,需要在stm32的vbat引脚增加纽扣电池供电电路,当主电源断开时,立即切换到纽扣电池供电,保证rtc时钟继续运行。
27.s106:在嵌入式系统中移植fatfs文件系统,根据sd卡模块的驱动程序对所述fatfs文件系统优化,根据所述rct时钟模块中的时间确定所述日志系统中读写协议。
28.具体的,在对sd卡进行读写操作的基础上,在嵌入式系统内移植小型fatfs嵌入式文件系统。再根据sd卡的驱动程序对fatfs文件系统进行裁剪、代码补全和优化设计,主要包括在文件系统下的sd卡初始化,基于sd卡的磁盘和扇区读写等操作。挂载fatfs嵌入式文件系统,模仿电脑磁盘对文件的管理方式,对sd卡的文件数据进行合理化管理。
29.s108:接收运行参数,按照所述日志系统中读写规则,将所述运行参数转换为字符串作为日志记录写入fatfs文件系统,并存入sd卡中。
30.具体的,获取rct时钟模块的时间,把rct时钟的时间通过sprintf函数转换为字符串,作为日志时间;将日志时间和对应的数据整体打组,作为所述日志系统的写入格式;按照年份和月份设定文件夹目录,在每个月份的文件夹中,将每一天做为一个csv文件,每一个csv文件中每行按照所述日志系统的写入格式存储数据。此处的运行参数包括rct时钟的时间以及该时间对应的数据。
31.如图3所示,在一种实施方式中,本示例设计日志系统的写入格要求,例如“年-月-日,时:分:秒,+数据”,获取rtc时钟的时间和日期,把rct时钟的年月日通过c语言的sprintf函数转换为字符串,作为日志时间信息,利用程序自动计算时间,一个月作为一个文件夹目录,每个月里每一天做为一个csv文件,每一个csv文件中每行存储一秒的数据,建立这样的一个文件目录格式,在读取访问的时候比较容易获取想要的数据。
32.优选的,当嵌入式设备上电就运行,同时控制器将会每隔一秒就把设备运行的参数转换为字符串写入文件系统,在运行时也可以实时向上位机发送实时数据,双重保证数据存储,方便查询故障信息。
33.作为一个变化例,根据上位机的读取指令,读取日志系统的数据内容。
34.具体的,建立嵌入式系统端串口与网络端的tcp通信接口连接,进行数据通信和传输;接收来自所述网络端的tcp通信接口的读取指令;所述读取指令包括第一读取指令和第二读取指令;其中所述第一读取指令用于根据年份和月份信息确定目标文件夹信息;所述第二读取指令用于确定目标文件夹中某时间的数据。
35.在一种实施方式中,(1)配置wifi无线模块,建立嵌入式系统串口与网络端的tcp通信接口,进行数据通信和数据传输。应当理解,嵌入式系统串口与网络端的tcp通信还可以通过网线光纤接口进行数据传输,在此不作为对本发明的限定。
36.(2)编写嵌入式端的modbus协议,与电脑端的tcp modbus建立通信协议,方便数据接收和解析。
37.(3)电脑端tcp读取存储在日志系统内的数据信息,分为两个读取指令,即第一读取指令和第二读取指令,第一读取指令,先读取目录信息,给出读取“年-月”的指令信息,然
后嵌入式收到指令后,根据“年-月”遍历这个文件夹内的所有文件名,通过串口发送到电脑端,并将“年-月”文件夹的文件全部展示出来。第二读取指令,用于选择需要读取的文件,并加上需要读取的时间段信息,例如“14:23
ꢀ–ꢀ
15:34”这一个时间段内的数据。为了提高效率和去除无效信息,不选择读取整个文件信息,整个文件信息最大是一整天的数据信息,每秒一条数据,每天存储86400条数据,数据量过于庞大,数据传输需要时间,每5ms传输一条数据,整个文件全部读取结束需很长时间,效率过低。
38.示例性系统如图3所示,本示例提供一种基于嵌入式sd卡的日志回放系统,采用上述的方法构建。本示例中嵌入式日志回放系统:在嵌入式芯片stm32f407上以sd卡为存储媒介,构建fatfs嵌入式文件系统,在文件系统的基础上写一个日志回放系统,来记录日志信息。作为优选的方案,在嵌入式系统设定的时间阈值,删除存储在sd卡中超过所述时间阈值的日志记录。
39.示例性电子设备下面,参考图4来描述根据本技术实施例的电子设备。该电子设备可以是可移动设备本身,或与其独立的单机设备,该单机设备可以与可移动设备进行通信,以从它们接收所采集到的输入信号,并向其发送所选择的目标决策行为。
40.图4图示了根据本技术实施例的电子设备的框图。
41.如图4所示,电子设备10包括一个或多个处理器11和存储器12。
42.处理器11可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
43.存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本技术的各个实施例的决策行为决策方法以及/或者其他期望的功能。
44.在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。例如,该输入设备13可以包括例如车载诊断系统(obd)、统一诊断服务(uds)、惯性测量单元(imu)、摄像头、激光雷达、毫米波雷达、超声波雷达、车载通信(v2x)等各种设备。该输入设备13还可以包括例如键盘、鼠标等等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
45.当然,为了简化,图4中仅示出了该电子设备10中与本技术有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1