SCCB 接口:攝像頭控制的串行通信標準(上)
在圖像采集系統(tǒng)中,主機與圖像傳感器之間的控制信號交互需要一種簡潔高效的通信協(xié)議。SCCB(Serial Camera Control Bus,串行攝像頭控制總線)作為專為攝像頭控制設計的串行通信接口,憑借其簡單的硬件實現(xiàn)和可靠的通信機制,成為 CMOS 圖像傳感器領域的主流控制接口之一。本文將系統(tǒng)解析 SCCB 接口的通信原理、時序規(guī)范、實現(xiàn)方法及應用場景,揭示其在圖像采集系統(tǒng)中的核心價值。
一、SCCB 接口的定義與定位
SCCB 接口是 OmniVision 公司為其 CMOS 圖像傳感器系列設備開發(fā)的專用控制總線,最初用于實現(xiàn)主機(如微處理器、FPGA)對圖像傳感器的配置與狀態(tài)讀取。作為一種簡化的串行通信協(xié)議,SCCB 在保持與 I2C 協(xié)議兼容性的同時,針對攝像頭控制場景進行了優(yōu)化,具有以下核心特點:
輕量級設計:僅需兩根信號線即可實現(xiàn)雙向通信,硬件成本低
主從架構:支持單主機多從機的星形拓撲,最多可連接 127 個從設備
低速可靠:通信速率通常在 100kbps-400kbps 之間,適合控制信號傳輸
地址可配置:每個從設備具有唯一的 7 位地址,支持靈活的設備擴展
與通用通信接口(如 I2C、SPI)相比,SCCB 的定位更加專注:
不追求高速數(shù)據(jù)傳輸,而注重控制命令的可靠交互
針對攝像頭寄存器操作優(yōu)化了數(shù)據(jù)幀結構
簡化了時序要求,降低了嵌入式系統(tǒng)的實現(xiàn)難度
這種專業(yè)化設計使 SCCB 在手機攝像頭、安防監(jiān)控、機器視覺等領域得到廣泛應用,尤其在 OmniVision、GalaxyCore 等主流圖像傳感器廠商的產(chǎn)品中成為標準配置。
二、SCCB 接口的通信原理
1. 物理層特性
SCCB 接口的物理層設計簡潔高效,主要特性包括:
信號線組成:由兩根信號線構成 ——SIO_C(Serial Interface Clock,串行接口時鐘)和 SIO_D(Serial Interface Data,串行接口數(shù)據(jù)),均為開漏輸出,需要外部上拉電阻(通常為 4.7kΩ)
電氣特性:支持 3.3V 電壓域,兼容 5V 輸入(通過電平轉(zhuǎn)換)
傳輸距離:適合板級短距離通信,典型傳輸距離小于 1 米
抗干擾能力:差分信號設計(通過上拉電阻實現(xiàn)),具備基本的噪聲抑制能力
這種總線結構允許單個主機通過兩根信號線控制多個從設備,極大簡化了硬件設計。
2. 數(shù)據(jù)幀結構
SCCB 采用幀格式傳輸數(shù)據(jù),每個完整的通信周期包含地址幀和數(shù)據(jù)幀兩部分:
地址幀(Address Frame)
由 8 位組成,包含 7 位從設備地址和 1 位讀寫方向位(R/W#)
方向位為 0 表示寫操作(主機→從設備),為 1 表示讀操作(從設備→主機)
示例:0x42(二進制 1000010)表示地址為 0x21 的設備,執(zhí)行寫操作
數(shù)據(jù)幀(Data Frame)
由 8 位數(shù)據(jù)組成,根據(jù)操作類型不同有不同含義:
寫操作:表示要寫入的寄存器地址或寄存器數(shù)據(jù)
讀操作:表示從寄存器讀出的數(shù)據(jù)
應答信號(ACK)
每傳輸完 8 位數(shù)據(jù)后,接收方需要返回 1 位應答信號
應答信號為低電平(0)表示接收成功,高電平(1)表示接收失敗或未響應
一個完整的寫寄存器操作包含三個幀:
地址幀(從設備地址 + 寫方向)
數(shù)據(jù)幀(目標寄存器地址)
數(shù)據(jù)幀(要寫入的數(shù)據(jù))
讀寄存器操作則包含四個幀:
地址幀(從設備地址 + 寫方向)
數(shù)據(jù)幀(目標寄存器地址)
地址幀(從設備地址 + 讀方向)
數(shù)據(jù)幀(讀出的數(shù)據(jù))
這種幀結構設計專門針對寄存器操作優(yōu)化,使讀寫過程直觀高效。
3. 通信時序
SCCB 的時序規(guī)范定義了信號間的時間關系,確保數(shù)據(jù)可靠傳輸:
關鍵時序參數(shù)
t_HIGH:SIO_C 高電平持續(xù)時間,最小為 4μs
t_LOW:SIO_C 低電平持續(xù)時間,最小為 5μs
t_SU:數(shù)據(jù)建立時間,SIO_D 信號在 SIO_C 上升沿前的穩(wěn)定時間,最小為 100ns
t_HD:數(shù)據(jù)保持時間,SIO_D 信號在 SIO_C 上升沿后的穩(wěn)定時間,最小為 100ns
t_RISE:信號上升時間,從 0.3V 到 3.0V 的時間,最大為 1μs
t_FALL:信號下降時間,從 3.0V 到 0.3V 的時間,最大為 1μs
寫操作時序
主機拉低 SIO_C,開始傳輸周期
在 SIO_C 低電平期間,主機設置 SIO_D 為地址幀的第一位
主機釋放 SIO_C(高電平),從設備采樣 SIO_D 上的數(shù)據(jù)
重復步驟 2-3,傳輸完 8 位地址幀
主機釋放 SIO_D,等待從設備返回 ACK(低電平)
按相同方式傳輸寄存器地址和數(shù)據(jù)
傳輸完成后,主機拉低 SIO_D,釋放 SIO_C,產(chǎn)生停止條件
讀操作時序
與寫操作類似,但在地址幀后增加一個讀方向的地址幀,且數(shù)據(jù)傳輸方向相反:
從設備在 SIO_C 高電平時輸出數(shù)據(jù)
主機在接收完 8 位數(shù)據(jù)后,不發(fā)送 ACK 信號(通過保持 SIO_D 高電平表示)
最后由主機產(chǎn)生停止條件結束通信
這些時序要求比 I2C 更為寬松,降低了軟件實現(xiàn)的難度。
4. 通信過程
SCCB 的通信過程遵循主從應答機制,以寫寄存器操作為例:
起始條件:主機先拉低 SIO_D,再拉低 SIO_C,標志通信開始
發(fā)送設備地址:主機在 SIO_C 時鐘控制下,逐位發(fā)送 8 位地址幀(7 位地址 + 1 位寫方向)
從設備應答:從設備接收到匹配地址后,在第 9 個時鐘周期拉低 SIO_D 作為應答
發(fā)送寄存器地址:主機繼續(xù)發(fā)送 8 位寄存器地址,從設備應答
發(fā)送數(shù)據(jù):主機發(fā)送 8 位數(shù)據(jù)到指定寄存器,從設備應答
停止條件:主機先拉高 SIO_C,再拉高 SIO_D,標志通信結束
讀寄存器操作多出一個地址切換步驟:在發(fā)送寄存器地址后,主機重新發(fā)送帶讀方向的設備地址,然后接收從設備返回的數(shù)據(jù)。