集成電路互連總線IC演示文稿_第1頁
集成電路互連總線IC演示文稿_第2頁
集成電路互連總線IC演示文稿_第3頁
集成電路互連總線IC演示文稿_第4頁
集成電路互連總線IC演示文稿_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

集成電路互連總線IC演示文稿第一頁,共二十四頁。主要內容

1.1I2C總線通用知識1.2I2C總線的硬件相關術語與典型電路1.3I2C總線數(shù)據(jù)通信協(xié)議概要1.4主機向從機讀/寫1個字節(jié)數(shù)據(jù)的過程1.5關于I2C的進一步討論第二頁,共二十四頁。1.1I2C總線通用知識1.1.1I2C總線的歷史概況與特點I2C(Inter-IntegratedCircuit)總線標準的歷史概況1992年PHILIPS首次發(fā)布I2C總線規(guī)范Version1.01998年PHILIPS發(fā)布I2C總線規(guī)范Version2.0,至此標準模式和快速模式的I2C總線已經(jīng)獲得了廣泛應用,標準模式傳輸速率為100kbps,快速模式400kbps。同時,I2C總線也由7位尋址發(fā)展到10位尋址,滿足了更大尋址空間的需求2001年PHILIPS又發(fā)布了I2C總線規(guī)范Version2.1,完善和擴展了I2C總線的功能,并提出了傳輸速率可達3.4Mbps的高速模式,這使得I2C總線能夠支持現(xiàn)有及將來的高速串行傳輸,如EEPROM和Flash存儲器等第三頁,共二十四頁。I2C總線特點在硬件上,二線制的I2C串行總線使得各IC只需最簡單的連接,而且總線接口都集成在IC中,不需另加總線接口電路I2C總線還支持多主控(multi-mastering)串行的8位雙向數(shù)據(jù)傳輸位速率在標準模式下可達100kbps,快速模式下可達400kbps,高速模式下可達3.4Mbps連接到相同總線的IC數(shù)量只受到總線最大電容(400pf)的限制。但如果在總線中加上82B715總線遠程驅動器可以把總線電容限制擴展十倍,傳輸距離可增加到15m第四頁,共二十四頁。1.2I2C總線的硬件相關術語與典型電路I2C總線硬件相關術語主機(主控器):在I2C總線中,提供時鐘信號,對總線時序進行控制的器件從機(被控器):在I2C系統(tǒng)中,除主機外的其它設備均為從機地址:每個I2C器件都有自己的地址,以供自身在從機模式下使用發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件接收器:從總線接收數(shù)據(jù)的器件SDA(SerialDAta):串行數(shù)據(jù)線SCL(SerialCLock):串行時鐘線第五頁,共二十四頁。I2C總線的典型電路

下圖給出一個由MCU作為主機,通過I2C總線帶3個從機的單主機I2C總線系統(tǒng)。這是最常用、最典型的I2C總線連接方式

I2C總線的典型連接第六頁,共二十四頁。1.3I2C總線數(shù)據(jù)通信協(xié)議概要I2C總線上數(shù)據(jù)的有效性

I2C總線以串行方式傳輸數(shù)據(jù),從數(shù)據(jù)字節(jié)的最高位開始傳送,每個數(shù)位在SCL上都有一個時鐘脈沖相對應。在一個時鐘周期內,當時鐘線高電平時,數(shù)據(jù)線上必須保持穩(wěn)定的邏輯電平狀態(tài),高電平為數(shù)據(jù)1,低電平為數(shù)據(jù)0。當時鐘信號為低電平時,才允許數(shù)據(jù)線上的電平狀態(tài)變化I2C總線上數(shù)據(jù)的有效性第七頁,共二十四頁。I2C總線上的信號類型開始信號(START):如下(圖1)當SCL為高電平時,SDA由高電平向低電平跳變,產(chǎn)生開始信號。當總線空閑的時候(例如沒有主動設備在使用總線,即SDA和SCL都處于高電平),主機通過發(fā)送開始信號(START)建立通信停止信號(STOP):如下(圖1)當SCL為高電平時,SDA由低電平向高電平的跳變,產(chǎn)生停止信號。主機通過發(fā)送停止信號,結束時鐘信號和數(shù)據(jù)通信。SDA和SCL都將被復位為高電平狀態(tài)重新開始信號(RepeatedSTART):在I2C總線上,由主機發(fā)送一個開始信號啟動一次通信后,在首次發(fā)送停止信號之前,主機通過發(fā)送重新開始信號,可以轉換與當前從機的通信模式,或是切換到與另一個從機通信。如下(圖1)所示,當SCL為高電平時,SDA由高電平向低電平跳變,產(chǎn)生重新開始信號,它的本質就是一個開始信號第八頁,共二十四頁。圖1:開始、重新開始和停止信號第九頁,共二十四頁。應答信號(A):接收數(shù)據(jù)的IC在接收到8位數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出的特定的低電平脈沖。每一個數(shù)據(jù)字節(jié)后面都要跟一位應答信號,表示已收到數(shù)據(jù)I2C總線的應答信號第十頁,共二十四頁。I2C總線上數(shù)據(jù)傳輸格式一般情況下,一個標準的I2C通信由四部分組成:開始信號、從機地址傳輸、數(shù)據(jù)傳輸和結束信號。I2C總線上傳送的每一個字節(jié)均為8位,首先發(fā)送的數(shù)據(jù)位為最高位,每傳送一個字節(jié)后都必須跟隨一個應答位,每次通信的數(shù)據(jù)字節(jié)數(shù)是沒有限制的;在全部數(shù)據(jù)傳送結束后,由主機發(fā)送停止信號,結束通信

