新聞中心

        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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 塔河县| 黑河市| 县级市| 上杭县| 防城港市| 高淳县| 通道| 肥东县| 蒙阴县| 临颍县| 三亚市| 洛南县| 旬邑县| 贵港市| 南雄市| 洛阳市| 上蔡县| 大安市| 西丰县| 玛沁县| 龙川县| 富裕县| 连南| 全州县| 准格尔旗| 武威市| 灵宝市| 竹北市| 郴州市| 安塞县| 沭阳县| 扶绥县| 外汇| 乌拉特后旗| 深州市| 垫江县| 米泉市| 宁夏| 蓬莱市| 团风县| 天门市|