IIC匯流排的應答訊號怎樣理解,IIc匯流排中,應答函式訊號怎樣寫???

2022-08-22 12:12:29 字數 3639 閱讀 2959

1樓:匿名使用者

這個是為了後續通訊能繼續下去的乙個機制。

凡是接收資料或命令方,都要給乙個應答位,傳送方只有收到應答位後才繼續傳送。只有乙個特殊情況不用應答位,就是主機(給時鐘訊號的一方)作為接收方時,在收到最後乙個位元組資訊時可以不用應答。

由於iic的資料線一定有乙個上拉電阻,如果通訊中能收到應答位,一定是接收方把資料線強制拉低,所以在開始學習iic通訊時,能收到方的應答位,是成功的第一步。

2樓:匿名使用者

1、首先iic通訊要分清主機與從機的關係,在主機對從機進行寫操作時,一般是在傳送完乙個資料之後微控制器就進入檢測應答訊號狀態:先將兩個腳置位

sda=1;scl=1;然後在一定時間內不斷檢測sda腳的電平狀態,比如說你弄個迴圈for(i=255;i>0;i--)進行不斷判斷,當sda的電平為低時就跳出迴圈,說明此時從機已經ack,就可說明是i2c器件拉低;如果為高時,則

一直判斷完整個迴圈,到最後還為高時,就說明沒有應答。

2、寫應答和讀應答肯定有所區別的。寫應答是在你讀從機資料期間,當你接收到乙個資料時,

可以應答的(想繼續通訊就應答),就將sda復位(拉低),不想應答(想結束通訊時)就置位(sda=1)。讀應答則在主機寫資料給從機期間,每當從機接

收到乙個資料就會應答一下(將資料sda線拉低),主機將不斷檢測sda線的電平,主機就是憑sda的電平狀態才知道從機是否已經正確地接收了主機傳送的資料。

iic匯流排中,應答函式訊號怎樣寫???

3樓:匿名使用者

1、首先iic通訊要分清主機與從機的關係,在主機對從機進行寫操作時,一般是在傳送完乙個資料之後微控制器就進入檢測應答訊號狀態:先將兩個腳置位

sda=1;scl=1;然後在一定時間內不斷檢測sda腳的電平狀態,比如說你弄個迴圈for(i=255;i>0;i--)進行不斷判斷,當sda的電平為低時就跳出迴圈,說明此時從機已經ack,就可說明是i2c器件拉低;如果為高時,則

一直判斷完整個迴圈,到最後還為高時,就說明沒有應答。

2、寫應答和讀應答肯定有所區別的。寫應答是在你讀從機資料期間,當你接收到乙個資料時,

可以應答的(想繼續通訊就應答),就將sda復位(拉低),不想應答(想結束通訊時)就置位(sda=1)。讀應答則在主機寫資料給從機期間,每當從機接

收到乙個資料就會應答一下(將資料sda線拉低),主機將不斷檢測sda線的電平,主機就是憑sda的電平狀態才知道從機是否已經正確地接收了主機傳送的資料。

4樓:匿名使用者

不對。bit ask() //檢測應答

iic匯流排的應答訊號問題

5樓:匿名使用者

1、首先iic通訊要分清主機與從機的關係,在主機對從機進行寫操作時,一般是在傳送完乙個資料之後微控制器就進入檢測應答訊號狀態:先將兩個腳置位sda=1;scl=1;然後在一定時間內不斷檢測sda腳的電平狀態,比如說你弄個迴圈for(i=255;i>0;i--)進行不斷判斷,當sda的電平為低時就跳出迴圈,說明此時從機已經ack,就可說明是i2c器件拉低;如果為高時,則一直判斷完整個迴圈,到最後還為高時,就說明沒有應答。

2、寫應答和讀應答肯定有所區別的。寫應答是在你讀從機資料期間,當你接收到乙個資料時,可以應答的(想繼續通訊就應答),就將sda復位(拉低),不想應答(想結束通訊時)就置位(sda=1)。讀應答則在主機寫資料給從機期間,每當從機接收到乙個資料就會應答一下(將資料sda線拉低),主機將不斷檢測sda線的電平,主機就是憑sda的電平狀態才知道從機是否已經正確地接收了主機傳送的資料。

6樓:行千里路

下面的回答分別對應著上面的問題:

1.scl=1期間變化的。scl=1期間,如果有應答,拉為底,微控制器檢測到應答訊號,如果本來就是低,那怎麼知道應答後匯流排上的0是i2c器件拉低的呢。

2.這是兩個獨立的過程。

檢測應答訊號是為了看看從機是否準備好工作了。當然這個工作包括傳送或者接受

7樓:匿名使用者

應答是電平置為高,相當於握手訊號。

主機預設有應該機制,預設就可以,不需要顯式呼叫。

