SCCB總線與IIC區別
由于I2C和SCCB的一些細微差別,所以采用GPIO模擬SCCB總線的方式。SCL所連接的引腳始終設為輸出方式,而SDA所連接的引腳在數據傳輸過程中,通過設置IODIR的值,動態改變引腳的輸入/輸出方式。SCCB的寫周期直接使用I2C總線協議的寫周期時序;而SC-CB的讀周期,則增加一個總線停止條件。
本文引用地址:http://www.cqxgywz.com/article/201612/330240.htmSCCB是和I2C相同的一個協議。 SIO_C和SIO_D分別為SCCB總線的時鐘線和數據線。目前,SCCB總線通信協議只支持100Kb/s或400Kb/s的傳輸速度,并且支持兩種地址形式:①從設備地址(ID Address,8bit),分為讀地址和寫地址,高7位用于選中芯片, 第0位是讀/寫控制位(R/W),決定是對該芯片進行讀或寫操作;②內部寄存器單元地址(Sub_ Address,8bit),用于決定對內部的哪個寄存器單元進行操作,通常還支持地址單元連續的多字節順序讀寫操作。SCCB控制總線功能的實現完全是依靠SIO_C、SIO_D兩條總線上電平的狀態以及兩者之間的相互配合實現的。SCCB總線傳輸的啟動和停止條件如圖
過程:采用簡單的三相(Phase)寫數據的方式,即在寫寄存器的過程中先發送OV7649的ID地址(ID Address),然后發送寫數據的目地寄存器地址(Sub_address),最后發送要寫入的數據(Write Data),見圖3。如果給連續的寄存器寫數據,寫完一個寄存器后,OV7649會自動把寄存器地址加1,程序可繼續向下寫,而不需要再次輸入ID地址,從而三相寫數據變為了兩相寫數據,由于本系統只需對有限個不連續寄存器進行配置,如果采用對全部寄存器都加以配置這一方法的話,會浪費很多時間和資源,所以我們只對需要更改數據的寄存器進行寫數據。對于每一個需更改的寄存器,都采用三相寫數據的方法。


評論