《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的SPI總線接口的實現
基于FPGA的SPI總線接口的實現
現代電子技術
王玨文 金偉信 蔡一兵 顏莉萍
摘要: 在現代EDA外圍電子器件的接口中存在多種標準,已知的一些接口協議存在速度慢、協議復雜等問題。SPI總線是能夠克服上述缺點的一種外圍串行總線,其能很好地滿足要求。通過使用Lattice公司的FPGA芯片以及工程開發軟件,特別是在線邏輯分析儀這一先進的EDA工具,實現了基于FPGA的SPI接口的連接。將FPGA編程的靈活性和SPI總線的易用性結合,實現了FLASH的存取功能。同時也為同類型接口的芯片應用提供了一個原型,為進一步的工程設計提供了支持。
關鍵詞: FPGA SPI總線 ECP2M
Abstract:
Key words :

0 引言
    串行接口已成為當前傳輸接口的發展趨勢,原因在于串行的高速率傳輸性能和較簡單的線路連接。在已知的外圍器件連接端口中,有USB,wishbone和并行端口。其中SPI接口總線基于串行傳輸的思想,已經制定成為標準,成為常用的外圍器件連接方式。針對FLASH這種常用的外圍存儲器件,有多種接口可供選擇,然而具有SPI接口的FLASH芯片硬件連接方便,通過FPGA" title="FPGA">FPGA編程可以便捷地實現FLASH的存取功能。因此基于FPGA的具有SPI總線" title="SPI總線">SPI總線接口的FLASH功能實現為工程設計提供了一種原型,為進一步的工程開發奠定了基礎。

1 SPI總線介紹
1.1 SPI總線簡介

    同步外設接口(serial peripheral,interface,SPI)是由摩托羅拉公司開發的全雙工同步串行總線。SPT是一種串行同步通信協議,由1個主設備和1個或多個從設備組成,主設備啟動一個與從設備的同步通信,從而完成數據的交換。
1.2 SPI總線接口及時序
    SPI接口由SDI(串行數據輸入),SDO(串行數據輸出),SCK(串行移位時鐘),CS(從使能信號)四種信號構成,CS決定了惟一的與主設備通信的從設備,如沒有CS信號,則只能存在一個從設備,主設備通過產生移位時鐘來發起通信。通信時,數據由SDO輸出,SDI輸入,數據在時鐘的上升沿或下降沿從SDO輸出,在緊接著的下降沿或上升沿由SDI讀入,這樣經過8/16次時鐘改變,完成8/16位數據的傳輸。
    在SPI傳輸中,數據是同步進行發送和接收的。數據傳輸的時鐘基于來自主處理器的時鐘脈沖,摩托羅拉沒有定義任何通用SPI時鐘規范。然而,最常用的時鐘設置基于時鐘極性(CPOL)和時鐘相位(CPHA)兩個參數;CPOL定義SPI串行時鐘的活動狀態,而CPHA定義相對于數據位的時鐘相位。CPOL和CPHA的設置決定了數據取樣的時鐘沿。
    SPI模塊為了與外設進行數據交換,根據外設工作要求,其輸出串行同步時鐘極性和相位可以進行配置,時鐘極性(CPOL)對傳輸協議沒有大的影響。如果CPOL=0,串行同步時鐘的空間狀態為低電平;如果CPOL=1,串行同步時鐘的空間狀態為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協議之一進行數據傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數據被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數據被采樣。SPI主模塊和與之通信的外設時鐘相位與極性應該一致。SPI接口時序如圖1所示。



2 基于FPGA的SPI接口設計
    SPI接口適用于主芯片與從芯片的連接,在一個FPGA系統中,充當主芯片的為FPGA可編程芯片,而FLASH芯片作為外圍從芯片通過SPI接口連接至FPGA芯片。該系統選用Lattice公司的FPGA芯片,該公司的產品線齊全,其中ECP2M" title="ECP2M">ECP2M系列芯片功能全面,開發成本低廉。ECP2M系列芯片支持SPI接口,通過硬件電路的簡單設計即可完成SPI接口的物理連接,進一步利用Lattice的工程開發EDA軟件進行FPGA編程,實現SPI接口控制。對接口的設計采用RAM作為讀/寫緩沖,完成主程序和FLASH之間的數據交換,各模塊結構示意圖如圖2所示。


    圖2中ram_wr寫端口數據寬度設置為32位,地址深度設為128位;讀端口為1位位寬,這是由SPI端口的串行性決定的;ram_rd讀端口與ram _wr寫端口相對應。RAM模塊如圖3所示。

3 SPI接口實現及FLASH功能驗證
3.1 M25P64串行FLASH芯片介紹

    M25P64串行芯片由STMicro公司生產,它具有64 Mb容量,最高時鐘頻率可達50 MHz同時采用SPI總線接口。該FLASH芯片的存儲空間劃分為128區,每區為65 536 B。在芯片中,其中D為數據串行輸入端;C為時鐘輸入;為低電平有效片選信號;分別為寫保護和暫停保持輸入,Q為串行輸出端。該芯片的指令豐富,功能完備,常用的指令如:讀/寫使能、讀/寫狀態寄存器、讀數據、頁編程以及區塊擦除等。


    該芯片由一個微控制器控制,SPI接口有種工作模式分別為;CPOL=0,,CPHA=O和CPOL=1,CPHA=1,兩者區別為在SPI主端不傳數據時,時鐘的電平前者為0,后者為1。在里采用CPOL=0,CPHA=模式。
