基于AVR單片機(jī)SPI的串行設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第1頁(yè)
基于AVR單片機(jī)SPI的串行設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第2頁(yè)
基于AVR單片機(jī)SPI的串行設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第3頁(yè)
基于AVR單片機(jī)SPI的串行設(shè)計(jì)-設(shè)計(jì)應(yīng)用_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

精品文檔-下載后可編輯基于AVR單片機(jī)SPI的串行設(shè)計(jì)-設(shè)計(jì)應(yīng)用1、AVR單片機(jī)的SPI接口SPI(SerialPeripheralINTERFACE串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,允許MCU與各種外圍設(shè)備以串行方式進(jìn)行通信、數(shù)據(jù)交換,廣泛應(yīng)用于各種工業(yè)控制領(lǐng)域?;诖藰?biāo)準(zhǔn),SPI系統(tǒng)可以直接于各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口。SPI接口通常包含有4根線:串行時(shí)鐘(SCK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線(MISO)、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(MOSI)和低電平有效的從機(jī)選擇線SS。在從機(jī)選擇線SS使能的前提下,主機(jī)的SCK脈沖將在數(shù)據(jù)線上傳輸主/從機(jī)的串行數(shù)據(jù)。主/從機(jī)的典型連接圖如圖(1)所示:

圖(1)主/從機(jī)的連接圖

串行外設(shè)接口SPI允許ATmega16和外設(shè)之間進(jìn)行高速的同步數(shù)據(jù)傳輸。ATmega16SPI的特點(diǎn)如下:全雙工,3線同步數(shù)據(jù)傳輸,主/從機(jī)操作,LSB首先發(fā)送或MSB首先發(fā)送,7種可編程的比特率,傳送中斷結(jié)束,寫碰撞標(biāo)志檢測(cè),可以從閑置模式喚醒,作為主機(jī)時(shí)具有雙速模式(CK/2)。如圖(2)所示,系統(tǒng)包括兩個(gè)移位寄存器和一個(gè)主時(shí)鐘發(fā)生器。通過(guò)將需要的從機(jī)的SS引腳拉低,主機(jī)啟動(dòng)通信過(guò)程。主機(jī)和從機(jī)將需要的數(shù)據(jù)放到相應(yīng)的移位寄存器,主機(jī)在SCK引腳上產(chǎn)生時(shí)鐘脈沖以交換數(shù)據(jù)。主機(jī)的數(shù)據(jù)從MOSI移出,從從機(jī)MISO移入。從機(jī)的數(shù)據(jù)從MISO移出,從從機(jī)MOSI移入。主機(jī)通過(guò)將從機(jī)的SS拉高實(shí)現(xiàn)與從機(jī)的同步。

圖(2)SPI主機(jī)-從機(jī)的互連

下面將介紹SPI的幾個(gè)特殊寄存器:1.1SPI的控制寄存器—SPCR

SPIE為SPI中斷使能,置位后,只要SPSR寄存器的SPIF和SREG寄存器的全局中斷使能位置位,就會(huì)引發(fā)SPI中斷。SPE置位將使能SPI,DORD置位時(shí)數(shù)據(jù)的LSB首先發(fā)送;否則數(shù)據(jù)的MSB首先發(fā)送。MSTR置位時(shí)選擇主機(jī)模式,否則為從機(jī)。CPOL置位表示空閑SCK為高電平;否則空閑時(shí)SCK為低電平。CPHA決定數(shù)據(jù)是在SCK的起始沿采樣還是在SCK的結(jié)束沿采樣。通過(guò)對(duì)SPR1、SPR0進(jìn)行設(shè)計(jì),確定主機(jī)的SCK速率。1.2SPI的狀態(tài)寄存器—SPSR

SPIF為中斷標(biāo)志位,串行發(fā)送結(jié)束后,SPIF置位。若此時(shí)寄存器SPCR的SPIE和全局中斷使能位置位,SPI中斷即產(chǎn)生。進(jìn)入中斷例程后SPIF將自動(dòng)清零。在發(fā)送當(dāng)中對(duì)SPI數(shù)據(jù)寄存器SPDR寫數(shù)據(jù)將置位WCOL,SPI2X置位后SPI的速度加倍。1.3SPI的數(shù)據(jù)寄存器—SPDR

SPDR數(shù)據(jù)寄存器為讀/寫寄存器,用來(lái)在寄存器文件SPI移位寄存器之間傳輸數(shù)據(jù)。寫寄存器將啟動(dòng)數(shù)據(jù)傳輸,讀寄存器將讀取寄存器的接收緩沖器。SPI系統(tǒng)的發(fā)送方向只有一個(gè)緩沖器,而在接收方向有兩個(gè)緩沖器。也就是說(shuō),在發(fā)送時(shí)一定要等到移位過(guò)程全部結(jié)束后才能對(duì)SPI數(shù)據(jù)寄存器執(zhí)行寫操作。而在接收數(shù)據(jù)時(shí),需要在下一個(gè)字符移位過(guò)程結(jié)束之前通過(guò)訪問(wèn)SPI數(shù)據(jù)寄存器讀取當(dāng)前接收到的字符。否則個(gè)字節(jié)將丟失。比起8051使用軟件模擬時(shí)序?qū)崿F(xiàn)SPI功能來(lái),AVR的硬件SPI實(shí)在是先進(jìn)了許多。通過(guò)讀寫相應(yīng)的寄存器就能輕松實(shí)現(xiàn)SPI的操作,使得編程變得更加方面。下面是使用AVRSPI的幾個(gè)步驟:首先,應(yīng)設(shè)置相應(yīng)管腳的讀寫寄存器以設(shè)定數(shù)據(jù)傳輸方向。在Mega16里,SPI的接口為以下管腳:PB4-PB7(SS/MOSI/MISO/CLK)。如果工作在主模式則可以這么寫(PORTB=0xff;DDRB=0xBF;PB7(SCK):輸出PB6(MISO):輸入PB5(MOSI):輸出PB4(SS):輸出)接著還需要設(shè)定SPI工作寄存器,控制的寄存器只有三個(gè):SPDR(SPI數(shù)據(jù)寄存器)、SPCR(SPI控制寄存器)、SPSR(SPI狀態(tài)寄存器),其中SPDR是讀寫移位寄存器中的值,SPSR中包括了SPIE:SPI中斷使能位SPE:SPI使能位DORD:數(shù)據(jù)傳送從位或位開(kāi)始MSTR:主從工作方式選擇COPL/CPHA:時(shí)鐘極性相位選擇SPR1/SPR0:時(shí)鐘速率選擇;SPSR中主要是幾個(gè)狀態(tài)標(biāo)志位,用來(lái)做軟件查詢,SPIF:SPI中斷標(biāo)志位WCOL:沖則可以如下設(shè)置突標(biāo)志位如果使用的是軟件查詢,SPCR中只需要置SPE和MSTR兩位。隨后的工作就是往

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論