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