掃描二維碼
隨時隨地手機看文章
引言
隨著嵌入式技術(shù)的迅猛發(fā)展,嵌入式設(shè)備已經(jīng)廣泛應用于信息處理的各領(lǐng)域中。在多嵌入式設(shè)備并存的系統(tǒng)中,工程人員常需要對系統(tǒng)的運行狀態(tài)、處理信息的正確性等運行數(shù)據(jù)進行實時監(jiān)控和記錄,但現(xiàn)有的運行數(shù)據(jù)多由各嵌入式設(shè)備進行本地化存儲,無法實時對整個系統(tǒng)狀態(tài)進行記錄和分析。
針對這個問題,本文提出了一種基于SQLite數(shù)據(jù)庫的嵌入式數(shù)據(jù)記錄模型,在此基礎(chǔ)上通過構(gòu)建嵌入式硬件平臺與移植操作系統(tǒng),并將SQLite數(shù)據(jù)庫嵌入到軟硬件平臺,使工程人員能夠從單一終端獲取系統(tǒng)各設(shè)備的運行數(shù)據(jù)。
1設(shè)計原理
1.1嵌入式數(shù)據(jù)記錄模型
圖1所示是一個分布式數(shù)據(jù)記錄模型,本文設(shè)計的就是這種基于以太網(wǎng)的分布式數(shù)據(jù)記錄模型。系統(tǒng)采用以太網(wǎng)將本機與其他嵌入式設(shè)備連接,建立局域網(wǎng)內(nèi)的服務(wù)器/客戶端網(wǎng)絡(luò)架構(gòu)。其他嵌入式設(shè)備將運行數(shù)據(jù)通過以太網(wǎng)送至本系統(tǒng),由系統(tǒng)進行數(shù)據(jù)分析和狀態(tài)解讀等操作,最后交由工程人員處理。
1.2數(shù)據(jù)記錄軟硬件簡介
考慮處理能力和處理器功耗因素,系統(tǒng)選用基于ARM架構(gòu)的S3C2440處理器作為主處理單元。該處理器基于ARM920T核心,具有5級流水線和哈佛結(jié)構(gòu),兼有優(yōu)異的浮點和定點數(shù)據(jù)處理能力。
嵌入式操作系統(tǒng)是連接軟件和硬件的重要模塊,向上提供與應用程序的接口,向下提供與硬件設(shè)備交互的接口。系統(tǒng)選用嵌入式Linux系統(tǒng)作為操作系統(tǒng),它既繼承了開放的源代碼資源,又具有完善的軟件生態(tài)環(huán)境、資源的統(tǒng)一接口、優(yōu)異的可擴展性等優(yōu)勢。
作為數(shù)據(jù)記錄的核心構(gòu)件,系統(tǒng)選用SQLite數(shù)據(jù)庫進行運行數(shù)據(jù)記錄。該數(shù)據(jù)庫是由DRichardHipp開發(fā)的應用于嵌入式系統(tǒng)的輕量級數(shù)據(jù)庫,是應用非常廣泛的開源項目。該數(shù)據(jù)庫具有以下特性:
數(shù)據(jù)庫被集成在程序中,不需專門配置和管理,單表運行速度快;
代碼規(guī)模小,編譯后不大于256KB,運行時占用緩存??;
在系統(tǒng)崩潰或掉電后,可以自動完成啟動初始化和數(shù)據(jù)恢復。
2系統(tǒng)設(shè)計
系統(tǒng)采用ARM-Linux平臺,通過以太網(wǎng)進行數(shù)據(jù)傳輸,以SQLite數(shù)據(jù)庫進行數(shù)據(jù)記錄,具體的系統(tǒng)架構(gòu)如圖2所示。
3系統(tǒng)實現(xiàn)步驟
Linux系統(tǒng)內(nèi)核移植
軟件嵌入式系統(tǒng)內(nèi)核的移植,就是根據(jù)目標板的具體配置,在獲取操作系統(tǒng)源碼的基礎(chǔ)上,對其進行必要的修改,添加設(shè)備驅(qū)動,最終由交叉編譯環(huán)境生成Image文件的過程。本系統(tǒng)采用Linux2.6.29內(nèi)核,已集成了硬件平臺的大部分驅(qū)動,但由于在硬件設(shè)計階段添加了LCD顯示模塊,因此需要將LCD驅(qū)動集成到Linux內(nèi)核中,并對內(nèi)核部分具體配置做出修改。
本系統(tǒng)選用LCD廠商提供的默認驅(qū)動,根據(jù)硬件配置修改驅(qū)動文件后編譯進內(nèi)核中。具體步驟如下:
在內(nèi)核中添加FrameBuffer以及LCD的注冊信息;
在內(nèi)核中添加LCD平臺信息;
將LCD平臺初始操作方式添加到參數(shù)實現(xiàn)文件中。
添加完成后,根據(jù)目標板硬件設(shè)置配置Linux內(nèi)核,需要配置的參數(shù)有CPU平臺、LCD參數(shù)、網(wǎng)絡(luò)設(shè)置、串口設(shè)置、MTD設(shè)備支持、內(nèi)部存儲單元加載方式等,具體配置方式需要參照硬件設(shè)計和元器件的器件手冊。
圖3所示是其Linux的內(nèi)核編譯圖。內(nèi)核參數(shù)配置完成后,需要在交叉編譯環(huán)境下將該內(nèi)核文件進行生成操作,生成可在目標板上執(zhí)行的Image文件。
Linux根文件系統(tǒng)的構(gòu)建
文件系統(tǒng)是操作系統(tǒng)用于明確磁盤或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu)。內(nèi)核Image文件啟動后運行的首個程序、提供參數(shù)配置等系統(tǒng)啟動所必須的文件合稱為根文件系統(tǒng)。
系統(tǒng)選用NandFlash作為存儲介質(zhì),因此使用yaffs2文件系統(tǒng)作為根文件系統(tǒng),該文件系統(tǒng)是專為NandFlash設(shè)計的基于日志結(jié)構(gòu)的嵌入式文件系統(tǒng),提供了損耗平衡和掉電保護,系統(tǒng)結(jié)構(gòu)按層次結(jié)構(gòu)設(shè)計,簡化了接口,而且轉(zhuǎn)載時間明顯快于其他文件系統(tǒng)。
系統(tǒng)在構(gòu)建yaffs2文件系統(tǒng)時,首先需要載入yaffs2代碼,并使用Busybox工具包進行構(gòu)建。具體步驟如下:
建立基本目錄樹,修改Makefile文件,添加文件類型支持,并修改配置Busybox;
修改Fstab、Inittab和MakeFile文件,并建立設(shè)備節(jié)點;
使用mkyaffs2image工具編譯,生成的Image文件鏡像文件如圖4所示。
SQLite數(shù)據(jù)庫的構(gòu)建
系統(tǒng)使用SQLite數(shù)據(jù)庫的版本號為SQLite3.3.8,針對特定的嵌入式硬件和操作系統(tǒng),需要對數(shù)據(jù)庫中部分參數(shù)進行修改,使其可以應用于本軟硬件平臺上。具體步驟如下:
新建一個和SQLite目錄平行的同級目錄,并安裝與ARM架構(gòu)處理器適配的交叉編譯工具arm-linux-gcc;
打開sqlite/src/sqlitelnt.h,找到如圖5所示的部分代碼,并在這段代碼前加上#defineSQLITE_PTR_SZ4語句;
注釋掉SQLite目錄下的配置文件中的交叉編譯環(huán)境校驗語句。然后執(zhí)行配置命令,在build目錄下生成Makefile和libtool腳本文件;
修改Makefile文件,將SQLite編譯成靜態(tài)鏈接的形式,然后執(zhí)行make命令,生成sqlite、libsqlite.a、libsqlite.so等文件;
使用Ftp方式將SQLite拷貝到硬件平臺上,這樣SQLite數(shù)據(jù)庫已經(jīng)可以在ARM-Linux平臺下運行;
使用標準SQL語句編寫程序,實現(xiàn)運行數(shù)據(jù)的存儲和篩選功能。
4結(jié)語
本文將ARM-Linux平臺和SQLite數(shù)據(jù)庫結(jié)合,設(shè)計了一種用于多嵌入式設(shè)備系統(tǒng)中的運行數(shù)據(jù)記錄系統(tǒng)。該系統(tǒng)通過以太網(wǎng)與其他設(shè)備連接,可有效地架構(gòu)于計算機網(wǎng)絡(luò)上。該方案擴展了嵌入式設(shè)備狀態(tài)監(jiān)控的應用范圍,具有良好的工程應用性。
20211120_6198cc5dd7e96__基于SQLite的嵌入式數(shù)據(jù)記錄系統(tǒng)設(shè)計
軍工電子是集紅外技術(shù)、激光技術(shù)、半導體及嵌入式技術(shù)與虛擬仿真技術(shù)為一體的綜合性軍工技術(shù)體系,是國防信息化建設(shè)的基石。軍工電子行業(yè)包含在軍工行業(yè)內(nèi),專注于軍工行業(yè)電子產(chǎn)品布局。根據(jù)其軍工產(chǎn)品的不同可分為衛(wèi)星導航、通信指揮、...
關(guān)鍵字: 軍工電子 嵌入式技術(shù) 信息化建設(shè)(全球TMT2022年6月16日訊)近日,德州儀器(TI)在教育部的指導下開展的產(chǎn)學合作協(xié)同育人項目正式獲批。今年,TI將在"模擬電子技術(shù)應用"、"嵌入式技術(shù)應用"等方向上,繼續(xù)支持教學內(nèi)容和課程體系改革,推動創(chuàng)新創(chuàng)業(yè)...
關(guān)鍵字: 德州儀器 TI 模擬電子技術(shù) 嵌入式技術(shù)隨著嵌入式技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)已經(jīng)進入了物聯(lián)網(wǎng)時代。物聯(lián)網(wǎng)所需的大量設(shè)備并不依賴于人與人之間的交互來建立連接,更多的是通過協(xié)議、通信、編程等方式連接到一個地方。也就是說,物聯(lián)網(wǎng)的目的是使所有的物品都具有計算機智能,而不...
關(guān)鍵字: 嵌入式技術(shù) 嵌入式開發(fā) 物聯(lián)網(wǎng)摘要:以湖南農(nóng)業(yè)農(nóng)村信息化綜合服務(wù)平臺農(nóng)業(yè)知識推送研究為基礎(chǔ),在研究了安卓系統(tǒng)的多分頁快速切換TabHost 控件以及SQLite數(shù)據(jù)庫的基礎(chǔ)上,利用百度提供的免費接口采集的天氣預報信息,開發(fā)了天氣信息采集與推送系統(tǒng),以...
關(guān)鍵字: 天氣預報 SQLite數(shù)據(jù)庫 短信服務(wù) 農(nóng)業(yè)信息化摘 要 :設(shè)計一種基于 LoRa 的溫濕度監(jiān)測節(jié)點,該監(jiān)測節(jié)點的控制模塊選用 MSP430F169 單片機,LoRa 通信模塊選用 E32-TTL-100 射頻芯片,選用 HTU21D 溫濕度傳感器采集環(huán)境溫濕度,并設(shè)...
關(guān)鍵字: 環(huán)境溫濕度 MSP430F169 單片機 E32-TTL-100 射頻芯片 嵌入式技術(shù) LoRa 異常報警程序喵大人號主程序喵,碩士畢業(yè),鉆研C多年,幫助過不少C新手入門和進階,可以說一句“精通C”啦。他搞過人臉識別,研究過自動駕駛,人生就是不斷的挑戰(zhàn)自我,現(xiàn)在從事音視頻行業(yè),技術(shù)棧C/C/Android/iOS,深度虎撲潛...
關(guān)鍵字: 嵌入式技術(shù)摘要:當今醫(yī)學發(fā)展的趨勢特征是生命與健康規(guī)律的認識趨向整體,疾病的控制策略趨向系統(tǒng),正走向"4P''醫(yī)學醫(yī)學模式。"4P''醫(yī)學模式即預防性(Preventive),預測性(Predictive)、個體化(Persona...
關(guān)鍵字: "4P”醫(yī)學 物聯(lián)網(wǎng) 智慧醫(yī)療方案 辰漢電子 嵌入式技術(shù) 無線通信技術(shù)今天跟大家分享4個好友的技術(shù)公眾號,每位號主都是嵌入式等行業(yè)的經(jīng)驗豐富的實戰(zhàn)工程師,我相信跟他們交流會有不一樣的收獲,不妨給個關(guān)注,一起學習,一起進階~嵌入式ARM公眾號【嵌入式ARM】?主要傳播嵌入式相關(guān)技術(shù)內(nèi)容,包括...
關(guān)鍵字: 嵌入式技術(shù)今天跟大家分享4個好友的技術(shù)公眾號,每位號主都是嵌入式等行業(yè)的經(jīng)驗豐富的實戰(zhàn)工程師,我相信跟他們交流會有不一樣的收獲,不妨給個關(guān)注,一起學習,一起進階~最后一個bug一個嵌入式技術(shù)進階公眾號,號主bug菌,從事嵌入式軟件...
關(guān)鍵字: 嵌入式技術(shù)嵌入式RFID(射頻識別)讀寫器技術(shù)領(lǐng)域供應商SkyeTek通過在亞洲增加了3家新客戶和2家新分銷商繼續(xù)拓展了其亞洲業(yè)務(wù)版圖。
關(guān)鍵字: 讀寫器 嵌入式技術(shù)