PC104對(duì)OV7670寄存器的讀寫(xiě)
摘要:Ominisrision公司的新型攝像頭模組OV7670,具有體積小、輸出圖像格式多、接口方便、寄存器可讀寫(xiě)等特點(diǎn),是嵌入式系統(tǒng)中圖像采集的理想選擇。通過(guò)設(shè)置OV7670的寄存器的值,可以更好地實(shí)現(xiàn)對(duì)攝像頭的控制,得到更加理想的圖像。本文介紹了PC104系統(tǒng)對(duì)OV7670攝像頭模組寄存器讀寫(xiě)的過(guò)程及編程方法。
關(guān)鍵詞:OV7670;圖像采集;PC104;SCCB
嵌入式系統(tǒng)中的圖像采集是進(jìn)行圖像處理的基礎(chǔ),只有在采集時(shí)就進(jìn)行前端的處理和控制,才能減少圖像中的噪聲,為后續(xù)的圖像處理提供良好的數(shù)據(jù)。OV7670開(kāi)放了控制寄存器,用戶可以通過(guò)SCCB總線來(lái)實(shí)現(xiàn)讀寫(xiě)操作,可以設(shè)置圖像輸出格式、控制曝光等,為具體的應(yīng)用場(chǎng)景提供了更底層的支持。正確的讀寫(xiě)寄存器就成為獲得圖像的第一步。
1 OV7670攝像頭模組簡(jiǎn)介
OV7670 CAMERACHIPTM圖像傳感器,體積小、工作電壓低,提供單片VGA攝像頭和影像處理器的所有功能。通過(guò)SCCB總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率8位影響數(shù)據(jù)。該產(chǎn)品VGA圖像最高達(dá)到30幀/秒。用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式。所有圖像處理功能過(guò)程包括伽瑪曲線、白平衡、飽和度、色度等都可以通過(guò)SCCB接口編程。OmmiVision圖像傳感器應(yīng)用獨(dú)有的傳感器技術(shù),通過(guò)減少或消除光學(xué)或電子缺陷如固定圖案噪聲、托尾、浮散等,提高圖像質(zhì)量,得到清晰的穩(wěn)定的彩色圖像。功能框圖如圖1所示。為了保證圖像采集的連續(xù)性和完整性,外加一個(gè)384K,8位的FIFO,AL422為圖像采集和處理作緩沖。OV7670與AL422的連接如圖2所示。
2 兩線SCCB
SCCB(Serial Camera Control Bus),即串行攝像機(jī)控制總線,是OmniVision公司為完成對(duì)絕大部分OmniVision系列圖像傳感芯片功能的控制而制定的一種三線結(jié)構(gòu)串行總線。在簡(jiǎn)化的引腳封裝中(如典型的24腳封裝),SCCB總線可以工作在改進(jìn)的兩線工作方式下。兩線SCCB適合于主片只有一個(gè)從片的時(shí)候使用,此時(shí)的SCCB_E*信號(hào)被使能并置低,其連接框圖如圖3所示。
兩線連接的SCCB數(shù)據(jù)傳輸時(shí)序如圖4所示。
SCCB總線協(xié)議中使用的信號(hào)如表1、表2所示。
3 接口時(shí)序及編程實(shí)現(xiàn)
數(shù)據(jù)傳輸開(kāi)始:當(dāng)總線空閑時(shí),主片SIO_D信號(hào)置高或“1”。在SIO_C是高或“1”且SIO_D驅(qū)動(dòng)到低或“0”時(shí),數(shù)據(jù)傳輸開(kāi)始。如圖5所示。
數(shù)據(jù)傳輸停止:當(dāng)SIO_C信號(hào)是高或“1”,SIO_D信號(hào)從低或“0”到高或“1”時(shí),數(shù)據(jù)傳輸停止。如圖6所示。
寫(xiě)操作只有在一個(gè)開(kāi)始信號(hào)之后,才能由主片啟動(dòng);在一個(gè)停止信號(hào)之后或者一個(gè)新的開(kāi)始信號(hào)之后,寫(xiě)操作才完成。同樣,讀操作也是在一個(gè)停止信號(hào)或者一個(gè)新的開(kāi)始信號(hào)之后才完成。
讀寄存器操作的函數(shù)實(shí)現(xiàn)如下:
4 結(jié)論
通過(guò)對(duì)OV7670的寄存器設(shè)置,可以很好的實(shí)現(xiàn)對(duì)OV7670的圖像數(shù)據(jù)的采集和傳輸過(guò)程進(jìn)行有效的干預(yù)。寄存器讀寫(xiě)可以確定攝像頭一端的工作狀況,方便了嵌入式系統(tǒng)的開(kāi)發(fā)調(diào)試;能夠在系統(tǒng)中根據(jù)要求來(lái)改變模塊傳輸數(shù)據(jù)的格式,并根據(jù)環(huán)境光線的強(qiáng)弱來(lái)改變曝光強(qiáng)度。避免了采集到的圖像不清晰甚至是亂碼的問(wèn)題。