姚丹+劉亮
摘 要:嵌入式系統作為近年最為熱門的技術之一,被廣泛應用于過程控制、工業儀表等領域。文中介紹了在多嵌入式設備系統中,設備運行數據記錄系統的設計方法,包括Linux系統在ARM架構下的移植、根文件系統的建立、SQLite數據庫的移植和設計等,并給出相關結果。
關鍵詞:嵌入式技術;ARM-Linux平臺;SQLite數據庫;數據記錄系統
中圖法分類號:TP311 文獻標識碼:A 文章編號:2095-1302(2014)04-0035-02
0 引 言
隨著嵌入式技術的迅猛發展,嵌入式設備已經廣泛應用于信息處理的各領域中。在多嵌入式設備并存的系統中,工程人員常需要對系統的運行狀態、處理信息的正確性等運行數據進行實時監控和記錄,但現有的運行數據多由各嵌入式設備進行本地化存儲,無法實時對整個系統狀態進行記錄和分析。
針對這個問題,本文提出了一種基于SQLite數據庫的嵌入式數據記錄模型,在此基礎上通過構建嵌入式硬件平臺與移植操作系統,并將SQLite數據庫嵌入到軟硬件平臺,使工程人員能夠從單一終端獲取系統各設備的運行數據。
1 設計原理
1.1 嵌入式數據記錄模型
圖1所示是一個分布式數據記錄模型,本文設計的就是這種基于以太網的分布式數據記錄模型。系統采用以太網將本機與其他嵌入式設備連接,建立局域網內的服務器/客戶端網絡架構。其他嵌入式設備將運行數據通過以太網送至本系統,由系統進行數據分析和狀態解讀等操作,最后交由工程人員處理。
圖1 分布式數據記錄模型
1.2 數據記錄軟硬件簡介
考慮處理能力和處理器功耗因素,系統選用基于ARM架構的S3C2440處理器作為主處理單元。該處理器基于ARM920T核心,具有5級流水線和哈佛結構,兼有優異的浮點和定點數據處理能力。
嵌入式操作系統是連接軟件和硬件的重要模塊,向上提供與應用程序的接口,向下提供與硬件設備交互的接口。系統選用嵌入式Linux系統作為操作系統,它既繼承了開放的源代碼資源,又具有完善的軟件生態環境、資源的統一接口、優異的可擴展性等優勢。
作為數據記錄的核心構件,系統選用SQLite數據庫進行運行數據記錄。該數據庫是由D.Richard Hipp開發的應用于嵌入式系統的輕量級數據庫,是應用非常廣泛的開源項目。該數據庫具有以下特性:
(1)數據庫被集成在程序中,不需專門配置和管理,單表運行速度快;
(2)代碼規模小,編譯后不大于256 KB,運行時占用緩存小;
(3)在系統崩潰或掉電后,可以自動完成啟動初始化和數據恢復。
2 系統設計
系統采用ARM-Linux平臺,通過以太網進行數據傳輸,以SQLite數據庫進行數據記錄,具體的系統架構如圖2所示。
圖2 運行數據記錄系統
3 系統實現步驟
3.1 Linux系統內核移植
軟件嵌入式系統內核的移植,就是根據目標板的具體配置,在獲取操作系統源碼的基礎上,對其進行必要的修改,添加設備驅動,最終由交叉編譯環境生成Image文件的過程。本系統采用Linux 2.6.29內核,已集成了硬件平臺的大部分驅動,但由于在硬件設計階段添加了LCD顯示模塊,因此需要將LCD驅動集成到Linux內核中,并對內核部分具體配置做出修改。
本系統選用LCD廠商提供的默認驅動,根據硬件配置修改驅動文件后編譯進內核中。具體步驟如下:
(1)在內核中添加FrameBuffer以及LCD的注冊信息;
(2)在內核中添加LCD平臺信息;
(3)將LCD平臺初始操作方式添加到參數實現文件中。
添加完成后,根據目標板硬件設置配置Linux內核,需要配置的參數有CPU平臺、LCD參數、網絡設置、串口設置、MTD設備支持、內部存儲單元加載方式等,具體配置方式需要參照硬件設計和元器件的器件手冊。
圖3所示是其Linux的內核編譯圖。內核參數配置完成后,需要在交叉編譯環境下將該內核文件進行生成操作,生成可在目標板上執行的Image文件。
圖3 Linux內核編譯
3.2 Linux根文件系統的構建
文件系統是操作系統用于明確磁盤或分區上的文件的方法和數據結構。內核Image文件啟動后運行的首個程序、提供參數配置等系統啟動所必須的文件合稱為根文件系統。
系統選用Nand Flash作為存儲介質,因此使用yaffs2文件系統作為根文件系統,該文件系統是專為Nand Flash設計的基于日志結構的嵌入式文件系統,提供了損耗平衡和掉電保護,系統結構按層次結構設計,簡化了接口,而且轉載時間明顯快于其他文件系統。
系統在構建yaffs2文件系統時,首先需要載入yaffs2代碼,并使用Busybox工具包進行構建。具體步驟如下:
(1)建立基本目錄樹,修改Makefile文件,添加文件類型支持,并修改配置Busybox;
(2)修改Fstab、Inittab和MakeFile文件,并建立設備節點;
(3)使用mkyaffs2image工具編譯,生成的Image文件鏡像文件如圖4所示。
圖4 mkyaffs2image工具生成Image文件
3.3 SQLite數據庫的構建
系統使用SQLite數據庫的版本號為SQLite 3.3.8,針對特定的嵌入式硬件和操作系統,需要對數據庫中部分參數進行修改,使其可以應用于本軟硬件平臺上。具體步驟如下:
(1)新建一個和SQLite目錄平行的同級目錄,并安裝與ARM架構處理器適配的交叉編譯工具arm-linux-gcc;
(2)打開sqlite/src/sqliteInt.h,找到如圖5所示的部分代碼,并在這段代碼前加上#define SQLITE_PTR_SZ 4語句;
圖5 sqlite/src/sqliteInt.h中的部分代碼圖
(3)注釋掉SQLite目錄下的配置文件中的交叉編譯環境校驗語句。然后執行配置命令,在build目錄下生成Makefile和libtool腳本文件;
(4)修改Makefile文件,將SQLite編譯成靜態鏈接的形式,然后執行make命令,生成sqlite、libsqlite.a、libsqlite.so等文件;
(5)使用Ftp方式將SQLite拷貝到硬件平臺上,這樣SQLite數據庫已經可以在ARM-Linux平臺下運行;
(6)使用標準SQL語句編寫程序,實現運行數據的存儲和篩選功能。
4 結 語
本文將ARM-Linux平臺和SQLite數據庫結合,設計了一種用于多嵌入式設備系統中的運行數據記錄系統。該系統通過以太網與其他設備連接,可有效地架構于計算機網絡上。該方案擴展了嵌入式設備狀態監控的應用范圍,具有良好的工程應用性。
參 考 文 獻
[1]胡偉.SQLite在嵌入式系統上的實現研究[J].計算機與數字工程,2009(2):163-168.
[2]蔣晶,于平,韓菲.SQLite在嵌入式系統Wince中的應用[J].微型機與應用,2011(14):86-87.
[3]張廣斌,宮金林,陳爽.SQLite嵌入式數據庫系統的研究與實現[J].單片機與嵌入式系統應用,2008(6):12-14.
[4]路旋.嵌入式數據庫管理系統SQLite的設計與實現[D].西安:西安電子科技大學,2009.
[5]黃東.基于SQLite的移動嵌入式數據庫同步系統的研究和開發[D].武漢:華中師范大學,2009.
摘 要:嵌入式系統作為近年最為熱門的技術之一,被廣泛應用于過程控制、工業儀表等領域。文中介紹了在多嵌入式設備系統中,設備運行數據記錄系統的設計方法,包括Linux系統在ARM架構下的移植、根文件系統的建立、SQLite數據庫的移植和設計等,并給出相關結果。
關鍵詞:嵌入式技術;ARM-Linux平臺;SQLite數據庫;數據記錄系統
中圖法分類號:TP311 文獻標識碼:A 文章編號:2095-1302(2014)04-0035-02
0 引 言
隨著嵌入式技術的迅猛發展,嵌入式設備已經廣泛應用于信息處理的各領域中。在多嵌入式設備并存的系統中,工程人員常需要對系統的運行狀態、處理信息的正確性等運行數據進行實時監控和記錄,但現有的運行數據多由各嵌入式設備進行本地化存儲,無法實時對整個系統狀態進行記錄和分析。
針對這個問題,本文提出了一種基于SQLite數據庫的嵌入式數據記錄模型,在此基礎上通過構建嵌入式硬件平臺與移植操作系統,并將SQLite數據庫嵌入到軟硬件平臺,使工程人員能夠從單一終端獲取系統各設備的運行數據。
1 設計原理
1.1 嵌入式數據記錄模型
圖1所示是一個分布式數據記錄模型,本文設計的就是這種基于以太網的分布式數據記錄模型。系統采用以太網將本機與其他嵌入式設備連接,建立局域網內的服務器/客戶端網絡架構。其他嵌入式設備將運行數據通過以太網送至本系統,由系統進行數據分析和狀態解讀等操作,最后交由工程人員處理。
圖1 分布式數據記錄模型
1.2 數據記錄軟硬件簡介
考慮處理能力和處理器功耗因素,系統選用基于ARM架構的S3C2440處理器作為主處理單元。該處理器基于ARM920T核心,具有5級流水線和哈佛結構,兼有優異的浮點和定點數據處理能力。
嵌入式操作系統是連接軟件和硬件的重要模塊,向上提供與應用程序的接口,向下提供與硬件設備交互的接口。系統選用嵌入式Linux系統作為操作系統,它既繼承了開放的源代碼資源,又具有完善的軟件生態環境、資源的統一接口、優異的可擴展性等優勢。
作為數據記錄的核心構件,系統選用SQLite數據庫進行運行數據記錄。該數據庫是由D.Richard Hipp開發的應用于嵌入式系統的輕量級數據庫,是應用非常廣泛的開源項目。該數據庫具有以下特性:
(1)數據庫被集成在程序中,不需專門配置和管理,單表運行速度快;
(2)代碼規模小,編譯后不大于256 KB,運行時占用緩存小;
(3)在系統崩潰或掉電后,可以自動完成啟動初始化和數據恢復。
2 系統設計
系統采用ARM-Linux平臺,通過以太網進行數據傳輸,以SQLite數據庫進行數據記錄,具體的系統架構如圖2所示。
圖2 運行數據記錄系統
3 系統實現步驟
3.1 Linux系統內核移植
軟件嵌入式系統內核的移植,就是根據目標板的具體配置,在獲取操作系統源碼的基礎上,對其進行必要的修改,添加設備驅動,最終由交叉編譯環境生成Image文件的過程。本系統采用Linux 2.6.29內核,已集成了硬件平臺的大部分驅動,但由于在硬件設計階段添加了LCD顯示模塊,因此需要將LCD驅動集成到Linux內核中,并對內核部分具體配置做出修改。
本系統選用LCD廠商提供的默認驅動,根據硬件配置修改驅動文件后編譯進內核中。具體步驟如下:
(1)在內核中添加FrameBuffer以及LCD的注冊信息;
(2)在內核中添加LCD平臺信息;
(3)將LCD平臺初始操作方式添加到參數實現文件中。
添加完成后,根據目標板硬件設置配置Linux內核,需要配置的參數有CPU平臺、LCD參數、網絡設置、串口設置、MTD設備支持、內部存儲單元加載方式等,具體配置方式需要參照硬件設計和元器件的器件手冊。
圖3所示是其Linux的內核編譯圖。內核參數配置完成后,需要在交叉編譯環境下將該內核文件進行生成操作,生成可在目標板上執行的Image文件。
圖3 Linux內核編譯
3.2 Linux根文件系統的構建
文件系統是操作系統用于明確磁盤或分區上的文件的方法和數據結構。內核Image文件啟動后運行的首個程序、提供參數配置等系統啟動所必須的文件合稱為根文件系統。
系統選用Nand Flash作為存儲介質,因此使用yaffs2文件系統作為根文件系統,該文件系統是專為Nand Flash設計的基于日志結構的嵌入式文件系統,提供了損耗平衡和掉電保護,系統結構按層次結構設計,簡化了接口,而且轉載時間明顯快于其他文件系統。
系統在構建yaffs2文件系統時,首先需要載入yaffs2代碼,并使用Busybox工具包進行構建。具體步驟如下:
(1)建立基本目錄樹,修改Makefile文件,添加文件類型支持,并修改配置Busybox;
(2)修改Fstab、Inittab和MakeFile文件,并建立設備節點;
(3)使用mkyaffs2image工具編譯,生成的Image文件鏡像文件如圖4所示。
圖4 mkyaffs2image工具生成Image文件
3.3 SQLite數據庫的構建
系統使用SQLite數據庫的版本號為SQLite 3.3.8,針對特定的嵌入式硬件和操作系統,需要對數據庫中部分參數進行修改,使其可以應用于本軟硬件平臺上。具體步驟如下:
(1)新建一個和SQLite目錄平行的同級目錄,并安裝與ARM架構處理器適配的交叉編譯工具arm-linux-gcc;
(2)打開sqlite/src/sqliteInt.h,找到如圖5所示的部分代碼,并在這段代碼前加上#define SQLITE_PTR_SZ 4語句;
圖5 sqlite/src/sqliteInt.h中的部分代碼圖
(3)注釋掉SQLite目錄下的配置文件中的交叉編譯環境校驗語句。然后執行配置命令,在build目錄下生成Makefile和libtool腳本文件;
(4)修改Makefile文件,將SQLite編譯成靜態鏈接的形式,然后執行make命令,生成sqlite、libsqlite.a、libsqlite.so等文件;
(5)使用Ftp方式將SQLite拷貝到硬件平臺上,這樣SQLite數據庫已經可以在ARM-Linux平臺下運行;
(6)使用標準SQL語句編寫程序,實現運行數據的存儲和篩選功能。
4 結 語
本文將ARM-Linux平臺和SQLite數據庫結合,設計了一種用于多嵌入式設備系統中的運行數據記錄系統。該系統通過以太網與其他設備連接,可有效地架構于計算機網絡上。該方案擴展了嵌入式設備狀態監控的應用范圍,具有良好的工程應用性。
參 考 文 獻
[1]胡偉.SQLite在嵌入式系統上的實現研究[J].計算機與數字工程,2009(2):163-168.
[2]蔣晶,于平,韓菲.SQLite在嵌入式系統Wince中的應用[J].微型機與應用,2011(14):86-87.
[3]張廣斌,宮金林,陳爽.SQLite嵌入式數據庫系統的研究與實現[J].單片機與嵌入式系統應用,2008(6):12-14.
[4]路旋.嵌入式數據庫管理系統SQLite的設計與實現[D].西安:西安電子科技大學,2009.
[5]黃東.基于SQLite的移動嵌入式數據庫同步系統的研究和開發[D].武漢:華中師范大學,2009.
摘 要:嵌入式系統作為近年最為熱門的技術之一,被廣泛應用于過程控制、工業儀表等領域。文中介紹了在多嵌入式設備系統中,設備運行數據記錄系統的設計方法,包括Linux系統在ARM架構下的移植、根文件系統的建立、SQLite數據庫的移植和設計等,并給出相關結果。
關鍵詞:嵌入式技術;ARM-Linux平臺;SQLite數據庫;數據記錄系統
中圖法分類號:TP311 文獻標識碼:A 文章編號:2095-1302(2014)04-0035-02
0 引 言
隨著嵌入式技術的迅猛發展,嵌入式設備已經廣泛應用于信息處理的各領域中。在多嵌入式設備并存的系統中,工程人員常需要對系統的運行狀態、處理信息的正確性等運行數據進行實時監控和記錄,但現有的運行數據多由各嵌入式設備進行本地化存儲,無法實時對整個系統狀態進行記錄和分析。
針對這個問題,本文提出了一種基于SQLite數據庫的嵌入式數據記錄模型,在此基礎上通過構建嵌入式硬件平臺與移植操作系統,并將SQLite數據庫嵌入到軟硬件平臺,使工程人員能夠從單一終端獲取系統各設備的運行數據。
1 設計原理
1.1 嵌入式數據記錄模型
圖1所示是一個分布式數據記錄模型,本文設計的就是這種基于以太網的分布式數據記錄模型。系統采用以太網將本機與其他嵌入式設備連接,建立局域網內的服務器/客戶端網絡架構。其他嵌入式設備將運行數據通過以太網送至本系統,由系統進行數據分析和狀態解讀等操作,最后交由工程人員處理。
圖1 分布式數據記錄模型
1.2 數據記錄軟硬件簡介
考慮處理能力和處理器功耗因素,系統選用基于ARM架構的S3C2440處理器作為主處理單元。該處理器基于ARM920T核心,具有5級流水線和哈佛結構,兼有優異的浮點和定點數據處理能力。
嵌入式操作系統是連接軟件和硬件的重要模塊,向上提供與應用程序的接口,向下提供與硬件設備交互的接口。系統選用嵌入式Linux系統作為操作系統,它既繼承了開放的源代碼資源,又具有完善的軟件生態環境、資源的統一接口、優異的可擴展性等優勢。
作為數據記錄的核心構件,系統選用SQLite數據庫進行運行數據記錄。該數據庫是由D.Richard Hipp開發的應用于嵌入式系統的輕量級數據庫,是應用非常廣泛的開源項目。該數據庫具有以下特性:
(1)數據庫被集成在程序中,不需專門配置和管理,單表運行速度快;
(2)代碼規模小,編譯后不大于256 KB,運行時占用緩存小;
(3)在系統崩潰或掉電后,可以自動完成啟動初始化和數據恢復。
2 系統設計
系統采用ARM-Linux平臺,通過以太網進行數據傳輸,以SQLite數據庫進行數據記錄,具體的系統架構如圖2所示。
圖2 運行數據記錄系統
3 系統實現步驟
3.1 Linux系統內核移植
軟件嵌入式系統內核的移植,就是根據目標板的具體配置,在獲取操作系統源碼的基礎上,對其進行必要的修改,添加設備驅動,最終由交叉編譯環境生成Image文件的過程。本系統采用Linux 2.6.29內核,已集成了硬件平臺的大部分驅動,但由于在硬件設計階段添加了LCD顯示模塊,因此需要將LCD驅動集成到Linux內核中,并對內核部分具體配置做出修改。
本系統選用LCD廠商提供的默認驅動,根據硬件配置修改驅動文件后編譯進內核中。具體步驟如下:
(1)在內核中添加FrameBuffer以及LCD的注冊信息;
(2)在內核中添加LCD平臺信息;
(3)將LCD平臺初始操作方式添加到參數實現文件中。
添加完成后,根據目標板硬件設置配置Linux內核,需要配置的參數有CPU平臺、LCD參數、網絡設置、串口設置、MTD設備支持、內部存儲單元加載方式等,具體配置方式需要參照硬件設計和元器件的器件手冊。
圖3所示是其Linux的內核編譯圖。內核參數配置完成后,需要在交叉編譯環境下將該內核文件進行生成操作,生成可在目標板上執行的Image文件。
圖3 Linux內核編譯
3.2 Linux根文件系統的構建
文件系統是操作系統用于明確磁盤或分區上的文件的方法和數據結構。內核Image文件啟動后運行的首個程序、提供參數配置等系統啟動所必須的文件合稱為根文件系統。
系統選用Nand Flash作為存儲介質,因此使用yaffs2文件系統作為根文件系統,該文件系統是專為Nand Flash設計的基于日志結構的嵌入式文件系統,提供了損耗平衡和掉電保護,系統結構按層次結構設計,簡化了接口,而且轉載時間明顯快于其他文件系統。
系統在構建yaffs2文件系統時,首先需要載入yaffs2代碼,并使用Busybox工具包進行構建。具體步驟如下:
(1)建立基本目錄樹,修改Makefile文件,添加文件類型支持,并修改配置Busybox;
(2)修改Fstab、Inittab和MakeFile文件,并建立設備節點;
(3)使用mkyaffs2image工具編譯,生成的Image文件鏡像文件如圖4所示。
圖4 mkyaffs2image工具生成Image文件
3.3 SQLite數據庫的構建
系統使用SQLite數據庫的版本號為SQLite 3.3.8,針對特定的嵌入式硬件和操作系統,需要對數據庫中部分參數進行修改,使其可以應用于本軟硬件平臺上。具體步驟如下:
(1)新建一個和SQLite目錄平行的同級目錄,并安裝與ARM架構處理器適配的交叉編譯工具arm-linux-gcc;
(2)打開sqlite/src/sqliteInt.h,找到如圖5所示的部分代碼,并在這段代碼前加上#define SQLITE_PTR_SZ 4語句;
圖5 sqlite/src/sqliteInt.h中的部分代碼圖
(3)注釋掉SQLite目錄下的配置文件中的交叉編譯環境校驗語句。然后執行配置命令,在build目錄下生成Makefile和libtool腳本文件;
(4)修改Makefile文件,將SQLite編譯成靜態鏈接的形式,然后執行make命令,生成sqlite、libsqlite.a、libsqlite.so等文件;
(5)使用Ftp方式將SQLite拷貝到硬件平臺上,這樣SQLite數據庫已經可以在ARM-Linux平臺下運行;
(6)使用標準SQL語句編寫程序,實現運行數據的存儲和篩選功能。
4 結 語
本文將ARM-Linux平臺和SQLite數據庫結合,設計了一種用于多嵌入式設備系統中的運行數據記錄系統。該系統通過以太網與其他設備連接,可有效地架構于計算機網絡上。該方案擴展了嵌入式設備狀態監控的應用范圍,具有良好的工程應用性。
參 考 文 獻
[1]胡偉.SQLite在嵌入式系統上的實現研究[J].計算機與數字工程,2009(2):163-168.
[2]蔣晶,于平,韓菲.SQLite在嵌入式系統Wince中的應用[J].微型機與應用,2011(14):86-87.
[3]張廣斌,宮金林,陳爽.SQLite嵌入式數據庫系統的研究與實現[J].單片機與嵌入式系統應用,2008(6):12-14.
[4]路旋.嵌入式數據庫管理系統SQLite的設計與實現[D].西安:西安電子科技大學,2009.
[5]黃東.基于SQLite的移動嵌入式數據庫同步系統的研究和開發[D].武漢:華中師范大學,2009.