上篇內(nèi)容我們介紹了IIC總線通信接口及其協(xié)議,這一篇文章我們介紹另一種項(xiàng)目開發(fā)中非常常見的通信接口——SPI總線。
SPI(Serial Peripheral Interface,串行外設(shè)接口)總線是摩托羅拉公司設(shè)計(jì)的一種同步串行通信接口。 和IIC總線一樣,它也分主機(jī)和從機(jī),一個(gè)主機(jī)也可以接多個(gè)從機(jī),但從機(jī)沒有地址之分,它們是通過主機(jī)的硬件選擇來確定哪個(gè)設(shè)備與主機(jī)通信,每個(gè)設(shè)備有兩個(gè)數(shù)據(jù)端口,即輸入、輸出端口,通常情況下它包含4根通信引腳,在某些特殊情形下也可以是3線甚至2線,即可以忽略片選信號(hào)或某根數(shù)據(jù)信號(hào),當(dāng)然具體情況根據(jù)電路應(yīng)用而定!
SS/CS——片選信號(hào)端口
SCLK——時(shí)鐘信號(hào)端口
MOSI——主出從入信號(hào)端口
MISO——主入從出信號(hào)端口
硬件接線圖:
硬件連接圖
部分資料或芯片手冊中會(huì)使用SDO,SDI來定義兩數(shù)據(jù)端口MOSI和MISO,兩種說法本質(zhì)都是一樣的
SDO,SDI連線示意
相比于IIC總線,SPI總線協(xié)議更為簡單,不需要驗(yàn)證地址,也沒有校驗(yàn)信號(hào),又因?yàn)閾碛歇?dú)立的輸入輸出端口,所以在信號(hào)傳遞方面它擁有更高的速率。
多機(jī)通信電路
通信協(xié)議
SPI總線中由于涉及到時(shí)鐘信號(hào)極性(Cpol: Clock Polarity)和相位(Cpha: Clock Phase)的影響使得協(xié)議分為4種模式。
CPOL:即時(shí)鐘的極性,通信的整個(gè)過程包含空閑狀態(tài)和工作狀態(tài),如果SCLK在空閑狀態(tài)是高電平,那么CPOL=1,如果是低電平,那么就是CPOL=0。
CPHA:即時(shí)鐘的相位,在這里就是SCLK的跳變邊沿,如果在SCLK信號(hào)的第一個(gè)跳變沿就開始數(shù)據(jù)傳輸則CPHA=0,否則若是在第二個(gè)邊沿才開始數(shù)據(jù)傳輸則CPHA=1。
讀起來還是有點(diǎn)拗口,看時(shí)序圖會(huì)更直觀一點(diǎn):
時(shí)序圖
當(dāng)然這些不用記憶,你使用的時(shí)候根據(jù)具體的芯片手冊的時(shí)序說明進(jìn)行配置就好了,不要把簡單的事情復(fù)雜化。心里有個(gè)概念就好,假如你是應(yīng)屆畢業(yè)生參加面試那保證自己能區(qū)分開來這幾種模式就可以,很多畢業(yè)生連IIC和SPI是什么東西都不知道呢,因?yàn)榻滩睦锩娌灰欢〞?huì)介紹這些通信協(xié)議,51單片機(jī)教材里印象中好像除了串口通信外沒有介紹其他的通信方式,即使有類似應(yīng)用也沒使用這些專業(yè)名稱來說明,其他的很多都得是自己買塊板子回來折騰才碰得到的。如果你是在校學(xué)生看看教材或者不妨問問你身邊的同學(xué)試試。
一般情況下作為主機(jī)的單片機(jī)如果硬件接口具備SPI總線端口編程時(shí)直接根據(jù)對(duì)應(yīng)寄存器配置為從機(jī)可以接受的模式使能該總線功能即可,若是普通不帶SPI總線的單片機(jī),那我們也簡單,和上一篇中的模擬IIC通信一樣,根據(jù)需要在程序中模擬出時(shí)序就好了。這里再次說明了讀芯片數(shù)據(jù)手冊的重要性,有的人或許芯片手冊都不看,從網(wǎng)上找一個(gè)別人跑得通的代碼就copy過去,或許可能剛好能用,也可能搞半天自己的芯片啥數(shù)據(jù)都讀不出來,這是初學(xué)者大忌,所以學(xué)技術(shù)切莫急功近利,每一次的僥幸可能造成日后的大雷。
通信程序
SPI通信協(xié)議的程序使用起來比較靈活,它的應(yīng)用的場合也比較多,具體的示例程序在后面的實(shí)際例子中再做介紹了。結(jié)合上一篇IIC的示例程序,今天的SPI協(xié)議程序應(yīng)該腦海里應(yīng)該也有思路了吧。
-
接口
+關(guān)注
關(guān)注
33文章
8566瀏覽量
150994 -
通信
+關(guān)注
關(guān)注
18文章
6021瀏覽量
135947 -
端口
+關(guān)注
關(guān)注
4文章
962瀏覽量
32043 -
SPI總線
+關(guān)注
關(guān)注
4文章
103瀏覽量
27584 -
IIC總線
+關(guān)注
關(guān)注
1文章
66瀏覽量
20295
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論