《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于嵌入式數(shù)據(jù)庫的分布式大壩監(jiān)測數(shù)據(jù)匯聚器設(shè)計
基于嵌入式數(shù)據(jù)庫的分布式大壩監(jiān)測數(shù)據(jù)匯聚器設(shè)計
來源:電子技術(shù)應(yīng)用2011年第5期
沈 雁,,戴瑜興,,湯 睿
湖南大學(xué) 電氣與信息工程學(xué)院,,湖南 長沙410082
摘要: 采用ARM9及嵌入式數(shù)據(jù)庫設(shè)計開發(fā)了基于分布式技術(shù)的大壩監(jiān)測系統(tǒng)的數(shù)據(jù)匯聚器,論述了分布式大壩監(jiān)測系統(tǒng)的結(jié)構(gòu)及數(shù)據(jù)匯聚器的作用,。重點研究了數(shù)據(jù)匯聚器的硬件構(gòu)成,、軟件平臺以及采用SQLite數(shù)據(jù)庫的軟件實現(xiàn),。該設(shè)備可以有效地應(yīng)用于大壩的安全監(jiān)測。
中圖分類號: TP274
文獻標識碼: A
文章編號: 0258-7998(2011)05-0039-03
Design of data aggregator of distributed dam monitoring based on embedded database
Shen Yan,,Dai Yuxing,,Tang Rui
College of Electrical and Information Engineering ,Hunan University,Changsha 410082,China
Abstract: Using ARM9 and embedded database, the data aggregator of distributed dam monitoring system was designed, the structure of the system and the function of the data aggregator was discussed. And hardware structure, software platform and software implementation which based on SQLite database was studied as a focal point. This device can be used for dam safety monitoring efficiently.
Key words : dam monitoring,;embedded database;remote access,;distributed,;data collection


    隨著水利資源的運用日益廣泛及成熟,對于大壩的安全性進行監(jiān)測便成了其中的重要部分,,因為大壩在投入使用之后始終存在著安全隱患,,隨時都有可能威脅到下游人民的生命財產(chǎn)安全。電子及計算機技術(shù)的不斷發(fā)展,,使得對大壩的自動化監(jiān)測成為可能,。筆者從分布式的角度出發(fā),引入嵌入式數(shù)據(jù)庫[1],,設(shè)計開發(fā)大壩安全監(jiān)測所用的數(shù)據(jù)匯聚器,,為自動化的大壩監(jiān)測系統(tǒng)提供有力的支持。
1 數(shù)據(jù)匯集器的系統(tǒng)結(jié)構(gòu)
1.1 分布式大壩監(jiān)測系統(tǒng)結(jié)構(gòu)

    大壩監(jiān)測安全采用分布式設(shè)計,,由上位監(jiān)測機,、局域網(wǎng)或互聯(lián)網(wǎng)、數(shù)據(jù)匯聚器,、RS-485總線,、DAM數(shù)據(jù)模塊、監(jiān)測儀器組成,,如圖1所示,。各種監(jiān)測儀器使用傳感器將采集的信號如電流、電壓等經(jīng)過處理后變成可以識別和計算的數(shù)字量[2],。監(jiān)測儀器可直接與數(shù)據(jù)匯聚器相連,,也可以將多個儀器接至DAM數(shù)據(jù)模塊后再與數(shù)據(jù)匯聚器相連。數(shù)據(jù)匯聚器作為一個總的數(shù)據(jù)采集裝置,,將眾多監(jiān)測儀器采集的數(shù)據(jù)進行匯聚并存儲,,可為上位監(jiān)測機提供實時的或以往的監(jiān)測數(shù)據(jù),由于數(shù)據(jù)分布于各個數(shù)據(jù)匯聚器,,提高了系統(tǒng)的可靠性及數(shù)據(jù)的共享性,。數(shù)據(jù)匯聚器與上位監(jiān)測可以是局域網(wǎng),一般應(yīng)用于對一個單獨的大壩進行監(jiān)測,,也可以將數(shù)據(jù)匯聚器接入互聯(lián)網(wǎng),,使得可以通過遠程訪問或?qū)Χ鄠€大壩進行統(tǒng)一的監(jiān)測,。在數(shù)據(jù)匯聚器與監(jiān)測儀器之間采用帶有屏蔽層的RS-485同纜電纜,從而保證了在大壩復(fù)雜環(huán)境下數(shù)據(jù)的正常傳輸,。

