




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第8章 串行外圍接口SPI原理及應用第1節 SPI及模式第2節 SPI管腳及相關寄存器第3節 SPI用于多機通訊第4節 SPI在系統擴展中的應用第1節 SPI及模式SPI串行外設接口總線 SPI(Serial Peripheral Interface串行外設接口)總線是Motorola公司推出的一種同步串行外設接口,它用于MCU與各種外圍設備以串行方式進行通信(8位數據同時同步地被發送和接收),系統可配置為主或從操作模式。外圍設備包括簡單的TTL移位寄存器(用作并行輸入或輸出口)至復雜的LCD顯示驅動器或A/D轉換器等。 SPI系統可直接與各個廠家生產的多種標準外圍器件直接接口,它只需4條線:
2、 串行時鐘線(SCK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線CS(SS)。 在SPI接口中,數據的傳輸只需要1個時鐘信號和2條數據線。 由于SPI系統總線只需34位數據線和控制線即可擴展具有SPI的各種I/O器件,而并行總線擴展方法需8根數據線、816位地址線、23位控制線,因而SPI總線的使用可以簡化電路設計,省掉了很多常規電路中的接口器件,提高了設計的可靠性。1. SPI總線系統的組成 圖8-1是SPI總線系統典型結構示意圖。圖8-1 SPI外圍擴展示意圖 單片機與外圍擴展器件在時鐘線SCK、數據線MOSI和MISO上都是同名端相連。帶
3、SPI接口的外圍器件都有片選端CS。 在擴展多個SPI外圍器件(如圖8-1所示)時,單片機應分別通過I/O口線來分時選通外圍器件。 當SPI接口上有多個SPI接口的單片機時,應區別其主從地位,在某一時刻只能由一個單片機為主器件。 圖8-1中MCU(主)為主器件,MCU(從)為從器件。 SPI有較高的數據傳送速度,主機方式最高速率可達1.05 Mb/s,目前不少外圍器件都帶有SPI接口。 在大多數應用場合中,使用1個MCU作為主機,控制數據向1個或多個從外圍器件的傳送。 從器件只能在主機發命令時,才能接收或向主機傳送數據。 其數據的傳輸格式大多是高位(MSB)在前,低位(LSB)在后。 當SPI
4、工作時,在移位寄存器中的數據逐位從輸出引腳(MOSI)輸出(高位在前),同時從輸入引腳(MISO)接收的數據逐位移到移位寄存器(高位在前)。 發送一字節后,從另一個外圍器件接收的字節數據進入移位寄存器中。 主SPI的時鐘信號(SCK)使傳輸同步。 SPI總線有以下主要特性: 全雙工、3線同步傳輸;主機或從機工作;提供頻率可編程時鐘;發送結束中斷標志;寫沖突保護;總線競爭保護等。其典型時序圖如圖8-2所示。圖8-2 SPI串行總線典型時序圖單片機管腳模擬SPI接口的方法以便深入理解SPI時序1) 用一般I/O口線模擬SPI操作 對于沒有SPI接口的單片機來說,可使用軟件來模擬SPI的操作,包括串
5、行時鐘、數據輸入和輸出。 對于不同的串行接口外圍芯片,它們的時鐘時序是不同的。 對于在SCK的上升沿輸入(接收)數據和在下降沿輸出(發送)數據的器件(slave) 圖8-3為MCU與MCM2814(E2PROM)的硬件連接圖。圖8-3 SPI總線接口原理圖PTBD2PTBD0PTBD3PTBD1QG8管腳模擬SPI輸入一字節-C語言#define PTBD0 SCK;定義輸出#define PTBD1MISO;定義輸入#define PTBD2MOSI;定義輸出unsigned char SPI_IN(void)unsigned char i, data; data = 0;SCK = 1;時
6、鐘輸出為1for(i=0;i8;i+)SCK = 0 /時鐘輸出為0,產生下降沿下降沿輸入數據下降沿輸入數據_asm nop;等待數據穩定等待數據穩定_asm nop;SCK = 1 /使時鐘輸出為1if(MISO) data += (1(7-i);/實際編程時需注意?時間不能超過1.05Mbps或更低return data;第2節 SPI管腳及相關寄存器很多單片機都有專門的SPI控制器,以及專門的管腳,不過這些管腳一般是功能復用,需要進行設置。有了專用的控制器后,不需要進行時序的模擬,數據的通信變得相對簡單很多,剩下的只是操作相應的配置、狀態、控制、數據寄存器而已。編程就是玩寄存器。QG8的
7、SPI管腳 一種同步串行通信模式,3線或4線系統連接QG8的SPI特點1、主從模式可選2、全雙工或單線模式可選3、可編程波特率4、收發雙緩沖5、時鐘相位與極性可選6、從機片選輸出7、高或低位在前傳送模式可選。波特率計算速度由Master決定,但要了解Slave的性能:支持的模式與速度寄存器 SPI Control Register 1 (SPIC1)7-SPIESPI中斷(針對SPRF和MODF標志)允許該位為“1”允許中斷。SPRFSPI receive buffer full,接收滿標志;MODFmode fault events,模式故障標志;6-SPESPI模塊允許模塊允許 如果該位設
8、置為“0”,將禁止SPI模塊,導致正在進行中的數據傳輸終止、清除數據緩沖區、復位內部狀態機、清除SPRF標志、置位SPTEF標志以指示發送緩沖區空。5-SPTIESPI發送中斷允許發送中斷允許針對”發送緩沖區空標志” SPTEF,“1”允許中斷。4-MSTR主從模式選擇主從模式選擇Master/Slave Mode Select,“0”選擇slave。3-CPOLClock Polarity 時鐘極性時鐘極性“0” 選擇時鐘空閑時為低電平;“1”時鐘空閑高。2-CPHAClock Phase時鐘相位時鐘相位 “0”時,時鐘的第一個“沿”位于第一數據位的中間,第一個沿就采樣數據;“1”時,時鐘的
9、第一個“沿”位于第一數據位的開頭,第二個沿才采樣數據;1-SSOESlave Select Output Enable 該位與MSTR以及SPIC2寄存器的 (MODFEN) 位共同決定SS管腳的行為;0-LSBFELSB First (Shifter Direction)“1”時低位在前;“0”時高位在前;時鐘模式時鐘模式SS的用法總線沖突檢測功能:總線沖突檢測功能:當管腳 SS 作為總線沖突指示用時(此時MSTR = 1, MODFEN = 1且SSOE = 0).當一個主器件的SS管腳變為低時,意味著還有其它Master器件試圖將該主器件作為Slave來控制,此時產生總線沖突事件, 標志
10、位MODF被置“1”(讀SPIS然后寫然后寫SPIC1清除該位),且被控制器件將更改模式為Slave(MSTR位被清除),用戶程序必須保證總線沖突解除才能重新恢復器件為主模式。對于Slave模式,SS管腳一定作為片選輸入用;對于Master模式,SS管腳是否被SPI控制,取決于MODFEN,當該位為“1”表示SS被SPI使用,但其功能由SSOE決定,SSOE為“1”時,SS作為片選輸出;SSOE為“0”時SS作為總線沖突指示輸入。寄存器 SPI Control Register 2 (SPIC2)4-MODFENMaster Mode-Fault Function Enable,總線沖突檢測使
11、能,對于Slave模式該位無意義,只有在Master模式下,該位決定SS管腳是否起作用;參見前面。3-BIDIROEBidirectional Mode Output Enable 只有單線雙向傳輸模式啟用只有單線雙向傳輸模式啟用SPC0 = 1時,時,該位才有意義。在單線模式下該位才有意義。在單線模式下BIDIROE位決定模塊的輸出驅動是否啟用。 0-輸出驅動禁止,對應管腳作為輸入使用。1-對應管腳作為輸出。“對應管腳” 是指主模式的MOSI (MOMI)或者從模式的MISO(SISO)管腳。1-SPISWAISPI Stop in Wait Mode:0-wait模式下時鐘繼續運行,1-當
12、MCU進入等待模式時時鐘停止。0-SPC0SPI Pin Control 0 SPC0位選擇單線雙向傳輸模式。對于從模式(位選擇單線雙向傳輸模式。對于從模式(MSTR = 0),),模塊使用模塊使用MISO (SISO)用于單線傳輸.對于主模式,模塊使用MOSI (MOMI)進行單線傳輸。當SPC0 = 1時,BIDIROE 用于啟動單線模式的輸出驅動。0-模塊使用獨立的管腳進行數據傳輸;1-啟用單線模式。寄存器SPI Baud Rate Register (SPIBR)寄存器SPI Status Register (SPIS)7-SPRFSPI Read Buffer Full FlagSP
13、RF用于指示一次數據傳輸完成,可以從用于指示一次數據傳輸完成,可以從SPID讀取輸入的數據了。讀SPIS然后讀取SPID可清除該標志位。0-接收緩存區無可用數據;1-接收緩沖區收到新的數據。5-SPTEFSPI Transmit Buffer Empty Flag發送數據緩沖區空標志,讀發送數據緩沖區空標志,讀SPIS然后寫然后寫SPID可可清除該標志位。清除該標志位。SPTEF=1之后必須先讀SPIS,然后采用寫SPID,否則寫入失敗。在SPTIE允許時,該位可以產生中斷。在SPI空閑時,對SPID寫入的數據會很快(2個bus cycles)倒入移位寄存器,允許立刻寫入第二個要發送的數據給SPID.0- SPI發送緩沖區不空;1- SPI發送緩沖區空。4-MODFMaster Mode Fault Flag 當當SPI被配置成主模式時,從模式選擇(被配置成主模式時,從模式選擇(slave select input)管腳變低,導致)管腳變低,導致MODF被置位。該位作為總線沖突指示,只有在被置位。該位作為總線沖突指示,只有在MSTR = 1, MODFEN = 1, a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 解除合同第三方補償協議
- 購地皮協議書范本
- 訂購疆叉車合同協議
- 設計工作室租賃合同協議
- 試崗協議書范本
- 購買鋼材材料合同協議
- 購買傳輸機合同協議
- 2025屆山東省泰安市肥城市高三上學期開學考-歷史試題(含答案)
- 高明實驗中學高一下學期周練語文試題
- 2025年大學化學調整策略試題及答案
- 廣汽傳祺M8宗師版說明書
- 數控車床機器人自動上下料系統設計
- 2023年工程師pe年終總結及年后展望
- 中國環境保護徽
- 眩暈護理完整
- 作業指導書露天礦山作業指導書
- 家庭照護員題庫
- 人教版七年級數學上冊第三章《數學活動》名師課件
- 教科版(2017)小學科學六年下冊《產生氣體的變化》說課(附反思、板書)課件
- 堅持以人民為中心發展思想
- 球形網架屋面板安裝專項施工方案
評論
0/150
提交評論