国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

基于SPI串行總線接口的Verilog實現

電子工程師 ? 來源:現代電子技術 ? 作者:孫豐軍;余春暄 ? 2021-05-29 10:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡 介:

集成電路設計越來越向系統級的方向發展,并且越來越強調模塊化的設計。SPI(Serial Peripheral Bus)總線是Motorola公司提出的一個同步串行外設接口,容許CPU 與各種外圍接口器件以串行方式進行通信、交換信息。本文簡述了SPI總線的特點,介紹了其4條信號線,SPI串行總線接口的典型應用。

重點描述了SPI串行總線接口在一款802.11b芯片中的位置,及該接口作為基帶和射頻的通訊接口所完成的功能,并給出了用硬件描述語言Verilog HDL 實現該接口的部分程序。該實現已經在Modelsim 中完成了仿真, 并經過了FPGA 驗證, 最后給出了仿真和驗證的結果。

在SOC設計中,利用EDA 工具設計芯片實現系統功能已經成為支撐電子設計的通用平臺。并逐步向支持系統級的設計方向發展。而且,在設計過程中,越來越強調模塊化設計。

SPI總線是Motorola公司提出的一個同步串行外設接口,具有接口線少、通訊效率高等特點。本文給出的是利用Verilog HDL實現的SPI總線模塊,該模塊是802.11b無線局域網芯片中一個子模塊,該模塊完成了芯片中基帶(base band)與RF的通訊工作。

1 SPI總線接口概述

SPI(Serial Parallel Bus)總線是Motorola公司提出的一個同步串行外設接口,允許CPU 與各種外圍接口器件(包括模/數轉換器、數/模轉換器、液晶顯示驅動器等)以串行方式進行通信、交換信息。他使用4條線:串行時鐘線(SCK)、主機輸入/從機輸出線(MISO)、主機輸出/從機輸入線(MOSI)、低電平有效的使能信號線(CS)。這樣,僅需3~4根數據線和控制線即可擴展具有SPI接口的各種I/O器件 其典型結構如圖1所示。

7a171ac8-bfed-11eb-9e57-12bb97331649.png

SPI總線具有以下特點:

(1)連線較少,簡化電路設計。并行總線擴展方法通常需要8根數據線、8~16根地址線、2~3根控制線。而這種設計,僅需4根數據和控制線即可完成并行擴展所實現的功能。

(2)器件統一編址,并與系統地址無關,操作SPI獨立性好。

(3)器件操作遵循統一的規范,使系統軟硬件具有良好的通用性。

2 SPI總線接口的設計與實現

該模塊是802.1lb無線局域網芯片中的一子模塊,其在芯片中的位置如圖2所示。

7d27bda8-bfed-11eb-9e57-12bb97331649.png

其中base band(基帶)為SPI的主控器(master),RF(射頻)為SPI的受控器(slave)。SPI interface作為baseband與RF的通訊接口,主要完成以下工作:

(1)將從base band接收到的16位的并行數據,轉換為RF所能接收的串行數據,并將該數據根據SPI協議送給RF。

(2)產生RF所需的時鐘信號SCLK,使能信號CSB。

(3)接收從RF傳回的串行數據,并將其轉換為并行數據。

(4)將base band發送的數據,與RF返回的數據進行比較,并把比較結果傳給base band。

下面給出用Verilog HDL語言實現前兩項功能的關鍵程序,相關變量的聲明在此略去。

//generate a counter

always@ (posedge clock or negedge reset)

begin

if(!reset)

counter《= 0;

else if(enable)

begin

if(counter《 53)

counter=counter + 1;

end

end

//generate signal “csb”

always@ (posedge clock or negedge reset)

begin

if(!reset)

csb 《=1;

else if(counter》= 1 && counter 《= 50)

csb = 0;

else

csb = 1;

end

//Generate “sclk”

always@ (posedge clock or negedge reset)

begin

case(counter)

6‘d02: sclk = 1;

6’d05: sclk = 1;

6‘d08: sclk = 1;

6’d11: sclk = 1;

6‘d14: sclk = 1;

