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

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

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

基于半雙工機(jī)制實(shí)現(xiàn)3線制雙向SPI模塊的設(shè)計(jì)與應(yīng)用

電子設(shè)計(jì) ? 來源:半導(dǎo)體技術(shù) ? 作者:汪永琳, 丁一 ? 2021-06-10 14:58 ? 次閱讀

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

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

1 SPI總線協(xié)議

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

SPI接口信號(hào)描述如表1。

接口時(shí)序要求如下:

1)輸出時(shí)序

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

2)輸入時(shí)序

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

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

2 實(shí)現(xiàn)方案

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

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

在SPI接口模塊中,數(shù)據(jù)交換的核心是串行寄存器組,讀、寫控制器根據(jù)外部方向選擇信號(hào)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è)計(jì)的核心,輸入和輸出數(shù)據(jù)共享此數(shù)據(jù)通路,必須保證數(shù)據(jù)傳輸方向的正確切換。本文采用串行寄存器鏈+輸入選擇器方式實(shí)現(xiàn)輸入和輸出數(shù)據(jù)間的切換。

2.3 讀控制器

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

2.4 寫入寄存器組

寫入寄存器的作用是在SEN信號(hào)的上升沿接收串行寄存器組的輸出,并將結(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信號(hào)的低電平周期內(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接口的部分功能仿真波形,測試激勵(lì)首先將SPI接口置于發(fā)送模式下(SEN為高電平),SPI接口將從內(nèi)部獲得的信息碼“24’hFFFFFE”正確地串行發(fā)出;測試激勵(lì)再將SPI接口置于接收模式下(SEN為低電平),SPI接口正確接收外部發(fā)送的“24’hFFFFF8”,并轉(zhuǎn)換成內(nèi)部的“30’h3FFC078”。為了保證收發(fā)方向切換在一個(gè)時(shí)鐘周期內(nèi)完成,SEN信號(hào)的轉(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。

責(zé)任編輯:gt

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

    關(guān)注

    104

    文章

    5534

    瀏覽量

    167469
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2244

    瀏覽量

    82267
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2859

    瀏覽量

    87914
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SPI一根時(shí)鐘一根單向數(shù)據(jù)可以實(shí)現(xiàn)讀寫從機(jī)數(shù)據(jù)嗎?

    和一根雙向數(shù)據(jù),在基本結(jié)構(gòu)上是一樣的,I2C可以實(shí)現(xiàn)半雙工通信,SPI是否也能只使用兩跟
    發(fā)表于 05-06 06:04

    SPI半雙工主從通信

    SPI半雙工主從通信
    發(fā)表于 08-20 22:59

    nrf24L01 半雙工雙向傳輸

    各位大俠,有誰能提供基于nrf24L01的數(shù)據(jù)半雙工雙向傳輸?shù)拇a,單向傳輸我已寫好,謝謝!
    發(fā)表于 05-19 22:03

    如何采用半雙工機(jī)制設(shè)計(jì)3雙向SPI總線模塊?

    串行外圍設(shè)備接口SPI(serial peripheralinterface)總線技術(shù)是Motorola公司推出的一種微處理器、微控制器及其外設(shè)間的一種全/半雙工同步串行數(shù)據(jù)接口標(biāo)準(zhǔn),具有連接線少、傳輸效率高等特點(diǎn),因其硬件功能很強(qiáng),與
    發(fā)表于 07-31 07:06

    請(qǐng)問半雙工的485板子怎么下載程序?

    使能的,也支四雙工,我的設(shè)計(jì)是將RX+和 TX+短接,RX-和TX-短接,實(shí)現(xiàn)半雙工
    發(fā)表于 09-27 07:16

    請(qǐng)教SPI半雙工模式是如何工作的?

    請(qǐng)教SPI半雙工模式是如何工作的?
    發(fā)表于 05-31 06:47

    CH573啟動(dòng)半雙工模式是否支持硬件單線雙向通訊模式?

    單線雙向通訊模式?(TX一個(gè)引腳同時(shí)扮演發(fā)送和接收引腳,只用接一根)還是僅僅內(nèi)部硬件移位寄存器設(shè)置為半雙工模式,收和發(fā)都還要分別接TX和RX引腳?
    發(fā)表于 08-24 07:41

    STM32F746如何實(shí)現(xiàn)半雙工通信的SPI函數(shù)?

    如STM32F746的參考手冊(cè)所述,發(fā)現(xiàn)利用SPI功能進(jìn)行半雙工通信,可以實(shí)現(xiàn)圖中使用一根數(shù)據(jù)(SDA信號(hào))的雙向通信。請(qǐng)告訴我具體的控制
    發(fā)表于 01-05 08:29

    SPI半雙工模式有沒有什么特別的技巧?

    我想知道SPI半雙工模式有沒有什么特別的技巧。據(jù)我所知,配置是正常完成的,只有 1 行的方向。誰能給我指出某種形式的示例,以半雙工方式設(shè)置 SPI,然后通過所述端口
    發(fā)表于 01-30 08:06

    可以在Processor Expert上使用LPSPI組件進(jìn)行半雙工SPI嗎?

    我需要 S32K142 處理器的 3 SPI 配置,我使用 S32 Design Studio v2.2 當(dāng)前的 SDK(RTM 3.0.0) 是否適用于半雙工通信? 我可以在 P
    發(fā)表于 05-09 08:46

    AT32F4xx SPI使用半雙工模式通訊

    AT32F4xx SPI使用半雙工模式通訊演示AT32F403Axx SPI使用半雙工模式通訊,其余系列的使用方式與此類似
    發(fā)表于 10-27 06:22

    半雙工,半雙工是什么意思

    半雙工,半雙工是什么意思 概念及實(shí)例: 單工即Simplex Communication,指在通信過程的任意時(shí)刻,信息只能由一方A傳
    發(fā)表于 03-17 16:19 ?3406次閱讀
    <b class='flag-5'>半雙工</b>,<b class='flag-5'>半雙工</b>是什么意思

    基于MCP200x設(shè)計(jì)的LIN雙向半雙工通信方案

    基于MCP200x設(shè)計(jì)的LIN雙向半雙工通信方案 This device provides a bidirectional, half-duplex communication physical
    發(fā)表于 05-26 16:28 ?1234次閱讀
    基于MCP200x設(shè)計(jì)的LIN<b class='flag-5'>雙向</b><b class='flag-5'>半雙工</b>通信方案

    3半雙工SPI接口解決方案

    SPI接口一般采用4條連接線:串行時(shí)鐘(SCK)、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)(MOSI)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)(MISO)和低電平使能的從機(jī)選擇
    發(fā)表于 06-08 15:32 ?1.3w次閱讀
    <b class='flag-5'>3</b><b class='flag-5'>線</b>制<b class='flag-5'>半雙工</b><b class='flag-5'>SPI</b>接口解決方案

    單工、雙工半雙工、全雙工通信常識(shí)

    根據(jù)通信雙方的分工和信號(hào)傳輸方向可將通信分為三種方式:單工、半雙工與全雙工。單工通信指通信雙方設(shè)備中發(fā)送器與接收器分工明確,只能在由發(fā)送器向接收器的單一固定方向上傳送數(shù)據(jù),并且不能實(shí)現(xiàn)雙向
    的頭像 發(fā)表于 03-31 17:57 ?6940次閱讀