![基于FPGA的SPI串行接口設(shè)計(jì) 定稿_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/e27d3df9-1573-4936-8679-05263a6f6557/e27d3df9-1573-4936-8679-05263a6f65571.gif)
![基于FPGA的SPI串行接口設(shè)計(jì) 定稿_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/e27d3df9-1573-4936-8679-05263a6f6557/e27d3df9-1573-4936-8679-05263a6f65572.gif)
![基于FPGA的SPI串行接口設(shè)計(jì) 定稿_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/e27d3df9-1573-4936-8679-05263a6f6557/e27d3df9-1573-4936-8679-05263a6f65573.gif)
![基于FPGA的SPI串行接口設(shè)計(jì) 定稿_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/e27d3df9-1573-4936-8679-05263a6f6557/e27d3df9-1573-4936-8679-05263a6f65574.gif)
![基于FPGA的SPI串行接口設(shè)計(jì) 定稿_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/e27d3df9-1573-4936-8679-05263a6f6557/e27d3df9-1573-4936-8679-05263a6f65575.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于FPGA的SPI串行接口設(shè)計(jì) 定稿 基于FPGA的SPI串行接口設(shè)計(jì)學(xué)位論文原創(chuàng)性聲明 本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包括任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)的成果作品。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。 作者簽名: 年月日學(xué)位論文版權(quán)使用授權(quán)書(shū) 本學(xué)位論文作者完全了解學(xué)校有關(guān)保障、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向有關(guān)學(xué)位論文管理部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)省級(jí)優(yōu)秀學(xué)士論文評(píng)選機(jī)構(gòu)將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)
2、制手段保存和匯編本學(xué)位論文。 本學(xué)位論文屬于1、保密囗,在年解密后適用本授權(quán)書(shū) 2、不保密囗 。 (請(qǐng)?jiān)谝陨舷鄳?yīng)方框內(nèi)打“”) 作者簽名:年月 日 導(dǎo)師簽名:年月 日武漢理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)學(xué)生姓名:杜永浩 專(zhuān)業(yè)班級(jí):通信0606指導(dǎo)教師:陳適 工作單位:信息工程學(xué)院設(shè)計(jì)(論文)題目:基于FPGA的SPI串行接口設(shè)計(jì) 設(shè)計(jì)(論文)主要內(nèi)容:1.研究探討SPI串行接口的關(guān)鍵技術(shù)和SPI協(xié)議規(guī)范2. 深入學(xué)習(xí)Verilog語(yǔ)言和FPGA設(shè)計(jì)方法要求完成的主要任務(wù):具體要求:1、查閱一定數(shù)量的中英文資料,掌握相關(guān)技術(shù)。 2.掌握SPI關(guān)鍵技術(shù),了解SPI接口定義和設(shè)計(jì)規(guī)范。 3、要求
3、閱讀相關(guān)的參考文獻(xiàn)不少于15篇,其中英文文獻(xiàn)不少于3篇,翻譯與選題相關(guān)的英文參考文獻(xiàn)不少于2萬(wàn)印刷符; 4、根據(jù)畢業(yè)設(shè)計(jì)有關(guān)規(guī)范,按時(shí)完成所有學(xué)習(xí)、研究工作和有關(guān)文檔。 必讀參考資料:1. 基于Verilog HDL的FPGA設(shè)計(jì)與工程應(yīng)用李文仲 段朝玉 著-北京航空航天大學(xué)出版社2. SPI Block Guide V03.06. Original Release Date: 21 JAN 2000Revised: 04 FEB 2003. Motorola, Inc.3.徐洋等.基于Verilog HDL的FPGA設(shè)計(jì)與工程應(yīng)用.人民郵電出版社.2009 指導(dǎo)教師簽名: 系主任簽名: 院長(zhǎng)
4、簽名(章)_ _武漢理工大學(xué)本科學(xué)生畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告基于FPGA的SPI串行外圍接口接口設(shè)計(jì)1、目的和意義及發(fā)展現(xiàn)狀 SPI是英文Serial Peripheral Interface的縮寫(xiě),中文意思是串行外圍設(shè)備接口,SPI是Motorola公司推出的一種同步串行通訊方式,是一種三線(xiàn)同步總線(xiàn),它是一種常用的標(biāo)準(zhǔn)接口,由于其使用簡(jiǎn)單方便且節(jié)省系統(tǒng)資源,很多芯片都支持該接口,SPI接口主要應(yīng)用在EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間等等。當(dāng)然,串口通信還有其他的接口方式,SPI接口和UART相比,多了一條同步時(shí)鐘線(xiàn),上面UART的缺點(diǎn)也就是
5、它的優(yōu)點(diǎn)了,對(duì)通信雙方的時(shí)序要求不嚴(yán)格不同設(shè)備之間可以很容易結(jié)合,而且通信速度非???。一般用在產(chǎn)品內(nèi)部元件之間的高速數(shù)據(jù)通信上面,如大容量存儲(chǔ)器等。這就凸現(xiàn)SPI的好處。 SPI接口的擴(kuò)展有硬件和軟件兩種方法,軟件模擬SPI接口方法雖然簡(jiǎn)單方便,但是速度受到限制,在高速且日益復(fù)雜的數(shù)字系統(tǒng)中,這種方法顯然無(wú)法滿(mǎn)足系統(tǒng)要求,所以采用硬件的方法實(shí)現(xiàn)最為切實(shí)可行。這使得與SPI有關(guān)的軟件就相當(dāng)簡(jiǎn)單,使CPU有更多的時(shí)間處理其他事務(wù)。當(dāng)前,基于主從處理器結(jié)構(gòu)的系統(tǒng)架構(gòu)已經(jīng)成為一種主流(如 DSP+FPGA,MCU+FPGA等),FPGA是在ASIC的基礎(chǔ)發(fā)展出來(lái)的,它克服了專(zhuān)用 ASIC不夠靈活的缺點(diǎn)
6、。與其他中小規(guī)模集成電路相比,其優(yōu)點(diǎn)主要在于它有很強(qiáng)的靈活性,即其內(nèi)部的具體邏輯功能可以根據(jù)需要配置,對(duì)電路的修改和維護(hù)很方便。目前,FPGA的容量已經(jīng)跨過(guò)了百萬(wàn)門(mén)級(jí),使得 FPGA成為解決系統(tǒng)級(jí)設(shè)計(jì)的重要選擇方案之一。在這種架構(gòu)下,應(yīng)用FPGA來(lái)構(gòu)建SPI通信接口是切實(shí)可行的。參考文獻(xiàn):1 孫豐軍,余春暄. S P I 串行總線(xiàn)接口的V e r i l o g 實(shí)現(xiàn). 北京工業(yè)大學(xué) 電子信息與控制工程學(xué)院 北京 10002.2 劉福奇,劉波. Verilog HDL應(yīng)用程序. 電子工業(yè)出版社,2009.103 顧衛(wèi)剛. 串行外圍接口. 陜西:西安交通大學(xué),2004.4 徐洋等.基于Veril
7、og HDL的FPGA設(shè)計(jì)與工程應(yīng)用.人民郵電出版社.20095 K.Babulu, K.Soundara Rajan. FPGA IMPLEMENT ATION OF SPI TRANSCEIVER MACROCELL INTERFACE WITH SPI SPECIFICATIONS. JNTU Colleage off Engineering,2008.2、基本內(nèi)容和技術(shù)方案2.1、研究的基本內(nèi)容 (1)熟悉通信及通信接口相關(guān)方面的知識(shí),學(xué)習(xí)并掌握SPI通信接口的結(jié)構(gòu),協(xié)議及原理。 (2)熟悉VERILOG語(yǔ)言及其開(kāi)發(fā)環(huán)境ISE,使用該語(yǔ)言進(jìn)行數(shù)字電路(FPGA)設(shè)計(jì),慢慢深入VERIL
8、OG語(yǔ)言。 (3)設(shè)計(jì)流程圖,狀態(tài)圖,并一步步用Verilog語(yǔ)言實(shí)現(xiàn)仿真驗(yàn)證I接口串口通信。 (4)采用實(shí)驗(yàn)板或自行設(shè)計(jì)電路進(jìn)行調(diào)試,并采用相關(guān)儀器驗(yàn)證。 (5)系統(tǒng)整體調(diào)試、優(yōu)化,或就某一部分進(jìn)行優(yōu)化并做深入的研究與擴(kuò)展。2.2、 技術(shù)方案 (1)硬件設(shè)計(jì)模型 硬件實(shí)現(xiàn)主要是基于PLD的CPLD,FPGA中實(shí)現(xiàn)。如FPGA是在ASIC的基礎(chǔ)發(fā)展出來(lái)的,它克服了專(zhuān)用 ASIC不夠靈活的缺點(diǎn)。與其他中小規(guī)模集成電路相比,其優(yōu)點(diǎn)主要在于它有很強(qiáng)的靈活性,即其內(nèi)部的具體邏輯功能可以根據(jù)需要配置,對(duì)電路的修改和維護(hù)很方便。目前,FPGA的容量已經(jīng)跨過(guò)了百萬(wàn)門(mén)級(jí),使得 FPGA成為解決系統(tǒng)級(jí)設(shè)計(jì)的重要
9、選擇方案之一。在這種架構(gòu)下,應(yīng)用FPGA來(lái)構(gòu)建SPI通信接口是切實(shí)可行的。 下圖模式一種主從模式: SPI 接口作為主機(jī)與從機(jī)的通訊接口,主要完成以下工作: SPI將從主機(jī)接收到的8位的并行數(shù)據(jù),轉(zhuǎn)換為從機(jī)所能接收的串行數(shù)據(jù),并將該數(shù)據(jù)根據(jù)SPI協(xié)議送給從機(jī)。 主機(jī)產(chǎn)生從機(jī)所需的時(shí)鐘信號(hào)SCLK,片選信號(hào)CS。 接收從從機(jī)傳回的讀信號(hào)和串行數(shù)據(jù),并將其轉(zhuǎn)換為并行數(shù)據(jù)。 (2)系統(tǒng)實(shí)現(xiàn)方案 用FPGA實(shí)現(xiàn)SPI串行外圍接口是一個(gè)比較復(fù)雜的系統(tǒng)較大的系統(tǒng)沒(méi)有科學(xué)的設(shè)計(jì)方法就很難保證不出錯(cuò),并很難言簡(jiǎn)意賅的清晰思路完成方案。此方案采用了狀態(tài)機(jī)來(lái)設(shè)計(jì),本項(xiàng)目的研究主要采用理論分析、邏輯推理、試驗(yàn)調(diào)試等
10、方法。 針對(duì)狀態(tài)機(jī),其主要有以下特點(diǎn): 1)有限狀態(tài)機(jī)克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點(diǎn)。 2)狀態(tài)機(jī)的結(jié)構(gòu)模式相對(duì)簡(jiǎn)單。 3)狀態(tài)機(jī)容易構(gòu)成性能良好的同步時(shí)序邏輯模塊。 4)狀態(tài)機(jī)的Verilog HDL表述豐富多樣。 5)在高速運(yùn)算和控制方面,狀態(tài)機(jī)更有其巨大的優(yōu)勢(shì)。 6)就可靠性而言,狀態(tài)機(jī)的優(yōu)勢(shì)也是十分明顯的。 基于以上特點(diǎn),用狀態(tài)機(jī)的方法描述SPI通信過(guò)程簡(jiǎn)單方便并可靠,基于狀態(tài)機(jī),SPI通信接口的狀態(tài)大致轉(zhuǎn)移圖如下所示: 首先是SPI接口在等待狀態(tài),當(dāng)檢測(cè)到發(fā)送指令時(shí)觸發(fā)信號(hào)進(jìn)入發(fā)送狀態(tài),在系統(tǒng)指令下檢測(cè)到寫(xiě)信號(hào)時(shí)進(jìn)入發(fā)送數(shù)據(jù)狀態(tài),然后一位位發(fā)送數(shù)據(jù),當(dāng)檢測(cè)到讀信號(hào)時(shí),進(jìn)
11、入讀狀態(tài),當(dāng)檢測(cè)到發(fā)送接收都完畢時(shí),進(jìn)入發(fā)送接收完畢狀態(tài),再轉(zhuǎn)向等待狀態(tài)。 (3)關(guān)鍵技術(shù)的實(shí)現(xiàn) 時(shí)序問(wèn)題 將總線(xiàn)控制信號(hào)封裝成指令,使用者只需通過(guò)發(fā)送指令的方式操作,避免了復(fù)雜的時(shí)序邏輯設(shè)計(jì)問(wèn)題。 全雙工傳輸方式的設(shè)計(jì) 如果全部使用狀態(tài)機(jī)的方式完成設(shè)計(jì),則可發(fā)現(xiàn)其很難完成全雙工即收發(fā)獨(dú)立模式,則在此過(guò)程中可以采用流水線(xiàn)設(shè)計(jì)方式,使之收與發(fā)之間獨(dú)立進(jìn)行,便可完成全雙工傳輸方式的設(shè)計(jì)。3、進(jìn)度安排 第1-2周:查閱相關(guān)SPI文獻(xiàn)資料,對(duì)其相關(guān)研究?jī)?nèi)容進(jìn)行大體了解,并明確其原理和基本實(shí)現(xiàn)方案,完成開(kāi)題報(bào)告,熟悉ISE操作和在線(xiàn)調(diào)試,了解Verilog HDL語(yǔ)言的基本語(yǔ)法。 第3-4周:詳細(xì)理解和
12、研究SPI的原理,對(duì)Verilog HDL語(yǔ)言有一定的理解。 第5-12周:對(duì)于Verilog HDL語(yǔ)言有深入理解,并具備一定的編程能力,能設(shè)計(jì)基本單元器件,并能讀懂大型程序,熟練狀態(tài)機(jī)的設(shè)計(jì)方法,對(duì)SPI有著工作過(guò)程有著細(xì)致的了解 第13-16周:完成并修改畢業(yè)論文。 第17周: 準(zhǔn)備論文答辯。4、指導(dǎo)教師意見(jiàn)指導(dǎo)教師簽名: 年 月 日 目錄摘要IAbstractII1 緒論31.1課題研究背景31.2 SPI研究目的及意義41.3 本章小結(jié)42 SPI原理分析52.1 SPI介紹52.2 SPI工作模式62.3 SPI傳輸模式62.4 SPI協(xié)議72.5 本章小結(jié)83 方案論證103.1
13、在51系列單片機(jī)系統(tǒng)中實(shí)現(xiàn)103.2 用可編程邏輯器件設(shè)計(jì)SPI113.3 本章小結(jié)114 SPI的電路設(shè)計(jì)124.1 SPI設(shè)計(jì)系統(tǒng)的功能124.2 SPI各部分具體實(shí)現(xiàn)124.2.2 SPI系統(tǒng)中所用的寄存器134.2.3 SPI速率控制144.2.4 SPI控制狀態(tài)機(jī)144.2.5 SPI程序設(shè)計(jì)流程圖154.3 SPI仿真及開(kāi)發(fā)板上調(diào)試驗(yàn)證分析164.3.1 仿真分析164.3.2開(kāi)發(fā)板上調(diào)試184.4 本章小結(jié)205 論文總結(jié)21致謝22參考文獻(xiàn)23附錄124附錄228摘要 隨著專(zhuān)用集成電路(ASIC設(shè)計(jì)技術(shù)的進(jìn)步以及超大規(guī)模集成電路(VLSI工藝技術(shù)的飛速發(fā)展,以及其價(jià)格的日益降低
14、,采用FPGA編程的硬件電路來(lái)實(shí)現(xiàn)諸如SPI接口也日益切實(shí)可行,相對(duì)軟件實(shí)現(xiàn)具有更好的優(yōu)點(diǎn)。SPI接口是一種常用的標(biāo)準(zhǔn)接口,由于其使用簡(jiǎn)單方便且節(jié)省系統(tǒng)資源,很多芯片都支持該接口,SPI接口主要應(yīng)用在EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間等等。 由于SPI接口是一種事實(shí)標(biāo)準(zhǔn),并沒(méi)有標(biāo)準(zhǔn)協(xié)議,大部分廠家都是參照Motorola的SPI接口定義來(lái)設(shè)計(jì)的,但正因?yàn)闆](méi)有確切的版本協(xié)議,不同廠家產(chǎn)品的SPI接口在技術(shù)上存在一定的差別,容易引起歧義,有的甚至無(wú)法互聯(lián)(需要用軟件進(jìn)行必要的修改)。本文基于一種使用較為普遍的協(xié)議來(lái)進(jìn)行設(shè)計(jì),并參照Motorola
15、公司的MC68HC11A8單片機(jī)中的SPI模塊定義來(lái)設(shè)計(jì)的簡(jiǎn)化的SPI接口,用Verilog語(yǔ)言進(jìn)行編寫(xiě)設(shè)計(jì),并在ISE軟件上進(jìn)行設(shè)計(jì)仿真,并在基于Xlinx公司的Spartan-3E芯片的Digilent公司出品的Nexys2開(kāi)發(fā)板上用在線(xiàn)邏輯分析儀chipscope進(jìn)行板上調(diào)試驗(yàn)證觀察結(jié)果,并完成實(shí)現(xiàn)功能,并具有一些獨(dú)創(chuàng)性的設(shè)計(jì)。 關(guān)鍵詞:FPGA Verilog SPI協(xié)議 chipscope ISEAbstract With the advances in design technology of ASIC and VLSIs rapid development, and its pr
16、ice is lower, the hardware circuit based on FPGA programming interface to achieve such as SPI is feasible, and it realizes better than software. SPI interface is a common standard interface, due to its simple and convenient use and save system resource , a lot of chips support this interface. SPI in
17、terface is extensively applied in EEPROM, FLASH, real-time clock, AD converter, and digital signal processor and digital signals decoder, etc. Due to the interface is a fact SPI standard, and it has no standard protocol, most manufacturers design the SPI refer to the interface definition of Motorola
18、s reference.Because of no definite agreement, there is a lot of different versions of the products in the technology exists on SPI interface, easy cause of ambiguity, some even cannot interconnect need to do some modification. Based on a common protocols for design, and the company MC68HC11A8 microc
19、ontroller of Motorola module definition to design the SPI simplified SPI interface, with Verilog language writing, and in the design of the software design ISE simulation, and based on the Xlinx company Digilent chip Spartan 3E - the Nexys2 development board with online logic analyzers chipscope on
20、board, and debugging validation observations, and complete functionality has some distinctive design Keywords:FPGA Verilog SPI protocol chipscope ISE1 緒論在研究SPI串行外圍接口之前,我們首先要對(duì)其背景及其研究的目的要有所了解。1.1課題研究背景 數(shù)據(jù)傳送有串行傳送和并行傳送兩種方。并行傳送以其高速度占領(lǐng)了數(shù)據(jù)傳送領(lǐng)域很長(zhǎng)一段時(shí)間,采用并行傳送的集成電路、外圍設(shè)備可謂不計(jì)其數(shù),從CPU、RAM/ROM到打印機(jī)。 從原理上講,串行傳輸是按位傳輸方
21、式,只利用一條信號(hào)線(xiàn)進(jìn)行傳輸,例如:要傳送一個(gè)字節(jié)(8位)數(shù)據(jù),是按照該字節(jié)中從最高位逐位傳輸,直至最低位。 而并行傳輸是一次將所有一字節(jié)中8位信號(hào)一并傳送出去。自然最少需要8根信號(hào)線(xiàn)。 如果按每次傳送的數(shù)據(jù)流量來(lái)看,并行傳輸要遠(yuǎn)快于串口,在電腦發(fā)展初期,由于數(shù)據(jù)傳輸速率不是很高,并行傳輸還是很快的。 但并行傳輸也有它的缺點(diǎn): (1)干擾問(wèn)題上面的人已經(jīng)提到。 其根本原因是由于傳輸速率太快,一般達(dá)到100M以上,信號(hào)線(xiàn)上傳遞的頻率將超過(guò)100MHz,想想看,調(diào)頻收音機(jī)的頻率也不過(guò)88108MHz,也就是說(shuō),若用并行傳輸?shù)脑?huà),是8根天線(xiàn)放在一起來(lái)傳輸信號(hào),易發(fā)生干擾。但如果加強(qiáng)屏蔽,減小信號(hào)線(xiàn)間
22、的耦合電容,是可以繼續(xù)增大傳輸速率的,不過(guò)這將變得不現(xiàn)實(shí),因?yàn)檫@必然導(dǎo)致信號(hào)線(xiàn)將耗用更多金屬,截面積更大。但這并不是不能解決的問(wèn)題。 (2)并行傳輸速率提升困難的最主要原因是同步問(wèn)題 并行傳輸時(shí),發(fā)送器是同時(shí)將8位信號(hào)電平加在信號(hào)線(xiàn)上,電信號(hào)雖然是以光速傳輸?shù)?但仍有延遲,因此8位信號(hào)不是嚴(yán)格同時(shí)到達(dá)接受端,速率小時(shí),由于每一字節(jié)在信號(hào)線(xiàn)上的持續(xù)時(shí)間較長(zhǎng),這種到達(dá)時(shí)間上的不同步并不嚴(yán)重,隨著傳輸速率的增加,與8位信號(hào)到達(dá)時(shí)間的差異相比,每一字節(jié)的持續(xù)時(shí)間顯得越來(lái)越短,最終導(dǎo)致前一字節(jié)的某幾位與后一字節(jié)的幾位同時(shí)到達(dá)接受端,這就造成了傳輸失敗,而且隨著信號(hào)線(xiàn)的加長(zhǎng)這種現(xiàn)象還會(huì)越發(fā)嚴(yán)重,直至無(wú)法使
23、用。?這是并口傳輸?shù)闹旅秉c(diǎn)。 串行傳輸由于只有一位信號(hào)在信號(hào)線(xiàn)上,沒(méi)有位同步問(wèn)題,因此傳送頻率可以繼續(xù)提高,當(dāng)前傳輸速率已經(jīng)達(dá)到1Gb/s(1000M)以上,而且還在提高,而并行傳輸在100Mb/s左右就停滯不前了,可以預(yù)見(jiàn),串行傳輸將會(huì)比并行傳輸越來(lái)越快。 為此,串行傳輸已經(jīng)成為當(dāng)今外設(shè)接口的主流傳輸方式,為此,摩托羅拉公司開(kāi)發(fā)出了同步外設(shè)接口SPI,并隨著時(shí)間不斷改進(jìn),由于其占用線(xiàn)的資源少,且穩(wěn)定可靠,該總線(xiàn)大量用在與EEPROM、ADC、FLASH和顯示驅(qū)動(dòng)器之類(lèi)的慢速外設(shè)器件通信,現(xiàn)在很多單片機(jī)等都有SPI模塊來(lái)連接外圍設(shè)備,從而使主機(jī)與外設(shè)傳輸數(shù)據(jù)更加方便。1.2 SPI研究目的及
24、意義 SPI是一種同步串行通訊方式,是一種三線(xiàn)同步總線(xiàn),它是一種常用的標(biāo)準(zhǔn)接口,由于其使用簡(jiǎn)單方便且節(jié)省系統(tǒng)資源,很多芯片都支持該接口,SPI接口主要應(yīng)用在EEPROM,FLASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間等等。當(dāng)然,串口通信還有其他的接口方式,SPI接口和UART相比,多了一條同步時(shí)鐘線(xiàn),對(duì)通信雙方的時(shí)序要求不嚴(yán)格不同設(shè)備之間可以很容易結(jié)合,而且通信速度非???。一般用在產(chǎn)品內(nèi)部元件之間的高速數(shù)據(jù)通信上面,如大容量存儲(chǔ)器等。這就凸現(xiàn)SPI的好處。為此,研究SPI接口,可以更容易了解并外圍器件傳輸過(guò)程,并對(duì)其已定義的進(jìn)行改進(jìn),并使之更加可靠,功能強(qiáng)化。 SPI
25、接口的擴(kuò)展有硬件和軟件兩種方法,軟件模擬SPI接口方法雖然簡(jiǎn)單方便,但是速度受到限制,在高速且日益復(fù)雜的數(shù)字系統(tǒng)中,這種方法顯然無(wú)法滿(mǎn)足系統(tǒng)要求,所以采用硬件的方法實(shí)現(xiàn)最為切實(shí)可行。這使得與SPI有關(guān)的軟件就相當(dāng)簡(jiǎn)單,使CPU有更多的時(shí)間處理其他事務(wù)。 SPI接口是一種事實(shí)標(biāo)準(zhǔn),并沒(méi)有標(biāo)準(zhǔn)協(xié)議,大部分廠家都是參照Motorola的SPI接口定義來(lái)設(shè)計(jì)的,但正因?yàn)闆](méi)有確切的版本協(xié)議,不同廠家產(chǎn)品的SPI接口在技術(shù)上存在一定的差別,容易引起歧義,有的甚至無(wú)法互聯(lián)(需要用軟件進(jìn)行必要的額修改)。 當(dāng)前,基于主從處理器結(jié)構(gòu)的系統(tǒng)架構(gòu)已經(jīng)成為一種主流(如 DSP+FPGA,MCU+FPGA等),FPGA
26、是在ASIC的基礎(chǔ)發(fā)展出來(lái)的,它克服了專(zhuān)用 ASIC不夠靈活的缺點(diǎn)。與其他中小規(guī)模集成電路相比,其優(yōu)點(diǎn)主要在于它有很強(qiáng)的靈活性,即其內(nèi)部的具體邏輯功能可以根據(jù)需要配置,對(duì)電路的修改和維護(hù)很方便。目前,FPGA的容量已經(jīng)跨過(guò)了百萬(wàn)門(mén)級(jí),使得 FPGA成為解決系統(tǒng)級(jí)設(shè)計(jì)的重要選擇方案之一。在這種架構(gòu)下,應(yīng)用FPGA來(lái)構(gòu)建SPI通信接口是切實(shí)可行的。并FPGA是可編程并可重復(fù)擦寫(xiě)的,從而具有更大的靈活性,在協(xié)議不標(biāo)準(zhǔn)的情況下,可根據(jù)外圍設(shè)備的不同而靈活的改動(dòng)SPI設(shè)計(jì),使設(shè)計(jì)周期大大降低,并與外圍設(shè)備連接更加方便。1.3 本章小結(jié) 本章主要介紹了SPI的背景,及研究的目的與意義,進(jìn)而可以知道SPI提
27、出的目的以及其現(xiàn)階段的發(fā)展?fàn)顩r,從而可以對(duì)SPI的這些理解達(dá)到舉一反三的目的。2 SPI原理分析 SPI原理主要介紹SPI的基本機(jī)構(gòu),工作模式,傳輸模式以及SPI的典型協(xié)議,通過(guò)此院里的介紹,對(duì)于SPI的要點(diǎn)介紹,以及其工作過(guò)程有一個(gè)通透了解,從而可以能設(shè)計(jì)達(dá)到原理目的的功能設(shè)計(jì)以及程序的設(shè)計(jì)。2.1 SPI介紹 SPI總線(xiàn)系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。外圍設(shè)置FLASHRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動(dòng)器、A/D轉(zhuǎn)換器和MCU等。SPI總線(xiàn)系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線(xiàn):串行時(shí)鐘線(xiàn)(SCK)、主
28、機(jī)輸入/從機(jī)輸出數(shù)據(jù)線(xiàn)MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(xiàn)MOST和低電平有效的從機(jī)選擇線(xiàn)SS有的SPI接口芯片帶有中斷信號(hào)線(xiàn)INT或INT、有的SPI接口芯片沒(méi)有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(xiàn)MOSI。 SPI的通信原理很簡(jiǎn)單,它以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要至少4根線(xiàn),事實(shí)上3根也可以(單向傳輸時(shí))。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCK(時(shí)鐘),CS(片選)。 (1)MOSI ? 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入 (2)MISO ? 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出 (3)SCLK ? 時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生 (4)CS
29、 ? 從設(shè)備使能信號(hào),由主設(shè)備控制 其中CS是控制芯片是否被選中的,也就是說(shuō)只有片選信號(hào)為預(yù)先規(guī)定的使能信號(hào)時(shí)(高電位或低電位),對(duì)此芯片的操作才有效。這就允許在同一總線(xiàn)上連接多個(gè)SPI設(shè)備成為可能。 接下來(lái)就負(fù)責(zé)通訊的3根線(xiàn)了。通訊是通過(guò)數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說(shuō)數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCK時(shí)鐘線(xiàn)存在的原因,由SCK提供時(shí)鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過(guò) SDO線(xiàn),數(shù)據(jù)在時(shí)鐘上升沿或下降沿時(shí)改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時(shí)鐘信號(hào)的改變(上沿和下沿為一次),就可以完
30、成8位數(shù)據(jù)的傳輸。 要注意的是,SCK信號(hào)線(xiàn)只由主設(shè)備控制,從設(shè)備不能控制信號(hào)線(xiàn)。同樣,在一個(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í)鐘線(xiàn)由主控設(shè)備控制,當(dāng)沒(méi)有時(shí)鐘跳變時(shí),從設(shè)備不采集或傳送數(shù)據(jù)。也就是說(shuō),主設(shè)備通過(guò)對(duì)SCK時(shí)鐘線(xiàn)的控制可以完成對(duì)通訊的控制。SPI還是一個(gè)數(shù)據(jù)交換協(xié)議:因?yàn)镾PI的數(shù)據(jù)輸入和輸出線(xiàn)獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。不同的SPI設(shè)備的實(shí)現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時(shí)間不同,在時(shí)鐘信號(hào)上沿或
31、下沿采集有不同定義,具體請(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ù)。2.2 SPI工作模式 SPI由工作方式的不同,可分為兩種模式:主模式和從模式主模式將Master的數(shù)據(jù)傳送給Slave,8位數(shù)據(jù)傳送,傳送完畢,申請(qǐng)中斷,如圖2.2.1 圖 2.2.1 SPI工作主模式 (2) 從模式 此時(shí),從控制器從SIMO引腳接收串行數(shù)據(jù)并把數(shù)據(jù)移入自身移位寄存器的最低位或最高位。要
32、注意的是,其是在主控制器輸出時(shí)鐘SCLK的控制下,在SCLK的上升沿或者下降沿讀出一個(gè)數(shù)據(jù)輸出給主設(shè)備。其傳播模型如下圖所示: 圖 2.2.2 SPI工作從模式 須注意的是,主設(shè)備可以再在任意時(shí)刻起動(dòng)數(shù)據(jù)發(fā)送,因?yàn)樗刂浦鳶CLK信號(hào),而在從模式下,從控制器要發(fā)送數(shù)據(jù),必須要用先設(shè)置片選信號(hào)以確保使能端CS輸入允許。2.3 SPI傳輸模式 SPI 的工作模式分為主模式和從模式,二者都需要在 SCK 的作用下才能工作;但主模式不需要 CS 信號(hào),而從模式必須在 CS 信號(hào)有效的情況下才能完成。不論是在主模式下還是在從模式下,都要在時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA)的配合下才能有效地完成一
33、次數(shù)據(jù)傳輸。其中,時(shí)鐘極性表示時(shí)鐘信號(hào)在空閑時(shí)的電平;時(shí)鐘相位決定數(shù)據(jù)是在 SCK的上升沿采樣還是下降沿采樣。根據(jù)時(shí)鐘極性和時(shí)鐘相位的不同組合,可以得到 SPI 總線(xiàn)的4 種工作模式,入圖所示:圖2.3.1 SPI四種傳輸模式 (1)SPI0 模式下的 CPOL 為 0,SCK的空閑電平為低;CPHA 為 0,數(shù)據(jù)在串行同步時(shí)鐘的第一個(gè)跳變沿(由于 CPOL 為低,因此第 1 個(gè)跳變沿只能為上升沿)時(shí)數(shù)據(jù)被采樣。 (2)SPI1 模式下的 CPOL 也為 0,SCK的空閑電平為低;但是 CPHA 為 1,數(shù)據(jù)在串行同步時(shí)鐘的第二個(gè)跳變沿(由于 CPOL 為低,因此第 2 個(gè)跳變沿只能為下降沿)
34、時(shí)數(shù)據(jù)被采樣。 (3)SPI2 模式下的 CPOL 為 1,SCK的空閑電平為高;CPHA 為 0,數(shù)據(jù)在串行同步時(shí)鐘的第1個(gè)跳變沿(由于 CPOL 為高,因此第 1 個(gè)跳變沿只能為下降沿)時(shí)數(shù)據(jù)被采樣。 (4)SPI3 模式下的 CPOL 為 1,SCK的空閑電平為高;CPHA 為 1,數(shù)據(jù)在串行同步時(shí)鐘的第 2 個(gè)跳變沿(由于 CPOL 為高,因此第 1 個(gè)跳變沿只能為上升沿)時(shí)數(shù)據(jù)被采樣。 在上述 4 種模式中,使用的最為廣泛的是 SPI0 和 SPI3 方式。由于每一種模式都與其他三種不兼容,因此為了完成主、從設(shè)備間的通訊,主、從設(shè)備的 CPOL 和 CPHA 必須有相同的設(shè)置。讀者需
35、要注意的是:如果主設(shè)備/從設(shè)備在 SCK上升沿發(fā)送數(shù)據(jù),則從設(shè)備/主設(shè)備最好在下降沿采樣數(shù)據(jù);如果主設(shè)備/從設(shè)備在SCK下降沿發(fā)送數(shù)據(jù),則從設(shè)備/主設(shè)備最好在 SCK上升沿采樣數(shù)據(jù)。2.4 SPI協(xié)議 SPI接口是一種事實(shí)標(biāo)準(zhǔn),并沒(méi)有標(biāo)準(zhǔn)協(xié)議,大部分廠家都是參照Motorola的SPI接口定義來(lái)設(shè)計(jì)的,但正因?yàn)闆](méi)有確切的版本協(xié)議,不同廠家產(chǎn)品的SPI接口在技術(shù)上存在一定的差別,容易引起歧義,有的甚至無(wú)法互聯(lián)(需要用軟件進(jìn)行必要的額修改)。本次設(shè)計(jì)基于一種使用較為普遍的協(xié)議來(lái)進(jìn)行設(shè)計(jì),通過(guò)簡(jiǎn)單協(xié)議來(lái)理解并設(shè)計(jì)SPI接口功能。 SPI 協(xié)議是一個(gè)環(huán)形總線(xiàn)結(jié)構(gòu),其時(shí)序其實(shí)比較簡(jiǎn)單,主要是在時(shí)鐘脈沖
36、SCK 的控制下,兩個(gè)雙向移位寄存器 SPI數(shù)據(jù)寄存器數(shù)據(jù) 進(jìn)行數(shù)據(jù)交換。我們假設(shè)主機(jī)的 8 位寄存器 SPIDATA1 內(nèi)的數(shù)據(jù)是10101010,而從機(jī)的 8 位寄存器 SPIDATA2 內(nèi)的數(shù)據(jù)是 01010101,在上升沿的時(shí)候發(fā)送數(shù)據(jù),在下降沿的時(shí)候接收數(shù)據(jù),最高位的數(shù)據(jù)先發(fā)送,主機(jī)和從機(jī)之間全雙工通信,也就是說(shuō)兩個(gè) SPI接口同時(shí)發(fā)送和接收數(shù)據(jù),如圖 所示。從圖中我們也可以看到,SPIDATA 移位寄存器總是將最高位的數(shù)據(jù)移出,接著將剩余的數(shù)據(jù)分別左移一位,然后將接收到得數(shù)據(jù)移入其最低位。 圖2.4.1 SPI的環(huán)形總線(xiàn)結(jié)構(gòu) 如圖 所示,當(dāng)?shù)谝粋€(gè)上升沿來(lái)的時(shí)候,SPIDATA1 將
37、最高位 1 移除,并將所有數(shù)據(jù)左移1位, 這時(shí) MOSI 線(xiàn)為高電平,而 SPIDATA2 將最高位 0 移出, 并將所有數(shù)據(jù)左移 1 位, 這樣 MISO線(xiàn)為低電平。然后當(dāng)下降沿到來(lái)的時(shí)候,SPIDATA1 將鎖存 MISO 線(xiàn)上的電平,并將其移入其最低位,同樣的,SPIDATA2 將鎖存 MOSI 線(xiàn)上的電平,并將其移入最低位。經(jīng)過(guò) 8 個(gè)脈沖后,兩個(gè)移位寄存器就實(shí)現(xiàn)了數(shù)據(jù)的交換,也就是完成了一次 SPI 的時(shí)序。 圖2.4.2數(shù)據(jù)傳輸示例2.5 本章小結(jié) 本章通過(guò)對(duì)SPI的原理分析,介紹其首發(fā)原理及基本結(jié)構(gòu),再介紹其工作模式,再介紹其傳輸模式和協(xié)議距離。通過(guò)以上分析,便可以知道本次設(shè)計(jì)的
38、SPI所必須具備的功能有哪些,哪些是需要注意的功能。從而可以確定本次設(shè)計(jì)的工作模式,以及設(shè)計(jì)所的傳輸模式,并且通過(guò)介紹的協(xié)議舉例來(lái)通過(guò)此協(xié)議來(lái)設(shè)計(jì)SPI系統(tǒng)結(jié)構(gòu)。通過(guò)本章的分析,本次設(shè)計(jì)確定為主模式,及主控模式的設(shè)計(jì),并且四種傳輸模式均需要實(shí)現(xiàn),并且遵循SPI協(xié)議,按照此協(xié)議來(lái)設(shè)計(jì)SPI結(jié)構(gòu)。以此,變可以進(jìn)行SPI結(jié)構(gòu)設(shè)計(jì)了。3 方案論證 對(duì)于SPI接口設(shè)計(jì)主要分為兩大類(lèi),利用單片機(jī)如51系列單片機(jī)實(shí)現(xiàn)和利用FPGA等可編程邏輯器件編程實(shí)現(xiàn),下面將分別介紹兩種方法的方法。3.1在51系列單片機(jī)系統(tǒng)中實(shí)現(xiàn) 對(duì)于不帶SPI串行總線(xiàn)接口的MCS51系列單片機(jī)來(lái)說(shuō),可以使用軟件來(lái)模擬SPI的操作,包括
39、串行時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出。對(duì)于不同的串行接口外圍芯片,它們的時(shí)鐘時(shí)序是不同的。對(duì)于在SCK的上升沿輸入(接收)數(shù)據(jù)和在下降沿輸出(發(fā)送)數(shù)據(jù)的器件,一般應(yīng)將其串行時(shí)鐘輸出口P1.1的初始狀態(tài)設(shè)置為1,而在允許接口后再置P1.1為0。這樣,MCU在輸出1位SCK時(shí)鐘的同時(shí),將使接口芯片串行左移,從而輸出1位數(shù)據(jù)至MCS51單片機(jī)的P1.3口(模擬MCU的MISO線(xiàn)),此后再置P1.1為1,使MCS51系列單片機(jī)從P1.0(模擬MCU的MOSI線(xiàn))輸出1位數(shù)據(jù)(先為高位)至串行接口芯片。至此,模擬1位數(shù)據(jù)輸入輸出便宣告完成。此后再置P1.1為0,模擬下1位數(shù)據(jù)的輸入輸出,依此循環(huán)8次,即可完成
40、1次通過(guò)SPI總線(xiàn)傳輸8位數(shù)據(jù)的操作。對(duì)于在SCK的下降沿輸入數(shù)據(jù)和上升沿輸出數(shù)據(jù)的器件,則應(yīng)取串行時(shí)鐘輸出的初始狀態(tài)為0,即在接口芯片允許時(shí),先置P1.1為1,以便外圍接口芯片輸出1位數(shù)據(jù)(MCU接收1位數(shù)據(jù)),之后再置時(shí)鐘為0,使外圍接口芯片接收1位數(shù)據(jù)MCU發(fā)送1位數(shù)據(jù),從而完成1位數(shù)據(jù)的傳送。 圖3.1.1 基于MCS51單片機(jī)的SPI設(shè)計(jì)模型 圖3.1.1所示為MCS51系列單片機(jī)與存儲(chǔ)器X25F008(E2PROM)的硬件連接圖,圖2中,P1.0模擬MCU的數(shù)據(jù)輸出端(MOSI),P1.1模擬SPI的SCK輸出端,P1.2模擬SPI的從機(jī)選擇端,P1.3模擬SPI的數(shù)據(jù)輸入端(MI
41、SO)。下面介紹用MCS51單片機(jī)的匯編語(yǔ)言模擬SPI串行輸入、串行輸出和串行輸入/輸出的3個(gè)子程序,實(shí)際上,這些子程序也適用于在串行時(shí)鐘的上升沿輸入和下降沿輸出的其它各種串行外圍接口芯片(如A/D轉(zhuǎn)換芯片、網(wǎng)絡(luò)控制器芯片、LED顯示驅(qū)動(dòng)芯片等)。對(duì)于下降沿輸入、上升沿輸出的各種串行外圍接口芯片,只要改變P1.1的輸出電平順序,即先置P1.1為低電平,之后再次置P1.1為高電平,再置P1.1為低電平,則這些子程序也同樣適用。3.2 用可編程邏輯器件設(shè)計(jì)SPI 除了編程方法,還可以用FPGA設(shè)計(jì)SPI,及用可編程邏輯的方法設(shè)計(jì)硬件來(lái)用單片機(jī)直接用簡(jiǎn)單的程序來(lái)應(yīng)用外圍硬件來(lái)實(shí)現(xiàn)SPI傳輸。通過(guò)對(duì)S
42、PI的結(jié)構(gòu)的了解可以設(shè)計(jì)一個(gè)系統(tǒng)框架,按照框架完成輸入輸出的功能。 一般一個(gè)典型的SPI系統(tǒng)如下圖所示,其主要包括MPU和一個(gè)或幾個(gè)外圍器件,SPI一端與MPU接口相連,另一端便是負(fù)責(zé)傳輸?shù)乃臈l線(xiàn)了。當(dāng)此單片機(jī)處于主機(jī)模式時(shí),就能與從機(jī)進(jìn)行通信,當(dāng)此單片機(jī)處于從機(jī)模式時(shí),就能與另一主機(jī)通信??傊?一個(gè)系統(tǒng)中只有一個(gè)主機(jī),否則無(wú)法工作。用FPGA設(shè)計(jì)的系統(tǒng)框架如下圖3.2.1所示: 圖3.2.1 介于SPI的FPGA設(shè)計(jì)系統(tǒng)框架 以上兩種便是兩種實(shí)現(xiàn)SPI的方法,在實(shí)際應(yīng)用中,許多單片機(jī)已經(jīng)包括了SPI接口,可見(jiàn)SPI接口應(yīng)用很廣泛,只要高級(jí)點(diǎn)的單片機(jī),都自帶SPI接口,并且如DSP等也集成了S
43、PI接口,可見(jiàn)大多芯片都趨向于用硬件實(shí)現(xiàn)而非軟件實(shí)現(xiàn)。這是因?yàn)檐浖MSPI接口方法雖然簡(jiǎn)單方便,但是速度受到限制,在高速且日益復(fù)雜的數(shù)字系統(tǒng)中,這種方法顯然無(wú)法滿(mǎn)足系統(tǒng)要求,所以采用硬件的方法實(shí)現(xiàn)最為切實(shí)可行。這使得與SPI有關(guān)的軟件就相當(dāng)簡(jiǎn)單,使CPU有更多的時(shí)間處理其他事務(wù)。在可編程邏輯器件不斷地完善改善完美并且功能強(qiáng)大且日益便宜,用硬件實(shí)現(xiàn)已經(jīng)成為可能,在大型系統(tǒng)用硬件實(shí)現(xiàn)更加穩(wěn)定。同時(shí)可編程邏輯也有自身的優(yōu)點(diǎn)。在外圍器件有改變時(shí),由于可編程邏輯可以重復(fù)擦鞋的優(yōu)點(diǎn),從而在外圍器件有些許改變之時(shí),可以同時(shí)稍微改變可編程的程序,因而可編程又有靈活性大的特點(diǎn)。因此,本次設(shè)計(jì)便采用可編程邏輯的
44、方案。3.3 本章小結(jié)本次設(shè)計(jì)介紹了軟件硬件兩種方法設(shè)計(jì)SPI,通過(guò)此分析,可以知道SPI的設(shè)計(jì)方法有哪些方法,通過(guò)比較可以得出每種設(shè)計(jì)的優(yōu)劣。軟件設(shè)計(jì)簡(jiǎn)單,但有其缺點(diǎn),硬件設(shè)計(jì)相比復(fù)雜些,但是其靈活性強(qiáng),可以讓微處理器省出資源。4 SPI的電路設(shè)計(jì) 電路設(shè)計(jì)主要是對(duì)系統(tǒng)設(shè)計(jì)的功能,各部分功能具體實(shí)現(xiàn)方案比如管腳說(shuō)明,寄存器的說(shuō)明即設(shè)計(jì),以及狀態(tài)機(jī)的動(dòng)態(tài)描述,由各個(gè)功能的說(shuō)明便可設(shè)計(jì)出本次SPI設(shè)計(jì)的流程圖,由流程圖便可以寫(xiě)出我們所需要的程序。4.1 SPI設(shè)計(jì)系統(tǒng)的功能 本次設(shè)計(jì)具有一定的獨(dú)創(chuàng)性,有著MC68HC11A8單片機(jī)SPI接口的全部功能,并在其四種傳輸速率中擴(kuò)展了另外八種速率,使速
45、率選擇更加靈活。其主要功能如下: ?本次設(shè)計(jì)為主控模式 ?與摩托拉羅說(shuō)明規(guī)格部分一致 ?并增強(qiáng)了MC68HC11A8單片機(jī)SPI接口功能 ?添加中斷,當(dāng)每完成一個(gè)數(shù)據(jù)產(chǎn)生中斷信號(hào),確保微處理器讀完數(shù)據(jù)后再發(fā)送接收數(shù)據(jù) ?提供了12種速率選擇 ?提供極性相位選擇,支撐四種傳輸模式 ?充分綜合4.2 SPI各部分具體實(shí)現(xiàn) 如總系系統(tǒng)框架所示,其管腳都列其上,其管腳功能見(jiàn)下表4.2.1所示: 表4.2.1 SPI設(shè)計(jì)管腳端口名稱(chēng)數(shù)據(jù)位寬信號(hào)流向功能描述int_o1Output中斷輸出,確保已傳數(shù)據(jù)被讀取rst_i1Input異步復(fù)位we_i1Input寫(xiě)使能端,寫(xiě)數(shù)據(jù)dat_i8Input輸入數(shù)據(jù)或
46、指令adr_i2Input寫(xiě)指令數(shù)據(jù)選擇sck_o1OutputSPI時(shí)鐘輸出mosi_o1Output數(shù)據(jù)串行輸出miso_i1Input數(shù)據(jù)串行輸入cs_o1Output選片dat_o8Output輸入數(shù)據(jù)并行給微處理器 其中,需要強(qiáng)掉的是,adr_i端輸入不同,便使系統(tǒng)處于寫(xiě)數(shù)據(jù)狀態(tài)還是寫(xiě)指令狀態(tài),指令是寫(xiě)給SPI設(shè)計(jì)的控制寄存器,以使SPI具有不同的功能。4.2.2 SPI系統(tǒng)中所用的寄存器 本次設(shè)計(jì)中SPI用到四種寄存器,包括SPCR(SPI控制寄存器)、SPER(SPI擴(kuò)展寄存器)、treg(SPI數(shù)據(jù)傳輸/接收寄存器)其功能如下所示: (1)控制寄存器 本次設(shè)計(jì)時(shí)參照MC68HC
47、11A8單片機(jī)的SPI結(jié)構(gòu)進(jìn)行設(shè)計(jì),并進(jìn)行了一些改進(jìn),所以本次設(shè)計(jì)的控制寄存器的控制位與MC68HC11A8單片機(jī)的控制位大致相似,同時(shí)進(jìn)行了一些擴(kuò)展和不同的功能,擴(kuò)展在擴(kuò)展寄存器中再做介紹,其控制寄存器的控制位如下表4.2.2所示: 表4.2.2 SPI設(shè)計(jì)的控制寄存器其各功能如下: ?spie :當(dāng)此為被置位為1時(shí),則中斷允許,即允許中斷,當(dāng)為0時(shí),禁止中斷。 0:禁止中斷 1:允許中斷 ?spe :當(dāng)此位被置位為1時(shí),則系統(tǒng)運(yùn)行,當(dāng)置位為0時(shí),系統(tǒng)不運(yùn)行。 0:系統(tǒng)運(yùn)行允許 1:系統(tǒng)允許禁止 ?msb:此為為在傳輸時(shí)是最高位線(xiàn)發(fā)送還是最低位先發(fā)送。當(dāng)為1時(shí),是最高位先發(fā)送,當(dāng)為1時(shí),是最
48、低位先發(fā)送。 0:先發(fā)送最低位 1:先發(fā)送最高位 ?mstr:此為主從模式選擇位,在本次設(shè)計(jì)中,本次設(shè)計(jì)只是工作于主控設(shè)備,故此為始終置1即可。 ?cpol:此為系統(tǒng)在空閑時(shí)的極性,當(dāng)為0時(shí),其為低電平為空閑時(shí)的極性,當(dāng)為1時(shí),其為高電平為空閑時(shí)的極性。 0:空閑時(shí)為低電平 1:空閑時(shí)為高電平 ?spr:此為速率選擇為,其與擴(kuò)展寄存器組合成速率選擇,其可為00,01,10,11,與擴(kuò)展此寄存器組合成一組數(shù)列來(lái)選擇數(shù)據(jù)傳輸速率。此刻在速率控制中詳細(xì)介紹。 (2)擴(kuò)展寄存器 擴(kuò)展寄存器的八位只用了兩位,其用于與控制寄存器的spr組合成一列數(shù)據(jù)控制數(shù)據(jù)傳輸速率,其組合方式為espr spre, es
49、pr,四位此而控制16種傳輸速率,此在速率控制中詳細(xì)介紹。 (3)狀態(tài)寄存器 狀態(tài)寄存器本次設(shè)計(jì)中只去了一位spi_i中斷位,其與spie允許情況下允許中斷,中斷位傳給int_o從而保證單片機(jī)完成讀取數(shù)據(jù)后在重新傳輸數(shù)據(jù),從而保證每位數(shù)據(jù)傳輸完畢,保證數(shù)據(jù)讀取后才能傳送下一位數(shù)據(jù)。4.2.3 SPI速率控制 速率控制為控制寄存器的低兩位和擴(kuò)展寄存器的低兩位共同控制的,本次設(shè)計(jì)通過(guò)此四位的控制一共支持12種速率,其為系統(tǒng)時(shí)鐘的N次分頻。 本次將每一個(gè)控制賦值給clkcnt寄存器,并起每一個(gè)時(shí)鐘減一,當(dāng)為0是從而影響控制位狀態(tài)機(jī)ena |clkcnt,當(dāng)ena為1是則執(zhí)行狀態(tài)機(jī),從而達(dá)到分頻目的
50、其詳細(xì)控制如表4.2.3下: 表4.2.3 SPI的速率控制spreesprclkcnt分頻000002分頻000114分頻001028分頻0011316分頻0100432分頻0101564分頻01106128分頻01117256分頻10008512分頻100191024分頻1010a2048分頻1011b4096分頻由于每一個(gè)時(shí)鐘上升沿執(zhí)行一次,從而每個(gè)完整時(shí)鐘sck_o執(zhí)行一次跳變,顧其為2的n此分頻,如上表所示。4.2.4 SPI控制狀態(tài)機(jī) SPI控制狀態(tài)機(jī)是本次設(shè)計(jì)的核心部分,其實(shí)整個(gè)設(shè)計(jì)的可以說(shuō)是大腦,控制著整個(gè)程序的執(zhí)行過(guò)程和完成設(shè)計(jì)實(shí)現(xiàn)功能??刂茽顟B(tài)機(jī)主要用于片選信號(hào)cs的選擇,
51、和輸出時(shí)鐘sck的產(chǎn)生,以及數(shù)據(jù)載入和輸出等。它控制各個(gè)模塊的狀態(tài),然后根據(jù)相應(yīng)的狀態(tài)做出相應(yīng)的操作。 在狀態(tài)機(jī)運(yùn)行之前,及數(shù)據(jù)傳輸之前,所作的工作便是初始化工作,即必須先確定允許中斷,允許系統(tǒng)運(yùn)行,設(shè)置先發(fā)送的數(shù)據(jù)位,設(shè)置極性相位和速率,即設(shè)置控制寄存器使之系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài),首先必須設(shè)置spe位為1,即只有其為1時(shí)系統(tǒng)才運(yùn)行,當(dāng)達(dá)到adr1:010時(shí),便是發(fā)送接收數(shù)據(jù)的命令。此時(shí)進(jìn)入狀態(tài)機(jī)的空閑狀態(tài)2b00,在空閑狀態(tài),所作的工作是設(shè)置空閑的時(shí)的極性和相位,完成后便進(jìn)入發(fā)送準(zhǔn)備載入發(fā)送數(shù)據(jù)階段201。此時(shí)為達(dá)到控制速率,使用一ena |clkcnt允許位,只有其為1時(shí),才執(zhí)行此狀態(tài)的程序,否則保持,在此狀態(tài)中,所作的工作是反向sck信號(hào),載入數(shù)據(jù),選中信號(hào)片選信號(hào)cs端,變開(kāi)始發(fā)送接收數(shù)據(jù),同時(shí)此時(shí)的第一位發(fā)送,便進(jìn)入2b10狀態(tài)。此狀
溫馨提示
- 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年度企業(yè)內(nèi)部審計(jì)與風(fēng)險(xiǎn)控制合同
- 二零二五年度咖啡廳與酒吧聯(lián)合經(jīng)營(yíng)合同3篇
- 二零二五電商電商平臺(tái)運(yùn)營(yíng)風(fēng)險(xiǎn)控制合同模板4篇
- 2025年度航空貨運(yùn)合同爭(zhēng)議解決條款
- 2025年國(guó)際貿(mào)易支付結(jié)算合同標(biāo)準(zhǔn)文本
- 2025年度自然人創(chuàng)業(yè)投資借款合同樣本
- 2025年度電子信息產(chǎn)品代理銷(xiāo)售合同協(xié)議書(shū)
- 2025年度新能源儲(chǔ)能技術(shù)項(xiàng)目合同補(bǔ)充協(xié)議示范文
- 2025年度化工廠安全生產(chǎn)技術(shù)咨詢(xún)與服務(wù)合同
- 二零二四年度英文銷(xiāo)售代理合同范本解析3篇
- 2025年公務(wù)員考試申論試題與參考答案
- 中國(guó)高血壓防治指南(2024年修訂版)要點(diǎn)解讀
- 小學(xué)三年級(jí)下冊(cè)奧數(shù)題100道附答案
- 小升初卷(試題)-2023-2024學(xué)年六年級(jí)下冊(cè)數(shù)學(xué)人教版
- GB/T 40565.1-2024液壓傳動(dòng)連接快換接頭第1部分:通用型
- 《教科版》二年級(jí)科學(xué)下冊(cè)全冊(cè)課件(完整版)
- (2024年)《處方管理辦法》培訓(xùn)課件
- 人工智能在化工生產(chǎn)安全中的應(yīng)用
- 2023年6月浙江高考政治試卷真題解讀及答案解析(課件)
- 三年級(jí)計(jì)算題三位數(shù)乘一位數(shù)練習(xí)300題帶答案
- 商務(wù)服務(wù)業(yè)的市場(chǎng)細(xì)分和定位策略
評(píng)論
0/150
提交評(píng)論