新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應用 > 全功能SPI接口的設(shè)計與實現(xiàn)

全功能SPI接口的設(shè)計與實現(xiàn)

作者: 時間:2013-05-16 來源:網(wǎng)絡 收藏

寫入SPICRR寄存器里的Char0~Char3位將會配置SPI狀態(tài)控制模塊里的計數(shù)器。狀態(tài)控制是系統(tǒng)的核心部分,為了使系統(tǒng)結(jié)構(gòu)化,設(shè)計了狀態(tài)機,如圖3所示,分為3種狀態(tài),分別是空閑狀態(tài)、發(fā)送命令狀態(tài)(配置SPI各個寄存器)、數(shù)據(jù)狀態(tài)。其中數(shù)據(jù)狀態(tài)包括數(shù)據(jù)的傳送和讀取。

本文引用地址:http://butianyuan.cn/article/153493.htm

i.JPG


作為接口,在設(shè)計時加入了測試模塊。使能相關(guān)地址譯碼,將使系統(tǒng)內(nèi)部關(guān)鍵節(jié)點通過輸出控制模塊傳送到數(shù)據(jù)總線。
2.3 控制器的時鐘設(shè)計
SPI控制器為了和外部數(shù)據(jù)進行交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和時鐘相位可以進行匹配。但時鐘極性對傳輸協(xié)議沒有重大影響。如圖4所示,控制器包括4種不同的時鐘模式:

j.JPG


無延時的上升沿:SPI在SPICLK信號上升沿發(fā)送數(shù)據(jù),在SPICLK信號下降沿接收數(shù)據(jù);
無延時的下降沿:SPI在SPICLK信號下降沿發(fā)送數(shù)據(jù),在SPICLK信號上升沿接收數(shù)據(jù);
有延時的上升沿:SPI在SPICLK信號上升沿之前的半個周期發(fā)送數(shù)據(jù),在SPICLK信號下降沿接收數(shù)據(jù);
有延時的下降沿:SPI在SPICLK信號下降沿之前的半個周期發(fā)送數(shù)據(jù),在SPICLK信號上升沿接收數(shù)據(jù);
對于SPI控制器內(nèi)部時鐘的產(chǎn)生,在對系統(tǒng)時鐘進行分頻之后,還要對生成的時鐘進行一定處理,因為分頻后的時鐘其高電平時間是幾個系統(tǒng)時鐘周期的和,控制移位寄存器的時鐘采用的是系統(tǒng)時鐘,為了在SPICLK的一個時鐘周期內(nèi)只移位一位數(shù)據(jù),必須要求內(nèi)部時鐘的高電平時間為一個系統(tǒng)時鐘的周期,才能保證在SPICLK的一個時鐘周期內(nèi),只有一位數(shù)據(jù)的接收和發(fā)送。

d.JPG


圖5為實現(xiàn)上述功能的具體電路,即SPI控制器時鐘產(chǎn)生的電路結(jié)構(gòu)。在圖5中,分頻后的時鐘為DICLK,作為與門的一個輸入端進入模塊后對其進行處理。節(jié)點Y1和Y2的輸出方程為:
a.JPG
分頻時鐘DICLK通過節(jié)點Y1和Y2后,其高電平時間僅為一個系統(tǒng)時鐘周期,且Y1較Y2延遲半個周期。MUX1的選擇端S來自配置寄存器的Phase端,選擇有延遲的Y1還是無延遲的Y2通過。分頻后的時鐘將被用于兩個用途,一是產(chǎn)生SPICLK作為從控制器的輸入時鐘。二是作為主控制器的內(nèi)部時鐘,被用于計數(shù)器的計數(shù)脈沖和用于控制串行移位寄存器SPIDAT。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