文/張浩楠
隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,各行各業(yè)的工作場(chǎng)所安全性越來越得到重視,通過無(wú)線傳輸技術(shù)實(shí)現(xiàn)工作場(chǎng)景實(shí)時(shí)監(jiān)控,保障人員安全顯的尤為重要。然而,在一些老舊或者環(huán)境條件艱苦的工作場(chǎng)地,視頻傳輸所需線路的布線難度和成本都大大增加,為此,開發(fā)一種成本低、安裝便捷,且能通過無(wú)線通信傳輸視頻信號(hào)的監(jiān)控系統(tǒng)顯的尤為重要。在無(wú)線傳輸領(lǐng)域,現(xiàn)如今主流的傳輸技術(shù)主要有Zigbee、藍(lán)牙、Wi-Fi、蜂窩通信技術(shù)等,這些技術(shù)都有各自的優(yōu)點(diǎn)和使用場(chǎng)景。這其中Wi-Fi技術(shù)的傳輸距離相對(duì)最遠(yuǎn)可達(dá)305米,且功耗低、速率高,相對(duì)更適合于長(zhǎng)距離區(qū)域的視頻傳輸設(shè)計(jì)要求。
本設(shè)計(jì)采用STM32F407為控制核心。當(dāng)CMOS OV2640攝像頭采集到圖像數(shù)據(jù)后,通過SCCB總線傳給處理器即控制核心,之后經(jīng)SDIO接口將數(shù)據(jù)傳輸給Wi-Fi模塊,最終傳輸?shù)缴衔粰C(jī)。系統(tǒng)總體的設(shè)計(jì)框架見圖1。
無(wú)線監(jiān)控系統(tǒng)控制核心即主控芯片采用ST公司生產(chǎn)的基于ARM Cortex-M4內(nèi)核的STM32F407,其主要作用是處理圖像采集的數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)到緩存區(qū)。STM32F407最高工作頻率可達(dá)168MHz,具有1024K FLASH(閃存)和192K SRAM(靜態(tài)隨機(jī)存取存儲(chǔ)器),通信接口有15個(gè),集成有I2C接口,USART、SPI、SDIO接口等。另外,其擁有12個(gè)16位定時(shí)器和2個(gè)頻率高達(dá)168MHz的32位定時(shí)器,這些均為視頻圖像的采集、傳輸和Wi-Fi模塊等事件的中斷提供了必要保障。
無(wú)線監(jiān)控系統(tǒng)攝像頭選用OmniVision Technologies公司的CMOS OV2640攝像頭。OV2640攝像頭模塊是全集成單片1/4寸200萬(wàn)像素的CMOS圖像傳感器,像素尺寸2.2μm×2.2μm,最高支持1600×1200的分辨率,同時(shí)可以根據(jù)場(chǎng)地實(shí)際需要選擇1280×960或者640×480的分辨率。CMOS圖像傳感器體積小、工作電壓低,提供單片UXGA攝像頭和影像處理器的所有功能。此外,OV2640提供標(biāo)準(zhǔn)的SCCB接口、具有高靈敏度和自動(dòng)調(diào)節(jié)圖像參數(shù)等特點(diǎn)被,現(xiàn)已廣泛用于嵌入式拍攝系統(tǒng)的開發(fā)中。OV2640攝像頭連接接口見圖2。
選擇必聯(lián)電子的BL-R8782MS1作為Wi-Fi模組,其外觀見圖3。它是一款高性能、低功耗、體積小的SDIO接口無(wú)線模組,符合IEEE802.11N標(biāo)準(zhǔn),并向下兼容IEEE802.11B/G標(biāo)準(zhǔn),其內(nèi)部集成了MARVELL公司的88W8782芯片組,并將濾波系統(tǒng)、時(shí)鐘、電源以及存儲(chǔ)模塊集成到一個(gè)封裝里。BLR8782MS1模組的引腳中引入控制器的有10個(gè),分別為SD-DATA0、SD-DATA1、SDDATA2、SD-DATA3數(shù)據(jù)傳輸引腳,SDCLK時(shí)鐘引腳、SD-CMD命令控制引腳、PDN和RESET引腳(未使用)以及電源和接地引腳。Wi-Fi模組的傳輸模式有Ad-hoc和Infrastructure兩種模式。在應(yīng)用時(shí),可根據(jù)實(shí)際工作場(chǎng)景選用將服務(wù)器端直接連接客戶端的Ad-hoc模式,或者通過路由器做為橋接點(diǎn)進(jìn)行圖像數(shù)據(jù)傳輸?shù)腎nfrastructure模式。
本設(shè)計(jì)軟件部分主要包括:嵌入式操作系統(tǒng)的移植、攝像頭初始化及圖像的采集和傳輸、Wi-Fi無(wú)線模塊驅(qū)動(dòng)固件的設(shè)計(jì)和客戶端程序。系統(tǒng)軟件結(jié)構(gòu)采用C/S(Client/Server)模式TM32作為服務(wù)端,其編程使用keil uvision5集成開發(fā)環(huán)境。客戶端為支持Android的移動(dòng)設(shè)備,使用Android Studio開發(fā)。

