女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]ADμC812的串行外設接口(SPI)及其應用

摘要:ADμC812是一種新型的集成12位數(shù)據(jù)采集系統(tǒng)。它的串行外設接口SPI(serial peripheral interface)可進行主機和多片從外圍器件的信息傳遞,即主機對從機的控制及從機向主機提供各種信息等,從而實現(xiàn)系統(tǒng)之間的各種控制和操作。

    關鍵詞:ADμC812 串行通信 SPI串行端口

概述

ADμC812是一種全集成的12位數(shù)據(jù)采集系統(tǒng)。它在單個芯片內包含了高性能的自校準多通道ADC、2個12位DAC以及可編程的8位MCU(與8051兼容)。為便于MCU與各種外圍設備進行通信,ADμC812提供了3種串行I/O端口:UART接口、I2C兼容的串行接口和串行外設接口(SPI)。其中,SPI接口是工業(yè)標準的同步串行接口,是一種全雙工、三線通信的系統(tǒng)。它允許MCU與各種外圍設備以串行方式(8位數(shù)據(jù)同時、同步地被發(fā)送和接收)進行通信。在SPI接口中,數(shù)據(jù)的傳輸需要1個時鐘信號和兩條數(shù)據(jù)線。

SPI可工作在主模式或從模式下。在主模式,每一位數(shù)據(jù)的發(fā)送/接收需要1次時鐘作用;而在從模式下,每一位數(shù)據(jù)都是在接收到時鐘信號之后才發(fā)送/接收。1個典型的SPI系統(tǒng)包括1個主MCU和1個或幾個從外圍器件。SPI接口可設置成在發(fā)送/接收1個字節(jié)的結束時產(chǎn)生1次中斷。

主時鐘可以通過編程而成為不同的狀態(tài),既可編程為4種不同主波特率的任一種,又可對時鐘的極性和相位進行編程。

SPI也可用于那些需要比微控制器上的并行I/O端口更多輸入或輸出端的場合中。SPI提供了一種擴展I/O功能的最簡單的辦法,只需使用最少的微控制器引腳。

一、工作原理

1.SPI的信號說明

SPI系統(tǒng)使用4條線可與多種標準外圍器件直接接口:串行時鐘線(SCLOCK)、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇線SS。

SCLOCK是主機的時鐘線,為MISO數(shù)據(jù)的發(fā)送和接收提供同步時鐘信號。每一位數(shù)據(jù)的傳輸都需要1次時鐘作用,因而發(fā)送或接收1個字節(jié)的數(shù)據(jù)需要8個時鐘的作用。主機的時鐘是通過主機的硬件設置的,并和各個從機的SCLOCK相連。時鐘的波特率、極性、相位是由SPICON(SPI控制寄存器)來設置的。

MISO是主機的輸入/從機的輸出數(shù)據(jù)線。主機的MISO應與從機的MISO相連進行高位在前的數(shù)據(jù)交換。

MOSI是SPI接口的SPI主機輸出/從機輸入數(shù)據(jù)引腳。這一引腳應當連接主微控制器的數(shù)據(jù)輸出和從微控制器的數(shù)據(jù)輸入端MOSI,進行高位在前數(shù)據(jù)的交換。

SS只在從方式中用于低電平選中從。SS對應的是P1.5,在初始化時P1口被設置為模擬輸入,因而通過清除P1.5可將其設置為數(shù)據(jù)輸入,才可完成主、從機的通信。

    2.SPI的寄存器

SPI有2個相關寄存器:SPICON和SPIDAT,其中SPICON包含各種標志位、使能位、方式位及時鐘位。各位都是可尋址的,如表1及表2所列。

表1 SPICON寄存器

ISPI WCOL SPE SPIM CPOL CPHA SPR1 SPR0
FFH 0 FEH 0 FDH 0 FCH 0 FBH 0 FAH 0 F9H 0 F8H 0
R/W R/W R/W R/W R/W R/W R/W R/W

表2 SPICON各位功能

功        能
ISPI 中斷標志位。
當發(fā)送和接收1字節(jié)數(shù)據(jù)完畢時自動置全。該位也可以通過軟件控制。當于中斷時,應當打開中斷EA,將IE2.0置位。當執(zhí)行中斷服務程序時,硬件自動清除該位
WCOL 寫沖突錯誤標志位。
當SPI正進行數(shù)據(jù)交換時,若向SPIDAT中寫數(shù)據(jù)將產(chǎn)生寫沖突錯誤,寫入的數(shù)據(jù)將無效,原有交換繼續(xù)執(zhí)行。必須由軟件清除
SPE SPI使能位。
SPE=0,I2C串口使能,SPI串口禁止;
SPE=1,I2C串口禁止,SPI串口使能
SPIM 主模式選擇位。
SPIM=0,SPI工作于從模式;
SPIM=1,SPI工作于主模式
CPOL 時鐘極性選擇位。
CPOL=0,主機時鐘有高到低的跳變讀取數(shù)據(jù),數(shù)據(jù)字節(jié)之間傳輸時,時鐘處于高電平空閑狀態(tài);
CPOL=1,主機時鐘有低到高的跳變讀取數(shù)據(jù),各數(shù)據(jù)字節(jié)之間傳輸時時鐘處于低電平空閑狀態(tài)(見圖1)
CPHA 時鐘相位選擇位。
CPHA=0,傳輸數(shù)據(jù)的高位MSB在SS的降沿出現(xiàn),在時鐘第1個前沿讀入;之后下一數(shù)據(jù)位在時鐘后沿出現(xiàn),在下一個前沿讀入;直到8位數(shù)據(jù)讀完。
CPHA=1,數(shù)據(jù)在時鐘前沿出現(xiàn),在同一時鐘周期的后沿讀入(見圖1)。
讀位還可控制從機的同步方式
SPR1
SPR0
SPI波行選擇位。
SPR1  SPR0  波特率
0  0  fosc/4
0  1  fosc/8
1  0  fosc/32
1  1  fosc/64
注:從方式下這兩位都清零

