当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:根据对嵌入式实时数据库的分析,设计出基于专用文件系统的嵌入式实时数据库,该文件系统以块为单位进行存储,使用〈点、时间、数值〉来表示一条具有完整意义的数据,根据数据特点,建立了针对实时数据存储的文件系统索引结构,最后完成了专用文件系统在嵌入式Linux上的运行,它提供专用的调用接口进行读写。

引言

嵌入式系统是一种“完全嵌入受控件内部,为特定应用而设计的专用计算机系统”据不完全统计,目前世界上嵌入式处理器的品种总量超过一千多种,流行的体系结构也有30多个系列。但是没有一种微处理器和微处理器公司可以主导嵌入式系统。由于嵌入式系统设计的差异性极大,因此选择也是多样化的。ARM是近年来在嵌入式系统很有影响力的微处理制造商,ARM的设计非常适用于小的嵌入式系统。

嵌入式系统必须根据应用需求对软硬件进行剪裁,满足应用系统的功能、可靠性等要求。随着嵌入式系统的广泛应用及嵌入式操作系统的不断普及,嵌入式环境下的数据管理问题成为系统的重要环节,工业系统要求严格的时间性,要求在一定的时刻或时间段内对外部采集数据按照顺序进行存储,并及时作出响应。所处理的数据往往是“短暂”的,只在一定的时间段内有效,过时则没有任何意义,传统的嵌入式数据库主要用于处理永久性数据,设计时主要强调维护数据的完整性、一致性,提高系统的吞吐量和降低系统代价,没有考虑与数据处理相关联的时间因素,因而传统的嵌入式数据库无法满足工业实时应用的需求,因此我们开发了一款嵌入式实时数据库系统,实现了与操作系统的融合,建立属于实时数据库独有的缓冲区管理,将数据库的归档文件建立在专用的文件系统之上,该文件系统提供独立的访问接口及管理磁盘空间。1嵌入式实时数据库分析

嵌入式实时数据库系统是指在嵌入式设备中独立运行的数据库系统,用以处理大量的,时效性强且有严格时序的数据,它以高可靠性、高实时性和高信息吞吐量为目标,其数据的正确性不仅依赖于逻辑结果,而是依赖于逻辑结果产生的时间。由于嵌入式系统没有充足的硬件资源支持,要求数据库管理系统占用最小的内存和磁盘空间。如果用Linux自带的文件系统或大型关系型数据库管理系统,都不可避免地产生大量的冗余数据、数据管理效率低下等问题。所以,它们不能应用于嵌入式系统的数据管理。嵌入式环境下设计的实时数据库必须包含高效的存取机制,数据安全性机制,数据库日志管理等功能。在实际设计中更关心系统的实时性,开销大小,系统性能,可靠性等。

嵌入式实时数据库系统按照与嵌入式应用的关系可以分为两类[1]:一类是独立于具体的应用,它将数据库直接建立在内存之中,专门为嵌入式系统数据管理而编写的实时数据库;另一类是针对具体的应用而设计开发的嵌入式实时数据库系统。本文的实现属于后者,介绍针对工业数据处理的嵌入式实时数据库。

基于专用文件系统的数据库设计基本思想是将数据库技术引入文件系统,目前有两种实现方式:一种是搭建一个基于现有数据库的文件系统,其中数据库充当了新文件系统的基石。另一种是对传统文件系统进行改造,将文件系统设计成一个“数据库”,文件系统与数据库完全融合。它不同于传统的文件系统,其改造使得其文件的组织和访问发生重大的变化,因为文件系统更加数据库化,包含“文件”、“目录”这样的概念也可能发生改变。对于文件的组织和访问,或者说数据的组织和访问,也会更加侧重于数据库的方式,它会对各种数据提供统一访问存储机制,以此来获得有效而灵活的数据查询机制。本文使用了后者的实现方式,将数据库与专用文件系统进行融合,提供了统一的访问接口。

2嵌入式实时数据库文件系统的设计模型

2.1实时数据特点

实时数据自然是与时间紧密相关的,工业上嵌入式实时根据点号分配磁盘块I数据库所存储的数据通常是基于时间的连续模拟量或者数字量,如:温度、流量、压力、阀门开关等,这些数据有以下几个特点:

时效性

每个记录的值都与时间有关联,数据随时间不断添加入数据库,这些数据的顺序按照时间来排序的,以后不会被重新排序,而每秒中的数据都有可能发生改变。因此,在记录数据值得过程中必须记录其相应的时间。在数据查找时,也必须确定其时间点,否则数据就没有存在的意义。

数据格式

与关系型数据库中的元组不同,工业数据每一条数据只包含一条记录,数据格式相对简单,固定和独立。从应用角度来看,保存的数据有I/O整型、离散型、实数型、开关量等。但从数据存储技术方面看,都可归纳为1字节,2字节,4字节这三种情况,每一条记录的属性比较少,不存在记录点与记录点之间的依赖关系,没有类似关系数据库中数据间的复杂关系,它记录格式少,关系简单,可以采用统一的结构化管理。

数据时间间隔

在工业现场中,某些记录点变化频率非常快,而有些则是很长一段时间才会发生变化,根据这个特点,设计实时数据库时必须兼顾细分要求。

根据实时数据的特点,可以发现将实时数据存入关系型数据库既浪费系统资源,又无法满足其对实时性的要求,因此,我们设计了实时数据库文件系统用于存储一定格式的工业数据,其数据格式设定为三元组<点号、时间、数值>,其中“点号”代表工业现场的单值采样设备,“时间”代表设备状态的采样时刻,“数值”代表设备的工作状态或计量值。每一个数值由时间和点号确定,如果没有确定的时间与点号,数据则没有任何意义。

