新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > DSP接口效率的分析與提高

        DSP接口效率的分析與提高

        作者: 時間:2012-04-14 來源:網絡 收藏

        2總線不兼容的情況

        有一類芯片的總線接口是分時復用的,如CAN總線控制器SJA1000。SJA1000有8位的數據和地址復用的總線,可以和多種MCU直接相連。一次總線操作開始時,總線先傳遞此次操作訪問的地址,在ALE信號將地址鎖存后,再進行數據讀寫。而DSP的數據總線和地址總線被并行地引出,這種并行結構比分時復用的串行結構先進,有著高一倍的帶寬。但DSP被設計時并沒有考慮過會在芯片外將并行的總線再串行化,也就沒有設計相應的輔助信號來完成這種轉換。這使得完全使用硬件方法進行串行轉換比較困難。此類問題通常使用軟件和硬件配合解決,并不真正地靠硬件進行轉換,而是把一次總線操作分解成兩步。先把此次操作的目標地址作為數據送到總線上,同時通過硬件產生一個鎖存信號將其鎖存。然后再進行讀寫操作,讀寫操作的目標地址就是上一步被鎖存的地址。

        使用這種辦法,硬件和軟件都不需要進行復雜的變換。唯一的缺點是指令的效率變低了。由于SJA1000的讀寫周期一般是DSP的指令周期的幾倍,一次訪問被分解成兩次后多消耗的時間不能忽略。還有一個更重要的影響是,這種轉換方法在尋址時無法使用DSP的并行尋址功能,必須使用另外的變量獨立運算。在多數的CAN總線應用中,這種處理方法不會對系統的整體性能產生太大的影響。但在有的系統中,這種低效是不可容忍的,如由DSP和SJA1000組成的CAN總線網關,它含有多個SJA1000芯片,并且在SJA1000之間需要經常進行數據塊的搬移。對于次數頻繁并且尋址有規律的操作,利用DSP的并行尋址功能將極大地提高程序的效率。以下程序段可在兩個不同網段的SJA1000之間完成一幀消息搬移功能(它在每次操作的同時對下次操作的地址進行并行尋址):Larar0,mlength;取消息的長度
        Larar1,#SJA1_A;一個SJA1000中接收郵箱的首地址
        Larar2,#SJA2_S;另一個SJA1000中發送郵箱的首地址
        Mar*,ar0
        Mar*-,ar1
        Loop:?;復制一幀消息
        Lacl*+,ar2
        Sacl*+,ar0
        Banzloop?*-,ar1

        如果按上述方法改寫這段程序,不僅對SJA1000的操作時間要增加一倍,而且每次操作前都要對地址進行運算,使得完成同樣功能的程序運行時間要增加到原來的3~4倍。

        這時,只有使用純硬件的解決方法才能獲得理想的效果。設計的關鍵是生成合適的鎖存信號ALE,使它能夠滿足SJA1000的時序要求。通過研究DSP控制信號的時序可以發現,從地址建立到讀寫控制信號有效大約要經歷二分之一個CPU時鐘的時間,而SJA1000的ALE信號要求的最小寬度為8ns,因此對于主頻在50MHz(CPU時鐘為20ns)以下的DSP,可以利用這二分之一個CPU時鐘的時間間隙生成ALE信號。圖3給出了含兩片SJA1000的接口電路圖。除了片選信號外,這兩片SJA1000的總線和其它控制信號都連在一起。假設SJA1000的片選地址為0X8xxx和0X9xxx,各引腳定義與圖中對應,則GAL中的邏輯關系如下:

        按此在新窗口瀏覽圖片
        /ADDR_G=DSP_RD*DSP_WR*RD*WR
        /DATA_G=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13*ADDR_G
        /WR=/DSP_WR*/ALE
        /RD=/DSP_RD*/ALE
        ALE=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13*DSP_RD*DSP_WR
        /CS1=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13*
        ?/DSP_A12*ADDR_G
        /CS2=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13*
        ?DSP_A12*ADDR_G

        對其中一片進行讀寫操作,則時序關系如圖4所示。

        按此在新窗口瀏覽圖片

        其中,twr、tww分別為DSP讀、寫時的ALE信號寬度,它們都接近1/2個CLKOUT的周期。t為ALE的下降沿到RD、WR有效的時間,它由GAL翻轉的延時產生,為10ns以上(注:本圖中DSP的時序來自TMS320C24xxA系列,不同系列的DSP產品之間時序可能有細微的差別)。對于主頻高于50MHz的DSP,應當使用有更高工作頻率的可編程邏輯器件,并將前面介紹的計數器引入可編程邏輯器件內,來產生滿足時序要求的鎖存信號。

        本文介紹的兩種高效率的DSP接口的設計方法,去掉了在DSP訪問外設時任何不必要的時間消耗。當然,效率的提高是以增加硬件的復雜度為代價的,在能夠滿足設計要求的前提下,設計者應該選擇簡單的設計方案。而對于頻繁進行外設訪問的高性能系統,本文提供了理想的接口方案。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 融水| 万山特区| 深水埗区| 阿图什市| 荃湾区| 长丰县| 唐河县| 扶风县| 华宁县| 凤山县| 瑞安市| 屯门区| 高陵县| 吉水县| 邢台市| 工布江达县| 特克斯县| 荣成市| 嘉黎县| 衡水市| 东兰县| 若羌县| 新昌县| 广汉市| 洛浦县| 繁峙县| 沅江市| 同心县| 迭部县| 石楼县| 集贤县| 天长市| 黎川县| 固始县| 瑞安市| 吴江市| 银川市| 若尔盖县| 修武县| 临沂市| 昌黎县|