一種3線制半雙工SPI接口設(shè)計(jì)
2.2 串行寄存器組
串行寄存器的作用是接收射頻芯片內(nèi)部狀態(tài)信息并轉(zhuǎn)換成24 bit串行數(shù)據(jù)輸出,以及接收外部串行控制字輸入并轉(zhuǎn)換成30 bit并行數(shù)據(jù)輸入射頻芯片,其基本結(jié)構(gòu)如圖2所示。串行寄存器組是半雙工方式SPI接口設(shè)計(jì)的核心,輸入和輸出數(shù)據(jù)共享此數(shù)據(jù)通路,必須保證數(shù)據(jù)傳輸方向的正確切換。本文采用串行寄存器鏈+輸入選擇器方式實(shí)現(xiàn)輸入和輸出數(shù)據(jù)間的切換。
2.3 讀控制器
讀控制器的作用是在SEN為高電平的周期內(nèi),控制串行寄存器組在第一個(gè)SCK上升沿到來時(shí)接收指定的24 bit射頻芯片內(nèi)部信號,并將最低位串行輸出,然后在剩下的23個(gè)時(shí)鐘周期內(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ù)寫入兩個(gè)不同的控制寄存器中的一個(gè),這樣,寫入寄存器組的輸出位數(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 實(shí)現(xiàn)結(jié)果
圖6是采用Verilos實(shí)現(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ā)方向切換在一個(gè)時(shí)鐘周期內(nèi)完成,SEN信號的轉(zhuǎn)換在接口時(shí)鐘的下降沿完成。通過NC-Verilog仿真,SPI接口功能正確,工作時(shí)序符合設(shè)計(jì)要求。
4 結(jié)論
本SPI接口模塊已成功應(yīng)用在一個(gè)射頻芯片中,以硬IP的形式集成進(jìn)射頻模塊中。SPI接口電路在0.18 μm工藝下實(shí)現(xiàn)后的版圖總尺寸約為240 μm×460 μm,最高工作頻率原高于10 MHz的設(shè)計(jì)上限,相應(yīng)在10 MHz下的功耗約為2 mW。
評論