《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Cortex-A8的移動在線水質(zhì)監(jiān)測平臺的研究
基于Cortex-A8的移動在線水質(zhì)監(jiān)測平臺的研究
來源:電子技術(shù)應(yīng)用2012年第10期
吳 宇,楊 江,張 龍
浙江大學(xué) 控制科學(xué)與工程學(xué)院,浙江 杭州310027
摘要: 為實現(xiàn)大面積水域的實時監(jiān)測,提出一種低成本、高實時性的移動在線水質(zhì)監(jiān)測平臺。該平臺采用Cortex-A8為核心處理器,通過GPS模塊實時監(jiān)控平臺位置,通過GPRS技術(shù)實現(xiàn)移動平臺與監(jiān)控中心的數(shù)據(jù)通信及控制,為保證平臺能長時間在水面檢測,系統(tǒng)配置了太陽能電池板。闡述了運動模塊的改進(jìn)和圖像的遠(yuǎn)程傳輸。實踐證明,該系統(tǒng)在江河中運行良好,數(shù)據(jù)通信流暢,有一定的經(jīng)濟(jì)價值。
關(guān)鍵詞: Linux JPEG 無刷電機(jī) GPRS
中圖分類號: TP216
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)10-0034-03
Research of mobile water quality monitoring platform based on Cortex-A8
Wu Yu,Yang Jiang,Zhang Long
College of Control Science and Engineering, Zhejiang University,Hangzhou 310027,China
Abstract: In order to achieve real-time monitoring of large-area water, this paper proposes a low-cost real-time mobile water quality monitoring platform. The platform uses Cortex-A8 processor, it achieves real-time monitoring of platform position through GPS module ,data communication and control of the mobile platform ordering by the monitoring center through the GPRS technology. In order to ensure that the platform can do long time job on water, the system deploys solar panels.This paper mainly describes the improvement of the motion module and the remote transmission of images .Practice proves that the system works well in water with smooth data communication, which reflects a certain economic value of this system.
Key words : Linux;JPEG;brushless motor;GPRS

    隨著我國工業(yè)發(fā)展,水污染問題日益突出,對水質(zhì)進(jìn)行監(jiān)測越來越重要。2000年我國自主生產(chǎn)的“長江水環(huán)檢測2000”[1],因其檢測船造價昂貴,難以在全國推廣。電子技術(shù)的發(fā)展,使得以更微型、更廉價的方式制造出類似“長江2000”監(jiān)測船功能的在線水質(zhì)監(jiān)測平臺成為可能。因此,本文提出了以德州儀器2012年最新發(fā)布的以低功耗且價格敏感的工業(yè)用芯片AM3359為核心處理器的移動在線水質(zhì)監(jiān)測平臺。該平臺可以實現(xiàn)水域中的任意移動、平臺的經(jīng)緯度實時監(jiān)測、水樣本的自動獲取及各項水質(zhì)指標(biāo)的檢測、圖像數(shù)據(jù)及被檢水質(zhì)數(shù)據(jù)的無線傳輸。平臺配備了柔性太陽能電池板、12 V蓄電池以及相應(yīng)的電源控制電路,可實現(xiàn)蓄電池的自動充電。

1 系統(tǒng)構(gòu)成
    整個系統(tǒng)主要由移動平臺和監(jiān)控中心兩部分組成。監(jiān)控中心主要由基于PC機(jī)的上位機(jī)軟件和算法組成。移動平臺包括核心處理器、電源模塊以及各種功能模塊。核心處理器采用AM3359低功耗芯片,它是一款基于Cortex-A8內(nèi)核的高性能低價格(約5美元一片)工業(yè)型芯片,具有720 MHz的主頻,采用32 bit RISC精簡指令,具有12 bit高精度ADC、3路增強(qiáng)型的PWM通道、SGX530圖像引擎,支持ddr2和ddr3內(nèi)存,支持最新的Linux和Wince操作系統(tǒng),功耗低至7 mW。功能模塊包括水質(zhì)測量模塊、圖像采集模塊、電源模塊、電機(jī)控制模塊、GPS定位模塊、GPRS無線傳輸模塊、電子羅盤方向?qū)Ш侥K、超聲波測障模塊。
    水質(zhì)監(jiān)測平臺系統(tǒng)構(gòu)成圖如圖1所示。

2 硬件設(shè)計
    在圖1中,電子羅盤模塊采用霍尼韋爾公司推出的3軸數(shù)字羅盤HMC5883;GPS模塊和GPRS模塊采用SIMCom公司最新推出的sim908模塊,該模塊把GPS和GPRS集成到一起,由AT指令控制;水質(zhì)采樣模塊使用2個小型水泵,通過I/O口控制繼電器實現(xiàn)水泵的抽水和排水;太陽能充電模塊采用CN3063太陽能充電管理芯片。這些模塊在應(yīng)用時十分簡單,本文不詳細(xì)闡述。本文將重點介紹運動控制模塊的改進(jìn)和基于Linux操作系統(tǒng)的圖像采集與傳輸。
