SPI接口學(xué)習(xí)

[if !supportLists]1.?[endif]概述[if !supportLists]1.?[endif]概述

SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫耗美。是 Motorola 公司推出的一種同步串行接口技術(shù)诽凌,是一種高速的窄瘟,全雙工,同步的通信總線欺冀。

[if !supportLists]2.?[endif]優(yōu)點

支持全雙工通信,push-pull的驅(qū)動性能相比open-drain信號完整性更好萨脑;通信簡單隐轩,硬件連接簡單;數(shù)據(jù)傳輸速率塊

支持高速(100MHz以上)渤早;

協(xié)議支持字長不限于8bits龙助,可根據(jù)應(yīng)用特點靈活選擇消息字長;

[if !supportLists]3.?[endif]缺點

1)沒有指定的流控制,沒有應(yīng)答機制確認是否接收到數(shù)據(jù)提鸟,所以跟IIC總線協(xié)議比較在數(shù)據(jù)可靠性上有一定的缺陷军援;

2)典型應(yīng)用只支持單主控;

3)相比RS232 RS485和CAN總線称勋,SPI傳輸距離短胸哥;

4.特點 1):高速、同步赡鲜、全雙工空厌、非差分、總線式2):主從機通信模式

5.硬件結(jié)構(gòu)

SPI總線定義兩個及以上設(shè)備間的數(shù)據(jù)通信银酬,提供時鐘的設(shè)備為主設(shè)備Master嘲更,接收時鐘的設(shè)備為從設(shè)備Slave;

信號定義如下:

(1)MOSI – 主器件數(shù)據(jù)輸出揩瞪,從器件數(shù)據(jù)輸入

(2)MISO – 主器件數(shù)據(jù)輸入赋朦,從器件數(shù)據(jù)輸出

(3)SCLK – 時鐘信號,由主器件產(chǎn)生

(4)CS/SS – 從器件使能信號李破,由主器件控制

電路連接如下:

單個主設(shè)備和單個從設(shè)備:

SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫宠哄。是 Motorola 公司推出的一種同步串行接口技術(shù),是一種高速的嗤攻,全雙工毛嫉,同步的通信總線。

[if !supportLists]2.?[endif]優(yōu)點

支持全雙工通信妇菱,push-pull的驅(qū)動性能相比open-drain信號完整性更好承粤;通信簡單,硬件連接簡單闯团;數(shù)據(jù)傳輸速率塊

支持高速(100MHz以上)辛臊;

協(xié)議支持字長不限于8bits,可根據(jù)應(yīng)用特點靈活選擇消息字長偷俭;

[if !supportLists]3.?[endif]缺點

1)沒有指定的流控制浪讳,沒有應(yīng)答機制確認是否接收到數(shù)據(jù),所以跟IIC總線協(xié)議比較在數(shù)據(jù)可靠性上有一定的缺陷涌萤;

2)典型應(yīng)用只支持單主控淹遵;

3)相比RS232 RS485和CAN總線,SPI傳輸距離短负溪;

4.特點 1):高速透揣、同步、全雙工川抡、非差分辐真、總線式2):主從機通信模式

5.硬件結(jié)構(gòu)

SPI總線定義兩個及以上設(shè)備間的數(shù)據(jù)通信须尚,提供時鐘的設(shè)備為主設(shè)備Master,接收時鐘的設(shè)備為從設(shè)備Slave侍咱;

信號定義如下:

(1)MOSI – 主器件數(shù)據(jù)輸出耐床,從器件數(shù)據(jù)輸入

(2)MISO – 主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出

(3)SCLK – 時鐘信號楔脯,由主器件產(chǎn)生

(4)CS/SS – 從器件使能信號撩轰,由主器件控制

電路連接如下:

單個主設(shè)備和單個從設(shè)備:


單個主設(shè)備和多個從設(shè)備,通過多個片選信號或者菊花鏈方式實現(xiàn):


6.寄存器類型

Motorola定義的SPI寄存器包括:

SPI Control Register 1 (SPICR1)???控制寄存器1

SPI Control Register 2 (SPICR2)???控制寄存器2

SPI Baud Rate Register (SPIBR)??? 波特率寄存器

SPI Status Register (SPISR)?????狀態(tài)寄存器(只讀其余均可讀可寫)

SPI Data Register (SPIDR)??????數(shù)據(jù)寄存器

7.SPI傳輸模式

通過設(shè)置控制寄存器SPICR1中的CPOL和CPHA位昧廷,將SPI可以分成四種傳輸模式堪嫂。

CPOL,即Clock Polarity木柬,決定時鐘空閑時的電平為高或低皆串。對于SPI數(shù)據(jù)傳輸格式?jīng)]有顯著影響。

1=時鐘低電平時有效眉枕,空閑時為高

0=時鐘高電平時有效恶复,空閑時為低

CPHA,即Clock Phase齐遵,定義SPI數(shù)據(jù)傳輸?shù)膬煞N基本模式寂玲。

1=數(shù)據(jù)采樣發(fā)生在時鐘(SCK)偶數(shù)(2,4,6,...,16)邊沿(包括上下邊沿)

