<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9微處理器S3C2410的IP電話(huà)通信設(shè)計(jì)

          基于ARM9微處理器S3C2410的IP電話(huà)通信設(shè)計(jì)

          作者: 時(shí)間:2010-03-31 來(lái)源:網(wǎng)絡(luò) 收藏

          2 單機(jī)的硬件
          分為接收方和呼叫方。發(fā)起通話(huà)請(qǐng)求的一端稱(chēng)為呼叫方,另一端為接收方。根據(jù)不同的應(yīng)用場(chǎng)景,呼叫方和接收方可以調(diào)換角色,也就是說(shuō),任意一方都可以發(fā)起通話(huà)請(qǐng)求,呼叫方發(fā)起通話(huà)請(qǐng)求并輸入接收方的地址,兩方通過(guò)網(wǎng)絡(luò)連接成功后,利用麥克風(fēng)和聽(tīng)筒就可以進(jìn)行談話(huà)了。
          IP通話(huà)的主要工作在網(wǎng)絡(luò)機(jī)單機(jī)部分。隨著現(xiàn)在ARM技術(shù)的高度發(fā)達(dá)和日趨成熟,中選擇了和μC/0S-II搭建平臺(tái)來(lái)制作網(wǎng)絡(luò)電話(huà)單機(jī)部分。一般單機(jī)的基本工作框圖如圖2所示。


          在圖2中,CPU內(nèi)核模塊是搭建一個(gè)帶CPU及存儲(chǔ)器的工作核心。其中的采用的就是三星公司的(20T),F(xiàn)lash采用的
          是SST公司的SST39VFl60的NOR Flash,SDRAM則采用hynix公司的HY57V641620HG;以太網(wǎng)接口主要幫助CPU完成TCP/IP數(shù)據(jù)包的接收和發(fā)
          送。本采用的RTL8019AS是一種全雙工的即插即用型以太網(wǎng)控制器,它兼容RTL8019控制軟件和NE2000 8bit或16bit的傳輸,并支持UTP、
          AUI、BNC和PNP自動(dòng)檢測(cè)模式,同時(shí)支持外接閃爍存儲(chǔ)器讀寫(xiě)操作以及I/0口地址的完全解碼,此外,它還具有LED指示功能,其接口符合Ethernet2和E802.3、10Base5、lOBase2、10BaseT等標(biāo)準(zhǔn)。
          系統(tǒng)中的顯示模塊采用一塊普通數(shù)顯LCD,主要用來(lái)完成電話(huà)號(hào)碼的顯示及一些本機(jī)工作狀態(tài)的顯示;鍵盤(pán)模塊和EEPROM主要提供網(wǎng)絡(luò)電
          話(huà)機(jī)的撥號(hào)鍵盤(pán),以完成撥號(hào)和電話(huà)機(jī)的功能設(shè)置。EEPROM主要用于系統(tǒng)參數(shù)的設(shè)置和存儲(chǔ)。語(yǔ)音模塊可選用飛利浦半導(dǎo)體公司的UDAl341TS
          音頻編解碼器。另外,系統(tǒng)中的上位機(jī)接口主要完成一些參數(shù)的設(shè)定和一些已經(jīng)被記錄的參數(shù)的讀取。

          3 系統(tǒng)軟件設(shè)計(jì)
          軟件方面的工作主要是驅(qū)動(dòng)程序的編寫(xiě)、任務(wù)的劃分和任務(wù)的編寫(xiě)等三個(gè)方面。由于μC/OS-II基本上不提供API接口庫(kù)或者需要額外購(gòu)
          買(mǎi),因此,網(wǎng)絡(luò)電話(huà)中需要編寫(xiě)的主要驅(qū)動(dòng)軟件有包括TCP/IP、液晶驅(qū)動(dòng)、EEPROM驅(qū)動(dòng)、鍵盤(pán)驅(qū)動(dòng)、IO驅(qū)動(dòng)、USB驅(qū)動(dòng)等程序。這些驅(qū)動(dòng)程序的編寫(xiě)一般都有固定的模式和套路。一般情況下,IP電話(huà)軟件應(yīng)包括完成語(yǔ)音通話(huà)所需的所有功能。該軟件按功能可劃分為圖3所示的四部分。


          3.1 呼叫處理模塊
          呼叫處理模塊主要完成呼叫的建立與拆除功能。呼叫控制可采用SIP協(xié)議建立會(huì)話(huà)。呼叫建立過(guò)程通常是先由一個(gè)SIP終端向本地的代理服務(wù)器發(fā)出呼叫請(qǐng)求,本地的代理服務(wù)器則通過(guò)查詢(xún)本地的重定向服務(wù)器來(lái)查找下一個(gè)代理服務(wù)器的地址,并向其轉(zhuǎn)發(fā)呼叫請(qǐng)求。當(dāng)下一個(gè)代理服務(wù)器收到呼叫請(qǐng)求后,首先通過(guò)定向服務(wù)器查找被叫所在網(wǎng)絡(luò)的代理服務(wù)器,然后向該代理服務(wù)器轉(zhuǎn)發(fā)呼叫請(qǐng)求。被叫所在網(wǎng)絡(luò)的代理服務(wù)器確定被叫終端后,再向被叫終端轉(zhuǎn)發(fā)呼叫請(qǐng)求。最后由被叫終端應(yīng)答,從而實(shí)現(xiàn)連接。
          3.2 語(yǔ)音編碼/解碼模塊
          雖然語(yǔ)音采集所得到的PCM編碼數(shù)據(jù)能夠提供較好的長(zhǎng)途語(yǔ)音質(zhì)量,但其速率往往過(guò)高,因而占用網(wǎng)絡(luò)帶寬資源過(guò)高。為此,一般都需要對(duì)語(yǔ)音數(shù)據(jù)進(jìn)一步壓縮,以降低語(yǔ)音編碼的速率。這樣,相應(yīng)的,在接收端也就需要同樣的解壓算法來(lái)恢復(fù)原始語(yǔ)音數(shù)據(jù)。編制這部分代碼可采用現(xiàn)在比較成熟的語(yǔ)音編解碼算法,并進(jìn)行一定的改進(jìn),以提高語(yǔ)音通話(huà)質(zhì)量。
          3.3 數(shù)據(jù)封包/拆包模塊
          數(shù)據(jù)封包/拆包軟件模塊主要對(duì)壓縮編碼后的語(yǔ)音數(shù)據(jù)進(jìn)行打包,包括添加包頭、時(shí)標(biāo)和其他信息,以使其形成語(yǔ)音包。在接收時(shí)。則應(yīng)進(jìn)行相應(yīng)的拆包,并提取語(yǔ)音壓縮包。
          3.4 數(shù)據(jù)傳輸模塊
          該模塊主要完成語(yǔ)音包的發(fā)送和接收。因?yàn)榘岩纛l數(shù)據(jù)實(shí)時(shí)地傳輸給對(duì)方才是保證實(shí)時(shí)語(yǔ)音的關(guān)鍵。所以,在考慮可靠性和實(shí)時(shí)性方面,更應(yīng)注重速度和實(shí)時(shí)性。故在選擇協(xié)議時(shí),可采用UDP協(xié)議,并在編程時(shí)使用對(duì)應(yīng)的數(shù)據(jù)報(bào)套接字。

          4 結(jié)束語(yǔ)
          IP電話(huà)系統(tǒng)是利用現(xiàn)有計(jì)算機(jī)網(wǎng)絡(luò)資源組成的電話(huà)通信系統(tǒng),它無(wú)需鋪設(shè)電話(huà)線(xiàn)和購(gòu)置電話(huà)通信網(wǎng)絡(luò)設(shè)備,故可節(jié)省大量建設(shè)電話(huà)網(wǎng)絡(luò)的設(shè)備費(fèi)、線(xiàn)路費(fèi)和工程費(fèi)用,可在不需要鋪設(shè)電話(huà)線(xiàn)的情況下,方便地實(shí)現(xiàn)電話(huà)通信,增加電話(huà)用戶(hù),縮短安裝工程周期,提高計(jì)算機(jī)網(wǎng)絡(luò)資源的利用率,擴(kuò)大電話(huà)的普及范圍,同時(shí)可加大信息傳遞量,因而具有良好的社會(huì)和經(jīng)濟(jì)效益。

          tcp/ip相關(guān)文章:tcp/ip是什么



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();