精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的SPI Master Interface設計

電子工程師 ? 來源:未知 ? 作者:胡薇 ? 2018-11-05 17:42 ? 次閱讀

隨著現場可編程門陣列(FPGA)芯片在商業、軍事、航空航天等領域的廣泛應用,其可靠性和可測試性顯得尤為重要。對設計人員來說,FPGA的使用相當靈活。然而,正是這種應用的不確定性和重復可編程性,增加了芯片的測試難度。其核心問題是建立什么樣的測試模型才能使故障激活。根據需求,FPGA的測試大體可分為面向制造的測試過程(MTP)和面向應用的測試過程(ATP)兩類。MTP主要是從制造商的角度來測試,ATP是在應用級上的測試,也就是把FPGA配置為特定的功能進行測試,具有很強的針對性[1]。本文介紹ATP測試中SPI Master 模型的建立。在測試FPGA設計的集成電路時,對設計電路的性能進行實時測試是必不可少的環節[2]。這就需要設計一種接口電路,將測試數據送入設計電路。1 SPI總線協議介紹SPI(Serion Perpheral Interface)[3]是一種高速的、全雙工、同步的通信總線,并且在芯片的管腳上只占用4根線,節約了芯片的管腳,同時為PCB的布局節省空間,提供方便,正是出于這種簡單易用的特性,越來越多的芯片集成了這種通信協議。SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多個從設備,需要至少4根線,事實上3根也可以(用于單向傳輸時,也就是半雙工方式)。也是所有基于SPI的設備共有,分別是MISO(數據輸入),MOSI(數據輸出),SCK(時鐘),NSS(片選),如圖1所示。

(1)MOSI:主設備數據輸出,從設備數據輸入。(2)MISO:主設備數據輸入,從設備數據輸出。(3)SCK:時鐘信號,由主設備產生。(4)NSS:從設備使能信號,由主設備控制。 使能信號低電平有效,當使能信號為低電平時,輸出數據(MOSI)在串行時鐘(SCK)下降沿變化,輸入數據(MISO)在(SCK)上升沿變化。2 SPI Master原理 本文介紹的基于FPGA的、可配置的SPI Master接口設計,能滿足測試的各種正常、異常以及強度測試要求。此SPI接口模塊可設置為單次發送、循環發送(發送間隔可設);發送數據長度可變;串行時鐘線(SCK)與輸出數據線(MOSI)時序關系可變;串行時鐘線(SCK)與使能信號(NSS)時序關系可變。 一般情況下,為了SPI數據發送的靈活性,SPI發送次數及發送間隔是由軟件實現的,當需要循環發送且發送間隔達到微秒甚至納秒數量級時,軟件很難實現。本文將SPI發送次數以及發送間隔集成到SPI Master模塊中,使SPI發送間隔可變且最小為一個SCK周期。按照SPI總線協議設計的SPI Master輸出數據(MOSI)在串行時鐘(SCK)下降沿變化,不能進行異常時序測試,而異常時序在FPGA[4,5]的接口測試中又最為重要,故本文利用觸發器特性設計電路,使SPI發送數據時序可變,精度為1個系統時鐘周期。3 SPI Master 模塊結構圖SPI Master模塊由Bram接口、配置寄存器控制器三部分組成,如圖2所示。此模塊系統時鐘為100 MHz。BRAM接口:控制配置參數以及SPI數據的讀寫配置參數及SPI數據在BRAM中存儲結構如表1所示。

