SPI和IIC技術(shù)的應(yīng)用和比較_第1頁
SPI和IIC技術(shù)的應(yīng)用和比較_第2頁
SPI和IIC技術(shù)的應(yīng)用和比較_第3頁
SPI和IIC技術(shù)的應(yīng)用和比較_第4頁
SPI和IIC技術(shù)的應(yīng)用和比較_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告課題名稱: SPI和IIC技術(shù)的應(yīng)用和比較 專業(yè)班級(jí): 05物電4 學(xué)生姓名: 徐偉 指導(dǎo)教師: 徐健 設(shè)計(jì)時(shí)間: 2008.12.92007.12.23 SPI和IIC技術(shù)的應(yīng)用和比較一、spi技術(shù)應(yīng)用我們通常所說的SPI(SCSI Parallel Interface)是指并行SCSI,它是SCSI-3協(xié)議族中的一員。目前已投入應(yīng)用的最高版本是SPI的第四代(SPI-4),即商業(yè)領(lǐng)域統(tǒng)稱的Ultra320 SCSI。目前,SPI的第五代也在不斷完善之中。SPI標(biāo)準(zhǔn)是從最初的SPI-1不斷發(fā)展起來的。最初的SPI-1只定義了20MHz的總線信號(hào),可提供40MB/s的速率

2、,它在1996年就被SPI-2替代了。SPI-2除了將信號(hào)頻率由20MHz提升到40MHz外,還定義了一些新的特性,包括低電壓差分信號(hào)傳輸、多模式操作和高密度連接器等。1998年推出的SPI-3又在SPI-2的基礎(chǔ)上,將信號(hào)頻率由40MHz提升到80MHz,并定義了循環(huán)冗余校驗(yàn)(CRC)、域確認(rèn)機(jī)制、快速仲裁選擇(QAS)和包封裝SCSI機(jī)制。2001年問世的SPI-4進(jìn)一步將SPI-3的信號(hào)頻率由80MHz提升到160MHz,同時(shí)增加了讀寫數(shù)據(jù)流和流控制機(jī)制。20多年來,SCSI應(yīng)用的廣度和深度都在不斷拓展,被譽(yù)為總線界的長(zhǎng)青樹。目前,無論是SPI-4還是SPI-5,在充分繼承SCSI傳統(tǒng)優(yōu)

3、勢(shì)和不斷提高信號(hào)頻率的同時(shí),廣泛采用了CRC、包封裝SCSI、QAS和流控制等一系列新技術(shù),使并行SCSI的整體性能得到大幅度提高,且更加安全可靠,為并行SCSI更好的應(yīng)用奠定了堅(jiān)實(shí)的基礎(chǔ)。SPI 是一種四線制串行總線接口,為主/從結(jié)構(gòu),四條導(dǎo)線分別為串行時(shí)鐘(SCLK)、主出從入(MOSI)、主入從出(MISO)和從選(SS)信號(hào)。主器件為時(shí)鐘提供者,可發(fā)起讀從器件或?qū)憦钠骷僮?。這時(shí)主器件將與一個(gè)從器件進(jìn)行對(duì)話。當(dāng)總線上存在多個(gè)從器件時(shí),要發(fā)起一次傳輸,主器件將把該從器件選擇線拉低,然后分別通過 MOSI 和 MISO 線啟動(dòng)數(shù)據(jù)發(fā)送或接收。SPI 時(shí)鐘速度很快,范圍可從幾兆赫茲到幾十兆赫

4、茲,且沒有系統(tǒng)開銷。SPI 在系統(tǒng)管理方面的缺點(diǎn)是缺乏流控機(jī)制,無論主器件還是從器件均不對(duì)消息進(jìn)行確認(rèn),主器件無法知道從器件是否繁忙。因此,必須設(shè)計(jì)聰明的軟件機(jī)制來處理確認(rèn)問題。同時(shí),SPI 也沒有多主器件協(xié)議,必須采用很復(fù)雜的軟件和外部邏輯來實(shí)現(xiàn)多主器件架構(gòu)。每個(gè)從器件需要一個(gè)單獨(dú)的從選擇信號(hào)??傂盘?hào)數(shù)最終為 n+3 個(gè),其中 n 是總線上從器件的數(shù)量。因此,導(dǎo)線的數(shù)量將隨增加的從器件的數(shù)量按比例增長(zhǎng)。同樣,在 SPI 總線上添加新的從器件也不方便。對(duì)于額外添加的每個(gè)從器件,都需要一條新的從器件選擇線或解碼邏輯。圖 2 顯示了典型的 SPI 讀/寫周期。在地址或命令字節(jié)后面跟有一個(gè)讀/寫位。

