




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、spi協(xié)議及工作原理分析spi協(xié)議及工作原理分析 編輯整理:尊敬的讀者朋友們:這里是精品文檔編輯中心,本文檔內容是由我和我的同事精心編輯整理后發(fā)布的,發(fā)布之前我們對文中內容進行仔細校對,但是難免會有疏漏的地方,但是任然希望(spi協(xié)議及工作原理分析)的內容能夠給您的工作和學習帶來便利。同時也真誠的希望收到您的建議和反饋,這將是我們進步的源泉,前進的動力。本文可編輯可修改,如果覺得對您有幫助請收藏以便隨時查閱,最后祝您生活愉快 業(yè)績進步,以下為spi協(xié)議及工作原理分析的全部內容。spi協(xié)議及工作原理分析一、概述。 spi, serial perripheral interface, 串行外圍設備
2、接口, 是 motorola 公司推出的一種同步串行接口技術. spi 總線在物理上是通過接在外圍設備微控制器(picmicro) 上面的微處理控制單元 (mcu) 上叫作同步串行端口(synchronous serial port) 的模塊(module)來實現(xiàn)的, 它允許 mcu 以全雙工的同步串行方式, 與各種外圍設備進行高速數(shù)據(jù)通信. spi 主要應用在 eeprom, flash, 實時時鐘(rtc), 數(shù)模轉換器(adc), 數(shù)字信號處理器(dsp) 以及數(shù)字信號解碼器之間。 它在芯片中只占用四根管腳 (pin) 用來控制以及數(shù)據(jù)傳輸, 節(jié)約了芯片的 pin 數(shù)目, 同時為 pcb
3、 在布局上節(jié)省了空間. 正是出于這種簡單易用的特性, 現(xiàn)在越來越多的芯片上都集成了 spi技術.二、 特點 1. 采用主從模式(master-slave) 的控制方式 spi 規(guī)定了兩個 spi 設備之間通信必須由主設備 (master) 來控制次設備 (slave)。 一個 master 設備可以通過提供 clock 以及對 slave 設備進行片選 (slave select) 來控制多個 slave 設備, spi 協(xié)議還規(guī)定 slave 設備的 clock 由 master 設備通過 sck 管腳提供給 slave 設備, slave 設備本身不能產生或控制 clock, 沒有 clo
4、ck 則 slave 設備不能正常工作。 2. 采用同步方式(synchronous)傳輸數(shù)據(jù) master 設備會根據(jù)將要交換的數(shù)據(jù)來產生相應的時鐘脈沖(clock pulse), 時鐘脈沖組成了時鐘信號(clock signal) , 時鐘信號通過時鐘極性 (cpol) 和 時鐘相位 (cpha) 控制著兩個 spi 設備間何時數(shù)據(jù)交換以及何時對接收到的數(shù)據(jù)進行采樣, 來保證數(shù)據(jù)在兩個設備之間是同步傳輸?shù)摹?3. 數(shù)據(jù)交換(data exchanges) spi 設備間的數(shù)據(jù)傳輸之所以又被稱為數(shù)據(jù)交換, 是因為 spi 協(xié)議規(guī)定一個 spi 設備不能在數(shù)據(jù)通信過程中僅僅只充當一個 ”發(fā)送者
5、(transmitter) 或者 接收者(receiver)。 在每個 clock 周期內, 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ù)沒有被讀取, 那么這些已經接收完成的數(shù)據(jù)將
6、有可能會被丟棄,導致 spi 物理模塊最終失效。 因此, 在程序中一般都會在 spi 傳輸完數(shù)據(jù)后, 去讀取 spi 設備里的數(shù)據(jù), 即使這些數(shù)據(jù)(dummy data)在我們的程序里是無用的.三、 工作機制 1. 概述 上圖只是對 spi 設備間通信的一個簡單的描述, 下面就來解釋一下圖中所示的幾個組件(module): sspbuf, synchronous serial port buffer, 泛指 spi 設備里面的內部緩沖區(qū), 一般在物理上是以 fifo 的形式, 保存?zhèn)鬏斶^程中的臨時數(shù)據(jù); sspsr, synchronous serial port register, 泛指 s
7、pi 設備里面的移位寄存器(shift regitser), 它的作用是根據(jù)設置好的數(shù)據(jù)位寬(bitwidth) 把數(shù)據(jù)移入或者移出 sspbuf; controller, 泛指 spi 設備里面的控制寄存器, 可以通過配置它們來設置 spi 總線的傳輸模式。 通常情況下, 我們只需要對上圖所描述的四個管腳(pin) 進行編程即可控制整個 spi 設備之間的數(shù)據(jù)通信: sck, serial clock, 主要的作用是 master 設備往 slave 設備傳輸時鐘信號, 控制數(shù)據(jù)交換的時機以及速率; ss/cs, slave select/chip select, 用于 master 設備片
8、選 slave 設備, 使被選中的 slave 設備能夠被 master 設備所訪問; sdo/mosi, serial data output/master out slave in, 在 master 上面也被稱為 tx-channel, 作為數(shù)據(jù)的出口, 主要用于 spi 設備發(fā)送數(shù)據(jù); sdi/miso, serial data input/master in slave out, 在 master 上面也被稱為 rx-channel, 作為數(shù)據(jù)的入口, 主要用于spi 設備接收數(shù)據(jù); spi 設備在進行通信的過程中, master 設備和 slave 設備之間會產生一個數(shù)據(jù)鏈路回環(huán)(
9、data loop), 就像上圖所畫的那樣, 通過 sdo 和 sdi 管腳, sspsr 控制數(shù)據(jù)移入移出 sspbuf, controller 確定 spi 總線的通信模式, sck 傳輸時鐘信號。 2。 timing。 上圖通過 master 設備與 slave 設備之間交換1 byte 數(shù)據(jù)來說明 spi 協(xié)議的工作機制. 首先,在這里解釋一下兩個概念: cpol: 時鐘極性, 表示 spi 在空閑時, 時鐘信號是高電平還是低電平。 若 cpol 被設為 1, 那么該設備在空閑時 sck 管腳下的時鐘信號為高電平. 當 cpol 被設為 0 時則正好相反. cpha: 時鐘相位, 表示
10、 spi 設備是在 sck 管腳上的時鐘信號變?yōu)樯仙貢r觸發(fā)數(shù)據(jù)采樣, 還是在時鐘信號變?yōu)橄陆笛貢r觸發(fā)數(shù)據(jù)采樣。 若 cpha 被設置為 1, 則 spi 設備在時鐘信號變?yōu)橄陆笛貢r觸發(fā)數(shù)據(jù)采樣, 在上升沿時發(fā)送數(shù)據(jù). 當 cpha 被設為 0 時也正好相反. 上圖里的 ”mode 1, 1” 說明了本例所使用的 spi 數(shù)據(jù)傳輸模式被設置成 cpol = 1, cpha = 1。 這樣, 在一個 clock 周期內, 每個單獨的 spi 設備都能以全雙工(fullduplex) 的方式, 同時發(fā)送和接收 1 bit 數(shù)據(jù), 即相當于交換了 1 bit 大小的數(shù)據(jù). 如果 spi 總線的 ch
11、annelwidth 被設置成 byte, 表示 spi 總線上每次數(shù)據(jù)傳輸?shù)淖钚挝粸?byte, 那么掛載在該 spi 總線的設備每次數(shù)據(jù)傳輸?shù)倪^程至少需要 8 個 clock 周期(忽略設備的物理延遲). 因此, spi 總線的頻率越快, clock 周期越短, 則 spi 設備間數(shù)據(jù)交換的速率就越快。 3. sspsr。 sspsr 是 spi 設備內部的移位寄存器(shift register)。 它的主要作用是根據(jù) spi 時鐘信號狀態(tài), 往 sspbuf 里移入或者移出數(shù)據(jù), 每次移動的數(shù)據(jù)大小由 buswidth 以及 channelwidth 所決定. bus-width 的
12、作用是指定地址總線到 master 設備之間數(shù)據(jù)傳輸?shù)膯挝? 例如, 我們想要往 master 設備里面的 sspbuf 寫入 16 byte 大小的數(shù)據(jù): 首先, 給 master 設備的配置寄存器設置 buswidth 為 byte; 然后往 master 設備的 txdata 移位寄存器在地址總線的入口寫入數(shù)據(jù), 每次寫入 1 byte 大小的數(shù)據(jù)(使用 writeb 函數(shù)); 寫完 1 byte 數(shù)據(jù)之后, master 設備里面的 tx-data 移位寄存器會自動把從地址總線傳來的1 byte 數(shù)據(jù)移入 sspbuf 里; 上述動作一共需要重復執(zhí)行 16 次. channelwidt
13、h 的作用是指定 master 設備與 slave 設備之間數(shù)據(jù)傳輸?shù)膯挝弧?與 buswidth 相似,master 設備內部的移位寄存器會依據(jù) channelwidth 自動地把數(shù)據(jù)從 master-sspbuf 里通過 mastersdo 管腳搬運到 slave 設備里的 slavesdi 引腳, slavesspsr 再把每次接收的數(shù)據(jù)移入 slave-sspbuf里。 通常情況下, buswidth 總是會大于或等于 channelwidth, 這樣能保證不會出現(xiàn)因 master 與 slave 之間數(shù)據(jù)交換的頻率比地址總線與 master 之間的數(shù)據(jù)交換頻率要快, 導致 sspbu
14、f 里面存放的數(shù)據(jù)為無效數(shù)據(jù)這樣的情況. 4。 sspbuf。 我們知道, 在每個時鐘周期內, master 與 slave 之間交換的數(shù)據(jù)其實都是 spi 內部移位寄存器從 sspbuf 里面拷貝的. 我們可以通過往 sspbuf 對應的寄存器 (txdata / rx-data register) 里讀寫數(shù)據(jù), 間接地操控 spi 設備內部的 sspbuf. 例如, 在發(fā)送數(shù)據(jù)之前, 我們應該先往 master 的 tx-data 寄存器寫入將要發(fā)送出去的數(shù)據(jù), 這些數(shù)據(jù)會被 mastersspsr 移位寄存器根據(jù) buswidth 自動移入 master-sspbuf 里, 然后這些數(shù)據(jù)
15、又會被 mastersspsr 根據(jù) channelwidth 從 mastersspbuf 中移出, 通過 master-sdo管腳傳給 slavesdi 管腳,slave-sspsr 則把從slavesdi 接收到的數(shù)據(jù)移入 slave-sspbuf 里。與此同時, slavesspbuf 里面的數(shù)據(jù)根據(jù)每次接收數(shù)據(jù)的大?。╟hannelwidth), 通過 slavesdo 發(fā)往 master-sdi, mastersspsr 再把從 master-sdi 接收的數(shù)據(jù)移入 mastersspbuf.在單次數(shù)據(jù)傳輸完成之后, 用戶程序可以通過從 master 設備的 rxdata 寄存器讀取 master 設備數(shù)據(jù)交換得到的數(shù)據(jù). 5. controller。 master 設備里面的 con
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工產品批發(fā)商銷售技能提升考核試卷
- 儀器制造中的質量控制與檢測技術考核試卷
- 機器人情感識別與表達考核試卷
- 高級審計培訓課件
- 批發(fā)市場魚品安全監(jiān)管考核試卷
- 批發(fā)市場的小批量訂單處理考核試卷
- 飼料店轉讓合同范本
- 教學加盟合同范本
- 材料合同范本簡易圖表
- 食品運輸儲藏合同范本
- 內科學講義(唐子益版)
- GB/T 19845-2005機械振動船舶設備和機械部件的振動試驗要求
- GB 9706.14-1997醫(yī)用電氣設備第2部分:X射線設備附屬設備安全專用要求
- 測繪安全生產專題培訓課件
- 心肺復蘇簡易呼吸器使用除顫儀使用
- 油缸裝配作業(yè)指導書
- 2022年濟南工程職業(yè)技術學院單招綜合素質考試筆試試題及答案解析
- 初中數(shù)學競賽試題匯編
- GB∕Z 27735-2022 野營帳篷
- 高分子材料研究方法 X 射線法
- 【課件】第二單元第三節(jié)漢族民歌課件-2021-2022學年高中音樂人音版(2019)必修音樂鑒賞
評論
0/150
提交評論