




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SPI協(xié)議及工作原理分析一、概述SPI, Serial Peripheral In terface,串行外圍設(shè)備接口 ,是 Motorola公司推出的一種同步串行接口技術(shù) SPI總線在物理上是通過接在外圍設(shè)備微控制器(PICmicro)上面的微處理控制單元(MCU)上叫作同步串行端口(Sy nchro nousSerial Port)的模塊(Module) 來實(shí)現(xiàn)的,它允許MCU以全雙工的同步串行方式,與各種外圍設(shè)備進(jìn)行高速數(shù)據(jù)通信SPI主要應(yīng)用在 EEPROM, Flash,實(shí)時(shí)時(shí)鐘(RTC), 數(shù)模轉(zhuǎn)換器(ADC), 數(shù)字信號(hào)處理器(DSP)以及數(shù)字信號(hào)解碼器之間.它在芯片中只占用四根管腳
2、 (Pin)用來控制以及數(shù)據(jù)傳輸,節(jié)約了芯片的pin 數(shù)目,同時(shí)為PCB在布局上節(jié)省了空間.正 是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來越多的芯片上都集成了 SPI技術(shù).特點(diǎn)1. 采用主-從模式(Master-Slave)的控制方式SPI規(guī)定了兩個(gè) SPI設(shè)備之間通信必須由主設(shè)備(Master)來控制次設(shè)備(Slave).一個(gè) Master設(shè)備可以通過提供Clock以及對(duì)Slave設(shè)備進(jìn)行片選(Slave Select)來控制多個(gè)Slave設(shè)備,SPI協(xié)議還規(guī)定Slave設(shè)備的Clock由 Master設(shè)備通過SCK管腳提供給Slave設(shè)備,Slave設(shè)備本身不能產(chǎn)生或控制Clock, 沒有Cloc
3、k 則Slave設(shè)備不能正常工作2. 采用同步方式(Synchronous)傳輸數(shù)據(jù)Master設(shè)備會(huì)根據(jù)將要交換的數(shù)據(jù)來產(chǎn)生相應(yīng)的時(shí)鐘脈沖(Clock Pulse),時(shí)鐘脈沖組成了時(shí)鐘信號(hào)(Clock Signal),時(shí)鐘信號(hào)通過時(shí)鐘極性(CPOL) 和時(shí)鐘相位(CPHA)控制著兩個(gè)SPI設(shè)備間何時(shí)數(shù)據(jù)交換以及何時(shí)對(duì)接收到的數(shù)據(jù)進(jìn)行采樣,來保證數(shù)據(jù)在兩個(gè)設(shè)備之間是同步傳輸?shù)?. 數(shù)據(jù)交換(Data Exchanges)SPI設(shè)備間的數(shù)據(jù)傳輸之所以又被稱為數(shù)據(jù)交換,是因?yàn)镾PI協(xié)議規(guī)定一個(gè)SPI設(shè)備不能在數(shù)據(jù)通信過程中僅僅只充當(dāng)一個(gè)”發(fā)送者(Transmitter)或者”接收者(Receive
4、r).在每個(gè)Clock 周期內(nèi),SPI設(shè)備都會(huì)發(fā)送并接收一個(gè)bit 大小的數(shù)據(jù),相當(dāng)于該設(shè)備有一個(gè)bit大小的數(shù)據(jù)被交換了 .一個(gè)Slave 設(shè)備要想能夠接收到 Master 發(fā)過來的控制信號(hào),必須在此之前 能夠被Master設(shè)備進(jìn)行訪問(Access). 所以,Master設(shè)備必須首先通過 SS/CSpin 對(duì)Slave 設(shè)備進(jìn)行片選,把想要訪問的Slave 設(shè)備選上.在數(shù)據(jù)傳輸?shù)倪^程中,每次接收到的數(shù)據(jù)必須在下一次數(shù)據(jù)傳輸之前被米樣.如果之前接收到的數(shù)據(jù)沒有被讀取,那么這些已經(jīng)接收完成的數(shù)據(jù)將有可能會(huì)被丟棄,導(dǎo)致SPI物理模塊最終失效.因此,在程序中一般都會(huì)在 SPI傳輸完數(shù)據(jù)后,去讀取S
5、PI設(shè)備里的數(shù)據(jù),即使這些數(shù)據(jù)(Dummy Data)在我們的程序里是無用的三、工作機(jī)制上圖只是對(duì) SPI設(shè)備間通信的一個(gè)簡(jiǎn)單的描述,下面就來解釋一下圖中所示的幾個(gè)組件(Module):SSPBUF, Synchronous Serial Port Buffer,泛指 SPI設(shè)備里面的內(nèi)部緩沖區(qū),一般在物理上是以 FIFO 的形式,保存?zhèn)鬏斶^程中的臨時(shí)數(shù)據(jù);SSPSR, Sy nchron ous Serial Port Register,泛指 SPI 設(shè)備里面的移位寄存器(Shift Regitser),它的作用是根據(jù)設(shè)置好的數(shù)據(jù)位寬(bit-width)把數(shù)據(jù)移入或者移出 SSPBUF;C
6、on troller,泛指SPI設(shè)備里面的控制寄存器,可以通過配置它們來設(shè)置SPI總線的傳輸模式.通常情況下,我們只需要對(duì)上圖所描述的四個(gè)管腳(pi n)進(jìn)行編程即可控制整個(gè)SPI設(shè)備之間的數(shù)據(jù)通信鐘信號(hào),控制數(shù)據(jù)交換的時(shí)機(jī)以及速率SS/CS, Slave Select/Chip Select,用于 Master 設(shè)備片選 Slave設(shè)備,使被選中的Slave 設(shè)備能夠被Master設(shè)備所訪問;SDO/MOSI, Serial Data Output/Master Out Slave In,在 Master上面也被稱為Tx-Channel, 作為數(shù)據(jù)的出口,主要用于SPI設(shè)備發(fā)送數(shù)據(jù);jSDI
7、/MISO,SerialData Input/MasterIn Slave Out,在 Master上面也被稱為Rx-Channel,作為數(shù)據(jù)的入口 ,主要用于SPI設(shè)備接收數(shù)據(jù);SPI設(shè)備在進(jìn)行通信的過程中,Master 設(shè)備和Slave設(shè)備之間會(huì)產(chǎn)生一個(gè)數(shù)據(jù)鏈路回環(huán)(Data Loop),就像上圖所畫的那樣,通過SDO 和SDI 管腳,SSPSR控制數(shù)據(jù)移入移出 SSPBUF, Con troller確定SPI總線的通信模式,SCK 傳輸時(shí)鐘信號(hào).2. Timi ng.SCKSDOeirjiiSOI 10 10 10Example of SPi Mode 1, 1Motg that the
8、 data only changes on the falling edge of SCK and isonly read on raisirg edge of SCK.CPHA:時(shí)鐘相位,表示SPI設(shè)備是在SCK管腳上的時(shí)鐘信號(hào)變?yōu)樯仙貢r(shí)觸發(fā)數(shù)據(jù)采樣,還是在時(shí)鐘信號(hào)變?yōu)橄陆笛貢r(shí)觸發(fā)數(shù)據(jù)采樣若CPHA被設(shè)置為1,則SPI設(shè)備在時(shí)鐘信號(hào)變?yōu)橄陆笛貢r(shí)觸發(fā)數(shù)據(jù)采樣,在上升沿時(shí)發(fā)送數(shù)據(jù)當(dāng)CPHA被設(shè)為0時(shí)也正好相反.n上圖里的Mode 1, 1說明了本例所使用的SPI數(shù)據(jù)傳輸模式被設(shè)置成CPOL = 1, CPHA = 1.這樣,在一個(gè)Clock 周期內(nèi),每個(gè)單獨(dú)的SPI設(shè)備都能以全雙工(Full-
9、Duplex)的方式,同時(shí)發(fā)送和接收 1 bit 數(shù)據(jù),即相當(dāng)于交換了 1bit 大小的數(shù)據(jù).如果SPI 總線的Channel-Width被設(shè)置成Byte, 表示SPI總線上每次數(shù)據(jù)傳輸?shù)淖钚挝粸锽yte,那么掛載在該SPI總線的設(shè)備每次數(shù)據(jù)傳輸?shù)倪^程至少需要 8 個(gè)Clock 周期(忽略設(shè)備的物理延遲).因此,SPI總線的頻率越快,Clock 周期越短,則SPI設(shè)備間數(shù)據(jù)交換的速率就越快.3. SSPSR.SPI Data TransferShifter RegisterLa 卩1 djila b / dEta 打urr SSPBUF.SCOSSPSRSDSDiSSPSRSSPBUFSCK
10、 ss Controller slaveSSPSR是SPI設(shè)備內(nèi)部的移位寄存器(Shift Register).它的主要作用是根據(jù)SPI時(shí)鐘信號(hào)狀態(tài),往SSPBUF里移入或者移出數(shù)據(jù),每次移動(dòng)的數(shù)據(jù)大小由Bus-Width 以及 Channel-Width所決定.Bus-Width的作用是指定地址總線到Master設(shè)備之間數(shù)據(jù)傳輸?shù)膯挝?例如,我們想要往Master設(shè)備里面的SSPBUF 寫入16 Byte 大小的數(shù)據(jù):首先,給 Master 設(shè)備的配置寄存器設(shè)置 Bus-Width 為 Byte; 然后往 Master 設(shè)備的Tx-Data移位寄存器在地址總線的入口寫入數(shù)據(jù),每次寫入1 By
11、te大小的數(shù)據(jù)(使用writeb 函數(shù));寫完1 Byte數(shù)據(jù)之后,Master設(shè)備里面的Tx-Data移位寄存器會(huì)自動(dòng)把從地址總線傳來的1 Byte 數(shù)據(jù)移入SSPBUF里;上述動(dòng)作一共需要重復(fù)執(zhí)行16 次.SPI Data TrarisferSDOSDIData is put here at the end of an SPI transfer, and data placed here for sending is loaded into the SSPSR for the next transfer.SSPSRSDOSSPSRChannel-Width的作用是指定 Master 設(shè)備與
12、Slave設(shè)備之間數(shù)據(jù)傳輸?shù)膯挝慌c Bus-Width 相似,Master 設(shè)備內(nèi)部的移位寄存器會(huì)依據(jù) Channel-Width自動(dòng)地把數(shù)據(jù)從 Master-SSPBUF 里通過Master-SDO管腳搬運(yùn)到Slave設(shè)備里的 Slave-SDI 弓I腳,Slave SSPSR再把每次接收的數(shù)據(jù)移入Slave-SSPBUF里.通常情況下,Bus-Width 總是會(huì)大于或等于 Channel-Width,這樣能保證不會(huì)出現(xiàn)因Master 與Slave 之間數(shù)據(jù)交換的頻率比地址總線與Master 之間的數(shù)據(jù)交換頻率要快,導(dǎo)致SSPBUF里面存放的數(shù)據(jù)為無效數(shù)據(jù)這樣的情況4. SSPBUF.Sen
13、a8 Transfft匚MasterControllerSSSlaveSSPBUF我們知道,在每個(gè)時(shí)鐘周期內(nèi),Master 與Slave之間交換的數(shù)據(jù)其實(shí)都是SPI內(nèi)部移位寄存器從 SSPBUF 里面拷貝的.我們可以通過往 SSPBUF 對(duì)應(yīng)的寄存器(Tx-Data / Rx-Data register)里讀寫數(shù)據(jù),間接地操控SPI設(shè)備內(nèi)部的SSPBUF.例如,在發(fā)送數(shù)據(jù)之前,我們應(yīng)該先往 Master 的Tx-Data寄存器寫入將要發(fā)送出去的數(shù)據(jù),這些數(shù)據(jù)會(huì)被 Master-SSPSR移位寄存器根據(jù) Bus-Width自動(dòng)移入 Master-SSPBUF 里,然后這些數(shù)據(jù)又會(huì)被 Master-SSPSR 根據(jù) Channel-Width 從 Master-SSPBUF 中移出,通過 Master-SDO 管腳傳給 Slave-SDI 管腳,Slave-SSPSR貝U把從 Slave-SDI接收至U的數(shù)據(jù)移入Master-SDI接收的數(shù)據(jù)移入 Master-SSPBUF. 在單次數(shù)據(jù)傳輸完成之后,用戶程序可以通過從Master 設(shè)備的Rx-Data 寄存器讀取Master設(shè)備數(shù)據(jù)交換得到的數(shù)據(jù)5. Con troller.Master設(shè)備里面的Contr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳制品企業(yè)產(chǎn)品盈利能力分析研究
- DB11/T 1009-2013 供熱系統(tǒng)節(jié)能改造技術(shù)規(guī)程
- 天津市水務(wù)事業(yè)項(xiàng)目融資的前景研究
- 儲(chǔ)值卡采購合同范例
- 2025年地毯、掛毯類工藝品項(xiàng)目合作計(jì)劃書
- 企業(yè)投資個(gè)人合同范例
- 二手居民住宅購房合同范例
- pvc塑膠地板合同范例
- 人工草皮轉(zhuǎn)讓合同范例
- 信息投資合同范例
- 2024年醫(yī)師定期考核考題《臨床練習(xí)》
- 法律職業(yè)倫理知到智慧樹章節(jié)測(cè)試課后答案2024年秋溫州大學(xué)
- 英語-遼寧省大連市2024-2025學(xué)年高三上學(xué)期期末雙基測(cè)試卷及答案
- 2025年江蘇省無錫市江南大學(xué)專職輔導(dǎo)員招聘45人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024版智能物流倉儲(chǔ)管理系統(tǒng)采購與運(yùn)維服務(wù)合同3篇
- 2024安徽教師統(tǒng)一招聘考試《小學(xué)英語》試卷真題及答案
- 2024年考研數(shù)學(xué)(一)試題卷及答案
- 16-SC-提高附著式升降腳手架安全驗(yàn)收一次合格率4:3
- 尼康NikonCOOLPIXP500數(shù)碼相機(jī)(中文)說明書
- 腦血管介入手術(shù)術(shù)前術(shù)后護(hù)理
- 幼兒園班級(jí)管理孫玉潔
評(píng)論
0/150
提交評(píng)論