新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > SPI接口的出錯分析及其改進

        SPI接口的出錯分析及其改進

        作者: 時間:2012-07-19 來源:網絡 收藏

          單片機(MCU)系統為了與SPI標準外圍接口器件進行通信,必須使用SPI( Serial Peripheral Interface,串行外設接口)總線。SPI總線系統是Motorola提出的一種同步串行外設接口,有信號線少、協議簡單、傳輸速度快的特點,因此有不少外圍器件都采用SPI總線,如Flash RAM、A/ D轉換器、LED顯示器、MCU以及計算機網絡等。MCU中的通過配置可與各個廠家生產的多種標準外圍器件直接連接。

          對于那些沒有功能的MCU來說,的功能靠軟件控制MCU的I/O口的方法來模擬。不過,用軟件來模擬SPI接口的功能,工作速度非常慢,并且需要主從器件的軟件之間配合得非常好。如果在單片機芯片內部用硬件電路來完成SPI接口功能,在硬件增加不多的情況下,能夠極大地提高傳輸速度(最高頻率可達主器件的頻率的1/4),減輕軟件的負擔,使用極為方便。

          SPI接口工作的時候,沒有應答信號,并且數據在發送的時候無需校驗位,所以,要求主從器件的軟件必須完全符合SPI的時序要求,否則數據傳輸很容易出現錯誤。本文通過MCU中SPI接口模塊的設計,分析數據傳輸的各種出錯情況,并針對各種情況,增強SPI接口的錯誤處理能力。

        1、設定錯誤

          在從器件時鐘頻率小于主器件時鐘頻率時,如果SCK的速率設得太快,將導致接收到的數據不正確(SPI接口本身難以判斷收到的數據是否正確,要在軟件中處理)。

          整個系統的速度受三個因素影響:主器件時鐘CLK主、從器件時鐘CLK從和同步串行時鐘SCK,其中SCK是對CLK主的分頻,CLK從和CLK主是異步的。要使SCK無差錯無遺漏地被從器件所檢測到,從器件的時鐘CLK從必須要足夠快。下面以SCK設置為CLK主的4分頻的波形為例,分析同步串行時鐘、主時鐘和從時鐘之間的關系。

        點擊在新窗口中瀏覽產品
        圖1主從時鐘和SCK的關系

          如圖1所示,當T從Tsck/2,即T從<2T主時,無論主時鐘和從時鐘之間的相位關系如何,在從器件CLK從的上升沿必然能夠檢測到SCK的低電平,即SCK=0的范圍內至少包含一個CLK從的上升沿。

          圖2中,當T從≥TSCK/2=2T主時,在clk_s的兩個上升沿都檢測不到SCK的低電平,這樣從器件就會漏掉一個SCK。在某些相位條件下,即使CLK從僥幸能檢測到SCK的低電平,也不能保證可以繼續檢測到下一個SCK。只要遺漏了一個SCK,就相當于串行數據漏掉了一個位,后面繼續接收/發送的數據就都是錯誤的了。

        點擊在新窗口中瀏覽產品
        圖2主從時鐘和SCK的關系

          根據以上的分析,和主從時鐘比的關系如表1所列。

        表1的設置和主從時鐘周期比值之間的關系

          在發送數據之前按照表1對SPR進行設置,SPR設定錯誤可以完全避免。


        上一頁 1 2 3 下一頁

        關鍵詞: SPI接口 傳輸過程 SPR

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 惠水县| 嵊泗县| 新巴尔虎左旗| 晋中市| 白河县| 大兴区| 祁阳县| 岚皋县| 南安市| 云浮市| 卓尼县| 资讯 | 泸定县| 法库县| 禹州市| 柳州市| 大冶市| 马山县| 罗田县| 金坛市| 宜黄县| 五莲县| 微山县| 靖宇县| 楚雄市| 郁南县| 海门市| 甘泉县| 涟源市| 秦皇岛市| 富锦市| 遵化市| 墨竹工卡县| 林芝县| 济南市| 宣汉县| 大兴区| 驻马店市| 达日县| 元朗区| 农安县|