當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘要:根據(jù)對(duì)嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的分析,設(shè)計(jì)出基于專用文件系統(tǒng)的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù),該文件系統(tǒng)以塊為單位進(jìn)行存儲(chǔ),使用〈點(diǎn)、時(shí)間、數(shù)值〉來表示一條具有完整意義的數(shù)據(jù),根據(jù)數(shù)據(jù)特點(diǎn),建立了針對(duì)實(shí)時(shí)數(shù)據(jù)存儲(chǔ)的文件系統(tǒng)索引結(jié)構(gòu),最后完成了專用文件系統(tǒng)在嵌入式Linux上的運(yùn)行,它提供專用的調(diào)用接口進(jìn)行讀寫。

引言

嵌入式系統(tǒng)是一種“完全嵌入受控件內(nèi)部,為特定應(yīng)用而設(shè)計(jì)的專用計(jì)算機(jī)系統(tǒng)”據(jù)不完全統(tǒng)計(jì),目前世界上嵌入式處理器的品種總量超過一千多種,流行的體系結(jié)構(gòu)也有30多個(gè)系列。但是沒有一種微處理器和微處理器公司可以主導(dǎo)嵌入式系統(tǒng)。由于嵌入式系統(tǒng)設(shè)計(jì)的差異性極大,因此選擇也是多樣化的。ARM是近年來在嵌入式系統(tǒng)很有影響力的微處理制造商,ARM的設(shè)計(jì)非常適用于小的嵌入式系統(tǒng)。

嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對(duì)軟硬件進(jìn)行剪裁,滿足應(yīng)用系統(tǒng)的功能、可靠性等要求。隨著嵌入式系統(tǒng)的廣泛應(yīng)用及嵌入式操作系統(tǒng)的不斷普及,嵌入式環(huán)境下的數(shù)據(jù)管理問題成為系統(tǒng)的重要環(huán)節(jié),工業(yè)系統(tǒng)要求嚴(yán)格的時(shí)間性,要求在一定的時(shí)刻或時(shí)間段內(nèi)對(duì)外部采集數(shù)據(jù)按照順序進(jìn)行存儲(chǔ),并及時(shí)作出響應(yīng)。所處理的數(shù)據(jù)往往是“短暫”的,只在一定的時(shí)間段內(nèi)有效,過時(shí)則沒有任何意義,傳統(tǒng)的嵌入式數(shù)據(jù)庫(kù)主要用于處理永久性數(shù)據(jù),設(shè)計(jì)時(shí)主要強(qiáng)調(diào)維護(hù)數(shù)據(jù)的完整性、一致性,提高系統(tǒng)的吞吐量和降低系統(tǒng)代價(jià),沒有考慮與數(shù)據(jù)處理相關(guān)聯(lián)的時(shí)間因素,因而傳統(tǒng)的嵌入式數(shù)據(jù)庫(kù)無法滿足工業(yè)實(shí)時(shí)應(yīng)用的需求,因此我們開發(fā)了一款嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng),實(shí)現(xiàn)了與操作系統(tǒng)的融合,建立屬于實(shí)時(shí)數(shù)據(jù)庫(kù)獨(dú)有的緩沖區(qū)管理,將數(shù)據(jù)庫(kù)的歸檔文件建立在專用的文件系統(tǒng)之上,該文件系統(tǒng)提供獨(dú)立的訪問接口及管理磁盤空間。1嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)分析

嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)是指在嵌入式設(shè)備中獨(dú)立運(yùn)行的數(shù)據(jù)庫(kù)系統(tǒng),用以處理大量的,時(shí)效性強(qiáng)且有嚴(yán)格時(shí)序的數(shù)據(jù),它以高可靠性、高實(shí)時(shí)性和高信息吞吐量為目標(biāo),其數(shù)據(jù)的正確性不僅依賴于邏輯結(jié)果,而是依賴于邏輯結(jié)果產(chǎn)生的時(shí)間。由于嵌入式系統(tǒng)沒有充足的硬件資源支持,要求數(shù)據(jù)庫(kù)管理系統(tǒng)占用最小的內(nèi)存和磁盤空間。如果用Linux自帶的文件系統(tǒng)或大型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),都不可避免地產(chǎn)生大量的冗余數(shù)據(jù)、數(shù)據(jù)管理效率低下等問題。所以,它們不能應(yīng)用于嵌入式系統(tǒng)的數(shù)據(jù)管理。嵌入式環(huán)境下設(shè)計(jì)的實(shí)時(shí)數(shù)據(jù)庫(kù)必須包含高效的存取機(jī)制,數(shù)據(jù)安全性機(jī)制,數(shù)據(jù)庫(kù)日志管理等功能。在實(shí)際設(shè)計(jì)中更關(guān)心系統(tǒng)的實(shí)時(shí)性,開銷大小,系統(tǒng)性能,可靠性等。

嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)按照與嵌入式應(yīng)用的關(guān)系可以分為兩類[1]:一類是獨(dú)立于具體的應(yīng)用,它將數(shù)據(jù)庫(kù)直接建立在內(nèi)存之中,專門為嵌入式系統(tǒng)數(shù)據(jù)管理而編寫的實(shí)時(shí)數(shù)據(jù)庫(kù);另一類是針對(duì)具體的應(yīng)用而設(shè)計(jì)開發(fā)的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)。本文的實(shí)現(xiàn)屬于后者,介紹針對(duì)工業(yè)數(shù)據(jù)處理的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)。

基于專用文件系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)基本思想是將數(shù)據(jù)庫(kù)技術(shù)引入文件系統(tǒng),目前有兩種實(shí)現(xiàn)方式:一種是搭建一個(gè)基于現(xiàn)有數(shù)據(jù)庫(kù)的文件系統(tǒng),其中數(shù)據(jù)庫(kù)充當(dāng)了新文件系統(tǒng)的基石。另一種是對(duì)傳統(tǒng)文件系統(tǒng)進(jìn)行改造,將文件系統(tǒng)設(shè)計(jì)成一個(gè)“數(shù)據(jù)庫(kù)”,文件系統(tǒng)與數(shù)據(jù)庫(kù)完全融合。它不同于傳統(tǒng)的文件系統(tǒng),其改造使得其文件的組織和訪問發(fā)生重大的變化,因?yàn)槲募到y(tǒng)更加數(shù)據(jù)庫(kù)化,包含“文件”、“目錄”這樣的概念也可能發(fā)生改變。對(duì)于文件的組織和訪問,或者說數(shù)據(jù)的組織和訪問,也會(huì)更加側(cè)重于數(shù)據(jù)庫(kù)的方式,它會(huì)對(duì)各種數(shù)據(jù)提供統(tǒng)一訪問存儲(chǔ)機(jī)制,以此來獲得有效而靈活的數(shù)據(jù)查詢機(jī)制。本文使用了后者的實(shí)現(xiàn)方式,將數(shù)據(jù)庫(kù)與專用文件系統(tǒng)進(jìn)行融合,提供了統(tǒng)一的訪問接口。

2嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)的設(shè)計(jì)模型

2.1實(shí)時(shí)數(shù)據(jù)特點(diǎn)

實(shí)時(shí)數(shù)據(jù)自然是與時(shí)間緊密相關(guān)的,工業(yè)上嵌入式實(shí)時(shí)根據(jù)點(diǎn)號(hào)分配磁盤塊I數(shù)據(jù)庫(kù)所存儲(chǔ)的數(shù)據(jù)通常是基于時(shí)間的連續(xù)模擬量或者數(shù)字量,如:溫度、流量、壓力、閥門開關(guān)等,這些數(shù)據(jù)有以下幾個(gè)特點(diǎn):

時(shí)效性

每個(gè)記錄的值都與時(shí)間有關(guān)聯(lián),數(shù)據(jù)隨時(shí)間不斷添加入數(shù)據(jù)庫(kù),這些數(shù)據(jù)的順序按照時(shí)間來排序的,以后不會(huì)被重新排序,而每秒中的數(shù)據(jù)都有可能發(fā)生改變。因此,在記錄數(shù)據(jù)值得過程中必須記錄其相應(yīng)的時(shí)間。在數(shù)據(jù)查找時(shí),也必須確定其時(shí)間點(diǎn),否則數(shù)據(jù)就沒有存在的意義。

數(shù)據(jù)格式

