新聞中心

        EEPW首頁 > 設計應用 > 數字無線實時視頻通信和拍攝系統設計

        數字無線實時視頻通信和拍攝系統設計

        作者: 時間:2010-09-06 來源:網絡 收藏

        引 言

        本文引用地址:http://www.104case.com/article/260801.htm

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

        下面著重講述以TMS320VC5402 為控制核心的無線系統,詳細描述與攝像芯片以及與射頻芯片這兩大部分的接口設計,分析設計中的要點,最后給出部分DSP匯編代碼。

        1 無線視頻系統的組成與工作原理

        1.1 OV9640攝像芯片簡介

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

        1.2 nRF24L01射頻芯片簡介

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

        1.3 系統硬件電路

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

        1.4 系統工作原理和流程

        1.4.1 發送端工作于視頻流模式

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

        1.4.2 發送端工作于模式

        在視頻流傳輸過程中,nRF24LOl可以同時監聽空中信號并自動應答。若收到來自接收端的拍照通知(按下按鈕),則把OV9640設定為標準模式,分辨率為l280×960(@8bit)。然后,DSP將nRF24L01設定為發送模式,并將此時的幀數據發送出去。圖像數據發送完成并等到接收確認信號后,系統將重新回到視頻流模式。若接收不成功,則nRF24LOl的自動重發功能將確保數據傳輸的完整性。

        1.4.3 接收端的工作流程

        接收端上電初始化的情況基本與發送端一致,但要將nRF2dL01(按預定地址)設定為接收模式以接收檢測信號。檢測到相符的地址后,nRF24L0l的自動應答功能會發送應答信號給發送端以確認收到信號,此時雙方“握手”成功。接著,通過INTO中斷通知DSP,使得DSP重新將 nRF24LOl設定為接收模式以接收來自發送端的連續視頻流,并且打開LCD模塊準備顯示視頻。最后DSP通過SDRAM緩沖視頻流,送給LCD顯示 (若LCD等其他后端模塊為并行接口,則需要將數據轉化成并行數據格式)。至此,系統已經能實現視頻數據的無線傳輸,實時視頻流的分辨率為 QQVGAl60×120(@13fps)。

        在視頻流的顯示過程中,若用戶按下拍照按鈕,則產生INTl中斷通知DSP,DSP會將nRF24LOl設定為發送模式并發送拍照通知信號。收到應答信號后,nRP24L0l返回接收模式準備接收圖像數據,接收完成后會自動發送確認信號以表示圖像數據接收成功。最后,DSP將圖像數據交由后端模塊處理。至此.系統實現了圖像的無線拍攝功能,拍照效果為1280×960(@130萬像素),基本上能滿足拍照要求。

        視頻系統接收端和發送端的工作流程如圖2所示。

        2 DSP的接口設計

        2.1 DSP與OV9640的接口設計

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

        值得注意的是:

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

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

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

        ④FREX為連續幀模式的允許/禁止信號,但默認為禁止。應配置DSP的HD4引腳,將其電平拉高,然后再用HD3將EXPSTB引腳置高以實現連續幀的數據輸出;將FREX置低即可返回到(單幀)拍攝模式。

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

        160×120×8=153600位/幀

        如果以nRF24L01最大的發送速度2Mbps計算,則每秒可發送

        2000000/153600≈13幀

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

        ⑥輸出數據的并一串轉換。

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

        2.2 DSP與nRF24L01的接口設計

        2.2.1 設計要點

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

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

        變,即每次執行指令后,都要將CSN置高才能繼續發送下一條指令。

        ②nRF24L01的SPI為下降沿鎖存數據,故應將McBSPl配置成“有延時的下降沿”。

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

        ④若發送端需要接收應答,則應當配置數據通道O來接收應答信號,且接收地址(RX_ADDR_PO)應當與發送地址(TX_ADDR)一致。

        ⑤芯片必須經過Standby模式才能進入TX或RX模式,故在TX和RX模式之間切換時應先將CE拉低以進入Standby模式。

        ⑥寫寄存器的指令只能在Powerdown或Standby模式下執行,故在修改寄存器值前也應當將CE拉低。

        ⑦以下的2.2.2和2.2.3均未開啟AACK和ART功能。因為系統在連續視頻流方式運行時,只要求得到高數據傳輸率以滿足實時性,而并不需要糾錯重發。但在拍攝方式下,則應該打開這兩項功能,以確保圖像數據的完整性。

        2.2.2 ESB發送數據

        ①將配置位PRIM_RX置低;

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

        ③將CE置高,開啟數據發送;

        ④數據發送完畢,產生TX_DS中斷;

        ⑤CE置低,可進入Standby模式。

        2.2.3 ESB接收數據

        ①配置位PRIM_RX置高,CE置高,則130μs后,nRF24L01開始監聽空中信號;

        ②收到合法的數據包后RX_DR產生中斷;

        ③狀態寄存器中的RX_P_NO記錄所接收的數據通道;

        ④CE置低可進入Standby模式;

        ⑤MCU通過SPI得到數據。

        2.2.4 部分程序示例

        (1)寫nRF24L01寄存器

        (2)讀nRF24L01寄存器

        (4)發送數據

        假設在(3)中已經將數據寬度定為32字節,則W_TX_PAYLOAD.macro tx_start_byte

        (5)接收數據

        同樣假設在(3)中已經將數據寬度定為32字節,則R_RX_PAYLOAD.macro rx_start_byte

        結語

        以DSP為核心的無線通信系統,在硬件上采用了高速低功耗的無線射頻芯片nRF24L01、高性能的TMS320VC5402數字信號處理芯片以及多功能的攝像芯片OV9640,使其能夠實現強大的功能,并且在軟件層次上優化設計,以縮短等待延遲和降低功耗。本系統的擴展性很強,例如,加裝語音編解碼芯片即可實現無線音頻和視頻的同步傳輸;加裝視頻壓縮芯片可以提高幀速率;同時使用兩片(或兩片以上)的無線收發芯片能實現全雙工,更能提高空中數據傳輸率;改用高分辨率的攝像芯片即可獲得更優質的視頻和圖像效果等,但也提高了硬件連線和軟件設計的難度。

        總之,無線視頻和無線圖像通信是未來無線領域的重點發展方向。本設計實現了在一定幀速率下的實時QQVGA視頻傳輸,對今后同類系統的設汁有一定的參考價值。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沐川县| 皮山县| 临澧县| 武清区| 巨野县| 扎鲁特旗| 三河市| 甘谷县| 那坡县| 盐山县| 将乐县| 卢龙县| 菏泽市| 揭西县| 张家川| 胶南市| 华蓥市| 合水县| 博湖县| 娱乐| 柞水县| 赤水市| 长葛市| 金华市| 辽宁省| 佛学| 海口市| 湖北省| 霍邱县| 长治市| 仁化县| 桦南县| 贵定县| 合山市| 大庆市| 钟祥市| 商洛市| 运城市| 龙口市| 天水市| 浮梁县|