徐潔瑩,劉云飛
(南京林業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院,江蘇 南京 210037)
無線傳感網(wǎng)絡(luò)是由大量具有通信和計(jì)算能力、廉價(jià)微型的傳感器節(jié)點(diǎn)通過自組織的無線通信方式,相互傳遞信息,協(xié)同地完成特定功能的智能網(wǎng)絡(luò),在環(huán)境監(jiān)測、安全監(jiān)控、智能家居等領(lǐng)域有著廣大的應(yīng)用空間。通過圖像信息的分析可以精確、直觀地對目標(biāo)環(huán)境實(shí)施監(jiān)測。本系統(tǒng)通過STM32F107 對攝像頭的時(shí)序控制,以及ZigBee 模塊的使用,實(shí)現(xiàn)了圖像信息在無線傳感網(wǎng)絡(luò)的實(shí)時(shí)采集和傳輸。
系統(tǒng)硬件部分主要由STM32F107、攝像頭OV7670、幀緩存器及ZigBee 模塊及其他外設(shè)組成。其中,LCD 接口主要用于圖像顯示,便于圖像采集程序的調(diào)試,SRAM 用于系統(tǒng)的數(shù)據(jù)存儲器,F(xiàn)lash 用于系統(tǒng)的程序存儲器。系統(tǒng)整體框圖如圖1 所示。
圖1 系統(tǒng)整體框圖
STM32F107 是意法半導(dǎo)體推出全新STM32 互連型系列微控制器中的一款性能較強(qiáng)產(chǎn)品,是基于Cortex-M3 內(nèi)核的32 位微控制器。工作電壓為2~3.6 V,主頻為72 MHz,片上集成256 kb 的Flash 和64 kb 的SRAM.STM32F107 擁有全速USB(OTG)接口,兩路CAN2.0B 接口,以及以太網(wǎng)10/100 MAC 模塊,并且?guī)в幸粋€(gè)ZigBee 無線網(wǎng)絡(luò)通訊接口,支持JTAG/SWD 接口的調(diào)試下載,支持IAP。此芯片可以滿足工業(yè)、醫(yī)療、樓宇自動化、家庭音響和家電市場多種產(chǎn)品需求。
OV7670 是OV 公司生產(chǎn)的一顆1/6 寸的CMOS VGA 圖像傳感器,其體積小、工作電壓低,提供單片VGA 攝像頭和影像處理器的所有功能。通過SCCB 總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率8 位影像數(shù)據(jù)。支持RawRGB、RGB(GBR4:2:2,RGB565/RGB555/RGB444),YUV(4:2:2)和YCbCr(4:2:2)輸出格式,支持VGA、CIF 和從CIF 到40* 30 的各種尺寸輸出。用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式,攝像頭與STM32 的連接如圖2所示。
圖2 OV7670 連接示意圖
由于因?yàn)镺V7670 的像素時(shí)鐘最高可達(dá)24 MHz,我們用STM32F107 的IO 口直接抓取,是非常困難并且十分占耗CPU。本系統(tǒng)通過FIFO 讀取,芯片的容量為384 k 字節(jié),足夠存儲2 幀QVGA 的圖像數(shù)據(jù)。
CC2530 芯片是TI 公司推出的嵌入式ZigBee 應(yīng)用的片上系統(tǒng),其主要支持2.4GHz IEEE 802.15.4 以及ZigBee 協(xié)議。該芯片可以非??焖俚厍袚Q到不同的運(yùn)行模式,使得其可以應(yīng)用于低功耗的相關(guān)場合。CC2530 芯片還提供了32 KB、64 KB、128 KB、256 KB 等四種不同的閃存,本系統(tǒng)選用128 KB 的閃存。本系統(tǒng)為了有效地提高CC2530 無線通訊質(zhì)量且增加通信距離,使用CC2591 芯片中的RF 端子作為射頻前端,射頻前端CC2591 外圍電路如圖3 所示。
圖3 CC2591 外圍電路
攝像頭的初始化,主要是通過SCCB 初始化相關(guān)IO 口及配置寄存器。初始化后就要進(jìn)行采集部分,本系統(tǒng)通過一個(gè)外部中斷來捕捉幀同步信號(VSYNC),在中斷服務(wù)程序里啟動OV7670 模塊的圖像數(shù)據(jù)存儲,直到下一次VSHNC 信號時(shí)就關(guān)閉數(shù)據(jù)存儲,至此完成一幀圖像存儲。在LCD 實(shí)時(shí)顯示的同時(shí)開始第二幀數(shù)據(jù)的存儲,如此循環(huán),實(shí)現(xiàn)攝像頭功能。
部分實(shí)驗(yàn)代碼如下:
攝像頭節(jié)點(diǎn)啟動后加入ZigBee 網(wǎng)絡(luò),然后低功耗偵聽捕捉中斷,接收中斷后,完成攝像頭初始化,設(shè)置好圖像的分辨率,壓縮率以及分包大小,將圖像的大小信息發(fā)送給匯聚節(jié)點(diǎn)后,等待接收匯聚節(jié)點(diǎn)的取包命令,根據(jù)取包命令中的包ID 取出相應(yīng)的數(shù)據(jù)包,最后返回低功耗偵聽模式,具體流程圖如圖4 所示。
圖4 采集傳輸流程圖
匯聚節(jié)點(diǎn)通過USB 轉(zhuǎn)串口工具連接到計(jì)算機(jī),攝像頭節(jié)點(diǎn)采集到數(shù)據(jù)后,將圖像壓縮,壓縮后的數(shù)據(jù)分包發(fā)送給匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)通過串口發(fā)送給計(jì)算機(jī),接收到的數(shù)據(jù),在上位機(jī)進(jìn)行圖像恢復(fù)。使用VC++6.0 可以編寫一個(gè)圖像恢復(fù)工具,通過使用ImageLoad.dll 動態(tài)鏈接庫可以減輕編寫多種格式圖像文件的讀寫及編碼解碼工作。將接收到的圖片數(shù)據(jù)提取出以FF D8 開始,F(xiàn)F D9 結(jié)束的JPEG 數(shù)據(jù)流,將其放入轉(zhuǎn)換框中,點(diǎn)擊“開始轉(zhuǎn)換”按鈕,得到了轉(zhuǎn)換后的圖片之后,點(diǎn)擊“保存圖片”按鈕將圖片保存。
圖5 圖像恢復(fù)
測試結(jié)果表明,本系統(tǒng)通過對攝像頭的配置,很好的解決了時(shí)序問題,能夠?qū)崿F(xiàn)圖像的實(shí)時(shí)采集,并且丟包較少,實(shí)現(xiàn)了數(shù)據(jù)在無線傳感網(wǎng)絡(luò)的傳輸,最后的圖像恢復(fù)效果也較為理想。在本系統(tǒng)的基礎(chǔ)上,可以擴(kuò)展多個(gè)節(jié)點(diǎn),設(shè)計(jì)信號調(diào)理電路,即可實(shí)現(xiàn)在無線傳感網(wǎng)絡(luò)中的多信息采集,應(yīng)用前景廣泛。
[1]馬玲玲.植物生長因子的遠(yuǎn)程圖像監(jiān)測[D].南京:南京林業(yè)大學(xué),2013.
[2]孫曉冬,莫國慶.基于ZigBee 的圖像傳輸技術(shù)研究[J].計(jì)算機(jī)與現(xiàn)代化,2012(2):108-110.
[3]崔艷麗,程鵬飛,黃曉志,等.溫室植物病害的圖像處理及特征提取方法的研究—基于色度的特征值提取研究[J].農(nóng)業(yè)工程學(xué)報(bào),2005,21(12):32-34.
[4]張西紅,角陽飛,高彥彥.基于Tinyos 的傳感器網(wǎng)絡(luò)程序?qū)嵗_發(fā)[J].無線電通信技術(shù),2009(1):55-57.
[5]潘浩,董齊芬.無線傳感器網(wǎng)絡(luò)操作系統(tǒng)TinyOS[G].北京:清華大學(xué)出版社,2011.
[6]楊順,章毅,陶康.基于ZigBee 和以太網(wǎng)的無線網(wǎng)關(guān)設(shè)計(jì)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010(1):194-197.
[7]何東健.數(shù)字圖像處理[M].第2 版.西安:西安電子科技大學(xué)出版社,2008.
[8]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2008.
[9]吉安龍.基于TinyOS 的圖像無線傳輸方法的研究[D].南京:南京理工大學(xué),2010.
[10]吳術(shù)路.基于DCT 的JPEG 圖像壓縮及實(shí)現(xiàn)[J].青海師范大學(xué)學(xué)報(bào),2010,26(3):39-41.
[11]蔡旸.JPEG 靜態(tài)圖像壓縮算法的研究[D].武漢:武漢科技大學(xué),2009.