關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > Freescale同步串行傳輸SPI優(yōu)化設(shè)計(jì)

Freescale同步串行傳輸SPI優(yōu)化設(shè)計(jì)

——
作者: 時(shí)間:2007-11-14 來(lái)源:?jiǎn)纹瑱C(jī)及嵌入式系統(tǒng)應(yīng)用 收藏

  系列的大部分都存在一個(gè)模塊,它是一個(gè)同步串行外圍接口,允許與各種外周設(shè)備以串行方式進(jìn)行通信。

  目前,系列的大多數(shù)總線不能外部加以擴(kuò)展,當(dāng)片內(nèi)I/O或者存儲(chǔ)器不能滿足需求時(shí),可以使用來(lái)擴(kuò)展各種接口芯片。這是一種最方便的Free-scale系列系統(tǒng)擴(kuò)展方法。

  系統(tǒng)主機(jī)最高頻率=主機(jī)總線頻率/2,從機(jī)最高頻率=從機(jī)總線頻率,即硬件體系決定了SPI的最高工作頻率。如何在硬件體系結(jié)構(gòu)已定的情況下,使I/O或存儲(chǔ)器數(shù)據(jù)傳輸效率最高,成為SPI使用的一個(gè)關(guān)鍵問(wèn)題。

  1 同步串行傳輸SPI結(jié)構(gòu)及常規(guī)操作

  圖1為同步串行傳輸SPI的體系結(jié)構(gòu)圖。

  對(duì)Freescale同步串行傳輸體系來(lái)說(shuō),一般有兩種操作模式:

  ①利用中斷通知已經(jīng)傳輸結(jié)束,或者接收完成;

 ?、诓捎幂喸兎绞?,讀取相應(yīng)寄存器位置,判斷傳輸是否完成。

  無(wú)論是哪種模式,其常規(guī)操作流程(無(wú)配置過(guò)程)均如圖2所示。

  

Freescale同步串行傳輸SPI的體系結(jié)構(gòu)圖

  2 常規(guī)操作中的時(shí)間浪費(fèi)

  從圖2中可以看出,當(dāng)CPU向SPI數(shù)據(jù)寄存器中寫(xiě)入1字節(jié)數(shù)據(jù)后,必須等待,直至SPI模塊通知傳輸結(jié)束,才能寫(xiě)入下一個(gè)字節(jié)。這是由于SPI數(shù)據(jù)模塊由兩部分構(gòu)成:一部分是數(shù)據(jù)寄存器;另一部分是移位寄存器。當(dāng)CPU向SPI數(shù)據(jù)寄存器寫(xiě)入1字節(jié)后,SPI模塊需要將8位數(shù)據(jù)傳入移位寄存器,在每個(gè)SPI時(shí)鐘周期內(nèi)傳出1位數(shù)據(jù)。由于采樣的原因,SPI的最大速率=BUS_CLK/2,所以當(dāng)CPU向SPI寫(xiě)入一個(gè)8位數(shù)據(jù)后,必須等待8



評(píng)論


相關(guān)推薦

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

關(guān)閉