5、數(shù)據(jù)通過 MOSI 信號(hào)寫入從器件,通過 MISO 信號(hào)自從器件中讀出。實(shí)例程序:二、IIC技術(shù)應(yīng)用1    什么是IIC?    IIC 是作為英特爾IC 的互補(bǔ),這種總線類型是由菲利浦半導(dǎo)體公司在八十年代初設(shè)計(jì)出來的,主要是用來連接整體電路(ICS) ,IIC是一種多向控制總線,也就是說多個(gè)芯片可以連接到同一總線結(jié)構(gòu)下,同時(shí)每個(gè)芯片都可以作為實(shí)施數(shù)據(jù)傳輸?shù)目刂圃?。這種方式簡(jiǎn)化了信號(hào)傳輸總線。例如:內(nèi)存中的SPD信息,通過IIC,與BX芯片組聯(lián)系,IIC 存在于英特爾PIIX4結(jié)構(gòu)體系中。 隨著大規(guī)模集成電路技術(shù)的發(fā)展,把

6、CPU和一個(gè)單獨(dú)工作系統(tǒng)所必需的ROM、RAM、I/O端口、A/D、D/A等外圍電路集成在一個(gè)單片內(nèi)而制成的單片機(jī)或微控制器愈來愈方便。目前,世界上許多公司生產(chǎn)單片機(jī),品種很多。其中包括各種字長(zhǎng)的CPU,各種容量的ROM、RAM以及功能各異的I/O接口電路等等,但是,單片機(jī)的品種規(guī)格仍然有限,所以只能選用某種單片機(jī)來進(jìn)行擴(kuò)展。擴(kuò)展的方法有兩種:一種是并行總線,另一種是串行總線。由于串行總線的連線少,結(jié)構(gòu)簡(jiǎn)單,往往不用專門的母板和插座而直接用導(dǎo)線連接各個(gè)設(shè)備。因此,采用串行線可大大簡(jiǎn)化系統(tǒng)的硬件設(shè)計(jì)。PHILIPS公司早在十幾年前就推出了I2C串行總線,利用該總線可實(shí)現(xiàn)多主機(jī)系統(tǒng)所需的裁決和高低

7、速設(shè)備同步等功能。因此,這是一種高性能的串行總線。 I2C(InterIntegrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇。可隨時(shí)監(jiān)控內(nèi)存、硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。   2    I2C總線特點(diǎn)    I2C總線最主

8、要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。總線的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。I2C總線的另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multimastering), 其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。  3    I2C總線工作原理     3.1 總線的構(gòu)成及信號(hào)類型     I2C總

9、線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過程中,I2C總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠?,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對(duì)比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。

10、    I2C總線在傳送數(shù)據(jù)過程中共有三種類型信號(hào), 它們分別是:開始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。    開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。    結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。     應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信

11、號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。     目前有很多半導(dǎo)體集成電路上都集成了I2C接口。帶有I2C接口的單片機(jī)有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外圍器件如存儲(chǔ)器、監(jiān)控芯片等也提供I2C接口。  4    總線基本操作     I2C規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。 總線

12、必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。參見圖1。圖1 串行總線上的數(shù)據(jù)傳送順序 4.1 控制字節(jié)     在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識(shí)別符(不同的芯片類型有不同的定義,EEPROM一般應(yīng)為1010),接著三位為片選,最后一位為讀寫位,當(dāng)為1時(shí)為讀操作,為0時(shí)為寫操作。如圖2所示。圖2 控制字節(jié)配置4.2 寫操作    

