新聞中心

SCCB總線與IIC區(qū)別

作者: 時(shí)間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
SCCB是簡化的I2C協(xié)議,SIO-l是串行時(shí)鐘輸入線,SIO-O是串行雙向數(shù)據(jù)線,分別相當(dāng)于I2C協(xié)議的SCL和SDA。SCCB的總線時(shí)序與I2C基本相同,它的響應(yīng)信號ACK被稱為一個(gè)傳輸單元的第9位,分為Don’t care和NA。Don’t care位由從機(jī)產(chǎn)生;NA位由主機(jī)產(chǎn)生,由于SCCB不支持多字節(jié)的讀寫,NA位必須為高電平。另外,SCCB沒有重復(fù)起始的概念,因此在SCCB的讀周期中,當(dāng)主機(jī)發(fā)送完片內(nèi)寄存器地址后,必須發(fā)送總線停止條件。不然在發(fā)送讀命令時(shí),從機(jī)將不能產(chǎn)生Don’t care響應(yīng)信號。

由于I2C和SCCB的一些細(xì)微差別,所以采用GPIO模擬SCCB總線的方式。SCL所連接的引腳始終設(shè)為輸出方式,而SDA所連接的引腳在數(shù)據(jù)傳輸過程中,通過設(shè)置IODIR的值,動態(tài)改變引腳的輸入/輸出方式。SCCB的寫周期直接使用I2C總線協(xié)議的寫周期時(shí)序;而SC-CB的讀周期,則增加一個(gè)總線停止條件。

本文引用地址:http://butianyuan.cn/article/201612/330240.htm

SCCB是和I2C相同的一個(gè)協(xié)議。 SIO_C和SIO_D分別為SCCB總線的時(shí)鐘線和數(shù)據(jù)線。目前,SCCB總線通信協(xié)議只支持100Kb/s或400Kb/s的傳輸速度,并且支持兩種地址形式:①從設(shè)備地址(ID Address,8bit),分為讀地址和寫地址,高7位用于選中芯片, 第0位是讀/寫控制位(R/W),決定是對該芯片進(jìn)行讀或?qū)懖僮?;②?nèi)部寄存器單元地址(Sub_ Address,8bit),用于決定對內(nèi)部的哪個(gè)寄存器單元進(jìn)行操作,通常還支持地址單元連續(xù)的多字節(jié)順序讀寫操作。SCCB控制總線功能的實(shí)現(xiàn)完全是依靠SIO_C、SIO_D兩條總線上電平的狀態(tài)以及兩者之間的相互配合實(shí)現(xiàn)的。SCCB總線傳輸?shù)膯雍屯V箺l件如圖

過程:采用簡單的三相(Phase)寫數(shù)據(jù)的方式,即在寫寄存器的過程中先發(fā)送OV7649的ID地址(ID Address),然后發(fā)送寫數(shù)據(jù)的目地寄存器地址(Sub_address),最后發(fā)送要寫入的數(shù)據(jù)(Write Data),見圖3。如果給連續(xù)的寄存器寫數(shù)據(jù),寫完一個(gè)寄存器后,OV7649會自動把寄存器地址加1,程序可繼續(xù)向下寫,而不需要再次輸入ID地址,從而三相寫數(shù)據(jù)變?yōu)榱藘上鄬憯?shù)據(jù),由于本系統(tǒng)只需對有限個(gè)不連續(xù)寄存器進(jìn)行配置,如果采用對全部寄存器都加以配置這一方法的話,會浪費(fèi)很多時(shí)間和資源,所以我們只對需要更改數(shù)據(jù)的寄存器進(jìn)行寫數(shù)據(jù)。對于每一個(gè)需更改的寄存器,都采用三相寫數(shù)據(jù)的方法。



關(guān)鍵詞: SCCB總線II

評論


技術(shù)專區(qū)

關(guān)閉