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