《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Cortex-A8的移動(dòng)在線水質(zhì)監(jiān)測(cè)平臺(tái)的研究
基于Cortex-A8的移動(dòng)在線水質(zhì)監(jiān)測(cè)平臺(tái)的研究
來源:電子技術(shù)應(yīng)用2012年第10期
吳 宇,楊 江,張 龍
浙江大學(xué) 控制科學(xué)與工程學(xué)院,浙江 杭州310027
摘要: 為實(shí)現(xiàn)大面積水域的實(shí)時(shí)監(jiān)測(cè),提出一種低成本、高實(shí)時(shí)性的移動(dòng)在線水質(zhì)監(jiān)測(cè)平臺(tái)。該平臺(tái)采用Cortex-A8為核心處理器,通過GPS模塊實(shí)時(shí)監(jiān)控平臺(tái)位置,通過GPRS技術(shù)實(shí)現(xiàn)移動(dòng)平臺(tái)與監(jiān)控中心的數(shù)據(jù)通信及控制,為保證平臺(tái)能長(zhǎng)時(shí)間在水面檢測(cè),系統(tǒng)配置了太陽能電池板。闡述了運(yùn)動(dòng)模塊的改進(jìn)和圖像的遠(yuǎn)程傳輸。實(shí)踐證明,該系統(tǒng)在江河中運(yùn)行良好,數(shù)據(jù)通信流暢,有一定的經(jīng)濟(jì)價(jià)值。
關(guān)鍵詞: Linux JPEG 無刷電機(jī) GPRS
中圖分類號(hào): TP216
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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

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

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

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

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

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

 

 

    OV7620的控制符合SCCB(Serial Camera Control Bus)協(xié)議,它是一種簡(jiǎn)化了的I2C協(xié)議,本文采用I/O模擬SCCB總線的方式來控制OV7620。編寫一個(gè)I2CSendByte()函數(shù)來寫寄存,該函數(shù)的第一個(gè)參數(shù)為OV7620的芯片地址0x42,第二個(gè)參數(shù)為片內(nèi)寄存器地址,第三個(gè)參數(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格式并存儲(chǔ)于SD卡中,當(dāng)收到相應(yīng)命令時(shí),通過GPRS無線模塊把圖像發(fā)送給監(jiān)控中心。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 操作系統(tǒng)

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

    當(dāng)調(diào)用驅(qū)動(dòng)程序時(shí),操作系統(tǒng)會(huì)自動(dòng)調(diào)用module_
init()函數(shù);退出驅(qū)動(dòng)程序時(shí),操作系統(tǒng)會(huì)自動(dòng)調(diào)用module_exit()函數(shù)以釋放系統(tǒng)資源。
    關(guān)鍵的函數(shù)如下:
    register_chrdev_region(devno,1,&Prime;ov7620&Prime;);
    /*申請(qǐng)?jiān)O(shè)備號(hào)*/
    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)體*/
    其中有一個(gè)非常重要的結(jié)構(gòu)體(即file_operations結(jié)構(gòu)體)是Linux系統(tǒng)中為應(yīng)用程序提供各種操作接口的核心結(jié)構(gòu)體,編寫驅(qū)動(dòng)的大部分工作實(shí)際上就是填充file_operations結(jié)構(gòu)體中的各個(gè)子函數(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攝像頭
中的各個(gè)寄存器,使攝像頭處于合適的工作模式*/
}
    當(dāng)應(yīng)用程序調(diào)用open函數(shù)時(shí),程序最終會(huì)調(diào)用到驅(qū)動(dòng)程序里的OV7620_open()函數(shù),從而操作硬件。其他的應(yīng)用程序的函數(shù)調(diào)用,最終也會(huì)尋找到file_operations結(jié)構(gòu)體中對(duì)應(yīng)的鉤子函數(shù),在此不再贅述。
3.3 圖像的壓縮傳輸
    為加快圖像傳輸?shù)乃俣群凸?jié)省流量,本文采用JPEG的圖像壓縮方式。在JPEG算法中,通常是將圖像分成一個(gè)個(gè)8&times;8的圖像子塊,對(duì)每一個(gè)圖像子塊進(jìn)行離散余弦變換。所使用的二維離散余弦變換(DCT)公式如下[7]:

    JPEG圖像壓縮在Linux操作系統(tǒng)中的具體實(shí)現(xiàn)方式為:在工程文件夾下一次拷貝libjpeg.lib、jconfig、jmorecfg.h、jpeglib.h這4個(gè)文件;然后在主程序所在的#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ù)來釋放壓縮過程中申請(qǐng)的資源。壓縮效果如圖6所示,壓縮(上接第36頁)
前圖片大小為850 KB,壓縮后圖片大小為45 KB,可見采用JPEG壓縮效果十分明顯。

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

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