基于AVR單片機SPI的串行設計
出處:維庫電子市場網 發(fā)布于:2016-07-18 13:47:41
1、AVR單片機的SPI接口
SPI(SerialPeripheralINTERFACE---串行外設接口)總線系統(tǒng)是一種同步串行外設接口,允許MCU與各種外圍設備以串行方式進行通信、數據交換,廣泛應用于各種工業(yè)控制領域?;诖藰藴?,SPI系統(tǒng)可以直接于各個廠家生產的多種標準外圍器件直接接口。SPI接口通常包含有4根線:串行時鐘(SCK)、主機輸入/從機輸出數據線(MISO)、主機輸出/從機輸入數據線(MOSI)和低電平有效的從機選擇線SS。在從機選擇線SS使能的前提下,主機的SCK脈沖將在數據線上傳輸主/從機的串行數據。主/從機的典型連接圖如圖(1)所示:

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

圖(2)SPI主機-從機的互連
下面將介紹SPI的幾個特殊寄存器:
1.1SPI的控制寄存器—SPCR
SPIE為SPI中斷使能,置位后,只要SPSR寄存器的SPIF和SREG寄存器的全局中斷使能位置位,就會引發(fā)SPI中斷。SPE置位將使能SPI,DORD置位時數據的LSB首先發(fā)送;否則數據的MSB首先發(fā)送。MSTR置位時選擇主機模式,否則為從機。CPOL置位表示空閑SCK為高電平;否則空閑時SCK為低電平。CPHA決定數據是在SCK的起始沿采樣還是在SCK的結束沿采樣。通過對SPR1、SPR0進行設計,確定主機的SCK速率。
1.2SPI的狀態(tài)寄存器—SPSR
SPIF為中斷標志位,串行發(fā)送結束后,SPIF置位。若此時寄存器 SPCR的SPIE和全局中斷使能位置位,SPI中斷即產生。進入中斷例程后SPIF將自動清零。在發(fā)送當中對SPI數據寄存器SPDR寫數據將置位WCOL,SPI2X置位后SPI的速度加倍。
1.3SPI的數據寄存器—SPDR
SPDR數據寄存器為讀/寫寄存器,用來在寄存器文件SPI移位寄存器之間傳輸數據。寫寄存器將啟動數據傳輸,讀寄存器將讀取寄存器的接收緩沖器。SPI系統(tǒng)的發(fā)送方向只有一個緩沖器,而在接收方向有兩個緩沖器。也就是說,在發(fā)送時一定要等到移位過程全部結束后才能對SPI數據寄存器執(zhí)行寫操作。而在接收數據時,需要在下一個字符移位過程結束之前通過訪問SPI數據寄存器讀取當前接收到的字符。否則個字節(jié)將丟失。
比起8051使用軟件模擬時序實現SPI功能來,AVR的硬件SPI實在是先進了許多。通過讀寫相應的寄存器就能輕松實現SPI的操作,使得編程變得更加方面。下面是使用AVR SPI的幾個步驟:
首先,應設置相應管腳的讀寫寄存器以設定數據傳輸方向。在Mega16里,SPI的接口為以下管腳:PB4-PB7 (SS/MOSI/MISO/CLK)。如果工作在主模式則可以這么寫(PORTB=0xff; DDRB=0xBF; PB7(SCK):輸出 PB6(MISO):輸入 PB5(MOSI):輸出 PB4(SS):輸出)
接著還需要設定SPI工作寄存器,控制的寄存器只有三個:SPDR(SPI數據寄存器)、SPCR(SPI控制寄存器)、SPSR(SPI狀態(tài)寄存器),其中SPDR是讀寫移位寄存器中的值,SPSR中包括了SPIE:SPI中斷使能位 SPE:SPI使能位 DORD:數據傳送從位或位開始MSTR:主從工作方式選擇 COPL/CPHA:時鐘極性相位選擇 SPR1/SPR0:時鐘速率選擇;SPSR中主要是幾個狀態(tài)標志位,用來做軟件查詢,SPIF:SPI中斷標志位 WCOL:沖則可以如下設置突標志位 如果使用的是軟件查詢, SPCR中只需要置SPE和MSTR兩位。
隨后的工作就是往SPDR里讀寫數據,需要注意的是少讀寫一個Byte(8 bit)的數據,這和硬件的設計有關。在讀取數據前需要先寫入數據??梢宰x寫一個字節(jié),也可以塊讀寫,在OurAVR上的例程中這兩種方式均有.
版權與免責聲明
凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://www.hbjingang.com,違反者本網將追究相關法律責任。
本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。
如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。
- 單片機技術特性與嵌入式開發(fā)實踐指南2026/1/7 10:00:02
- 單片機(MCU)與數字信號處理器(DSP)分類及選型技術指南2025/12/30 10:02:37
- 工業(yè)級DSP信號處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內建N/N預驅電機專用SoC單片機2025/11/26 14:11:41
- 什么是C51數據類型擴充定義2025/10/27 13:59:22