2.1 運動控制模塊設(shè)計
    本設(shè)計選用無刷直流電機(jī)作為運動控制模塊的核心部件,選用IR21365和GIB10B60KD1構(gòu)成無刷電機(jī)的驅(qū)動電路。無刷電機(jī)由于沒有電刷,壽命比有刷電機(jī)提高了6倍,同時還具有結(jié)構(gòu)簡單、性能可靠、永無磨損、空載電流小、過載能力大等優(yōu)點[2-3]。運動控制模塊結(jié)構(gòu)框圖如圖2所示。

2.2 硬件邏輯防短路電路設(shè)計
    軟件邏輯上的錯誤可能導(dǎo)致與電機(jī)某相連接的上下兩只IGBT管同時導(dǎo)通,使電路出現(xiàn)短路[4],引起電流過大而燒壞IGBT管。對此,本文通過“與非門”搭建一個電路,使得當(dāng)與上下兩只IGBT管柵極相連的PWM波引腳都為高電平時,與電機(jī)相連的相不導(dǎo)通。由于電機(jī)三相存在對稱性,這里僅取電機(jī)的A相來分析硬件上如何防止上下兩只IGBT管同時導(dǎo)通,其原理圖如圖3所示。

    由于IR2136S只是增強(qiáng)信號的驅(qū)動能力,不改變信號邏輯上的值,因此從邏輯上說Q1′和Q1、Q2′和Q2是一樣的。根據(jù)本文的設(shè)計,當(dāng)Q1′、Q2′為低電平時,相應(yīng)的IGBT管為導(dǎo)通狀態(tài),其真值表如表1所示。
      由表1可知,當(dāng)由于軟件誤操作導(dǎo)致PWM1和PWM2同時高電平或者同時低電平時,與之相連的兩個IGBT管都是截止?fàn)顟B(tài),防止了短路的發(fā)生,從硬件上有效地保護(hù)了電機(jī)。
2.3 圖像采集模塊
    本文采用OV7620 COMS攝像頭,其分辨率達(dá)到640&times;480,支持 RGB和YUV圖像數(shù)據(jù)格式。5 V電源供電,工作時功耗<120 mW,待機(jī)時功耗<10 &mu;W[5]。該模塊與微處理器的連接框圖如圖4所示。

 

 

    OV7620的控制符合SCCB(Serial Camera Control Bus)協(xié)議,它是一種簡化了的I2C協(xié)議,本文采用I/O模擬SCCB總線的方式來控制OV7620。編寫一個I2CSendByte()函數(shù)來寫寄存,該函數(shù)的第一個參數(shù)為OV7620的芯片地址0x42,第二個參數(shù)為片內(nèi)寄存器地址,第三個參數(shù)為相應(yīng)寄存器的設(shè)定值。本文設(shè)置OV7620為連續(xù)掃描、RGB原始數(shù)據(jù)16位方式輸出。用如下的函數(shù)可以完成設(shè)置:
Void Camera_Setup()
{
    I2CSendByte(0x42,0x12,0x2d);
    I2CSendByte(0x42,0x13,0x01);
    I2CSendByte(0x42,0x28,0x20);
    I2CSendByte(0x42,0x20,0x02);
}
    處理器把OV7620采集到的RGB格式的圖像數(shù)據(jù)壓縮成JPEG格式并存儲于SD卡中,當(dāng)收到相應(yīng)命令時,通過GPRS無線模塊把圖像發(fā)送給監(jiān)控中心。
3 系統(tǒng)軟件設(shè)計
3.1 操作系統(tǒng)

    本文采用具有可靠性高、源代碼開放等優(yōu)點的Linux操作系統(tǒng)。在為系統(tǒng)移植Linux操作系統(tǒng)之后,將為OV7620添加驅(qū)動程序。
    整個系統(tǒng)流程為:系統(tǒng)開機(jī)后進(jìn)行初始化并創(chuàng)建各個任務(wù),任務(wù)創(chuàng)建成功后系統(tǒng)檢測GPRS緩沖區(qū)中的數(shù)據(jù)并判斷是自主導(dǎo)航還是手動導(dǎo)航。如果是手動導(dǎo)航,則系統(tǒng)直接接收遠(yuǎn)程遙控到目的地采集水樣;如果是自動導(dǎo)航,則系統(tǒng)通過GPS獲取目標(biāo)位置和當(dāng)前位置并計算運動路線。運動過程中通過超聲波不斷探測前方是否有障礙物,如果有障礙則系統(tǒng)進(jìn)行避障運動。避障后系統(tǒng)重新確定運動路線和運動方向。當(dāng)系統(tǒng)到達(dá)指定位置時便開始水質(zhì)采樣和分析以及水質(zhì)的影像采集。最后數(shù)據(jù)通過無線模塊傳輸回監(jiān)控中心。這樣就完成了一次水質(zhì)采樣。
3.2 驅(qū)動程序的編寫
    攝像頭設(shè)備屬于字符設(shè)備,它能夠像字節(jié)流一樣被訪問,并且只能夠順序讀寫[6]。添加一個設(shè)備驅(qū)動程序的標(biāo)準(zhǔn)流程如圖5所示。

    當(dāng)調(diào)用驅(qū)動程序時,操作系統(tǒng)會自動調(diào)用module_