0=數(shù)據(jù)采樣發(fā)生在時鐘(SCK)奇數(shù)(1,3,5,...,15)邊沿(包括上下邊沿)

我們SPI通信有4種不同的模式塔插,不同的從設(shè)備可能在出廠是就是配置為某種模式梗摇,這是不能改變的;但我們的通信雙方必須是工作在同一模式下想许,所以我們可以對我們的主設(shè)備的SPI模式進行配置伶授,通過CPOL(時鐘極性)和CPHA(時鐘相位)來控制我們主設(shè)備的通信模式,具體如下:

Mode0:CPOL=0流纹,CPHA=0Mode1:CPOL=0糜烹,CPHA=1Mode2:CPOL=1,CPHA=0Mode3:CPOL=1漱凝,CPHA=1

時鐘極性CPOL是用來配置SCLK的電平出于哪種狀態(tài)時是空閑態(tài)或者有效態(tài)疮蹦,時鐘相位CPHA是用來配置數(shù)據(jù)采樣是在第幾個邊沿:CPOL=0,表示當SCLK=0時處于空閑態(tài)茸炒,所以有效狀態(tài)就是SCLK處于高電平時CPOL=1愕乎,表示當SCLK=1時處于空閑態(tài),所以有效狀態(tài)就是SCLK處于低電平時CPHA=0壁公,表示數(shù)據(jù)采樣是在第1個邊沿感论,數(shù)據(jù)發(fā)送在第2個邊沿CPHA=1,表示數(shù)據(jù)采樣是在第2個邊沿紊册,數(shù)據(jù)發(fā)送在第1個邊沿

四種模式如下圖所示:

先看第一列兩張圖(CPHA = 0)比肄,采樣發(fā)生在第一個時鐘跳變沿,即數(shù)據(jù)采樣發(fā)生在SCK奇數(shù)邊沿;再看第二列(CPHA =1)芳绩,采樣發(fā)生在第二個時鐘跳變沿掀亥,即數(shù)據(jù)采樣發(fā)生在SCK偶數(shù)邊沿。

第一行兩張圖妥色,CK空閑狀態(tài)為低電平铺浇,第二行兩張圖(CPOL = 1),SCK空閑狀態(tài)為高電平垛膝。


其中mode0和mode3最為常見鳍侣,SPI接口的flash中均會有標注。

需要注意的是:我們的主設(shè)備能夠控制時鐘吼拥,因為我們的SPI通信并不像UART或者IIC通信那樣有專門的通信周期倚聚,有專門的通信起始信號,有專門的通信結(jié)束信號凿可;所以我們的SPI協(xié)議能夠通過控制時鐘信號線惑折,當沒有數(shù)據(jù)交流的時候我們的時鐘線要么是保持高電平要么是保持低電平。

8.內(nèi)部工作機制

SSPSR 是 SPI 設(shè)備內(nèi)部的移位寄存器(Shift Register). 它的主要作用是根據(jù) SPI時鐘信號狀態(tài), 往 SSPBUF 里移入或者移出數(shù)據(jù), 每次移動的數(shù)據(jù)大小由 Bus-Width 以及 Channel-Width 所決定.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末枯跑,一起剝皮案震驚了整個濱河市惨驶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敛助,老刑警劉巖粗卜,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纳击,居然都是意外死亡续扔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門焕数,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纱昧,“玉大人,你說我怎么就攤上這事堡赔∈洞啵” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵善已,是天一觀的道長灼捂。 經(jīng)常有香客問我,道長雕拼,這世上最難降的妖魔是什么纵东? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮啥寇,結(jié)果婚禮上偎球,老公的妹妹穿的比我還像新娘洒扎。我一直安慰自己,他們只是感情好衰絮,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布袍冷。 她就那樣靜靜地躺著,像睡著了一般猫牡。 火紅的嫁衣襯著肌膚如雪胡诗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天淌友,我揣著相機與錄音煌恢,去河邊找鬼。 笑死震庭,一個胖子當著我的面吹牛瑰抵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播器联,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼二汛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拨拓?” 一聲冷哼從身側(cè)響起肴颊,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渣磷,沒想到半個月后婿着,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡幸海,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年祟身,在試婚紗的時候發(fā)現(xiàn)自己被綠了奥务。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片物独。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖氯葬,靈堂內(nèi)的尸體忽然破棺而出挡篓,到底是詐尸還是另有隱情,我是刑警寧澤帚称,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布官研,位于F島的核電站,受9級特大地震影響闯睹,放射性物質(zhì)發(fā)生泄漏戏羽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一楼吃、第九天 我趴在偏房一處隱蔽的房頂上張望始花。 院中可真熱鬧妄讯,春花似錦、人聲如沸酷宵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炕置。三九已至,卻和暖如春男韧,著一層夾襖步出監(jiān)牢的瞬間此虑,已是汗流浹背仍劈。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寡壮,地道東北人贩疙。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像况既,于是被迫代替她去往敵國和親这溅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容