国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于嵌入式Linux的USB視頻信號采集的研究

2010-10-27 01:02黃曉乾湖南交通工程職業(yè)技術(shù)學(xué)院421001
中國科技信息 2010年3期
關(guān)鍵詞:內(nèi)核嵌入式應(yīng)用程序

黃曉乾 湖南交通工程職業(yè)技術(shù)學(xué)院 421001

基于嵌入式Linux的USB視頻信號采集的研究

黃曉乾 湖南交通工程職業(yè)技術(shù)學(xué)院 421001

基于ARM體系的RISC設(shè)計思想,給出了基于ARM處理器的USB攝像頭視頻播放器的設(shè)計方案。通過基于三星公司的S3C2410A作為圖像處理和中央控制芯片硬件平臺上配置嵌入式Linux操作系統(tǒng),并將Linux上編譯好的視頻采集程序鏡像移植到硬件平臺上,來采集連接在USB接口上的USB攝像頭,并顯示在與S3C2410A相連接的液晶顯示器上。

embedded Linux operating system;USB camera head

1. 引言

隨著圖像壓縮技術(shù)的進(jìn)步,特別是MPEG-I、MPEG-II圖像壓縮芯片的大量推廣應(yīng)用,2000年至今,數(shù)字圖像采集產(chǎn)品進(jìn)入了一個快速發(fā)展時期,產(chǎn)品也由原來的數(shù)字監(jiān)控錄像主機(jī)發(fā)展到網(wǎng)絡(luò)攝像機(jī)、網(wǎng)絡(luò)傳輸設(shè)備、電話傳輸設(shè)備、專業(yè)數(shù)字硬盤錄像機(jī)等多種產(chǎn)品。無論是從國家戰(zhàn)略的高度還是從國民生產(chǎn)的具體需要,都需要研制新一代的視頻采集系統(tǒng),而超大規(guī)模集成電路和嵌入式軟硬件技術(shù)的迅猛發(fā)展,為我們找到了一種解決問題的新思路,即研制嵌入式結(jié)構(gòu)的視頻采集系統(tǒng)。

2. 系統(tǒng)總體構(gòu)成

視頻采集系統(tǒng)的應(yīng)用主要包括前端采集用的通用產(chǎn)品(有鏡頭、CCD攝像機(jī)、云臺、報警開關(guān)等)和后端的控制系統(tǒng)(主要包括主機(jī)控制設(shè)備、視頻采集卡、視頻壓縮卡、解碼器、總控設(shè)備和圖像采集軟件系統(tǒng))。

嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個部分組成[1],如圖1所示,用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能。嵌入式系統(tǒng)的組成軟硬兼施,互利互惠,融為一體,成為產(chǎn)品。芯片加軟件成為產(chǎn)品,但要開發(fā)工具輔助進(jìn)行開發(fā)。

圖1 嵌入式系統(tǒng)體系結(jié)構(gòu)

3. 硬件系統(tǒng)總體設(shè)計

由于嵌入式系統(tǒng)的高速處理特性以及在圖像信號處理中的優(yōu)勢和其它方面如技術(shù)支持和設(shè)備條件等原因,選用了三星公司的S3C2410A作為圖像處理和中央控制芯片。整個硬件電路功能框圖如圖2所示。

本設(shè)計的視頻信號采集系統(tǒng)硬件電路,主要是要在滿足視頻信號數(shù)據(jù)時序要求嚴(yán)格、數(shù)據(jù)量大、采集速度快等特點的情況下,保證數(shù)據(jù)能夠穩(wěn)定可靠的采集并實現(xiàn)壓縮,最后傳輸給計算機(jī)作進(jìn)一步處理。

圖2 系統(tǒng)硬件框圖

3.1 S3C2410處理器模塊

主控制器模塊是整個系統(tǒng)的核心,采用的S3C2410處理器是Samsung公司基于ARM920T處理器核的16 /32位微控制器[3],該處理器最高運行頻率可達(dá)到203 MHz,它的低功耗、精簡和全靜態(tài)設(shè)計特別適合于對成本和功耗敏感的應(yīng)用。S3C2410提高了豐富的片內(nèi)資源,支持Linux操作系統(tǒng),是本系統(tǒng)的合適選擇。它能完成整個系統(tǒng)的調(diào)度工作,在系統(tǒng)上電時配置所需要工作的芯片的功能寄存器,完成視頻流的編碼。

3.2 系統(tǒng)存儲電路模塊

