版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、0、IIC流程圖1、定義:I2C,一種總線結(jié)構(gòu)。 IIC 是作為英特爾IC 的互補(bǔ),這種總線類型是由菲利浦半導(dǎo)體公司在八十年代初設(shè)計(jì)出來的,主要是用來連接整體電路(ICS) ,IIC是一種多向控制總線,也就是說多個芯片可以連接到同一總線結(jié)構(gòu)下,同時每個芯片都可以作為實(shí)施數(shù)據(jù)傳輸?shù)目刂圃?。這種方式簡化了信號傳輸總線。例如:內(nèi)存中的SPD信息,通過IIC,與BX芯片組聯(lián)系,IIC 存在于英特爾PIIX4結(jié)構(gòu)體系中。 隨著大規(guī)模集成電路技術(shù)的發(fā)展,把CPU和一個單獨(dú)工作系統(tǒng)所必需的ROM、RAM、I/O端口、A/D、D/A等外圍電路集成在一個單片內(nèi)而制成的單片機(jī)或微控制器愈來愈方便。目前,世界上許多
2、公司生產(chǎn)單片機(jī),品種很多。其中包括各種字長的CPU,各種容量的ROM、RAM以及功能各異的I/O接口電路等等,但是,單片機(jī)的品種規(guī)格仍然有限,所以只能選用某種單片機(jī)來進(jìn)行擴(kuò)展。擴(kuò)展的方法有兩種:一種是并行總線,另一種是串行總線。由于串行總線的連線少,結(jié)構(gòu)簡單,往往不用專門的母板和插座而直接用導(dǎo)線連接各個設(shè)備。因此,采用串行線可大大簡化系統(tǒng)的硬件設(shè)計(jì)。PHILIPS公司早在十幾年前就推出了I2C串行總線,利用該總線可實(shí)現(xiàn)多主機(jī)系統(tǒng)所需的裁決和高低速設(shè)備同步等功能。因此,這是一種高性能的串行總線。 日前推出新型二選一I2C主選擇器,可以使兩個I2C主設(shè)備中的任何一個與共享資源連接,廣泛適用于從MP
3、3播放器到服務(wù)器等計(jì)算、通信和網(wǎng)絡(luò)應(yīng)用領(lǐng)域,從而使制造商和終端用戶從中獲益。PCA9541可以使兩個I2C主設(shè)備在互不連接的情況下與同一個從設(shè)備相連接,從而簡化了設(shè)計(jì)的復(fù)雜性。此外,新產(chǎn)品以單器件替代了I2C多個主設(shè)備應(yīng)用中的多個芯片,有效節(jié)省了系統(tǒng)成本。2、硬件結(jié)構(gòu)I2C串行總線一般有兩根信號線,一根是雙向的數(shù)據(jù)線SDA,另一根是時鐘線SCL。所有接到I2C總線設(shè)備上的串行數(shù)據(jù)SDA都接到總線的SDA上,各設(shè)備的時鐘線SCL接到總線的SCL上。典型的I2C總線結(jié)構(gòu)如圖1所示。 為了避免總線信號的混亂,要求各設(shè)備連接到總線的輸出端時必須是漏極開路(OD)輸出或集電極開路(OC)輸出。設(shè)備與總線
4、的接口電路如圖2所示。設(shè)備上的串行數(shù)據(jù)線SDA接口電路應(yīng)該是雙向的,輸出電路用于向總線上發(fā)送數(shù)據(jù),輸入電路用于接收總線上的數(shù)據(jù)。而串行時鐘線也應(yīng)是雙向的,作為控制總線數(shù)據(jù)傳送的主機(jī),一方面要通過SCL輸出電路發(fā)送時鐘信號,另一方面還要檢測總線上的SCL電平,以決定什么時候發(fā)送下一個時鐘脈沖電平;作為接受主機(jī)命令的從機(jī),要按總線上的SCL信號發(fā)出或接收SDA上的信號,也可以向SCL線發(fā)出低電平信號以延長總線時鐘信號周期??偩€空閑時,因各設(shè)備都是開漏輸出,上拉電阻Rp使SDA和SCL線都保持高電平。任一設(shè)備輸出的低電平都將使相應(yīng)的總線信號線變低,也就是說:各設(shè)備的SDA是“與”關(guān)系,SCL也是“與
5、”關(guān)系。 總線對設(shè)備接口電路的制造工藝和電平都沒有特殊的要求(NMOS、CMOS都可以兼容)。在I2C總線上的數(shù)據(jù)傳送率可高達(dá)每秒十萬位,高速方式時在每秒四十萬位以上。另外,總線上允許連接的設(shè)備數(shù)以其電容量不超過400pF為限。 總線的運(yùn)行(數(shù)據(jù)傳輸)由主機(jī)控制。所謂主機(jī)是指啟動數(shù)據(jù)的傳送(發(fā)出啟動信號)、發(fā)出時鐘信號以及傳送結(jié)束時發(fā)出停止信號的設(shè)備,通常主機(jī)都是微處理器。被主機(jī)尋訪的設(shè)備稱為從機(jī)。為了進(jìn)行通訊,每個接到I2C總線的設(shè)備都有一個唯一的地址,以便于主機(jī)尋訪。主機(jī)和從機(jī)的數(shù)據(jù)傳送,可以由主機(jī)發(fā)送數(shù)據(jù)到從機(jī),也可以由從機(jī)發(fā)到主機(jī)。凡是發(fā)送數(shù)據(jù)到總線的設(shè)備稱為發(fā)送器,從總線上接收數(shù)據(jù)的
6、設(shè)備被稱為接受器。 I2C總線上允許連接多個微處理器以及各種外圍設(shè)備,如存儲器、LED及LCD驅(qū)動器、A/D及D/A轉(zhuǎn)換器等。為了保證數(shù)據(jù)可靠地傳送,任一時刻總線只能由某一臺主機(jī)控制,各微處理器應(yīng)該在總線空閑時發(fā)送啟動數(shù)據(jù),為了妥善解決多臺微處理器同時發(fā)送啟動數(shù)據(jù)的傳送(總線控制權(quán))沖突,以及決定由哪一臺微處理器控制總線的問題,I2C總線允許連接不同傳送速率的設(shè)備。多臺設(shè)備之間時鐘信號的同步過程稱為同步化。3、應(yīng)用舉例51、96系列的單片機(jī)應(yīng)用很廣,但是由于它們都沒有I2C總線接口,從而限制了在這些系統(tǒng)中使用具有I2C總線接口的器件。通過對I2C總線時序的分析,可以用51單片機(jī)的兩根I/O線來
7、實(shí)現(xiàn)I2C總線的功能。接I2C總線規(guī)定:SCL線和SDA線是各設(shè)備對應(yīng)輸出狀態(tài)相“與”的結(jié)果,任一設(shè)備都可以用輸出低電平的方法來延長SCL的低電平時間,以迫使高速設(shè)備進(jìn)入等待狀態(tài),從而實(shí)現(xiàn)不同速度設(shè)備間的時鐘同步。因此,即使時鐘脈沖的高、低電平時間長短不一,也能實(shí)現(xiàn)數(shù)據(jù)的可靠傳送,可以用軟件控制I/O口做I2C接口。 在單主控器的系統(tǒng)中,時鐘線僅由主控器驅(qū)動,因此可以用51系列的一根I/O線作為SCL的信號線,將其設(shè)備為輸出方式,并由軟件控制來產(chǎn)生串行時鐘信號。在實(shí)際系統(tǒng)中使用了P1.3。另一根I/O線P1.2作為I2C總線的串行數(shù)據(jù)線,可在軟件控制下在時鐘的低電平期間讀取或輸出數(shù)據(jù)。系統(tǒng)傳輸
8、數(shù)據(jù)的過程如下:先由單片機(jī)發(fā)出一個啟始數(shù)據(jù)信號,接著送出要訪問器件的7位地址數(shù)據(jù),并等待被控器件的應(yīng)答信號。當(dāng)收以應(yīng)答信號后,根據(jù)訪問要求進(jìn)行相應(yīng)的操作。如果是讀入數(shù)據(jù),則數(shù)據(jù)線可一直設(shè)為輸入方式,中間不需要改變SDA線的工作方式,每讀入一個字節(jié)均應(yīng)依次檢測應(yīng)答信號;如果是輸出數(shù)據(jù),則首先將SDA設(shè)置為輸出方式,當(dāng)發(fā)送完一個字節(jié)后,需要改變SDA線為輸入方式,此時讀入被控器件的應(yīng)答信號就完成了一個字節(jié)的傳送。當(dāng)所有數(shù)據(jù)傳輸完畢后,應(yīng)向SDA發(fā)出一個停止信號,以結(jié)束該次數(shù)據(jù)傳輸。 I2C范例51系列用匯編語言實(shí)現(xiàn)啟始、停止、讀、寫、應(yīng)答的程序,讀者也可以根據(jù)I2C總線時序在96系列或其它單片機(jī)上
9、實(shí)現(xiàn)I2C總線接口。 a.啟動位程序 ACK:CLR P1.3 NOP NOP SETB P1.2 NOP NOP NOP CPL P1.3 ;P1.3=1 NOP NOP NOP DENGDAI:JB P1.2,DENGDAI RET b.讀數(shù)據(jù)程序 讀字節(jié)可以在當(dāng)前地址讀(CURRENT READ),也可以隨機(jī)讀(RANDOM READ),讀出數(shù)據(jù)的最后一個字節(jié)后不用加應(yīng)答信號。 READ:PUSH 0EH CLR P1.4 LCALL BSTART ;START MOV A,#0A0H ;SEND THE CNOTROL BYTE LCALL SENDBYTE LCALL ACK MOV
10、 A,R1 ;SEND THE ADDRESS LCALL SENDBYTE LCALL ACK LCALL BSTART ;START MOV A,#0A1H ;SEND THE CNOTROL BYTE LCALL SENDBYTE LCALL ACK LCALL READBYTE LCALL BSTOP POP 0EH RET 送字節(jié)程序: SENDBYTE:PUSH 0EH PUSH 00H MOV R0,#08H LOOP1:CLR P1.3 NOP NOP RLC A MOV P1.2,C CPL P1.3 ;P1.3=1 NOP NOP DJNZ R0,LOOP1 POP 00H
11、 POP 0EH RET 讀字節(jié)子程序: READBYTE:PUSH 0EH PUSH 00H MOV R0,#08H;READ THE CONTENT CLR A LOOP4:CLR P1.3 NOP NOP NOP SETB P1.3 ;P1.3=1 MOV C,P1.2 RLC A DJNZ R0,LOOP4 MOV R2,A POP 00H POP 0EH RET c.寫數(shù)據(jù)程序: WRITE:PUSH 0EH CLR P1.4 LCALL BSTART MOV A,#0A0H CLALL SENDBYTE ;SEND THE CONTROL BYTE LCALL ACK MOV A,R1 ;SEND THE ADDRESS LCALL SENDBYTE LCALL ACK MOV A,R2 ;WRITE THE CONTENT LCALL SENDBYTE LCALL ACK LCALL BSTOP POP 0EH RET 連續(xù)寫的兩個字節(jié)之間最好是有10ms的延時。當(dāng)然,也可以進(jìn)行頁寫(PAGE WRITE),即
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)車庫劃線合同范例
- 合同范例范例贈送
- 店面轉(zhuǎn)租轉(zhuǎn)讓合同范例
- 三明大型倉庫租賃合同模板
- 平安貸款買合同模板
- 農(nóng)民務(wù)工合同范例
- 專業(yè)采購服裝合同范例
- 卓越之旅:托兒所篇
- 住宅建筑市場全景解析
- 小區(qū)建房施工合同范例
- 國家開放大學(xué)《管理信息系統(tǒng)》大作業(yè)參考答案
- Unit 4 Time to celebrate 大單元教學(xué)設(shè)計(jì) 2024-2025學(xué)年外研版英語七年級上冊
- 二十屆三中全會精神應(yīng)知應(yīng)會知識測試30題(附答案)
- 【A公司企業(yè)文化建設(shè)問題及優(yōu)化建議開題報(bào)告3400字】
- 2.2.1 有理數(shù)的乘法(第一課時)-教案
- 肺結(jié)節(jié)診治中國專家共識(2024年版)解讀
- 中煤電力有限公司招聘筆試題庫2024
- 2024年秋新蘇教版三年級上冊科學(xué)全冊復(fù)習(xí)資料
- 輕量化材料在航空航天領(lǐng)域的應(yīng)用
- 《計(jì)算機(jī)視覺-基于OpenCV的圖像處理》全套教學(xué)課件
- 2023年10月廣東深圳市光明區(qū)馬田街道辦事處招聘一般專干21人筆試歷年典型考題及考點(diǎn)剖析附答案帶詳解
評論
0/150
提交評論