欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種主控機(jī)與從機(jī)通信的方法、系統(tǒng)及裝置的制作方法

文檔序號(hào):6578432閱讀:220來(lái)源:國(guó)知局
專利名稱:一種主控機(jī)與從機(jī)通信的方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種主控機(jī)與從機(jī)通信的方法、系統(tǒng) 及裝置。
背景技術(shù)
I2C (Intel - Integrated Circuit bus)為 一種串行通信總線,可以實(shí)現(xiàn)主控機(jī) (Master)(例如CPU)與從機(jī)(Slave)(例如外圍器件)之間的通信。
I2C總線可以通過(guò)兩根線實(shí)現(xiàn)主控機(jī)與從機(jī)之間的通信,該兩根線分別為 時(shí)鐘線(Serial Clock Line, SCL)和數(shù)據(jù)(Serial Data, SDA)線,并且主控機(jī)可以 發(fā)出START和STOP兩種特殊信號(hào),分別表示數(shù)據(jù)傳送的開始和結(jié)束。主控 機(jī)每次發(fā)送給從機(jī)8個(gè)字節(jié)(bit)的數(shù)據(jù),之后等待接收從機(jī)發(fā)送的應(yīng)答信號(hào) (ACK),當(dāng)主控機(jī)在設(shè)置的時(shí)間內(nèi)沒(méi)有接收到從機(jī)發(fā)送的ACK時(shí),數(shù)據(jù)發(fā)送 結(jié)束。I2C總線要求總線上的從機(jī)具有獨(dú)一無(wú)二的器件地址,而實(shí)際應(yīng)用中, 從機(jī)的地址是固定的,因此存在從機(jī)的器件地址相同的情況,從而出現(xiàn)地址沖 突的情況。
目前,為了解決這種地址沖突的問(wèn)題,可以采用指定某臺(tái)從機(jī)的寫或讀數(shù) 據(jù)的時(shí)序的方式,但是此實(shí)現(xiàn)方式,主控機(jī)對(duì)某一從機(jī)進(jìn)行寫操作,將一個(gè)bit 的數(shù)據(jù)寫入某個(gè)從機(jī)的第n個(gè)bit的位置時(shí),例如當(dāng)寫操作進(jìn)行到205bit之后, 208bit之前時(shí),主控機(jī)發(fā)生復(fù)位,當(dāng)復(fù)位結(jié)束后,開始采用公共的SCL對(duì)另一 臺(tái)從機(jī)進(jìn)行讀寫操作,而對(duì)于之前進(jìn)行寫操作的從機(jī)而言,確定之前進(jìn)行的寫 操作還沒(méi)有結(jié)束,在SCL的有效沿到來(lái)時(shí),進(jìn)行寫操作。而此操作會(huì)造成復(fù) 位后該從機(jī)的字節(jié)被改寫,從而覆蓋該從機(jī)的原數(shù)據(jù)。
同時(shí),現(xiàn)有技術(shù)中,當(dāng)從機(jī)與主控機(jī)采用不同的電源供電時(shí),主控^L對(duì)某一從機(jī)進(jìn)行讀寫梯:作時(shí),該主控機(jī)掉電后,又重新上電后,該主控機(jī)接收到其 他的命令,開始對(duì)其他的從機(jī)進(jìn)行讀寫操作,而掉電之前進(jìn)行通信的從機(jī),還 會(huì)一直保持與主控機(jī)的交互狀態(tài),不斷的進(jìn)行讀寫操作,因此,也覆蓋該從機(jī) 的原數(shù)據(jù),使數(shù)據(jù)不準(zhǔn)確,同時(shí)由于該從機(jī)不斷的進(jìn)行操作,浪費(fèi)了資源。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供了一種主控機(jī)與從機(jī)通信的方法、系統(tǒng)及裝
置,用以解決現(xiàn)有技術(shù)中由于從機(jī)的地址沖突,而造成的不能滿足I2C協(xié)議以 及數(shù)據(jù)被改寫的問(wèn)題。
本發(fā)明實(shí)施例提供的一種主控機(jī)與從機(jī)通信的方法,應(yīng)用于包括主控機(jī)與 至少一臺(tái)從機(jī)的系統(tǒng)中,包括
所述主控機(jī)接收復(fù)位信號(hào)或上電信號(hào);
所述主控機(jī)復(fù)位或上電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳#輸結(jié)束的STOP 信號(hào),控制所述每臺(tái)從機(jī)結(jié)束所述主控機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮鳎?br> 所述主控機(jī)接收到對(duì)第一從機(jī)的讀或?qū)懨?,根?jù)所述讀或?qū)懨钆c所述 第 一從機(jī)進(jìn)行相應(yīng)的讀或?qū)懖僮鳌?br> 本發(fā)明實(shí)施例提供的一種主控機(jī)與從機(jī)通信的系統(tǒng),包括主控機(jī)與至少一 臺(tái)從機(jī),其中
主控機(jī),用于接收復(fù)位信號(hào)或上電信號(hào),并且在復(fù)位或上電后,向每臺(tái)從 機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束與所述主控才幾 復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮鳎邮諏?duì)第一從機(jī)的讀或?qū)懨?,根?jù)所述 讀或?qū)懨钆c該第一從機(jī)進(jìn)行相應(yīng)的讀或?qū)懖僮鳎?br> 第一從機(jī),用于接收所述主控機(jī)發(fā)送的STOP信號(hào),根據(jù)所述STOP信號(hào), 結(jié)束與所述主機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮鳎c所述主控機(jī)進(jìn)行相應(yīng)的 讀或?qū)懖僮鳌?br> 本發(fā)明實(shí)施例提供了一種主控機(jī),包括接收模塊,用于接收復(fù)位信號(hào)或上電信號(hào),并接收對(duì)第一從機(jī)的讀或?qū)懨?br> 今;
控制模塊,用于在復(fù)位或上電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的
STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束與所述主控機(jī)復(fù)位或上電之前進(jìn)行的讀或
寫操作;
發(fā)送通信模塊,用于根據(jù)所述讀或?qū)懨钆c所述第一從機(jī)進(jìn)行相應(yīng)的讀或 寫操作。
本發(fā)明實(shí)施例提供了一種主控機(jī)與從機(jī)通信的方法、系統(tǒng)及裝置,該方法 包括所述主控機(jī)接收復(fù)位信號(hào)或上電信號(hào);所述主控機(jī)向每臺(tái)從機(jī)發(fā)送表示 數(shù)據(jù)傳輸結(jié)束的STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束所述主控機(jī)復(fù)位或上電之 前進(jìn)行的讀或?qū)懖僮?,?dāng)該主控機(jī)接收到對(duì)第一從機(jī)的讀或?qū)懨顣r(shí),該主控 機(jī)與該第一從機(jī)進(jìn)行讀或?qū)懖僮鳌1景l(fā)明實(shí)施例在主控機(jī)復(fù)位或重新上電后, 對(duì)與其連接的每臺(tái)從機(jī)發(fā)送STOP信號(hào),告知每臺(tái)從機(jī)在該主控機(jī)復(fù)位之前或 上電之前進(jìn)行的讀、寫操作,從而有效地避免了由于主控機(jī)上電或復(fù)位,之前 進(jìn)行讀寫操作的從機(jī)重復(fù)進(jìn)行該讀寫操作而覆蓋數(shù)據(jù)的問(wèn)題。


