I2C總線與SPI總線技術_第1頁
I2C總線與SPI總線技術_第2頁
I2C總線與SPI總線技術_第3頁
I2C總線與SPI總線技術_第4頁
I2C總線與SPI總線技術_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、總線技術I2C與SPI接口小型智能電子產(chǎn)品設計與制作總線 總線(Bus)是計算機各種功能部件之間傳送信息的公共通信干線,它是由導線組成的傳輸線束 在計算機系統(tǒng)中,各個部件之間傳送信息的公共通路叫總線,微型計算機是以總線結構來連接各個功能部件的。 總線分類 按照傳輸數(shù)據(jù)的方式劃分,可以分為串行總線和并行總線。串行總線中,二進制數(shù)據(jù)逐位通過1根數(shù)據(jù)線發(fā)送到目的器件;并行總線的數(shù)據(jù)線通常超過2根。常見的串行總線有SPI、I2C、USB及RS232等。 按照時鐘信號是否獨立,可以分為同步總線和異步總線。同步總線的時鐘信號獨立于數(shù)據(jù),而異步總線的時鐘信號是從數(shù)據(jù)中提取出來的。SPI、I2C是同步串行總線

2、,RS232采用異步串行總線。 SCSI、ATA、PCI、IEEE1394 總線技術指標 總線的工作頻率:以MHZ為單位,工作頻率越高,總線工作速度越快,總線帶寬越寬。 總線的位寬:總線能同時傳送的二進制數(shù)據(jù)的位數(shù) 總線的帶寬總線的工作頻率*總線的位寬/8 注意:波特率是指數(shù)據(jù)信號對載波的調制速率,它用單位時間內載波調制狀態(tài)改變的次數(shù)來表示,其單位是波特(Baud)。波特率與比特率(數(shù)字信號的傳輸速率bit/s)的關系是比特率=波特率X單個調制狀態(tài)對應的二進制位數(shù)。 。異步通信 字符格式:規(guī)定有起始位、數(shù)據(jù)位、奇偶校驗位、停止位等(RS232485)數(shù)據(jù)傳送方向概念 單工方式:單工方式:只允許

3、數(shù)據(jù)按照一個固定的方向傳送 半雙工方式:半雙工方式:每次只能有一個站發(fā)送,另一個站接收 全雙工方式:全雙工方式:允許通信雙方同時進行發(fā)送和接收串行與并行總線對比 與并行擴展總線相比,串行擴展總線能夠最大程與并行擴展總線相比,串行擴展總線能夠最大程度發(fā)揮最小系統(tǒng)的資源功能、簡化連接線路,縮度發(fā)揮最小系統(tǒng)的資源功能、簡化連接線路,縮小電路板面積、擴展性好,可簡化系統(tǒng)設計。小電路板面積、擴展性好,可簡化系統(tǒng)設計。 串行總線的缺點是數(shù)據(jù)吞吐容量小,信號傳輸較串行總線的缺點是數(shù)據(jù)吞吐容量小,信號傳輸較慢。但隨著慢。但隨著CPU芯片工作頻率的提高,以及串行芯片工作頻率的提高,以及串行總線的功能增強,這些缺

