《嵌入式系統(tǒng)設(shè)計-基于ARM Cortex-A9 多核處理器Linux編程》第14章 串行外設(shè)接口(SPI)介紹_第1頁
《嵌入式系統(tǒng)設(shè)計-基于ARM Cortex-A9 多核處理器Linux編程》第14章 串行外設(shè)接口(SPI)介紹_第2頁
《嵌入式系統(tǒng)設(shè)計-基于ARM Cortex-A9 多核處理器Linux編程》第14章 串行外設(shè)接口(SPI)介紹_第3頁
《嵌入式系統(tǒng)設(shè)計-基于ARM Cortex-A9 多核處理器Linux編程》第14章 串行外設(shè)接口(SPI)介紹_第4頁
《嵌入式系統(tǒng)設(shè)計-基于ARM Cortex-A9 多核處理器Linux編程》第14章 串行外設(shè)接口(SPI)介紹_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第14章SPI串行外設(shè)接口總線

SPI(SerialPeripheralInterface,串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外設(shè)以串行方式進行通信。外設(shè)可以是FlashRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動器、A/D轉(zhuǎn)換器和MCU等。SPI總線系統(tǒng)可以直接與各個廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCLK)、主機輸入/從機輸出數(shù)據(jù)線(MISO)、主機輸出/從機輸入數(shù)據(jù)線(MOSI)和低電平有效的從機選擇線SS(有的SPI接口芯片帶有中斷信號線(INT),有的SPI接口芯片沒有主機輸出/從機輸入數(shù)據(jù)線)。SPI串行外設(shè)接口總線相比I2C總線效率要高,因為它是雙工的,但比I2C要多使用兩根數(shù)據(jù)線。本章介紹SPI串行外設(shè)接口的原理、接口控制寄存器的配置和使用、SPI串行外設(shè)接口編程。本章內(nèi)容較多且較復(fù)雜,同學(xué)可根據(jù)需要、精力、興趣取舍。§14.1SPI接口及操作§14.2SPI接口寄存器§14.3MCP2515芯片介紹§14.4硬件實驗電路§14.5SPI2實驗程序主要內(nèi)容§14.1SPI接口及操作14.1.1SPI串行外設(shè)接口的原理14.1.2SPI串行外設(shè)接口的特性14.1.1SPI串行外設(shè)接口的原理SPI接口是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM、Flash、實時時鐘、AD轉(zhuǎn)換器,以及數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI接口在CPU和外圍低速器件之間進行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達到數(shù)Mbps。SPI接口是以主從方式工作的,這種模式通常有一個主器件和一個或多個從器件。接口包括以下4種信號。1.MOSI:主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入。2.MISO:主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出。3.SCLK:時鐘信號,由主器件產(chǎn)生。4.:從器件使能信號,由主器件控制。在點對點通信中,SPI接口不需要進行尋址操作,且為全雙工通信,簡單高效。在多個從器件的系統(tǒng)中,每個從器件都需要獨立的使能信號,由于SPI接口比I2C總線多兩根信號線,因此硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。SPI接口的內(nèi)部硬件實際上是兩個簡單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在后。如圖所示,在SCLK的下降沿,數(shù)據(jù)發(fā)生改變,同時一位數(shù)據(jù)被存入移位寄存器。SPI接口的內(nèi)部硬件接口如圖所示。SPI接口也有其缺點:沒有指定的流控制;沒有應(yīng)答機制來確認(rèn)是否接收到數(shù)據(jù)。Exynos4412包含3個串行外設(shè)接口SPn(n=0~2)接口,每個SPI接口都有兩個分別用于發(fā)送和接收的8位移位寄存器,在主設(shè)備的一個移位脈沖的驅(qū)動下,1bit數(shù)據(jù)被同步發(fā)送(串行移出)和接收(串行移入)。8位串行數(shù)據(jù)的速率由相關(guān)控制寄存器的內(nèi)容決定。如果只想發(fā)送,接收到的是一些虛擬的數(shù)據(jù);另外,如果只想接收,發(fā)送的數(shù)據(jù)也可以是一些虛擬的1。Exynos4412SPI0接口的結(jié)構(gòu)框圖如圖所示14.1.2SPI串行外設(shè)接口的特性SPI接口具有如下特性:1.與SPI接口協(xié)議v2.11兼容;2.8位/16位/32位用于發(fā)送的移位寄存器;3.8位/16位/32位用于接收的移位寄存器;4.查詢、中斷和DMA傳送模式?!?4.2SPI接口寄存器14.2.1SPI狀態(tài)寄存器14.2.2SPI時鐘分頻寄存器CLK_DIV_PERILn14.2.3SPI傳輸配置寄存器CH_CFGn14.2.4SPI發(fā)送數(shù)據(jù)寄存器(SPTDATn)14.2.5SPI接收數(shù)據(jù)寄存器(SPI_RX_DATAn(n=0~2))14.2.6SPI接口操作14.2.7SPI接口的傳輸格式14.2.8SPI通信模式14.2.1SPI狀態(tài)寄存器SPI狀態(tài)寄存器SPI_STATUSn(n=0~2)如表所示。名稱位描述復(fù)位值TX_DONG

