《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于嵌入式數(shù)據(jù)庫的分布式大壩監(jiān)測數(shù)據(jù)匯聚器設計
基于嵌入式數(shù)據(jù)庫的分布式大壩監(jiān)測數(shù)據(jù)匯聚器設計
來源:電子技術應用2011年第5期
沈 雁,戴瑜興,湯 睿
湖南大學 電氣與信息工程學院,湖南 長沙410082
摘要: 采用ARM9及嵌入式數(shù)據(jù)庫設計開發(fā)了基于分布式技術的大壩監(jiān)測系統(tǒng)的數(shù)據(jù)匯聚器,論述了分布式大壩監(jiān)測系統(tǒng)的結構及數(shù)據(jù)匯聚器的作用。重點研究了數(shù)據(jù)匯聚器的硬件構成、軟件平臺以及采用SQLite數(shù)據(jù)庫的軟件實現(xiàn)。該設備可以有效地應用于大壩的安全監(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)測便成了其中的重要部分,因為大壩在投入使用之后始終存在著安全隱患,隨時都有可能威脅到下游人民的生命財產安全。電子及計算機技術的不斷發(fā)展,使得對大壩的自動化監(jiān)測成為可能。筆者從分布式的角度出發(fā),引入嵌入式數(shù)據(jù)庫[1],設計開發(fā)大壩安全監(jiān)測所用的數(shù)據(jù)匯聚器,為自動化的大壩監(jiān)測系統(tǒng)提供有力的支持。
1 數(shù)據(jù)匯集器的系統(tǒng)結構
1.1 分布式大壩監(jiān)測系統(tǒng)結構

    大壩監(jiān)測安全采用分布式設計,由上位監(jiān)測機、局域網或互聯(lián)網、數(shù)據(jù)匯聚器、RS-485總線、DAM數(shù)據(jù)模塊、監(jiān)測儀器組成,如圖1所示。各種監(jiān)測儀器使用傳感器將采集的信號如電流、電壓等經過處理后變成可以識別和計算的數(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)測可以是局域網,一般應用于對一個單獨的大壩進行監(jiān)測,也可以將數(shù)據(jù)匯聚器接入互聯(lián)網,使得可以通過遠程訪問或對多個大壩進行統(tǒng)一的監(jiān)測。在數(shù)據(jù)匯聚器與監(jiān)測儀器之間采用帶有屏蔽層的RS-485同纜電纜,從而保證了在大壩復雜環(huán)境下數(shù)據(jù)的正常傳輸。

1.2 數(shù)據(jù)匯集器的硬件結構
    數(shù)據(jù)匯集器是整個大壩監(jiān)測系統(tǒng)的數(shù)據(jù)存儲中心,同時還具有TCP到RS-485的轉換功能,使得上位監(jiān)測機在需要時可以直接對監(jiān)測儀器進行操作,其結構框圖如圖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的內核,而大容量的Nand Flash用于實現(xiàn)Linux所需的基本文件系統(tǒng)[3]。以太網芯片采用DM9000A與局域網及互聯(lián)網通信。所有的數(shù)據(jù)均采用SD卡存儲,因此設計了SD卡的接口,可以實現(xiàn)數(shù)據(jù)SD卡的隨時更改及存檔。設計了簡單的按鍵及液晶,用來實現(xiàn)對RS485參數(shù)及TCP/IP參數(shù)的配置操作。數(shù)據(jù)匯集器所接的設備可以達到16個,所以AT91SAM9261自身提供的串口遠遠不夠,通過采用ALTERA公司的EPxxxx型FPGA來完成UART功能接口的擴展,將串口接口擴展至16個。

 

 

2 應用SQLite的數(shù)據(jù)匯聚器軟件設計
2.1 軟件平臺架構

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

2.2 數(shù)據(jù)庫設計
    作為分布式的監(jiān)測系統(tǒng),在數(shù)據(jù)匯聚中的數(shù)據(jù)存儲非常關鍵。單個數(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é)順序無關、速度快等特點[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ù)庫的結構如表1。

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

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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。