




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 項目4 I2C總線器件應(yīng)用實(shí)例總線器件應(yīng)用實(shí)例 4.1 I2C總線簡介總線簡介 I2C(InterIntegrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線產(chǎn)生于上世紀(jì)80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個組件狀態(tài)的通信。 I2C總線最主要的優(yōu)點(diǎn)是其簡單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本??偩€的長度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個組件。I2C總線的另一個優(yōu)點(diǎn)是,它支持多主
2、控(multimastering),其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個主控能夠控制信號的傳輸和時鐘頻率。當(dāng)然,在任何時間點(diǎn)上只能有一個主控。4.2 I2C總線的構(gòu)成和信號類型總線的構(gòu)成和信號類型1)I2C總線的構(gòu)成 I2C總線是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps,采用7位尋址,但是由于數(shù)據(jù)傳輸速率和應(yīng)用功能的迅速增加,I2C總線也增強(qiáng)為快速模式(400Kbits/s)和10位尋址以滿足更高速度和更大尋址空間的需求。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通
3、各自的號碼才能工作,所以每個電路和模塊都有唯一的地址。 在信息的傳輸過程中,I2C總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。 2)I2C總線的信號類型 I2C總線在傳送數(shù)據(jù)過程中共有三種類型信號,它們分別是:起始信號、終止信號和應(yīng)答信號。 起始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。 終止信號:SC
4、L為高電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。 圖圖4-1 I2C總線開始和結(jié)束信號定義總線開始和結(jié)束信號定義 應(yīng)答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個信號后,等待受控單元發(fā)出一個應(yīng)答信號,CPU接收到應(yīng)答信號后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號的判斷。若未收到應(yīng)答信號,由判斷為受控單元出現(xiàn)故障。如下圖所示圖圖4-2 I2C總線應(yīng)答信號定義總線應(yīng)答信號定義3)數(shù)據(jù)位的有效性規(guī)定 I2C總線進(jìn)行數(shù)據(jù)傳送時,時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘線上的信號為低電平期間,數(shù)據(jù)線上的高
5、電平或低電平狀態(tài)才允許變化。如下圖所示圖圖4-3 數(shù)據(jù)的傳送過程數(shù)據(jù)的傳送過程4)I2C總線上一次典型的工作流程 (1)開始:發(fā)送開始信號,表明傳輸開始。 (2)發(fā)送地址:主設(shè)備發(fā)送地址信息,包含7位的從設(shè)備地址和1位的指示位(表明讀或者寫,即數(shù)據(jù)流的方向)。 (3)發(fā)送數(shù)據(jù):根據(jù)指示位,數(shù)據(jù)在主設(shè)備和從設(shè)備之間傳輸。數(shù)據(jù)一般以8位傳輸,最重要的位放在前面;具體能傳輸多少量的數(shù)據(jù)并沒有限制。接收器上用一位的ACK(應(yīng)答信號)表明每一個字節(jié)都收到了。傳輸可以被終止和重新開始。 (4)停止:發(fā)送停止信號,結(jié)束傳輸。 目前有很多半導(dǎo)體集成電路上都集成了I2C接口。帶有I2C接口的單片機(jī)有:CYGNA
6、L的C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外圍器件如存儲器、監(jiān)控芯片等也提供I2C接口。4.3 I2C 總線接口電路總線接口電路 I2C總線通過上拉電阻接正電源。當(dāng)總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關(guān)系。圖圖4-4 I2C總線接口電路結(jié)構(gòu)總線接口電路結(jié)構(gòu)通過線“與”,I2C總線的外圍擴(kuò)展示意圖如下圖所示,它給出了單片機(jī)應(yīng)用系統(tǒng)中最常使用的I2C總線外圍通用器件。圖圖 4-5 I2C總線接口總線接口 4.4 I2C總線的傳輸協(xié)議與數(shù)據(jù)傳
7、送總線的傳輸協(xié)議與數(shù)據(jù)傳送 I2C規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)??偩€必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。如下圖所示圖圖4-6 串行總線上的數(shù)據(jù)傳送順序串行總線上的數(shù)據(jù)傳送順序 1) 控制字節(jié) 在起始條件之后,必須是從器件的控制字節(jié),其中高四位為器件類型識別符(不同的芯片類型有不同的定義,EEPROM一般應(yīng)為1
8、010),接著三位為片選,最后一位為讀寫位,當(dāng)為1時為讀操作,為0時為寫操作。從器件的控制字節(jié)如下圖所示圖圖4-7 從器件的控制字節(jié)從器件的控制字節(jié)2) 寫操作 寫操作分為字節(jié)寫和頁面寫兩種,在頁面寫方式下要根據(jù)芯片的一次裝載的字節(jié)不同而有所不同。關(guān)于頁面寫的地址、應(yīng)答和數(shù)據(jù)傳送的時序如下圖所示?;疑糠钟?0C51發(fā)送,白色部分由24CXX發(fā)送。圖圖4-8 頁面寫地址、應(yīng)答和數(shù)據(jù)傳送的時序圖頁面寫地址、應(yīng)答和數(shù)據(jù)傳送的時序圖說明: (1) 其中S表示開始信號,A是應(yīng)答信號,P是停止信號。 (2) SLAw是從器件的控制地址(最后一位為0,表示操作); (3) SADR是要寫入頁面的首地址。
9、3) 讀操作 讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。下圖給出的是順序讀的時序圖。應(yīng)當(dāng)注意的是:最后一個讀操作的第9個時鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個周期間發(fā)出停止條件或者在第9個時鐘周期內(nèi)保持SDA為高電平、然后發(fā)出停止條件。圖圖4-9 順序讀時序圖順序讀時序圖說明: (1) 其中S表示開始信號,A是應(yīng)答信號,P是停止信號。 (2) SLAw是從器件的控制地址(最后一位為0,表示寫操作); (3) SLAR是從器件的控制地址(最后一位為1,表示讀操 作); (4) SADR是讀出單元的首地址。在I2C總線的應(yīng)用中應(yīng)注意的事項總結(jié)為以下幾點(diǎn) : (1)嚴(yán)格按照
10、時序圖的要求進(jìn)行操作, (2)若與口線上帶內(nèi)部上拉電阻的單片機(jī)接口連接,可以不外加上拉電阻。 (3) 程序中為配合相應(yīng)的傳輸速率,在對口線操作的指令后可用NOP指令加一定的延時。 (4) 為了減少意外的干擾信號將EEPROM內(nèi)的數(shù)據(jù)改寫可用外部寫保護(hù)引腳(如果有),或者在EEPROM內(nèi)部沒有用的空間寫入標(biāo)志字,每次上電時或復(fù)位時做一次檢測,判斷EEPROM是否被意外改寫。4.5 I2C總線接口器件總線接口器件AT24C04應(yīng)用實(shí)例應(yīng)用實(shí)例 主機(jī)可以采用不帶I2C總線接口的單片機(jī),AT89C51、AT89C2051等單片機(jī),利用軟件實(shí)現(xiàn)I2C總線的數(shù)據(jù)傳送,即軟件與硬件結(jié)合的信號模擬。 1)典型
11、信號模擬時序圖 為了保證數(shù)據(jù)傳送的可靠性,標(biāo)準(zhǔn)的I2C總線的數(shù)據(jù)傳送有嚴(yán)格的時序要求。I2C總線的起始信號、終止信號、發(fā)送“0”及發(fā)送“1”的模擬時序如下圖所示:圖圖4-10 典型信號模擬時序圖典型信號模擬時序圖2)典型信號模擬子程序 見下面程序3)應(yīng)用實(shí)例: AT89C51對AT24C04進(jìn)行單字節(jié)的讀寫操作AT24C04是ATMEL公司的CMOS結(jié)構(gòu)4096位(512Byte8位)串行EEPROM,16字節(jié)頁面寫。與AT89C51單片機(jī)接口如下圖所示。SDA是漏極開路輸出,上拉電阻的選擇可參考AT24C04的數(shù)據(jù)手冊。下面是通過I2C接口對AT24C04進(jìn)行單字節(jié)寫操作的例程。 圖4-11
12、 AT24C04和51單片機(jī)接口示意圖 以下為C語言寫的軟件模擬I2C總線的數(shù)據(jù)傳送讀寫程序,I2C芯片為AT24C04。單片機(jī)對AT24C04進(jìn)行單字節(jié)的讀寫操作。 /*I2C芯片AT24C04單字節(jié)的讀寫程序,其地址為0。*功能是把數(shù)據(jù)0 xaa存儲到地址5中,*然后讀出并通過P0口驅(qū)動LED顯示*/#include#include#define uchar unsigned char#define nop _nop_()sbit sda=P17; /SDA和單片機(jī)的P17腳相連sbit scl=P16; /SCL和單片機(jī)的P16腳相連/定義ACC的位,利用ACC操作速度最快 sbit a
13、0=ACC0;sbit a1=ACC1;sbit a2=ACC2;sbit a3=ACC3;sbit a4=ACC4;sbit a5=ACC5;sbit a6=ACC6;sbit a7=ACC7;/開始函數(shù)void start()sda=1;nop;scl=1;nop;sda=0;nop;scl=0;nop;/停止函數(shù)void stop()sda=0; nop;scl=1;nop;sda=1;nop;/響應(yīng)函數(shù)void ack()uchar i;scl=1;nop;while(sda=1) & (i250)i+;scl=0;nop;/寫一個字節(jié)函數(shù)void write_byte(uch
14、ar dd)ACC=dd;sda=a7;scl=1;scl=0;sda=a6;scl=1;scl=0; sda=a5;scl=1;scl=0;sda=a4;scl=1;scl=0;sda=a3;scl=1;scl=0;sda=a2;scl=1;scl=0;sda=a1;scl=1;scl=0;sda=a0;scl=1;scl=0;sda=1;/讀一個字節(jié)函數(shù)uchar read_byte()sda=1;scl=1;a7=sda;scl=0;scl=1;a6=sda;scl=0;scl=1;a5=sda;scl=0;scl=1;a4=sda;scl=0; scl=1;a3=sda;scl=0;s
15、cl=1;a2=sda;scl=0; scl=1;a1=sda;scl=0;scl=1;a0=sda;scl=0; sda=1;return(ACC);/寫地址和數(shù)據(jù)函數(shù)void write_add(uchar address,uchar date)start();write_byte(0 xa0);/寫2404地址命令ack();write_byte(address);/寫地址ack();write_byte(date);/寫數(shù)據(jù)ack();stop();/讀地址、數(shù)據(jù)函數(shù)uchar read_add(uchar address)uchar temp;start();write_byte(0 xa0); ack();write_byte(address);ack();start();write_byte(0 xa1);ack();temp=read_by
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 急救中心患者流分析與優(yōu)化考核試卷
- Unit 5 Section A(2a-2e) 教學(xué)設(shè)計 2024-2025學(xué)年人教版英語七年級上冊
- 危險化學(xué)品運(yùn)輸車輛防腐蝕措施考核試卷
- 《我上學(xué)啦-可愛的校園》(教學(xué)設(shè)計)-2024-2025學(xué)年一年級上冊數(shù)學(xué)北師大版
- 印刷油墨的流變性能與印刷質(zhì)量考核試卷
- 木樓梯模塊化設(shè)計與應(yīng)用考核試卷
- 攝影器材行業(yè)知識產(chǎn)權(quán)戰(zhàn)略規(guī)劃與實(shí)施案例分析考核試卷
- 《簡單的小數(shù)加減法》(教學(xué)設(shè)計)-2023-2024學(xué)年三年級下冊數(shù)學(xué)人教版
- 公司生產(chǎn)工作計劃提高生產(chǎn)效率
- 促進(jìn)社區(qū)社會治安和諧的工作計劃
- 浙教版科學(xué)七年級上冊全冊課件
- (中級)心理治療師歷年考試真題匯總整理(含答案)
- 保潔巡查記錄表
- 內(nèi)四科修改版護(hù)士績效考核表
- 2023汽車用鋁電線束技術(shù)條件
- 設(shè)計變更工作流程(附設(shè)計變更申請表)
- 婦女保健知識講座
- 執(zhí)行申請書范本電子版
- 小學(xué)高年級《紅樓春趣》劇本(寧波實(shí)驗學(xué)校)
- 安徽省縣域?qū)W前教育普及普惠督導(dǎo)評估指標(biāo)體系
- 第二章-英國學(xué)前教育
評論
0/150
提交評論