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