成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

主機(jī)如何給從機(jī)發(fā)送應(yīng)答信號(hào)(i2c如何表示應(yīng)答信號(hào)?)

i2c如何表示應(yīng)答信號(hào)?I2C總線用SDA數(shù)據(jù)線低電平響應(yīng),響應(yīng)過(guò)程如下:第一步:主機(jī)向從機(jī)發(fā)送地址或數(shù)據(jù)后,上拉SDA,等待從機(jī)回答是否接受。第二步:從機(jī)識(shí)別到有效地址或數(shù)據(jù)后,會(huì)主動(dòng)下拉SDA,告

主機(jī)如何給從機(jī)發(fā)送應(yīng)答信號(hào)(i2c如何表示應(yīng)答信號(hào)?)

i2c如何表示應(yīng)答信號(hào)?

I2C總線用SDA數(shù)據(jù)線低電平響應(yīng),響應(yīng)過(guò)程如下:

第一步:主機(jī)向從機(jī)發(fā)送地址或數(shù)據(jù)后,上拉SDA,等待從機(jī)回答是否接受。

第二步:從機(jī)識(shí)別到有效地址或數(shù)據(jù)后,會(huì)主動(dòng)下拉SDA,告訴主機(jī)已經(jīng)正確接收到信息。

第三步:主機(jī)檢測(cè)到有效響應(yīng)信號(hào)后,進(jìn)行下一步操作。

主機(jī)和從機(jī)可以雙向通信嗎?

的主從機(jī)可以雙向通信,但通信是全雙工還是半雙工取決于通信接口。

全雙工通信的發(fā)送線和接收線是獨(dú)立的,主從機(jī)可以同時(shí)發(fā)送和接收信息,如RS232、RS422總線和以太網(wǎng)通信。

半雙工通信沒(méi)有發(fā)送線和接收線的概念。它根據(jù)特殊協(xié)議調(diào)制發(fā)送和接收,并成為另一種通信信號(hào)。半雙工通信不能同時(shí)發(fā)送或接收,如RS485和CAN總線。

iic總線包含哪些寄存器,有什么用?

LPC2124有一個(gè)標(biāo)準(zhǔn)的I2C總線接口,可以配置為主機(jī)或從機(jī)??偩€時(shí)鐘速率可調(diào),最大總線速率可支持400KHZ。使用I2C總線時(shí),相應(yīng)的管腳設(shè)置要連接到SCL和SDA,總線要有一個(gè)上拉電阻,電阻值為1 ~ 10kΩ,具體視所需總線速度而定??偩€速度越高,電阻應(yīng)該越小。I2C總線可以連接標(biāo)準(zhǔn)的I2C接口設(shè)備,如串行EEPROM,RAM,LCD,時(shí)鐘芯片和音頻發(fā)生器。

根據(jù)方向位(R/W)的狀態(tài),I2C總線上有兩種類(lèi)型的數(shù)據(jù)傳輸:

(1)從主發(fā)送器向從接收器發(fā)送數(shù)據(jù)。

主機(jī)發(fā)送的第一個(gè)字節(jié)是從機(jī)地址,隨后是數(shù)據(jù)字節(jié)流。從機(jī)每接收一個(gè)字節(jié)就返回一個(gè)應(yīng)答位。

(2)從發(fā)射機(jī)向主接收機(jī)發(fā)送數(shù)據(jù)。

第一個(gè)字節(jié)(從機(jī)地址)從主機(jī)發(fā)送。從機(jī)返回一個(gè)應(yīng)答位。接下來(lái),從機(jī)向主機(jī)發(fā)送數(shù)據(jù)字節(jié)。主機(jī)為其接收的每個(gè)字節(jié)返回一個(gè)應(yīng)答位。接收到最后一個(gè)字節(jié)后,主機(jī)返回一個(gè) "非應(yīng)答位 "。主機(jī)產(chǎn)生所有串行時(shí)鐘脈沖以及起始和停止條件。當(dāng)停止條件或重復(fù)開(kāi)始條件出現(xiàn)時(shí),傳輸結(jié)束。由于重復(fù)開(kāi)始條件也是下一個(gè)串行傳輸?shù)拈_(kāi)始,I2C總線將不被釋放。