1.2 數(shù)據(jù)匯集器的硬件結(jié)構(gòu)
    數(shù)據(jù)匯集器是整個大壩監(jiān)測系統(tǒng)的數(shù)據(jù)存儲中心,,同時還具有TCP到RS-485的轉(zhuǎn)換功能,使得上位監(jiān)測機在需要時可以直接對監(jiān)測儀器進行操作,,其結(jié)構(gòu)框圖如圖2所示,。為保證系統(tǒng)的可靠性,硬件的微處理器采用工業(yè)級ARM9芯片AT91SAM9261,,在工作頻率為190 MHz時可達到210 MIPS,,ARM9的核心系統(tǒng)除了包含AT91S-AM9261處理器之外,還有32 MB SDRAM,、1 GB Nand Flash,、4 MB Data Flash及AT91SAM9261。Data Flash用來存放Bootstrap,、Uboot以及Linux的內(nèi)核,,而大容量的Nand Flash用于實現(xiàn)Linux所需的基本文件系統(tǒng)[3]。以太網(wǎng)芯片采用DM9000A與局域網(wǎng)及互聯(lián)網(wǎng)通信,。所有的數(shù)據(jù)均采用SD卡存儲,,因此設(shè)計了SD卡的接口,可以實現(xiàn)數(shù)據(jù)SD卡的隨時更改及存檔,。設(shè)計了簡單的按鍵及液晶,,用來實現(xiàn)對RS485參數(shù)及TCP/IP參數(shù)的配置操作。數(shù)據(jù)匯集器所接的設(shè)備可以達到16個,,所以AT91SAM9261自身提供的串口遠遠不夠,,通過采用ALTERA公司的EPxxxx型FPGA來完成UART功能接口的擴展,將串口接口擴展至16個,。

 

 

2 應(yīng)用SQLite的數(shù)據(jù)匯聚器軟件設(shè)計
2.1 軟件平臺架構(gòu)

    數(shù)據(jù)匯聚器在軟件上采用Linux作為操作系統(tǒng)平臺,,Linux是優(yōu)秀的開源操作系統(tǒng),具有性能穩(wěn)定,、內(nèi)核可裁剪,、支持眾多硬件等優(yōu)點,非常適合在嵌入式設(shè)備中使用,。數(shù)據(jù)匯聚器所使用的軟件平臺架構(gòu)如圖3所示,。Linux內(nèi)核之下加載了眾多的驅(qū)動程序來實現(xiàn)對各種硬件接口的統(tǒng)一文件操作。內(nèi)核提供了一系列復(fù)雜的系統(tǒng)調(diào)用函數(shù),,基于此實現(xiàn)了功能豐富的函數(shù)庫來滿足不同的功能需要,,如openssl庫是基于TCP的安全網(wǎng)絡(luò)通信協(xié)議庫。由于需要數(shù)據(jù)庫的操作,,在此加入了SQLite的函數(shù)庫,。另外,,數(shù)據(jù)匯集器所連接的監(jiān)測儀器各種各樣且由不同廠商生產(chǎn),所使用的串口通信協(xié)議不盡相同,,這就需要為不同種類的儀器編寫各自的函數(shù)庫,,輸出統(tǒng)一規(guī)范的數(shù)據(jù)。

2.2 數(shù)據(jù)庫設(shè)計
    作為分布式的監(jiān)測系統(tǒng),,在數(shù)據(jù)匯聚中的數(shù)據(jù)存儲非常關(guān)鍵,。單個數(shù)據(jù)匯聚器可以直接連接16臺監(jiān)測儀器,如果采用DAM數(shù)據(jù)模塊,,則可以連接到最多達128臺監(jiān)測儀器,。若以單個儀器單次測量最大數(shù)據(jù)量為100 B,同時每隔5 min測量一次,,則一天的測量數(shù)據(jù)可達到3.5 MB,,一年的數(shù)據(jù)量可為1.25 GB,。對這樣大量的數(shù)據(jù)的插入,、查詢等操作就必需使用數(shù)據(jù)庫進行管理。
    SQLite是一款優(yōu)秀的數(shù)據(jù)庫,,其具有零配置,、無需安裝、數(shù)據(jù)庫存儲與機器字節(jié)順序無關(guān),、速度快等特點[4],,同時也是開源軟件,其全部源代碼約為3萬多行C代碼,,并且可以嵌入到程序當中,。因此采用SQLite作為數(shù)據(jù)匯聚器的數(shù)據(jù)庫系統(tǒng)
    為了避免采用一個數(shù)據(jù)庫文件來存儲所有的監(jiān)測數(shù)據(jù)信息,使用在對查詢某時間段的數(shù)據(jù)時因為一張大的數(shù)據(jù)庫表而造成速度上的減慢,。系統(tǒng)采用分割文件的形式來存放測量數(shù)據(jù),,為每一個月所存數(shù)據(jù)形成一個數(shù)據(jù)庫文件,數(shù)據(jù)庫的結(jié)構(gòu)如表1,。

    另有一個數(shù)據(jù)庫文件用來存放監(jiān)測儀器的相關(guān)信息,,結(jié)構(gòu)如表2。

