国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

ADμC812的串行外設(shè)接口(SPI)及其應(yīng)用

發(fā)布時(shí)間:2010-11-17 12:36    發(fā)布者:designer
關(guān)鍵詞: ADμC812 , spi , 串行 , 接口 , 外設(shè)
ADμC812是一種新型的集成12位數(shù)據(jù)采集系統(tǒng)。它的串行外設(shè)接口SPI(serial peripheral interface)可進(jìn)行主機(jī)和多片從外圍器件的信息傳遞,即主機(jī)對(duì)從機(jī)的控制及從機(jī)向主機(jī)提供各種信息等,從而實(shí)現(xiàn)系統(tǒng)之間的各種控制和操作。

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

SPI可工作在主模式或從模式下。在主模式,每一位數(shù)據(jù)的發(fā)送/接收需要1次時(shí)鐘作用;而在從模式下,每一位數(shù)據(jù)都是在接收到時(shí)鐘信號(hào)之后才發(fā)送/接收。1個(gè)典型的SPI系統(tǒng)包括1個(gè)主MCU和1個(gè)或幾個(gè)從外圍器件。SPI接口可設(shè)置成在發(fā)送/接收1個(gè)字節(jié)的結(jié)束時(shí)產(chǎn)生1次中斷。  
主時(shí)鐘可以通過編程而成為不同的狀態(tài),既可編程為4種不同主波特率的任一種,又可對(duì)時(shí)鐘的極性和相位進(jìn)行編程。

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





一、工作原理  

1.SPI的信號(hào)說(shuō)明  

SPI系統(tǒng)使用4條線可與多種標(biāo)準(zhǔn)外圍器件直接接口:



串行時(shí)鐘線(SCLOCK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SS。  

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

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

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

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

2.SPI的寄存器  

SPI有2個(gè)相關(guān)寄存器:SPICON和SPIDAT,其中SPICON包含各種標(biāo)志位、使能位、方式位及時(shí)鐘位。各位都是可尋址的,如表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
中斷標(biāo)志位。

當(dāng)發(fā)送和接收1字節(jié)數(shù)據(jù)完畢時(shí)自動(dòng)置全。該位也可以通過軟件控制。當(dāng)于中斷時(shí),應(yīng)當(dāng)打開中斷EA,將IE2.0置位。當(dāng)執(zhí)行中斷服務(wù)程序時(shí),硬件自動(dòng)清除該位


WCOL

寫沖突錯(cuò)誤標(biāo)志位。

當(dāng)SPI正進(jìn)行數(shù)據(jù)交換時(shí),若向SPIDAT中寫數(shù)據(jù)將產(chǎn)生寫沖突錯(cuò)誤,寫入的數(shù)據(jù)將無(wú)效,原有交換繼續(xù)執(zhí)行。必須由軟件清除

SPE

SPI使能位。

SPE=0,I2C串口使能,SPI串口禁止;
SPE=1,I2C串口禁止,SPI串口使能

SPIM

主模式選擇位。

SPIM=0,SPI工作于從模式;
SPIM=1,SPI工作于主模式

CPOL
時(shí)鐘極性選擇位。
CPOL=0,主機(jī)時(shí)鐘有高到低的跳變讀取數(shù)據(jù),數(shù)據(jù)字節(jié)之間傳輸時(shí),時(shí)鐘處于高電平空閑狀態(tài);
CPOL=1,主機(jī)時(shí)鐘有低到高的跳變讀取數(shù)據(jù),各數(shù)據(jù)字節(jié)之間傳輸時(shí)時(shí)鐘處于低電平空閑狀態(tài)(見圖1)

CPHA

時(shí)鐘相位選擇位。

CPHA=0,傳輸數(shù)據(jù)的高位MSB在SS的降沿出現(xiàn),在時(shí)鐘第1個(gè)前沿讀入;之后下一數(shù)據(jù)位在時(shí)鐘后沿出現(xiàn),在下一個(gè)前沿讀入;直到8位數(shù)據(jù)讀完。

CPHA=1,數(shù)據(jù)在時(shí)鐘前沿出現(xiàn),在同一時(shí)鐘周期的后沿讀入(見圖1)。
讀位還可控制從機(jī)的同步方式

SPR1
SPR0
SPI波行選擇位。
SPR1  SPR0  波特率
0  0  fosc/4
0  1  fosc/8
1  0  fosc/32
1  1  fosc/64

注:從方式下這兩位都清零

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

3.主模式  

發(fā)送和接收可以同時(shí)工作在主模式下。主模式的顯著特征是不論是發(fā)送還是接收始終有SCLOCK信號(hào),SS信號(hào)不是必需的。因?yàn)镾PI串口只能有一片主機(jī),因而不存在主機(jī)的選擇問題。  

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

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

4.從模式  

發(fā)送和接收可以同時(shí)工作在從模式下。



