SPI通信原理及通信協(xié)議
發(fā)布時(shí)間:2008/8/28 0:00:00 訪問(wèn)次數(shù):1337
spi:高速同步串行口。3~4線接口,收發(fā)獨(dú)立、可同步進(jìn)行.
spi,是英語(yǔ)serial peripheral interface的縮寫(xiě),顧名思義就是串行外圍設(shè)備接口。是motorola首先在其mc68hcxx系列處理器上定義的。spi接口主要應(yīng)用在 eeprom,flash,實(shí)時(shí)時(shí)鐘,ad轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。spi,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為pcb的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議,比如at91rm9200.
spi總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使mcu與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。外圍設(shè)置flashram、網(wǎng)絡(luò)控制器、lcd顯示驅(qū)動(dòng)器、a/d轉(zhuǎn)換器和mcu等。spi總線系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線:串行時(shí)鐘線(sck)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線miso、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線most和低電平有效的從機(jī)選擇線ss(有的spi接口芯片帶有中斷信號(hào)線int或int、有的spi接口芯片沒(méi)有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線mosi)。
spi的通信原理很簡(jiǎn)單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時(shí))。也是所有基于spi的設(shè)備共有的,它們是sdi(數(shù)據(jù)輸入),sdo(數(shù)據(jù)輸出),sck(時(shí)鐘),cs(片選)。
。1)sdo – 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入
。2)sdi – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出
。3)sclk – 時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生
。4)cs – 從設(shè)備使能信號(hào),由主設(shè)備控制
其中cs是控制芯片是否被選中的,也就是說(shuō)只有片選信號(hào)為預(yù)先規(guī)定的使能信號(hào)時(shí)(高電位或低電位),對(duì)此芯片的操作才有效。這就允許在同一總線上連接多個(gè)spi設(shè)備成為可能。
接下來(lái)就負(fù)責(zé)通訊的3根線了。通訊是通過(guò)數(shù)據(jù)交換完成的,這里先要知道spi是串行通訊協(xié)議,也就是說(shuō)數(shù)據(jù)是一位一位的傳輸?shù)。這就是sck時(shí)鐘線存在的原因,由sck提供時(shí)鐘脈沖,sdi,sdo則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過(guò) sdo線,數(shù)據(jù)在時(shí)鐘上升沿或下降沿時(shí)改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時(shí)鐘信號(hào)的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。
要注意的是,sck信號(hào)線只由主設(shè)備控制,從設(shè)備不能控制信號(hào)線。同樣,在一個(gè)基于spi的設(shè)備中,至少有一個(gè)主控設(shè)備。這樣傳輸?shù)奶攸c(diǎn):這樣的傳輸方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而spi允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)閟ck時(shí)鐘線由主控設(shè)備控制,當(dāng)沒(méi)有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說(shuō),主設(shè)備通過(guò)對(duì)sck時(shí)鐘線的控制可以完成對(duì)通訊的控制。spi還是一個(gè)數(shù)據(jù)交換協(xié)議:因?yàn)閟pi的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。不同的spi設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信號(hào)上沿或下沿采集有不同定義,具體請(qǐng)參考相關(guān)器件的文檔。
在點(diǎn)對(duì)點(diǎn)的通信中,spi接口不需要進(jìn)行尋址操作,且為全雙工通信,顯得簡(jiǎn)單高效。在多個(gè)從設(shè)備的系統(tǒng)中,每個(gè)從設(shè)備需要獨(dú)立的使能信號(hào),硬件上比i2c系統(tǒng)要稍微復(fù)雜一些。
最后,spi接口的一個(gè)缺點(diǎn):沒(méi)有指定的流控制,沒(méi)有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。
at91rm9200的spi接口主要由4個(gè)引腳構(gòu)成:spiclk、mosi、miso及 /ss,其中spiclk是整個(gè)spi總線的公用時(shí)鐘,mosi、miso作為主機(jī),從機(jī)的輸入輸出的標(biāo)志,mosi是主機(jī)的輸出,從機(jī)的輸入,miso 是主機(jī)的輸入,從機(jī)的輸出。/ss是從機(jī)的標(biāo)志管腳,在互相通信的兩個(gè)spi總線的器件,/ss管腳的電平低的是從機(jī),相反/ss管腳的電平高的是主機(jī)。在一個(gè)spi通信系統(tǒng)中,必須有主機(jī)。spi總線可以配置成單主單從,單主多從,互為主從。
spi的片選可以擴(kuò)充選擇16個(gè)外設(shè),這時(shí)pcs輸出=npcs,說(shuō)npcs0~3接4-16譯碼器,這個(gè)譯碼器是需要外接4-16譯碼器,譯碼器的輸入為npcs0~3,輸出用于16個(gè)外設(shè)的選擇。
spi協(xié)議心得
spi接口時(shí)鐘配置心得:
在主設(shè)備這邊配置spi接口時(shí)鐘的時(shí)候一定要弄清楚從設(shè)備的時(shí)鐘要求,因?yàn)橹髟O(shè)備這邊的時(shí)鐘極性和相位都是以從設(shè)備為基準(zhǔn)的。因此在時(shí)鐘極性的配置上一定要搞清楚從設(shè)備是在時(shí)鐘的上升沿還是下降沿接收數(shù)據(jù),是在時(shí)鐘的下降沿還是上升沿輸出數(shù)據(jù)。但要注意的是,由于主設(shè)備的sdo連接從設(shè)備的sdi,從設(shè)備的sdo連接主設(shè)備的sdi,從設(shè)備sdi接收的數(shù)據(jù)是主設(shè)備的sdo發(fā)送過(guò)來(lái)的,主設(shè)備sdi接收的數(shù)據(jù)是從設(shè)備sdo發(fā)送過(guò)來(lái)的,所以主設(shè)備這邊spi時(shí)鐘極性的配置(即sdo的配置)跟從設(shè)備的sdi接收數(shù)據(jù)的極性是相反的,跟從設(shè)備sdo發(fā)送數(shù)據(jù)的極性是相同的。下面這段話是sychip wl
spi:高速同步串行口。3~4線接口,收發(fā)獨(dú)立、可同步進(jìn)行.
spi,是英語(yǔ)serial peripheral interface的縮寫(xiě),顧名思義就是串行外圍設(shè)備接口。是motorola首先在其mc68hcxx系列處理器上定義的。spi接口主要應(yīng)用在 eeprom,flash,實(shí)時(shí)時(shí)鐘,ad轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。spi,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為pcb的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議,比如at91rm9200.
spi總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使mcu與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。外圍設(shè)置flashram、網(wǎng)絡(luò)控制器、lcd顯示驅(qū)動(dòng)器、a/d轉(zhuǎn)換器和mcu等。spi總線系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線:串行時(shí)鐘線(sck)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線miso、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線most和低電平有效的從機(jī)選擇線ss(有的spi接口芯片帶有中斷信號(hào)線int或int、有的spi接口芯片沒(méi)有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線mosi)。
spi的通信原理很簡(jiǎn)單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時(shí))。也是所有基于spi的設(shè)備共有的,它們是sdi(數(shù)據(jù)輸入),sdo(數(shù)據(jù)輸出),sck(時(shí)鐘),cs(片選)。
。1)sdo – 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入
。2)sdi – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出
。3)sclk – 時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生
。4)cs – 從設(shè)備使能信號(hào),由主設(shè)備控制
其中cs是控制芯片是否被選中的,也就是說(shuō)只有片選信號(hào)為預(yù)先規(guī)定的使能信號(hào)時(shí)(高電位或低電位),對(duì)此芯片的操作才有效。這就允許在同一總線上連接多個(gè)spi設(shè)備成為可能。
接下來(lái)就負(fù)責(zé)通訊的3根線了。通訊是通過(guò)數(shù)據(jù)交換完成的,這里先要知道spi是串行通訊協(xié)議,也就是說(shuō)數(shù)據(jù)是一位一位的傳輸?shù)摹_@就是sck時(shí)鐘線存在的原因,由sck提供時(shí)鐘脈沖,sdi,sdo則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過(guò) sdo線,數(shù)據(jù)在時(shí)鐘上升沿或下降沿時(shí)改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時(shí)鐘信號(hào)的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。
要注意的是,sck信號(hào)線只由主設(shè)備控制,從設(shè)備不能控制信號(hào)線。同樣,在一個(gè)基于spi的設(shè)備中,至少有一個(gè)主控設(shè)備。這樣傳輸?shù)奶攸c(diǎn):這樣的傳輸方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而spi允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)閟ck時(shí)鐘線由主控設(shè)備控制,當(dāng)沒(méi)有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說(shuō),主設(shè)備通過(guò)對(duì)sck時(shí)鐘線的控制可以完成對(duì)通訊的控制。spi還是一個(gè)數(shù)據(jù)交換協(xié)議:因?yàn)閟pi的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。不同的spi設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信號(hào)上沿或下沿采集有不同定義,具體請(qǐng)參考相關(guān)器件的文檔。
在點(diǎn)對(duì)點(diǎn)的通信中,spi接口不需要進(jìn)行尋址操作,且為全雙工通信,顯得簡(jiǎn)單高效。在多個(gè)從設(shè)備的系統(tǒng)中,每個(gè)從設(shè)備需要獨(dú)立的使能信號(hào),硬件上比i2c系統(tǒng)要稍微復(fù)雜一些。
最后,spi接口的一個(gè)缺點(diǎn):沒(méi)有指定的流控制,沒(méi)有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。
at91rm9200的spi接口主要由4個(gè)引腳構(gòu)成:spiclk、mosi、miso及 /ss,其中spiclk是整個(gè)spi總線的公用時(shí)鐘,mosi、miso作為主機(jī),從機(jī)的輸入輸出的標(biāo)志,mosi是主機(jī)的輸出,從機(jī)的輸入,miso 是主機(jī)的輸入,從機(jī)的輸出。/ss是從機(jī)的標(biāo)志管腳,在互相通信的兩個(gè)spi總線的器件,/ss管腳的電平低的是從機(jī),相反/ss管腳的電平高的是主機(jī)。在一個(gè)spi通信系統(tǒng)中,必須有主機(jī)。spi總線可以配置成單主單從,單主多從,互為主從。
spi的片選可以擴(kuò)充選擇16個(gè)外設(shè),這時(shí)pcs輸出=npcs,說(shuō)npcs0~3接4-16譯碼器,這個(gè)譯碼器是需要外接4-16譯碼器,譯碼器的輸入為npcs0~3,輸出用于16個(gè)外設(shè)的選擇。
spi協(xié)議心得
spi接口時(shí)鐘配置心得:
在主設(shè)備這邊配置spi接口時(shí)鐘的時(shí)候一定要弄清楚從設(shè)備的時(shí)鐘要求,因?yàn)橹髟O(shè)備這邊的時(shí)鐘極性和相位都是以從設(shè)備為基準(zhǔn)的。因此在時(shí)鐘極性的配置上一定要搞清楚從設(shè)備是在時(shí)鐘的上升沿還是下降沿接收數(shù)據(jù),是在時(shí)鐘的下降沿還是上升沿輸出數(shù)據(jù)。但要注意的是,由于主設(shè)備的sdo連接從設(shè)備的sdi,從設(shè)備的sdo連接主設(shè)備的sdi,從設(shè)備sdi接收的數(shù)據(jù)是主設(shè)備的sdo發(fā)送過(guò)來(lái)的,主設(shè)備sdi接收的數(shù)據(jù)是從設(shè)備sdo發(fā)送過(guò)來(lái)的,所以主設(shè)備這邊spi時(shí)鐘極性的配置(即sdo的配置)跟從設(shè)備的sdi接收數(shù)據(jù)的極性是相反的,跟從設(shè)備sdo發(fā)送數(shù)據(jù)的極性是相同的。下面這段話是sychip wl
熱門(mén)點(diǎn)擊
- 手機(jī)定位技術(shù)
- 通信有效性與可靠性
- SPI通信原理及通信協(xié)議
- EPON設(shè)備互通性
- RF器件的鄰道泄漏比(ACLR)來(lái)源
- Access數(shù)據(jù)庫(kù)出現(xiàn)0x80004005問(wèn)
- 手機(jī)定位的定義
- GPS 格式解析
- Rockwell AB PLC和PROFIB
- 在控制中心點(diǎn)選數(shù)據(jù)庫(kù)時(shí)出現(xiàn)的SQL1031N
推薦技術(shù)資料
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車(chē)用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究