摘要:目錄概述概述總線機制總線機制的四種工作模式的四種工作模式數據交換數據交換概述是一種同步串行通信協議,由一個主設備和一個或多個從設備組成,主設備啟動與從設備的同步通信,從而完成數據的交換。
目錄
? SPI(serial peripheral interface)是一種同步串行通信協議,由一個主設備和一個或多個從設備組成,主設備啟動與從設備的同步通信,從而完成數據的交換。SPI是一種高速全雙工同步通信總線,標準的SPI僅僅使用4個引腳,主要應用在 EEPROM, Flash, 實時時鐘(RTC), 數模轉換器(ADC), 數字信號處理器(DSP) 以及數字信號解碼器之間。是 Motorola 公司推出的一種同步串行接口技術,是一種高速的,全雙工,同步的通信總線。SPI總線首次推出是在1979年,Motorola公司將SPI總線集成在他們第一支改自68000微處理器的微控制器芯片上。由于在芯片中只占用四根管腳 (Pin) 用來控制以及數據傳輸, 節約了芯片的 pin 數目, 同時為 PCB 在布局上節省了空間。 正是出于這種簡單易用的特性, 現在越來越多的芯片上都集成了 SPI技術。
SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多
個從設備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基于SPI的設備共
有的,它們是SDI(數據輸入)、SDO(數據輸出)、SCLK(時鐘)、CS(片選)。
CPOL:clock polarity 時鐘的極性;表示 SPI 在空閑時, 時鐘信號是高電平還是低電平.?
CPHA:clock phase 時鐘的相位;表示 SPI 設備是在 SCK 管腳上的時鐘信號變為上升沿時觸發數據采樣, 還是在時鐘信號變為下降沿時觸發數據采樣.
時鐘極性CPOL是用來配置SCLK的電平出于哪種狀態時是空閑態或者有效態,時鐘相位CPHA
是用來配置數據采樣是在第幾個邊沿:
我們SPI通信有4種不同的模式,不同的從設備可能在出廠是就是配置為某種模式,這是不能改變的;但我們的通信雙方必須是工作在同一模式下,所以我們可以對我們的主設備的SPI模式進行配置,通過CPOL(時鐘極性)和CPHA(時鐘相位)來控制我們主設備的通信模式,具體如下:
Mode0:CPOL=0,CPHA=0
Mode1:CPOL=0,CPHA=1
Mode2:CPOL=1,CPHA=0
Mode3:CPOL=1,CPHA=1
四種模式的時序圖如下如所示:
模式0:CPOL= 0,CPHA=0。SCK串行時鐘線空閑是為低電平,數據在SCK時鐘的上升沿被采樣,數據在SCK時鐘的下降沿切換
模式1:CPOL= 0,CPHA=1。SCK串行時鐘線空閑是為低電平,數據在SCK時鐘的下降沿被采樣,數據在SCK時鐘的上升沿切換
模式2:CPOL= 1,CPHA=0。SCK串行時鐘線空閑是為高電平,數據在SCK時鐘的下降沿被采樣,數據在SCK時鐘的上升沿切換
模式3:CPOL= 1,CPHA=1。SCK串行時鐘線空閑是為高電平,數據在SCK時鐘的上升沿被采樣,數據在SCK時鐘的下降沿切換
其中比較常用的模式是模式0和模式3。為了更清晰的描述SPI總線的時序,下面展現了模式0下的SPI時序圖:
?上圖清晰的表明在模式0下,在空閑狀態下,SCK串行時鐘線為低電平,當SS被主機拉低以后,數據傳輸開始,數據線MOSI和MISO的數據切換(Toggling)發生在時鐘的下降沿(上圖的黑色虛線),而數據線MOSI和MISO的數據的采樣(Sampling)發生在數據的正中間(上圖中的灰色實線)。下圖清晰的描述了其他三種模式數據線MOSI和MISO的數據切換(Toggling)位置和數據采樣位置的關系圖:
? ? ? ? SPI 設備間的數據傳輸之所以又被稱為數據交換, 是因為 SPI 協議規定一個 SPI 設備不能在數據通信過程中僅僅只充當一個 "發送者(Transmitter)" 或者 "接收者(Receiver)". 在每個 Clock 周期內, SPI 設備都會發送并接收一個 bit 大小的數據, 相當于該設備有一個 bit 大小的數據被交換了.
? ? ? ?一個 Slave 設備要想能夠接收到 Master 發過來的控制信號, 必須在此之前能夠被 Master 設備進行訪問 (Access). 所以, Master 設備必須首先通過 SS/CS pin 對 Slave 設備進行片選, 把想要訪問的 Slave 設備選上.
? ? ? ?在數據傳輸的過程中, ?每次接收到的數據必須在下一次數據傳輸之前被采樣. 如果之前接收到的數據沒有被讀取, 那么這些已經接收完成的數據將有可能會被丟棄, ?導致 SPI 物理模塊最終失效. 因此, 在程序中一般都會在 SPI 傳輸完數據后, 去讀取 SPI 設備里的數據, 即使這些數據(Dummy Data)在我們的程序里是無用的.
參考文獻:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/121954.html
摘要:從設備使能信號,由主設備控制,只有該信號為預先規定的使能信號,對該芯片的操作才有效,這就允許再統一總線上連接多個設備。點對點通信中,接口不需要進行尋址操作,但是沒有指定的流控制,沒有應答機制確認是否接收到數據。 1、GPIO 通用可編程IO接口,對于簡單的外圍設備或者電路,需要CPU為之提供...
摘要:帶中文字庫的是一種具有位位并行線或線串行多種接口方式,內部含有國標一級二級簡體中文字庫的點陣圖形液晶顯示模塊其顯示分辨率為。貼片按鍵模塊支持標準的協議,完整的協議棧。以最低成本提供最大實用性,為功能嵌入其他系統提供無限可能。 項目簡介 開發環境: Keil5.14,CubeMX6.0.1,主...
摘要:總線掛載的外設有等。外設地址映射片上外設區分為三條總線,根據外設速度的不同,不同總線掛載著不同的外設,掛載低速外設,和掛載高速外設。 第二章 STM32資源介紹 2...
摘要:文章目錄一原理二實現顯示中文滾動顯示顯示字符串讀取溫濕度顯示溫濕度三結果開機顯示歡迎信息循環讀取溫濕度以及滾動顯示我的四總結五參考六源碼一原理的定義就是串行外圍設備接口。 ...
閱讀 2310·2021-11-23 09:51
閱讀 3748·2021-11-11 10:57
閱讀 1391·2021-10-09 09:43
閱讀 2481·2021-09-29 09:35
閱讀 2013·2019-08-30 15:54
閱讀 1788·2019-08-30 15:44
閱讀 3178·2019-08-30 13:20
閱讀 1687·2019-08-30 11:19