控制器:解析配置寄存器,產生發送時序,控制BRAM接口進行數據讀寫。 對配置寄存器說明如下。(1)循環發送標識寄存器:1 bit,高電平標識循環發送,低電平標識單次發送。(2)循環發送次數寄存器:15 bit,若循環發送標識為高電平時,此寄存器值為要發送的數據長度,單位:B;發送模塊中包含一發送次數計數器,NSS從高電平變為低電平,發送次數計數器加1。(3)循環發送間隔寄存器:16 bit,若循環發送標識為高電平時,此寄存器值為每兩次發送間隔,單位:10 ns。(最小間隔為1個SCK周期,若小于1個SCK周期,則從設備不能檢測到NSS信號變化),發送模塊中包含1個發送間隔計數器,從一次SPI發送結束開始計數,直到與循環發送間隔寄存器中值相等,啟動下次發送。(4)SCK頻率寄存器:16 bit,此寄存器值表示串行時鐘SCK周期,單位為10 ns(系統時鐘為100 MHz,精度為20 ns);時序模塊中包含一分頻模塊,SCK周期=(SCK頻率寄存器)×10 ns。(5)MOSI時序寄存器:8 bit,此寄存器值表示MOSI變化與SCK下降沿間隔時間,單位:10 ns(系統時鐘為100 MHz,因此最小間隔為10 ns)。(6)數據長度寄存器:16 bit,此寄存器值表示要發送數據的長度,單位:B。(7)NSS時序寄存器:8 bit,此寄存器值表示NSS變化與SCK下降沿間隔時間,單位:10 ns(系統時鐘為100 MHz,因此最小間隔為10 ns)。4 SPI Master模塊功能介紹(1)SPI循環發送次數可變,范圍:1~32 767;(2)SPI數據發送長度可變,范圍:1~65 535,單位:B;(3)SPI循環發送間隔可變,范圍:(1個SCK周期)~(65 536×10 ns),實現了連續發送,即一次SPI發送結束后下一SCK時鐘立即啟動下次SPI發送;(4)MOSI與SCK時序關系可變,NSS與SCK時序關系可變,SPI總線為下降沿發送,上升沿接收,故MOSI、NSS在SCK下降沿后半個周期可調即可。SPI功能流程如圖3所示,FPGA上電復位后不斷檢測SPI_start信號,當SPI_start信號有效時(高電平)啟動SPI發送,讀取BRAM中的配置參數,進行譯碼,依據譯碼后數據長度值讀取BRAM中數據,按照SPI協議發送數據;完成一次SPI發送后判斷是否為循環發送,若為循環發送則啟動下一次SPI發送,直到發送次數等于循環發送次數寄存器值,其中發送間隔由循環發送間隔寄存器值決定。

4.1 單次發送(正常時序)SPI Master控制器檢測到SPI_start信號有效,即控制Bram接口讀取配置參數,經譯碼后若循環發送標識寄存器為低電平,則配合發送長度寄存器讀取BRAM中數據,并進行發送。

4.2 單次發送(異常時序)MOSI異常時序:正常情況下MOSI在SCK下降沿變化,此設計采用一帶抽頭的序列寄存器產生異常時序,如圖4。

每增加一個觸發器,延時增加一個系統時鐘[6],多路開關依據MOSI時序寄存器中值選擇相應觸發器輸出,產生異常時序,舉例說明如圖5。

圖5中sys_clk為系統時鐘頻率100 MHz,NSS為使能信號;MOSI為串行輸出信號;當SCK頻率寄存器為10時,SPI串行時鐘SCK周期=(SCK頻率寄存器)×10 ns=100 ns,即SCK頻率為10 MHz;當MOSI時序寄存器值為4時,MOSI在SCK下降沿后4個sys_clk開始變化。

4.3 循環發送(時序正常) 每完成一次SPI發送,發送次數計數器加1,當發送次數計數器中的值與循環發送次數寄存器中值相等時,完成循環發送。發送次數由循環發送次數寄存器值決定,循環發送間隔由發送間隔計數器決定。

4.4 循環發送(時序異常) 類似循環發送(正常時序),異常時序產生類似單次發送(異常時序)。 實現的目標器件是Xilinx的Virtex2 pro開發板。

本文已應用于中國科學院光電研究院測試平臺中,實現了SPI接口以及與其功能相關的的測試。 與同類SPI Master相比,發送間隔可變、精度高,最小間隔僅為1個SCK時鐘周期;發送時序可變,精度高,為1個系統時鐘周期;基本滿足正常、異常以及強度等測試要求。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21678

    瀏覽量

    602037
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1701

    瀏覽量

    91345

原文標題:一種基于FPGA的可配置SPI Master接口設計實現

