新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > S3C44B0X與C54X DSP的接口設計

        S3C44B0X與C54X DSP的接口設計

        作者: 時間:2012-06-26 來源:網絡 收藏

        3.3.2:HDLC通道數據接收中斷處理過程

        DMA方式下HDLC通道接收完一幀數據,或者接收過程中出現了可引起中斷的異常情況,此時軟件會進入中斷處理程序。引起中斷的情況在HDLC通道初始化的步驟4,即中斷控制寄存器的設置中已做了說明。在我們的編程中,HDLC通道接收中斷處理過程主要完成以下一些功能:

        1. 進入中斷后,首先清除4510中斷指示寄存器INTPEND中相應的標志位。

        2. 如果DMA接收正確,則進行數據幀接收成功狀態計數,并清除HDLC通道狀態寄存器HSTAT中的相應狀態位。對接收到的數據幀作相應的處理后,要重新將是用過的接收BUFFER描述符的OWERSHIP位設置為DMA所有。

        3. 如果接收出現異常,則完成相應的異常狀態計數,并清除HDLC通道狀態寄存器HSTAT中的相應位。其中有兩個異常會影響以后的DMA操作,一:DMA接收BUFFER描述符不屬于DMA所有(DRxNO);二:DMA接收BUFFER描述符指針空(DRxNL)。發生這兩個異常時,說明接收BUFFER描述符雙向環形鏈表結構出現錯誤,處理器會自動禁止DMA發送功能,因此建議重構接收BUFFER描述符雙向環形鏈表結構并重新使能DMA發送功能。

        4:S3C4510B的HDLC通道使用中的注意事項

        我們編寫了4510的HDLC通道底層驅動程序,并應用在了我們的155M SDH設備軟件中。通過對軟件的調試,感覺在使用4510的HDLC通道時,需要注意下面的問題:

        1. 發送和接收數據大端/小端模式要一致,否則收到的數據與發送的數據高字節和低字節顛倒。

        2. 使用DMA模式收發數據時,正常狀態下進入中斷后,讀取發送BUFFER描述符指針寄存器(HDMATxPTR)或接收BUFFER描述符指針寄存器(HDMARxPTR)的內容時,他們指向的都是下一個未用的BUFFER描述符。因此想處理接收到的數據或者初始化用過的發送BUFFER描述符時,需要指回到它們。

        3. 使用DMA方式時,發送和接收BUFFER描述符在使用時的OWERSHIP位必須是DMA所有。因為發送是主動的,所以當把數據放進BUFFER描述符后,可以設置OWERSHIP位,然后啟動DMA發送;而接收是被動的,因此數據到來前,將要使用的BUFFER描述符必須是DMA所有,這就是每次進入接收中斷后需要重置接收BUFFER描述符OWERSHIP位的原因。

        4. 當發送端的時鐘信息無法傳遞到接收端時,最好使用DPLL或者發送前導碼,以便接收端能夠恢復發送端的時鐘信息。

        5. 當使用外部時鐘源發送或接收數據時,注意數據采樣點和外部時鐘源的配合。我們的設備中一塊芯片為4510的HDLC通道提供時鐘,它在時鐘上升沿發送,下降沿接收,4510的HDLC通道默認模式是時鐘下降沿發送,上升沿接收。我們以這種模式收發數據,存在嚴重的數據不穩定問題,當改為上升沿發送,下降沿接收后,完全正常。因此數據采樣點的配合很重要。

        6. 4510的HDLC通道收發方式還可以采用中斷方式,由于時間緊迫和能力有限,我們的程序沒有實現,有興趣地可以參考4510數據手冊實現中斷方式收發。

        5:總結

        KS4510B是一款性價比很高的ARM處理器,功能豐富,編程簡單,并且可以配合幾種嵌入式實時操作系統,如pSOS,NUCLEUS等。我們的155M SDH傳輸設備中,使用4510B和NUCLEUS操作系統,完成了底層控制軟件。經過調試,該軟件性能穩定,其中HDLC通道完成了私有網管協議在SDH環網上的傳輸轉發,實現了遠程管理的功能。

        隨著各種電子,通訊產品對性能要求的日益提高,基于先進的ARM架構的各種32位微處理器也將得到越來越廣泛的應用。因此,掌握了ARM處理器的使用和編程方法,必然能在工作中事半功倍,得到良好的結果和收益。


        上一頁 1 2 3 下一頁

        關鍵詞: S3C44B0X C54X DSP

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 龙陵县| 那曲县| 天等县| 岐山县| 延津县| 怀仁县| 上栗县| 肃北| 新巴尔虎右旗| 准格尔旗| 荣昌县| 财经| 赣榆县| 上蔡县| 栾川县| 华安县| 神池县| 门源| 钟山县| 湖北省| 公主岭市| 黔东| 修文县| 特克斯县| 称多县| 漯河市| 北碚区| 曲阜市| 璧山县| 隆尧县| 靖边县| 长春市| 万盛区| 耿马| 中牟县| 双峰县| 边坝县| 子洲县| 隆德县| 武安市| 盐池县|