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