新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 復雜可編程邏輯器件在通信數據傳輸中的應用

        復雜可編程邏輯器件在通信數據傳輸中的應用

        作者: 時間:2010-01-16 來源:網絡 收藏

          3.2 時鐘產生

          輸入時鐘有來自射頻的16M時鐘,來自外部晶振的32.768M時鐘和來自OMAP接口的75M時鐘CLK。其中16M時鐘用于產生數據應用時AD9861所需要的3.2M、6.4M轉換時鐘,32.768M時鐘用于產生語音應用時AD9861所需要的1.6384M、3.2768M時鐘以及CODEC AIC1110所需要的8K和2.048M時鐘。SDCLK本可以作為OMAP讀寫的主時鐘,但必須要使用CAS信號作為讀寫允許配合使用才行,為了節省布線資源,不用讀寫允許,就直接用CAS作為寫時鐘及OMAP側的地址產生使用,而SDCLK則用于產生一些同步脈沖。這些產生的時鐘除了輸出給外部芯片外,還在內部作為地址產生的時鐘使用。3.2M和6.4M的時鐘產生是把16M的時鐘從0到4計數,由reset和ad_da_enable給計數器清零,這樣的模5計數器的最低位即為6.4M,次低位為3.2M時鐘。這種時鐘產生的方式只需要三個DFF,節省邏輯資源,而且不會產生毛刺,但產生的時鐘占空比不是50%,實踐證明在低速應用時,AD9861是可以正常工作的。系統的時鐘時序如圖3所示。

        時鐘時序

        圖3 時鐘時序

          1.6384M和3.2768M時鐘的方法同理,只是需要把32.768M的時鐘20分頻而已,同樣計數器的清零由reset和ad_da_enable控制,這樣得到的模20計數器的第2位即為3.2768M,第三位為1.6384時鐘,時序跟上圖相似,這里就不再給出。

          這四個時鐘被分時賦給AD9861的主時鐘ADA_CLK,具體是哪個時鐘被賦ADA_CLK,由收發切換信號TX_RX,語音和數據選擇信號V_D_SEL控制。當TX_RX=’0’ 且V_D_SEL=’0’時,輸出給ADA_CLK的時鐘為1.6384M;當TX_RX=’1’且V_D_SEL=’0’時,輸出給ADA_CLK的時鐘為3.2768M;當TX_RX=’0’ 且D_SEL=’1’時,輸出給ADA_CLK的時鐘為3.2M;當TX_RX=’1’ 且V_D_SEL=’1’時,輸出給ADA_CLK的時鐘為6.4M。

          為了進一步節省資源,可以考慮把模5和模20的計數器共用,方案如圖4所示,BIT1和BIT2即為所需的時鐘,這時前端時鐘源由V_D_SEL選擇,BIT1和BIT2的選擇輸出由TX_RX控制。

        復雜可編程邏輯器件在通信數據傳輸中的應用

        圖4 模5 模20 計數器共用的時鐘產生方案

          2.048M的時鐘產生由32.768M時鐘16分頻得到,計數器的復位由reset和語音允許audcken控制,這樣得到的模16的計數器的高位即為2.048M時鐘。8K時鐘是對產生的2.048M時鐘256分頻得到。

          3.3 地址產生

          在使用雙口RAM作為數據緩存時,有兩部分地址產生電路:OMAP側地址產生電路和AD9861側地址產生電路。AD9861側地址產生電路和OMAP側地址產生電路大致相同,但由于這2個地址發生器同時使用,所以不能復用。OMAP的地址發生器框圖如下:

        復雜可編程邏輯器件在通信數據傳輸中的應用

        圖5 OMAP 的地址發生器

          CAS 時鐘只負責對低3 位地址進行計數,而最高位由于選擇2 個8×8RAM 中的一個,為防止adda 和OMAP 同時讀寫同一個RAM,將OMAP 側的高位地址線取值為AD9861 側的地址最高位的反相。DMA 請求清零信號作用:在AD9861 側每觸發一次DMA 請求,就生成一個DMA 請求清零信號,用于復位OMAP 側地址發生器,避免由于某此誤觸發引起OMAP 讀寫地址混亂。AD9861 側地址發生器如下:

        復雜可編程邏輯器件在通信數據傳輸中的應用

        圖6 AD9861 側地址發生器

          4位地址總線的低3位用于選擇同一片RAM中的8個地址,最高位用于選擇2個8×8RAM中的一個,收發切換信號用于在收發切換時給地址發生器清零,復位由于邏輯誤觸發導致的地址總線錯誤。



        關鍵詞: CPLD 通信數據傳輸

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 儋州市| 淅川县| 达孜县| 石台县| 策勒县| 咸阳市| 灵丘县| 张家口市| 岐山县| 剑阁县| 阳山县| 鲁山县| 新河县| 突泉县| 富宁县| 扬州市| 灵台县| 唐河县| 彩票| 汪清县| 九寨沟县| 新昌县| 青川县| 平泉县| 鄂伦春自治旗| 岱山县| 石棉县| 西乡县| 太原市| 获嘉县| 辰溪县| 凤山市| 木里| 侯马市| 大名县| 台东市| 柞水县| 堆龙德庆县| 娄烦县| 融水| 静宁县|