下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
SPI總線原理與應(yīng)用篇《電子制作》2023年9月站長原創(chuàng),如需引用請(qǐng)注明出處大家好,通過以前的學(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)品開發(fā)工作:分別有流水燈,數(shù)碼管顯示,液晶顯示,按鍵開關(guān),蜂鳴器奏樂,繼電器控制,IIC總線,SPI總線,PS/2實(shí)驗(yàn),AD模數(shù)轉(zhuǎn)換,光耦實(shí)驗(yàn),串口通信,紅外線遙控,無線遙控,溫度傳感,步進(jìn)電機(jī)控制等等。主體系統(tǒng)如圖1所示,其配套書本教程《單片機(jī)快速入門》如圖2所示。圖151單片機(jī)綜合學(xué)習(xí)系統(tǒng)主機(jī)局部圖片圖251單片機(jī)綜合學(xué)習(xí)系統(tǒng)配套書本教程——《單片機(jī)快速入門》上圖是我們將要使用的51單片機(jī)綜合學(xué)習(xí)系統(tǒng)硬件平臺(tái),如圖1所示,本期實(shí)驗(yàn)我們用到了綜合系統(tǒng)主機(jī)、板載的AT93C46芯片,綜合系統(tǒng)其它功能模塊原理與使用詳見前幾期《電子制作》雜志及后期連載教程介紹。SPI總線簡介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é)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議。其工作模式有兩種:主模式和從模式。SPI是一種允許一個(gè)主設(shè)備啟動(dòng)一個(gè)從設(shè)備的同步通訊的協(xié)議,從而完成數(shù)據(jù)的交換。也就是SPI是一種規(guī)定好的通訊方式。這種通信方式的優(yōu)點(diǎn)是占用端口較少,一般4根就夠根本通訊了〔不算電源線〕。同時(shí)傳輸速度也很高。一般來說要求主設(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(高位),后為LSB(低位)。在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)用場合,可使用1個(gè)MCU作為主控機(jī)來控制數(shù)據(jù),并向1個(gè)或幾個(gè)從外圍器件傳送該數(shù)據(jù)。從器件只有在主機(jī)發(fā)命令時(shí)才能接收或發(fā)送數(shù)據(jù)。其數(shù)據(jù)的傳輸格式是高位〔MSB〕在前,低位〔LSB〕在后。當(dāng)一個(gè)主控機(jī)通過SPI與幾種不同的串行I/O芯片相連時(shí),必須使用每片的允許控制端,這可通過MCU的I/O端口輸出線來實(shí)現(xiàn)。但應(yīng)特別注意這些串行I/O芯片的輸入輸出特性:首先是輸入芯片的串行數(shù)據(jù)輸出是否有三態(tài)控制端。平時(shí)未選中芯片時(shí),輸出端應(yīng)處于高阻態(tài)。假設(shè)沒有三態(tài)控制端,那么應(yīng)外加三態(tài)門。否那么MCU的MISO端只能連接1個(gè)輸入芯片。其次是輸出芯片的串行數(shù)據(jù)輸入是否有允許控制端。因?yàn)橹挥性诖诵酒试S時(shí),SCK脈沖才把串行數(shù)據(jù)移入該芯片;在禁止時(shí),SCK對(duì)芯片無影響。假設(shè)沒有允許控制端,那么應(yīng)在外圍用門電路對(duì)SCK進(jìn)行控制,然后再加到芯片的時(shí)鐘輸入端;當(dāng)然,也可以只在SPI總線上連接1個(gè)芯片,而不再連接其它輸入或輸出芯片。SPI總線的數(shù)據(jù)傳輸SPI是一個(gè)環(huán)形總線結(jié)構(gòu),其時(shí)序其實(shí)很簡單,主要是在SCK的控制下,兩個(gè)雙向移位存放器進(jìn)行數(shù)據(jù)交換。SPI數(shù)據(jù)傳輸原理很簡單,它需要至少4根線,事實(shí)上3根也可以。也是所有基于SPI的設(shè)備共有的,它們是SDI〔數(shù)據(jù)輸入〕,SDO〔數(shù)據(jù)輸出〕,SCK〔時(shí)鐘〕,CS〔片選〕。其中CS是控制芯片是否被選中的,也就是說只有片選信號(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ù)輸出通過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è)上升沿來的時(shí)候數(shù)據(jù)將會(huì)是高位數(shù)據(jù)SDO=1。下降沿到來的時(shí)候,SDI上的電平將被存到存放器中去,那么這時(shí)存放器=0101010SDI,這樣在8個(gè)時(shí)鐘脈沖以后,兩個(gè)存放器的內(nèi)容互相交換一次。這樣就完成里一個(gè)SPI時(shí)序。下面舉一個(gè)實(shí)例來說明其數(shù)據(jù)傳送過程。假設(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ā)送命令過去,然后從機(jī)根據(jù)主機(jī)的命令準(zhǔn)備數(shù)據(jù),主機(jī)在下一個(gè)8位時(shí)鐘周期才把數(shù)據(jù)讀回來。這樣的傳輸方式有一個(gè)優(yōu)點(diǎn),與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因?yàn)镾CK時(shí)鐘線由主控設(shè)備控制,當(dāng)沒有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說,主設(shè)備通過對(duì)SCK時(shí)鐘線的控制可以完成對(duì)通訊的控制。SPI還是一個(gè)數(shù)據(jù)交換協(xié)議,因?yàn)镾PI的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出對(duì)于不帶SPI串行總線接口的MCS51系列單片機(jī)來說,可以使用軟件來模擬SPI的操作,包括串行時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出。如我們可以定義三個(gè)普通I/O口用來模擬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次通過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ǔ)器簡介93C46是1k位串行EEPROM儲(chǔ)存器。每一個(gè)儲(chǔ)存器都可以通過DI/DO引腳寫入或讀出。它的存儲(chǔ)容量為1024位,內(nèi)部為128×8位或64×16位。93C46為串行三線SPI操作芯片,在時(shí)鐘時(shí)序的同步下接收數(shù)據(jù)口的指令。指令碼為9位十進(jìn)制碼,具有7個(gè)指令,讀、擦寫使能、擦除、寫、全擦、全寫及擦除禁止。該芯片擦寫時(shí)間快,有擦寫使能保護(hù),可靠性高,擦寫次數(shù)可達(dá)100萬次,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寫〔WRITE〕101A5~A0A6~A0D15~D0D7~D0寫使能〔EWEN〕10011XXXX11XXXXX寫禁止〔EWDS〕10000XXXX00XXXXX芯片去除〔ERAL〕10010XXXX10XXXXX芯片寫入〔WRAL〕10001XXXX01XXXXXD15~D0D7~D0表2:93C46串行EEPROM指令格式選擇表指令說明:讀〔READ〕:當(dāng)下達(dá)10XXXXXX指令后,地址〔XXXXXXXX〕的數(shù)據(jù)在SCK=1時(shí)由DO輸出。寫〔WRITE〕:在寫入數(shù)據(jù)前,必須先下達(dá)寫使能〔EWEN〕指令,然后再下達(dá)01XXXXXX指令后,當(dāng)SCK=1時(shí),會(huì)把數(shù)據(jù)碼寫入指定地址〔XXXXXXXX〕;而DO=0時(shí),表示還在進(jìn)行寫操作,寫入結(jié)束后DO會(huì)轉(zhuǎn)為高電平。寫入動(dòng)作完成后,必須再下達(dá)寫禁止〔EWDS〕命令。去除〔ERASE〕:下達(dá)去除指令11XXXXXX后會(huì)將地址〔XXXXXXXX〕的數(shù)據(jù)去除。寫使能〔EWEN〕:下達(dá)0011XXXX指令后,才可以進(jìn)行寫〔WRITE〕操作。寫禁止〔EWDS〕:下達(dá)0000XXXX指令后,才可重復(fù)進(jìn)行寫入〔WRITE〕操作。芯片去除〔ERAL〕:下達(dá)0010XXXX指令后,全部禁止。芯片寫入〔WRAL〕:下達(dá)0001XXXX指令后,全部寫入“0〞。程序功能本例用來實(shí)現(xiàn)對(duì)9
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京醫(yī)科大學(xué)康達(dá)學(xué)院《專業(yè)方向綜合課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南省長沙市2024年中考數(shù)學(xué)模擬考試試卷含答案
- 九江學(xué)院《服裝CAD制版》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇海洋大學(xué)《生化分離工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南九嶷職業(yè)技術(shù)學(xué)院《越南語閱讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 【物理】第十二章 簡單機(jī)械 單元練習(xí)+2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 黑龍江工商學(xué)院《文化與社會(huì)發(fā)展》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶第二師范學(xué)院《機(jī)器學(xué)習(xí)與人工智能》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江海洋大學(xué)《光電信息材料與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國科學(xué)技術(shù)大學(xué)《公關(guān)與營銷策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)調(diào)試報(bào)告模板
- 托福閱讀講義
- 輸電線路基礎(chǔ)知識(shí)輸電線路組成與型式
- 三年級(jí)數(shù)字加減法巧算
- GB/T 9755-2001合成樹脂乳液外墻涂料
- GB/T 10609.3-1989技術(shù)制圖復(fù)制圖的折疊方法
- GB 4053.2-2009固定式鋼梯及平臺(tái)安全要求第2部分:鋼斜梯
- 通力電梯培訓(xùn)教材:《LCE控制系統(tǒng)課程》
- 品管圈PDCA持續(xù)質(zhì)量改進(jìn)提高靜脈血栓栓塞癥規(guī)范預(yù)防率
- 一次函數(shù)單元測試卷(含答案)
- 陜西省榆林市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
評(píng)論
0/150
提交評(píng)論