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