文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    串行外設接口(Serial Peripheral Interface Master) Xilinx提供

    串行外設接口(Serial Peripheral Interface Master) Xilinx提供
    發表于 08-17 10:23

    基于FPGASPI接口設計方法

    /O的 FPGA,可滿足10Gb/s以上的通信系統的要求;而且用FPGA解決接口不兼容器件間的通信問題。因此本文 將提出一種新的基于FPGASPI 接口設計方法。
    發表于 05-28 05:00

    Gowin SPI Master and Slave參考設計

    本次發布 Gowin SPI Master IP 和 Slave 參考設計。Gowin SPI Master IP 和 Slave 參考設計可在高云官網下載,參考設計可用于仿真,實例化
    發表于 10-09 08:01

    FPGASPI復用配置的編程方法

    FPGASPI復用配置的編程方法  SPI(Serial Peripheral InteRFace,串行外圍設備接口)是一種高速、全雙工、同步的通信總線,在芯片的引腳上只占用4根線
    發表于 01-06 14:48 ?3358次閱讀
    <b class='flag-5'>FPGA</b>中<b class='flag-5'>SPI</b>復用配置的編程方法

    SPI方式FPGA配置和SPI flash編程

    SPI方式FPGA配置和SPI flash編程
    發表于 05-16 18:01 ?165次下載
    <b class='flag-5'>SPI</b>方式<b class='flag-5'>FPGA</b>配置和<b class='flag-5'>SPI</b> flash編程

    基于FPGASPI總線傳輸技術提供更好的選擇和可行方案

    SPI(Serial peripheral interface——串行設備接口)是摩托羅拉公司推出的一種同步串行通信接口。用于MCU和外圍擴展芯片之間的串行連接,現已發展成為一種工業標準 。一路
    發表于 07-14 17:50 ?1038次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>SPI</b>總線傳輸技術提供更好的選擇和可行方案

    基于FPGA與MCU通信的SPI協議設計

    typora-copy-images-to: typora_picture基于FPGA與MCU通信的SPI協議設計1. SPI總線協議介紹及硬件設計1.1 SPI總線協議介紹及硬件設計
    發表于 11-05 15:35 ?16次下載
    基于<b class='flag-5'>FPGA</b>與MCU通信的<b class='flag-5'>SPI</b>協議設計

    基于FPGASPI協議及設計實現

    ,FSMC等協議。本文將基于FPGA來介紹并設計標準的SPI總線協議,實現FPGA與MCU的數據通信。SPI是英語Serial Peripheral
    發表于 11-05 19:05 ?24次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>SPI</b>協議及設計實現

    DSP與FPGASPI通信(DSP為主、FPGA為從)

    DSP芯片(master):TMS320F28069FPGA芯片(slave):Spartan-xc6slx25-2ftg256SPI協議:SCK:5MHz數據長度:8ByteFalling
    發表于 12-05 17:21 ?42次下載
    DSP與<b class='flag-5'>FPGA</b>間<b class='flag-5'>SPI</b>通信(DSP為主、<b class='flag-5'>FPGA</b>為從)

    使用Jtag Master來調試FPGA程序

    FPGA進行上板調試時,使用最多的是SignalTap,但SignalTap主要用來抓取信號時序,當需要發送信號到FPGA時,Jtag Master可以發揮很好的作用,可以通過Jtag Ma
    的頭像 發表于 02-16 16:21 ?2350次閱讀
    使用Jtag <b class='flag-5'>Master</b>來調試<b class='flag-5'>FPGA</b>程序

    Gowin SPI Master/Slave IP用戶指南

    Gowin SPI Master 和 Slave IP 用戶指南主要包括功能簡介、信號定義、 工作原理、GUI調用等,旨在幫助用戶快速了解Gowin SPI Master IP和Sl
    發表于 09-15 10:13 ?0次下載
    Gowin <b class='flag-5'>SPI</b> <b class='flag-5'>Master</b>/Slave IP用戶指南

    Gowin SPI Nor Flash Interface IP用戶指南

    電子發燒友網站提供《Gowin SPI Nor Flash Interface IP用戶指南.pdf》資料免費下載
    發表于 09-16 14:23 ?3次下載
    Gowin <b class='flag-5'>SPI</b> Nor Flash <b class='flag-5'>Interface</b> IP用戶指南

    基于CH347實現USB擴展SPI/I2C/GPIO Master主機應用方案

    在安卓/Linux主機上經常會遇到CPU原生SPI/I2C/GPIO Master資源通道不夠或者功性能不滿足實際產品需求的情況,基于USB2.0高速USB轉接芯片CH347,配合廠商提供的USB轉
    的頭像 發表于 04-21 15:33 ?3611次閱讀
    基于CH347實現USB擴展<b class='flag-5'>SPI</b>/I2C/GPIO <b class='flag-5'>Master</b>主機應用方案

    MAX17841B: Automotive SPI Communication Interface (ASCI) Data Sheet MAX17841B: Automotive SPI Communication Interface (ASCI) Data Sheet

    電子發燒友網為你提供ADI(ADI)MAX17841B: Automotive SPI Communication Interface (ASCI) Data Sheet相關產品參數、數據手冊,更有
    發表于 10-16 19:15
    MAX17841B: Automotive <b class='flag-5'>SPI</b> Communication <b class='flag-5'>Interface</b> (ASCI) Data Sheet MAX17841B: Automotive <b class='flag-5'>SPI</b> Communication <b class='flag-5'>Interface</b> (ASCI) Data Sheet

    spi master接口的fpga實現

    前言 當你器件的引腳賊少的時候,需要主機和從機通信,spi就派上了用場,它可以一對多,但只是片選到的從機能和主機通信,其他的掛機。 spi:serial peripheral interface
    的頭像 發表于 11-16 10:35 ?253次閱讀
    <b class='flag-5'>spi</b> <b class='flag-5'>master</b>接口的<b class='flag-5'>fpga</b>實現