|
1.IIC 基礎(chǔ)概念:
IIC(Inter-Integrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。IIC總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇。可隨時(shí)監(jiān)控內(nèi)存、硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。
2. IIC總線的特點(diǎn):
IIC總線最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此IIC總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。總線的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。IIC總線的另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multimastering), 其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。
3. IIC總線工作原理:
a.總線的構(gòu)成:
IIC總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過(guò)程中,IIC總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。
CPU發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠郑?/span>
1) 地址碼用來(lái)選址,即接通需要控制的電路,確定控制的種類;
2) 控制量決定該調(diào)整的類別(如對(duì)比度、亮度等)及需要調(diào)整的量。
這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。
b. 信號(hào)類型(IIC總線在傳送數(shù)據(jù)過(guò)程中共有四種類型信號(hào)):
開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù);
結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù);
數(shù)據(jù)傳輸信號(hào):在開始條件以后,時(shí)鐘信號(hào)SCL的高電平周期期問(wèn),當(dāng)數(shù)據(jù)線穩(wěn)定時(shí),數(shù)據(jù)線SDA的狀態(tài)表示數(shù)據(jù)有效,即數(shù)據(jù)可以被讀走,開始進(jìn)行讀操作。在時(shí)鐘信號(hào)SCL的低電平周期期間,數(shù)據(jù)線上數(shù)據(jù)才允許改變。每位數(shù)據(jù)需要一個(gè)時(shí)鐘脈沖。
應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。
4.IIC控制三種控制信號(hào):
開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù):
結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù):
應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障:
主控器向被控器發(fā)送的信息種類有:?jiǎn)?dòng)信號(hào)、停止信號(hào)、7位地址碼、讀/寫控制位、10位地址碼、數(shù)據(jù)字節(jié)、重啟動(dòng)信號(hào)、應(yīng)答信號(hào)、時(shí)鐘脈沖。
被控器向主控器發(fā)送的信息種類有:應(yīng)答信號(hào)、數(shù)據(jù)字節(jié)、時(shí)鐘低電平。
在IIC總線通信過(guò)程中,參與通信的雙方之間傳輸?shù)男畔⒎N類:
主控制器:?jiǎn)?dòng)信號(hào),停止信號(hào),7位地址碼,讀/寫控制位,10位地址碼,數(shù)據(jù)字節(jié),重啟動(dòng)信號(hào),應(yīng)答信號(hào),時(shí)鐘脈沖信號(hào)。
被控制器:應(yīng)答信號(hào),數(shù)據(jù)字節(jié),時(shí)鐘低電平。
5.IIC通信中過(guò)程中出現(xiàn)的幾種信號(hào)狀態(tài):
a.總線空閑狀態(tài):
IIC總線的SDA和SCL兩條信號(hào)線同時(shí)處于高電平,此時(shí),各個(gè)器件的輸出級(jí)場(chǎng)效應(yīng)管均處于截止?fàn)顟B(tài),即釋放總線,由兩條信號(hào)線各自的上拉電阻把電平拉高。
b.啟動(dòng)信號(hào):
在時(shí)鐘線SCL保持高電平期間,數(shù)據(jù)線SDA上的電平被拉低(即負(fù)跳變)
啟動(dòng)信號(hào)是一種電平跳變時(shí)序信號(hào),而不是一個(gè)電平信號(hào)。啟動(dòng)信號(hào)是由主控器主動(dòng)注:建立的,在建立該信號(hào)之前I2C總線必須處于空閑狀態(tài)
c.停止信號(hào):
在時(shí)鐘線SCL保持高電平期間,數(shù)據(jù)線SDA被釋放,使得SDA返回高電平(即正跳變),稱為I2C總線的停止信號(hào),它標(biāo)志著一次數(shù)據(jù)傳輸?shù)慕K止;
停止信號(hào)也是一種電平跳變時(shí)序信號(hào),而不是一個(gè)電平信號(hào),停止信號(hào)也是由主控器主動(dòng)建立的,建立該信號(hào)之后,I2C總線將返回空閑狀態(tài);
d.數(shù)據(jù)位傳輸:
在I2C總線上傳送的每一位數(shù)據(jù)都有一個(gè)時(shí)鐘脈沖相對(duì)應(yīng)(或同步控制),即在SCL串行時(shí)鐘的配合下,在SDA上逐位地串行傳送每一位數(shù)據(jù);
進(jìn)行數(shù)據(jù)傳送時(shí),在SCL呈現(xiàn)高電平期間,SDA上的電平必須保持穩(wěn)定,低電平為數(shù)據(jù)0,高電平為數(shù)據(jù)1;
只有在SCL為低電平期間,才允許SDA上的電平改變狀態(tài)。邏輯0的電平為低電壓,而邏輯1的電平取決于器件本身的正電源電壓VDD(當(dāng)使用獨(dú)立電源時(shí));
e.應(yīng)答信號(hào):
I2C總線上的所有數(shù)據(jù)都是以8位字節(jié)傳送的,發(fā)送器每發(fā)送一個(gè)字節(jié),就在第九個(gè)時(shí)鐘脈沖期間釋放數(shù)據(jù)線,由接收器反饋一個(gè)應(yīng)答信號(hào);
應(yīng)答信號(hào)為低電平時(shí),規(guī)定為有效應(yīng)答位(ACK簡(jiǎn)稱應(yīng)答位),表示接收器已經(jīng)成功地接收了該字節(jié);
應(yīng)答信號(hào)為高電平時(shí),規(guī)定為非應(yīng)答位(NACK),一般表示接收器接收該字節(jié)沒(méi)有成功。
。。。。。。待續(xù)
Powered by 單片機(jī)教程網(wǎng)