幾種通信方式_第1頁
幾種通信方式_第2頁
幾種通信方式_第3頁
幾種通信方式_第4頁
幾種通信方式_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

一IIC總線I2C--INTER-IC串行總線的縮寫,是PHILIPS公司推出的芯片間串行傳輸總線。它以1根串行數(shù)據(jù)線(SDA)和1根串行時鐘線(SCL)實現(xiàn)了雙工的同步數(shù)據(jù)傳輸。具有接口線少,控制方式簡化,器件封裝形式小,通信速率較高等優(yōu)點。在主從通信中,可以有多個I2C總線器件同時接到I2C總線上,通過地址來識別通信對象。IC接口的協(xié)議里面包括設(shè)備地址信息,可以同一總線上連接多個從設(shè)備,通過應(yīng)答來互通數(shù)據(jù)及命令。但是傳輸速率有限,標(biāo)準(zhǔn)模式下可達(dá)到100Kbps,快速模式下可達(dá)到400Kbps(我們開發(fā)板一般在130Kbps),高速模式下達(dá)到4Mbps,不能實現(xiàn)全雙工,不適合傳輸很多的數(shù)據(jù)。IIC總線是一個真正的多主機總線,總線上多個主機初始化傳輸,可以通過傳輸檢測和仲裁來防止數(shù)據(jù)被破壞。下來詳細(xì)了解IIC總線時序:總線數(shù)據(jù)有效性IIC總線是單工,因此同一時刻數(shù)據(jù)只有一個流向,因此采樣有效時鐘也是單一的,是在SCL時鐘的高電平采樣數(shù)據(jù)。IIC總線上SDA數(shù)據(jù)在SCL時鐘低電平是可以發(fā)生變化,但是在時鐘高電平時必須穩(wěn)定,以便主從設(shè)備根據(jù)時鐘采樣數(shù)據(jù),如下圖:datalinestable.datav3:iddatalinestable.datav3:idIchange|I4^dataiIailt;veci|總線空閑條件IIC總線上設(shè)備都釋放總線(發(fā)出傳輸停止)后,IIC總線根據(jù)上拉電阻變成高電平,SDASCL都是高電平??偩€數(shù)據(jù)傳輸起始和結(jié)束條件IIC總線SCL高電平時SDA出現(xiàn)由高到低的跳變,標(biāo)志總線上數(shù)據(jù)傳輸?shù)拈_始條件IIC總線SCL高電平時SDA出現(xiàn)由低到高的跳變,標(biāo)志總線上數(shù)據(jù)傳輸?shù)慕Y(jié)束條件