2.2嵌入式实时数据库文件系统设计框架

在系统架构方面,从操作系统内核结构的角度来看,数据库文件系统放在操作系统的内核之内,将数据库技术与文件系统技术深度结合叫图1所示为实时数据库文件系统在操作系统中存在形式。

基于ARM平台的嵌入式实时数据库的设计与实现

嵌入式实时数据库文件系统不使用一般文件系统中的文件目录结构,而是建立针对实时数据的索引结构,以便实现对磁盘数据的高效读写,它的数据接口是通过在操作系统中建立新的系统调用来实现的,使用了Linux中现有的磁盘驱动程序,通过VFS完成在Linux环境下文件系统的注册和安装。嵌入式实时数据库文件系统的基本原型如图2所示。

图2嵌入式实时数据库文件系统(ERTFS)的体系结构

该结构提供了对实时数据进行读写的调用接口:其中数据写(rt_write)可更新一组块数据,包括磁盘块号以及写进该块的数据内容,可将数据写入磁盘。数据读(rt_read)则用于读出某一磁盘块数据,或者读出一批磁盘块数据。数据存储则以完整的块数据为基础,在文件系统内部不对块内数据进行任何处理,而对块数据内容的规整必须在文件系统之上完成。嵌入式实时数据库文件系统的数据处理流程如图3所示。

基于ARM平台的嵌入式实时数据库的设计与实现

数据存储时根据点号分配磁盘块,查看磁盘块空间是否写满,若写满则分配新的磁盘块,然后为磁盘块分配缓冲块,将数据库拷贝到缓冲块,通过Linux的块设备驱动程序进行写入磁盘,同时维护索引区。数据读取时主要根据点号和时间进行读取,如果没有确定的时间点,数据没有任何意义。

2.3文件结构

嵌入式实时数据库文件系统的通过点号进行索引,每个点号指向对应的数据簇,它的数据组织方式如图4所示。

图4按照点时间管理数据

嵌入式实时数据库文件系统以点作为索引,在对某一点的数据进行访问时,需要获取该点的点信息,按照链表的方式来索引到指定的数据簇,在数据簇内,查询命中的数据块,将数据从数据区读取或者存入,采用这种索引结构,可以减少数据的访问时间,提高了实时数据的查询能力。其中点所指向的数据块基本信息如图5所示。

基于ARM平台的嵌入式实时数据库的设计与实现

图5中,数据块索引信息将记录数据块信息,每个数据块存储固定数目的实时数据,为了节约存储空间,块内的每个时间值只保存偏移量,即实际时间减去该块数据起始时间。图6所示为数据块的存储结构。

基于ARM平台的嵌入式实时数据库的设计与实现

3性能测试

测试选取的嵌入式ARM开发板选取YLE2440,处理器为SamsungS2C2440A,主频400MHz:外部存储器NorFLASH:2MB;NandFLASH:64MB;存取介质选取8GB的惠普优盘进行读写。实验过程中将实时数据库文件系统正常编译到了嵌入式Linux内核中,内核能够稳定的工作,格式化程序能够对优盘进行格式化,经过格式化后的优盘能够挂载到实时数据库文件系统上,能够对其进行数据读和写。

4结语

本文通过对嵌入式数据库的分析,提出了针对实时数据的嵌入式实时数据的框架结构,介绍了其文件系统在Linux内核中的存在形态以及其数据读取接口,根据实时数据的特点设计了通过点进行索引的文件结构,在数据文件内部,按照时间段分簇的方式来归类同一时间段内的数据。通过本文的阐述,读者可以大致明白如何设计实时数据库以及实现特有文件系统。

20211124_619d105eaa45f__基于ARM平台的嵌入式实时数据库的设计与实现

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

近日,Arm推出了Arm® Ethos™-U85神经网络处理器(NPU)和Arm Corstone™-320物联网参考设计平台,旨在满足海量的数据处理和大规模计算,加速推进边缘AI的发展进程。

关键字: ARM

为了赶超云计算市场上的竞争对手,谷歌正试图通过定制的Arm服务器芯片降低云计算服务成本。

关键字: 谷歌 ARM 定制芯片

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

知名移动芯片设计公司ARM最近迈出重要一步,它正式推出汽车芯片设计。ARM推出的芯片设计方案名叫Neoverse,随同芯片一起推出的还有面向汽车制造商、汽车供应商的新系统。

关键字: ARM 汽车芯片 芯片

随着通用人工智能的发展,数据中心的计算需求逐步提高。针对多模态数据、大模型的推理和训练需要更高的算力支持,而随着算力提升与之而来的还需更关注在功耗方面的优化。对于头部云计算和服务厂商而言,针对专门用例提高每瓦性能变得至关...

关键字: ARM 服务器 AI Neoverse CSS

一直以来,riscv架构都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来riscv架构的相关介绍,详细内容请看下文。

关键字: riscv ARM riscv架构

安装Linux操作系统并不复杂,下面是一个大致的步骤指南,以帮助您完成安装。1. 下载Linux发行版:首先,您需要从Linux发行版官方网站下载最新的ISO镜像文件。

关键字: Linux 操作系统 ISO镜像

计算机是由一堆硬件组成的,为了有限的控制这些硬件资源,于是就有了操作系统的产生,操作系统是软件子系统的一部分,是硬件基础上的第一层软件。

关键字: Linux 操作系统 计算机
关闭
关闭