www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]摘要: SPI 總線是一個同步串行接口的數(shù)據(jù)總線,具有全雙工、信號線少、協(xié)議簡單、傳輸速度快等特點。介紹了SPI 總線的結(jié)構(gòu)和工作原理,對4 種工作模式的異同進行了比較,并著重分析了SPI 總線的工作時序。利用Veril

摘要: SPI 總線是一個同步串行接口的數(shù)據(jù)總線,具有全雙工、信號線少、協(xié)議簡單、傳輸速度快等特點。介紹了SPI 總線的結(jié)構(gòu)和工作原理,對4 種工作模式的異同進行了比較,并著重分析了SPI 總線的工作時序。利用Verilog 硬件描述語言編寫出SPI 總線的主機模塊,經(jīng)ModelSim 仿真得出相應(yīng)的仿真波形。根據(jù)仿真波形分析,所設(shè)計的SPI 主機模塊的功能是正確的。最后在Xilinx ISE 中對該模塊進行綜合與實現(xiàn),并在FPGA 上完成了下載與驗證。

引言

SPI(串行外圍接口)總線,是一個同步串行接口的數(shù)據(jù)總線,它具有全雙工、信號線少、協(xié)議簡單、傳輸速度快等優(yōu)點。由于串行總線的信號線比并行總線更少、更簡單,越來越多的系統(tǒng)放棄使用并行總線而采用串行總線。在眾多串行總線中,SPI 總線與I2C 總線、CAN 總線、USB 等其他常用總線相比有很大優(yōu)勢,如SPI 總線的數(shù)據(jù)傳輸速度可達若干Mbps, 比I2C 總線快很多。SPI 總線最典型的應(yīng)用就是主機與外圍設(shè)備(如EEPROM、Flash RAM、A/D 轉(zhuǎn)換器、LED 顯示器、實時時鐘等)之間的通信。

FPGA(現(xiàn)場可編程門陣列)是在PAL、GAL、PLD 等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物,具有設(shè)計周期短、可重復編程、靈活性強等特點。用FPGA 設(shè)計的SPI 總線具有可擴展性強、便于修改等優(yōu)點。只要對設(shè)計做簡單的改動,即可對SPI 總線的數(shù)據(jù)位數(shù)、工作模式等進行擴展,充分發(fā)揮了FPGA 的優(yōu)勢。

1 SPI 總線的結(jié)構(gòu)和工作原理

SPI 總線區(qū)分主機(Master)和從機(Slave)兩部分,它的結(jié)構(gòu)框圖如圖1 所示。


圖1 SPI 總線結(jié)構(gòu)框圖

主機和從機之間通過4 根信號線連接,分別是SCK、MOSI、MISO、CS,它們的定義如下。

SCK:同步時鐘信號,用來同步主機和從機的數(shù)據(jù)傳輸,由主機控制輸出,從機在SCK 的邊沿接收和發(fā)送數(shù)據(jù);MOSI:主機輸出、從機輸入信號,主機在上升沿(或下降沿)通過該信號線發(fā)送數(shù)據(jù)給從機,從機在下降沿(或上升沿)通過該信號線接收該數(shù)據(jù);MISO:主機輸入、從機輸出信號,從機在上升沿(或下降沿)通過該信號線發(fā)送數(shù)據(jù)給主機,主機在下降沿(或上升沿)通過該信號線接收該數(shù)據(jù);CS:從機片選信號,由主機控制輸出。

其工作原理是: 當沒有數(shù)據(jù)需要在主機和從機之間傳輸時,主機控制SCK 輸出空閑電平,CS 輸出無效電平,SPI 總線處于空閑狀態(tài);當有數(shù)據(jù)需要傳輸時,主機控制CS 輸出有效電平,SCK輸出時鐘信號,SPI 總線處于工作狀態(tài);在某個時鐘邊沿,主機和從機同時發(fā)送數(shù)據(jù),將數(shù)據(jù)分別傳輸?shù)組OSI 和MISO 上;在下一個時鐘邊沿,主機和從機同時接收數(shù)據(jù),分別將MISO 和MOSI上的數(shù)據(jù)接收并存儲;當數(shù)據(jù)全部傳輸完畢時,主機控制SCK 輸出空閑電平,CS 輸出無效電平,SPI 總線重新回到空閑狀態(tài)。至此,一個完整的SPI 總線數(shù)據(jù)傳輸過程完成。

SPI 總線有兩個控制位:CPOL 和CPHA.將SCK 的空閑電平用IDLE 表示,非空閑電平用ACTIVE 表示。CPOL 用來選擇IDLE 的電平值。當CPOL=0 時,IDLE=0;當CPOL=1 時,IDLE=1.

CPHA 用來選擇接收數(shù)據(jù)的時刻。當CPHA=0 時, 接收時刻是IDLE-ACTIVE 邊沿;當CPHA=1 時,接收時刻是ACTIVE-IDLE邊沿。根據(jù)CPOL 和CPHA 的取值情況,SPI 總線共有4 種不同的工作模式。圖2 給出了SPI 總線在不同工作模式下的工作時序。


圖2 SPI 總線的工作時序

當CPHA=0 時,MOSI 和MISO 的時序有所不同,主要是第一個數(shù)據(jù)位MSB 的發(fā)送時刻不同。MOSI 的MSB 在SCK 的第一個IDLE-ACTIVE 邊沿的前半個周期由主機發(fā)送到MOSI 上;而MISO 的MSB 則在CS 信號的下降沿由從機發(fā)送到MISO 上。當CPHA=1 時,MOSI 和MISO 的時序完全相同。

