一、2440環(huán)境搭建
打補(bǔ)丁:
tar xjvf linux-3.4.2.tar.bz2
cd linux-3.4.2
patch -p1 《。。/linux-3.4.2_100ask.patch
cp config_ok 。/.config
make menuconfig12345
啟動(dòng)內(nèi)核:
set ipaddr 192.168.1.122 && set serverip 192.168.1.101 && tftp 0x30000000 uImage
set bootargs root=/dev/nfs nfsroot=192.168.1.200:/work/nfs_root/fs_mini_mdev_new ip=192.168.1.17 console=ttySAC0,115200 && bootm 0x3000000012
驅(qū)動(dòng):
cp *.ko /work/nfs_root/fs_mini_mdev_new/work
cp test_camera /work/nfs_root/fs_mini_mdev_new/work12
二、硬件原理
數(shù)據(jù)的流向:
自然景觀-》攝像頭模塊-》接口(排線)-》S3C2440的攝像頭控制器-》LCD
1.ov7740(攝像頭模塊)
上面帶著黃色排線的攝像頭模組。
模組的組成:鏡頭、音圈馬達(dá)、紅外濾光片、sensor(傳感器就是ov7740芯片,它的正面就是有效感光陣列)、排線PCB板子
輸出信號(hào): RGB、YUV格式的數(shù)字信號(hào)
1)常用參數(shù)
輸入信號(hào): 自然景觀等的模擬信號(hào)
輸出信號(hào):
輸出格式為:RAW RGB、YUV
輸出分辨率為:VGA(640*480)、QVGA(240*320)、CIF(352*288)、更小的任意大小
有效感光陣列的大?。?/strong>656*488 = 320128(30W像素)(感光陣列是由像素點(diǎn)顆粒組成)(這個(gè)大小表示的是感光顆粒的個(gè)數(shù))
鏡頭的大?。?/strong>1/5寸(感光顆粒組成的感光陣列,物理組成是1/5寸)
像素點(diǎn)顆粒的大小: 4.2um * 4.2um(它表示一個(gè)感光顆粒的大小像素點(diǎn)顆粒只能感受三種顏色)
總結(jié):
以上三個(gè)參數(shù),都是用來描述感光陣列,即使同為30W像素的攝像頭,如果它的鏡頭尺寸大小越小,那么對(duì)應(yīng)的像素點(diǎn)顆粒的大小就越小,從而感光性就越差,進(jìn)而拍攝的效果就越差。
輸入時(shí)鐘頻率: 6~27MHz(即0V7740攝像頭模組的工作頻率范圍。)
掃描模式: 連續(xù)掃描(P):例如說電影是720P
隔行掃描(I):電影是1080I
2)內(nèi)部數(shù)據(jù)的處理流程
a.isc部分:(圖像傳感器核心部分 )
翻轉(zhuǎn)、增益大小調(diào)整、黑電平校準(zhǔn)、飽和度的控制、OTP存儲(chǔ)器(存儲(chǔ)廠家ID設(shè)備ID)
第一部分生成的是RAMRGB數(shù)據(jù)
b.isp部分:(圖像處理DSP)
提供測(cè)試功能、鏡頭補(bǔ)償功能、自動(dòng)白平衡、RAW RGB-》RGB、RGB-》YUV、
窗口功能、縮小放大功能
里面有DSP數(shù)據(jù)處理單元,再將得到的數(shù)據(jù)傳給下一部分
c.ioi部分:圖像輸出單元
RAW RGB/YUV、VGA/QVGA(分辨率)、BT601/BT656(數(shù)據(jù)傳輸方式)
問:以上這些處理過程,不需要我們?nèi)藶榈淖鋈魏卧O(shè)置,它們都能自動(dòng)完成嗎?
答:以上這些處理過程,只有極少部分是自動(dòng)完成的,而剩余部分是需要我們?cè)O(shè)置后,才能完成。
問:怎么對(duì)它們進(jìn)行設(shè)置呢?
答:是通過IIC總線,操作OV7740的寄存器來進(jìn)行設(shè)置模組的。
問:RAW RGB與RGB的區(qū)別是什么?
答:所謂的RAW RGB就是只有紅綠藍(lán)三種顏色的數(shù)據(jù)。而RGB數(shù)據(jù),它不僅只表示紅綠藍(lán)三種顏色,而且還能表示由紅綠藍(lán)組合成的任何一種顏色。
問:RGB、YUV又分別是什么?
答:RGB、YUV是兩種完全不同的顏色空間,它們之間可以相互轉(zhuǎn)換。
2.原理圖(接口)
控制類:
IICSDA – IIC總線的數(shù)據(jù)線
IICSCL – IIC總線的時(shí)鐘線
數(shù)據(jù)傳輸類:
CAMRST – 復(fù)位CMOS攝像頭模塊
CAMCLK – 攝像頭模塊工作的系統(tǒng)時(shí)鐘(24MHz)
CAM_HREF – 行同步信號(hào)
CAM_VSYNC – 幀同步信號(hào)
CAM_PCLK – 像素時(shí)鐘
CAMDATA0~7– 數(shù)據(jù)線
3.攝像頭接口控制器:(參考芯片手冊(cè))任何一個(gè)功能都有相應(yīng)的寄存器
源:允許輸入的最大分辨率是4096*4096,接受的方式是BT601/656,能接受的數(shù)據(jù)是8bit的YUV格式。
攝像頭:輸出的分辨率:640*480運(yùn)輸方式:BT601
那么我們的控制器怎么知道攝像頭生成的是什么格式的數(shù)據(jù)呢?這就需要我們?cè)O(shè)置一些寄存器來告訴攝像頭控制器我們使用的是什么。
窗口功能的模塊:就是對(duì)數(shù)據(jù)源進(jìn)行裁剪,我們需要裁剪多少,裁剪多大都是由寄存器進(jìn)行相應(yīng)的設(shè)置。
裁剪之后的數(shù)據(jù)有兩種選擇:
傳到預(yù)覽通道:產(chǎn)生較小分辨率的圖片(畫中畫PIP:最大640*480 )對(duì)于這個(gè)通道可以對(duì)得到的數(shù)據(jù)進(jìn)行:縮放+顏色空間轉(zhuǎn)換(yuv/rgb)+旋轉(zhuǎn)。有自己特有的DMA通道:只能輸出RGB16/24的圖片。直接將數(shù)據(jù)存儲(chǔ)在指定的地方,我們叫他緩存
傳到編碼通道:產(chǎn)生用于編碼的數(shù)據(jù)(最大:4096*4096)對(duì)于這個(gè)通道可以對(duì)得到的數(shù)據(jù)進(jìn)行:縮放+編碼(就是對(duì)采集到的數(shù)據(jù)進(jìn)行壓縮)+旋轉(zhuǎn)。只能輸出YCbCr420/YCbCr422.的圖片。也是存儲(chǔ)在緩存
4.中斷信號(hào)
已經(jīng)得到一幀數(shù)據(jù)了,然后開始讀下一幀數(shù)據(jù)時(shí),在前一幀的下降沿產(chǎn)生一次中斷來讀取前一幀的數(shù)據(jù)。每一幀數(shù)據(jù)開始采集前產(chǎn)生中斷。
總結(jié):
1.CMOS攝像頭模塊的接口分為兩類:
(1)控制類
– 初始化:對(duì)攝像頭模塊進(jìn)行相應(yīng)的初始化操作,讓攝像頭模塊能夠正常的輸出攝像頭數(shù)據(jù)
– 控制: 設(shè)置亮度、旋轉(zhuǎn)、縮放等等的操作
(2)數(shù)據(jù)傳輸類: 與LCD的接口完全一樣。
2.CMOS攝像頭模塊,是一個(gè)IIC設(shè)備,需要給它寫符合IIC設(shè)備那套架構(gòu)的驅(qū)動(dòng),從而實(shí)現(xiàn)初始化和靈活的控制。
3.s3c2440攝像頭控制器(CAMIF)
允許輸入的最大分辨率是4096*4096,接受的方式是BT601/656,能接受的數(shù)據(jù)是8bit的YUV格式。
問:BT601與BT656的傳輸方式有什么區(qū)別?
答:BT601有獨(dú)立的行同步信號(hào)線、幀同步信號(hào)線,而BT656是將這兩種信號(hào)內(nèi)嵌到數(shù)據(jù)中的。
-
CMOS
+關(guān)注
關(guān)注
58文章
5710瀏覽量
235407 -
攝像頭
+關(guān)注
關(guān)注
59文章
4836瀏覽量
95597
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論