另一個SPI寄存器是SPIDAT。對這一寄存器的寫操作會產(chǎn)生從高位開始的一位位的數(shù)據(jù)發(fā)送。如果寫操作發(fā)生在其他數(shù)據(jù)正在傳遞的過程中,那么WCOL將置位。如果寫操作進行時沒有其他數(shù)據(jù)在傳遞,SPIDAT中的數(shù)據(jù)將自動鎖存到移位寄存器中,移位寄存器從高位開始發(fā)送數(shù)據(jù),發(fā)送結束后輸入的字節(jié)將鎖存到SPIDAT中,可進行軟件讀出。

3.主模式

發(fā)送和接收可以同時工作在主模式下。主模式的顯著特征是不論是發(fā)送還是接收始終有SCLOCK信號,SS信號不是必需的。因為SPI串口只能有一片主機,因而不存在主機的選擇問題。

發(fā)送操作是由向SPIDAT中寫數(shù)據(jù)而觸發(fā)的。在主模式下,時鐘信號的1次作用對應一位數(shù)據(jù)的發(fā)送(MISO)和另一位數(shù)據(jù)的接收(MOSI)。如圖2所示,在主機中數(shù)據(jù)從移位寄存器中自左向右發(fā)出送到從機(MOSI),同時從機中的數(shù)據(jù)自右向左發(fā)到主機(MISO),經(jīng)過8位時鐘周期完成1個字節(jié)的發(fā)送。輸入字節(jié)保留在移位寄存器中,此時ISPI自動置位(如果有中斷設置,則產(chǎn)生中斷),移位寄存器的數(shù)據(jù)將被鎖存到SPIDAT中,此后對SPIDAT的讀操作將把數(shù)據(jù)讀出。

將主機的SS和從機SS的相連的方式?jīng)]有意義,因為P1.5只可作輸入,所以主機的SS不能為從機的SS提供選通信號。為了解決這一問題,可利用主機其他輸入/輸出口線與從機的SS相連,實現(xiàn)選通控制,可以有多根口線控制多個從機。如果要讀取主機SS的狀態(tài),需要將主機的SS與主機上另一根輸入/輸出口線相連,通過對該口線讀操作獲取主機SS的狀態(tài)。

4.從模式

發(fā)送和接收可以同時工作在從模式下。從模式的顯著特征是:不論是發(fā)送還是接收始終必須在SCLOCK信號作用下進行,并且SS信號必須有效。SS在初始化之后,要設置為數(shù)字輸入(CLR P1.5),當SS信號無效時,數(shù)據(jù)的發(fā)送無法進行并且輸入的數(shù)據(jù)視為無效。這是因為輸入的時鐘信號是與SCLOCK的邏輯與操作,而SCLOCK信號是SS的反轉。這樣當SS為高時,就沒有時鐘信號輸入。

當CPHA=1時,SS始終置地;當CPHA=0時,在從機接收到第1個時鐘之前SS必然置低,在接收完畢之后必然置高。數(shù)據(jù)的發(fā)送和接收的過程見圖2,與主模式下基本相似,只是移位寄存器的數(shù)據(jù)移出和輸入方向與之相反。從模式下的SS信號也須通過連接其他口線來讀取狀態(tài)。

5.從模式下的時鐘同步

通過設置CPHA位可以獲得從模式下的兩種同步方式。由于SCLOCK信號線可能存在干擾脈沖,如果這些干擾脈沖大到一定程序,從機時就會誤認為收到了時鐘信號,將導致接收數(shù)據(jù)錯誤。這樣依靠同步結構的SPI將失去同步的意義。

CPAH=1時,如果有其他脈沖的干擾,ADμC812將無法與主機獲得同步。選擇這種方式,當SS為低時,時鐘計數(shù)器才開始工作。每經(jīng)過8個時鐘同周期,ISPI將置位(如果中斷設置正確將產(chǎn)生中斷),并且移位寄存器的數(shù)據(jù)鎖存到SPIDAT中。SS保持低電平不會使時鐘計數(shù)器復位。

