《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 輕松學PIC之SPI總線篇
輕松學PIC之SPI總線篇
摘要: SPI ( Serial Peripheral Interface ———串行外設接口) 總線是Motorola 公司推出的一種同步串行接口技術,。SPI 總線系統(tǒng)是一種同步串行外設接口, 允許MCU 與各種外圍設備( 如閃存、數(shù)摸轉換、網絡控制器、從MCU) 以串行方式進行通信,、數(shù)據交換。
Abstract:
Key words :

  一、SPI總線基本概念

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

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

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

  二、SPI總線系統(tǒng)結構

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

  三、SPI總線的接口特性

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

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

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

  因為只有在此芯片允許時,SCK 脈沖才把串行數(shù)據移入該外設,;在禁止時,,SCK 對外設無影響。若原來沒有允許控制端,,則增加控制門,;當然,也可以在SPI 總線上只連接1 個外設,,就不必用允許控制,。

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

  四、93C46串行存儲器簡介

  93C46 是1k 位串行EEPROM 儲存器,。

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

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

圖2 93C46 的引腳圖

圖2 93C46 的引腳圖

 

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

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

此內容為AET網站原創(chuàng),,未經授權禁止轉載,。