1樓:bhn舞於
1、主機應答是發生在主機讀取資料之後,比如主機要讀1個位元組八位的資料,這個時候,從機在接收到scl傳送的第九個上升沿時,主機就要控制sda線,讓sda線為低電平進行應答,否則通訊結束,但要注意的是,scl線始終由主機控制,從機只能接收時鐘線的訊號
2、從機應答發生在從機接收資料的時候,比如主機要對從機進行1個位元組八位的寫入時,當從機接收完8位資料後,在主機scl線傳送第九個上升沿時,從機就要控制sda線輸出一個低電平作為應答
2樓:匿名使用者
iic是按位元組來傳輸的,當每傳輸完一個位元組的資料,後面必須緊跟一個校驗位,這個校驗位是接收端通過控制sda(資料線)來實現的,以提醒傳送端資料我這邊已經接收完成。
(sda=0為ack 接收完成 sda=1為nack 繁忙中)
主機應答: 傳輸完一個位元組資料以後(資料傳輸方向:從機--->主機),主機控制(此時是接收端)sda來提醒從機(傳送端)我這邊接受完成
從機應答: 傳輸完一個位元組資料以後(資料傳輸方向:主機--->從機),從機控制(此時是接收端)sda來提醒主機(傳送端)我這邊接受完成
iic協議中應答和非應答的區別,我的意思是在應用中有什麼區別。
3樓:
iic中的應答是由從機在第9個scl週期拉低sda實現的
若不能產生應答或者說是在第9個週期使sda為高電平即非應答則說明從機忙或者有其他的原因無法響應,主機應該傳送停止或者重新開始傳送 而應答說明了主機傳送的一位元組數從機已經收到,可以繼續操作
4樓:小無字
應答是接收方給傳送方的訊號反饋,當微控制器傳送信方的時候,傳送一個位元組後自動會得到反饋訊號,只需判斷訊號的狀態就可以知道是不是傳送成功。
非應答是指傳送方告訴接收方,「我已經發完了,你可以收工了」,發完非應答就可以結束匯流排了。這是初學者的理解,如果我沒理解錯的話,我想看官能明白這個問題了。--無字
iic(i2c)的應答訊號是由主機發起告訴從機,還是由從機發起告訴主機啊?
5樓:
主機寫從機時:由從機應答「收到,可以繼續」
主機讀從機時:由主機應答「完畢,可以收工」
iic匯流排主機應答問題
6樓:匿名使用者
應答是電平置為高,相當於握手訊號。
主機預設有應該機制,預設就可以,不需要顯式呼叫。
i2c的應答和非應答怎麼理解
7樓:虛情假意的溫
非應答就是sda為高電平.
i2c傳輸的要點就是: 傳輸一個位元組 後面必然緊跟一個"響應"訊號.這個響應訊號可能來自主機,或者是從機,具體是誰,就要看傳輸方向。
下文中按照我的個人習慣稱呼為 "無應答":傳輸方向分兩種情況(每種情況又有兩種可能: a無應答和 b有應答):
1.主機->從機,主機對從機發一個位元組之後,主機要讀取從機的響應訊號(主機讀sda線) a) 主機讀sda為高電平,說明從機無應答
b) 主機讀sda為低電平,說明從機有應答。2.從機->主機, 主機讀取從機一個位元組之後,主機要向從機傳送一個響應訊號(主機寫sda線) a) 主機寫sda為高電平,從機收到主機的無應答訊號之後,從機停止傳輸,等待主機的停止訊號。
b) 主機寫sda為低電平,從機收到主機的應答訊號之後,從機繼續輸出下一位元組。
i2c 主機與從機通訊 應答問題
8樓:匿名使用者
看看cy是不是全域性變數,是不是#define的巨集定義;
也有可能程式不關心判斷ack狀態,只管往下發資料。
iic匯流排的應答訊號怎樣理解
9樓:匿名使用者
這個是為了後續通訊能繼續下去的一個機制。
凡是接收資料或命令方,都要給一個應答位,傳送方只有收到應答位後才繼續傳送。只有一個特殊情況不用應答位,就是主機(給時鐘訊號的一方)作為接收方時,在收到最後一個位元組資訊時可以不用應答。
由於iic的資料線一定有一個上拉電阻,如果通訊中能收到應答位,一定是接收方把資料線強制拉低,所以在開始學習iic通訊時,能收到方的應答位,是成功的第一步。
10樓:匿名使用者
1、首先iic通訊要分清主機與從機的關係,在主機對從機進行寫操作時,一般是在傳送完一個資料之後微控制器就進入檢測應答訊號狀態:先將兩個腳置位
sda=1;scl=1;然後在一定時間內不斷檢測sda腳的電平狀態,比如說你弄個迴圈for(i=255;i>0;i--)進行不斷判斷,當sda的電平為低時就跳出迴圈,說明此時從機已經ack,就可說明是i2c器件拉低;如果為高時,則
一直判斷完整個迴圈,到最後還為高時,就說明沒有應答。
2、寫應答和讀應答肯定有所區別的。寫應答是在你讀從機資料期間,當你接收到一個資料時,
可以應答的(想繼續通訊就應答),就將sda復位(拉低),不想應答(想結束通訊時)就置位(sda=1)。讀應答則在主機寫資料給從機期間,每當從機接
收到一個資料就會應答一下(將資料sda線拉低),主機將不斷檢測sda線的電平,主機就是憑sda的電平狀態才知道從機是否已經正確地接收了主機傳送的資料。
iic匯流排的應答訊號問題
11樓:匿名使用者
1、首先iic通訊要分清主機與從機的關係,在主機對從機進行寫操作時,一般是在傳送完一個資料之後微控制器就進入檢測應答訊號狀態:先將兩個腳置位sda=1;scl=1;然後在一定時間內不斷檢測sda腳的電平狀態,比如說你弄個迴圈for(i=255;i>0;i--)進行不斷判斷,當sda的電平為低時就跳出迴圈,說明此時從機已經ack,就可說明是i2c器件拉低;如果為高時,則一直判斷完整個迴圈,到最後還為高時,就說明沒有應答。
2、寫應答和讀應答肯定有所區別的。寫應答是在你讀從機資料期間,當你接收到一個資料時,可以應答的(想繼續通訊就應答),就將sda復位(拉低),不想應答(想結束通訊時)就置位(sda=1)。讀應答則在主機寫資料給從機期間,每當從機接收到一個資料就會應答一下(將資料sda線拉低),主機將不斷檢測sda線的電平,主機就是憑sda的電平狀態才知道從機是否已經正確地接收了主機傳送的資料。
12樓:行千里路
下面的回答分別對應著上面的問題:
1.scl=1期間變化的。scl=1期間,如果有應答,拉為底,微控制器檢測到應答訊號,如果本來就是低,那怎麼知道應答後匯流排上的0是i2c器件拉低的呢。
2.這是兩個獨立的過程。
檢測應答訊號是為了看看從機是否準備好工作了。當然這個工作包括髮送或者接受
13樓:匿名使用者
應答是電平置為高,相當於握手訊號。
主機預設有應該機制,預設就可以,不需要顯式呼叫。
i2c匯流排的 應答 和非應答 具體詳細的解說,
14樓:匿名使用者
首先你要搞清楚i2c主機和i2c從機,作為主機,當主機需要讀取資料時,先要先向從機寫從機地址,(從機收到後會傳送應答訊號),主機現在要切換的接收狀態,是否 收到從機的應答訊號(低電平);如果收到應答訊號,就可以開始讀寫資料了,如果是主機讀,主機讀到資料後,要向從機傳送應答訊號,可以繼續讀。。。。如果是主機寫,寫完後需要檢測是否接收到從機的應答訊號,收到應答訊號才能進行下一步。。。
非應答是在沒有握手成功或者傳送的資料錯誤時傳送的訊號,要求重發或者終止。。
人體為什么會出現免疫應答和排異的現象
免疫應答這個詞有點故弄玄虛了。其實就是免疫反應。說反應,是否比較清楚了?就是免疫系統的幹活。作出反應的物件一般就是對人體有害的病原體 細菌,病毒,寄生蟲,但不侷限於此。免疫系統認的是抗原,是分子級別的東西,所以還有自體免疫疾病 對自身的東西起反應 對腫瘤,對花粉之類過敏源也能起反應。分細胞免疫和體液...
高中的選修和必修有什么區別?各科的選修有多少
選修課與必修課共同作用於學生的發展,但由於選修課的目標旨趣 任務功能 教學途徑和方法乃至考核評價具有自身的特點,我們不能直接將必修課教學的做法簡單移入選修課教學中,應深入研究選修課教學的特殊性。那麼,選修課教學究竟有哪些特點呢?這裡通過與必修課的比較來加以說明。從教學目標看,必修課側重共同知識 技能...
你覺得農村出來的明星和城市的有什么區別
這個我覺得不同的地方還是蠻大的吧。比如說農村出來的明星朱之文,跟現在娛樂圈很多明星是不是不一樣。不單單是氣質和顏值不一樣,似乎生活狀態也不一樣。當然了,說話風格也不一樣。我覺得從農村出來的明星和城市的明星具有一個本質上的區別,那就是他們的善良是由內而外的,而且他們一定還會保持著節儉的傳統,他們也會更...