主控制器還需一些外圍存儲單元,如Nand Flash和SDRAM。Nand Flash中包括Linux的Boodloader、系統(tǒng)內(nèi)核、文件系統(tǒng)、應(yīng)用程序以及環(huán)境變量和系統(tǒng)配置文件等。SDRAM是運行操作系統(tǒng)及各類數(shù)據(jù)的緩存。設(shè)計采用了 64M的Nand Flash和64M的SDRAM。

3. 3 外圍電路模塊

設(shè)計中還需要用到的外部設(shè)備包括USB接口、RS232接口和JTAG接口。通用串行總線(USB)設(shè)備控制器設(shè)計用DMA接口提供一個高性能完備的速率功能控制解決方案[3],視頻監(jiān)控終端的USB主控制器模塊通過專用的USB集線器與USB攝像頭相連。在實時監(jiān)控狀態(tài)下,各個攝像頭上捕獲的圖像數(shù)據(jù)通過USB集線器傳輸?shù)揭曨l監(jiān)控終端的USB主控制器模塊上,然后再由USB主控制器模塊交由S3C2410處理器集中處理。S3C2410對采集到的圖像進(jìn)行實時編碼壓縮,編碼之后的碼流直接傳輸?shù)桨l(fā)送緩沖區(qū)中,等候發(fā)送。

S3C2410A可以很方便地用UART實現(xiàn)RS232串口功能,但S3C2410A的供電電壓為1.8V/3.3V,所以I/O口的最大邏輯電平也是3.3V,要實現(xiàn)RS232串口功能還要加電平轉(zhuǎn)換電路,故用MAX3232來實現(xiàn)這一功能。

JTAG接口[4]是一個業(yè)界標(biāo)準(zhǔn),主要用于芯片測試和配置等功能,使用IEEE Std 1149. 1 聯(lián)合邊界掃描接口引腳[5]?,F(xiàn)在JTAG接口還常用于芯片的在線配置,對PLD、Flash 等器件進(jìn)行配置。為了完成系統(tǒng)的調(diào)試, 任何原型系統(tǒng)都支持J TAG配置方式,因而J TAG配置也就成為最廣泛支持的配置方式。

4 系統(tǒng)的軟件設(shè)計

嵌入式系統(tǒng)的軟件和硬件往往只需針對某種特別的應(yīng)用定制,因此嵌入式操作系統(tǒng)需要量體裁衣,除去冗余,同時盡可能發(fā)揮系統(tǒng)的潛力。Linux具有許多優(yōu)點,如開放源碼;功能強(qiáng)大的內(nèi)核,支持多用戶、多線程、多進(jìn)程、實時性好、功能強(qiáng)大穩(wěn)定,大小功能可定制,支持多種體系結(jié)構(gòu)。

嵌入式Linux的軟件設(shè)計流程如圖3所示,其中的主要內(nèi)容包括:

(1)在硬件上搭建一個軟件平臺,搭建嵌入式Linux軟件開發(fā)平臺需要完成啟動程序Bootloader移植、嵌入式Linux操作系統(tǒng)內(nèi)核移植以及嵌入式Linux操作系統(tǒng)的設(shè)備驅(qū)動程序的開發(fā)等工作。

(2)在軟件平臺的基礎(chǔ)上,開發(fā)系統(tǒng)的應(yīng)用程序。

圖3 嵌入式Linux軟件設(shè)計流程圖

4.1 配置嵌入式Linux系統(tǒng)

Linux對每一個外圍的物理設(shè)備,統(tǒng)一抽象定義為字符設(shè)備、塊設(shè)備或者網(wǎng)絡(luò)接口,可以按照規(guī)范開發(fā)驅(qū)動程序,加載成一個模塊而裝入內(nèi)核中,通過虛擬文件系統(tǒng)(VFS)等方便的管理和維護(hù)。

在Linux 2.6 內(nèi)核下進(jìn)行內(nèi)核編譯的基本步驟如下:

(1)鍵入命令make menuconfig,對內(nèi)核進(jìn)行配置,選擇YAFFS文件系統(tǒng),支持NFS啟動,系統(tǒng)使用的是USB接口的攝像頭,故要啟動USB 設(shè)備支持模塊,包括USB設(shè)備文件支持模塊、USB主控制器驅(qū)動模塊等。此外USB攝像頭屬于視頻設(shè)備,為了使應(yīng)用程序能夠訪問它,還需要啟動Video4Linux2模塊。

(2)用make dep命令生成內(nèi)核程序間依賴關(guān)系。