i2c匯流排的 應答 和非應答 具體詳細的解說,

8樓:匿名使用者

首先你要搞清楚i2c主機和i2c從機,作為主機,當主機需要讀取資料時,先要先向從機寫從機位址,(從機收到後會傳送應答訊號),主機現在要切換的接收狀態,是否 收到從機的應答訊號(低電平);如果收到應答訊號,就可以開始讀寫資料了,如果是主機讀,主機讀到資料後,要向從機傳送應答訊號,可以繼續讀。。。。如果是主機寫,寫完後需要檢測是否接收到從機的應答訊號,收到應答訊號才能進行下一步。。。

非應答是在沒有握手成功或者傳送的資料錯誤時傳送的訊號,要求重發或者終止。。

iic匯流排上,怎麼知道資料傳送完,接收器發個非應答訊號

9樓:靈慕風

非應答訊號不是由資料傳送端傳送的,是由讀資料端傳送,即是由發出讀命令端傳送。

在iic匯流排上的主控和從裝置之間通訊:

1、主控向從裝置寫資料時,應答訊號由從裝置發出。

2、主控要從從裝置中讀取資料時,讀操作命令和位址段的應答都是由從裝置發出,從裝置響應後,從裝置發出資料,主控做出反應,若是應答訊號從裝置繼續發出資料,若是非應答訊號從裝置將不發資料。

iic協議中應答和非應答的區別,我的意思是在應用中有什麼區別。

10樓:

iic中的應答是由從機在第9個scl週期拉低sda實現的

若不能產生應答或者說是在第9個週期使sda為高電平即非應答則說明從機忙或者有其他的原因無法響應,主機應該傳送停止或者重新開始傳送 而應答說明了主機傳送的一位元組數從機已經收到,可以繼續操作

11樓:小無字

應答是接收方給傳送方的訊號反饋,當微控制器傳送信方的時候,傳送乙個位元組後自動會得到反饋訊號,只需判斷訊號的狀態就可以知道是不是傳送成功。

非應答是指傳送方告訴接收方,「我已經發完了,你可以收工了」,發完非應答就可以結束匯流排了。這是初學者的理解,如果我沒理解錯的話,我想看官能明白這個問題了。--無字

i2c 匯流排為什麼應答訊號為低而非應答訊號為高

12樓:匿名使用者

應答訊號的流程是,微控制器發完8bit資料後把sda拉高->i2c晶元把sda拉低->微控制器收到ack訊號,而非應答訊號則不會被拉低。你的意思我明白,反過來也可以,就是乙個標準而已,不都是人定的嘛。當初設計晶元時已經硬體配置好了,都按這樣來,所以沒法反過來了。

13樓:小o柒

空閒的時候為高啊,要應答的話總得有點動作,變化一下嘛

i2c匯流排的應答訊號是從器件發出的麼?它是怎麼發出的?

14樓:匿名使用者

應答訊號都是從機傳送,非應答訊號由主機傳送。

當某一資料傳送完成,主機就釋放資料線,這時候就由從機來拉高拉底資料線,這樣來發出的。

它是怎麼發出的?

我們來說模擬i2c通訊。一般都會把應答寫成乙個函式,然後到了資料完成就呼叫這個函式就發出了應答訊號。因為i2c是個協議,雙方都是約定好了的,主機也就識別出來了。

80C51微控制器的控制匯流排訊號有哪些?各訊號的作用如何

89c51微控制器內有控制匯流排 wr,rd,ea,ale等 位址鎖存允許ale 在系統擴充套件時,ale用於控制位址與鎖存器p0口輸出的低8位位址,從而實現資料與地位位址的復用。程式儲存器位址允許輸入端 ea 當ea為高電平時,cpu執行片內程式儲存器指令,但當pc中的值超過0ffffh時,將自運...

如何理解BOLL指標的買賣訊號,BOLL指標如何應用,它的買賣訊號有哪些?

1 當boll指標三條軌道同時向上執行時,打到中軌收到支撐即為買點,如圖1 2 當boll指標三條軌道同時向下執行時,打到中軌遇阻即為賣點,如圖2 3 當boll指標經過一波 三條軌道走平,打到前一波 的最後乙個有效 低點收到支撐並與下軌共振,為強勢 買點,上傳中軌時為第二買點,如圖3 4 當bol...

怎樣理解他們的意思,怎樣理解他們的意思

你可能想多了,不能一句話就判斷乙個人怎麼樣吧,你的認人識人水平也不能這麼自信吧,你要說你看人真的很準,那也不好說什麼。你也可以向你老公了解一下這個人,也許他們接觸的多,更了解一些吧。嫉妒心誰都有點吧,就看怎麼做了,如果所做的事並沒有傷害到誰也無所謂吧。人都有點小毛病,不過份都是好人。其實應該就是普通...