<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > 數(shù)字無(wú)線實(shí)時(shí)視頻通信和拍攝系統(tǒng)設(shè)計(jì)

          數(shù)字無(wú)線實(shí)時(shí)視頻通信和拍攝系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2010-09-06 來(lái)源:網(wǎng)絡(luò) 收藏

          引 言

          本文引用地址:http://www.ex-cimer.com/article/260801.htm

          本無(wú)線系統(tǒng)基于高速率射頻芯片的系統(tǒng),且具備即時(shí)功能;在視頻(連續(xù))模式下采用QQVGA的分辨率傳輸視頻數(shù)據(jù),為160×120(@13fps),基本上能達(dá)到視頻的日的。在實(shí)際應(yīng)用中,用戶可以在接收端的LCD中觀看(遠(yuǎn)處的)發(fā)送端附近的景物。當(dāng)見到感興趣的景物時(shí),按下按鈕稍等片刻,即可得到1.3M像素的圖像,方便實(shí)用。為簡(jiǎn)化設(shè)計(jì),該系統(tǒng)只用了8位色深和RGB的數(shù)據(jù)格式,且未采用CCD攝像芯片,也未使用FPGA芯片進(jìn)行邏輯控制,節(jié)省了成本。

          下面著重講述以TMS320VC5402 為控制核心的無(wú)線系統(tǒng),詳細(xì)描述與攝像芯片以及與射頻芯片這兩大部分的接口設(shè)計(jì),分析設(shè)計(jì)中的要點(diǎn),最后給出部分DSP匯編代碼。

          1 無(wú)線視頻系統(tǒng)的組成與工作原理

          1.1 OV9640攝像芯片簡(jiǎn)介

          OV9640是美國(guó)OmniVision公司推出的高性能CM0S圖像傳感器芯片.支持130萬(wàn)像素的圖像拍照和多種分辨率,包括l280×960、VGA、QQVGA、CIF、QCIF等及多種數(shù)據(jù)輸出格式,如Raw RGB、YUV(4:2:2)、YcbCr(4:2:2)等;支持8位或16位數(shù)據(jù)輸出;通過(guò)SC-CB接口對(duì)其編程,可實(shí)現(xiàn)圖像處理的各種基本功能,譬如曝光控制、白平衡、色彩飽和、伽馬控制等;芯片電壓要求低,可應(yīng)用于嵌入式移動(dòng)設(shè)備。

          1.2 nRF24L01射頻芯片簡(jiǎn)介

          nRF24L01是挪威Nordic公司的單片無(wú)線GFSK收發(fā)芯片,工作于2.4~2.5 GHz的ISM頻段,無(wú)線傳輸率最大為2Mbps,與MCU采用SPI接口進(jìn)行控制和數(shù)據(jù)傳輸。相比其上一代產(chǎn)品nRF2401,nRF24LOl的性能更為優(yōu)越,功耗更低。它最多能支持6路數(shù)據(jù)通道,且每條通道均支持Enhanced ShockBurst(ESB)技術(shù),具備自動(dòng)應(yīng)糟(AACK)和自動(dòng)重發(fā)(ART)功能,減輕了MCU的負(fù)擔(dān),降低了無(wú)線數(shù)據(jù)的丟包率,提高了雙向傳輸?shù)男省T陂_啟ESB的情況下,nRF24L0l發(fā)送完數(shù)據(jù)包后將自動(dòng)切換到接收模式以等待對(duì)方的應(yīng)答.并會(huì)根據(jù)寄存器的設(shè)定來(lái)實(shí)施自動(dòng)重發(fā)。

          1.3 系統(tǒng)硬件電路

          硬件電路由發(fā)送(獲取)端和接收(存儲(chǔ)顯示)端兩大部分組成,通過(guò)高速RF芯片實(shí)現(xiàn)在2.4 GHz頻段的無(wú)線鏈接。發(fā)送端以TMS320VC5402 DSP作為控制核心,OV9610攝像頭芯片作為視頻(或圖像)獲取前端,AT29LV1024 Flash ROM作為DSP自舉程序存儲(chǔ)芯片,K4S161622H IMB容量的SDRAM作為程序運(yùn)行空間以及視頻數(shù)據(jù)緩沖,視頻數(shù)據(jù)最終通過(guò)射頻芯片nRF24LOl發(fā)射出去;接收端的硬件結(jié)構(gòu)基本上與發(fā)送端一致,將前端的OV9640改換成后端的LCD顯示即可。整個(gè)系統(tǒng)的總體結(jié)構(gòu)框圖如圖1所示。

          1.4 系統(tǒng)工作原理和流程

          1.4.1 發(fā)送端工作于視頻流模式

          發(fā)送端由DSP作為核心控制芯片。DSP上電初始化,通過(guò)BootLoader把Flash ROM中的代碼加載到SDRAM中,實(shí)現(xiàn)系統(tǒng)的高速運(yùn)行以加快數(shù)據(jù)的處理速度,并將HPI接口設(shè)定為通用I/O。然后,通過(guò)McBSPO緩沖串口將 nRF24L0l設(shè)定為發(fā)送模式,把含有預(yù)定地址的數(shù)據(jù)包發(fā)送出占以檢測(cè)接收端,nRF24L01會(huì)自動(dòng)切換到等待應(yīng)答信號(hào)的模式。若存在正確的接收端 (地址相符),則nRF24L01通過(guò)INTO中斷通知DSP,使DSP重新將nRF24L01設(shè)定為發(fā)送模式,并立即對(duì)OV9640初始化,通過(guò) McBSPl緩沖串口來(lái)實(shí)現(xiàn)SCCB總線,啟動(dòng)攝像頭并設(shè)定為連續(xù)幀模式。此時(shí)的分辨率為標(biāo)準(zhǔn)QQVGA,即160×120(@8bit),最后,DSP 把從D[7:O]獲得的8位并行數(shù)據(jù)轉(zhuǎn)化為串行格式,通過(guò)SDRAM緩沖和McBSP0送給nRF24L01,將視頻數(shù)據(jù)發(fā)射出去。若沒有檢測(cè)到正確的接收端(沒有INTO中斷發(fā)生),則DSP會(huì)一直等待INTO發(fā)生或直到用戶關(guān)閉電源。

          1.4.2 發(fā)送端工作于模式

          在視頻流傳輸過(guò)程中,nRF24LOl可以同時(shí)監(jiān)聽空中信號(hào)并自動(dòng)應(yīng)答。若收到來(lái)自接收端的拍照通知(按下按鈕),則把OV9640設(shè)定為標(biāo)準(zhǔn)模式,分辨率為l280×960(@8bit)。然后,DSP將nRF24L01設(shè)定為發(fā)送模式,并將此時(shí)的幀數(shù)據(jù)發(fā)送出去。圖像數(shù)據(jù)發(fā)送完成并等到接收確認(rèn)信號(hào)后,系統(tǒng)將重新回到視頻流模式。若接收不成功,則nRF24LOl的自動(dòng)重發(fā)功能將確保數(shù)據(jù)傳輸?shù)耐暾浴?/p>

          1.4.3 接收端的工作流程

          接收端上電初始化的情況基本與發(fā)送端一致,但要將nRF2dL01(按預(yù)定地址)設(shè)定為接收模式以接收檢測(cè)信號(hào)。檢測(cè)到相符的地址后,nRF24L0l的自動(dòng)應(yīng)答功能會(huì)發(fā)送應(yīng)答信號(hào)給發(fā)送端以確認(rèn)收到信號(hào),此時(shí)雙方“握手”成功。接著,通過(guò)INTO中斷通知DSP,使得DSP重新將 nRF24LOl設(shè)定為接收模式以接收來(lái)自發(fā)送端的連續(xù)視頻流,并且打開LCD模塊準(zhǔn)備顯示視頻。最后DSP通過(guò)SDRAM緩沖視頻流,送給LCD顯示 (若LCD等其他后端模塊為并行接口,則需要將數(shù)據(jù)轉(zhuǎn)化成并行數(shù)據(jù)格式)。至此,系統(tǒng)已經(jīng)能實(shí)現(xiàn)視頻數(shù)據(jù)的無(wú)線傳輸,實(shí)時(shí)視頻流的分辨率為 QQVGAl60×120(@13fps)。

          在視頻流的顯示過(guò)程中,若用戶按下拍照按鈕,則產(chǎn)生INTl中斷通知DSP,DSP會(huì)將nRF24LOl設(shè)定為發(fā)送模式并發(fā)送拍照通知信號(hào)。收到應(yīng)答信號(hào)后,nRP24L0l返回接收模式準(zhǔn)備接收?qǐng)D像數(shù)據(jù),接收完成后會(huì)自動(dòng)發(fā)送確認(rèn)信號(hào)以表示圖像數(shù)據(jù)接收成功。最后,DSP將圖像數(shù)據(jù)交由后端模塊處理。至此.系統(tǒng)實(shí)現(xiàn)了圖像的無(wú)線拍攝功能,拍照效果為1280×960(@130萬(wàn)像素),基本上能滿足拍照要求。

          視頻系統(tǒng)接收端和發(fā)送端的工作流程如圖2所示。

          2 DSP的接口設(shè)計(jì)

          2.1 DSP與OV9640的接口設(shè)計(jì)

          該芯片使用OmniVision公司自主開發(fā)的SCCB總線進(jìn)行控制,使用三線連接。其中SCCB_E為串口允許/禁止信號(hào)線,SIO_C和 SIO_D分別為串口時(shí)鐘線和數(shù)據(jù)線。系統(tǒng)中僅對(duì)OV9640進(jìn)行控制而不需要獲知其狀態(tài),采用DSP的McBSPO端口進(jìn)行連接,其中HD3用于打開串口,BCLKX0和HDX0分別用于發(fā)送時(shí)鐘信號(hào)和控制數(shù)據(jù)。具體的硬件連線如圖3所示。

          值得注意的是:

          ①使用DSP的HPI接口連接OV9640時(shí),為了獲得場(chǎng)頻、行頻和8位視頻輸出等信號(hào),DSP的HPIENA引腳必須下拉,使得HD[7:0]能配置為通用I/o接口,才能實(shí)現(xiàn)對(duì)OV9640的啟停或工作模式控制。

          ②通過(guò)修改OV9640的寄存器COMC,將輸出大小設(shè)定為1280×960或者QQVGA。

          ③修改寄存器COMH,將輸出格式設(shè)定為8位的RGB格式,并設(shè)定為Master方式。

          ④FREX為連續(xù)幀模式的允許/禁止信號(hào),但默認(rèn)為禁止。應(yīng)配置DSP的HD4引腳,將其電平拉高,然后再用HD3將EXPSTB引腳置高以實(shí)現(xiàn)連續(xù)幀的數(shù)據(jù)輸出;將FREX置低即可返回到(單幀)拍攝模式。

          ⑤計(jì)算數(shù)據(jù)傳輸率。該芯片輸出并行8位圖像信號(hào)以及場(chǎng)頻、行頻同步信號(hào),視頻中的l幀圖像(160×120)的大小是:

          160×120×8=153600位/幀

          如果以nRF24L01最大的發(fā)送速度2Mbps計(jì)算,則每秒可發(fā)送

          2000000/153600≈13幀

          即本系統(tǒng)能以160×120(@13 fps)的速度傳輸視頻信號(hào)。

          ⑥輸出數(shù)據(jù)的并一串轉(zhuǎn)換。

          OV9640輸出8位并行數(shù)據(jù),而nRF24L01為串行接口,因而需要將并行數(shù)據(jù)串行化。8位并行數(shù)據(jù)格式為HREF、Bll、G2l、B22、 G12……,HREF、G21、R22、G23、R24……。通過(guò)編程約定發(fā)送端與接收端的時(shí)序,可將從HD[2:0]得到的PCLK、HREF和 VSYNC信號(hào)略去而無(wú)須計(jì)入無(wú)線傳輸之列。所以串行化時(shí),將每次從D[7:O]讀入的8位數(shù)據(jù)由高位到低位依次按順序放進(jìn)SDRAM緩沖中,再傳給 nRF24LOl發(fā)送出去即可。

          2.2 DSP與nRF24L01的接口設(shè)計(jì)

          2.2.1 設(shè)計(jì)要點(diǎn)

          DSP使用McBSPl與該芯片直接連接。其中CSN為SPI片選引腳,低電平有效,用DSP的XF引腳與CSN引腳連接;CE為收發(fā)模式選擇引腳,用HD7進(jìn)行高低電平控制。其他引腳的連線如圖3所示。在編程時(shí)需要注意:

          ①每次通過(guò)SPI向nRF24L01發(fā)送指令前,必須使CSN得到一次由高到低的電平跳

          變,即每次執(zhí)行指令后,都要將CSN置高才能繼續(xù)發(fā)送下一條指令。

          ②nRF24L01的SPI為下降沿鎖存數(shù)據(jù),故應(yīng)將McBSPl配置成“有延時(shí)的下降沿”。

          ③IRQ引腳為低電平有效,每次產(chǎn)生到DSP的中斷必須寫“l”來(lái)清除。

          ④若發(fā)送端需要接收應(yīng)答,則應(yīng)當(dāng)配置數(shù)據(jù)通道O來(lái)接收應(yīng)答信號(hào),且接收地址(RX_ADDR_PO)應(yīng)當(dāng)與發(fā)送地址(TX_ADDR)一致。

          ⑤芯片必須經(jīng)過(guò)Standby模式才能進(jìn)入TX或RX模式,故在TX和RX模式之間切換時(shí)應(yīng)先將CE拉低以進(jìn)入Standby模式。

          ⑥寫寄存器的指令只能在Powerdown或Standby模式下執(zhí)行,故在修改寄存器值前也應(yīng)當(dāng)將CE拉低。

          ⑦以下的2.2.2和2.2.3均未開啟AACK和ART功能。因?yàn)橄到y(tǒng)在連續(xù)視頻流方式運(yùn)行時(shí),只要求得到高數(shù)據(jù)傳輸率以滿足實(shí)時(shí)性,而并不需要糾錯(cuò)重發(fā)。但在拍攝方式下,則應(yīng)該打開這兩項(xiàng)功能,以確保圖像數(shù)據(jù)的完整性。

          2.2.2 ESB發(fā)送數(shù)據(jù)

          ①將配置位PRIM_RX置低;

          ②保持CSN為低電平,送入接收端的地址(TX_ADDR)和數(shù)據(jù)(TX_PLD);

          ③將CE置高,開啟數(shù)據(jù)發(fā)送;

          ④數(shù)據(jù)發(fā)送完畢,產(chǎn)生TX_DS中斷;

          ⑤CE置低,可進(jìn)入Standby模式。

          2.2.3 ESB接收數(shù)據(jù)

          ①配置位PRIM_RX置高,CE置高,則130μs后,nRF24L01開始監(jiān)聽空中信號(hào);

          ②收到合法的數(shù)據(jù)包后RX_DR產(chǎn)生中斷;

          ③狀態(tài)寄存器中的RX_P_NO記錄所接收的數(shù)據(jù)通道;

          ④CE置低可進(jìn)入Standby模式;

          ⑤MCU通過(guò)SPI得到數(shù)據(jù)。

          2.2.4 部分程序示例

          (1)寫nRF24L01寄存器

          (2)讀nRF24L01寄存器

          (4)發(fā)送數(shù)據(jù)

          假設(shè)在(3)中已經(jīng)將數(shù)據(jù)寬度定為32字節(jié),則W_TX_PAYLOAD.macro tx_start_byte

          (5)接收數(shù)據(jù)

          同樣假設(shè)在(3)中已經(jīng)將數(shù)據(jù)寬度定為32字節(jié),則R_RX_PAYLOAD.macro rx_start_byte

          結(jié)語(yǔ)

          以DSP為核心的無(wú)線通信系統(tǒng),在硬件上采用了高速低功耗的無(wú)線射頻芯片nRF24L01、高性能的TMS320VC5402數(shù)字信號(hào)處理芯片以及多功能的攝像芯片OV9640,使其能夠?qū)崿F(xiàn)強(qiáng)大的功能,并且在軟件層次上優(yōu)化設(shè)計(jì),以縮短等待延遲和降低功耗。本系統(tǒng)的擴(kuò)展性很強(qiáng),例如,加裝語(yǔ)音編解碼芯片即可實(shí)現(xiàn)無(wú)線音頻和視頻的同步傳輸;加裝視頻壓縮芯片可以提高幀速率;同時(shí)使用兩片(或兩片以上)的無(wú)線收發(fā)芯片能實(shí)現(xiàn)全雙工,更能提高空中數(shù)據(jù)傳輸率;改用高分辨率的攝像芯片即可獲得更優(yōu)質(zhì)的視頻和圖像效果等,但也提高了硬件連線和軟件設(shè)計(jì)的難度。

          總之,無(wú)線視頻和無(wú)線圖像通信是未來(lái)無(wú)線領(lǐng)域的重點(diǎn)發(fā)展方向。本設(shè)計(jì)實(shí)現(xiàn)了在一定幀速率下的實(shí)時(shí)QQVGA視頻傳輸,對(duì)今后同類系統(tǒng)的設(shè)汁有一定的參考價(jià)值。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();