一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的SPI Master Interface設(shè)計(jì)

電子工程師 ? 來源:未知 ? 作者:胡薇 ? 2018-11-05 17:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

4.1 單次發(fā)送(正常時(shí)序)SPI Master控制器檢測(cè)到SPI_start信號(hào)有效,即控制Bram接口讀取配置參數(shù),經(jīng)譯碼后若循環(huán)發(fā)送標(biāo)識(shí)寄存器為低電平,則配合發(fā)送長(zhǎng)度寄存器讀取BRAM中數(shù)據(jù),并進(jìn)行發(fā)送。

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

每增加一個(gè)觸發(fā)器,延時(shí)增加一個(gè)系統(tǒng)時(shí)鐘[6],多路開關(guān)依據(jù)MOSI時(shí)序寄存器中值選擇相應(yīng)觸發(fā)器輸出,產(chǎn)生異常時(shí)序,舉例說明如圖5。

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

4.3 循環(huán)發(fā)送(時(shí)序正常) 每完成一次SPI發(fā)送,發(fā)送次數(shù)計(jì)數(shù)器加1,當(dāng)發(fā)送次數(shù)計(jì)數(shù)器中的值與循環(huán)發(fā)送次數(shù)寄存器中值相等時(shí),完成循環(huán)發(fā)送。發(fā)送次數(shù)由循環(huán)發(fā)送次數(shù)寄存器值決定,循環(huán)發(fā)送間隔由發(fā)送間隔計(jì)數(shù)器決定。

4.4 循環(huán)發(fā)送(時(shí)序異常) 類似循環(huán)發(fā)送(正常時(shí)序),異常時(shí)序產(chǎn)生類似單次發(fā)送(異常時(shí)序)。 實(shí)現(xiàn)的目標(biāo)器件是Xilinx的Virtex2 pro開發(fā)板。

本文已應(yīng)用于中國(guó)科學(xué)院光電研究院測(cè)試平臺(tái)中,實(shí)現(xiàn)了SPI接口以及與其功能相關(guān)的的測(cè)試。 與同類SPI Master相比,發(fā)送間隔可變、精度高,最小間隔僅為1個(gè)SCK時(shí)鐘周期;發(fā)送時(shí)序可變,精度高,為1個(gè)系統(tǒng)時(shí)鐘周期;基本滿足正常、異常以及強(qiáng)度等測(cè)試要求。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618545
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1804

    瀏覽量

    96001

原文標(biāo)題:一種基于FPGA的可配置SPI Master接口設(shè)計(jì)實(shí)現(xiàn)

文章出處:【微信號(hào):FPGAer_Club,微信公眾號(hào):FPGAer俱樂部】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    Gowin SPI Master and Slave參考設(shè)計(jì)

    本次發(fā)布 Gowin SPI Master IP 和 Slave 參考設(shè)計(jì)。Gowin SPI Master IP 和 Slave 參考設(shè)計(jì)可在高云官網(wǎng)下載,參考設(shè)計(jì)可用于仿真,實(shí)例化
    發(fā)表于 10-09 08:01

    FPGASPI復(fù)用配置的編程方法

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

    SPI方式FPGA配置和SPI flash編程

    SPI方式FPGA配置和SPI flash編程
    發(fā)表于 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總線傳輸技術(shù)提供更好的選擇和可行方案

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

    基于FPGA與MCU通信的SPI協(xié)議設(shè)計(jì)

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

    基于FPGASPI協(xié)議及設(shè)計(jì)實(shí)現(xiàn)

    ,F(xiàn)SMC等協(xié)議。本文將基于FPGA來介紹并設(shè)計(jì)標(biāo)準(zhǔn)的SPI總線協(xié)議,實(shí)現(xiàn)FPGA與MCU的數(shù)據(jù)通信。SPI是英語(yǔ)Serial Peripheral
    發(fā)表于 11-05 19:05 ?24次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>SPI</b>協(xié)議及設(shè)計(jì)實(shí)現(xiàn)

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

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

    使用Jtag Master來調(diào)試FPGA程序

    對(duì)FPGA進(jìn)行上板調(diào)試時(shí),使用最多的是SignalTap,但SignalTap主要用來抓取信號(hào)時(shí)序,當(dāng)需要發(fā)送信號(hào)到FPGA時(shí),Jtag Master可以發(fā)揮很好的作用,可以通過Jtag Ma
    的頭像 發(fā)表于 02-16 16:21 ?2809次閱讀
    使用Jtag <b class='flag-5'>Master</b>來調(diào)試<b class='flag-5'>FPGA</b>程序

    Gowin SPI Master/Slave IP用戶指南

    Gowin SPI Master 和 Slave IP 用戶指南主要包括功能簡(jiǎn)介、信號(hào)定義、 工作原理、GUI調(diào)用等,旨在幫助用戶快速了解Gowin SPI Master IP和Sl
    發(fā)表于 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用戶指南

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

    FPGA中關(guān)于SPI的使用

    FPGA中關(guān)于SPI的使用
    的頭像 發(fā)表于 04-12 10:13 ?1148次閱讀

    基于CH347實(shí)現(xiàn)USB擴(kuò)展SPI/I2C/GPIO Master主機(jī)應(yīng)用方案

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

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

    電子發(fā)燒友網(wǎng)為你提供ADI(ADI)MAX17841B: Automotive SPI Communication Interface (ASCI) Data Sheet相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有
    發(fā)表于 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實(shí)現(xiàn)

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