新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于IP核的PSTN短消息終端SoC軟硬件協同設計

        基于IP核的PSTN短消息終端SoC軟硬件協同設計

        作者: 時間:2010-11-25 來源:網絡 收藏

        摘要 介紹在基于微控制器IP核的PSTN短消息終端SoC設計當中,如何合理劃分硬件和軟件的功能;從對微控制器IP核的配置與擴展、片上外設在SFR總線上的映射、存儲空間的劃分與映射等三個方面,詳細講述SoC的軟硬件協同設計。

        本文引用地址:http://www.104case.com/article/156923.htm

        關鍵詞 軟硬件協同設計 IP核 SoC DW8051_core

        1 概述

          PSTN短消息終端SoC是為固定電話網短消息業務而設計的一種數字終端處理芯片。片上集成了微控制器、RAM、FSK/DTMF調制解調器、、擴展頁面尋址以及線路狀態控制;可以完成FSK和DTMF格式的短消息上傳、下傳,CID(Calling Identity Delivery,主叫識別信息傳送)號碼的,振鈴信號檢測,話機狀態控制等功能[1],提供了PSTN短消息終端的單芯片解決方案。其中,使用了DW8051_core IP核作為SoC的微控制器核心。

          SoC(System on chip,片上系統)不僅指它的硬件平臺,還包括運行在其上的軟件成分。如果系統采用全硬件設計的方案,優點是速度快、效率高,但是研制周期長,從而成本也高;用軟件實現則更為靈活,研制周期短。缺點是速度慢,效率比較低。因此,SoC設計必須在硬件與軟件功能劃分上有一個合理的權衡,并進行協同設計[2]。

        2 SoC系統任務的軟硬件功能劃分

          系統任務按功能可以分為通信、人機交互、Flash存儲器管理和外設管理四部分。通信的物理層功能即DTMF/FSK信號的調制解調,涉及插值、加權、相關等DSP運算??紤]到通信的實時性要求和所使用8位微控制器的數據處理能力,這些運算由專門設計的Modem硬件邏輯實現;而在數據鏈路層,比如建立和釋放與服務器的連接、超時控制、FSK數據幀、拆包、差錯控制、提取返回消息層的信息和相應標志位的建立等,都交給微處理器由軟件實現。人機交互中的要不斷判斷是否有按鍵動作發生,用軟件實現效率低,這里也用專門的硬件邏輯實現。其他人機交互功能,如菜單操作、短信編輯等,則都由軟件實現。Flash存儲器管理和外設管理在硬件提供了接口寄存器的情況下,由軟件實現。

          把實時性強、運算量大和重復性強的功能交給硬件去實現,然后在滿足系統性能要求的情況下,把盡可能多的任務留給片上的微控制器用軟件實現。這樣降低了SoC的硬件復雜度以及制造成本,同時系統也可以獲得最大的靈活性。

        3 SoC的軟硬件協同設計

        3.1 對微控制器核的配置和擴展

          DW8051_core是Synopsys公司提供的一個與8051指令兼容的8位微控制器IP核。它采用4個時鐘周期為1個指令周期的模式,在時鐘周期相同的情況下,處理能力是標準8051的3倍。DW8051_core訪問程序存儲器和的MEM地址總線是16位總線,避免了傳統8051結構中數據總線和地址總線低位的時分復用問題。

          由于DW8051_core是一個IP軟核(soft core),所以可以對它進行配置和擴展。在綜合(synthesis)的時候,通過對參數文件的設置,可以選擇配置內部RAM是128字節還是256字節;可以選擇是否使用定時/計數器2,使用1個串口還是2個串口等。用戶還可以按照DW8051_core手冊的要求使用硬件描述語言編寫硬件邏輯,擴展SFR總線和中斷系統(最多可以擴展到13級中斷)[3]。

          在SoC設計中,只使用到了微控制器核的1個硬件定時器(Timer0),1個外部中斷(Interrupt0),1個串行口(UART),并沒有使用DW8051_core的全部功能。那些冗余的功能只會增加系統的硬件負擔,所以按照最精簡的原則配置DW8051_core:使用內部128字節RAM,不使用定時/計數器2,不使用內部ROM,只使用1個串口,不擴展中斷。在DW8051_parameter.vhd文件中,作如下的參數設定[3]可以完成上述配置:

          package DW8051_parameter is
        constant ram_256 : integer := 0;
        constant timer2 : integer := 0;
        constant rom_addr_size : integer := 0;
        constant serial : integer := 0;
        constant extd_intr : integer := 0;
        end DW8051_parameter;


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 黔东| 翁牛特旗| 平武县| 林西县| 瑞丽市| 栖霞市| 汽车| 南漳县| 洛川县| 黄浦区| 南陵县| 简阳市| 兰西县| 图们市| 临海市| 浮山县| 耿马| 镇安县| 清新县| 淮南市| 通榆县| 会宁县| 屯昌县| 庆安县| 台中市| 惠来县| 兴城市| 通渭县| 修武县| 石林| 乐清市| 克拉玛依市| 云南省| 慈溪市| 陆丰市| 盐边县| 哈尔滨市| 十堰市| 柘城县| 五指山市| 青海省|