新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機訪問IIC總線技術(shù)

單片機訪問IIC總線技術(shù)

作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
IIC 總線的特征:
1. 只要求兩條總線線路:一條串行數(shù)據(jù)線(SDA);一條串行時鐘總線
2. 每個接到總線上的器件都可以用軟件設(shè)定地址,通過唯一的地址??偩€上的不同設(shè)備會一直存在這一個主從關(guān)系,主設(shè)備可以工作在主發(fā)送和主接受模式。
3. 這是一個真正的多主機總線,如果多個或更多主機同時初始化數(shù)據(jù)傳輸,可以通過沖突檢測和仲裁檢測來防止數(shù)據(jù)被破壞。
4. 串行的8位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達100kbit/s,快速模式下科大400kbit/s,高速模式下可達3.4Mbit/s。
5. 片上集成有濾波器,可以濾除總線上的毛刺波,保證數(shù)據(jù)完整。
連接到相同總線的IC數(shù)量只受到總線的最大負載電容400pF的限制,因為掛接的設(shè)備越多,在總線上產(chǎn)生的負載電容就越大,會嚴(yán)重影響數(shù)據(jù)的傳輸波形,導(dǎo)致總線無法正常工作。
6. IIC設(shè)備便于電路的模塊話設(shè)計,能是系統(tǒng)的設(shè)計裁減更加靈活。
IIC典型應(yīng)用:
1. 現(xiàn)在的數(shù)碼電視機中使用的就是一個IIC總線,所有設(shè)備都掛接在IIC總線上。
2. DECT無繩電話基站,不同模塊也是通過IIC總線連接。
IIC總線規(guī)范:
在用到微控制器的系統(tǒng)中,需要一些規(guī)范來協(xié)調(diào)不同設(shè)備間的通信。
IIC總線的概念:
IIC總線支持任何IC生產(chǎn)工藝(NMOS, CMOS. 雙極性)。
兩線:
SDA-串行數(shù)據(jù)
SCL-串行時鐘
每個器件都有一個唯一的地址識別(微控制器,LCD驅(qū)動器,存儲器或是鍵盤接口),而且都可以作為一個發(fā)送器或接收器 由器件的功能決定 很明顯 LCD驅(qū)動器只是一個接收器 而存儲器則既可以接收又可以發(fā)送數(shù)據(jù) 除了發(fā)送器和接收器外 器件在執(zhí)行數(shù)據(jù)傳輸時也可以被看作是主機或從機(見表 1)主機是初始化總線的數(shù)據(jù)傳輸并產(chǎn)生允許傳輸?shù)臅r鐘信號的器件 此時 任何被尋址的器件都被認為是從機
表一:
術(shù)語描述
發(fā)送器發(fā)送數(shù)據(jù)到總線的器件
接收器從總線接受數(shù)據(jù)的器件
主機初始化發(fā)送、產(chǎn)生時鐘信號和終止發(fā)送的器件
從機被主機尋址的器件
多主機同時有多于一個主機嘗試控制總線,但不破壞報文
仲裁是一個在多個主機同時嘗試控制總線,但只允許其中一個控制總線并使報文不被破壞的過程
同步兩個或多個器件共用一個同步時鐘信號的過程
主機、從機;接收機,發(fā)送機:
關(guān)系都是相對的并且只在數(shù)據(jù)傳輸?shù)臅r候才會存在:
1)假設(shè)微控制器A(主)要給B(從)發(fā)送數(shù)據(jù)
1. A尋址B
2. A發(fā)送數(shù)據(jù)到B; A - 發(fā)送器 B - 接收器
3. A終止發(fā)送
2)假設(shè)A(主)想從B(從)接受信息
1. A尋址B
2. A從B接受數(shù)據(jù);A - 接收器 B - 發(fā)送器
3. A終止接收
總線仲裁過程:
多個主機同時嘗試發(fā)送信息到總線,其他主機都產(chǎn)生“0”的情況下,首先產(chǎn)生“1”的主機講丟失仲裁。
仲裁時的時鐘信號是用線與到SCL線的主機產(chǎn)生的時鐘的同步結(jié)合。
IIC總線接口電路:電路如下圖
圖中可以看出據(jù)誒大總線上的設(shè)備都是漏極(或集電極)開路,即OC門,只有OC們啊次可以實現(xiàn)總線上的線與。
數(shù)據(jù)的有效性:
SDA線上的數(shù)據(jù)必須在時鐘的高電平周期保持穩(wěn)定。數(shù)據(jù)線上的數(shù)據(jù)只能在SCL為低電平是才能改變。時序波
如下圖:
start,stop
數(shù)據(jù)傳送的起始和停止:
IIC總線中數(shù)據(jù)的起始和結(jié)束,與數(shù)據(jù)的位傳輸有所不同,
起始位:在SCL為高電平時,SDA從高電平向低電平切換
結(jié)束位:在SCL為高電平時,SDA從低電平向高電平切換
起始和結(jié)束位是由主機產(chǎn)生,總線在起始位開始之后被認為是處于忙狀態(tài),在出現(xiàn)結(jié)束位之后的某段時間后總線被確認為閑狀態(tài)。
在起始條件產(chǎn)生后,停止條件產(chǎn)生前出現(xiàn)的起始條件和第一個起始條件在功能上是一樣的。表示為(S)。
如果沒有硬件檢測總線起始和結(jié)束的設(shè)備想監(jiān)視IIC總線(如微處理器),那么在每個周期至少采樣兩次SDA總線來確認有沒有電平發(fā)生變化。
數(shù)據(jù)的傳輸:
字節(jié)格式傳輸:
SDA線上傳輸?shù)臄?shù)據(jù)必須是8位的,但每次可以傳輸多個字節(jié)。每個字節(jié)后面必須跟一個響應(yīng)位。
總線上每個字節(jié)首先傳送的是最高位(MSB)。
如果從機在接受數(shù)據(jù)前要完成一些工作(如中斷服務(wù)程序)才能接受或發(fā)送數(shù)據(jù),那么從機可以使時鐘線SCL保
持低電平迫使主機進入等待狀態(tài)。當(dāng)從機準(zhǔn)備好后接收下一個數(shù)據(jù)字節(jié)并釋放時鐘線后,數(shù)據(jù)傳輸繼續(xù)。 在傳
輸數(shù)據(jù)時使用同樣的方法也不會影響數(shù)據(jù)的傳輸。
響應(yīng)位:
數(shù)據(jù)傳輸必須帶響應(yīng)。相關(guān)的響應(yīng)脈沖由主機產(chǎn)生,在響應(yīng)的時鐘脈沖期間,發(fā)送器釋放SDA線(此時為高電平)響應(yīng)的時鐘脈沖期間,接收器必須將SDA線拉低,并保持。(CBUS除外)
如果從機不能響應(yīng)從機地址(在執(zhí)行別的程序),從機必須使數(shù)據(jù)線保持高電平。主機會產(chǎn)生一個停止條件終止
傳輸或者產(chǎn)生重復(fù)起始條件開始新的傳輸。
如果從機接收器響應(yīng)了從機地址但是在傳輸了一段時間后不能接受更多的數(shù)據(jù)字節(jié),主機必須終止傳輸。這個情
況用從機在第一個字節(jié)后沒有產(chǎn)生響應(yīng)來表示。從機使數(shù)據(jù)線保持高電平 主機產(chǎn)生一個停止或重復(fù)起始條件。
如果主機為接收模式,它必須在從機發(fā)送結(jié)束,時鐘停止的最后一個字節(jié)不發(fā)送響應(yīng)位,從而告訴發(fā)送器數(shù)據(jù)結(jié)
束。從機發(fā)送器釋放數(shù)據(jù)線,允許主機產(chǎn)生一個停止或重復(fù)起始條件。
數(shù)據(jù)傳輸時序,數(shù)據(jù)響應(yīng)時序如下圖:

本文引用地址:http://butianyuan.cn/article/201611/322091.htm
數(shù)據(jù)響應(yīng):
數(shù)據(jù)仲裁:
所有主機在SCL總線上產(chǎn)生自己的時鐘來傳輸數(shù)據(jù),數(shù)據(jù)只在時鐘的高電平周期有效。
時鐘同步通過線與SCL線來執(zhí)行。就是說:SCL線的高低切換會使器件開始數(shù)它們的低電平周期,而且一旦器件的時鐘變低,它會使SCL線保持這種狀態(tài)知道到達時鐘的高電平。但是,當(dāng)變?yōu)楦唠娖綍r,另一個總線上的時鐘仍處于低電平周期,這個低到高的電平變化不會出現(xiàn)在總線上改變SCL的狀態(tài)。所以,SCL線被最長低電平周期的器件所持有,此時低電平周期短的器件會進入高電平的等待狀態(tài)。
上一頁 1 2 下一頁

關(guān)鍵詞: 單片機IIC總線技

評論


技術(shù)專區(qū)

關(guān)閉