13、寫操作分為字節(jié)寫和頁面寫兩種操作,對(duì)于頁面寫根據(jù)芯片的一次裝載的字節(jié)不同有所不同。關(guān)于頁面寫的地址、應(yīng)答和數(shù)據(jù)傳送的時(shí)序參見圖3。   圖3 頁面寫4.3 讀操作     讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。圖4給出的是順序讀的時(shí)序圖。應(yīng)當(dāng)注意的是:最后一個(gè)讀操作的第9個(gè)時(shí)鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個(gè)周期間發(fā)出停止條件或者在第9個(gè)時(shí)鐘周期內(nèi)保持SDA為高電平、然后發(fā)出停止條件。圖4 順序讀5    實(shí)例:X24C04與MCS-51單片機(jī)軟硬件的實(shí)現(xiàn)  &#

14、160;  X24C04是XICOR公司的CMOS 4096位串行EEPROM,內(nèi)部組織成512×8位。16字節(jié)頁面寫。與MCS-51單片機(jī)接口如圖5所示。由于SDA是漏極開路輸出,且可以與任何數(shù)目的漏極開路或集電極 開路輸出“線或”(wire-Ored)連接。上拉電阻的選擇可參考X24C04的數(shù)據(jù)手冊(cè)。下面是通過I2C接口對(duì)X24C04進(jìn)行單字節(jié)寫操作的例程。流程圖及源程序如下: 圖5 X24C04與51單片機(jī)接口;名稱:BSENT ;描述:寫字節(jié) ;功能:寫一個(gè)字節(jié) ;調(diào)用程序:無 ;輸入?yún)?shù):A ;輸出參數(shù):無 BSEND: MOV R2,#08H ;1字節(jié)

15、8位 SENDA: CLR P3.2      ; RLC A                ;左移一位 MOV P3.3,C           ;寫一位SETB P3.2 DJNZ R2,SENDA        ;寫完8個(gè)字

16、節(jié)? CLR P3.2             ;應(yīng)答信號(hào) SETB P3.3 SETB P3.2 RET 圖6 流程圖6   結(jié)束語     在I2C總線的應(yīng)用中應(yīng)注意的事項(xiàng)總結(jié)為以下幾點(diǎn) :     1) 嚴(yán)格按照時(shí)序圖的要求進(jìn)行操作,     2) 若與口線上帶內(nèi)部上拉電阻的單片機(jī)接口連接,可以不外加上拉電阻。     3) 程序中

17、為配合相應(yīng)的傳輸速率,在對(duì)口線操作的指令后可用NOP指令加一定的延時(shí)。     4) 為了減少意外的干擾信號(hào)將EEPROM內(nèi)的數(shù)據(jù)改寫可用外部寫保護(hù)引腳(如果有),或者在EEPROM內(nèi)部沒有用的空間寫入標(biāo)志字,每次上電時(shí)或復(fù)位時(shí)做一次檢測(cè),判斷EEPROM是否被意外改寫。對(duì)于需要經(jīng)常進(jìn)行數(shù)據(jù)流傳輸?shù)南到y(tǒng)數(shù)據(jù),SPI是首選,因?yàn)樗鼡碛休^快的時(shí)鐘速率,速率可從幾兆赫茲到幾十兆赫茲。然而,對(duì)于系統(tǒng)管理活動(dòng),如讀取溫度傳感器的讀數(shù)和查詢多個(gè)從器件的狀態(tài),或者需要多個(gè)主器件共存于同一系統(tǒng)總線上(系統(tǒng)冗余常會(huì)要求這一點(diǎn)),或者面向低功耗應(yīng)用,這時(shí)I2C 或 SMBus將是首選

18、接口。下面幾部分將介紹每種串行總線及其優(yōu)缺點(diǎn)。1. SPISPI 是一種四線制串行總線接口,為主/從結(jié)構(gòu),四條導(dǎo)線分別為串行時(shí)鐘(SCLK)、主出從入(MOSI)、主入從出(MISO)和從選(SS)信號(hào)。主器件為時(shí)鐘提供者,可發(fā)起讀從器件或?qū)憦钠骷僮?。這時(shí)主器件將與一個(gè)從器件進(jìn)行對(duì)話。當(dāng)總線上存在多個(gè)從器件時(shí),要發(fā)起一次傳輸,主器件將把該從器件選擇線拉低,然后分別通過 MOSI 和 MISO 線啟動(dòng)數(shù)據(jù)發(fā)送三、IIC與SPI比較1. SPISPI 時(shí)鐘速度很快,范圍可從幾兆赫茲到幾十兆赫茲,且沒有系統(tǒng)開銷。SPI 在系統(tǒng)管理方面的缺點(diǎn)是缺乏流控機(jī)制,無論主器件還是從器件均不對(duì)消息進(jìn)行確認(rèn),主