與關(guān)系型數(shù)據(jù)庫(kù)中的元組不同,工業(yè)數(shù)據(jù)每一條數(shù)據(jù)只包含一條記錄,數(shù)據(jù)格式相對(duì)簡(jiǎn)單,固定和獨(dú)立。從應(yīng)用角度來看,保存的數(shù)據(jù)有I/O整型、離散型、實(shí)數(shù)型、開關(guān)量等。但從數(shù)據(jù)存儲(chǔ)技術(shù)方面看,都可歸納為1字節(jié),2字節(jié),4字節(jié)這三種情況,每一條記錄的屬性比較少,不存在記錄點(diǎn)與記錄點(diǎn)之間的依賴關(guān)系,沒有類似關(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)間的復(fù)雜關(guān)系,它記錄格式少,關(guān)系簡(jiǎn)單,可以采用統(tǒng)一的結(jié)構(gòu)化管理。

數(shù)據(jù)時(shí)間間隔

在工業(yè)現(xiàn)場(chǎng)中,某些記錄點(diǎn)變化頻率非??欤行﹦t是很長(zhǎng)一段時(shí)間才會(huì)發(fā)生變化,根據(jù)這個(gè)特點(diǎn),設(shè)計(jì)實(shí)時(shí)數(shù)據(jù)庫(kù)時(shí)必須兼顧細(xì)分要求。

根據(jù)實(shí)時(shí)數(shù)據(jù)的特點(diǎn),可以發(fā)現(xiàn)將實(shí)時(shí)數(shù)據(jù)存入關(guān)系型數(shù)據(jù)庫(kù)既浪費(fèi)系統(tǒng)資源,又無法滿足其對(duì)實(shí)時(shí)性的要求,因此,我們?cè)O(shè)計(jì)了實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)用于存儲(chǔ)一定格式的工業(yè)數(shù)據(jù),其數(shù)據(jù)格式設(shè)定為三元組<點(diǎn)號(hào)、時(shí)間、數(shù)值>,其中“點(diǎn)號(hào)”代表工業(yè)現(xiàn)場(chǎng)的單值采樣設(shè)備,“時(shí)間”代表設(shè)備狀態(tài)的采樣時(shí)刻,“數(shù)值”代表設(shè)備的工作狀態(tài)或計(jì)量值。每一個(gè)數(shù)值由時(shí)間和點(diǎn)號(hào)確定,如果沒有確定的時(shí)間與點(diǎn)號(hào),數(shù)據(jù)則沒有任何意義。

2.2嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)設(shè)計(jì)框架

在系統(tǒng)架構(gòu)方面,從操作系統(tǒng)內(nèi)核結(jié)構(gòu)的角度來看,數(shù)據(jù)庫(kù)文件系統(tǒng)放在操作系統(tǒng)的內(nèi)核之內(nèi),將數(shù)據(jù)庫(kù)技術(shù)與文件系統(tǒng)技術(shù)深度結(jié)合叫圖1所示為實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)在操作系統(tǒng)中存在形式。

基于ARM平臺(tái)的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)不使用一般文件系統(tǒng)中的文件目錄結(jié)構(gòu),而是建立針對(duì)實(shí)時(shí)數(shù)據(jù)的索引結(jié)構(gòu),以便實(shí)現(xiàn)對(duì)磁盤數(shù)據(jù)的高效讀寫,它的數(shù)據(jù)接口是通過在操作系統(tǒng)中建立新的系統(tǒng)調(diào)用來實(shí)現(xiàn)的,使用了Linux中現(xiàn)有的磁盤驅(qū)動(dòng)程序,通過VFS完成在Linux環(huán)境下文件系統(tǒng)的注冊(cè)和安裝。嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)的基本原型如圖2所示。

圖2嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)(ERTFS)的體系結(jié)構(gòu)

該結(jié)構(gòu)提供了對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行讀寫的調(diào)用接口:其中數(shù)據(jù)寫(rt_write)可更新一組塊數(shù)據(jù),包括磁盤塊號(hào)以及寫進(jìn)該塊的數(shù)據(jù)內(nèi)容,可將數(shù)據(jù)寫入磁盤。數(shù)據(jù)讀(rt_read)則用于讀出某一磁盤塊數(shù)據(jù),或者讀出一批磁盤塊數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)則以完整的塊數(shù)據(jù)為基礎(chǔ),在文件系統(tǒng)內(nèi)部不對(duì)塊內(nèi)數(shù)據(jù)進(jìn)行任何處理,而對(duì)塊數(shù)據(jù)內(nèi)容的規(guī)整必須在文件系統(tǒng)之上完成。嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)的數(shù)據(jù)處理流程如圖3所示。

基于ARM平臺(tái)的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

