基于STM32F107的圖像采集傳輸系統(tǒng)設(shè)計(jì)
摘要:設(shè)計(jì)一種基于ZigBee傳輸技術(shù)和JPEG圖像壓縮技術(shù)的圖像采集傳輸系統(tǒng)。以STM32F107微控制器為核心,通過(guò)攝像頭 OV7670采集到圖像后,對(duì)圖像進(jìn)行JPEG壓縮。壓縮后的數(shù)據(jù)通過(guò)ZigBee模塊傳輸?shù)缴衔粰C(jī),在上位機(jī)上進(jìn)行圖像恢復(fù)。該系統(tǒng)功耗低,工作穩(wěn)定,適合用于遠(yuǎn)程監(jiān)測(cè)的圖像采集系統(tǒng)使用。
本文引用地址:http://www.ex-cimer.com/article/201610/307227.htm關(guān)鍵詞:STM32;低功耗;OV7670;CC2530
無(wú)線傳感網(wǎng)絡(luò)是由大量具有通信和計(jì)算能力、廉價(jià)微型的傳感器節(jié)點(diǎn)通過(guò)自組織的無(wú)線通信方式,相互傳遞信息,協(xié)同地完成特定功能的智能網(wǎng)絡(luò),在環(huán)境監(jiān)測(cè)、安全監(jiān)控、智能家居等領(lǐng)域有著廣大的應(yīng)用空間。通過(guò)圖像信息的分析可以精確、直觀地對(duì)目標(biāo)環(huán)境實(shí)施監(jiān)測(cè)。本系統(tǒng)通過(guò)STM32F107對(duì)攝像頭的時(shí)序控制,以及ZigBee模塊的使用,實(shí)現(xiàn)了圖像信息在無(wú)線傳感網(wǎng)絡(luò)的實(shí)時(shí)采集和傳輸。
1 硬件設(shè)計(jì)方案
1.1 硬件系統(tǒng)結(jié)構(gòu)
系統(tǒng)硬件部分主要由STM32F107、攝像頭OV7670、幀緩存器及ZigBee模塊及其他外設(shè)組成。其中,LCD接口主要用于圖像顯示,便于圖像采集程序的調(diào)試,SRAM用于系統(tǒng)的數(shù)據(jù)存儲(chǔ)器,F(xiàn)lash用于系統(tǒng)的程序存儲(chǔ)器。系統(tǒng)整體框圖如圖1所示。
1.2 STM32F107微處理器
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ú)線網(wǎng)絡(luò)通訊接口,支持JTAG/SWD接口的調(diào)試下載,支持IAP。此芯片可以滿足工業(yè)、醫(yī)療、樓宇自動(dòng)化、家庭音響和家電市場(chǎng)多種產(chǎn)品需求。
1.3 攝像頭OV7670
OV7670是OV公司生產(chǎn)的一顆1/6寸的CMOS VGA圖像傳感器,其體積小、工作電壓低,提供單片VGA攝像頭和影像處理器的所有功能。通過(guò)SCCB總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率8位影像數(shù)據(jù)。支持RawRGB、RGB(CBR4:2:2,RGB565/RGB555/RGB444),YUV(4:2:2)和 YcbCr(4:2:2)輸出格式,支持VGA、CIF和從CIF到40*30的各種尺寸輸出。用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式,攝像頭與 STM32的連接如圖2所示。
1.4 幀緩存器AL422B
由于因?yàn)镺V7670的像素時(shí)鐘最高可達(dá)24 MHz,我們用STM32F107的IO口直接抓取,是非常困難并且十分占耗CPU。本系統(tǒng)通過(guò)FIFO讀取,芯片的容量為384k字節(jié),足夠存儲(chǔ)2幀QVGA的圖像數(shù)據(jù)。
1.5 ZigBee模塊
CC2530芯片是TI公司推出的嵌入式ZigBee應(yīng)用的片上系統(tǒng),其主要支持2.4GHz IEEE 802.15.4以及ZigBee協(xié)議。該芯片可以非常快速地切換到不同的運(yùn)行模式,使得其可以應(yīng)用于低功耗的相關(guān)場(chǎng)合。CC2530芯片還提供了32 KB、64 KB、128 KB、256 KB等四種不同的閃存,本系統(tǒng)選用128 KB的閃存。本系統(tǒng)為了有效地提高CC2530無(wú)線通訊質(zhì)量且增加通信距離,使用CC2591芯片中的RF端子作為射頻前端,射頻前端CC2591外圍電路如圖3所示。
2 軟件設(shè)計(jì)方案
2.1 攝像頭初始化及采集
攝像頭的初始化,主要是通過(guò)SCCB初始化相關(guān)IO口及配置寄存器。初始化后就要進(jìn)行采集部分,本系統(tǒng)通過(guò)一個(gè)外部中斷來(lái)捕捉幀同步信號(hào) (VSYNC),在中斷服務(wù)程序里啟動(dòng)OV7670模塊的圖像數(shù)據(jù)存儲(chǔ),直到下一次VSHNC信號(hào)時(shí)就關(guān)閉數(shù)據(jù)存儲(chǔ),至此完成一幀圖像存儲(chǔ)。在LCD實(shí)時(shí)顯示的同時(shí)開始第二幀數(shù)據(jù)的存儲(chǔ),如此循環(huán),實(shí)現(xiàn)攝像頭功能。
部分實(shí)驗(yàn)代碼如下:
2.2 無(wú)線網(wǎng)絡(luò)的搭建
攝像頭節(jié)點(diǎn)啟動(dòng)后加入ZigBee網(wǎng)絡(luò),然后低功耗偵聽捕捉中斷,接收中斷后,完成攝像頭初始化,設(shè)置好圖像的分辨率,壓縮率以及分包大小,將圖像的大小信息發(fā)送給匯聚節(jié)點(diǎn)后,等待接收匯聚節(jié)點(diǎn)的取包命令,根據(jù)取包命令中的包ID取出相應(yīng)的數(shù)據(jù)包,最后返回低功耗偵聽模式,具體流程圖如圖 4所示。
2.3 系統(tǒng)測(cè)試
匯聚節(jié)點(diǎn)通過(guò)USB轉(zhuǎn)串口工具連接到計(jì)算機(jī),攝像頭節(jié)點(diǎn)采集到數(shù)據(jù)后,將圖像壓縮,壓縮后的數(shù)據(jù)分包發(fā)送給匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)通過(guò)串口發(fā)送給計(jì)算機(jī),接收到的數(shù)據(jù),在上位機(jī)進(jìn)行圖像恢復(fù)。使用VC++6.0可以編寫一個(gè)圖像恢復(fù)工具,通過(guò)使用ImageLoad.dll動(dòng)態(tài)鏈接庫(kù)可以減輕編寫多種格式圖像文件的讀寫及編碼解碼工作。將接收到的圖片數(shù)據(jù)提取出以FF D8開始,F(xiàn)F D9結(jié)束的JPEG數(shù)據(jù)流,將其放入轉(zhuǎn)換框中,點(diǎn)擊“開始轉(zhuǎn)換”按鈕,得到了轉(zhuǎn)換后的圖片之后,點(diǎn)擊“保存圖片”按鈕將圖片保存。
3 總結(jié)
測(cè)試結(jié)果表明,本系統(tǒng)通過(guò)對(duì)攝像頭的配置,很好的解決了時(shí)序問題,能夠?qū)崿F(xiàn)圖像的實(shí)時(shí)采集,并且丟包較少,實(shí)現(xiàn)了數(shù)據(jù)在無(wú)線傳感網(wǎng)絡(luò)的傳輸,最后的圖像恢復(fù)效果也較為理想。在本系統(tǒng)的基礎(chǔ)上,可以擴(kuò)展多個(gè)節(jié)點(diǎn),設(shè)計(jì)信號(hào)調(diào)理電路,即可實(shí)現(xiàn)在無(wú)線傳感網(wǎng)絡(luò)中的多信息采集,應(yīng)用前景廣泛。
- STM32單片機(jī)中文官網(wǎng)
- STM32單片機(jī)官方開發(fā)工具
- STM32單片機(jī)參考設(shè)計(jì)
評(píng)論