LPC2124的I2C是一個(gè)基于字節(jié)的I2C接口。只要將一個(gè)字節(jié)的數(shù)據(jù)寫(xiě)入I2C數(shù)據(jù)寄存器I2DAT,所有數(shù)據(jù)位都可以由I2C接口自動(dòng)發(fā)送。它有四種工作模式:主發(fā)送器模式、主接收器模式、從發(fā)送器模式和從接收器模式。

(1)主發(fā)射器模式

在這種模式下,數(shù)據(jù)從主機(jī)發(fā)送到從機(jī)。進(jìn)入主發(fā)送器模式前,I2C控制設(shè)置寄存器必須初始化如下:

I2CONSET -我從STO來(lái)到這里

- 1 0 0 0 0 - -

解釋如下:

I2EN=1,使能I2C接口;

AA=0,不產(chǎn)生響應(yīng)信號(hào),即不允許進(jìn)入從機(jī)模式;

SI=0,I2C中斷標(biāo)志為0;

STO=0,停止標(biāo)志為0;

STA=0,起始標(biāo)志為0。

在這種模式下,數(shù)據(jù)方向位(R/W)應(yīng)該為0,表示執(zhí)行了寫(xiě)操作。因此,發(fā)送的第一個(gè)字節(jié)是從機(jī)地址(7位)和寫(xiě)方向位。數(shù)據(jù)一次發(fā)送8位,每發(fā)送一個(gè)字節(jié),接收一個(gè)從機(jī)返回的應(yīng)答位。該模式的數(shù)據(jù)發(fā)送操作步驟如下:

①通過(guò)軟件設(shè)置STA進(jìn)入I2C主發(fā)送器模式,總線空閑后,I2C邏輯立即發(fā)送初始條件。

②發(fā)送初始條件時(shí),SI位被置位。此時(shí),I2STAT(狀態(tài)寄存器)中的狀態(tài)碼為08H,用于中斷服務(wù)程序。

③將從機(jī)地址和寫(xiě)方向位載入I2DAT(數(shù)據(jù)寄存器),然后清除SI位(向I2CONCLR寄存器的SIC位寫(xiě)入1以清除SI),并開(kāi)始發(fā)送從機(jī)地址和寫(xiě)方向位。

④當(dāng)?shù)刂泛蛯?xiě)方向位已發(fā)送且回復(fù)位已接收時(shí),SI位再次置位(可能的狀態(tài)碼為18H、20H或38H)。

⑤當(dāng)狀態(tài)碼為18H時(shí),表示從機(jī)已經(jīng)應(yīng)答,可以將數(shù)據(jù)加載到I2DAT中,然后將SI位清零,開(kāi)始發(fā)送數(shù)據(jù)。

⑥當(dāng)數(shù)據(jù)被正確發(fā)送時(shí),SI位再次被置位(可能的狀態(tài)代碼為28H和30H)。此時(shí),您可以再次發(fā)送數(shù)據(jù)或設(shè)置STO結(jié)束總線。

(2)主接收器模式

在這種模式下,主機(jī)接收的數(shù)據(jù)字節(jié)來(lái)自從機(jī)發(fā)送器,數(shù)據(jù)方向位應(yīng)為1,以指示讀取操作。該模式的數(shù)據(jù)接收操作步驟如下:

①通過(guò)軟件設(shè)置STA進(jìn)入I2C主發(fā)送器模式,總線空閑后,I2C邏輯立即發(fā)送初始條件。

②發(fā)送初始條件時(shí),SI位被置位。此時(shí),I2STAT(狀態(tài)寄存器)中的狀態(tài)碼為08H,用于中斷服務(wù)程序。

③將從機(jī)地址和讀取方向位載入I2DAT(數(shù)據(jù)寄存器),然后清除SI位并開(kāi)始發(fā)送從機(jī)地址和讀取方向位。

④當(dāng)從機(jī)地址和讀取方向位已發(fā)送且回復(fù)位已接收時(shí),SI位再次置位(可能的狀態(tài)代碼為38H、40H或48H)。

⑤當(dāng)狀態(tài)碼為40H時(shí),表示從機(jī)已應(yīng)答。設(shè)置AA位以控制接收數(shù)據(jù)后是產(chǎn)生應(yīng)答信號(hào)還是不應(yīng)答信號(hào),然后清除SI位以開(kāi)始接收數(shù)據(jù)。

