當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]0 引言 隨著多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展和后PC機(jī)時代的到來,利用嵌人式系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控、可視電話和視頻會議等應(yīng)用已成為可能。為了實(shí)現(xiàn)這些應(yīng)用,實(shí)時獲得視頻數(shù)據(jù)是一個重要環(huán)節(jié)。針對這一點(diǎn)本文在

0 引言
    隨著多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展和后PC機(jī)時代的到來,利用嵌人式系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程視頻監(jiān)控、可視電話和視頻會議等應(yīng)用已成為可能。為了實(shí)現(xiàn)這些應(yīng)用,實(shí)時獲得視頻數(shù)據(jù)是一個重要環(huán)節(jié)。針對這一點(diǎn)本文在嵌入式系統(tǒng)平臺上,基于Video4Linux(簡稱V4L)技術(shù),實(shí)現(xiàn)了攝像頭驅(qū)動開發(fā),詳細(xì)敘述了V4L技術(shù)和攝像頭在Blackfin536 DSP平臺上的Linux驅(qū)動程序設(shè)計。


1 Video4Linux
    V4L是Linux的影像串流系統(tǒng)與嵌入式影像系統(tǒng)的基礎(chǔ)。Linux在TV、多媒體上的應(yīng)用是目前相當(dāng)熱門的研究領(lǐng)域,而其中最關(guān)鍵的技術(shù)則是Linux的V4L。V4L是Linux kernel里支持影像設(shè)備的一組APIs,配合適當(dāng)?shù)臄z像頭與攝像頭驅(qū)動程序,可以讓我們實(shí)現(xiàn)影像采集、AM/FM無線廣播、影像CODEC、頻道切換等功能;而目前最主要的則是應(yīng)用在影像串流系統(tǒng)與嵌入式影像系統(tǒng)里,其應(yīng)用范圍相當(dāng)廣泛,例如:遠(yuǎn)距離教學(xué)系統(tǒng)、遠(yuǎn)距離診斷系統(tǒng)、視頻會議等。
    目前,V4L這套接口已發(fā)展為V4L 2,前者比后者簡單,但存在兩個不足之處:驅(qū)動程序設(shè)計時不能同時打開多個設(shè)備;現(xiàn)存的V4L API不能很好地支持帶編碼能力的設(shè)備。本文為便于研究攝像頭驅(qū)動開發(fā),還是使用V4L。
    V4L主要結(jié)構(gòu)體如下:

  

 camera_open,camera_close是打開和關(guān)閉視頻采集設(shè)備;camera_read,是讀取視頻圖像;視頻驅(qū)動主要的控制接口都是通過 ioctl來實(shí)現(xiàn)的,如圖像的格式、亮度、色度等信息都是通過ioctl函數(shù)獲取和設(shè)置的。ioctl命令部分如下:

[!--empirenews.page--]
    V4L支持兩種方式捕獲圖像:mmap(卻嬗成浞絞?和read(直接讀取方式),本系統(tǒng)采用mmap。需預(yù)先設(shè)置好圖像的大小和深度,接著使用 VIDIOCGMBUF命令,它會返回用于mmap的緩存(buffer)的大小以及每幀緩存的偏移地址(offset)。驅(qū)動程序里的映射函數(shù)為 static intbf536_v411_mmap(Struct file*filp,structvm_area_struct*vma);抓幀完成后,在應(yīng)用程序里通過內(nèi)存映射,讀取圖像數(shù)據(jù)。

2 硬件平臺
    本系統(tǒng)采用CMOS模擬傳感器,經(jīng)TI公司的TVP5150A視頻解碼芯片把模擬信號轉(zhuǎn)成 ITU-R BT.656視頻信號,再送給ADI公司的Blackfin536 DSP處理器進(jìn)行圖像處理,如圖1所示。TVP5150向DSP提供采樣時鐘信號CLK(27MHz),8根數(shù)據(jù)線傳輸內(nèi)嵌同步控制碼流的ITU-R BT.656格式的數(shù)據(jù),DSP通過I2C接口對視頻解碼器進(jìn)行配置。視頻數(shù)據(jù)由DMA搬運(yùn)到SDRAM。

3 驅(qū)動程序設(shè)計
3.1 驅(qū)動程序核心結(jié)構(gòu)體的介紹
    本系統(tǒng)的軟件平臺是嵌入式uclinux,因此,攝像頭作為一個設(shè)備驅(qū)動加載到uclinux內(nèi)核中。一般而言,每個設(shè)備驅(qū)動都會有它的核心結(jié)構(gòu)體,攝像頭驅(qū)動的核心結(jié)構(gòu)體設(shè)計如下:struct camera device

  
    該結(jié)構(gòu)體儲存了幾乎全部與攝像頭視頻圖像相關(guān)的信息。其中的結(jié)構(gòu)體videoDev和videoV4l1是與V4L相關(guān)聯(lián)的,ppiDev是與ADSP- BF537處理器硬件配置相關(guān)的,而frame[CAMERA_NUMFRAMES]則與采集時當(dāng)前視頻幀數(shù)據(jù)相關(guān)聯(lián)。此外,camera_device 該核心結(jié)構(gòu)體還定義了表示奇偶場的成員變量frame_field,表示當(dāng)前幀的抓取狀態(tài)的成員變量grabbing等。
3.2 硬件配置
    本系統(tǒng)在開發(fā)過程中,最主要的難點(diǎn)在于硬件的配置,正確配置TVP5150、PPI、DMA需要搞清楚整個攝像頭的工作原理,以及各種圖像格式的基本知識。本文主要給出PPI和DMA的幾個關(guān)鍵配置選項(xiàng)。
3.2.1 PPI配置
    TVP5150A視頻解碼芯片把模擬信號轉(zhuǎn)換成ITu-RBT.656視頻信號,ITU-R BT.656是4:2:2并行接口的數(shù)字演播室標(biāo)準(zhǔn)。對于PAL制系統(tǒng)(NTSC系統(tǒng)類似),一幀圖像包括兩場視頻數(shù)據(jù)(奇偶場),每一場圖像由四部分構(gòu)成:有效視頻數(shù)據(jù),水平消隱,垂直消隱以及控制字。而PPI接口在ITU-656輸入模式下可以支持3種數(shù)據(jù)傳輸,若選擇有效視頻數(shù)據(jù),則可以實(shí)現(xiàn)PPI 與TVP5150A解碼器的無縫連接。且傳輸?shù)挠行б曨l數(shù)據(jù)就是UYVY422格式,所以配置PPI控制寄存器為ITu-656輸入、傳輸有效視頻數(shù)據(jù)。 PPI傳輸?shù)挠行б曨l數(shù)據(jù)每場都由288行組成,每行有1440個取樣字,其中720個亮度Y取樣字,360個藍(lán)色色差Cb,360個紅色色差Cr,按 Cb、Y、Cr、Y的次序排列。而UYVY422格式數(shù)據(jù)是:每個像素點(diǎn)都取亮度值,而藍(lán)色色差和紅色色差是每兩個像素點(diǎn)才各取一個,兩者交替取,所以圖像像素是720×576。這樣可以確定ppi frame=576(整幅圖像的行數(shù))。而ppi count不用配置,因?yàn)樵贗TU-R BT.656視頻信號中有H和V信號。[!--empirenews.page--]
3.2.2 DMA配置
    本系統(tǒng)采用二維DMA來提高數(shù)據(jù)的傳輸速度,采用16位傳輸,且傳輸完一場視頻數(shù)據(jù)后產(chǎn)生中斷。dma_x_count=720(相當(dāng)于每行數(shù)據(jù)需傳輸?shù)拇螖?shù),每行720個像素點(diǎn),每個像素點(diǎn)2個字節(jié)。每行要傳720×2個字節(jié),而dma是16位傳輸,所以x_count=720)。 dma_x_modify=2(相鄰兩次傳輸數(shù)據(jù)的偏移地址,以字節(jié)為單位,因?yàn)槭?6位傳輸,所以為2)。
    由于PAL制視頻數(shù)據(jù)是隔行掃描,每幀分為奇偶兩場,兩場在時域上是分開的,但是在數(shù)據(jù)處理時需要將兩場合成一幀進(jìn)行處理,因此為了減少CPU的處理時間,可以利用DMA直接進(jìn)行場合成。在一場的傳輸中,DMA在傳輸完一行數(shù)據(jù)后,預(yù)留下一行的存儲空間,將數(shù)據(jù)存放到第三行的地址。在一場數(shù)據(jù)傳輸完后,下一場的數(shù)據(jù)就填充上一場預(yù)留的存儲空間,也是隔行存儲,這樣兩場數(shù)據(jù)就合成一幀數(shù)據(jù)了。所以,dma_y_modify=1442(一行720像素點(diǎn),占720×2字節(jié)。而一行末地址到下一行首地址還需2字節(jié)。所以720×2+2=1442)。同時,兩場數(shù)據(jù)存放的起始地址的設(shè)置間隔也是1442字節(jié)。
3.3 中斷服務(wù)子程序
    本系統(tǒng)的中斷服務(wù)子程序主要是一場數(shù)據(jù)采集完后,產(chǎn)生中斷,并根據(jù)數(shù)據(jù)的奇偶場做出相應(yīng)的處理。其流程如圖2所示。

4 結(jié)束語
    本文介紹了在Blackfin DSP和Linux的平臺下,攝像頭驅(qū)動的體系結(jié)構(gòu)和具體實(shí)現(xiàn)。此驅(qū)動由測試程序測試,可以正常工作。此驅(qū)動尚存在不足之處,那就是在驅(qū)動的抓幀過程中沒有采用乒乓操作,但是采用了兩個幀緩存來存取數(shù)據(jù),因此乒乓操作可以在上層應(yīng)用中完成。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