總線數(shù)據(jù)傳輸順序以及ACK應(yīng)答IIC總線上數(shù)據(jù)傳輸室MSB在前,LSB在后,從示波器上看,從左向右依次讀出數(shù)據(jù)即可IIC總線傳輸?shù)臄?shù)據(jù)不收限制,但是每次發(fā)到SDA上的必須是8位,并且主機發(fā)送8位后釋放總線,從機收到數(shù)據(jù)后必須拉低SDA一個時鐘,回應(yīng)ACK表示數(shù)據(jù)接收成功,我們?nèi)绻静ㄆ魃峡吹降牟ㄐ尉褪敲看?位數(shù)據(jù),8bit+1bitack。如下:BY-學(xué)曄用伊弓1gF(X.T=UTBYRECsIVE^BY-學(xué)曄用伊弓1gF(X.T=UTBYRECsIVE^巴start從機收到一字節(jié)數(shù)據(jù)后,如果需要一些時間處理,則會拉低SCL,讓傳輸進(jìn)入等待狀態(tài),處理完成,釋放SCL,繼續(xù)傳輸,如下:hnc ,hloiQ,143xon—hI*hnc ,hloiQ,143xon—hI*IilwflrTci■wtflSTSTART總線讀寫時序數(shù)據(jù)的傳輸在起始條件之后,發(fā)送一個7位的從機地址,緊接著第8位是數(shù)據(jù)方向(R/W),0-表示發(fā)送數(shù)據(jù)(寫),1-表示接收數(shù)據(jù)(讀)。數(shù)據(jù)傳輸一般由主機產(chǎn)生的停止位(P)終止。但是如果主機仍希望在總線上通訊,它可以產(chǎn)生重復(fù)起始條件(Sr),和尋址另一個從機,而不是首先產(chǎn)生一個停止條件。在這種傳輸中,可能有不同的讀寫格式結(jié)合。IIC總線主設(shè)備讀寫從設(shè)備,一般都是與從設(shè)備的寄存器打交道,這個可以通過閱讀從設(shè)備的datasheet獲取??偩€寫時序如下:masterstart+masteraddr|w+slaveack+masterreg|w+slaveack+masterdata+slaveack+masterrestart。。masterdata+slavenack+masterstop總線讀時序如下:masterstart+masteraddr|w+slaveack+masterreg|w+slaveack+masterrestart+masteraddr|r+slaveack+slavedata+masternack+masterstop總線讀時序與寫的不同之處在于讀需要2次傳輸才能完成一次讀取,首先要寫寄存器地址到從設(shè)備,其實是寫到了從設(shè)備的控制寄存器或者命令寄存器,從設(shè)備內(nèi)部會根據(jù)這個地址來尋址所要操作的寄存器。我在讀我們的bios和內(nèi)核時發(fā)現(xiàn),2者在總線讀時序上的實現(xiàn)不太一樣,在于第一次寄存器地址寫入后,一個發(fā)的是restart,一個發(fā)的是stop,然后再start開始讀取數(shù)據(jù),示波器抓波形發(fā)現(xiàn)讀取數(shù)據(jù)都正確,說明這2種時序都是正確的。IIC總線的讀寫時序比較固定,設(shè)備通信嚴(yán)格遵循協(xié)議,因此iIC總線設(shè)備驅(qū)動程序的編寫也就相對簡單一些。主要應(yīng)用的iIc總線設(shè)備有touchscreenrtc外擴io等二SPI總線SPI--SerialPeripheralInterface,串行外圍設(shè)備接口,是Motorola公司推出的一種同步串行通訊方式,是一種三線同步總線,因其硬件功能很強,與SPI有關(guān)的軟件就相當(dāng)簡單,使CPU有更多的時間處理其他事務(wù)。SPI通常有SCK時鐘,STB片選,DATA數(shù)據(jù)信號三個信號。I2C通常有SDA數(shù)據(jù)和SCL時鐘兩個信號。SPI總線真正實現(xiàn)了全雙工數(shù)據(jù)傳輸,SPI有3線跟4線兩種,4線的話,就是多了一條叫SDC的線,用來告知從設(shè)備現(xiàn)在傳輸?shù)氖菙?shù)據(jù)還是指令。這個接口較快,可以傳輸較連續(xù)的數(shù)據(jù)。SPI要想連接多個從設(shè)備,就需要給每個從設(shè)備配備一根片選信號。如果要可以實現(xiàn)全雙工,也是需要多加一根數(shù)據(jù)線(MOSIMISO)。也就是說SPI總線是通過片選來選擇從設(shè)備。spi總線速度要比iic要快,我們開發(fā)板最快能達(dá)到30MHZ。spi總線特點:.采用主-從模式(Master-Slave)的控制方式SPI規(guī)定了兩個SPI設(shè)備之間通信必須由主設(shè)備(Master)來控制次設(shè)備(Slave).一個Master設(shè)備可以通過提供Clock以及對Slave設(shè)備進(jìn)行片選(SlaveSelect)來控制多個Slave設(shè)備,SPI協(xié)議還規(guī)定Slave設(shè)備的Clock由Master設(shè)備通過SCK管腳提供給Slave設(shè)備,Slave設(shè)備本身不能產(chǎn)生或控制Clock,沒有Clock則Slave設(shè)備不能正常工作..采用同步方式(Synchronous)傳輸數(shù)據(jù)Master設(shè)備會根據(jù)將要交換的數(shù)據(jù)來產(chǎn)生相應(yīng)的時鐘脈沖(ClockPulse),時鐘脈沖組成了時鐘信號(ClockSignal),時鐘信號通過時鐘極性(CPOL)和時鐘相位(CPHA)控制著兩個SPI設(shè)備間何時數(shù)據(jù)交換以及何時對接收到的數(shù)據(jù)進(jìn)行采樣,來保證數(shù)據(jù)在兩個設(shè)備之間是同步傳輸?shù)?.數(shù)據(jù)交換(DataExchanges)SPI設(shè)備間的數(shù)據(jù)傳輸之所以又被稱為數(shù)據(jù)交換,是因為SPI協(xié)議規(guī)定一個SPI設(shè)備不能在數(shù)據(jù)通信過程中僅僅只充當(dāng)一個"發(fā)送者(Transmitter)"或者”接收者(Receiver)".也就是說是全雙工的,在每個Clock周期內(nèi),SPI設(shè)備都會發(fā)送并接收一個bit大小的數(shù)據(jù),相當(dāng)于該設(shè)備有一個bit大小的數(shù)據(jù)被交換了.一個Slave設(shè)備要想能夠接收到Master發(fā)過來的控制信號,必須在此之前能夠被Master設(shè)備進(jìn)行訪問(Access).所以,Master設(shè)備必須首先通過SS/CSpin對Slave設(shè)備進(jìn)行片選,把想要訪問的Slave設(shè)備選上.在數(shù)據(jù)傳輸?shù)倪^程中,每次接收到的數(shù)據(jù)必須在下一次數(shù)據(jù)傳輸之前被采樣.如果之前接收到的數(shù)據(jù)沒有被讀取,那么這些已經(jīng)接收完成的數(shù)據(jù)將有可能會被丟棄,導(dǎo)致SPI物理模塊最終失效.因此,在程序中一般都會在SPI傳輸完數(shù)據(jù)后,去讀取SPI設(shè)備里的數(shù)據(jù),即使這些數(shù)據(jù)(DummyData)在我們的程序里是無用的.具體spi工作原理可以看博客另外一篇文章SPI和IIC是2種不同的通信協(xié)議,現(xiàn)在已經(jīng)廣泛的應(yīng)用在IC之間的通信中。并且不少單片機已經(jīng)整和了SPI和IIC的借口。但像51這種不支持SPI和IIC的單片機,也可以用模擬時鐘的工作方式進(jìn)行SPI和IIC的通信的。下面主要總結(jié)一下2種總線的異同點:iic總線不是全雙工,2根線SCLSDA。spi總線實現(xiàn)全雙工,4根線SCKCSMOSIMISOiic總線是多主機總線,通過SDA上的地址信息來鎖定從設(shè)備。spi總線只有一個主設(shè)備,主設(shè)備通過CS片選來確定從設(shè)備iic總線傳輸速度在100kbps-4Mbps。spi總線傳輸速度更快,可以達(dá)到30MHZ以上。iic總線空閑狀態(tài)下SDASCL都是高電平。spi總線空閑狀態(tài)MOSIMISO也都是SCK是有CPOL決定的iic總線scl高電平時sda下降沿標(biāo)志傳輸開始,上升沿標(biāo)志傳輸結(jié)束。spi總線cs拉低標(biāo)志傳輸開始,cs拉高標(biāo)志傳輸結(jié)束iic總線是SCL高電平采樣。spi總線因為是全雙工,因此是沿采樣,具體要根據(jù)CPHA決定。一般情況下masterdevice是SCK的上升沿發(fā)送,下降沿采集iic總線和spi總線數(shù)據(jù)傳輸都是MSB在前,LSB在后(串口是LSB在前)iic總線和spi總線時鐘都是由主設(shè)備產(chǎn)生,并且只在數(shù)據(jù)傳輸時發(fā)出時鐘iic總線讀寫時序比較固定統(tǒng)一,設(shè)備驅(qū)動編寫方便。spi總線不同從設(shè)備讀寫時序差別比較大,因此必須根據(jù)具體的設(shè)備datasheet來實現(xiàn)讀寫,相對復(fù)雜一些。3.SMBusSMBus是一種二線制串行總線,1996年第一版規(guī)范開始商用。它大部分基于I2C總線規(guī)范。和I2C一樣,SMBus不需增加額外引腳,創(chuàng)建該總線主要是為了增加新的功能特性,但只工作在100kHz且專門面向智能電池管理應(yīng)用。它工作在主/從模式:主器件提供時鐘,在其發(fā)起一次傳輸時提供一個起始位,在其終止一次傳輸時提供一個停止位;從器件擁有一個唯一的7或10位從器件地址。SMBus與I2C總線之間在時序特性上存在一些差別。首先,SMBus需

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論