4、點將逐步淡化。總線的功能增強,這些缺點將逐步淡化。 SPI、I2C、1-Wire、RS232是目前單片機應用系是目前單片機應用系統(tǒng)中最常用的幾個串行總線接口。統(tǒng)中最常用的幾個串行總線接口。I2C總線總線I2C總線總線 I I2 2C C(Inter Integrated CircuitInter Integrated Circuit)常譯為常譯為內部集成電路總線,或集成電路間總線,內部集成電路總線,或集成電路間總線,它它是由是由PhilipsPhilips公司推出的芯片間串行傳輸公司推出的芯片間串行傳輸總線。使用總線。使用2 2線實現(xiàn)數(shù)據(jù)通信。線實現(xiàn)數(shù)據(jù)通信。1 1根串行數(shù)據(jù)線(根串行數(shù)據(jù)線(

5、SDASDA)1 1根串行時鐘線(根串行時鐘線(SCLSCL)I2C總線的基本特性總線的基本特性1 硬件結構上具有相同的硬件接口界面 R: 4.7K-5.1K -20k(DATASHEET)I2C總線的基本特性總線的基本特性2 在單主系統(tǒng)中,每個在單主系統(tǒng)中,每個I I2 2C C接口芯片具有唯一的器件地址,接口芯片具有唯一的器件地址,各從器件之間各從器件之間互不干擾互不干擾,相互之間不能進行通信。,相互之間不能進行通信。MCUMCU與與I I2 2C C器件之間的通信是通過獨一無二的器件地址來實現(xiàn)的。器件之間的通信是通過獨一無二的器件地址來實現(xiàn)的。 如果兩個或更多主機同時初始化數(shù)據(jù)傳輸,可以

6、通過如果兩個或更多主機同時初始化數(shù)據(jù)傳輸,可以通過沖突沖突檢測和仲裁檢測和仲裁防止數(shù)據(jù)被破壞。防止數(shù)據(jù)被破壞。 任何器件通過任何器件通過I I2 2C C總線與總線與MCUMCU進行數(shù)據(jù)傳送的方式基本一樣,進行數(shù)據(jù)傳送的方式基本一樣,決定了決定了I I2 2C C總線總線軟件編寫的一致性軟件編寫的一致性。 數(shù)據(jù)傳輸位速率在標準模式下可達數(shù)據(jù)傳輸位速率在標準模式下可達100kbit/s,快速模式,快速模式下可達下可達400kbit/s,高速模式下可達,高速模式下可達3.4Mbit/s。I2C總線信息傳送總線信息傳送當當I2C總線沒有進行信息傳送時,數(shù)據(jù)線(總線沒有進行信息傳送時,數(shù)據(jù)線(SDA)

7、和時鐘線()和時鐘線(SCL)都為高電平都為高電平(上拉)上拉)開始信號:開始信號:SCL為高電平時,為高電平時,SDA由高電平向低電平跳變,開始傳送由高電平向低電平跳變,開始傳送數(shù)據(jù)。數(shù)據(jù)。結束信號:結束信號:SCL為高電平時,為高電平時,SDA由低電平向高電平跳變,結束傳送由低電平向高電平跳變,結束傳送數(shù)據(jù)。數(shù)據(jù)。開始信號和結束信號之間傳送的是信息,信息的字節(jié)數(shù)沒有限制,但開始信號和結束信號之間傳送的是信息,信息的字節(jié)數(shù)沒有限制,但每個字節(jié)必須為每個字節(jié)必須為8位位,高位在前,低位在后。數(shù)據(jù)線,高位在前,低位在后。數(shù)據(jù)線SDA上每一位信上每一位信息狀態(tài)的改變只能發(fā)生在時鐘線息狀態(tài)的改變只能

8、發(fā)生在時鐘線SCL為低電平的期間,因為為低電平的期間,因為SCL高電高電平的期間平的期間SDA狀態(tài)的改變已經(jīng)被用來表示開始信號和結束信號。每個狀態(tài)的改變已經(jīng)被用來表示開始信號和結束信號。每個字節(jié)后面必須接收一個字節(jié)后面必須接收一個應答信號應答信號(ACK),),ACK是從控制器在接收是從控制器在接收到到8位數(shù)據(jù)后向主控制器發(fā)出的特定的位數(shù)據(jù)后向主控制器發(fā)出的特定的低電平脈沖低電平脈沖,用以表示已收到,用以表示已收到數(shù)據(jù)。主控制器接收到應答信號(數(shù)據(jù)。主控制器接收到應答信號(ACK)后,可根據(jù)實際情況作出是)后,可根據(jù)實際情況作出是否繼續(xù)傳遞信號的判斷。若未收到否繼續(xù)傳遞信號的判斷。若未收到AC

9、K,則判斷為從控制器出現(xiàn)故障。,則判斷為從控制器出現(xiàn)故障。讀寫操作 主控制器每次傳送的信息的第一個字節(jié)必須是器主控制器每次傳送的信息的第一個字節(jié)必須是器件地址碼,第二個字節(jié)為器件單元地址,用于實件地址碼,第二個字節(jié)為器件單元地址,用于實現(xiàn)選擇所操作的器件的內部單元,從第三個字節(jié)現(xiàn)選擇所操作的器件的內部單元,從第三個字節(jié)開始為傳送的數(shù)據(jù)。其中器件地址碼格式如下:開始為傳送的數(shù)據(jù)。其中器件地址碼格式如下:D7D6D5D4D3D2D1D0器件類型碼片選R/WI2C讀寫操作范例讀寫操作范例/* 電平模擬函數(shù)和基本讀寫函數(shù) void IIC_Start(void); void IIC_Stop(void

10、); void SEND_0(void); void SEND_1(void); bit Check_Acknowledge(void); void Write_Byte(uchar b); bit Write_N_Bytes(uchar *buffer,uchar n);bit Read_N_Bytes(uchar SlaveAdr,uchar n,uchar *buffer); uchar Read_Byte(void); */ sbit SCL=P16; sbit SDA=P17; void DELAY(uint t) while(t!=0) t-; void IIC_Start(voi

11、d) /啟動I2C總線的函數(shù),當SCL為高電平時使SDA產(chǎn)生一個負跳變 SDA=1; SCL=1; DELAY(DELAY_TIME); SDA=0; DELAY(DELAY_TIME); SCL=0; DELAY(DELAY_TIME); void IIC_Stop(void) /終止I2C總線,當SCL為高電平時使SDA產(chǎn)生一個正跳變 SDA=0; SCL=1; DELAY(DELAY_TIME); SDA=1; DELAY(DELAY_TIME); SCL=0; DELAY(DELAY_TIME); void SEND_0(void) /發(fā)送發(fā)送0,在,在SCL為低電平時使為低電平時使S

12、DA信號變?yōu)榈托盘栕優(yōu)榈?SCL=0; SDA=0; SCL=1; DELAY(DELAY_TIME); SCL=0;DELAY(DELAY_TIME); void SEND_1(void) /發(fā)送發(fā)送1,在,在SCL為低電平時使為低電平時使SDA信號變?yōu)楦咝盘栕優(yōu)楦?SCL=0; SDA=1; SCL=1; DELAY(DELAY_TIME); SCL=0; DELAY(DELAY_TIME); bit Check_Acknowledge(void) /發(fā)送完一個字節(jié)后檢驗設備的應答信號 SDA=1; SCL=1; DELAY(DELAY_TIME/2); F0=SDA; DELAY(DEL

13、AY_TIME/2); SCL=0; DELAY(DELAY_TIME); if(F0=1) return FALSE; return TRUE; void Write_Byte(uchar b) /向IIC總線寫一個字節(jié) uchar i; for(i=0;i8;i+) if(bi)&0 x80) SEND_1(); else SEND_0(); bit Write_N_Bytes(uchar *buffer,uchar n) /向I2C總線寫n個字節(jié) uchar i; IIC_Start(); for(i=0;in;i+) Write_Byte(bufferi); if(!Check

14、_Acknowledge() IIC_Stop(); return(i=n); IIC_Stop(); return TRUE; uchar Read_Byte(void)reentrant /從從I2C總線讀一個字節(jié)總線讀一個字節(jié) uchar b=0,i; for(i=0;i8;i+) SDA=1; /釋放總線釋放總線 SCL=1; /接受數(shù)據(jù)接受數(shù)據(jù) DELAY(10); F0=SDA; DELAY(10); SCL=0; if(F0=1) b=b1; b=b|0 x01; else b=b1; return b; bit Read_N_Bytes(uchar SlaveAdr,uchar

15、 n,uchar *buffer) /從從I2C總線讀總線讀n個字節(jié)個字節(jié) uchar i; IIC_Start(); Write_Byte(SlaveAdr); /向總線發(fā)送接收器地址向總線發(fā)送接收器地址 if(!Check_Acknowledge() /等待接收器應答信號等待接收器應答信號 return FALSE; for(i=0;i0; i-) /循環(huán)8次 SCLK=0; temp=addr; DIO=(bit)(temp&0 x01); /從低位到高位 addr=1; SCLK=1; /上升沿寫入 (續(xù)) /發(fā)送數(shù)據(jù) for (i=8; i0; i-) SCLK=0; temp=dat; DIO=(bit)(temp&0 x01); dat=1; SCLK=1; /上升沿寫入 RST=0; /數(shù)據(jù)讀取子程序unsigned char Read1302(unsigned char addr) unsigned char i,temp,dat; RST=0; SCLK=0; RST=

溫馨提示

  • 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

提交評論