2.3 軟件實現(xiàn)
    數(shù)據(jù)匯聚器的軟件運行流程如圖4所示,,當設(shè)備上電啟動之后進入系統(tǒng)的初始化階段,。在初始化階段包括了AT91系列特有的BootStrap程序、U-boot以及Linux的內(nèi)核,,它們分別是一級引導(dǎo)另一級的系統(tǒng)的啟動[5],。到最后的Linux內(nèi)核啟動后,就會加載在Nand Flash中的基本文件系統(tǒng),,從“/app/”目錄中加載數(shù)據(jù)匯聚器的守護程序,,從而進入不斷運行的調(diào)度中心,。

    為了保證系統(tǒng)的可靠性及穩(wěn)定性,防止程序意外地進入死循環(huán),,使用了看門狗技術(shù),,每隔30 s必須執(zhí)行一次喂狗操作。當意外錯誤發(fā)生并導(dǎo)致整個系統(tǒng)崩潰后,,看門狗便自動復(fù)位系統(tǒng),,防止設(shè)備因一次故障而無法再次工作。
    在調(diào)度中心,,從儀器數(shù)據(jù)庫中加載每一個連接儀器對應(yīng)的采集配置,,主要是提取其采集周期,使得程序可以可靠并定時地對各監(jiān)測儀器進行自動數(shù)據(jù)采集,。數(shù)據(jù)采集模塊根據(jù)儀器的類型調(diào)用對應(yīng)的儀器操作函數(shù)庫通過RS485接口與儀器進行通信,,并獲得儀器所測量到的數(shù)據(jù),得到數(shù)據(jù)后會將其分別存儲到數(shù)據(jù)庫及緩沖區(qū)中,。
    同時,,調(diào)度中心還會一直偵聽上位監(jiān)測機的數(shù)據(jù)請求,從而在SQLite數(shù)據(jù)庫或存取緩沖區(qū)中提取所需要的測量數(shù)據(jù),。存取緩沖區(qū)存放了最近一個小時內(nèi)所有儀器的測量數(shù)據(jù),,當上位監(jiān)測機所請求的數(shù)據(jù)是在這一范圍內(nèi)時,則會從存取緩沖區(qū)中提供,,從而提高了響應(yīng)的速度,。
    文中論述了分布式大壩監(jiān)測系統(tǒng)的組織結(jié)構(gòu)及數(shù)據(jù)匯聚器在其中的作用。嵌入式數(shù)據(jù)庫的引入,,可以提高對監(jiān)測數(shù)據(jù)存儲,、查詢的效率以及可靠性,通過與分布式的存儲方式及互聯(lián)網(wǎng)相結(jié)合,,方便地實現(xiàn)了多監(jiān)測上位機的數(shù)據(jù)共享,,同時在一定程度上簡化了大壩監(jiān)測系統(tǒng)的復(fù)雜度。
參考文獻
[1] 沈振中,,陳允平,,王成.大壩安全實時監(jiān)控和預(yù)警系統(tǒng)的研制和開發(fā)[J].水利水電科技進展,2010,,30(6):68-69.
[2] 葉慧聰,,戴瑜興,劉玉芳.分布式大壩安全監(jiān)測數(shù)據(jù)采集系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,,2010(5):44-45.
[3] 梁志剛.基于AT91SAM9261的嵌入式Linux的移植及其應(yīng)用研究[D].浙江工業(yè)大學(xué),,2009.
[4] 萬瑪寧,關(guān)永,,韓相軍.嵌入式數(shù)據(jù)庫典型技術(shù)SQLite和Berkeley DB的研究[J].微計算機信息,,2006(1-2).
[5] 黃深喜,,樊曉平,劉利方.基于AT91SAM926X的嵌入式LINUX引導(dǎo)程序設(shè)計[J].微計算機應(yīng)用,,2009,,30(10):69-71.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。