init()函數(shù);退出驅(qū)動程序時,操作系統(tǒng)會自動調(diào)用module_exit()函數(shù)以釋放系統(tǒng)資源。
    關(guān)鍵的函數(shù)如下:
    register_chrdev_region(devno,1,&Prime;ov7620&Prime;);
    /*申請設(shè)備號*/
    cdev_init(&dev.cdev,&ov7620_fops);
    /*初始化cdev結(jié)構(gòu)體*/
    dev.cdev.owner=THIS_MODULE;
    dev.cdev.ops=&ov7620_fops;
    /*關(guān)聯(lián)cdev結(jié)構(gòu)體和file_operations結(jié)構(gòu)體*/
    cdev_add(&dev.cdev,devno,1);
    /*添加cdev結(jié)構(gòu)體*/
    其中有一個非常重要的結(jié)構(gòu)體(即file_operations結(jié)構(gòu)體)是Linux系統(tǒng)中為應(yīng)用程序提供各種操作接口的核心結(jié)構(gòu)體,編寫驅(qū)動的大部分工作實際上就是填充file_operations結(jié)構(gòu)體中的各個子函數(shù)。在本文中,攝像頭的file_operations結(jié)構(gòu)體如下:
static const struct file_operations ov7620_fops=
{
    .owner=THIS_MODULE,
    .open=ov7620_open,
    .read=ov7620_read,
    .write=ov7620_write,
    .ioctl=ov7620_ioctl,
};
    如填充ov7620_open子函數(shù)如下:
static void ov7620_open(struct inode *inode,struct file *filp)
{
    GPIO_Init();/*初始化IO口*/
    Camera_Setup();/*通過SCCB接口設(shè)置OV7620攝像頭
中的各個寄存器,使攝像頭處于合適的工作模式*/
}
    當(dāng)應(yīng)用程序調(diào)用open函數(shù)時,程序最終會調(diào)用到驅(qū)動程序里的OV7620_open()函數(shù),從而操作硬件。其他的應(yīng)用程序的函數(shù)調(diào)用,最終也會尋找到file_operations結(jié)構(gòu)體中對應(yīng)的鉤子函數(shù),在此不再贅述。
3.3 圖像的壓縮傳輸
    為加快圖像傳輸?shù)乃俣群凸?jié)省流量,本文采用JPEG的圖像壓縮方式。在JPEG算法中,通常是將圖像分成一個個8&times;8的圖像子塊,對每一個圖像子塊進(jìn)行離散余弦變換。所使用的二維離散余弦變換(DCT)公式如下[7]:

    JPEG圖像壓縮在Linux操作系統(tǒng)中的具體實現(xiàn)方式為:在工程文件夾下一次拷貝libjpeg.lib、jconfig、jmorecfg.h、jpeglib.h這4個文件;然后在主程序所在的#include &ldquo;jpeglib.h&rdquo;源文件中,調(diào)用jpeg_start_compress()函數(shù)進(jìn)行壓縮;壓縮完成后需調(diào)用jpeg_finish_compress()函數(shù)來完成壓縮;最后需要調(diào)用jpeg_destroy_compress()函數(shù)來釋放壓縮過程中申請的資源。壓縮效果如圖6所示,壓縮(上接第36頁)
前圖片大小為850 KB,壓縮后圖片大小為45 KB,可見采用JPEG壓縮效果十分明顯。

    本文介紹了以高性能Cortex-A8微處理器為核心的移動在線水質(zhì)監(jiān)測平臺的開發(fā)和系統(tǒng)的軟、硬件組成,并且對一些不足提出了改進(jìn)。實踐證明,該系統(tǒng)可長期在水域中監(jiān)測水質(zhì),并可順暢地傳輸回所在位置的水質(zhì)圖像,具有一定的應(yīng)用價值。
參考文獻(xiàn)
[1] 李飛飛,楊江.遙控式移動水質(zhì)快速監(jiān)測系統(tǒng)[DB].中國優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫,2011:6-7.
[2] 韋鯤,任軍軍.三次諧波檢測無刷直流電機(jī)轉(zhuǎn)子位置的研究[J].中國電機(jī)工程學(xué)報,2004,24(5):163-167.
[3] 黃小莉,何毅.三相直流無刷電機(jī)驅(qū)動板設(shè)計[J].機(jī)械設(shè)計與制造,2011,5(5):60-62.
[4] 讓余奇,曹彥.采用IGBT的無刷直流電動機(jī)保護(hù)技術(shù)[J]. 微特電機(jī),2004,5(5):38-40.
[5] 雷霏霖,梁志毅.基于CMOS傳感器OV7620采集系統(tǒng)設(shè)計[J].電子測量技術(shù),2008,31(12):110-112.
[6] 樊國棟,石紅瑞.嵌入式Linux下CMOS攝像頭驅(qū)動的設(shè)計與實現(xiàn)[J].工業(yè)儀表與自動化裝置,2010,3(3):68-70.
[7] 鄭凱華,章旭東.基于S3C2440的圖像采集與顯示系[J].計算機(jī)系統(tǒng)應(yīng)用,2011,20(8):225-228.

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