⑥當(dāng)正確接收到一個(gè)字節(jié)的數(shù)據(jù)時(shí),SI位再次置位(可能的狀態(tài)碼是50H或58H)。此時(shí),您可以再次接收數(shù)據(jù)或設(shè)置STO結(jié)束總線。

(3)從接收機(jī)模式

黨培當(dāng)設(shè)為I2C從機(jī)時(shí),I2C主機(jī)可以對(duì)其讀寫(xiě)。要初始化為從機(jī),用戶(hù)必須將從機(jī)地址寫(xiě)入I2ADR(從機(jī)地址寄存器),并按如下配置I2CONSET:

我從STO來(lái)到這里

- 1 0 0 0 1 - -

在這種模式下,從主發(fā)送器接收數(shù)據(jù)字節(jié)。當(dāng)主機(jī)訪問(wèn)從機(jī)時(shí),它接收主機(jī)發(fā)送的數(shù)據(jù)并產(chǎn)生應(yīng)答信號(hào)。數(shù)據(jù)方向位應(yīng)該為0,以指示寫(xiě)操作。該模式的數(shù)據(jù)接收操作步驟如下:

①將從機(jī)地址寫(xiě)入I2ADR,并配置I2CONSET以完成初始化。等待它被自己的從機(jī)地址或通用地址尋址。

②接收到地址和方向位后,可以設(shè)置SI位,并從I2STAT讀取有效狀態(tài)碼。

③根據(jù)狀態(tài)代碼執(zhí)行相應(yīng)的操作。

(4)從發(fā)射機(jī)模式

當(dāng)主機(jī)訪問(wèn)從機(jī)時(shí),它向主機(jī)發(fā)送數(shù)據(jù),并等待主機(jī)的回復(fù)信號(hào)。數(shù)據(jù)方向位應(yīng)該為1,以指示讀取操作。使用這種模式時(shí),用戶(hù)程序只需要根據(jù)各種狀態(tài)碼進(jìn)行相應(yīng)的操作。

I2C時(shí)鐘由SCL占空比寄存器(I2SCLH、I2SCLL)控制,SCL的高電平和低電平分別設(shè)置,以獲得合適的總線時(shí)鐘頻率。寄存器I2CONSET用于控制I2C總線的模式和總線操作,其位SI是I2C中斷標(biāo)志,所有總線操作都依賴(lài)于該標(biāo)志。同時(shí)對(duì)總線進(jìn)行箝位,使得總線的數(shù)據(jù)發(fā)送/接收可以同步控制。寄存器I2CONCLR是相應(yīng)的清零寄存器;I2STAT是I2C狀態(tài)寄存器,用于指示總線處于哪種狀態(tài),以便于控制操作。I2DAT是一個(gè)I2C總線數(shù)據(jù)寄存器,包含要發(fā)送的數(shù)據(jù)或剛接收的數(shù)據(jù)。當(dāng)系統(tǒng)作為從機(jī)時(shí),I2ADR從機(jī)地址寄存器有效。當(dāng)總線訪問(wèn)該地址時(shí),將產(chǎn)生一個(gè)I2C中斷。

I2C主機(jī)的基本操作方法:

①設(shè)置I2C銷(xiāo)連接;

②設(shè)置I2C時(shí)鐘速率(I2SCLH,I2 SCLL);

③置為主機(jī),發(fā)送起始信號(hào)(I2CONSET的I2EN和STA位為1,AA位為0);

④發(fā)送從機(jī)地址(I2DAT)并控制I2CONSET傳輸;

⑤判斷總線狀態(tài)(I2STAT)并控制數(shù)據(jù)傳輸;

⑥發(fā)送結(jié)束信號(hào)(I2CONSET)。

I2C從機(jī)的基本操作方法:

①設(shè)置I2C銷(xiāo)連接;

②設(shè)置自己的從機(jī)地址(i2adr);

③使能I2C(I2C onset的I2EN和AA位為1);

④判斷SI位或等待I2C中斷和主機(jī)操作;

⑤判斷總線狀態(tài)I2STAT,控制數(shù)據(jù)傳輸。