[25]主模式下發(fā)送狀態(tài)0=其他情況;1=發(fā)送準(zhǔn)備0RX_FIFO_LVL[23:15]接收FIFO數(shù)據(jù)個數(shù)0TX_FIFO_LVL[14:6]發(fā)送FIFO數(shù)據(jù)個數(shù)

RX_OVERRUN[5]接送FIFO溢出錯誤0RX_UNDERRUN[4]接收數(shù)據(jù)缺失錯誤0TX_OVERRUN[3]發(fā)送溢出錯誤0TX_UNDERRUN[2]發(fā)送FIFO數(shù)據(jù)缺失0RX_FIFO_RDY[1]0=接收FIFO大于觸發(fā)水平;1=接收FIFO小于觸發(fā)水平0TX_FIFO_rdy[0]0=發(fā)送FIFO大于觸發(fā)水平;1=發(fā)送FIFO小于觸發(fā)水平

14.2.2SPI時鐘分頻寄存器CLK_DIV_PERILnSPI時鐘分頻寄存器如表所示。CLK_DIV_PERILn(n=0~2)輸入時鐘的分頻值,以配合合適的傳輸速度。CLK_DIV_PERIL0位描述復(fù)位值SPI0_PRE_RATIO[15:8]SPI0時鐘分頻因子,SCLK-SPI0=DOUTSPI0/(SPI0_PRE_RATIO+1)0SPI0_RATIO[3:0]SPI0時鐘分頻因子,DOUTSPI0=MOUTSPI0/(SPI0_RATIO+1)0CLK_DIV_PERIL1位描述復(fù)位值SPI1_PRE_RATIO[31:24]SPI1時鐘分頻因子,SCLK-SPI1DOUTSPI1(SPI1_PRE_RATIO+1)0SPI11RATIO[16:19]SPI1時鐘分頻因子,DOUTSPI1=MOUTSPI1/(SPI1ATIO+1)0CLK_DIV_PERIL2位描述復(fù)位值SPI2_PRE_RATIO[15:8]SPI2時鐘分頻因子,SCLK_SPI2=DOUTSPI0/(SPI2_PRE_RATIO+1)0SPI2_RATIO[3:0]SPI0時鐘分頻因子,DOUTSPI2=MOUTSPI2(SPI2_RATIO+1)014.2.3SPI傳輸配置寄存器CH_CFGnSPI傳輸配置寄存器CH_CFGn(n=0~2)是對SPI進行使能和傳輸配置,如接收使能、發(fā)送使能、主從關(guān)系確定,相位、極性、軟件復(fù)位等,如表CH_CFGn(n=0~2)位描述復(fù)位值HIGH_SPEED_EN[6]從機模式下TX時間控制位,0=禁止;1=使能0SW_RST[5]軟件復(fù)位0SLAVE[4]主從模式選擇位0=主機模式;1=從機模式0CPOL[3]極性選擇0=高;1=低0CPHA[2]相位選擇0=方式A;1=方式B0PX_CH_ON[1]接收(RX)通道使能0=禁止;1=使能0TX_CH_ON[0]發(fā)送通道使能0=禁止;1=使能014.2.4SPI發(fā)送數(shù)據(jù)寄存器(SPTDATn)SPI發(fā)送數(shù)據(jù)寄存器SPI_TX_DATAn(n=0~2)如下表所示。發(fā)送數(shù)據(jù)寄存器中存放的是SPI接口待發(fā)送的數(shù)據(jù)。SPI_TX_DATAn(n=0~2)位描