數(shù)據(jù)存儲(chǔ)時(shí)根據(jù)點(diǎn)號(hào)分配磁盤塊,查看磁盤塊空間是否寫滿,若寫滿則分配新的磁盤塊,然后為磁盤塊分配緩沖塊,將數(shù)據(jù)庫(kù)拷貝到緩沖塊,通過Linux的塊設(shè)備驅(qū)動(dòng)程序進(jìn)行寫入磁盤,同時(shí)維護(hù)索引區(qū)。數(shù)據(jù)讀取時(shí)主要根據(jù)點(diǎn)號(hào)和時(shí)間進(jìn)行讀取,如果沒有確定的時(shí)間點(diǎn),數(shù)據(jù)沒有任何意義。

2.3文件結(jié)構(gòu)

嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)的通過點(diǎn)號(hào)進(jìn)行索引,每個(gè)點(diǎn)號(hào)指向?qū)?yīng)的數(shù)據(jù)簇,它的數(shù)據(jù)組織方式如圖4所示。

圖4按照點(diǎn)時(shí)間管理數(shù)據(jù)

嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)以點(diǎn)作為索引,在對(duì)某一點(diǎn)的數(shù)據(jù)進(jìn)行訪問時(shí),需要獲取該點(diǎn)的點(diǎn)信息,按照鏈表的方式來索引到指定的數(shù)據(jù)簇,在數(shù)據(jù)簇內(nèi),查詢命中的數(shù)據(jù)塊,將數(shù)據(jù)從數(shù)據(jù)區(qū)讀取或者存入,采用這種索引結(jié)構(gòu),可以減少數(shù)據(jù)的訪問時(shí)間,提高了實(shí)時(shí)數(shù)據(jù)的查詢能力。其中點(diǎn)所指向的數(shù)據(jù)塊基本信息如圖5所示。

基于ARM平臺(tái)的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

圖5中,數(shù)據(jù)塊索引信息將記錄數(shù)據(jù)塊信息,每個(gè)數(shù)據(jù)塊存儲(chǔ)固定數(shù)目的實(shí)時(shí)數(shù)據(jù),為了節(jié)約存儲(chǔ)空間,塊內(nèi)的每個(gè)時(shí)間值只保存偏移量,即實(shí)際時(shí)間減去該塊數(shù)據(jù)起始時(shí)間。圖6所示為數(shù)據(jù)塊的存儲(chǔ)結(jié)構(gòu)。

基于ARM平臺(tái)的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

3性能測(cè)試

測(cè)試選取的嵌入式ARM開發(fā)板選取YLE2440,處理器為SamsungS2C2440A,主頻400MHz:外部存儲(chǔ)器NorFLASH:2MB;NandFLASH:64MB;存取介質(zhì)選取8GB的惠普優(yōu)盤進(jìn)行讀寫。實(shí)驗(yàn)過程中將實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)正常編譯到了嵌入式Linux內(nèi)核中,內(nèi)核能夠穩(wěn)定的工作,格式化程序能夠?qū)?yōu)盤進(jìn)行格式化,經(jīng)過格式化后的優(yōu)盤能夠掛載到實(shí)時(shí)數(shù)據(jù)庫(kù)文件系統(tǒng)上,能夠?qū)ζ溥M(jìn)行數(shù)據(jù)讀和寫。

4結(jié)語

本文通過對(duì)嵌入式數(shù)據(jù)庫(kù)的分析,提出了針對(duì)實(shí)時(shí)數(shù)據(jù)的嵌入式實(shí)時(shí)數(shù)據(jù)的框架結(jié)構(gòu),介紹了其文件系統(tǒng)在Linux內(nèi)核中的存在形態(tài)以及其數(shù)據(jù)讀取接口,根據(jù)實(shí)時(shí)數(shù)據(jù)的特點(diǎn)設(shè)計(jì)了通過點(diǎn)進(jìn)行索引的文件結(jié)構(gòu),在數(shù)據(jù)文件內(nèi)部,按照時(shí)間段分簇的方式來歸類同一時(shí)間段內(nèi)的數(shù)據(jù)。通過本文的闡述,讀者可以大致明白如何設(shè)計(jì)實(shí)時(shí)數(shù)據(jù)庫(kù)以及實(shí)現(xiàn)特有文件系統(tǒng)。

20211124_619d105eaa45f__基于ARM平臺(tái)的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