圖1:視頻傳輸系統(tǒng)總體設(shè)計(jì)框架圖

圖2:OV2640攝像頭連接接口示意圖

圖3:BL-R8782MS1 Wi-Fi模組的外觀圖

圖4:Wi-Fi無(wú)線視頻傳輸系統(tǒng)的軟件架構(gòu)
本設(shè)計(jì)使用μC/OS-Ⅲ作為嵌入式操作系統(tǒng)。μC/OS-Ⅲ系統(tǒng)是一個(gè)可裁剪、可固化、可剝奪型的實(shí)時(shí)內(nèi)核,具有不受限制的管理任務(wù)數(shù)和每個(gè)優(yōu)先級(jí)的任務(wù)數(shù)的優(yōu)點(diǎn)。μC/OS-Ⅲ作為搶占式多任務(wù)的操作系統(tǒng),可以實(shí)現(xiàn)攝像頭、傳感器和Wi-Fi程序的并發(fā)有序的執(zhí)行。

圖5:應(yīng)用程序工作流程

圖6:軟件測(cè)試圖
通過SCCB總線初始化OV2640攝像頭寄存器數(shù)據(jù),設(shè)置輸出數(shù)據(jù)格式與輸出圖像大小。初始化DCMI的工作模式,包括配置時(shí)鐘,初始化IO口,初始化DMA。當(dāng)DCMI接收到數(shù)據(jù),將數(shù)據(jù)存儲(chǔ)在寄存器中,DMA從DCMI寄存器中獲取數(shù)據(jù)。其中通過capture_img()來捕獲圖像,當(dāng)獲得一幀圖像時(shí)產(chǎn)生中斷函數(shù)DCMI_IRQHandler(),隨后img_send_()函數(shù)將圖像數(shù)據(jù)發(fā)送給遠(yuǎn)程端。
如圖4是Wi-Fi無(wú)線視頻傳輸系統(tǒng)的軟件架構(gòu),攝像頭所采集到的數(shù)據(jù)經(jīng)TCP/IP協(xié)議對(duì)數(shù)據(jù)進(jìn)行封裝,傳給Wi-Fi相關(guān)的驅(qū)動(dòng)程序,再經(jīng)802.11的幀格式發(fā)送到客戶端。數(shù)據(jù)的發(fā)送需要不斷的添加首部和尾部,還有一些傳輸信息,主要目的是確保數(shù)據(jù)傳輸?shù)侥康牡亍?shù)據(jù)包經(jīng)802.11幀格式傳輸?shù)浇K端網(wǎng)卡后,需要層層的解包,即去除首尾部,得到最終的傳輸數(shù)據(jù)。
Wi-Fi網(wǎng)絡(luò)功能的實(shí)現(xiàn)需要TCP/IP協(xié)議的支持,實(shí)現(xiàn)傳輸層和網(wǎng)絡(luò)層的功能,這其中選用輕量化的Lwip來實(shí)現(xiàn)TCP/IP協(xié)議棧的功能。考慮到單片機(jī)處理器的ROM和RAM相對(duì)有限,所以使用LWIP協(xié)議棧來實(shí)現(xiàn)Wi-Fi的無(wú)線通信可以較大程度的減少內(nèi)存的使用。LWIP使用郵箱和信號(hào)量來實(shí)現(xiàn)上層應(yīng)用與協(xié)議棧間,下層Wi-Fi驅(qū)動(dòng)與協(xié)議棧間的通信。在LWIP移植中,首先完成頭文件的編寫。由于處理器的不同,LWIP協(xié)議內(nèi)部變量類型需要重新定義,還有部分的宏也要重定義。然后是網(wǎng)卡驅(qū)動(dòng)的移植,包括網(wǎng)卡的初始化函數(shù)low_level_init(),它主要用來完成網(wǎng)卡的復(fù)位及參數(shù)初始化。網(wǎng)卡數(shù)據(jù)包發(fā)送函數(shù)low_level_output(),它是將內(nèi)核數(shù)據(jù)結(jié)構(gòu)pbuf描述的數(shù)據(jù)包發(fā)送出去。low_level_input()為數(shù)據(jù)包接收函數(shù)接收到的數(shù)據(jù)包封裝為pbuf形式。完成網(wǎng)卡的移植后,需要完成LWIP內(nèi)核的初始化以及注冊(cè)網(wǎng)絡(luò)接口。完成了Wi-Fi模塊與STM32F407芯片的相關(guān)操作后,還需完成移動(dòng)端的圖像數(shù)據(jù)接收顯示功能。
無(wú)線通信使用Socket編程,在服務(wù)器端建立get_socket(),通過lwip_bind()將套接字綁定在本地地址和端口上,lwip_lieten()用來監(jiān)聽socket。客戶端通過Connect()連接服務(wù)器端綁定的IP地址和端口號(hào)。雙方建立連接之后,就響應(yīng)客戶端套接字的請(qǐng)求;Send()用于打開攝像頭,Recv()用于接收?qǐng)D像信息。應(yīng)用程序工作流程見圖5。
在局域網(wǎng)內(nèi),Wi-Fi模塊采用Ad-hoc模式。手機(jī)客戶端首先連接到Wi-Fi模塊所產(chǎn)生的熱點(diǎn),輸入正確的IP地址和端口號(hào),這里服務(wù)器的IP地址為192.168.0.38,端口號(hào)為8088,在建立連接后,手機(jī)客戶端上就能實(shí)現(xiàn)實(shí)時(shí)的視頻圖像。為了實(shí)現(xiàn)外網(wǎng)訪問,我們使用路由器作為傳輸“中介“,我們事先在下位機(jī)的程序里設(shè)置好要連接的路由器的名稱和密碼,在系統(tǒng)上電后,計(jì)算機(jī)通過串口將工作模式切換為AP模式并自動(dòng)連接設(shè)置好的路由器,隨后在手機(jī)客戶端上輸入IP地址和端口號(hào),即可建立連接,在手機(jī)終端看到圖像(圖6)。
這一基于STM32407控制系統(tǒng)的Wi-Fi無(wú)線視頻傳輸方案,在整個(gè)系統(tǒng)硬件的選擇和軟件的構(gòu)建上有效地實(shí)現(xiàn)了工作場(chǎng)所視頻圖像的在移動(dòng)終端上得以顯示的目的。本系統(tǒng)在實(shí)際測(cè)試中,手機(jī)終端基本實(shí)現(xiàn)畫面的流暢、清晰,且具有較強(qiáng)的靈活性和應(yīng)用性。可以預(yù)見,隨著我國(guó)Wi-Fi技術(shù)不斷地提升,日后的無(wú)線圖像數(shù)據(jù)處理及視頻傳輸性能將得到大大升級(jí),并將在醫(yī)療、安全、交通等領(lǐng)域發(fā)揮重要的作用。