2 SPI 主機模塊的設(shè)計

本文設(shè)計的SPI 主機模塊主要完成以下工作:

(1) 將主機收到的8 位并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),并發(fā)送給從機;(2) 接收來自從機的串行數(shù)據(jù),將其轉(zhuǎn)換為并行數(shù)據(jù),通過并行端口輸出;(3) 輸出從機所需要的輸入信號、時鐘信號SCK 和片選信號CS。

在數(shù)據(jù)串并轉(zhuǎn)換的過程中, 必須用到寄存器來存放臨時數(shù)據(jù)。一般情況下,發(fā)送數(shù)據(jù)需要1 個發(fā)送寄存器,接收數(shù)據(jù)需要1個接收寄存器,則至少需要2 個寄存器。在SPI 總線中,每發(fā)送1個數(shù)據(jù)位則發(fā)送寄存器多出1 個空閑位, 正好可以在半個周期后用來接收1 個數(shù)據(jù)位。為了減少資源消耗,可以用1 個移位寄存器來代替2 個獨立的接收寄存器和發(fā)送寄存器。圖3 所示為SPI 總線的硬件結(jié)構(gòu)框圖,其中MaSTer 和Slave 各使用1 個移位寄存器接收和發(fā)送數(shù)據(jù)。


圖3 SPI 總線的硬件結(jié)構(gòu)

為了實現(xiàn)對模塊的控制,除了clk、cs、sck、miso、mosi 這些信號之外,還需要一些其他信號。其中,rst 是復位信號,用于SPI 模塊的初始化。en 是模塊的使能信號,當en=1 時模塊開始工作。

data_i 是待發(fā)送數(shù)據(jù)的8 位并行輸入端。data_o 是用于接收和發(fā)送數(shù)據(jù)的移位寄存器, 也是數(shù)據(jù)傳輸完成時已接收數(shù)據(jù)的8位并行輸出端,圖4 是所設(shè)計的SPI 主機模塊的框圖。


圖4 SPI 模塊框圖

[!--empirenews.page--]

下面是用Verilog HDL 設(shè)計的SPI 主機模塊(CPOL =0,CPHA=1)的主要程序,程序中省去了變量的聲明,并在注釋中對這些變量作了說明。

[!--empirenews.page--]


3 設(shè)計的仿真、綜合與實現(xiàn)

通過編寫測試平臺,并使用Mentor Graphics 公司的仿真工具ModelSim SE PLUS 6.1f 對該SPI 模塊進行仿真,得到的仿真波形如圖5 所示。


圖5 SPI 模塊的仿真波形

從圖中可以看出,sck 的空閑電平IDLE=0,接收數(shù)據(jù)時刻是下降沿即ACTIVE-IDLE 邊沿, 故該SPI 模塊的工作模式是CPOL=0,CPHA=1,與設(shè)計一致。當en=0 時,cs=1,SPI 總線處于空閑狀態(tài)。當en=1 時,在下降沿cs=0,sck 輸出時鐘信號,總線數(shù)據(jù)傳輸開始。同時,data_o=data_i, 移位寄存器存入待發(fā)送數(shù)據(jù)11010111.在第1 個周期上升沿,主機通過mosi 發(fā)送data_o 最高位1 至從機。在第1 個周期下降沿,data_o 左移一位,多出一個空閑位data_o[0],主機通過miso 接收從機發(fā)送的數(shù)據(jù)最高位1,并將其存入data_o[0],data_o=10101111.依此類推,后面7 個周期的數(shù)據(jù)傳輸過程與第1 個周期類似。8 位數(shù)據(jù)全部傳輸完成之后,cs=1,一個完整的SPI 總線傳輸過程結(jié)束??梢园l(fā)現(xiàn),data_o中的數(shù)據(jù)被一個一個從主機發(fā)送到從機,同時data_o 也被用來存儲從機發(fā)送的數(shù)據(jù)。8 個周期完成之后,data_o 中存儲的數(shù)據(jù)正是從機發(fā)送的數(shù)據(jù)10101101.綜合以上分析,該SPI 模塊的功能是正確的。

[!--empirenews.page--]

通過實驗,在Xilinx ISE 9.1i 中完成了對該模塊的綜合與實現(xiàn),并下載到Digilent 公司的FPGA 開發(fā)板Spartan-3E Starter 上進行驗證,實驗結(jié)果正確。綜合工具使用ISE 自帶的XST,下載工具使用ISE 自帶的iMPACT.

4 結(jié)語

本文用Verilog 硬件描述語言設(shè)計了一個符合SPI 總線規(guī)范的SPI 主機模塊,使用仿真工具ModelSim 對其進行仿真并給出了仿真波形。在Xilinx ISE 中對該模塊進行綜合與實現(xiàn),并在FPGA 上完成了下載與驗證。該SPI 主機模塊的功能正確,工作穩(wěn)定,可擴展性強。由于SPI 總線應(yīng)用范圍很廣,利用FPGA 可重復配置的優(yōu)點,該模塊可以很方便地應(yīng)用于各種場合。本文作者創(chuàng)新點:根據(jù)SPI 總線規(guī)范,用Verilog HDL 設(shè)計并實現(xiàn)了一個帶有移位寄存器的SPI 總線模塊,具有簡潔高效、便于修改、可擴展性強等特點。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