3. 2 工程環境設置及SPI接口設計
    Lattice公司的FPGA工程開發EDA軟件名為ispLEVER,其7.2版本為較新版本。該版本集合了IPExpress,Reveal Logic Analyzer等實用工具,可用于添加Lattice公司開發的IP核以及在線邏輯仿真等。ispLEVER 7.2的默認仿真工具為Active-HDL仿真器,由于需要采用Model-Sim仿真器,因此安裝ModleSim 6.2b版本。對仿真軟件成功安裝后,加入pcsc_mti_work,pcsc_mti_work_revA,ecp2m_vlg和pmi_work四個仿真庫并進行編譯。編譯完成后啟動ispLEVER 7.2,在"options"菜單中修改環境變量和默認仿真工具,使得ModelSim連接圖標出現在工具欄中成為工程的仿真工具。
    進入ispLEVER 7.2的編輯界面,開始建立工程,首先選擇器件型號,這里采用LatticeECP2M系列中的LFE2MSOE型號芯片,并選擇封裝類型為FPGAB-GA672,速度級別為-5。器件選定后,建立FLASH_contro]工程文件和testbench測試文件,同時用IP Express生成讀/寫RAM模塊。
    在主程序中編寫RAM控制段和SPI接口控制程序段,用狀態機完成對RAM的控制,狀態機在idle,read,write和config之間跳轉。在向FLASH寫數據時,應先寫入寫使能指令,完成后寫入頁編程指令,隨后寫入地址,最后寫入數據;從FLASH讀數據的過程大致相同,但應首先寫入讀使能指令,然后寫入讀數據指令。應當注意的是讀指令的時鐘頻率低于寫指令,具體頻率要求可參照芯片說明手冊。
3.3 SPI接口功能驗證
    在線邏輯分析儀(reveal logic analyzer)是較為先進的EDA工具,它能提類似于功能仿真的波形示意圖,這些波形是通過在FPGA芯片運行過程中實時抓取出來的。它真實地再現了FPGA芯片內部的動態信號狀況,使工程開發人員能直觀的發現問題,修正邏輯。仿真綜合通過后,將程序下載至FPGA芯片中,用Reveal Inserter插入在線邏輯分析信號,采樣點數設定為2 048個點,分析信號會在工程目錄中生成一個相關文件,綜合后將數據文件下載至Lattice芯片中,采用人工觸發后,即可在在線邏輯分析儀中觀察信號波形。截取的波形如圖4所示。


    從圖4可看出,在時鐘C的8個有效周期寫入寫使能指令,寫使能指令通過D信號線串行進入FLASH芯片,指令的寫入過程應保證S信號低電平,8個周期的指令輸入完畢后S回復為高電平。在SPI總線主端的RAM控制信號由狀態機控制,instructions為8位的寄存器,用于存儲指令;RAMl_dout對應ram_wr的輸出端口。
    圖5為數據指令后讀出數據的波形圖,數據從Q信號線讀出并進入ram_rd。在讀數據周期S保持低電平,數據的輸出在時鐘的下降沿發生,在讀指令完成后,state狀態寄存器回復至空閑狀態。



4 結語
    SPI總線是當前流行的串行接口的一種,它滿足工程設計的要求,使開發人員能夠簡單迅速的完成設計工作,實現功能要求。將它與FPGA編程結合,利用FPGA的靈活性,使電子設計能夠在很短的周期內完成,符合當今電子設計的要求。本文通過實現帶有SPI總線接口的FLASH芯片功能,驗證了基于FPGA設計的SPI接口的正確,實現了FLASH芯片的讀/寫功能。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 99久久人妻精品免费一区| 噜噜噜私人影院| 亚洲毛片免费视频| 美女被免费网站91色| 国产又爽又黄又无遮挡的激情视频 | 国产成人精品美女在线| 2018中文字幕在线| 国精产品一区一区三区MBA下载 | 野花国产精品入口| 国产成人精品久久| 亚洲激情小视频| 国产精品成人一区二区三区| 97人伦影院a级毛片| 大肉大捧一进一出好爽视频动漫| 一级做受视频免费是看美女| 美国十次啦大导航| 国产丰满麻豆videossexhd| 黄色大片视频网站| 国产日韩欧美三级| 亚洲综合色区中文字幕| 国产精品密蕾丝视频| 51国产偷自视频区视频| 国内最真实的XXXX人伦| 中文字幕在线观看不卡视频| 欧美国产激情二区三区| 亚洲欧美日韩久久精品第一区| 熟妇人妻中文字幕| 人妻在线无码一区二区三区| 看一级毛片国产一级毛片| 国产大片内射1区2区| 黄频免费观看在线播放| 国产日产欧产精品精品电影| www.四虎影视| 国产精品东北一极毛片| 俄罗斯精品bbw| 国产精品亚洲片在线| 两个人看的视频播放www| 女人让男人桶30分钟在线视频| 一级成人毛片免费观看| 忘忧草日本在线播放www| 久久国产精品鲁丝片|