(3)Make zlmage命令生成內(nèi)核映像文件。

(4)Make modules 和make modules_ install命令生成系統(tǒng)可加載模塊。

這樣就生成了zlmage內(nèi)核映像文件,把它下載到目標(biāo)平臺的flash中。

4.2 視頻采集程序開發(fā)

Linux 2.6 內(nèi)核中的視頻子系統(tǒng)Video4Linux2為視頻應(yīng)用程序提供了一套統(tǒng)一的應(yīng)用程序編程接口 (Application Programming Interface,API)。通過Video4Linux2 API 進(jìn)行編程,來實現(xiàn)圖像的采集流程圖如圖4所示。

圖4 采集程序流程圖

USB攝像頭采集到的視頻數(shù)據(jù)可以直接輸出到顯示器,我們通過VIDIOC_S_WIN IOCTL為視頻輸出設(shè)備設(shè)置視頻窗口的位置和大小。在VIDIOC_S_WIN IOCTL中設(shè)置的顯示窗口寬度和高度與視頻采集設(shè)備設(shè)置的VIDIOC_S_FMT IOCTL中的值一致。

5. 結(jié)論

本文針對USB攝像頭,通過基于ARM體系的RISC設(shè)計思想,在嵌入式Linux上調(diào)用Video4Linux2 APIs編程實現(xiàn)USB攝像頭視頻采集功能。由于Linux良好的移植性,且程序的主要部分是通過調(diào)用Video4Linux2 API函數(shù)實現(xiàn),使得只需要對程序源代碼稍加修改,進(jìn)行交叉編譯后就能移植到其他USB攝像頭的嵌入式系統(tǒng)中使用。該系統(tǒng)將圖像采集、圖像處理、圖像顯示集成在一起,實用性強(qiáng),在很多領(lǐng)域都具有應(yīng)用性(如可視電話、多媒體IP電話等手持式或便攜式圖像處理設(shè)備)和研究價值。

[1] 何加銘主編. 嵌入式32位微處理器系統(tǒng)設(shè)計與應(yīng)用. 電子工業(yè)出版社. 2006年

[2] 楊繼華,嚴(yán)國萍. 基于嵌入式Linux與S3C2410平臺的視頻采集. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用. 2004,11:69-71

[3] 黃大勇,李鑒,張建正. 基于USB 2.0 接口的高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù).2007,30 (24):69 - 72

[4] SUMSUANG ELECTRONICS.S3C2410X user’s manual[Z]. Republic of Korea: Sumsang,2003,1-160

[5] IEEE Std. 1149.1-2001 ,Test Access Port and Boundary Scan Architecture,IEEE .2001

[6] 趙永勇,張永健. 基于Video4Linux的視頻圖像采集實現(xiàn). 電腦編程技巧與維護(hù)[J].2006.5: 75-77

The RISC design concept based on ARM system gives the the ARM rocessor-based USB camera, video player design. That works as : to configure an embedded Linux operating system on a hardware platform which has Samsung's S3C2410A-based image processing and central control as the chip, and transplant Linux-compiled Video Capture program image to the hardware platform to collect USB camera head connected to the USB port, then show on the LCD screen which is connected with the S3C2410A.

嵌入式Linux系統(tǒng);USB攝像頭

猜你喜歡
內(nèi)核嵌入式應(yīng)用程序
多內(nèi)核操作系統(tǒng)綜述①
Focal&Naim同框發(fā)布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機(jī)
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
活化非遺文化 承啟設(shè)計內(nèi)核
刪除Win10中自帶的應(yīng)用程序
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
谷歌禁止加密貨幣應(yīng)用程序
搭建基于Qt的嵌入式開發(fā)平臺
SKEE—— 針對ARM架構(gòu)的輕量級Linux內(nèi)核安全執(zhí)行環(huán)境
倍福 CX8091嵌入式控制器
抚顺市| 衡山县| 古田县| 黎川县| 龙南县| 多伦县| 崇左市| 五河县| 叙永县| 邻水| 吉木乃县| 东乡县| 且末县| 兴城市| 祁阳县| 惠州市| 峨眉山市| 紫云| 托里县| 行唐县| 永年县| 丘北县| 峡江县| 龙泉市| 海城市| 聂拉木县| 兴安县| 潍坊市| 调兵山市| 彭山县| 婺源县| 盐源县| 和静县| 迁安市| 新乡市| 五华县| 织金县| 怀仁县| 卓资县| 灵丘县| 司法|