從模式的顯著特征是:不論是發(fā)送還是接收始終必須在SCLOCK信號(hào)作用下進(jìn)行,并且SS信號(hào)必須有效。SS在初始化之后,要設(shè)置為數(shù)字輸入(CLR P1.5),當(dāng)SS信號(hào)無(wú)效時(shí),數(shù)據(jù)的發(fā)送無(wú)法進(jìn)行并且輸入的數(shù)據(jù)視為無(wú)效。這是因?yàn)檩斎氲臅r(shí)鐘信號(hào)是與SCLOCK的邏輯與操作,而SCLOCK信號(hào)是SS的反轉(zhuǎn)。這樣當(dāng)SS為高時(shí),就沒有時(shí)鐘信號(hào)輸入。  

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

5.從模式下的時(shí)鐘同步  

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

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

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

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





二、實(shí)際應(yīng)用  

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

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

主機(jī)程序:  

SET EA ;打開中斷允許  
SET IE2.0 ;打開SPI中斷  
MOV SPICON,#30H ;送SPI控制字  
MASTER:CLR P3.5 ;置SS為低  
NOP ;等待從機(jī)中斷執(zhí)行完畢  
NOP  
NOP  
NOP  
MOV SPIDAT,#DATA;向SPIDAT中寫數(shù)據(jù)  
LCALL DELAY ;根據(jù)選擇的分頻比算出數(shù)據(jù)傳輸?shù)臅r(shí)間,確定DELAY子程序的延時(shí)時(shí)間(也可用中斷方式)  
SETB P3.5 ;將SS置高  
LJMP MASTER ;送下一個(gè)數(shù)  
從機(jī)程序:  
ORG 0013H ;外部中斷INT0入口  
CLR SPE ;SPE位清除  
SETB SPE ;與主機(jī)時(shí)鐘獲得同步  
SETB P3.2 ;撤銷中斷  
RETI  
……  
SETB EA ;打開中斷允許  
SETB IE2.0 ;打開SPI中斷  
SETB EX0 ;打開外部中斷  
MOV SPICON,#20H ;送SPI控制字  
CLR P1.5 ;設(shè)置為數(shù)字輸入  
JB P3.1$ ;判斷P3.1是否為低  
CLR P3.2 ;產(chǎn)生INT0中斷  
CLALL DELAY ;等待數(shù)據(jù)傳送完畢  
MOV A,SPIDAT ;讀取數(shù)據(jù)





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

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

ORG 0013H  
INT0:MOV R0,#8 ;移位計(jì)數(shù)值  
INT0":JB P3.4,INT0 ;輸入時(shí)鐘位高電平時(shí)等待  
MOV C,P3.3 ;輸入時(shí)鐘下降沿接收數(shù)據(jù)  
RLC A ;將數(shù)據(jù)存入A中  
DJNZ R0,INT0" ;8位是否傳送完  
SETB P3. ;8位數(shù)據(jù)接收完畢,關(guān)中斷  
MOV @R1,#DATA ;將接收數(shù)據(jù)存到內(nèi)部RAM  
INC R1 ;指向下一個(gè)內(nèi)部RAM單元  
CJNE R1,#00H,REC  
MOV R1,#80H  
RETI  
……  
SETB EA  
SETB EX0  
MOV R1,#80H ;內(nèi)部存儲(chǔ)器80H~FFH單元存儲(chǔ)接收的數(shù)據(jù)  
……  

總結(jié)  

通過對(duì)SPI串口原理的介紹,SPI串行接口可以在短距離內(nèi)進(jìn)行主機(jī)與從機(jī)的數(shù)據(jù)傳送,并且具有多種可調(diào)的傳輸方式、連接電路簡(jiǎn)單、使用方便等優(yōu)點(diǎn)。為實(shí)現(xiàn)主機(jī)和從機(jī)及從外圍設(shè)備的通信提供了一種簡(jiǎn)單、易行的方案。
本文地址:http://m.qingdxww.cn/thread-40043-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩黄色| 日韩毛片在线免费观看| 欧美激情亚洲精品日韩1区2区| 四级毛片| 亚洲婷婷影院| 在线观看亚洲| 好男人好资源在线观看| 亚洲色图在线观看视频| 日本高清在线播放| 亚洲精品第一页| 亚洲欧美日韩国产精品影院| FREECHINESE东北女人真爽| 欧美最新色p图| 中国hdxxxx医院护士| 日韩视频国产| 影院理论| 怡红院最新免费全部视频| 国产激情一级毛片久久久| 亚洲精品久久久久AV无码| 青青草成人网| 亚洲精品免费视频| 在线播放日本| 欧美牲交A欧美牲交| 青青99| 日本高清在线一区| 亚洲天堂男人的天堂| 中国女人hd| 欧美日韩高清一区二区三区| 一级毛片视频免费观看| 天堂在线链接| 一二三四视频观看中文在线看| 国产成人在线网站| 亚洲伊人情人综合网站| 欧美一级黄色片视频| 四虎sihu新版影院亚洲精品| 俺来也俺去也视频久久| 人妻插B视频一区二区三区| 香蕉国产人午夜视频在线观看| 天天看天天射天天视频| 亚洲国产精品久久卡一| 黄色亚洲片|