王 超,郭顯久,2,閻笑彤(.大連海洋大學(xué) 信息工程學(xué)院,遼寧 大連 6023;2.遼寧省海洋信息技術(shù)重點實驗室,遼寧 大連 6023)
基于嵌入式Linux的養(yǎng)殖水質(zhì)監(jiān)控智能儀表的平臺設(shè)計*
王 超1,郭顯久1,2,閻笑彤1
(1.大連海洋大學(xué) 信息工程學(xué)院,遼寧 大連 116023;2.遼寧省海洋信息技術(shù)重點實驗室,遼寧 大連 116023)
介紹了一種基于嵌入式Linux的養(yǎng)殖水質(zhì)監(jiān)控智能儀表的平臺設(shè)計。該儀表通過ARM核心處理器連接其他外設(shè)功能模塊,實現(xiàn)硬件平臺搭建;通過裁剪和移植Linux內(nèi)核,完善操作系統(tǒng)和驅(qū)動程序等開發(fā),實現(xiàn)硬件平臺上成功安裝操作系統(tǒng)。該智能儀表主要用于水產(chǎn)養(yǎng)殖領(lǐng)域的各項水質(zhì)參數(shù)的監(jiān)測,能夠滿足未來養(yǎng)殖的高效率和高質(zhì)量的需要。
智能儀表;平臺設(shè)計;移植
水產(chǎn)養(yǎng)殖是我國農(nóng)業(yè)的支柱產(chǎn)業(yè)之一,近年來,水產(chǎn)養(yǎng)殖的品種和產(chǎn)量不斷增加,且養(yǎng)殖的規(guī)模越來越大,這為物聯(lián)網(wǎng)技術(shù)在水產(chǎn)養(yǎng)殖中的應(yīng)用提供了良好的條件和廣闊的發(fā)展空間。未來的水產(chǎn)養(yǎng)殖將以高成活率和高質(zhì)量為目的,實現(xiàn)這些目的的前提條件之一是要保持養(yǎng)殖水質(zhì)的穩(wěn)定性,如水溫、溶解氧、PH值和濁度等水質(zhì)參數(shù),都需要及時獲?。?]。
傳統(tǒng)的定時取樣和化學(xué)分析法獲取養(yǎng)殖水質(zhì)數(shù)據(jù),獲取不及時、可靠性低、實時操作性差且成本高,遠遠不能實現(xiàn)上述的需求。后來,人們引入了水質(zhì)實時監(jiān)測系統(tǒng),該系統(tǒng)以ZigBee、GPRS、智能水質(zhì)監(jiān)測傳感器等物聯(lián)網(wǎng)技術(shù)為手段,能實時采集養(yǎng)殖水的水位、溶解氧、PH值、溫度和濁度等參數(shù),實現(xiàn)水產(chǎn)養(yǎng)殖水質(zhì)的實時監(jiān)測[2]。但是,該系統(tǒng)主要是與上位機通信,需要一個固定的PC終端來進行遠程、實時的監(jiān)控和操作。因此,設(shè)計一種可靠的養(yǎng)殖水質(zhì)監(jiān)控系統(tǒng)的智能儀表,對養(yǎng)殖業(yè)的發(fā)展具有重大意義。
本文中的智能儀表的硬件平臺選用了天嵌公司出品的 tq2440開發(fā)板實驗平臺。該開發(fā)板的 CPU是基于ARM920T的 S3C2440芯片、512 MB的 Nand Flash和64 MB的 DDRAM、117個 I/O通用 Pin腳和 24位外部中斷源、12位的逐次逼近型A/D轉(zhuǎn)換器等,處理器資源豐富,基本滿足數(shù)據(jù)的采集和信號的轉(zhuǎn)化[3]。
1.1 智能儀表監(jiān)控平臺的架構(gòu)
平臺硬件架構(gòu)設(shè)計采用了模塊化設(shè)計模式,即各模塊之間相互獨立地掛載到控制板上,以ARM處理器為核心,協(xié)調(diào)其他各個功能模塊工作。其結(jié)構(gòu)框圖如圖1所示。
圖1 智能儀表的監(jiān)控平臺框圖
其中,ARM處理器上運行 Linux操作系統(tǒng),負責(zé)數(shù)據(jù)的采集、運算和通信等功能;圖像采集模塊是常用的USB攝像頭;水質(zhì)檢測模塊主要由采集各類參數(shù)的傳感器構(gòu)成,通過串口連接平臺,即插即用;標準輸出模塊主要是輸出處理后的數(shù)據(jù)[4]。4G無線通信模塊使用USB 4G無線網(wǎng)卡;LCD模塊作為智能儀表的輸入和輸出模塊;存儲器模塊,因板子 Flash容量不足,大存儲主要靠SD卡。
1.2 平臺系統(tǒng)的工作模式
為實現(xiàn)儀表低功耗、高效率的工作,設(shè)置了兩種工作模式:常態(tài)模式和用戶態(tài)模式。常態(tài)模式即系統(tǒng)在一般狀態(tài)下的工作模式,該模式下,儀表處于低功耗狀態(tài),多數(shù)模塊處于休眠狀態(tài),不占CPU資源。用戶模式即用戶控制儀表工作的模式,該模式下,各模塊受用戶控制搶占CPU資源工作。
攝像頭、LCD模塊應(yīng)設(shè)置為常態(tài)模式,一般處在休眠狀態(tài),當用戶向內(nèi)核進程發(fā)送喚醒消息后,模塊被內(nèi)核喚醒,才會向CPU申請資源,運行起來。4G無線網(wǎng)絡(luò)傳輸速度快,考慮通信流量的費用高,設(shè)置網(wǎng)絡(luò)模塊定時聯(lián)網(wǎng),間歇式打包發(fā)送數(shù)據(jù)。水質(zhì)監(jiān)測模塊的各個傳感器是實時采集數(shù)據(jù)的,但實際中,養(yǎng)殖水質(zhì)參數(shù)如溫度、溶解氧等是不會實時快速變化的,所以,該模塊常態(tài)模式下,設(shè)置為定時采樣,用戶可自定義采集時間,這樣既降低了功耗,同時避免采集太多冗余數(shù)據(jù)。
1.3 平臺系統(tǒng)的智能處理機制
因為該智能儀表是監(jiān)控養(yǎng)殖水質(zhì)的,所以該儀表的智能性主要體現(xiàn)在系統(tǒng)對水質(zhì)參數(shù)數(shù)據(jù)的運算處理上,即實現(xiàn)大數(shù)據(jù)處理。系統(tǒng)中先加載各個參數(shù)的標準數(shù)據(jù)庫,當模塊采集的參數(shù)數(shù)據(jù)定時被CPU采樣時,CPU會對比采樣參數(shù)和標準參數(shù):若結(jié)果沒有發(fā)生異常,CPU將數(shù)據(jù)自動保存到存儲器模塊,打包聯(lián)網(wǎng)傳送給數(shù)據(jù)庫;若比較結(jié)果發(fā)生異常,CPU立即進入異常處理模式,網(wǎng)絡(luò)模塊搶占資源聯(lián)網(wǎng),CPU向用戶發(fā)送異常警報,同時將已經(jīng)采集的數(shù)據(jù)打包發(fā)送給用戶。平臺系統(tǒng)的智能處理機制能幫助養(yǎng)殖戶及時、準確地發(fā)現(xiàn)問題所在,還可以結(jié)合用戶的專家系統(tǒng)給出一些解決問題的方法,有效降低了養(yǎng)殖風(fēng)險。
由于智能儀表的整個系統(tǒng)比較復(fù)雜,為了管理和協(xié)調(diào)好各項復(fù)雜的任務(wù),決定選用嵌入式Linux操作系統(tǒng)[5]。
結(jié)合嵌入式Linux軟件開發(fā)步驟,確定開發(fā)流程如圖2所示。
圖2 系統(tǒng)軟件開發(fā)流程圖
2.1建立Linux交叉編譯環(huán)境
首先在 PC上安裝上 Linux操作系統(tǒng)并建立適用于ARM的交叉編譯器 arm-linux-gcc。交叉編譯工具安裝包可以從網(wǎng)上獲取。建立好Linux交叉開發(fā)環(huán)境后,即可開始軟件系統(tǒng)平臺的移植了。
2.2移植Bootloader和Linux內(nèi)核
Bootloader是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。通過這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。
Bootloader的制作過程這里不做詳細介紹。不同于以往的移植方法,在tq2440平臺上,本文提出一種基于USB的移植方法,該方法操作簡單,效率高。下面以Bootloader的移植為例,給予詳細介紹。將開發(fā)板從nor_flash啟動,進入命令輸入模式,如圖3所示。
圖3 終端命令行模式圖
(1)輸入命令usbslave 130008000,開發(fā)板處于下載等待狀態(tài);
(2)進入Linux下,輸入命令dnw u-boot.bin 30008000,使用dnw將u-boot.bin文件下載到內(nèi)存地址30008000處;
(3)輸入命令nand erase 040000,擦除從0地址開始長度為40000的內(nèi)存空間;
(4)輸入命令nand write 30008000040000,從30008000地址處讀取數(shù)據(jù),寫入到0地址處,長度為40000。
說明:(1)中的subslave是啟動 USB下載的命令,上述的內(nèi)存起始地址和長度,在內(nèi)核文件中已經(jīng)固定設(shè)置,不可更改;(2)中 dnw是USB下載軟件,可以由其他USB下載軟件替換;(3)格式化內(nèi)存空間;(4)向內(nèi)存中燒寫B(tài)ootloader。
完成了Bootloader的移植以后,下面進行移植Linux內(nèi)核。
Linux內(nèi)核文件提供了大量的功能驅(qū)動文件,因此需要選擇適當?shù)哪K來裁剪內(nèi)核,配置步驟如下:
(1)make distclean,清除原有的配置文件和中間文件;
(2)make menuconfig ARCM=arm,進入內(nèi)核配置界面,按需要裁剪內(nèi)核模塊,如圖4所示。
圖4 內(nèi)核配置模式圖
(3)make uImage ARCH=arm CROSS_COMPILE= arm-linux-,編譯內(nèi)核,產(chǎn)生 uImage鏡像文件。注意,這個內(nèi)核鏡像是不帶根文件系統(tǒng)的,因調(diào)試需要,內(nèi)核中文件系統(tǒng)配置為NFS文件系統(tǒng)。
移植內(nèi)核,步驟基本重復(fù)移植U-Boot的步驟。
2.3 移植根文件系統(tǒng)
文件系統(tǒng)是操作系統(tǒng)的重要組成部分。在嵌入式Linux系統(tǒng)啟動時,首先是啟動 U-Boot引導(dǎo)程序,然后便會進入制作的文件系統(tǒng)中,如果沒有設(shè)置或掛載文件系統(tǒng),那么 Linux就會進行系統(tǒng)報錯,并重新啟動。在啟動的同時可以手動掛載新的文件系統(tǒng)。所以,可以制作多個不同的文件系統(tǒng),放在 Linux下[6]。
本文中制作的是yaffs2文件系統(tǒng)。制作好yaffs2文件鏡像后,移植到 ARM平臺上,移植步驟基本重復(fù) Bootloader移植步驟。
這3步成功燒寫到開發(fā)板上,儀表的系統(tǒng)平臺就構(gòu)建完成了,從Nand Flash啟動儀表的系統(tǒng),如圖5所示。
圖5 系統(tǒng)平臺啟動狀態(tài)圖
2.4 開發(fā)調(diào)試應(yīng)用程序
軟件應(yīng)用程序?qū)⑹褂脤iT為嵌入式Linux操作系統(tǒng)的消費電子設(shè)備而開發(fā)的應(yīng)用平臺——Qtopia構(gòu)建。Qtopia是構(gòu)建在Qt/Embeded上,專為嵌入式設(shè)備的圖形用戶接口和應(yīng)用開發(fā)而設(shè)計的C++工具包[7]。其包含有完整的應(yīng)用層、用戶界面、窗口操作系統(tǒng)、應(yīng)用程序的啟動程序和開發(fā)框架。Qt/E開發(fā)的應(yīng)用程序最終要成功在開發(fā)板上運行,開發(fā)過程一般是先在Linux系統(tǒng)上使用Qt/E進行應(yīng)用程序的編寫和調(diào)試,進行交叉編譯后下載到開發(fā)板。
本文提出了一種基于嵌入式Linux的養(yǎng)殖水質(zhì)監(jiān)控智能儀表的平臺設(shè)計。所介紹的儀表的模塊化架構(gòu)和系統(tǒng)的兩態(tài)工作模式能實現(xiàn)該智能儀表的高效率和低功耗工作。儀表的智能處理機制能有效降低養(yǎng)殖風(fēng)險。文中還給出了該平臺系統(tǒng)的一種新的基于USB的詳細移植過程,實現(xiàn)了平臺系統(tǒng)從零到操作系統(tǒng)移植的實現(xiàn)過程,讓讀者更容易理解和實現(xiàn)。同時,文中的模塊化的設(shè)計思想也可以有效地移植到其他實驗平臺上。
總體而言,該智能儀表能滿足水產(chǎn)養(yǎng)殖領(lǐng)域的各項水質(zhì)參數(shù)監(jiān)測的要求,對實現(xiàn)未來養(yǎng)殖業(yè)的高效率和高質(zhì)量具有重要意義。
[1]蔡蘇華.基于ARM的養(yǎng)殖水質(zhì)監(jiān)測系統(tǒng)的設(shè)計與研究[D].南京:南京師范大學(xué),2012.
[2]吳宇.小型移動水質(zhì)監(jiān)測系統(tǒng)的研究[D].杭州:浙江大學(xué),2013.
[3]羅志灶,周贏武,羅志仕.基于嵌入式 LINUX的智能儀表設(shè)計方案[J].微計算機信息,2010,26(10-2):73-75.
[4]曾寶國,劉美岑.基于物聯(lián)網(wǎng)的水產(chǎn)養(yǎng)殖水質(zhì)實時監(jiān)測系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2013,22(6):53-56.
[5]周桂成.嵌入式 Linux無線傳輸車載信息平臺關(guān)鍵技術(shù)研究與開發(fā)[D].長春:吉林大學(xué),2013.
[6]甄海濤,聶洪淼,陳慶文.基于嵌入式 Linux的根文件系統(tǒng)制作與移植[J].自動化技術(shù)與應(yīng)用,2014,33(12):21-24.
[7]郝超,潘思陽,張文圳.基于 ARM的短信收發(fā)系統(tǒng)的設(shè)計[J].信息技術(shù),2013(5):111-114.
A platform design of intelligent instrument about aquaculture water quality monitoring w hich based on embedded Linux
Wang Chao1,Guo Xianjiu1,2,Yan Xiaotong2
(1.Information Engineering College,Dalian Ocean University,Dalian 116023,China;2.Liaoning Key Laboratory of Marine IT,Dalian 116023,China)
This paper introduces a kind of intelligent instrument design about aquaculture water quality monitoring based on embedded Linux.This instrument is made by ARM core processor to connect to other peripherals function modules,realizing hardware platform.By cutting and transplanting Linux kernel,it improves operating system,drivers and so on,and realizes the hardware platform of system successful installation.The substance in the field of intelligent instrument is mainly used for aquaculture each parameter monitoring,and is able to meet the needs of the future breeding of high efficiency and high quality.
intelligent instrument;platform design;transplant
TP302.1
A
1674-7720(2015)22-0086-03
王超,郭顯久,閻笑彤.基于嵌入式 Linux的養(yǎng)殖水質(zhì)監(jiān)控智能儀表的平臺設(shè)計[J].微型機與應(yīng)用,2015,34(22):86-88.
2015-06-26)
國家海洋公益淺海生物項目(201205023);遼寧省科技計劃項目(2012216012)
郭顯久(1963-),通信作者,男,博士,教授,主要研究方向:物聯(lián)網(wǎng)應(yīng)用技術(shù)。E-mial:gxj@dlou.edu.cn。
王超(1990-),男,碩士研究生,主要研究方向:物聯(lián)網(wǎng)應(yīng)用技術(shù)。