余金遙+孫先松
摘要:為了實(shí)現(xiàn)圖像數(shù)據(jù)的遠(yuǎn)距離無(wú)線傳輸,滿足在無(wú)人干預(yù)的情況下仍然能實(shí)時(shí)獲取各種圖像信息,該文針對(duì)當(dāng)前無(wú)線傳輸?shù)亩鄻有?,進(jìn)行了基于GPRS的無(wú)線圖片傳輸?shù)难芯?。該研究采用STM32F103作為主芯片、以SIM900A作為無(wú)線傳輸模塊、OV7670進(jìn)行圖片信息的采集,詳細(xì)論述其工作原理以及圖片數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)。
關(guān)鍵詞:SIM900A;無(wú)線圖像傳輸;STM32F103;OV7670
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)28-0201-03
當(dāng)代電子行業(yè)和通訊技術(shù)飛速發(fā)展,無(wú)線通訊技術(shù)已經(jīng)和我們的日常生活密不可分。日常常見(jiàn)的主要有WIFI、ZigBee、bluetooth等無(wú)線通信技術(shù),這些技術(shù)都是以短距離傳輸為主,對(duì)于工作環(huán)境也有較高要求。而GPRS支持遠(yuǎn)距離無(wú)線傳輸,在很多環(huán)境惡劣、工作節(jié)點(diǎn)較為分散、工作距離遠(yuǎn)的場(chǎng)合被廣泛使用。
多媒體技術(shù)也是當(dāng)今社會(huì)發(fā)展的一大熱點(diǎn),科學(xué)技術(shù)的飛速發(fā)展也加快了二者的融合,為人們的生活帶來(lái)了更大的便捷。人們也不再僅僅只滿足之前的文字和語(yǔ)音信息,對(duì)圖片甚至是視頻的需求也愈發(fā)的強(qiáng)烈。所以,針對(duì)該課題的研究有著較高的實(shí)用價(jià)值,對(duì)實(shí)際應(yīng)用有著十分重要的意義。
1 總體設(shè)計(jì)方案
在平常生活當(dāng)中,我們身邊對(duì)于這種裝置的需求很小,平常所使用的都是WIFI、Bluetooth等無(wú)線技術(shù),但是在某些場(chǎng)合,比如,農(nóng)田、高速公路等相對(duì)偏遠(yuǎn)的工作環(huán)境時(shí),該遠(yuǎn)距離無(wú)線傳輸技術(shù)能起到更到的作用,在農(nóng)田里面可以用來(lái)給專家進(jìn)行遠(yuǎn)距離的現(xiàn)場(chǎng)指導(dǎo),防止災(zāi)害蔓延,高速公路上可以隨時(shí)傳回發(fā)生交通事故地段的實(shí)時(shí)圖像,以便隨時(shí)監(jiān)管。
在總體設(shè)計(jì)中,所有工作節(jié)點(diǎn)均掛有攝像頭和GPRS無(wú)線傳輸模塊,節(jié)點(diǎn)可以有規(guī)律的間隔一定時(shí)間進(jìn)行現(xiàn)場(chǎng)拍攝,也可以接受命令,受控制的進(jìn)行圖片拍攝,然后將所拍攝的圖片由無(wú)線模塊經(jīng)過(guò)GPRS網(wǎng)絡(luò)傳輸至上位機(jī)終端,這里的上位機(jī)終端,可以是手機(jī),也可以是電腦端的上位機(jī)軟件等,此處,采用電腦端的上位機(jī)軟件作為終端。
該方案主要是利用STM32芯片控制攝像頭對(duì)現(xiàn)場(chǎng)進(jìn)行拍攝,然后通過(guò)GPRS模塊發(fā)送至上位機(jī)終端,以便用戶獲取信息。
2 硬件設(shè)計(jì)
根據(jù)需求,采用STM32F103C8T6作為主芯片,該芯片具有高速,抗干擾能力強(qiáng)等優(yōu)點(diǎn),也能夠添加其他外設(shè),以便提供更多功能。攝像頭選用帶FIFO的OV7670模塊,在獲取圖片數(shù)據(jù)時(shí),直接對(duì)模塊的數(shù)據(jù)FIFO存儲(chǔ)器進(jìn)行讀操作。GPRS模塊選用SIM900A。SIM900A具有標(biāo)準(zhǔn)的AT命令接口,通過(guò)串口與芯片連接,二者可以很好進(jìn)行通信。
本次設(shè)計(jì)的原理框圖如圖1所示。該系統(tǒng)由四大模塊組成:電源供電模塊、芯片最小系統(tǒng)、GPRS模塊以及攝像頭模塊。芯片最小系統(tǒng)作為該系統(tǒng)的核心模塊,主控芯片扮演著大腦的角色,控制其他模塊的協(xié)調(diào)運(yùn)行以及圖片數(shù)據(jù)流的傳輸;電源供電系統(tǒng)通過(guò)轉(zhuǎn)換芯片得到對(duì)應(yīng)的電壓給各個(gè)模塊供電工作;整個(gè)系統(tǒng)由攝像頭模塊采集圖片數(shù)據(jù),SIM900A模塊發(fā)送圖片數(shù)據(jù)至服務(wù)器端。各個(gè)模塊具體分析如下:
1) 電源供電模塊:對(duì)于一個(gè)運(yùn)行系統(tǒng)來(lái)說(shuō),電源是一個(gè)系統(tǒng)的靈魂,電源不穩(wěn)定,或者是交流分量過(guò)大等都會(huì)嚴(yán)重影響電路運(yùn)行的穩(wěn)定性。通過(guò)查閱器件的用戶手冊(cè)可知各器件之間的工作電壓不一致,所以器件的供電得分開(kāi)得到,再考慮到由于使用了開(kāi)關(guān)電源供電,因?yàn)殚_(kāi)關(guān)電源文波較大,首先使用DC-DC模塊TPS5430得到文波較小的5V電源,如圖2所示。再將5V電源分別通過(guò)MIC29302WU和AMS1117得到4.1V和3.3V電源,分別給芯片和GPRS模塊供電,這里攝像頭和主控芯片電源一樣,都為3.3V。由于AMS1117的外圍電路較為簡(jiǎn)單,所以在此不做贅述。
GPRS模塊的電源為4.1V,由芯片MIC29302WU接上外圍器件得到,其電路圖如圖3所示,其電壓計(jì)算公式如式(1)所示。
2) 芯片最小系統(tǒng):最小系統(tǒng)由STM32F103作為核心芯片,另外加上晶振電路和復(fù)位電路。在此不過(guò)多贅述。
3) GPRS模塊:該部分實(shí)現(xiàn)數(shù)據(jù)的無(wú)線傳輸,部分電路圖如圖4所示,它通過(guò)串口UART(PA9與PA10)與主控芯片相連進(jìn)行通信,硬件上還包含卡座、天線等其他外圍電路。硬件電路主要注意GPRS模塊的供電電源為4.1V,需要經(jīng)過(guò)轉(zhuǎn)換芯片得到相應(yīng)的匹配電源才能給模塊供電。主控芯片通過(guò)串口發(fā)送對(duì)應(yīng)的AT指令,控制GPRS模塊工作、休眠、連接網(wǎng)絡(luò)以及發(fā)送數(shù)據(jù)等功能,通過(guò)GPRS網(wǎng)絡(luò)將采集的圖片發(fā)送至服務(wù)器端并顯示出來(lái)。
4) 攝像頭模塊:攝像頭模塊OV7670兼容IIC接口,通過(guò)IIC與芯片連接,主控芯片STM32F103C8T6通過(guò)IIC接口控制OV7670進(jìn)行圖像數(shù)據(jù)的采集。該攝像頭模塊引出18個(gè)引腳,包括電源、數(shù)據(jù)、時(shí)鐘等引腳,在硬件電路連接上主要注意以下兩點(diǎn):
(1) 攝像頭模塊對(duì)時(shí)鐘的要求較高,最好是通過(guò)芯片輸出一個(gè)8M的時(shí)鐘提供給模塊;
(2) IIC的data引腳一定要接上拉電阻,也可在芯片引腳配置時(shí),設(shè)置成上拉輸入,否則數(shù)據(jù)傳輸會(huì)失敗。
3 軟件設(shè)計(jì)
3.1 系統(tǒng)軟件設(shè)計(jì)
在本系統(tǒng)中,SIM900A和OV7670均為模塊化,接下來(lái)就只用再做一系列的初始化以及調(diào)用相應(yīng)模塊的函數(shù)方法即可。如圖5為軟件實(shí)現(xiàn)流程圖。
該系統(tǒng)主要工作模式如下:在連接網(wǎng)絡(luò)的情況下,服務(wù)器端下發(fā)拍照命令,GPRS模塊接收命令,然后通過(guò)串口傳遞命令到主控芯片,觸發(fā)中斷,然后芯片控制攝像頭拍攝照片,通過(guò)IIC采集圖片數(shù)據(jù),再由SIM900A將圖片發(fā)送至服務(wù)器端并將圖片顯示出來(lái)。
軟件的核心部分主要包括OV7670的圖片數(shù)據(jù)采集以及SIM900A無(wú)線數(shù)據(jù)的傳輸,該兩部分均采用模塊化處理,封裝出相應(yīng)的函數(shù)接口,在使用的時(shí)候調(diào)用對(duì)應(yīng)的接口即可。endprint
3.2 服務(wù)器端軟件設(shè)計(jì)
服務(wù)器端軟件可以對(duì)外提供網(wǎng)絡(luò)接口,SIM900A模塊可以通過(guò)GPRS網(wǎng)絡(luò)撥號(hào)與服務(wù)器連接,并通過(guò)SIM900A模塊自帶的TCP/IP網(wǎng)絡(luò)協(xié)議棧完成與服務(wù)器之間的圖片數(shù)據(jù)交互。基于以上要求,設(shè)計(jì)了通信軟件。終端設(shè)備連接至服務(wù)器,一個(gè)服務(wù)器可與多個(gè)終端設(shè)備連接,監(jiān)控多個(gè)終端數(shù)據(jù)。服務(wù)器采用普通Internet上的主機(jī)方式,作為T(mén)CP服務(wù)器端,可從外部訪問(wèn),其上運(yùn)行TCP端口監(jiān)聽(tīng)程序,接收來(lái)自移動(dòng)臺(tái)的TCP數(shù)據(jù)包,并向移動(dòng)臺(tái)發(fā)送回應(yīng)數(shù)據(jù)[4]。
3.3 SIM900A上線流程設(shè)計(jì)
SIM900A模塊對(duì)外提供串口接口,通過(guò)3線或者9線串口都能與之通信。微處理器可通過(guò)發(fā)送AT指令詢問(wèn)模塊狀態(tài)以及控制模塊做出相應(yīng)操作。軟件編程上,使用狀態(tài)機(jī)編程的方式實(shí)現(xiàn)SIM900A的上線流程,由于編寫(xiě)的程序過(guò)長(zhǎng),在此只說(shuō)明其上線流程,大致分為以下幾個(gè)步驟:(1)進(jìn)行網(wǎng)絡(luò)注冊(cè)前的準(zhǔn)備工作,包括檢查模塊以及SIM卡是否正常,和查詢SIM卡的信號(hào)值,以便進(jìn)行網(wǎng)絡(luò)注冊(cè);(2)進(jìn)行網(wǎng)絡(luò)注冊(cè)和設(shè)置GPRS業(yè)務(wù);(3)設(shè)置APN接入點(diǎn);(4)設(shè)置要連接的服務(wù)器類型和端口號(hào),進(jìn)行IP撥號(hào);(5)待連接到遠(yuǎn)端服務(wù)器成功,并進(jìn)入透?jìng)髂J胶?,可隨意發(fā)送數(shù)據(jù)。
3.4 OV7670使用設(shè)計(jì)方法
攝像頭模塊OV7670對(duì)外提供了SCCB接口,STM32F103通過(guò)該接口與之連接,通過(guò)SCCB控制模塊,輸出各種影像數(shù)據(jù)。本次采用QVGA的圖片數(shù)據(jù)格式作為輸出格式,即圖片的分辨率為320*240。
根據(jù)該攝像頭的使用手冊(cè),其工作的像素時(shí)鐘可以高達(dá)24Mhz,如果用單片機(jī)的IO口直接對(duì)數(shù)據(jù)進(jìn)行操作,數(shù)據(jù)會(huì)很容易遺漏。然而該模塊提供了數(shù)據(jù)FIFO,單片機(jī)獲取圖片數(shù)據(jù),可以通過(guò)操作該FIFO數(shù)據(jù)隊(duì)列,即可穩(wěn)定的對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě),獲取圖片數(shù)據(jù)便更加方便,這樣一來(lái)即需要單片機(jī)的IO口需要很高的讀寫(xiě)速率,也不會(huì)占用太多CPU資源??梢哉f(shuō),帶FIFO的OV7670模塊大大提高了微處理對(duì)圖像數(shù)據(jù)的收集。此次所使用的攝像頭模塊所帶有的FIFO隊(duì)列的容量是 384K 字節(jié),足夠存儲(chǔ) 2 幀 QVGA 的圖像數(shù)據(jù)。
軟件編程方面,帶FIFO的OV7670模塊的圖片數(shù)據(jù)處理如下所示:在進(jìn)行圖片數(shù)據(jù)采集之前,先對(duì)SCCB接口進(jìn)行時(shí)序的配置;然后再對(duì)攝像頭模塊相關(guān)寄存器進(jìn)行配置,比如模塊始終、輸出格式等,在配置寄存器時(shí),最好將配置過(guò)的寄存器的值通過(guò)串口打印出來(lái),確保寄存器配置的正確性;接著根據(jù)模塊使用手冊(cè)里面的模塊數(shù)據(jù)讀取時(shí)序,獲取模塊數(shù)據(jù)即可。此時(shí)獲取的模塊數(shù)據(jù),顯示出來(lái)有可能不清楚,所以還需要重新配置攝像頭焦距、分辨率等,調(diào)整設(shè)置各項(xiàng)參數(shù)從而得到清晰的圖片。對(duì)于圖片的拍攝流程,處理方式為時(shí)間片輪詢和中斷拍照方式,一方面設(shè)置定時(shí)器時(shí)間,時(shí)間輪詢到則拍照并將數(shù)據(jù)上傳至服務(wù)器;另一方面,由按鍵控制外部中斷進(jìn)行拍照。
3.5 圖片數(shù)據(jù)的處理方式
圖片數(shù)據(jù)的數(shù)據(jù)量較大,若在傳輸過(guò)程中丟掉數(shù)據(jù),會(huì)影響整個(gè)圖片的顯示。為保證數(shù)據(jù)傳輸?shù)目煽啃?,必須進(jìn)行流控制。在處理圖像數(shù)據(jù)的傳輸?shù)臅r(shí)候采用了兩種控制方法。1)數(shù)據(jù)分包法。顧名思義就是將一包數(shù)據(jù)分開(kāi)成幾包甚至是十幾包發(fā)送。分開(kāi)的每一包分別加上協(xié)議頭與協(xié)議尾,再給到串口,寫(xiě)入GPRS模塊緩沖器,由模塊通過(guò)網(wǎng)絡(luò)發(fā)送。服務(wù)器端接收數(shù)據(jù)包,再將數(shù)據(jù)整合還原成一整包數(shù)據(jù)。數(shù)據(jù)分包法保證了每一分包數(shù)據(jù)安全不遺漏的傳輸至目的地,雖然花費(fèi)的時(shí)間比較多,但是能更好地保證數(shù)據(jù)的安全傳輸,能更好地適用于數(shù)據(jù)量大的數(shù)據(jù)傳輸。2) 硬件握手法。該方法采用兩個(gè)硬件信號(hào)RTS/CTS作流控制。當(dāng)系統(tǒng)工作時(shí),通過(guò)控制串口中RTS和CTS兩個(gè)硬件信號(hào)控制數(shù)據(jù)流的發(fā)送與停止。此次采用數(shù)據(jù)分包法進(jìn)行數(shù)據(jù)的傳輸,硬件握手法在此不作過(guò)多贅述。該系統(tǒng)將從攝像頭模塊的FIFO中獲取的數(shù)據(jù)進(jìn)行分包,分若干次傳輸給SIM900A,將數(shù)據(jù)分包傳輸給服務(wù)器。
4 結(jié)束語(yǔ)
本文主要研究了一種基于GPRS網(wǎng)絡(luò)的無(wú)線圖片傳輸技術(shù),該圖像無(wú)線傳輸系統(tǒng)以ST公司的STM32F103C8T6為硬件平臺(tái),控制攝像頭模塊OV7670進(jìn)行現(xiàn)場(chǎng)拍照,并控制模塊SIM900A通過(guò)GPRS網(wǎng)絡(luò)將收集的圖片數(shù)據(jù)傳輸?shù)接脩艚K端。該系統(tǒng)能夠滿足人為遠(yuǎn)距離控制并準(zhǔn)確的得到相關(guān)實(shí)時(shí)圖片信息的要求,成本低, 維護(hù)方便,具有廣闊的應(yīng)用前景。
參考文獻(xiàn):
[1] 崔波亮, 王耀南, 等. 基于 GPRS 無(wú)線傳輸?shù)膱D像監(jiān)控終端實(shí)現(xiàn)[J]. 計(jì)算機(jī)測(cè)量與控制, 2008(12):1865-1867.
[2] 趙杰, 蓋志剛, 等. 用于海洋水文數(shù)據(jù)無(wú)線傳輸?shù)?GPRS 模塊設(shè)[J]. 氣象水文海洋儀器, 2011(4):49-52.
[3] 潘琢金,李冰,羅振,楊華. 基于 STM32 的 UART - WIFI 模塊的設(shè)計(jì)與實(shí)現(xiàn)[J]. 制造業(yè)自動(dòng)化,2015(07):1270130.
[4] 王祖林,汪文婷. GPRS傳輸靜態(tài)圖像系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子應(yīng)用技術(shù), 2006(4):37-44.
[5] 王娃女. 基于嵌入式Linux的GPRS遠(yuǎn)程監(jiān)控系統(tǒng)研究[D]. 青島:青島大學(xué),2011.
[6] 彭勝民, 周修理, 等. 基于 ARM 的土壤含水率無(wú)線傳輸系統(tǒng)設(shè)計(jì)[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào), 2009, 40(S1):241-243.
[7] 王建, 梁振濤,鄭文斌, 劉志軍. STM32 和 OV2640 的嵌入式圖像采集系統(tǒng)設(shè)計(jì)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014(09):46-8.
[8] 湯安寧, 吳才聰, 等. 農(nóng)業(yè)移動(dòng)終端無(wú)線數(shù)據(jù)傳輸技術(shù)[J]. 農(nóng)業(yè)機(jī)械學(xué)報(bào), 2009, 40(增刊):244-247.
[9] SIM900A_AT 命 令 手 冊(cè) _V1.03[EB/OL]. http://www.docin.com/p- 233740459.html.
[10] 孫作雷,童可浚,曾連蓀.基于視覺(jué)傳感模塊0V7670的顏色導(dǎo)航智能車設(shè)計(jì)[J].電子測(cè)試,2013(5):102-104.
[11] 劉良, 賴萬(wàn)昌, 等. 基于 ARM9 的 GPRS 圖像傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2010, 31(7):1477-1480.
[12] 甘志偉,閆凱.基于SIM900A的無(wú)線數(shù)據(jù)采集卡設(shè)計(jì)與實(shí)現(xiàn)[J]. 通信技術(shù),2013(1):55-58.
[13] 帶FIFO的OV7670模塊使用手冊(cè)_圖文_百度文庫(kù)[EB/OL]. https://wenku.baidu.com/view./e42aaf663968011ca3009175.html.
[14] 劉嬋媛. 基于物聯(lián)網(wǎng)的智能家居系統(tǒng)研究與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué). 2012.endprint