下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SPI總線原理與應(yīng)用篇《電子制作》2023年9月站長(zhǎng)原創(chuàng),如需引用請(qǐng)注明出處大家好,通過(guò)以前的學(xué)習(xí),我們已經(jīng)對(duì)51單片機(jī)綜合學(xué)習(xí)系統(tǒng)的使用方法及學(xué)習(xí)方式有所了解與熟悉,學(xué)會(huì)了使用IIC總線的根本知識(shí),體會(huì)到了綜合學(xué)習(xí)系統(tǒng)的易用性與易學(xué)性,這一期我們將一起學(xué)習(xí)SPI總線的根本原理與應(yīng)用實(shí)例。先看一下我們將要使用的51單片機(jī)綜合學(xué)習(xí)系統(tǒng)能完成哪些實(shí)驗(yàn)與產(chǎn)品開(kāi)發(fā)工作:分別有流水燈,數(shù)碼管顯示,液晶顯示,按鍵開(kāi)關(guān),蜂鳴器奏樂(lè),繼電器控制,IIC總線,SPI總線,PS/2實(shí)驗(yàn),AD模數(shù)轉(zhuǎn)換,光耦實(shí)驗(yàn),串口通信,紅外線遙控,無(wú)線遙控,溫度傳感,步進(jìn)電機(jī)控制等等。主體系統(tǒng)如圖1所示,其配套書(shū)本教程《單片機(jī)快速入門(mén)》如圖2所示。圖151單片機(jī)綜合學(xué)習(xí)系統(tǒng)主機(jī)局部圖片圖251單片機(jī)綜合學(xué)習(xí)系統(tǒng)配套書(shū)本教程——《單片機(jī)快速入門(mén)》上圖是我們將要使用的51單片機(jī)綜合學(xué)習(xí)系統(tǒng)硬件平臺(tái),如圖1所示,本期實(shí)驗(yàn)我們用到了綜合系統(tǒng)主機(jī)、板載的AT93C46芯片,綜合系統(tǒng)其它功能模塊原理與使用詳見(jiàn)前幾期《電子制作》雜志及后期連載教程介紹。SPI總線簡(jiǎn)介SPI總線根本概念SPI(SerialPeripheralInterface———串行外設(shè)接口)總線是Motorola公司推出的一種同步串行接口技術(shù)。SPI總線系統(tǒng)是一種同步串行外設(shè)接口,允許MCU與各種外圍設(shè)備以串行方式進(jìn)行通信、數(shù)據(jù)交換。外圍設(shè)備包括FLASHRAM、A/D轉(zhuǎn)換器、網(wǎng)絡(luò)控制器、MCU等。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議。其工作模式有兩種:主模式和從模式。SPI是一種允許一個(gè)主設(shè)備啟動(dòng)一個(gè)從設(shè)備的同步通訊的協(xié)議,從而完成數(shù)據(jù)的交換。也就是SPI是一種規(guī)定好的通訊方式。這種通信方式的優(yōu)點(diǎn)是占用端口較少,一般4根就夠根本通訊了〔不算電源線〕。同時(shí)傳輸速度也很高。一般來(lái)說(shuō)要求主設(shè)備要有SPI控制器〔也可用模擬方式〕,就可以與基于SPI的芯片通訊了。SPI總線系統(tǒng)結(jié)構(gòu)SPI系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,一般使用4條線:串行時(shí)鐘線(SCK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO〔DO〕、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI〔DI〕和低電平有效的從機(jī)選擇線CS。MISO和MOSI用于串行接收和發(fā)送數(shù)據(jù),先為MSB(高位),后為L(zhǎng)SB(低位)。在SPI設(shè)置為主機(jī)方式時(shí),MISO是主機(jī)數(shù)據(jù)輸入給,MOSI是主機(jī)數(shù)據(jù)輸出線。SCK用于提供時(shí)鐘脈沖將數(shù)據(jù)一位位地傳送。SPI總線器件間傳送數(shù)據(jù)框圖如圖3所示:圖3SPI總線器件間傳送數(shù)據(jù)框圖SPI總線的接口特性利用SPI總線可在軟件的控制下構(gòu)成各種系統(tǒng)。如1個(gè)主MCU和幾個(gè)從MCU、幾個(gè)從MCU相互連接構(gòu)成多主機(jī)系統(tǒng)〔分布式系統(tǒng)〕、1個(gè)主MCU和1個(gè)或幾個(gè)從I/O設(shè)備所構(gòu)成的各種系統(tǒng)等。在大多數(shù)應(yīng)用場(chǎng)合,可使用1個(gè)MCU作為主控機(jī)來(lái)控制數(shù)據(jù),并向1個(gè)或幾個(gè)從外圍器件傳送該數(shù)據(jù)。從器件只有在主機(jī)發(fā)命令時(shí)才能接收或發(fā)送數(shù)據(jù)。其數(shù)據(jù)的傳輸格式是高位〔MSB〕在前,低位〔LSB〕在后。當(dāng)一個(gè)主控機(jī)通過(guò)SPI與幾種不同的串行I/O芯片相連時(shí),必須使用每片的允許控制端,這可通過(guò)MCU的I/O端口輸出線來(lái)實(shí)現(xiàn)。但應(yīng)特別注意這些串行I/O芯片的輸入輸出特性:首先是輸入芯片的串行數(shù)據(jù)輸出是否有三態(tài)控制端。平時(shí)未選中芯片時(shí),輸出端應(yīng)處于高阻態(tài)。假設(shè)沒(méi)有三態(tài)控制端,那么應(yīng)外加三態(tài)門(mén)。否那么MCU的MISO端只能連接1個(gè)輸入芯片。其次是輸出芯片的串行數(shù)據(jù)輸入是否有允許控制端。因?yàn)橹挥性诖诵酒试S時(shí),SCK脈沖才把串行數(shù)據(jù)移入該芯片;在禁止時(shí),SCK對(duì)芯片無(wú)影響。假設(shè)沒(méi)有允許控制端,那么應(yīng)在外圍用門(mén)電路對(duì)SCK進(jìn)行控制,然后再加到芯片的時(shí)鐘輸入端;當(dāng)然,也可以只在SPI總線上連接1個(gè)芯片,而不再連接其它輸入或輸出芯片。SPI總線的數(shù)據(jù)傳輸SPI是一個(gè)環(huán)形總線結(jié)構(gòu),其時(shí)序其實(shí)很簡(jiǎn)單,主要是在SCK的控制下,兩個(gè)雙向移位存放器進(jìn)行數(shù)據(jù)交換。SPI數(shù)據(jù)傳輸原理很簡(jiǎn)單,它需要至少4根線,事實(shí)上3根也可以。也是所有基于SPI的設(shè)備共有的,它們是SDI〔數(shù)據(jù)輸入〕,SDO〔數(shù)據(jù)輸出〕,SCK〔時(shí)鐘〕,CS〔片選〕。其中CS是控制芯片是否被選中的,也就是說(shuō)只有片選信號(hào)為預(yù)先規(guī)定的使能信號(hào)時(shí)〔高電位或低電位〕,對(duì)此芯片的操作才有效。這就允許在同一總線上連接多個(gè)SPI設(shè)備成為可能。在SPI方式下數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCK時(shí)鐘線存在的原因,由SCK提供時(shí)鐘脈沖,SDI,SDO那么基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過(guò)SDO線,數(shù)據(jù)在時(shí)鐘上沿或下沿時(shí)改變,在緊接著的下沿或上沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時(shí)鐘信號(hào)的改變〔上沿和下沿為一次〕,就可以完成8位數(shù)據(jù)的傳輸。假設(shè)8位存放器內(nèi)裝的是待發(fā)送的數(shù)據(jù)10101010,上升沿發(fā)送、下降沿接收、高位先發(fā)送。那么第一個(gè)上升沿來(lái)的時(shí)候數(shù)據(jù)將會(huì)是高位數(shù)據(jù)SDO=1。下降沿到來(lái)的時(shí)候,SDI上的電平將被存到存放器中去,那么這時(shí)存放器=0101010SDI,這樣在8個(gè)時(shí)鐘脈沖以后,兩個(gè)存放器的內(nèi)容互相交換一次。這樣就完成里一個(gè)SPI時(shí)序。下面舉一個(gè)實(shí)例來(lái)說(shuō)明其數(shù)據(jù)傳送過(guò)程。假設(shè)主機(jī)和從機(jī)初始化就緒,并且主機(jī)的sbuff=0xaa,從機(jī)的sbuff=0x55,下面將分步對(duì)SPI的8個(gè)時(shí)鐘周期的數(shù)據(jù)情況演示一遍:〔下表中“上〞表示上升沿,“下〞表示下降沿〕脈沖序號(hào)主機(jī)緩存從機(jī)緩存SDISDO01010101001010101001上0101010x1010101x011下0101010010101011012上1010100x0101011x102下1010100101010110103上0101001x1010110x013下0101001010101101014上1010010x0101101x104下1010010101011010105上0100101x1011010x015下0100101010110101016上1001010x0110101x106下1001010101101010107上0010101x1101010x017下0010101011010101018上0101010x1010101x108下010101011010101010表1:脈沖與數(shù)據(jù)變化對(duì)應(yīng)表這樣就完成了兩個(gè)存放器8位的交換,SDI、SDO是相對(duì)于主機(jī)而言的。其中CS引腳作為主機(jī)的時(shí)候,從機(jī)可以把它拉底被動(dòng)選為從機(jī),作為從機(jī)的是時(shí)候,可以作為片選腳用。根據(jù)以上分析,一個(gè)完整的傳送周期是16位,即兩個(gè)字節(jié),因?yàn)?,首先主機(jī)要發(fā)送命令過(guò)去,然后從機(jī)根據(jù)主機(jī)的命令準(zhǔn)備數(shù)據(jù),主機(jī)在下一個(gè)8位時(shí)鐘周期才把數(shù)據(jù)讀回來(lái)。這樣的傳輸方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)镾CK時(shí)鐘線由主控設(shè)備控制,當(dāng)沒(méi)有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說(shuō),主設(shè)備通過(guò)對(duì)SCK時(shí)鐘線的控制可以完成對(duì)通訊的控制。SPI還是一個(gè)數(shù)據(jù)交換協(xié)議,因?yàn)镾PI的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出對(duì)于不帶SPI串行總線接口的MCS51系列單片機(jī)來(lái)說(shuō),可以使用軟件來(lái)模擬SPI的操作,包括串行時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出。如我們可以定義三個(gè)普通I/O口用來(lái)模擬SPI器件的SCK、MISO、MOSI。對(duì)于不同的串行接口外圍芯片,它們的時(shí)鐘時(shí)序是不同的。對(duì)于在SCK的上升沿輸入〔接收〕數(shù)據(jù)和在下降沿輸出〔發(fā)送〕數(shù)據(jù)的器件,一般應(yīng)將其串行時(shí)鐘輸出口的初始狀態(tài)設(shè)置為1,而在允許接口后再置為0。這樣,MCU在輸出1位SCK時(shí)鐘的同時(shí),將使接口芯片串行左移,從而輸出1位數(shù)據(jù)至單片機(jī)的模擬MISO線,此后再置SCK為1,使單片機(jī)從模擬的MOSI線輸出1位數(shù)據(jù)〔先為高位〕至串行接口芯片。至此,模擬1位數(shù)據(jù)輸入輸出便宣告完成。此后再置SCK為0,模擬下1位數(shù)據(jù)的輸入輸出……,依此循環(huán)8次,即可完成1次通過(guò)SPI總線傳輸8位數(shù)據(jù)的操作。對(duì)于在SCK的下降沿輸入數(shù)據(jù)和上升沿輸出數(shù)據(jù)的器件,那么應(yīng)取串行時(shí)鐘輸出的初始狀態(tài)為0,即在接口芯片允許時(shí),先置SCK為1,以便外圍接口芯片輸出1位數(shù)據(jù)〔MCU接收1位數(shù)據(jù)〕,之后再置時(shí)鐘為0,使外圍接口芯片接收1位數(shù)據(jù)〔MCU發(fā)送1位數(shù)據(jù)〕,從而完成1位數(shù)據(jù)的傳送。93C46存儲(chǔ)器的軟硬件設(shè)計(jì)實(shí)例下面就以目前單片機(jī)系統(tǒng)中廣泛應(yīng)用的SPI接口的數(shù)據(jù)存儲(chǔ)器93C46為例,介紹SPI器件的根本應(yīng)用。93C46串行存儲(chǔ)器簡(jiǎn)介93C46是1k位串行EEPROM儲(chǔ)存器。每一個(gè)儲(chǔ)存器都可以通過(guò)DI/DO引腳寫(xiě)入或讀出。它的存儲(chǔ)容量為1024位,內(nèi)部為128×8位或64×16位。93C46為串行三線SPI操作芯片,在時(shí)鐘時(shí)序的同步下接收數(shù)據(jù)口的指令。指令碼為9位十進(jìn)制碼,具有7個(gè)指令,讀、擦寫(xiě)使能、擦除、寫(xiě)、全擦、全寫(xiě)及擦除禁止。該芯片擦寫(xiě)時(shí)間快,有擦寫(xiě)使能保護(hù),可靠性高,擦寫(xiě)次數(shù)可達(dá)100萬(wàn)次,93C46的引腳功能圖如圖4所示。圖493C46的引腳圖CS:芯片選擇SCK:時(shí)鐘DI:串行數(shù)據(jù)輸入DO:串行數(shù)據(jù)輸出VSS:接地NC:空腳〔應(yīng)用時(shí)不用接任何電路〕VCC:電源指令起始位操作數(shù)地址數(shù)據(jù)64╳16128╳864╳16128╳8讀〔READ〕110A5~A0A6~A0去除〔〔ERASE〕111A5~A0A6~A0寫(xiě)〔WRITE〕101A5~A0A6~A0D15~D0D7~D0寫(xiě)使能〔EWEN〕10011XXXX11XXXXX寫(xiě)禁止〔EWDS〕10000XXXX00XXXXX芯片去除〔ERAL〕10010XXXX10XXXXX芯片寫(xiě)入〔WRAL〕10001XXXX01XXXXXD15~D0D7~D0表2:93C46串行EEPROM指令格式選擇表指令說(shuō)明:讀〔READ〕:當(dāng)下達(dá)10XXXXXX指令后,地址〔XXXXXXXX〕的數(shù)據(jù)在SCK=1時(shí)由DO輸出。寫(xiě)〔WRITE〕:在寫(xiě)入數(shù)據(jù)前,必須先下達(dá)寫(xiě)使能〔EWEN〕指令,然后再下達(dá)01XXXXXX指令后,當(dāng)SCK=1時(shí),會(huì)把數(shù)據(jù)碼寫(xiě)入指定地址〔XXXXXXXX〕;而DO=0時(shí),表示還在進(jìn)行寫(xiě)操作,寫(xiě)入結(jié)束后DO會(huì)轉(zhuǎn)為高電平。寫(xiě)入動(dòng)作完成后,必須再下達(dá)寫(xiě)禁止〔EWDS〕命令。去除〔ERASE〕:下達(dá)去除指令11XXXXXX后會(huì)將地址〔XXXXXXXX〕的數(shù)據(jù)去除。寫(xiě)使能〔EWEN〕:下達(dá)0011XXXX指令后,才可以進(jìn)行寫(xiě)〔WRITE〕操作。寫(xiě)禁止〔EWDS〕:下達(dá)0000XXXX指令后,才可重復(fù)進(jìn)行寫(xiě)入〔WRITE〕操作。芯片去除〔ERAL〕:下達(dá)0010XXXX指令后,全部禁止。芯片寫(xiě)入〔WRAL〕:下達(dá)0001XXXX指令后,全部寫(xiě)入“0〞。程序功能本例用來(lái)實(shí)現(xiàn)對(duì)9
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年7月國(guó)開(kāi)電大行管專(zhuān)科《社會(huì)調(diào)查研究與方法》期末紙質(zhì)考試試題及答案
- 教師結(jié)構(gòu)化面試常見(jiàn)問(wèn)題及答案
- 獻(xiàn)縣公安輔警招聘知識(shí)考試題庫(kù)附答案
- 行政后勤筆試題及答案
- 質(zhì)檢員《專(zhuān)業(yè)管理實(shí)務(wù)》備考沖刺題及答案
- 助理營(yíng)銷(xiāo)師高級(jí)模擬習(xí)題(附答案)
- 醫(yī)院感染管理相關(guān)法律法規(guī)培訓(xùn)試題附答案
- 文物修復(fù)招聘考試題及答案
- 入黨測(cè)試題庫(kù)及答案
- 公路道路養(yǎng)護(hù)工晉升高級(jí)技師模擬綜合試題練習(xí)及答案
- 2026海南安保控股有限責(zé)任公司招聘11人筆試模擬試題及答案解析
- 裝飾裝修工程施工組織設(shè)計(jì)方案(二)
- 2026上海碧海金沙投資發(fā)展有限公司社會(huì)招聘參考題庫(kù)必考題
- 2026年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試模擬測(cè)試卷新版
- 2026遼寧機(jī)場(chǎng)管理集團(tuán)校招面筆試題及答案
- 2025徽銀金融租賃有限公司社會(huì)招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2026年遼寧軌道交通職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考題庫(kù)帶答案解析
- 檢驗(yàn)科內(nèi)控制度
- DB44-T 2771-2025 全域土地綜合整治技術(shù)導(dǎo)則
- 碳排放核算及企業(yè)減排策略
- 冬季電氣設(shè)備安全培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論