《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 一種3線制半雙工SPI接口設(shè)計
一種3線制半雙工SPI接口設(shè)計
永琳,丁一
摘要: 本SPI接口模塊已成功應(yīng)用在一個射頻芯片中,以硬IP的形式集成進射頻模塊中。SPI接口電路在0.18 μm工藝下實現(xiàn)后的版圖總尺寸約為240 μm×460 μm,最高工作頻率原高于10 MHz的設(shè)計上限,相應(yīng)在10 MHz下的功耗約為2 mW。
Abstract:
Key words :

  串行外圍設(shè)備接口SPI(serial peripheralinterface)總線技術(shù)是MOTOROLA公司推出的一種微處理器、微控制器及其外設(shè)間的一種全/半雙工同步串行數(shù)據(jù)接口標準,具有連接線少、傳輸效率高等特點,因其硬件功能很強,與SPI有關(guān)的軟件就相當簡單,使CPU有更多的時間處理其他事務(wù)。

  SPI接口一般采用4條連接線:串行時鐘線(SCK)、主機輸出/從機輸入數(shù)據(jù)線(MOSI)、主機輸入/從機輸出數(shù)據(jù)線(MISO)和低電平使能的從機選擇線(SS),有的還帶有中斷信號線(INT),半雙工或單向模式則不需要主機輸出/從機輸入數(shù)據(jù)線(MOSI)。為了在減少引腳的基礎(chǔ)上完成主從機的雙向通訊,本文采用半雙工機制實現(xiàn)了一種3線制雙向SPI總線模塊,即通過使能信號實現(xiàn)數(shù)據(jù)傳輸?shù)姆较蚩刂?,因此將主機輸出/從機輸入(MOSI)線和主機輸入/從機輸出線(MISO)線合并為一條雙向信號線。該模塊是某射頻芯片中的接口模塊,其作用是實現(xiàn)基帶芯片對射頻芯片的控制以及數(shù)據(jù)交換,而且為了便于和射頻電路集成,該模塊最終以硬IP形式實現(xiàn)。

  1  SPI總線協(xié)議

  射頻芯片的SPI接口具有兩個主要特征:Slave工作模式和半雙工方式通訊。

  SPI接口信號描述如表1。

   接口時序要求如下:

  1)輸出時序

  當SEN為高電平時,SPI接口處于輸出狀態(tài)。每次數(shù)據(jù)傳輸開始于SCK信號的上升沿。數(shù)據(jù)傳輸過程中,數(shù)據(jù)由SCK信號控制,并遵循下列規(guī)則:數(shù)據(jù)傳輸時,低位在前,高位在后;每個輸出數(shù)據(jù)位在SCK下降沿采樣;當本幀數(shù)據(jù)輸出達到24 bit時,結(jié)束數(shù)據(jù)輸出;當本幀數(shù)據(jù)輸出超過24 bit時,則多余位數(shù)全為高電平。

  2)輸入時序

  當SEN為低電平時,SPI接口處于輸入狀態(tài)。每次數(shù)據(jù)傳輸開始于SEN信號的下降沿,結(jié)束于其上升沿。數(shù)據(jù)傳輸過程中命令和數(shù)據(jù)有SCK和SEN信號控制,并遵循下列規(guī)則:數(shù)據(jù)傳輸時,低位在前,高位在后;每個輸入數(shù)據(jù)在SCK下降沿移入MOSI;當本幀數(shù)據(jù)輸入為24 bit時,當SEN轉(zhuǎn)為高電平時,將已輸入的24 bit數(shù)據(jù)寫入RF IC內(nèi)部寄存器;當本幀數(shù)據(jù)輸入不足24 bit或多于24 bit時,放棄本幀輸入,等待下一幀。

  射頻SPI接口的最大特點就是采用半雙工通訊機制,串行數(shù)據(jù)的輸入/輸出共用一條數(shù)據(jù)線,因此SPI接口數(shù)據(jù)通路的設(shè)計和普通的4線制SPI接口完全不同。

  2  實現(xiàn)方案

  2.1  總體結(jié)構(gòu)

  SPI接口電路主要由讀/寫控制器、串行寄存器組、輸出寄存器組和內(nèi)部定時器四部分構(gòu)成,如圖1所示。

   在SPI接口模塊中,數(shù)據(jù)交換的核心是串行寄存器組,讀、寫控制器根據(jù)外部方向選擇信號SEN交替控制串行寄存器組的輸人和輸出。

  2.2  串行寄存器組

  串行寄存器的作用是接收射頻芯片內(nèi)部狀態(tài)信息并轉(zhuǎn)換成24 bit串行數(shù)據(jù)輸出,以及接收外部串行控制字輸入并轉(zhuǎn)換成30 bit并行數(shù)據(jù)輸入射頻芯片,其基本結(jié)構(gòu)如圖2所示。串行寄存器組是半雙工方式SPI接口設(shè)計的核心,輸入和輸出數(shù)據(jù)共享此數(shù)據(jù)通路,必須保證數(shù)據(jù)傳輸方向的正確切換。本文采用串行寄存器鏈+輸入選擇器方式實現(xiàn)輸入和輸出數(shù)據(jù)間的切換。

   2.3  讀控制器

  讀控制器的作用是在SEN為高電平的周期內(nèi),控制串行寄存器組在第一個SCK上升沿到來時接收指定的24 bit射頻芯片內(nèi)部信號,并將最低位串行輸出,然后在剩下的23個時鐘周期內(nèi)將余下的23 bit數(shù)據(jù)串行輸出,讀控制器結(jié)構(gòu)如圖3所示。

   2.4  寫入寄存器組

  寫入寄存器的作用是在SEN信號的上升沿接收串行寄存器組的輸出,并將結(jié)果寫入射頻芯片的內(nèi)部模塊。其中射頻芯片比較特殊的要求是根據(jù)寫入控制字第7位選擇將串行輸入數(shù)據(jù)的第0~6 bit數(shù)據(jù)寫入兩個不同的控制寄存器中的一個,這樣,寫入寄存器組的輸出位數(shù)就變成了30 bit,輸入為23 bit。輸出寄存器的結(jié)構(gòu)如圖4所示。

   2.5  寫控制器

  寫控制器的作用是在SEN信號的低電平周期內(nèi),判斷寫入數(shù)據(jù)是否恰好滿足24 bit以使能輸出寄存器組,另外根據(jù)寫入數(shù)據(jù)的第8位控制低7位數(shù)據(jù)的寫入方向(寄存器A或寄存器B)。寫控制器的結(jié)構(gòu)如圖5所示。

   3  實現(xiàn)結(jié)果

  圖6是采用Verilos實現(xiàn)的SPI接口的部分功能仿真波形,測試激勵首先將SPI接口置于發(fā)送模式下(SEN為高電平),SPI接口將從內(nèi)部獲得的信息碼“24’hFFFFFE”正確地串行發(fā)出;測試激勵再將SPI接口置于接收模式下(SEN為低電平),SPI接口正確接收外部發(fā)送的“24’hFFFFF8”,并轉(zhuǎn)換成內(nèi)部的“30’h3FFC078”。為了保證收發(fā)方向切換在一個時鐘周期內(nèi)完成,SEN信號的轉(zhuǎn)換在接口時鐘的下降沿完成。通過NC-Verilog仿真,SPI接口功能正確,工作時序符合設(shè)計要求。

   4  結(jié)論

  本SPI接口模塊已成功應(yīng)用在一個射頻芯片中,以硬IP的形式集成進射頻模塊中。SPI接口電路在0.18 μm工藝下實現(xiàn)后的版圖總尺寸約為240 μm×460 μm,最高工作頻率原高于10 MHz的設(shè)計上限,相應(yīng)在10 MHz下的功耗約為2 mW。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。