應(yīng)答和非應(yīng)答機制

應(yīng)答和非應(yīng)答機制

ID:7772587

大小:138.52 KB

頁數(shù):7頁

時間:2018-02-25

應(yīng)答和非應(yīng)答機制_第1頁
應(yīng)答和非應(yīng)答機制_第2頁
應(yīng)答和非應(yīng)答機制_第3頁
應(yīng)答和非應(yīng)答機制_第4頁
應(yīng)答和非應(yīng)答機制_第5頁
資源描述:

《應(yīng)答和非應(yīng)答機制》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、I2C的應(yīng)答和非應(yīng)答,如何理解?發(fā)布時間:2007-11-2713:05:01技術(shù)類別:ARM需要確認注冊郵箱后才能下載,立即確認我的郵箱A:應(yīng)答是I2C非常重要的機制,是不一定要弄清。它在工作中涉及的范圍包括總線仲裁(多主)、正常的數(shù)據(jù)通信。這個問題在常見總線里是比較特別的,應(yīng)當(dāng)深入詳細地了解。讓我們先整理一下這個問題。1 確認應(yīng)答和非應(yīng)答的定義和解釋:·應(yīng)答:是一個低電平信號?!し菓?yīng)答:是一個高電平信號,也許,叫做應(yīng)答非更合適?!蓚€信號的明顯不同是來源不同。應(yīng)答信號是當(dāng)前從器件發(fā)出的,而非應(yīng)答信號是由當(dāng)前主器件發(fā)出,再者方向是相反的。·應(yīng)答或

2、非答的時鐘,都由當(dāng)前主器件發(fā)生。·(這句出自何立民的《I2C總線應(yīng)用系統(tǒng)設(shè)計》…………)原述:“應(yīng)答信號在第9個時鐘上出現(xiàn),接收器輸出低電平為應(yīng)答信號(A),輸出高電平則為非應(yīng)答信號(/A)”,“由于某種原因,被控器不產(chǎn)生應(yīng)答時,如被控器正在進行其它處理無法接收總線上的數(shù)據(jù)時,必須釋放總線,將數(shù)據(jù)線置高電平,然后主控器可通過產(chǎn)生一個停止信號信號來比終止數(shù)據(jù)傳輸。”“當(dāng)主控器接收數(shù)據(jù)時接收到最后一個數(shù)據(jù)字節(jié)后,必須給被控器發(fā)送一個非應(yīng)答位(/A),使被控器發(fā)送器釋放數(shù)據(jù)線,以便主控制(注:應(yīng)當(dāng)是主控器,不是主控制)發(fā)送停止信號從而終止數(shù)據(jù)傳輸?!眻D1

3、 I2C應(yīng)答規(guī)則.gifI2C通信協(xié)議簡介(2013-01-1710:48:03)轉(zhuǎn)載▼標簽:雜談分類:通訊協(xié)議摒棄復(fù)雜的情況,這里只對I2C做簡單的介紹。一、I2C總線的一些特征:?只要求兩條總線線路一條串行數(shù)據(jù)線SDA一條串行時鐘線SCL?每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機從機關(guān)系軟件設(shè)定地址主機可以作為主機發(fā)送器或主機接收器?它是一個真正的多主機總線如果兩個或更多主機同時初始化數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞?串行的8位雙向數(shù)據(jù)傳輸位速率在標準模式下可達100kbit/s快速模式下可達400kbit/s

4、高速模式下可達3.4Mbit/s?片上的濾波器可以濾去總線數(shù)據(jù)線上的毛刺波保證數(shù)據(jù)完整?連接到相同總線的IC數(shù)量只受到總線的最大電容400pF限制二、I2C總線在傳送數(shù)據(jù)過程中共有三種類型信號:開始信號、結(jié)束信號和應(yīng)答信號。開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。結(jié)束信號:SCL為高電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。應(yīng)答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)起始和結(jié)束:boolI2C_Start(void){SDA_H;SCL_H;I2C_del

5、ay();if(!SDA_read)returnFALSE;//SDA線為低電平則總線忙,退出SDA_L;//拉低SDA線(當(dāng)SCL為高電平時,SDA由高電平向低電平跳變表示開始信號)I2C_delay();if(SDA_read)returnFALSE;//SDA線為高電平則總線出錯,退出SDA_L;//數(shù)據(jù)為準備好時,拉低SCL線I2C_delay();returnTRUE;}發(fā)出開始信號之后,設(shè)備在數(shù)據(jù)未準備好時,拉低SCL線,這樣主設(shè)備可知從設(shè)備未發(fā)送數(shù)據(jù),從設(shè)備在數(shù)據(jù)準備好,可以發(fā)送的時候,停止拉低SCL線,這時候才開始真正的數(shù)據(jù)傳輸vo

6、idI2C_Stop(void){SCL_L;I2C_delay();SDA_L;I2C_delay();SCL_H;//SCL為高電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)I2C_delay();SDA_H;I2C_delay();}STOP在單主環(huán)境下非必要,但在多主環(huán)境就非常必要,主控總線的設(shè)備發(fā)送STOP后,通知總線其他設(shè)備總線已經(jīng)閑置.voidI2C_Ack(void){SCL_L;I2C_delay();SDA_L;I2C_delay();SCL_H;I2C_delay();SCL_L;I2C_delay();}當(dāng)主機作為接收設(shè)備

7、時,主機對最后一個字節(jié)不應(yīng)答,以向發(fā)送設(shè)備(從設(shè)備)標識數(shù)據(jù)傳送結(jié)束。這是因為每次傳輸都應(yīng)得到應(yīng)答信號后再進行下一個字節(jié)傳送。如果此時接收機應(yīng)答了,那它就接收的不是最后一個字節(jié)了。如果是最后一個字節(jié),第9個時鐘周期發(fā)送的是非應(yīng)答信號(此時發(fā)送的不是應(yīng)答信號就是非應(yīng)答信號),最后發(fā)送停止信號。1)主發(fā)從收:主START->主發(fā)地址->從ACK->(主發(fā)數(shù)據(jù)->從ACK(循環(huán)))->主STOP或主START啟動下一次傳輸這一過程中,主控SCL線,從只在ACK時控SDA線,其他時刻主控SDA線。2)主收從發(fā):主START->從發(fā)地址->主ACK->(從發(fā)

8、數(shù)據(jù)->主ACK(循環(huán)))->接受至最后一個字節(jié)時,主NACK->主STOP或主START啟動下一次傳輸并非每傳輸8位數(shù)據(jù)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。