基于嵌入式Linux圖像采集恢復(fù)和應(yīng)用
1.引言
隨著后PC時代的到來和嵌入式的蓬勃發(fā)展,運(yùn)用嵌入式系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集已成為社會需求的趨勢。本文采用嵌入式系統(tǒng)采集圖像數(shù)據(jù)實(shí)現(xiàn)加工零件的遠(yuǎn)程測量,代替?zhèn)鹘y(tǒng)的人工檢測。其特點(diǎn)有:網(wǎng)絡(luò)化,準(zhǔn)確性高,節(jié)約人力和物力。
2.系統(tǒng)軟硬件平臺
由于嵌入式設(shè)備資源有限,所以在開發(fā)嵌入式系統(tǒng)的軟件部分需要在宿主機(jī)平臺上實(shí)現(xiàn),運(yùn)用宿主機(jī)的資源編譯目標(biāo)機(jī)平臺上可運(yùn)行的軟件。本文系統(tǒng)的宿主機(jī)平臺:Redhat 9.0,交叉編譯環(huán)境:ARM-Linux-Gcc;目標(biāo)機(jī)平臺:UBOOT 1.1,Linux 2.4.18 和YAFFS 根文件系統(tǒng)。
系統(tǒng)硬件平臺的處理器采用 Samsung 公司的集成有ARM920T 內(nèi)核的處理器S3C2410,該處理器資源豐富,具有16KB 的指令Cache 和16KB 數(shù)據(jù)Cache、MMU 虛擬存儲器管理器、LCD 控制器、支持NAND Flash 系統(tǒng)引導(dǎo),RAM 控制器、3 通道UART、4 通道DMA、4通道帶PWM 定時器、RTC、并行I/O 口、8 通道10 位ADC、觸摸屏接口、IIC 接口、IIS接口、2 個USB 接口控制器、2 通道SPI 及內(nèi)部PLL 時鐘倍頻器,主頻最高可達(dá)203MHz。此外,在處理器豐富資源的基礎(chǔ)上還進(jìn)行了相關(guān)的配置和擴(kuò)展,配置了64MB 的Flash 和64MB 的SDRAM,并引出了兩個HOST USB 接口。在USB 接口上外接帶USB 口的攝像頭Webeye V 2000。嵌入式Linux 操作系統(tǒng)上建立圖像采集和圖像恢復(fù)兩個軟件模塊。開發(fā)板擁有CS8900A-CQ3 芯片,具有10~100M 自適應(yīng)的網(wǎng)絡(luò)通信能力。通過它實(shí)現(xiàn)圖像數(shù)據(jù)的遠(yuǎn)程傳輸。整個系統(tǒng)的硬件概圖如圖1 所示:
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
3.RGB數(shù)據(jù)流的采集
Webeye V 2000攝像頭內(nèi)部擁有ov7620、ov511和一個存儲芯片。由于Linux操作系統(tǒng)中嵌有ov511芯片的驅(qū)動,故在編譯Linux操作系統(tǒng)時需要加載ov511驅(qū)動,主要步驟:
?、?*)選擇Multimedia device->下的Video for linux。加載video4linux模塊,提供了編程接口;
?、谠趗sb support->目錄下(*)選擇support for usb和usb camera ov511 support。加入了對采用ov511接口芯片的USB數(shù)字?jǐn)z像頭的驅(qū)動支持。
在嵌入式Linux操作系統(tǒng)平臺上驅(qū)動攝像頭,通過Video4Linux接口控制攝像頭參數(shù)、圖片的格式和窗口大小等等。Video4Linux是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,它為針對視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù)。USB口攝像頭驅(qū)動程序中需要提供基本的I/O操作接口函數(shù)open、read、write、close的實(shí)現(xiàn)。對中斷的處理實(shí)現(xiàn),內(nèi)存映射功能以及對I/O通道的控制接口函數(shù)ioctl的實(shí)現(xiàn)等,并把它們定義在struct file_operations中。本系統(tǒng)采用內(nèi)存映射法,即mmap()方式截取圖像或視頻數(shù)據(jù)。mmap()函數(shù)調(diào)用使得進(jìn)程之間通過映射同一個普通文件實(shí)現(xiàn)共享內(nèi)存。該映射內(nèi)容區(qū)可讀可寫并且不同進(jìn)程間可共享,不需要任何數(shù)據(jù)的拷貝。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論