標題: 單片機IIC總線協(xié)議,AT24C08儲存器 [打印本頁]

作者: 51黑tt    時間: 2016-3-6 12:57
標題: 單片機IIC總線協(xié)議,AT24C08儲存器
教師推薦書籍如下:
1.如果要學C語言基本知識請看
譚浩強寫的《C程序設(shè)計》
教師推薦的單片機書籍為以下兩本:
2. 新編MCS-51單片機應(yīng)用設(shè)計
哈爾濱工業(yè)大學出版社   張毅剛
上書主要以匯編語言為主,對單片機內(nèi)部結(jié)構(gòu)介紹較詳細,初學者可選擇本書,在聽講本課程的同時,不但學會了C語言,而且通過查看本書還可了解匯編語言。
3.8051系列單片機C程序設(shè)計完全手冊
人民郵電出版社   求是科技
上書主要講了單片機的C語言編程及很多例子,大家可參考,是一本非常好的書。
有以上三本書基本就夠了。






IIC總線(Inter Integrated Circuit Bus):Philips公司推出的串行總線標準(為二線制)?偩上擴展的外圍器件及外設(shè)接口通過總線尋址,是具備總線仲裁和高低速設(shè)備同步等功能的高性能多主機總線。
I2C總線工作原理
串行數(shù)據(jù)線SDA和串行時鐘線SCL構(gòu)成的,可發(fā)送和接收數(shù)據(jù)。
[size=111%]n所有掛接在I2C總線上的器件和接口電路都應(yīng)具有I2C總線接口,且所有的SDA/SCL同名端相連?偩上所有器件要依靠SDA發(fā)送的地址信號尋址,不需要片選線。
[size=111%]n特點:組成系統(tǒng)結(jié)構(gòu)簡單,占用空間小,芯片管腳的數(shù)量少,無需片選信號,價格低。允許若干兼容器件共享總線,應(yīng)用比較廣泛。總線的長度可7.6m,傳送速度可達400kbps標準速率為100kbps。支持多個組件。支持多主控器件(某時刻只能有一個主控器件)。I2C總線上所有設(shè)備的SDA, SCL引腳必須外接上拉電阻。

典型的I2C總線系統(tǒng)結(jié)構(gòu),如圖所示


I2C總線器件的尋址方式
由于所有器件都通過SCL和SDA連接在I2C總線上,因此,主器件在進行數(shù)據(jù)傳輸前需要通過尋址,選擇需要通信的從器件。I2C總線上所有外圍器件都需要有唯一的7位地址,由器件地址和引腳地址兩部分組成。
器件地址是I2C器件固有的地址編碼,器件出廠時就已經(jīng)給定,不可更改。
引腳地址是由I2C總線外圍器件的地址引腳(A2,A1,A0)決定,根據(jù)其在電路中接電源正極、接地或懸空的不同,形成不同的地址代碼。
      
[size=244%]                                                                       I2C總線概述

?          I2C總線采用兩線制,由數(shù)據(jù)線SDA和時鐘線SCL構(gòu)成。I2C總線對數(shù)據(jù)通信時序進行了嚴格的定義。


                             I2C總線數(shù)據(jù)操作

          在I2C總線上,數(shù)據(jù)是伴隨著時鐘脈沖,一位一位地傳送的,數(shù)據(jù)位由高到低傳送,每位數(shù)據(jù)占一個時鐘脈沖。I2C總線上的在時鐘線SCL高電平期間,數(shù)據(jù)線SDA的狀態(tài)就表示要傳送的數(shù)據(jù),高電平為數(shù)據(jù)1,低電平為數(shù)據(jù)0。在數(shù)據(jù)傳送時,SDA上數(shù)據(jù)的改變在時鐘線為低電平時完成,而SCL為高電平時,SDA必須保持穩(wěn)定,否則SDA上的變化會被當作起始或終止信號而致使數(shù)據(jù)傳輸停止。

2C總線在傳送數(shù)據(jù)過程中共有三種類型信號:開始信號、停止信號和應(yīng)答信號。

