基于嵌入式Linux圖像采集恢復和應(yīng)用
1.引言
隨著后PC時代的到來和嵌入式的蓬勃發(fā)展,運用嵌入式系統(tǒng)實現(xiàn)遠程數(shù)據(jù)采集已成為社會需求的趨勢。本文采用嵌入式系統(tǒng)采集圖像數(shù)據(jù)實現(xiàn)加工零件的遠程測量,代替?zhèn)鹘y(tǒng)的人工檢測。其特點有:網(wǎng)絡(luò)化,準確性高,節(jié)約人力和物力。
2.系統(tǒng)軟硬件平臺
由于嵌入式設(shè)備資源有限,所以在開發(fā)嵌入式系統(tǒng)的軟件部分需要在宿主機平臺上實現(xiàn),運用宿主機的資源編譯目標機平臺上可運行的軟件。本文系統(tǒng)的宿主機平臺:Redhat 9.0,交叉編譯環(huán)境:ARM-Linux-Gcc;目標機平臺: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)引導,RAM 控制器、3 通道UART、4 通道DMA、4通道帶PWM 定時器、RTC、并行I/O 口、8 通道10 位ADC、觸摸屏接口、IIC 接口、IIS接口、2 個USB 接口控制器、2 通道SPI 及內(nèi)部PLL 時鐘倍頻器,主頻最高可達203MHz。此外,在處理器豐富資源的基礎(chǔ)上還進行了相關(guān)的配置和擴展,配置了64MB 的Flash 和64MB 的SDRAM,并引出了兩個HOST USB 接口。在USB 接口上外接帶USB 口的攝像頭Webeye V 2000。嵌入式Linux 操作系統(tǒng)上建立圖像采集和圖像恢復兩個軟件模塊。開發(fā)板擁有CS8900A-CQ3 芯片,具有10~100M 自適應(yīng)的網(wǎng)絡(luò)通信能力。通過它實現(xiàn)圖像數(shù)據(jù)的遠程傳輸。整個系統(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ù)字攝像頭的驅(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的實現(xiàn)。對中斷的處理實現(xiàn),內(nèi)存映射功能以及對I/O通道的控制接口函數(shù)ioctl的實現(xiàn)等,并把它們定義在struct file_operations中。本系統(tǒng)采用內(nèi)存映射法,即mmap()方式截取圖像或視頻數(shù)據(jù)。mmap()函數(shù)調(diào)用使得進程之間通過映射同一個普通文件實現(xiàn)共享內(nèi)存。該映射內(nèi)容區(qū)可讀可寫并且不同進程間可共享,不需要任何數(shù)據(jù)的拷貝。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論