I2C 與UART的區(qū)別與比較.doc_第1頁
I2C 與UART的區(qū)別與比較.doc_第2頁
I2C 與UART的區(qū)別與比較.doc_第3頁
I2C 與UART的區(qū)別與比較.doc_第4頁
I2C 與UART的區(qū)別與比較.doc_第5頁
全文預覽已結束

下載本文檔

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

文檔簡介

I2CIIC本身是為板級通訊設計,沒有考慮遠距離通訊.UART通訊編程簡單,通訊速度遠比IIC快,可以直接使用RS485延伸通訊距離達到1km,通訊速度很容易做高。UART是一個并行輸入成為串行輸出的芯片.有一點要注意的是,它提供了RS-232C數據終端設備接口,這樣計算機就可以和調制解調器或其它使用RS-232C接口的串行設備通信. I2C(InterIntegrated Circuit)總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設備。是微電子通信控制領域廣泛采用的一種總線標準。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。發(fā)送器:發(fā)送數據到總線的器件;接收器:從總線接收數據的器件;主機:初始化發(fā)送產生時鐘信號和終止發(fā)送的器件;從機:被主機尋址的器件;多主機:同時有多于一個主機嘗試控制總線但不破壞傳輸;仲裁:是一個在有多個主機同時嘗試控制總線但只允許其中一個控制總線并使傳輸不被破壞的過程;同步:兩個或多個器件同步時鐘信號的過程 。 兩條總線線路:一條串行數據線SDA,一條串行時鐘線SCL;SDA 線上的數據必須在時鐘的高電平周期保持穩(wěn)定。數據線的高或低電平狀態(tài)只 有在SCL 線的時鐘信號是低電平時才能改變。SCL 線是高電平時,SDA 線從高電平向低電平切換,這個情況表示起始條件;SCL 線是高電平時,SDA 線由低電平向高電平切換,這個情況表示停止條件。 發(fā)送到SDA 線上的每個字節(jié)必須為8 位,每次傳輸可以發(fā)送的字節(jié)數量不受限制。每個字節(jié)后必須跟一個響應位。首先傳輸的是數據的最高位(MSB),如果從機要完成一些其他功能后(例如一個內部中斷服務程序)才能接收或發(fā)送下一個完整的數據字節(jié),可以使時鐘線SCL 保持低電平,迫使主機進入等待狀態(tài),當從機準備好接收下一個數據字節(jié)并釋放時鐘線SCL 后數據傳輸繼續(xù)。 數據傳輸必須帶響應,相關的響應時鐘脈沖由主機產生。在響應的時鐘脈沖期間發(fā)送器釋放SDA 線(高)。在響應的時鐘脈沖期間,接收器必須將SDA 線拉低,使它在這個時鐘脈沖的高電平期間保持穩(wěn)定的低電平。 寫操作 寫操作分為字節(jié)寫和頁面寫兩種操作,對于頁面寫根據芯片的一次裝載的字節(jié)不同有所不同。 讀操作 讀操作有三種基本操作:當前地址讀、隨機讀和順序讀。圖4給出的是順序讀的時序圖。應當注意的是:最后一個讀操作的第9個時鐘周期不是“不關心”。為了結束讀操作,主機必須在第9個周期間發(fā)出停止條件或者在第9個時鐘周期內保持SDA為高電平、然后發(fā)出停止條件。 I2C的讀操作與寫操作: I2C與UART不同的地方首先在于先傳高位,后傳送低位。主機寫數據時,每發(fā)送一個字節(jié),接收機需要回復一個應答位“0”,通過應答位來判斷從機是否接收成功。主機讀數據時,接收一個字節(jié)結束后,主機也需要發(fā)送一應答位“0”,但是當接收最后一個字節(jié)結束后,則需發(fā)送一個非應答位“1”,發(fā)完了1后,再發(fā)一個停止信號,最終結束通信。I2C寫數據流程首先I2C起始信號,然后發(fā)送首字節(jié),即器件(EEPROM)地址。并且在讀寫方向位上選擇“寫操作”方向。(0xa0)第二個字節(jié),發(fā)送數據的存儲地址,就是要讀取的數據所存儲在EEPROM中的位置。第三個字節(jié),發(fā)送要存儲的數據第一個字節(jié),第二個字節(jié)注意:在寫數據的過程中,都要等待EEPROM返回一個“應答位”。write_eeprom:void write_e2prom(uint8 addr,uint8 databyte)I2CStart();I2CSend(0xa0);/起始信號后寫入器件地址,寫操作I2CSend(addr);/寫入發(fā)送數據的存儲地址I2CSend(databyte)/發(fā)送存儲的數據I2CStop;void I2CSend(uint8 byte)uint8 mask=0x80; /數據由高位依次傳輸 int i;for(i=0;i=1;Delay();/SDA延遲一個高電平SCL=1; /下一個時序,Delay();/SCL延遲一個低電平,保證時序的完整性/一個字節(jié)的數據傳輸完成之后,要等待應答位SCL=0;/接著上一個時序,保證完整性SDA=1;/主機釋放SDA,拉高SDA,觀察應答位Delay();/延遲一個時序,等待應答位j=SDA;/取出從機返回的應答位進行判斷,低電平的時候有效Delay();/延遲一個時序SCL=1;/拉高SCL,等待下次傳輸 UART通信UART是一種通用串行數據總線,用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在嵌入式設計中,UART用來與PC進行通信,包括與監(jiān)控調試器和其它器件,如EEPROM通信。UART首先將接收到的并行數據轉換成串行數據來傳輸。消息幀從一個低位起始位開始,后面是58個數據位,一個可用的奇偶位和一個或幾個高位停止位。接收器發(fā)現(xiàn)開始位時它就知道數據準備發(fā)送,并嘗試與發(fā)送器時鐘頻率同步。如果選擇了奇偶,UART就在數據位后面加上奇偶位。奇偶位可用來幫助錯誤校驗。在接收過程中,UART從消息幀中去掉起始位和結束位,對進來的字節(jié)進行奇偶校驗,并將數據字節(jié)從串行轉換成并行。UART也產生額外的信號來指示發(fā)送和接收的狀態(tài)。例如,如果產生一個奇偶錯誤,UART就置位奇偶標志。異步串口通信協(xié)議作為UART的一種,工作原理是將傳輸數據的每個字符一位接一位地傳輸。其中各位的意義如下:起始位:先發(fā)出一個邏輯”0”的信號,表示傳輸字符的開始。資料位:緊接著起始位之后。資料位的個數可以是4、5、6、7、8等,構成一個字符。通常采用ASCII碼。從最低位開始傳送,靠時鐘定位。奇偶校驗位:資料位加上這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗),以此來校驗資料傳送的正確性。停止位:它是一個字符數據的結束標志??梢允?位、1.5位、2位的高電平。 由于數據是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸的結束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數越多,不同時鐘同步的容忍程度

溫馨提示

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

評論

0/150

提交評論