新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 串行外設接口(SPI)總線解析及應用

        串行外設接口(SPI)總線解析及應用

        作者: 時間:2016-12-20 來源:網絡 收藏

          串行外設接口SPI總線是一個工作在全雙工模式下的同步串行數據鏈路。它可用于在單個主控制器和一個或多個從設備之間交換數據。其簡單的實施方案只使用四條支持數據與控制的信號線(圖 1):

          雖然表1中的引腳名稱來自摩托羅拉開發的SPI標準,但具體集成電路的SPI端口名稱往往與圖1中所示的不同。

          圖 1:基本 SPI 總線

          表 1:SPI 引腳名稱分配

          SPI 數據速率一般在1到70MHz的范圍內,字長為從8位及12位到這兩個值的倍數。

          數據傳輸一般由數據交換構成。在主控制器向從設備發送數據時,從設備也向主控制器發送數據。因此主控制器的內部移位寄存器和從設備都采用環形設置(圖 2)。

          圖2:雙移位寄存器形成一個芯片間的環形緩存器

          在數據交換之前,主控制器和從設備會將存儲器數據加載至它們的內部移位寄存器。收到時鐘信號后,主控制器先通過MOSI線路時鐘輸出其移位寄存器的MSB。同時從設備會讀取位于SIMO的主控器第一位元,將其存儲在存儲器中,然后通過SOMI時鐘輸出其MSB。主控制器可讀取位于MISO的從設備第一位元,并將其存儲在存儲器中,以便后續處理。整個過程將一直持續到所有位元完成交換,而主控器則可讓時鐘空閑并通過/SS 禁用從設備。

          除設置時鐘頻率外,主控制器還可根據數據配置時鐘極性和相位。這兩個分別稱為CPOL與CPHA的選項可實現時鐘信號180度的相移以及半個時鐘周期的數據延遲。圖3是相應的定時圖。

          圖3:時鐘極性與相位的定時圖

          CPOL = 0 時,時鐘空閑在邏輯 0 位置上:

          如果CPHA = 0,數據在SCK的上升沿讀取,在下降沿變化。

          如果CPHA=1,數據在SCK的下降沿讀取,在上升沿變化。

          CPOL= 1 時,時鐘在邏輯為高時空閑:

          如果CPHA =0,數據在SCK的下降沿讀取,在上升沿變化。

          如果CPHA= 1,數據在SCK的上升沿讀取,在下降沿變化。

          在SPI中,主控制器可與單個或多個從設備通信。如果是一個單從設備,從設備選擇信號可連接至從設備的本地接地電位,實現永久接入。對使用多個從設備的應用,可使用兩種配置:獨立從設備與菊花鏈從設備(圖4)。

          圖4:主控制器與獨立從設備(左)及菊花鏈從設備通信(右)

          要與從設備單獨通信,主控制器必須提供多重從設備選擇信號。該配置通常用于必須單獨訪問多個模數轉換器(ADC)及數模轉換器(DAC)的數據采集系統中。

          菊花鏈從設備只需要主控制器提供一個從設備選擇信號,因為這種配置要求所有從設備同時啟用,以確保數據不間斷地流經該鏈路中的所有移位寄存器。典型應用是工業I/O 模塊中的級聯多通道輸入串行器與輸出驅動器。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 醴陵市| 盐边县| 双柏县| 大悟县| 电白县| 兴仁县| 滁州市| 木里| 神池县| 衡南县| 天祝| 万盛区| 永靖县| 江都市| 宜都市| 皮山县| 玉环县| 松江区| 许昌县| 休宁县| 靖江市| 云梦县| 梨树县| 慈溪市| 大同县| 宁夏| 鹰潭市| 凉城县| 洱源县| 郎溪县| 承德县| 水城县| 阿鲁科尔沁旗| 双城市| 琼海市| 高碑店市| 合江县| 仪征市| 广安市| 贵南县| 克拉玛依市|