新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > SPI-4.2總線應用和調試經驗談

        SPI-4.2總線應用和調試經驗談

        作者: 時間:2011-03-24 來源:網絡 收藏


        在接收方,接收模塊(RX)在數據鏈路成功接收到對端發送的訓練序列后,會設置本端的接收同步標志;然后通過狀態鏈路發送訓練序列,一旦發送模塊成功接收到訓練序列后,就設置本端的發送同步標志。
        在同步過程中,訓練序列由指定的連續的DIP-4碼字組成。發送模塊必須連續發送訓練序列,直到本端的狀態鏈路收到有效信息。同時,接收模塊忽視所有接收到的數據,直到觀察到訓練序列,獲得數據同步。一旦數據鏈路同步之后,FIFO隊列狀態信息就開始傳送。如果發送
        方接收到有效的狀態信息,它就可以開始進行數據突發傳輸。
        如果在工作過程中,由于某些原因(例如一端器件掉電或重啟)導致失步,那么為了再次獲得同步,雙方需要按照上述過程發送連續的訓練序列,直到建立同步為止。

        3 .2接口的
        .2接口的包括兩個重要步驟:鏈路的同步和數據的正常收發。
        鏈路同步時,首先必須查看總線兩端的初始化參數配置。因為.2總線協議是一個對等端數據傳輸協議,所以大部分參數需要雙方的匹配和協商,特別是接收方和發送方的CALENDAR_LEN和CALENDAR_M參數。
        如何查看同步呢?芯片通常會提供一個狀態寄存器來反映總線的同步。“接收同步標志”只能說明在數據鏈路上成功接收到對端的訓練序列,但不能保證接收的狀態鏈路是正常的,如果需要確認可查看對端的“發送同步標志”。在收發雙向通道中,只有兩端的“接收同步標志”和“發送同步標志”都置位了,總線才算同步。此時,可以確認總線兩端的物理連接是正確的,握手成功。
        如果不能同步,就必須檢查兩端的“接收同步標志”和“發送同步標志”,判斷是哪一端出了問題。檢查是否有DIP4和DIP2錯誤,如果有此類錯誤,說明鏈路上信號質量可能不佳,可以用示波器測量信號波形。如果信號質量確實不好,可以通過提高信號驅動能力或者調整硬件匹配阻抗來優化。如果兩端的接收和發送都沒有同步,就必須測量芯片的電壓、工作頻率、重啟等信號。
        如果兩端的“接收同步標志”和“發送同步標志”都已經置位,說明雙方的接收和發送都同步,可以正常收發數據了。在大流量數據傳輸過程中,最相關的是FIFO隊列的參數配置,配置不當會導致錯包或丟包。以NetLogic公司的XLR732網絡處理器為例,SPI-4.2總線的發送模塊的所有邏輯端口共享一個FIFO隊列,寬度為16字節,長度為128;接收模塊的所有邏輯端口共享一個FIFO隊列,寬度為16字節,長度為512。每個邏輯端口所占用的隊列地址和大小都可以通過寄存器配置。
        假如某個端口接收端隊列的長度是48,MaxBurst1是12,MaxBurst2是8。那么當該模塊接收數據時,如果由于某些原因(例如軟件來不及處理),接收隊列只剩下12個空位,也就是接收隊列已經有48-12=36個空位被占用時,它將通過狀態鏈路向對端發送“餓”的狀態信號(反壓信號)。對端收到該信號后實施流控策略,根據本端發送端的MaxBurst1設置值發送數據,該值表示接收到“餓”狀態信號后最多還可以發送的數據塊數目。所以接收端的MaxBurst1的值一定要大于對端發送端的MaxBurst1,并且要留出一定的余量,因為數據在鏈路上的傳輸也是需要時間的。同理,接收端的MaxBurst2要大于對端發送端的MaxBurst2。值得注意的是,流控是基于邏輯端口的,而不是整條鏈路。
        為保證不發生接收端FIFO隊列溢出等問題,盡量將接收端的MaxBurst1和MaxBurst2設置大一些,只要小于FIFO入口總數就可以,而發送端MaxBurst1和MaxBurst2的設置不要超過本端接收能力。
        如果出現EOP(結束包)和SOP(起始包)錯誤或缺失,或者其他錯包(例如包長變短、幀校驗錯誤等),但沒有DIP4錯誤,該怎么辦?這類問題一般出現在FIFO隊列設置上,尤其是接收端的FIFO隊列可能溢出,從而丟失了某些數據塊,可以通過以下3種方法來檢測和解決:
        ①通過查看接收端FIFO溢出標志來判斷FIFO隊列是否溢出;
        ②通過調整接收端的MaxBurst1和MaxBurst2來防止FIFO隊列溢出;
        ③如果方法②的調整足夠大,還有此問題,可以查看對端是否收到反壓信號,以及對端的狀態等。
        為了方便,通常將發送端的MaxBurst1和MaxBurst2設置為相同數值,將接收端的MaxBurst1和MaxBurst2也設置成相同數值。

        結語
        隨著處理器的速度越來越快,處理器集成的內核越來越多,處理器與外圍器件之間,處理器之間,以及外圍器件之間的連接速度逐漸成為制約平臺性能的瓶頸。許多芯片同時集成了多個總線接口,例如XLR732同時擁有SPI-4.2、HT、以太網3種總線接口。SPI-4.2總線在與其
        他總線的競爭中體現出了強大的生命力,希望本文所介紹的經驗對正在或計劃SPI-4.2總線的同行有所幫助。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 益阳市| 莆田市| 玉环县| 永州市| 高淳县| 于都县| 无为县| 原阳县| 西平县| 舒城县| 高雄县| 吴川市| 菏泽市| 阜宁县| 和田县| 江门市| 车险| 丰顺县| 霸州市| 黑水县| 香港 | 白河县| 南和县| 辽阳县| 华宁县| 郧西县| 扎囊县| 沙田区| 利辛县| 永州市| 彭州市| 雷山县| 汉阴县| 宁陕县| 东城区| 陕西省| 色达县| 靖安县| 福州市| 时尚| 千阳县|