下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一SPI協(xié)議概括SPI,是英語(yǔ)SerialPeripheralinterface的縮寫(xiě),顧名思義就是串行外圍設(shè)備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議,比如AT91RM9200.SPI的通信原理很簡(jiǎn)單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時(shí))。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCK(時(shí)鐘),CS(片選)。(1)SDO -主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入(2)SDI -主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出(3)SCLK -時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生(4)CS -從設(shè)備使能信號(hào),由主設(shè)備控制其中CS是控制芯片是否被選中的,也就是說(shuō)只有片選信號(hào)為預(yù)先規(guī)定的使能信號(hào)時(shí)(高電位或低電位),對(duì)此芯片的操作才有效。這就允許在同一總線上連接多個(gè)SPI設(shè)備成為可能。接下來(lái)就負(fù)責(zé)通訊的3根線了。通訊是通過(guò)數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說(shuō)數(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ù)的傳輸。要注意的是,SCK信號(hào)線只由主設(shè)備控制,從設(shè)備不能控制信號(hào)線。同樣,在一個(gè)基于SPI的設(shè)備中,至少有一個(gè)主控設(shè)備。這樣傳輸?shù)奶攸c(diǎn):這樣的傳輸方式有一個(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ù)的輸入和輸出。不同的SPI設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信號(hào)上沿或下沿采集有不同定義,具體請(qǐng)參考相關(guān)器件的文檔。在點(diǎn)對(duì)點(diǎn)的通信中,SPI接口不需要進(jìn)行尋址操作,且為全雙工通信,顯得簡(jiǎn)單高效。在多個(gè)從設(shè)備的系統(tǒng)中,每個(gè)從設(shè)備需要獨(dú)立的使能信號(hào),硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。最后,SPI接口的一個(gè)缺點(diǎn):沒(méi)有指定的流控制,沒(méi)有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。AT91RM9200的SPI接口主要由4個(gè)引腳構(gòu)成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整個(gè)SPI總線的公用時(shí)鐘,MOSI、MISO作為主機(jī),從機(jī)的輸入輸出的標(biāo)志,MOSI是主機(jī)的輸出,從機(jī)的輸入,MISO是主機(jī)的輸入,從機(jī)的輸出。/SS是從機(jī)的標(biāo)志管腳,在互相通信的兩個(gè)SPI總線的器件,/SS管腳的電平低的是從機(jī),相反/SS管腳的電平高的是主機(jī)。在一個(gè)SPI通信系統(tǒng)中,必須有主機(jī)。SPI總線可以配置成單主單從,單主多從,互為主從。SPI的片選可以擴(kuò)充選擇16個(gè)外設(shè),這時(shí)PCS輸出二NPCS,說(shuō)NPCS0~3接4-16譯碼器,這個(gè)譯碼器是需要外接4-16譯碼器,譯碼器的輸入為NPCS0~3,輸出用于16個(gè)外設(shè)的選擇。詳細(xì)的SPI規(guī)范可參考SPI協(xié)議。二GPIO模擬SPI的實(shí)現(xiàn)下面將結(jié)合本人項(xiàng)目中的經(jīng)驗(yàn)來(lái)詳細(xì)描述如何用GPIO來(lái)模擬SPI協(xié)議項(xiàng)目中要求實(shí)現(xiàn)一塊LCD為ssd1815br1的驅(qū)動(dòng),它與BB的通信使用SPI協(xié)議,由于BB上SPI總線已使用完,因此考慮使用GPIO來(lái)模擬實(shí)現(xiàn)。GPIO對(duì)應(yīng)SPI引腳的關(guān)系如下:SDO-GPIO0(BB到LCD的數(shù)據(jù)線)SDI -無(wú),因?yàn)闀簳r(shí)不需要BB接收來(lái)自LCD的數(shù)據(jù)SCLK-GPIO1CS -接地,使LCD一直處于使能狀態(tài)。接下來(lái)就是要實(shí)現(xiàn)SPI的協(xié)議了,SPI有4種傳輸模式:
SCX同期ISCKMi^]7XX乂X同I卿W'91-1-6MJW7XXXMISOscKjwm4FX2:::"XXZ二XU二XXrsn~yX[si<XySCX同期ISCKMi^]7XX乂X同I卿W'91-1-6MJW7XXXMISOscKjwm4FX2:::"XXZ二XU二XXrsn~yX[si<Xy?3CPHA=O時(shí)SPI總線數(shù)渥傳輸時(shí)序圖4CPHA=1時(shí)SPI總線數(shù)據(jù)傳輸時(shí)序SCKtCPOLnSCKMPUI2SCKMiKJ]8SCK(CPCM0?SUKtCiJ(}t.DfMOSISCK<CP()l1}MINO—([MSE1開(kāi)發(fā)者可根據(jù)具體設(shè)備使用的是哪種模式來(lái)實(shí)現(xiàn)之,我們項(xiàng)目種的這塊LCD的模式為CPOL=1,CPHA=1.具體實(shí)現(xiàn)如下:#defineSPI_DATAGPIO0#defineSPI_CLKGPIO1voidspi_write(chardata){int8i=7;uint8mask[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};for(;i>=0;i--){gpio_out(SPI_CLK,GPIO_LOW_VALUE);gpio_out(SPI_DATA,((data&mask[i])>>i));spi_delay(10);gpio_out(SPI_CLK,GPIO_HIGH_VALUE);spi_delay(10);}}實(shí)際上模擬SPI是很簡(jiǎn)單的事情,只要對(duì)照SPI傳輸模式的時(shí)序圖來(lái)模擬就行了。需要注意的是一定要有個(gè)等待時(shí)間,以使數(shù)據(jù)在數(shù)據(jù)線上穩(wěn)定下來(lái),并使設(shè)備端有時(shí)間取數(shù)據(jù)。剛開(kāi)始調(diào)試的時(shí)候可以適當(dāng)把等待時(shí)間延長(zhǎng)一點(diǎn),當(dāng)調(diào)通了SPI后在降下等待時(shí)間。我寫(xiě)的等待
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年機(jī)力通風(fēng)冷卻塔項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 工作實(shí)習(xí)報(bào)告范文9篇
- 2024-2025學(xué)年新城子區(qū)數(shù)學(xué)三上期末經(jīng)典試題含解析
- 2025年水煤漿燃燒器項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模板
- 2025年氟硅酸鹽項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 培訓(xùn)方案策劃范文集合9篇
- 運(yùn)動(dòng)會(huì)加油稿200字左右【十篇】
- 2025年會(huì)計(jì)、審計(jì)及稅務(wù)服務(wù)項(xiàng)目提案報(bào)告
- 童年經(jīng)典讀后感800字5篇
- 個(gè)人原因辭職報(bào)告合集15篇
- 廣東省博物館
- 徐州市2023-2024學(xué)年九年級(jí)上學(xué)期期末道德與法治試卷(含答案解析)
- 農(nóng)業(yè)信息化實(shí)現(xiàn)農(nóng)業(yè)現(xiàn)代化的數(shù)字化轉(zhuǎn)型
- 《義務(wù)教育道德與法治課程標(biāo)準(zhǔn)(2022年版)》
- 學(xué)校食堂廚房規(guī)范化操作程序
- 醫(yī)保飛檢工作方案
- 招投標(biāo)基礎(chǔ)知識(shí)講解
- 瀝青路面彎沉溫度修正
- 軟裝公司商業(yè)計(jì)劃書(shū)
- 湖北省武漢市硚口區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)
- 重慶市墊江區(qū)2023-2024學(xué)年部編版七年級(jí)上學(xué)期期末歷史試卷
評(píng)論
0/150
提交評(píng)論