開始信號:SCL保持高電平的狀態(tài)下,SDA出現(xiàn)下降沿。出現(xiàn)開始信號以后,總線被認為“忙”。

停止信號:SCL保持高電平的狀態(tài)下,SDA出現(xiàn)上升沿。停止信號過后,總線被認為“空閑”。

應(yīng)答信號:接收數(shù)據(jù)的器件在接收到8位數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的器件發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。         

總線空閑:SCL和SDA都保持高電平。

總線忙:在數(shù)據(jù)傳送開始以后,SCL為高電平的時候,SDA的數(shù)據(jù)必須保持穩(wěn)定,只有當SCL為低電平的時候才允許SDA上的數(shù)據(jù)改變。


起始信號用于開始I2C總線通信。其中,起始信號是在時鐘線SCL為高電平

期間,數(shù)據(jù)SDA上高電平向低電平變化的下降沿信號。起始信號出現(xiàn)以后,

才可以進行后續(xù)的I2C總線尋址或數(shù)據(jù)傳輸?shù)?/p>




終止信號用于終止I2C總線通信。其中,終止信號是在時鐘線SCL為高電平期間,數(shù)據(jù)線SDA上低電平到高電平變化的上升沿信號。終止信號一出現(xiàn),所有I2C總線操作都結(jié)束,并釋放總線控制權(quán)。終止信號的時序如下:




應(yīng)答信號用于表明I2C總線數(shù)據(jù)傳輸?shù)慕Y(jié)束。 I2C總線數(shù)據(jù)傳送時,一個字節(jié)數(shù)據(jù)傳送完畢后都必須由主器件產(chǎn)生應(yīng)答信號。主器件在第9個時鐘位上釋放數(shù)據(jù)總線SDA,使其處于高電平狀態(tài),此時從器件輸出低電平拉低數(shù)據(jù)總線SDA為應(yīng)答信號。應(yīng)答信號的時序,如圖所示。




                    I2C總線的傳送格式
I2C總線的傳送格式為主從式,對系統(tǒng)中的某一器件來說有四種工作方式:主發(fā)送方式、從發(fā)送方式、主接收方式、從接收方式。只講主發(fā)送從接收(單片機發(fā)送 24C08接收)主器件產(chǎn)生開始信號以后,發(fā)送的第一個字節(jié)為控制字節(jié)。前七位為從器件的地址片選信號。最低位為數(shù)據(jù)傳送方向位(高電平表示讀從器件,低電平表示寫從器件),然后發(fā)送一個選擇從器件片內(nèi)地址的字節(jié),來決定開始讀寫數(shù)據(jù)的起始地址。接著再發(fā)送數(shù)據(jù)字節(jié),可以是單字節(jié)數(shù)據(jù),也可以是一組數(shù)據(jù),由主器件來決定。從器件每接收到一個字節(jié)以后,都要返回一個應(yīng)答信號(ASK=0)。主器件在應(yīng)答時鐘周期高電平期間釋放SDA線,轉(zhuǎn)由從器件控制,從器件在這個時鐘周期的高電平期間必須拉低SDA線,并使之為穩(wěn)定的低電平,作為有效的應(yīng)答信號。
在起始條件之后,必須是器件的控制字節(jié),其中,高四位為器件類型識別符(不同的芯片類型有不同的定義,E2PROM為1010),接著三位為片選,最低位為讀寫控制位,為“1”時為讀操作,為“0”時為寫操作。如下圖所示。


寫操作分為字節(jié)寫和頁面寫兩種操作,對于頁面寫,根據(jù)芯片的一次裝載的字節(jié)不同有所不同。頁面寫的地址、應(yīng)答和數(shù)據(jù)傳送的時序如下圖所示。

讀操作有三種基本操作:當前地址讀、隨機讀和順序讀。下圖給出的是順序讀的時序圖。應(yīng)當注意的是,為了結(jié)束讀操作,主機必須在第9個周期間發(fā)出停止條件或者在第9個時鐘周期內(nèi)保持SDA為高電平,然后發(fā)出停止條件。


              
                    C語言的相關(guān)程序



















歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1