O 引言
隨著嵌入式技術的迅猛發(fā)展和Linux在信息行業(yè)中的廣泛應用,視頻采集與傳輸系統(tǒng)作為遠程視頻監(jiān)控、可視電話會議和工業(yè)自動控制領域的一項核心技術,近年來已經(jīng)得到了飛速的發(fā)展。本文在基于嵌入式Linux系統(tǒng)平臺上,采用USB攝像頭捕捉視頻信號,利用V4L內(nèi)核應用編程接口函數(shù),實現(xiàn)了視頻連續(xù)幀圖像的采集,并保存成文件的形式利用無線傳輸方式傳輸給接收端。這里著重討論視頻采集發(fā)送端的實現(xiàn)。
1 系統(tǒng)組成
1.1 統(tǒng)的硬件構成
本系統(tǒng)包括發(fā)送端和接收端2部分,兩部分均采用Samsung公司生產(chǎn)的S3C2410處理器做硬件開發(fā)平臺。S3C2410在片上集成了豐富的組件:分開的16 KB指令Cache和16 KB數(shù)據(jù)Cache、用于虛擬存儲器管理的MMU、支持STN和TFT的LCD控制器、NAND Flash啟動裝載器、具有片選邏輯和SDRAM控制器的系統(tǒng)管理器、3通道UART、4通道DMA、4通道PWM定時器、I/O口、RTC、8通道10位ADC和觸摸屏接口、I2C總線接口、I2S總線接口、USB主設備、USB從設備、SD卡和MMC卡接口、2通道的SPI以及PLL時鐘發(fā)生器,還采用了AMBA(advanced micrcocontroller bus architecture)新型總線結構。
應用S3C2410處理器平臺搭建的發(fā)送端硬件結構如圖1所示:包括S3C2410處理器、RS232接口、JTAG接口、RJ-45接口、SDRMA、Flash、電源、通過USB口連接的視頻采集模塊和通過USB接口連接的視頻發(fā)射模塊。RS232串口用于人機交互及低速數(shù)據(jù)的收發(fā),應用電平轉換芯片MAX-323進行串口電平和TTL/CMOS電平的轉換。JTAG接口用于下載Bootloader。RJ-45接口用于和以太網(wǎng)連接,下載操作系統(tǒng)Linux內(nèi)核、根文件系統(tǒng)和應用軟件。SDRMA用于系統(tǒng)的數(shù)據(jù)存儲器、Flash用于系統(tǒng)的程序存儲器。
應用S3C2410處理器平臺搭建的接收端硬件電路如圖2所示:與發(fā)送終端相比,多了SD卡和LCD顯示器。SD卡主要用來存儲數(shù)據(jù),LCD顯示器主要用來顯示視頻圖像。
[!--empirenews.page--]
1.2 系統(tǒng)軟件設計
系統(tǒng)的軟件構成分為引導驅動程序、操作系統(tǒng)、文件系統(tǒng)和應用程序4部分,如圖3所示。引導驅動程序在系統(tǒng)啟動時進行內(nèi)存重映射,將保存在Flash中的操作系統(tǒng)和應用程序重新映射到SDRAM中。Linux的內(nèi)核版本為LinIix2.6。文件系統(tǒng)是Yaffs,它包括模塊、配置文件和庫等。系統(tǒng)的應用程序建立在嵌入式Linux內(nèi)核、攝像頭驅動和文件系統(tǒng)之上。
2 視頻采集的具體實現(xiàn)
USB攝像頭連接簡單、使用靈活、價格低廉且具有良好的性能,因此,得到了廣泛的應用。Linux內(nèi)核包含了多種USB攝像頭驅動,最常用的有基于OV5ll及其兼容芯片。OV511芯片主要包括CAMERA接口、DRMA接口、ISO FIFO接口和OmniCE以及USB控制器等部分。本設計使用的是在低端市場占有率較高的中芯微公司生產(chǎn)的ZC030x系列攝像頭芯片。Linux系統(tǒng)中的視頻子系統(tǒng)’Vide04linux為視頻應用程序提供了一套統(tǒng)一的API,視頻應用程序通過調(diào)用API即可操作各種不同的視頻捕獲設備,包括電視卡、視頻捕捉卡和USB攝像頭等。本設計的具體實現(xiàn)過程如下所述:
2.1 攝像頭驅動的實現(xiàn)
1)配置Vide04linux內(nèi)核
在終端使用make menuconfig命令打開S3C24lOlinux內(nèi)核編譯的main menu窗口,并進入“multimedia device———>”菜單選項,然后將Video for Linux配置為模塊,即:
Device driver———>
Multimedia devices———>
<*>Video for linux
2)配置OV511驅動
返回主菜單,在進入“USB support———>”菜單選項,然后將USB OV5llcamera support設置為模塊,即:
SUB suppor———>
<*>USB OV5llcamera support(NEW)
3)模塊安裝
執(zhí)行以下命令安裝視頻輸入模塊:
insmod videodev.o
執(zhí)行以下命令安裝視頻輸入設備驅動模塊:
insmod usbcore.o
insmod usb-ohci-s3c2410.ko
insmod ov511.o
由于使用的設備是USB接口的攝像頭,所以在加載ov511.o模塊前,需要加載USB內(nèi)核驅動和主機控制器驅動。