圖1為本發(fā)明實(shí)施例提供的主控機(jī)與從機(jī)的連接結(jié)構(gòu)示意圖; 圖2為本發(fā)明實(shí)施例提供的主控機(jī)與從機(jī)的另一連接結(jié)構(gòu)示意圖; 圖3為本發(fā)明實(shí)施例提供的主控機(jī)與從機(jī)通信的方法流程示意圖; 圖4為本發(fā)明實(shí)施例提供的主控機(jī)接收到讀命令時(shí),與從機(jī)通信的方法流 程示意圖5為本發(fā)明實(shí)施例提供的主控機(jī)接收到寫命令時(shí),與從機(jī)通信的方法流 程示意圖6為本發(fā)明實(shí)施例提供的主控機(jī)與從機(jī)通信的系統(tǒng)結(jié)構(gòu)示意圖; 圖7為本發(fā)明實(shí)施例提供的主控機(jī)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例中,為了有效的解決由于從機(jī)的地址沖突,在主控機(jī)與從機(jī) 進(jìn)行通信時(shí),由于主控機(jī)復(fù)位或重新上電,造成的從機(jī)數(shù)據(jù)覆蓋的問(wèn)題,提供 了 一種主控機(jī)與從機(jī)通信的方法,應(yīng)用于包括主控機(jī)與至少 一 臺(tái)從機(jī)的系統(tǒng)
中,該方法包括所述主控機(jī)接收復(fù)位信號(hào)或上電信號(hào);所述主控機(jī)復(fù)位或上 電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié) 束所述主控機(jī)復(fù)位之前或上電之前進(jìn)行的讀或?qū)憀喿作;所述主控機(jī)接收到對(duì)第 一從機(jī)的讀或?qū)懨?,根?jù)所述讀或?qū)懨钆c所述第一從機(jī)進(jìn)行相應(yīng)的讀或?qū)?操作。本發(fā)明實(shí)施例在主控機(jī)復(fù)位或上電后,對(duì)與其連接的每臺(tái)從機(jī)發(fā)送STOP 信號(hào),告知每臺(tái)從機(jī)在該主控機(jī)復(fù)位之前或上電之前進(jìn)行的讀、寫操作,從而 有效的避免了 ,由于主控機(jī)復(fù)位或上電之前進(jìn)行讀寫操作的從機(jī)重復(fù)進(jìn)行該讀 寫操作,覆蓋數(shù)據(jù)的問(wèn)題。
本發(fā)明實(shí)施例中,主控機(jī)接收到復(fù)位信號(hào)包括主控機(jī)在單板電路出現(xiàn)故 障時(shí)接收到的復(fù)位信號(hào),以及主控機(jī)在單板電路運(yùn)行程序中接收到的復(fù)位信 號(hào)。主控機(jī)接收到上電信號(hào)包括主控機(jī)之前處于工作狀態(tài),斷電后重新上電 進(jìn)入工作狀態(tài),以及主控機(jī)之前處于關(guān)機(jī)狀態(tài),上電后進(jìn)行工作狀態(tài)。
下面結(jié)合說(shuō)明書附圖,對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
在本發(fā)明實(shí)施例中,為了使SCL符合I2C協(xié)議的規(guī)定,通過(guò)圖1所示的 電路連接結(jié)構(gòu)圖實(shí)現(xiàn)。在該圖1中,主控機(jī)根據(jù)從機(jī)的數(shù)量,引出對(duì)應(yīng)數(shù)量的 SDA線,每根SDA線與一臺(tái)從機(jī)相連,例如SDA1線與第一從機(jī)及主控機(jī)相 連,SDA2線與第二從機(jī)及主控機(jī)相連,SDA3線與第三從機(jī)及主控才幾相 連,……,SDAN線與第N從機(jī)及主控機(jī)相連,N為從機(jī)的數(shù)量,并且,每根 SDA線通過(guò)對(duì)應(yīng)的電阻連接到電源VDD,例如,SDA1線通過(guò)電阻R1連接到 電源,SDA2線通過(guò)電阻R2連接到電源,SDA3線通過(guò)電阻R3連4妄到電 源,......,SDAN線通過(guò)電阻RN連接到電源,同時(shí),從主控機(jī)引出一根SCL,該SCL分別與每臺(tái)從機(jī)相連,該SCL通過(guò)電阻連接到電源VDD,例如該SCL
通過(guò)電阻RL連接到電源VDD。其中,電阻R1、 R2、 R3、 ....... RN及RL
的阻值可以相同。例如該多個(gè)電阻的阻值都為4.7千歐到IO千歐的范圍內(nèi)。或 者,電阻R1、 R2、 R3、……、RN的阻值相同,而該電阻RL的阻值與電阻
Rl、 R2、 R3........ RN的阻值不同,不過(guò)在多個(gè)電阻的阻值都為4.7千歐到
IO千歐的范圍內(nèi)。
在主控機(jī)復(fù)位或者上電后,該主控機(jī)會(huì)向每臺(tái)從機(jī)發(fā)送一個(gè)STOP信號(hào), 從而可以控制從機(jī)終止在主控制復(fù)位之前或上電之前與主控機(jī)進(jìn)行的讀或?qū)?操作,然后主控機(jī)進(jìn)入等待狀態(tài),直到接收到新的讀或?qū)懨钪筮M(jìn)行相應(yīng)的 動(dòng)作?;趫D1所示的主控機(jī)與從機(jī)的連接結(jié)構(gòu),在主控機(jī)復(fù)位或上電后,主 控機(jī)向每臺(tái)從機(jī)發(fā)送STOP信號(hào)時(shí),首先,主控機(jī)將連接每臺(tái)從機(jī)的SDA線 端口置為低電平,即將圖1中的SDA1, SDA2 、 SDA3,……,SDAN置為低 電平,然后,將連接每臺(tái)從機(jī)的SCL端口置為高阻態(tài),該端口的高阻態(tài)經(jīng)由 與SCL連接的電阻RL后轉(zhuǎn)換為高電平,再然后,在該SCL端口為高電平時(shí), 將連接每臺(tái)從機(jī)的SDA線端口置為高電平,從而可以產(chǎn)生一個(gè)STOP信號(hào)。
在本發(fā)明實(shí)施例中,也可以采用圖2所示的主控機(jī)與從機(jī)之間的連接結(jié)構(gòu), 在該連接結(jié)構(gòu)中,主控機(jī)根據(jù)從機(jī)的數(shù)量,引出對(duì)應(yīng)數(shù)量的SDA線,每根SDA 線與一臺(tái)從機(jī)相連,例如SDA1線與第一從機(jī)及主控機(jī)相連,SDA2線與第二 從機(jī)及主控機(jī)相連,SDA3線與第三從機(jī)及主控機(jī)相連,......,SDAN線與第
N從機(jī)及主控機(jī)相連,N為從機(jī)的數(shù)量,并且,每根SDA線通過(guò)對(duì)應(yīng)的電阻 連接到電源VDD,例如,SDA1線通過(guò)電阻R1連接到電源,SDA2線通過(guò)電 阻R2連接到電源,SDA3線通過(guò)電阻R3連接到電源,……,SDAN線通過(guò)電 阻RN連接到電源,同時(shí),從主控機(jī)引出一根SCL,該SCL分別與每臺(tái)從機(jī)相 連。
基于圖2所示的主控機(jī)與從機(jī)的連接結(jié)構(gòu),在本發(fā)明實(shí)施例中,主控制復(fù) 位或上電后,主控機(jī)向每臺(tái)從機(jī)發(fā)送STOP信號(hào)時(shí),首先,主控機(jī)將連4妄每臺(tái)從機(jī)的SDA線端口置為低電平,即將圖2中的SDA1, SDA2 , SDA3,……, SDAN置為低電平,然后,將連接每臺(tái)從機(jī)的SCL端口置為高電平,再然后, 在該SCL端口置為高電平時(shí),將連接每臺(tái)從機(jī)的SDA線端口置為高電平,從 而可以產(chǎn)生一個(gè)STOP信號(hào)。
在本發(fā)明實(shí)施例中,主控機(jī)在復(fù)位或上電后,針對(duì)與其連接的每臺(tái)從機(jī), 發(fā)送控制每臺(tái)從機(jī)停止在主控機(jī)復(fù)位或上電之前與主控機(jī)進(jìn)行的讀、寫操作。 由此,可知本發(fā)明實(shí)施例中,當(dāng)主控機(jī)復(fù)位或上電后,不僅僅針對(duì)該主控機(jī)復(fù) 位或上電前進(jìn)行交互的從機(jī),而是針對(duì)每臺(tái)從機(jī)發(fā)送STOP信號(hào),從而可以有 效的避免從機(jī)在主控機(jī)復(fù)位或上電后,由于持續(xù)進(jìn)行復(fù)位或上電之前的讀、寫 操作,而造成的數(shù)據(jù)改寫問(wèn)題。
下面通過(guò)一個(gè)具體的實(shí)施例進(jìn)行詳細(xì)的說(shuō)明,如圖3所示,該主控機(jī)與從 機(jī)的通信過(guò)程包括以下步驟
S301:主控機(jī)接收到對(duì)第一從機(jī)的讀或?qū)懨睢?br> S302:主控機(jī)向第 一從機(jī)發(fā)送包含該第 一從機(jī)器件地址的第 一數(shù)據(jù)。
S303:主控機(jī)在接收到該第一從機(jī)的確認(rèn)后,向該第一從機(jī)發(fā)送包含操作 地址的第二數(shù)據(jù)。
S304:主控機(jī)在4妄收到該第一從機(jī)的確認(rèn)后,根據(jù)該操作地址,對(duì)該第一 從機(jī)進(jìn)行相應(yīng)的讀或?qū)懖僮鳌?br> S305:主控機(jī)接收到復(fù)位信號(hào),進(jìn)行復(fù)位。
S306:主控機(jī)向與其連接的每臺(tái)從機(jī)發(fā)送STOP信號(hào),控制每臺(tái)從才幾停止 之前與該主控機(jī)進(jìn)行的讀或?qū)懖僮鳌?br> S307:主控機(jī)進(jìn)行等待狀態(tài),直到接收到對(duì)第一從機(jī)的讀或?qū)懨睢?S308:主控才M艮據(jù)該讀或?qū)懨钆c該第一從機(jī)進(jìn)行相應(yīng)的讀或?qū)懖懦俗鳌?在上述實(shí)施例中,在S302到S304之間的任何步驟,只要該主控積^妄收到 復(fù)位信號(hào),該主控機(jī)復(fù)位后,都會(huì)向與其連接的每臺(tái)從機(jī)發(fā)送STOP信號(hào),控 制與其連接的每臺(tái)從機(jī),停止復(fù)位之前與該主控機(jī)進(jìn)行的讀、寫操作。因此,本發(fā)明實(shí)施例中,由于主控機(jī)向與其連接的每臺(tái)從機(jī)都會(huì)發(fā)送復(fù)位信號(hào),并不 只針對(duì)復(fù)位之前與其進(jìn)行讀或?qū)懖僮鞯牡谝粡牟艓装l(fā)送,因此,節(jié)省了信息查找
的時(shí)間,從而可以有效的避免從機(jī)沒(méi)有接收到STOP信號(hào),而持續(xù)進(jìn)行讀、寫 操作,進(jìn)而造成對(duì)數(shù)據(jù)的改寫。并且,由于該主控機(jī)對(duì)與其連接的每臺(tái)從機(jī)發(fā) 送了 STOP信號(hào),減小了由于在之前的復(fù)位操作中從機(jī)沒(méi)有接收到STOP信號(hào) 的可能性,從而使主控機(jī)與從機(jī)之間的讀、寫操作更加安全。
上述實(shí)施例是以主控機(jī)接收到復(fù)位信號(hào)為例進(jìn)行說(shuō)明的,該S305也可以 替換為主控枳4妄收到上電信號(hào),相應(yīng)的S306為主控^L上電后,向與其連^l妄的 每臺(tái)從機(jī)發(fā)送STOP信號(hào),控制每臺(tái)從機(jī)停止之前與該主控機(jī)進(jìn)行的讀或?qū)懖?作。同時(shí),本發(fā)明實(shí)施例中,該主控機(jī)在接收到復(fù)位或上電信號(hào),復(fù)位或上電 后,向每臺(tái)從機(jī)都發(fā)送了 STOP信號(hào),每臺(tái)從機(jī)都停止了與該主控機(jī)的操作, 當(dāng)該主控機(jī)接收到對(duì)某一從機(jī)的讀或?qū)懨顣r(shí),才與該讀或?qū)懨顚?duì)應(yīng)的從;f幾 進(jìn)行讀或?qū)懖僮?,因此,有效的控制了從機(jī)在主控機(jī)復(fù)位或上電后的動(dòng)作,避 免了從機(jī)對(duì)數(shù)據(jù)的改寫。
本發(fā)明實(shí)施例中,主控機(jī)在復(fù)位或上電后向與其連接的每臺(tái)從機(jī)發(fā)送的 STOP信號(hào),可以從軟件上實(shí)現(xiàn),例如,在每個(gè)復(fù)位信號(hào)后,即為控制主控4幾 發(fā)送STOP信號(hào)的程序,即控制主控機(jī)將連接每臺(tái)從機(jī)的SDA端口置為低電 平,然后,將連接每臺(tái)從機(jī)的SCL端口置為高電平或高阻態(tài),再然后,將連 接每臺(tái)從機(jī)的SDA端口置為高電平,從而可以產(chǎn)生一個(gè)STOP信號(hào)。
圖4為本發(fā)明實(shí)施例提供的該主控機(jī)接收到的對(duì)第一從機(jī)的命令為讀命令 時(shí),該主控機(jī)與從機(jī)的通信過(guò)程,該過(guò)程包括以下步驟
S401:主控機(jī)接收復(fù)位或上電信號(hào),該主控機(jī)根據(jù)該復(fù)位或上電信號(hào),進(jìn) 行復(fù)位或上電。
S402:主控機(jī)向與其連接的每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào), 控制與其連接的每臺(tái)從機(jī)結(jié)束與該主控機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮鳌?S403:主控才幾進(jìn)入等待狀態(tài)。S404:主控機(jī)接收到對(duì)第一從機(jī)的讀或?qū)懨?,例如該命令為讀命令時(shí), 主控機(jī)向進(jìn)行讀操作的第一從機(jī)發(fā)送START信號(hào),然后進(jìn)入步驟S405.
S405主控機(jī)向第一從機(jī)發(fā)送第一數(shù)據(jù),該第一數(shù)據(jù)為包含第一從機(jī)器件 地址的一個(gè)字節(jié)的數(shù)據(jù)。其中該一個(gè)字節(jié)的數(shù)據(jù)中前7個(gè)bit表示第一從機(jī)的 器件地址,第8bit是讀寫bit,該bit為0,表示接下來(lái)主控機(jī)要給第一從機(jī)寫 一個(gè)字節(jié)的數(shù)據(jù)。然后主控機(jī)在第9bit的SCL的上升沿讀取應(yīng)答bit,即是否 接收到第一從機(jī)發(fā)送的ACK信號(hào),如果應(yīng)答bit為0表示接收到第一從機(jī)發(fā)送 的ACK信號(hào),進(jìn)入步驟S406,否則,進(jìn)入步驟S402。
S406:主控機(jī)向第一從機(jī)發(fā)送第二數(shù)據(jù),該第二數(shù)據(jù)為一個(gè)字節(jié),該一 個(gè)字節(jié)的值表示要寫入的字節(jié)在第一從機(jī)中的字節(jié)地址。主控機(jī)在第9bit的 SCL的上升沿檢查是否收到第 一從機(jī)發(fā)送的ACK信號(hào),如果收到該ACK信號(hào), 進(jìn)入步驟S407,否則,進(jìn)入步驟S402。
S407:主控機(jī)向該第一從機(jī)發(fā)送START信號(hào)。
S408主控機(jī)向第一從機(jī)發(fā)送第三數(shù)據(jù),該第三數(shù)據(jù)為一個(gè)字節(jié),該一個(gè) 字節(jié)的前7個(gè)bit表示第一從機(jī)的器件地址,第8bit為讀寫標(biāo)志位,該bit為1, 表示接下來(lái)要向第一從機(jī)讀取數(shù)據(jù)。主控機(jī)在第9bit的SCL的上升沿檢測(cè)是 否收到第一從機(jī)發(fā)送的ACK信號(hào)。如果接收到ACK信號(hào),進(jìn)入步驟S409, 否則返回步驟S402。
S409:主控機(jī)從對(duì)應(yīng)第一從機(jī)的SDA線上讀取相應(yīng)的數(shù)據(jù)。
具體包括該主控機(jī)在SCL的上升沿,從對(duì)應(yīng)第一從機(jī)的SDA線上以字 節(jié)為單位讀取一個(gè)字節(jié)的數(shù)據(jù)。
S410:主控機(jī)判斷是否還要進(jìn)行數(shù)據(jù)的讀取,當(dāng)判斷結(jié)果為是時(shí),該主控 機(jī)通過(guò)對(duì)應(yīng)第一從機(jī)的SDA線在第9個(gè)bit的SCL的下降沿發(fā)送ACK信號(hào)后, 進(jìn)入S409,否則,進(jìn)4亍S402。
在該上迷實(shí)施例中,在該S404到S410的過(guò)程中,當(dāng)該主控機(jī)接收到復(fù)位
或上電信號(hào)時(shí),進(jìn)行S402的動(dòng)作。該主控機(jī)在對(duì)第一從機(jī)進(jìn)行完讀操作后,進(jìn)入等待狀態(tài),可能接收到對(duì)第一從機(jī)或第二從機(jī)的讀命令,或?qū)懨睿?當(dāng)該主控機(jī)在進(jìn)行等待狀態(tài)后,接收到對(duì)第一從機(jī)或第二從機(jī)的讀命令時(shí),可
以根據(jù)上述實(shí)施方式進(jìn)行S404之后的讀操作,并且才艮據(jù)具體進(jìn)行讀操作的從 機(jī),采用該從機(jī)對(duì)應(yīng)的器件地址及字節(jié)地址進(jìn)行讀操作,當(dāng)該主控機(jī)接收到對(duì) 第一從機(jī)或第二從機(jī)的寫命令時(shí),可以根據(jù)下面實(shí)施例提供的方式進(jìn)行具體的 寫操作。
圖5為本發(fā)明實(shí)施例提供的該主控機(jī)接收到的對(duì)第一從機(jī)的命令為寫命令 時(shí),該主控機(jī)與從機(jī)的通信過(guò)程,該過(guò)程包括以下步驟
S501:主控枳4妄收復(fù)位或上電信號(hào),該主控機(jī)才艮據(jù)該復(fù)位或上電信號(hào),進(jìn) 行復(fù)位或上電。
S502:主控機(jī)向與其連接的每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào), 控制與其連接的每臺(tái)從機(jī)結(jié)束與該主控機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮鳌?S503:主控機(jī)進(jìn)行等待狀態(tài)。
S504:主控機(jī)接收到對(duì)第一從機(jī)的命令,例如該命令為寫命令,該主控機(jī) 向進(jìn)行寫操作的第一從機(jī)發(fā)送START信號(hào),然后進(jìn)入步驟S505。
S505:主控機(jī)向第一從機(jī)發(fā)送第一數(shù)據(jù),其中該第一數(shù)據(jù)為包含該第一從 機(jī)器件地址的一個(gè)字節(jié)的數(shù)據(jù)。其中該一個(gè)字節(jié)的數(shù)據(jù)中前7個(gè)bit表示第一 從機(jī)的器件地址,第8bit是讀寫bit,該bit為0,表示接下來(lái)主控機(jī)要給第一 從機(jī)寫一個(gè)字節(jié)的數(shù)據(jù)。然后主控機(jī)在第9bit的SCL的上升沿讀取應(yīng)答bit, 即該第一從機(jī)返回的ACK信號(hào),如果應(yīng)答bit為O表示接收到第一從才幾發(fā)送的 ACK信號(hào),進(jìn)入步驟S506,否則,進(jìn)入步驟S502。
S506:主控機(jī)發(fā)送第二數(shù)據(jù),該第二數(shù)據(jù)為一個(gè)字節(jié),該字節(jié)的值表示 主控機(jī)要寫入的字節(jié)在第一從機(jī)中的字節(jié)地址。主控機(jī)在第9bit的SCL的上 升沿檢查是否收到第一從機(jī)返回的ACK信號(hào),如果收到ACK信號(hào),進(jìn)入步驟 S507,否則,進(jìn)入步驟S502。
S507:主控機(jī)從對(duì)應(yīng)第一從機(jī)的SDA線上發(fā)送要進(jìn)行寫入一個(gè)字節(jié)的數(shù)據(jù),之后進(jìn)入步驟S502。
具體包括該主控機(jī)在SCL的上升沿,從對(duì)應(yīng)第一從的SDA線發(fā)送要寫 入的數(shù)據(jù)。
在該上述實(shí)施例中,在該S504到S507的過(guò)程中,當(dāng)該主控才幾接收到復(fù)位 或上電信號(hào)時(shí),進(jìn)行S502的動(dòng)作。并且該主控機(jī)在等待狀態(tài)時(shí),接收到的命 令可能是讀命令,也可能是寫命令,根據(jù)實(shí)際情況采用相應(yīng)的步驟。例如,在 對(duì)第一從機(jī)進(jìn)行完寫操作后,主控機(jī)進(jìn)入等待狀態(tài),該主控機(jī)接收到對(duì)第二從 機(jī)的讀操作,相應(yīng)的進(jìn)入S404之后的讀操作的流程,當(dāng)接收到對(duì)第一從機(jī)或 第二從機(jī)的寫命令時(shí),進(jìn)行S504,并根據(jù)具體的寫操作的從機(jī),發(fā)送對(duì)應(yīng)的器 件地址及寫入的數(shù)據(jù)所在的器件地址。
如圖6所示,本發(fā)明實(shí)施例提供了一種主控機(jī)與從機(jī)通信的系統(tǒng),該系 統(tǒng)包括主控機(jī)與至少一臺(tái)從機(jī),其中
主控機(jī),用于接收復(fù)位信號(hào)或上電信號(hào),并且在復(fù)位或上電后,向每臺(tái)從 機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束與所述主控機(jī) 復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮?,接收?duì)第一從機(jī)的讀或?qū)懨睿鶕?jù)該讀 或?qū)懨钆c該第一從機(jī)進(jìn)行相應(yīng)的讀或?qū)懖僮鳎?br> 第一從機(jī),用于接收所述主控機(jī)發(fā)送的STOP信號(hào),根據(jù)所述STOP信號(hào), 結(jié)束與所述主機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮?,與所述主控機(jī)進(jìn)行相應(yīng)的 讀或?qū)懖僮鳌?br> 所述系統(tǒng)中
所述主控機(jī)引出一根SCL,該SCL分別與每臺(tái)從機(jī)相連。 所述系統(tǒng)中
所述主控機(jī)引出一根SCL,該SCL分別與每臺(tái)從機(jī)相連,并且該SCL通 過(guò)電阻連接到電源。
如圖7所示,本發(fā)明實(shí)施例提供了一種主控機(jī),該主控機(jī)包括 接收模塊71,用于接收復(fù)位信號(hào)或上電信號(hào),并接收對(duì)第一從機(jī)的讀或?qū)懨睿?br> 控制模塊72,用于在復(fù)位或上電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的 STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束與所述主控機(jī)復(fù)位或上電之前進(jìn)行的讀或 寫操作;
發(fā)送通信模塊73,用于4艮據(jù)所述讀或?qū)懨钆c所述第一從機(jī)進(jìn)行相應(yīng)的讀 或?qū)懖僮鳌?br> 所述控制模塊72包括
發(fā)送單元721,用于發(fā)送在復(fù)位或上電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸 結(jié)束的STOP信號(hào);
控制單元722,用于控制所述每臺(tái)從機(jī)結(jié)束與所述主控機(jī)復(fù)位或上電之前 進(jìn)行的讀或?qū)懖僮鳌?br> 本發(fā)明實(shí)施例提供了一種主控機(jī)與從機(jī)通信的方法、系統(tǒng)及裝置,該方法 包括所述主控機(jī)接收復(fù)位信號(hào)或上電信號(hào);所述主控機(jī)向每臺(tái)從機(jī)發(fā)送表示 數(shù)據(jù)傳輸結(jié)束的STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束所述主控機(jī)復(fù)位或上電之 前進(jìn)行的讀或?qū)懖僮?,?dāng)該主控機(jī)接收到對(duì)第一從機(jī)的讀或?qū)懨顣r(shí),該主控 機(jī)與該第一從機(jī)進(jìn)行讀或?qū)懖僮?。本發(fā)明實(shí)施例在主控機(jī)復(fù)位或重新上電后, 對(duì)與其連接的每臺(tái)從機(jī)發(fā)送STOP信號(hào),告知每臺(tái)從機(jī)在該主控機(jī)復(fù)位之前或 上電之前進(jìn)行的讀、寫操作,從而有效地避免了由于主控機(jī)重新上電或復(fù)位, 之前進(jìn)行讀寫操作的從機(jī)重復(fù)進(jìn)行該讀寫操作而覆蓋數(shù)據(jù)的問(wèn)題。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā) 明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1、一種主控機(jī)與從機(jī)通信的方法,應(yīng)用于包括主控機(jī)與至少一臺(tái)從機(jī)的系統(tǒng)中,其特征在于,該方法包括主控機(jī)接收復(fù)位信號(hào)或上電信號(hào);所述主控機(jī)復(fù)位或上電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束與所述主控機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮?;所述主控機(jī)接收到對(duì)第一從機(jī)的讀或?qū)懨?,根?jù)所述讀或?qū)懨钆c所述第一從機(jī)進(jìn)行相應(yīng)的讀或?qū)懖僮鳌?br> 2、 如權(quán)利要求1所述的方法,其特征在于,所述主控機(jī)向每臺(tái)從機(jī)發(fā)送 表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào)包括所述主控機(jī)將與每臺(tái)從機(jī)連接的數(shù)據(jù)SDA線端口置為低電平; 將連接每臺(tái)從機(jī)的時(shí)鐘線SCL端口置為高電平或高阻態(tài),并將所述與每 臺(tái)從機(jī)連接的SDA線端口再置為高電平。
3、 如權(quán)利要求2所述的方法,其特征在于,所述將連接每臺(tái)從機(jī)的時(shí)鐘 線SCL端口置為高電平時(shí),所述主控機(jī)引出一根SCL,該SCL分別與每臺(tái)從 機(jī)相連。
4、 如權(quán)利要求2所述的方法,其特征在于,所述將連接每臺(tái)從機(jī)的時(shí)鐘 線SCL端口置為高阻態(tài)時(shí),所述主控機(jī)引出一根SCL,該SCL分別與每臺(tái)從 才M目連,并且該SCL通過(guò)電阻連接到電源。
5、 如權(quán)利要求1所述的方法,其特征在于,所述控制所述每臺(tái)從機(jī)結(jié)束 與所述主控機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮靼颗_(tái)從機(jī)接收所述STOP信號(hào);根據(jù)所述STOP信號(hào),結(jié)束與所述主機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮鳌?br> 6、 一種主控機(jī)與從機(jī)通信的系統(tǒng),其特征在于,該系統(tǒng)包括主控機(jī)與至 少一臺(tái)從機(jī),其中主控機(jī),用于接收復(fù)位信號(hào)或上電信號(hào),并且在復(fù)位或上電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束與所述主控機(jī) 復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮鳎邮諏?duì)第一從機(jī)的讀或?qū)懨?,根?jù)所述 讀或?qū)懨钆c該第 一從機(jī)進(jìn)行相應(yīng)的讀或?qū)懖僮鳎坏谝粡臋C(jī),用于接收所述主控機(jī)發(fā)送的STOP信號(hào),根據(jù)所述STOP信號(hào), 結(jié)束與所述主機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮?,與所述主控機(jī)進(jìn)行相應(yīng)的 讀或?qū)懖僮鳌?br> 7、 如權(quán)利要求6所述的系統(tǒng),其特征在于,所述主控機(jī)引出一根SCL, 該SCL分別與每臺(tái)從才幾相連。
8、 如權(quán)利要求6所述的系統(tǒng),其特征在于,所述主控機(jī)引出一根SCL, 該SCL分別與每臺(tái)從機(jī)相連,并且該SCL通過(guò)電阻連接到電源。
9、 一種主控機(jī),其特征在于,該主控機(jī)包括接收模塊,用于接收復(fù)位信號(hào)或上電信號(hào),并接收對(duì)第一從機(jī)的讀或?qū)懨?;控制模塊,用于在復(fù)位或上電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào),控制所述每臺(tái)從機(jī)結(jié)束與所述主控機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮?;發(fā)送通信模塊,用于根據(jù)所述讀或?qū)懨钆c所述第一從機(jī)進(jìn)行相應(yīng)的讀或 寫操作。
10、 如權(quán)利要求9所述的主控機(jī),其特征在于,所述控制模塊包括 發(fā)送單元,用于發(fā)送在復(fù)位或上電后,向每臺(tái)從機(jī)發(fā)送表示數(shù)據(jù)傳輸結(jié)束的STOP信號(hào);控制單元,用于控制所述每臺(tái)從機(jī)結(jié)束與所述主控機(jī)復(fù)位或上電之前進(jìn)行 的讀或?qū)懖僮鳌?br> 全文摘要
本發(fā)明公開了一種主控機(jī)與從機(jī)通信的方法、系統(tǒng)及裝置,用以解決現(xiàn)有技術(shù)中由于從機(jī)的地址沖突,而造成的不能滿足I2C協(xié)議以及數(shù)據(jù)被改寫的問(wèn)題。該方法主控機(jī)接收復(fù)位信號(hào)或上電信號(hào),復(fù)位或上電后向每臺(tái)從機(jī)發(fā)送STOP信號(hào),控制每臺(tái)從機(jī)結(jié)束主控機(jī)復(fù)位或上電之前進(jìn)行的讀或?qū)懖僮鳎?dāng)該主控機(jī)接收到對(duì)第一從機(jī)的讀或?qū)懨顣r(shí),與該第一從機(jī)進(jìn)行讀或?qū)懖僮鳌H绫景l(fā)明提出的方案在主控機(jī)復(fù)位或重新上電后,對(duì)與其連接的每臺(tái)從機(jī)發(fā)送STOP信號(hào),告知每臺(tái)從機(jī)在該主控機(jī)復(fù)位之前或上電之前進(jìn)行的讀、寫操作,從而有效的避免了,由于主控機(jī)重新上電或復(fù)位,之前進(jìn)行讀寫操作的從機(jī)重復(fù)進(jìn)行該讀寫操作,覆蓋數(shù)據(jù)的問(wèn)題。
文檔編號(hào)G06F13/38GK101561790SQ20091014231
公開日2009年10月21日 申請(qǐng)日期2009年5月27日 優(yōu)先權(quán)日2009年5月27日
發(fā)明者曉 袁 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
灵山县| 卓资县| 怀宁县| 剑川县| 汝州市| 嵊泗县| 兴仁县| 静安区| 松阳县| 上高县| 建昌县| 集安市| 沛县| 和硕县| 古浪县| 玉山县| 五台县| 天等县| 林芝县| 崇州市| 江华| 长海县| 林甸县| 垣曲县| 闵行区| 连南| 图木舒克市| 巫溪县| 榆树市| 贞丰县| 汤原县| 德昌县| 佛冈县| 郯城县| 疏勒县| 扎赉特旗| 冕宁县| 老河口市| 武鸣县| 二连浩特市| 汉源县|