述初

值SPI發(fā)送數(shù)據(jù)寄存器[31:0]發(fā)送數(shù)據(jù)寄存器中存放的是SPI接口待發(fā)送的數(shù)據(jù)0x0014.2.5SPI接收數(shù)據(jù)寄存器(SPI_RX_DATAn(n=0~2))SPI接收數(shù)據(jù)寄存器如下表所示。接收數(shù)據(jù)寄存器中存放的是SPI接口接收到的數(shù)據(jù)。SPI_RX_DATAn(n=0~2)位描

述初

值SPI接收數(shù)據(jù)寄存器[31:0]接收數(shù)據(jù)寄存器中存放的是SPI接口接收的數(shù)據(jù)0x0014.2.6SPI接口操作通過SPI接口,Exynos4412可以與外設(shè)同時發(fā)送/接收8位數(shù)據(jù)。串行時鐘線與兩條數(shù)據(jù)線同步,用于移位和數(shù)據(jù)采樣。如果SPI是主設(shè)備,那么數(shù)據(jù)傳輸速率由主設(shè)備寄存器的相關(guān)位控制??梢酝ㄟ^修改頻率來調(diào)整波特率寄存器的值。如果SPI是從設(shè)備,則其他主設(shè)備提供時鐘,向SPIDATAn寄存器中寫入字節(jié)數(shù)據(jù),SPI發(fā)送/接收操作就同時啟動。某些情況下,在向SPIDATAn寄存器中寫入字節(jié)數(shù)據(jù)之前要激活nSS引腳。14.2.7SPI接口的傳輸格式Exynos4412支持4種不同的數(shù)據(jù)傳輸格式。14.2.8SPI通信模式SPI通信模式有如下3種。1.DMA模式:該模式不能用于從設(shè)備FormatB形式。2.查詢模式:如果接收用的設(shè)備采用FormatB形式,DATA_READ信號應(yīng)該比SPICLK延遲一個相位。3.中斷模式:如果接收用的設(shè)備采用FormatB形式,DATA_READ信號應(yīng)該比SPICLK延遲一個相位§14.3MCP2515芯片介紹本實驗是通過編寫SPI程序來控制MCP2515,MCP2515是一款獨立的局域網(wǎng)CAN總線控制器。它本身代有9條指令,還有一個內(nèi)置的狀態(tài)寄存器,可以通過狀態(tài)寄存器獲取該芯片當(dāng)前狀態(tài),MCP2515框圖如下頁圖所示。我們主要關(guān)注MCP2515與SPI的接口及SPI驅(qū)動編程。MCP2515芯片指令集見表14-8。我們實驗主要目的:1.設(shè)置SPI時鐘源2.設(shè)置SPI數(shù)據(jù)傳輸格式和使能通道3.設(shè)置SPI工作模式4.設(shè)置GPC1相關(guān)引腳SPI工作模式指令名稱格式說明復(fù)位11000000將內(nèi)部基礎(chǔ)器置為省缺狀態(tài)讀00000011從指定地址寄存器讀數(shù)據(jù)讀RX緩沖器10010mn0讀取接收緩沖器時,在“n,m”指示的4個地址中一個放地址指針可以減輕讀命令開銷。寫00000010將數(shù)據(jù)寫入指定地址裝載TX緩沖區(qū)01000abc裝載TX緩沖區(qū)時,在a,b,c,所提示的6個地址中一個地址指針,可以減輕寫命令開銷。RTS10000abc指示控制器開始發(fā)送緩沖區(qū)報文,發(fā)送序列10000abc。a-TXB2請求發(fā)送,b-TXB1請求發(fā)送,c-TXB0請求發(fā)送讀狀態(tài)10100000讀取發(fā)送/接收功能狀態(tài)R狀態(tài)10110000快速查詢命令位修改00000101允許用戶修改寄存器某位§14.4硬件實驗電路Exynos4412配備3個SPI控制器,每個SPI總線控制

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論