6’d17: sclk = 1;

6‘d20: sclk = 1;

6’d23: sclk = 1;

6‘d26: sclk = 1;

6’d29: sclk = 1;

6‘d32: sclk = 1;

6’d35: sclk = 1;

6‘d38: sclk = 1;

6’d41: sclk = 1;

6‘d44: sclk = 1;

6’d47: sclk = 1;

default sclk = 0;

endcase

end

always@ (counter or csb)

begin

if(csb == 0)

case(counter)

6‘h00,

6’h01,

6‘h02,

6’h03:mosi_index = 5‘h00;

6’h04,

6‘h05,

6’h06:mosi_index = 5‘h01;

6’h07,

6‘h08,

6’h09:mosi_index = 5‘h02;

6’h0A,

6‘h0B,

6’h0C:mosi_index = 5‘h03;

6’h0D,

6‘h0E,

6’h0F:mosi_index = 5‘h04;

6’h10,

6‘h11,

6’h12:mosi_index = 5‘h05;

6’h13,

6‘h14,

6’h15:mosi_index = 5‘h06;

6’h16,

6‘h17,

6’h18:mosi_index = 5‘h07;

6’h19,

6‘h1A,

6’h1B:mosi_index = 5‘h08;

6’h1C,

6‘h1D,

6’hlE:mosi_index = 5‘h09;

6’h1F,

6‘h20,

6’h21:mosi_index = 5‘h0A ;

6’h22,

6‘h23,

6’h24:mosi_index = 5‘h0B;

6’h25,

6‘h26,

6’h27:mosi_index = 5‘h0C ;

6’h28,

6‘h29,

6’h2A:mosi_index = 5‘h0D ;

6’h2B,

6‘h2C,

6’h2D:mosi_index = 5‘h0E;

6’h2E,

6‘h2F,

6’h30:mosi_index = 5‘h0F;

default:mosi_index = 5’h00;

endcase

else

mosi_index = 5‘h00:

end

assign mosi=spi_data[mosi_index3];

用Verilog HDL實現的SPI總線接口模塊,在ModelSim 中編譯、調試,并做了前仿真。

前仿真通過后,又在Altera公司的EPXA10 Develop Board上做了FPGA驗證,結果與在ModelSim 中的仿真結果一致。最后在base band與RF的聯合調試過程中,該SPI總線接口模塊達到了預期的要求。

編輯:jq

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

    關注

    68

    文章

    11277

    瀏覽量

    224942
  • soc
    soc
    +關注

    關注

    40

    文章

    4576

    瀏覽量

    229106
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1885

    瀏覽量

    101213
  • CS
    CS
    +關注

    關注

    0

    文章

    55

    瀏覽量

    25524
  • MOSI
    +關注

    關注

    0

    文章

    5

    瀏覽量

    4335