19、器件無法知道從器件是否繁忙。因此,必須設(shè)計(jì)聰明的軟件機(jī)制來處理確認(rèn)問題。同時(shí),SPI 也沒有多主器件協(xié)議,必須采用很復(fù)雜的軟件和外部邏輯來實(shí)現(xiàn)多主器件架構(gòu)。每個(gè)從器件需要一個(gè)單獨(dú)的從選擇信號(hào)。總信號(hào)數(shù)最終為 n+3 個(gè),其中 n 是總線上從器件的數(shù)量。因此,導(dǎo)線的數(shù)量將隨增加的從器件的數(shù)量按比例增長(zhǎng)。同樣,在 SPI 總線上添加新的從器件也不方便。對(duì)于額外添加的每個(gè)從器件,都需要一條新的從器件選擇線或解碼邏輯。圖 2 顯示了典型的 SPI 讀/寫周期。在地址或命令字節(jié)后面跟有一個(gè)讀/寫位。數(shù)據(jù)通過 MOSI 信號(hào)寫入從器件,通過 MISO 信號(hào)自從器件中讀出。2. I2C總線I2C 是一種二線

20、制串行總線接口,工作在主/從模式。二線通信信號(hào)分別為開漏 SCL 和 SDA 串行時(shí)鐘和串行數(shù)據(jù)。主器件為時(shí)鐘源。數(shù)據(jù)傳輸是雙向的,其方向取決于讀/寫位的狀態(tài)。每個(gè)從器件擁有一個(gè)唯一的 7 或 10 位地址。主器件通過一個(gè)起始位發(fā)起一次傳輸,通過一個(gè)停止位終止一次傳輸。起始位之后為唯一的從器件地址,再后為讀/寫位。I2C總線速度為從0Hz到3.4MHz。它沒有SPI 那樣快,但對(duì)于系統(tǒng)管理器件如溫度傳感器來說則非常理想。I2C 存在系統(tǒng)開銷,這些開銷包括起始位/停止位、確認(rèn)位和從地址位,但它因此擁有流控機(jī)制。主器件在完成接收來自從器件的數(shù)據(jù)時(shí)總是發(fā)送一個(gè)確認(rèn)位,除非其準(zhǔn)備終止傳輸。從器件在其接

21、收到來自主器件的命令或數(shù)據(jù)時(shí)總是發(fā)送一個(gè)確認(rèn)位。當(dāng)從器件未準(zhǔn)備好時(shí),它可以保持或延展時(shí)鐘,直到其再次準(zhǔn)備好響應(yīng)。I2C允許多個(gè)主器件工作在同一總線上。多個(gè)主器件可以輕松同步其時(shí)鐘,因此所有主器件均采用同一時(shí)鐘進(jìn)行傳輸。多個(gè)主器件可以通過數(shù)據(jù)仲裁檢測(cè)哪一個(gè)主器件正在使用總線,從而避免數(shù)據(jù)破壞。由于 I2C總線只有兩條導(dǎo)線,因此新從器件只需接入總線即可,而無需附加邏輯。3. SMBusSMBus是一種二線制串行總線,1996年第一版規(guī)范開始商用。它大部分基于I2C總線規(guī)范。和 I2C一樣,SMBus不需增加額外引腳,創(chuàng)建該總線主要是為了增加新的功能特性,但只工作在100kHz且專門面向智能電池管理應(yīng)用。它工作在主/從模式:主器件提供時(shí)鐘,在其發(fā)起一次傳輸時(shí)提供一個(gè)起始位,在其終止一次傳輸時(shí)提供一個(gè)停止位;從器件擁有一個(gè)唯一的7或10位從器件地址。SMBus與I2C總線之間在時(shí)序特性

溫馨提示

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

評(píng)論

0/150

提交評(píng)論