CPHA=0時,如果有其他脈沖的干擾,ADμC812也可與主機獲得同步。在這種方式下,從機通過SS信號獲得的,而不是通過時鐘信號獲得的。當SS信號變低時,時鐘計數(shù)器復位,數(shù)據(jù)位在此后的每一個時鐘發(fā)送和接收;當SS變高時,ISPI位置位(如果中斷設置正確,將產(chǎn)生中斷),并且移位寄存器的數(shù)據(jù)鎖存到SPIDAT中。ISPI置位與數(shù)據(jù)的鎖存始終與時鐘計數(shù)值無關,因此當SS的觸發(fā)在多于或少于8個時鐘時,在SS返回高電平瞬間,ADμC812將產(chǎn)生中斷,并且收到或發(fā)送的數(shù)據(jù)將不可靠。在這種方式下,SS不可始終置低,如果始終置低,那么從機將始終發(fā)送00。

當了與主機獲得同步,從機SS的下降沿必然由主機控制。當SS變低時,從機產(chǎn)生外部中斷,中斷服務中SPE位由軟件清除,然后重新置位。SPE位的置位將使時鐘計數(shù)器復位到零。須注意的一點是這一中斷必須有比其他中斷更高的優(yōu)先級,才可使從機在主機第1個時鐘到來之間獲得同步。主機程序必須為從機中斷執(zhí)行中斷服務提供足夠的時間,以對SPE進行操作。典型的操作是在清除SS和向SPIDAT中寫數(shù)據(jù)之間用12~15個NOP指令。

二、實際應用

圖3所示為1個主機和1個從機典型的電路連接圖。注意主、從機要有公共的地。

根據(jù)圖3的連接情況及前面分析的主、從機工作工程,繪制流程圖如圖4所示。

主機程序:

SET EA ;打開中斷允許

SET IE2.0 ;打開SPI中斷

MOV SPICON,#30H ;送SPI控制字

MASTER:CLR P3.5 ;置SS為低

NOP ;等待從機中斷執(zhí)行完畢

NOP

NOP

NOP

MOV SPIDAT,#DATA;向SPIDAT中寫數(shù)據(jù)

LCALL DELAY ;根據(jù)選擇的分頻比算出數(shù)據(jù)傳輸?shù)臅r間,確定DELAY子程序的延時時間(也可用中斷方式)

SETB P3.5 ;將SS置高

LJMP MASTER ;送下一個數(shù)

從機程序:

ORG 0013H ;外部中斷INT0入口

CLR SPE ;SPE位清除

SETB SPE ;與主機時鐘獲得同步

SETB P3.2 ;撤銷中斷

RETI

……

SETB EA ;打開中斷允許

SETB IE2.0 ;打開SPI中斷

SETB EX0 ;打開外部中斷

MOV SPICON,#20H ;送SPI控制字

CLR P1.5 ;設置為數(shù)字輸入

JB P3.1$ ;判斷P3.1是否為低

CLR P3.2 ;產(chǎn)生INT0中斷

CLALL DELAY ;等待數(shù)據(jù)傳送完畢

MOV A,SPIDAT ;讀取數(shù)據(jù)

    通過以上程序可以實現(xiàn)從主機向從機中發(fā)送數(shù)據(jù)的操作。在某些情況下,從微控制器所完成的功能較少,如果采用ADμC812會產(chǎn)生資源和經(jīng)濟的浪費,為此可以采用MCS-51系列的微控制器作為從機。這樣不僅實現(xiàn)了必要的功能又節(jié)約了資源。由于MCS-51沒有SPI串口,所以采用MCS-51作為從機需要模擬SPI的工作模式來完成數(shù)據(jù)的傳送。下面給出模擬SPI接收數(shù)據(jù)的電路連接圖(見圖5)和相關程序。

ADμC812作為主機的程序與前面相同。8051模擬SPI串口接收數(shù)據(jù)程序如下:

ORG 0013H

INT0:MOV R0,#8 ;移位計數(shù)值

INT0':JB P3.4,INT0 ;輸入時鐘位高電平時等待

MOV C,P3.3 ;輸入時鐘下降沿接收數(shù)據(jù)

RLC A ;將數(shù)據(jù)存入A中

DJNZ R0,INT0' ;8位是否傳送完

SETB P3. ;8位數(shù)據(jù)接收完畢,關中斷

MOV @R1,#DATA ;將接收數(shù)據(jù)存到內部RAM

INC R1 ;指向下一個內部RAM單元

CJNE R1,#00H,REC

MOV R1,#80H

RETI

……

SETB EA

SETB EX0

MOV R1,#80H ;內部存儲器80H~FFH單元存儲接收的數(shù)據(jù)

……

總結

通過對SPI串口原理的介紹,SPI串行接口可以在短距離內進行主機與從機的數(shù)據(jù)傳送,并且具有多種可調的傳輸方式、連接電路簡單、使用方便等優(yōu)點。為實現(xiàn)主機和從機及從外圍設備的通信提供了一種簡單、易行的方案。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