I2C總線的數(shù)據(jù)傳輸格式第十一頁,共二十四頁。I2C總線尋址約定為了消除I2C總線系統(tǒng)中主控器與被控器的地址選擇線,最大限度地簡化總線連接線,I2C總線采用了獨特的尋址約定,規(guī)定了起始信號后的第一個字節(jié)為尋址字節(jié),用來尋址被控器件,并規(guī)定數(shù)據(jù)傳送方向。在I2C總線系統(tǒng)中,尋址字節(jié)由被控器的7位地址位(D7~D1位)和一位方向位(D0位)組成。方向位為0時,表示主控器將數(shù)據(jù)寫入被控器,為1時表示主控器從被控器讀取數(shù)據(jù)。主控器發(fā)送起始信號后,立即發(fā)送尋址字節(jié),這時總線上的所有器件都將尋址字節(jié)中的7位地址與自己器件地址比較。如果兩者相同,則該器件認為被主控器尋址,并發(fā)送應答信號,被控器根據(jù)數(shù)據(jù)方向位(R/W)確定自身是作為發(fā)送器還是接收器。第十二頁,共二十四頁。1.4主機向從機讀/寫1個字節(jié)數(shù)據(jù)的過程主機向從機寫1個字節(jié)數(shù)據(jù)的過程

主機要向從機寫1個字節(jié)數(shù)據(jù)時,主機首先產(chǎn)生START信號,然后緊跟著發(fā)送一個從機地址,這個地址共有7位,緊接著的第8位是數(shù)據(jù)方向位(R/W),0表示主機發(fā)送數(shù)據(jù)(寫),1表示主機接收數(shù)據(jù)(讀),這時候主機等待從機的應答信號(ACK),當主機收到應答信號時,發(fā)送要訪問的地址,繼續(xù)等待從機的響應信號,當主機收到響應信號時,發(fā)送1個字節(jié)的數(shù)據(jù),繼續(xù)等待從機的響應信號,當主機收到響應信號時,產(chǎn)生停止信號,結束傳送過程。主機向從機寫數(shù)據(jù)第十三頁,共二十四頁。主機從從機讀1個字節(jié)數(shù)據(jù)的過程

當主機要從從機讀1個字節(jié)數(shù)據(jù)時,主機首先產(chǎn)生START信號,然后緊跟著發(fā)送一個從機地址,注意此時該地址的第8位為0,表明是向從機寫命令,這時候主機等待從機的應答信號(ACK),當主機收到應答信號時,發(fā)送要訪問的地址,繼續(xù)等待從機的應答信號,當主機收到應答信號后,主機要改變通信模式,所以主機發(fā)送重新開始信號,然后緊跟著發(fā)送一個從機地址,注意此時該地址的第8位為1,表明將主機設置成接收模式開始讀取數(shù)據(jù),這時主機等待從機的應答信號,當主機收到應答信號時,就可以接收1個字節(jié)的數(shù)據(jù),當接收完成后,主機發(fā)送非應答信號,表示不再接收數(shù)據(jù),主機進而產(chǎn)生停止信號,結束傳送過程。主機從從機讀數(shù)據(jù)第十四頁,共二十四頁。*AW60的I2C模塊寄存器

AW60的I2C模塊相關寄存器寄存器名稱縮寫地址訪問權限基本功能地址寄存器I2C1A0x00000058讀/寫設置從機地址分頻寄存器I2C1F0x00000059讀/寫設置I2C模塊的工作頻率等控制寄存器I2C1C0x0000005A讀/寫設置傳輸格式、中斷使能等狀態(tài)寄存器I2C1S0x0000005B讀/寫表明I2C模塊的工作狀態(tài)數(shù)據(jù)I/O寄存器I2C1D0x0000005C讀/寫收發(fā)數(shù)據(jù)第十五頁,共二十四頁。I2C地址寄存器

I2C地址寄存器(I2CAddressRegister,I2C1A)D7~D1—ADR7~ADR1為MCU作為從機時的從機地址。當主機在I2C總線上發(fā)送從機地址尋址從機,MCU作為從機設備時,將該地址與I2C1A的高7位比較,查看自己是否被主機選中D0—保留位。該位是為了將來的兼容性而設置的保留位,讀出總是0。寫I2C1A時,D0位不使用數(shù)據(jù)位D7D6D5D4D3D2D1D0數(shù)據(jù)地址0/不用復位00000000第十六頁,共二十四頁。I2C分頻寄存器

