新聞中心

輕松學(xué)PIC之SPI總線篇

作者: 時(shí)間:2011-08-30 來源:網(wǎng)絡(luò) 收藏

  一、基本概念

  SPI ( Serial Peripheral Interface ———串行外設(shè)接口) 總線是Motorola 公司推出的一種同步串行接口技術(shù)。SPI 總線系統(tǒng)是一種同步串行外設(shè)接口, 允許MCU 與各種外圍設(shè)備( 如閃存、數(shù)摸轉(zhuǎn)換、網(wǎng)絡(luò)控制器、從MCU) 以串行方式進(jìn)行通信、數(shù)據(jù)交換。

  SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB 的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議。其工作模式有兩種:主模式和從模式。SPI 是一種允許一個(gè)主設(shè)備啟動(dòng)一個(gè)從設(shè)備的同步通訊的協(xié)議,從而完成數(shù)據(jù)的交換。

  也就是SPI 是一種規(guī)定好的通訊方式。這種通信方式的優(yōu)點(diǎn)是占用端口較少,一般4 根就夠基本通訊了(不算電源線)。同時(shí)傳輸速度也很高。一般來說要求主設(shè)備要有SPI 控制器(也可用模擬方式),就可以與基于SPI 的芯片通訊了。

  二、系統(tǒng)結(jié)構(gòu)

  SPI 系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口, 一般使用4 條線: 串行時(shí)鐘線(SCK) 、主機(jī)輸入/ 從機(jī)輸出數(shù)據(jù)線SDO、主機(jī)輸出/ 從機(jī)輸入數(shù)據(jù)線SDI 和低電平有效的從機(jī)選擇線SS。SDI 和SDO 用于串行接收和發(fā)送數(shù)據(jù),數(shù)據(jù)高位在前低位在后。在SPI 設(shè)置為主機(jī)方式時(shí),SDO 是主機(jī)讀從機(jī),SDI 是主機(jī)寫從機(jī)。SCK 用于提供時(shí)鐘脈沖將數(shù)據(jù)一位位地傳送。SPI 總線器件間傳送數(shù)據(jù)框圖如圖1 所示。

  三、的接口特性

  利用SPI 總線可在軟件的控制下構(gòu)成各種系統(tǒng)。如1 個(gè)主MCU 和幾個(gè)從MCU、幾個(gè)從MCU 相互連接構(gòu)成多主機(jī)系統(tǒng)(分布式系統(tǒng))、1 個(gè)主MCU 和1 個(gè)或幾個(gè)從I / O 設(shè)備所構(gòu)成的各種系統(tǒng)等。在大多數(shù)應(yīng)用場(chǎng)合,可使用1個(gè)MCU 作為主控機(jī)來控制數(shù)據(jù),并向1 個(gè)或幾個(gè)從外圍器件傳送該數(shù)據(jù)。從器件只有在主機(jī)發(fā)命令時(shí)才能接收或發(fā)送數(shù)據(jù)。其數(shù)據(jù)的傳輸格式總是高位(MSB)在前,低位(LSB)在后。

  當(dāng)一個(gè)主控機(jī)通過SPI 與幾種不同的串行I / O 芯片相連時(shí),必須使用每片的允許控制端,這可通過MCU 的I / O 端口輸出線來實(shí)現(xiàn)。

  但應(yīng)特別注意這些串行I / O 芯片的輸入輸出特性:首先是輸入芯片的串行數(shù)據(jù)輸出是否有三態(tài)控制端。平時(shí)未選中芯片時(shí),輸出端應(yīng)處于高阻態(tài)。若沒有三態(tài)控制端,則應(yīng)外加三態(tài)門。否則MCU 的MISO端只能連接一個(gè)外設(shè)。其次是外設(shè)的串行數(shù)據(jù)輸入是否有允許控制端。

  因?yàn)橹挥性诖诵酒试S時(shí),SCK 脈沖才把串行數(shù)據(jù)移入該外設(shè);在禁止時(shí),SCK 對(duì)外設(shè)無(wú)影響。若原來沒有允許控制端,則增加控制門;當(dāng)然,也可以在SPI 總線上只連接1 個(gè)外設(shè),就不必用允許控制。

  通過前文的原理介紹,我們已經(jīng)對(duì)SPI 總線的特性以及工作原理有了大致地了解,但當(dāng)我們拿到一個(gè)SPI 總線器件時(shí)要正確地應(yīng)用它,還是一時(shí)不知如何下手,比如我們現(xiàn)在要想把一個(gè)具體的數(shù)據(jù)存儲(chǔ)放器件中去,需要怎么辦呢?現(xiàn)在,我們來一起看一個(gè)數(shù)據(jù)存儲(chǔ)的例子,通過一個(gè)實(shí)例,相信會(huì)給大家?guī)硪粋€(gè)感性的認(rèn)識(shí),下面就以目前單片機(jī)系統(tǒng)中廣泛應(yīng)用的SPI 接口的數(shù)據(jù)存儲(chǔ)器93C46 為例,介紹SPI器件的基本應(yīng)用。

  四、93C46串行存儲(chǔ)器簡(jiǎn)介

  93C46 是1k 位串行EEPROM 儲(chǔ)存器。

  每一個(gè)儲(chǔ)存器都可以通過DI/DO 引腳寫入或讀出。它的存儲(chǔ)容量為1024 位,內(nèi)部為128×8位或64×16 位。93C46 為串行三線SPI 操作芯片,在時(shí)鐘時(shí)序的同步下接收數(shù)據(jù)口的指令。

  指令碼為9 位十進(jìn)制碼,具有7 個(gè)指令,讀、擦寫使能、擦除、寫、全擦、全寫及擦除禁止。該芯片擦寫時(shí)間快,有擦寫使能保護(hù),可靠性高,擦寫次數(shù)可達(dá)100 萬(wàn)次, 93C46 的引腳功能圖如圖2 所示。

圖2 93C46 的引腳圖

表1 :93C46 串行EEPROM 指令格式選擇表

電度表相關(guān)文章:電度表原理




關(guān)鍵詞: PIC SPI總線

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