• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ARM9的VOIP語音終端的研究與設計

    2014-12-31 00:00:00謝于晨
    電子世界 2014年20期

    【摘要】伴隨VOIP技術的成熟,越來越多的人們通過互聯(lián)網實現了即時通信。本文研究設計了一個基于ARM9硬件平臺的VOIP語音終端。其中介紹了VOIP語音終端的硬件設計和軟件設計,包括SIP協(xié)議棧、語音編解碼庫的移植方法和應用程序的開發(fā)。

    【關鍵詞】ARM9;VOIP;語音終端

    Abstract:With the VOIPtechnology matures,more and morepeople achievethereal-time communicationthrough the Internet. In this paper,the designof theVOIPvoice terminalisbased onARM9. Thearticle introducesthehardware design and softwaredesign of the terminal,includingtransplanting methods of theSIPprotocol stack together withvoice codeclibraryand application development.

    Keywords:ARM9;VOIP;Voice terminal

    1.VOIP概述

    VoIP(Voice over Internet Protocol)是一種以IP電話為主,并推出相應的增值業(yè)務的技術,它就是將模擬信號(Voice)數字化,以數據封包(Data Packet)的形式在IP網絡(IP Network)上做實時傳遞[1]。

    VoIP的基本原理:通過語音的壓縮算法對語音數據編碼進行壓縮處理,然后把這些語音數據按TCP/IP標準進行打包,經過IP網絡把數據包送至接收地,再把這些語音數據包串起來,經過解壓處理后,恢復成原來的語音信號,從而達到由互聯(lián)網傳送語音的目的。

    2.SIP協(xié)議說明

    SIP(Session Initiation Protocol)是一個應用層的信令控制協(xié)議。用于創(chuàng)建、修改和釋放一個或多個參與者的會話[2]。這些會話可以是Internet多媒體會議、IP電話或多媒體分發(fā)。會話的參與者可以通過組播(multicast)、網狀單播(unicast)或兩者的混合體進行通信。

    SIP 會話使用多達四個主要組件:SIP用戶代理、SIP注冊服務器、SIP代理服務器和SIP重定向服務器。這些系統(tǒng)通過傳輸包括了SDP協(xié)議(用于定義消息的內容和特點)的消息來完成 SIP 會話。下面概括性地介紹各個 SIP 組件及其在此過程中的作用。

    1)用戶代理

    SIP 用戶代理(UA) 是終端用戶設備,如用于創(chuàng)建和管理SIP會話的移動電話、多媒體手持設備、PC、PDA等。用戶代理客戶機發(fā)出消息。用戶代理服務器對消息進行響應。

    2)注冊服務器

    SIP 注冊服務器是包含域中所有用戶代理的位置的數據庫。在SIP通信中,這些服務器會檢索出對方的IP地址和其他相關信息,并將其發(fā)送到SIP代理服務器。

    3)代理服務器

    SIP代理服務器接受SIP UA的會話請求并查詢SIP注冊服務器,獲取收件方UA的地址信息。然后,它將會話邀請信息直接轉發(fā)給收件方UA(如果它位于同一域中)或代理服務器(如果UA位于另一域中)。

    4)重定向服務器

    SIP 重定向服務器允許SIP代理服務器將SIP會話邀請信息定向到外部域。SIP重定向服務器可以與SIP注冊服務器和SIP代理服務器同在一個硬件上。

    3.VOIP語音終端的硬件設計

    VOIP語音終端硬件原理圖如圖1所示。其語音收發(fā)過程:首先接收模擬語音信號,然后進行A/D轉換、語音壓縮編碼,最后經過打包封裝后傳輸到網絡上;在接收端,VOIP語音終端接收網絡上傳輸來的數據包,經過解封裝、語音解壓縮解碼和轉換后,將模擬語音信號提供給用戶。

    從圖中可以看出,VOIP語音終端主要由以下幾部分組成。

    1)CPU:這里選用Samsung公司的S3C2410微處理芯片作為終端的CPU,該芯片是專門為網絡應用設計的處理器,是一款由Samsung為手持設備設計的低功耗、高度集成的32位RISC處理器。它的顯著特性是它是一個32位ARM920T RISC處理器,實現了MMU,AMBABUS和Harvard高速緩沖體系結構。通過提供一系列完整的系統(tǒng)外圍設備,S3C2410大大減少了整個系統(tǒng)的成本,消除了為系統(tǒng)配置額外器件的需要。另外,它的工作頻率最高達到203MHz,使得處理器輕松運行于Windows CE,Linux等操作系統(tǒng)以及進行較為復雜的信息處理。

    圖1 VOIP語音終端原理框圖

    圖2 VOIP應用層軟件流程圖

    2)語音編解碼模塊:本文所設計的VOIP語音終端支持G.711、G.723.1、G.729和CVSD等多種編解碼格式,我們選用美國MX.COM.INC公司的CMX639芯片完成CVSD編碼, 其他編碼利用TI公司的TMS320VC5502實現。其中,TMS320VC- 5502是編解碼模塊的主控,所有編解碼的數據必須經過TMS320VC5502。這么做的好處是可以節(jié)約S3C2410的接口資源。

    3)CODEC模塊:該模塊的主要功能是完成話音數據的A/D和D/A轉換,我們選擇了ANALOG DEVICES公司的AD73311芯片完成CODEC功能,它同TMS320VC5502交互的是64Kbps的PCM數據。另外,CMX639的輸人輸出必須是模擬信號,因此我們利用S3C2410控制一個繼電器或模擬開關來實現模擬音頻信號的分路。

    4.VOIP語音終端的軟件設計

    在已經配置好的硬件基礎上,就需要定制平臺和編寫代碼實現各個功能模塊,最終實現整個終端系統(tǒng)。軟件設計主要包括三部分工作:操作系統(tǒng)的選擇與移植、SIP協(xié)議棧實現和語音編解碼庫的實現和應用程序的設計。

    4.1 操作系統(tǒng)的選擇與移植

    1)選擇Linux作為底層操作系統(tǒng)。

    2)本系統(tǒng)的開發(fā)環(huán)境為:操作系統(tǒng):Centos7;目標板:ARM9開發(fā)板;編輯器:vi編輯器;編譯器:arm-linux-gcc 3.4.1;編程語言:C語言。

    4.2 SIP協(xié)議棧實現

    選擇開源SIP協(xié)議棧 Osip2/eXosip作為方案的SIP協(xié)議棧來完成應用程序的開發(fā),同時按eXosip的推薦采用oRTP協(xié)議棧來實現實時傳輸協(xié)議RTP。Osip2/eXosip和oRTP協(xié)議棧都是用標準c實現的協(xié)議棧,但其默認運行環(huán)境為PC上的Linux,要把它運用到方案的嵌入式環(huán)境中,就需要對其進行編譯移植工作。

    主要的編譯步驟如下:

    ①建立安裝樹,并設定路徑。

    Mkdir /armbuild

    ExportARM_INSTALL_TREE=/armbuild

    ②編譯Osip2。

    ./configure-prefix=/usr-host=arm-linux-with-gnu-ld-disable-static

    make

    make install DESTDIR=$ARM_INSTALL_TREE

    ③編譯eXosip。

    ./configure-prefix=/usr-host=arm-linux-with–gnu-ld-disable-static-disable-glib-with-osip=$ARM_INSTALL_TREE/usr

    make

    make install DESTDIR=$ARM_INSTALL_TREE

    ④編譯oRTP。

    ./configure-prefix=/usr-host=arm-linux-with-gnu-ld-disable-static

    make

    make install DESTDIR=$ARM_INSTALL_TREE

    ⑤最后將安裝樹目錄內生成的庫文件放到目標板根文件系統(tǒng)RAMDISK內的/usr目錄下。

    4.3 語音編解碼庫的實現

    對于語音編解碼庫,我們選用開源的語音編解碼算法 SPEEX。同樣,對其調用的方法,先將其用交叉編譯器編譯為ARM平臺的庫文件,然后下載到目標板中,應用程序通過庫文件對其進行調用。

    交叉編譯步驟為:

    ./configure -prefix=/usr-host=arm -linux-with-gun-ld-disable-static-enable-fixed-point -enable-arm-asm

    make

    make install DESTDIR=$ARM INSTALL_TREE

    4.4 應用程序的設計

    對于應用程序部分的開發(fā),我們主要是調用Osip2/eXosip協(xié)議庫的API接口函數,來完成VOIP語音終端的呼叫過程。主要使用的API有:

    1)eXosip_answer_call():建立通話,如拒絕通話或超過一分鐘無確認,則中止呼叫。

    2)eXosip_build_initial_invite():進行呼叫。

    3)eXosip_initiate_call():進行通話。

    4)eXosip_terminate_call():中止呼叫。

    軟件流程見圖2所示。

    程序在PC上編寫完后,用交叉編譯器編譯成ARM平臺的可執(zhí)行文件,再下載到目標板上運行。

    5.結論

    隨著VOIP技術的飛速發(fā)展,人們對互聯(lián)網免費的語音業(yè)務的使用越來越多。本文研究設計了一種以AMR9為平臺的VOIP語音終端的方法。該設計中涉及的SIP協(xié)議和語音編解碼庫文件開源代碼種類多,ARM嵌入式硬件平臺成熟,設計使用時靈活可靠,大大節(jié)約系統(tǒng)資源,具有很大市場潛力。

    參考文獻

    [1]張輝,韓佩富等.VOIP在嵌入式終端中的實現[J].通信電子技術,2012.

    [2]徐山峰,謝佳.基于SIP協(xié)議的VoIP會議系統(tǒng)的研究與實現[J].計算機光盤軟件與應用,2014(7).

    [3]張小恒.極低速率VOIP 語音終端設計[J].電子制作,2014(5).

    [4]沈鑫剡.多媒體傳輸網絡與VoIP 系統(tǒng)設計[M].人民郵電出版社,2005.

    [5]韋東山.嵌入式linuxl應用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.

    [6]Rosenberg J,sehulzrinne H,Camarillo G,et a1.SIP:sessionlnitiationProtocol[S].RFC3261,2002.

    作者簡介:謝于晨(1983—),女,碩士,現供職于江西科技學院,主要研究方向:嵌入式開發(fā),移動通信等。

    清远市| 黑水县| 昔阳县| 上高县| 永泰县| 新郑市| 五台县| 浦东新区| 无为县| 呼和浩特市| 定陶县| 万山特区| 尼玛县| 土默特左旗| 介休市| 旬阳县| 治多县| 会理县| 古蔺县| 安化县| 阳山县| 南岸区| 余干县| 宁安市| 化隆| 灵川县| 原阳县| 马山县| 大埔县| 天等县| 新安县| 夏津县| 灌云县| 曲水县| 桃江县| 浙江省| 康马县| 柳林县| 大丰市| 靖远县| 望奎县|