I2C分頻寄存器(I2CFrequencyDividerRegister,I2C1F)用于產(chǎn)生相應的分頻因子

I2C分頻寄存器的高2位MULT定義了增頻因子a,a和SCL的分頻因子配合使用,產(chǎn)生I2C波特率。當MULT為00、01、10時,a的值分別為1、2、4;MULT=11不使用I2C的低6位定義了I2C時鐘速率(ICR),這6位用來定義SCL分頻因子b和SDA保持值,分頻因子b乘以增頻因子a的值用于產(chǎn)生I2C總線波特率,公式如下:I2C總線波特率=CPU總線頻率(Hz)/(a×b)SDA保持時間是從SCL線上時鐘的下降沿開始到SDA線上數(shù)據(jù)穩(wěn)定這段時間,SDA保持值就是用來計算SDA保持時間的,公式如下:SDA保持時間=CPU總線周期×SDA保持值數(shù)據(jù)位D7D6D5D4D3D2D1D0定義MULTICR復位00000000第十七頁,共二十四頁。ICR中不同的內容對應著不同的SCL分頻因子值和不同的SDA保持值,下面舉例說明I2C總線波特率和SDA保持時間計算方法設CPU總線頻率為8MHz,MULT設置為01(a=2),要想得到100kbps的I2C總線波特率,則計算過程如下:根據(jù)公式:I2C總線波特率=CPU總線頻率(Hz)/(a×b),將已知相應值帶入得:100000=8000000/(2×b),b=40根據(jù)SCL分頻因子b的值,在表10-2中查找相應的ICR值和SDA保持值,可以看到,當b=40時,ICR=$07或$0B,而相應的SDA保持值=10或9根據(jù)公式:SDA保持時間=CPU總線周期×SDA保持值,算得:ICR=$07,SDA保持值=10時,SDA保持時間=1/8000000×10=1.25μsICR=$0B,SDA保持值=9時,SDA保持時間=1/8000000×9=1.125μs較長的SDA保持時間,會降低通信速率,但同時也增加了穩(wěn)定性,并且能延長設備間的通信距離。編程時應以通信的可靠性為原則,選擇合適的SDA保持時間來確定ICR值。如程序中選用SDA保持值=9,就能得到可靠的通信,那么將ICR設定為$0B即可;如果當SDA保持值=9時通信不穩(wěn),就選擇另一個為10的值進行實驗,若通信仍不穩(wěn)定,在保持I2C總線頻率不變的前提下,可通過改變MULT位來調整SDA保持時間第十八頁,共二十四頁。I2C控制寄存器

I2C控制寄存器(I2CControlRegister,I2C1C)D7—I2CEN(I2CEnable)為I2C使能位D6—I2CIE(I2CInterruptEnable)為I2C中斷請求允許位D5—MST(MasterModeSelect)為主模式選擇位D4—TX(TransmitModeSelect)為發(fā)送模式選擇位D3—TXAK(TransmitAcknowledgeEnable)為發(fā)送應答使能位D2—RSTA(RepeatSTART)位,當MCU在主機模式下,向該位寫1,將產(chǎn)生一個重新開始信號。該位讀出時總是0D1~D0—讀I2C1C時,D1、D0位為0;寫I2C1C時,D1、D0位不使用數(shù)據(jù)位D7D6D5D4D3D2D1D0定義I2CENI2CIEMSTTXTXAK0/RSTA0/不用0/不用復位00000000第十九頁,共二十四頁。I2C狀態(tài)寄存器

I2C狀態(tài)寄存器(I2CStatusRegister,I2C1S)

D7—TCF(TransferCompleteFlag)為發(fā)送完成標志位D6—IAAS(AddressedasaSlave)為地址被選擇標志位D5—BUSY(BusBusy)為總線忙標志位D4—ARBL(ArbitrationLost)為仲裁丟失標志位D3—讀I2C1S時,D3位為0;寫I2C1S時,D3位不使用D2—SRW(SlaveRead/Write)為從機讀寫標志位D1—I2CIF(I2CInterruptFlag)為I2C中斷標志位。I2CIF位可讀可寫D0—RXAK(ReceiveAcknowledge)為接收應答標志位數(shù)據(jù)位D7D6D5D4D3D2D1D0讀TCFIAASBUSYARBL0SRWI2CIFRXAK寫未定義未定義未定義未定義未定義復位00000000第二十頁,共二十四頁。I2CI/O數(shù)據(jù)寄存器

I2CI/O數(shù)據(jù)寄存器(I2CDataI/ORegister,I2C1D)

在主機發(fā)送模式下,將數(shù)據(jù)寫入I2C1D就初始化了數(shù)據(jù)發(fā)送,先發(fā)送數(shù)據(jù)字節(jié)的最高位。在主機接收模式下,讀該寄存器,準備接收從機發(fā)往總線上的數(shù)據(jù)字節(jié)。該寄存器在MCU為從機模式時仍具有相同功能。值得注意的是,當MCU要從主接收模式變?yōu)橹靼l(fā)送模式時,應在從I2C1D寄存器讀取數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論