原文標題:SPI串行總線接口的Verilog實現

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入解析Microchip 25AA128/25LC128 128K SPI總線串行EEPROM

    深入解析Microchip 25AA128/25LC128 128K SPI總線串行EEPROM 一、引言 在電子設計領域,串行EEPROM是一種常用的非易失性存儲器,廣泛應用于各種需
    的頭像 發表于 02-09 16:50 ?255次閱讀

    使用PicoScope示波器解碼SPI總線信號

    串行外設接口SPI, Serial Peripheral Interface)總線最早由 Motorola 開發,用于其微控制器產品。由于其結構簡單、
    的頭像 發表于 02-04 09:49 ?7158次閱讀
    使用PicoScope示波器解碼<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>信號

    瑞芯微(EASY EAI)RV1126B SPI使用

    1.SPI簡介SPI串行外設接口(SerialPeripheralInterface)的縮寫,是Motorola公司推出的一種同步串行
    的頭像 發表于 01-03 14:00 ?1732次閱讀
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>SPI</b>使用

    PCA9958:24通道SPI串行總線63 mA/5.5 V恒流LED驅動器的深度解析

    PCA9958:24通道SPI串行總線63 mA/5.5 V恒流LED驅動器的深度解析 在LED驅動領域,NXP的PCA9958是一款極具特色的24通道SPI
    的頭像 發表于 12-24 15:05 ?456次閱讀

    SPI、I2C、UART三種串行總線的區別與對比

    1)概念定義 SPI(Serial Peripheral Interface:串行外設接口); I2C(INTER IC BUS:意為IC之間總線) UART(Universa
    發表于 11-20 07:19

    數字電壓表設計教程之SPI協議詳解

    SPI(Serial Peripheral Interface)是串行外設接口的縮寫,SPI是一種高速、主從模式、全雙工、同步的串行通信
    的頭像 發表于 09-06 10:08 ?4398次閱讀
    數字電壓表設計教程之<b class='flag-5'>SPI</b>協議詳解

    ADUM4150用于SPI高速接口的5kV專用隔離器技術手冊

    ADuM4150是一款5kV rms、6通道SPIsolator ^?^ 數字隔離器,針對隔離式串行外設接口(SPI)進行了優化。(提供3.75kV rms型號)。這款器件基于ADI公司
    的頭像 發表于 06-04 10:55 ?884次閱讀
    ADUM4150用于<b class='flag-5'>SPI</b>高速<b class='flag-5'>接口</b>的5kV專用隔離器技術手冊

    ADUM4154用于SPI接口的5 kV專用隔離器技術手冊

    ADuM4154是一款5kV rms、7通道SPIsolator ^?^ 數字隔離器,針對串行外設接口(SPI)進行了優化,并最多可以支持4個從器件。 (提供3.75kV rms型號)。這款器件
    的頭像 發表于 06-04 10:48 ?1093次閱讀
    ADUM4154用于<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>的5 kV專用隔離器技術手冊

    LTM2895 100MHz隔離型DAC SPI串行接口技術手冊

    LTM2895 是一款采用 DAC 控制信號的高速隔離型 μModule ^?^ (微型模塊) SPI 接口,該器件專為隔離LTC 的通用型 DAC 系列和隔離通用型 SPI 接口而設
    的頭像 發表于 06-03 10:04 ?1237次閱讀
    LTM2895 100MHz隔離型DAC <b class='flag-5'>SPI</b><b class='flag-5'>串行</b><b class='flag-5'>接口</b>技術手冊

    MAX3420E USB外設控制器,SPI接口技術手冊

    MAX3420E包含實現USB 2.0全速USB外設所需的數字邏輯電路和模擬電路。全速收發器具有±15kV ESD保護和可編程的USB連接和斷開特性。內部的串行接口引擎(SIE)負責處理底層USB
    的頭像 發表于 05-23 11:35 ?1039次閱讀
    MAX3420E USB外設控制器,<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>技術手冊

    MAX3421E USB外設/主機控制器,SPI接口技術手冊

    串行接口引擎(SIE)處理底層USB協議,如錯誤校驗和總線重試。通過頻率高達26MHz的SPI?接口訪問寄存器組,
    的頭像 發表于 05-22 16:39 ?1558次閱讀
    MAX3421E USB外設/主機控制器,<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>技術手冊

    基于RK3576開發板的SPI使用說明

    SPI串行外設接口(Serial Peripheral Interface)的縮寫,是 Motorola 公司推出的一種同步串行接口技術,
    的頭像 發表于 05-07 10:31 ?1609次閱讀
    基于RK3576開發板的<b class='flag-5'>SPI</b>使用說明

    串行通信接口SPI與QSPI的區別

    在嵌入式系統的世界里,選擇正確的通信技術可以對項目的性能和可擴展性產生重大影響。讓我們比較兩個流行的串行通信接口SPI串行外設接口)和Q
    的頭像 發表于 04-09 15:24 ?3262次閱讀
    <b class='flag-5'>串行</b>通信<b class='flag-5'>接口</b><b class='flag-5'>SPI</b>與QSPI的區別

    看完這篇,SPI其實也很簡單嘛(可下載)

    首先我們來簡單介紹一下SPISPI串行外設接口(SerialPeripheralInterface)簡單來講就是它一種高速的,全雙工,同步的通信
    發表于 03-26 14:29 ?2次下載