基于Nios的IP網(wǎng)絡(luò)電話終端設(shè)計(jì)
基于Nios的IP網(wǎng)絡(luò)電話終端設(shè)計(jì)
楊玉峰,黃煒
(電子科技大學(xué) 通信與信息工程學(xué)院,四川 成都 610054)
摘 要:本文介紹了如何在Altera開(kāi)發(fā)平臺(tái)上應(yīng)用Quartus Ⅱ軟件平臺(tái)的SOPC Builder 設(shè)計(jì)工具,把Nios 軟核處理器、以太網(wǎng)芯片控制電路、其它外圍器件的控制電路及用戶(hù)邏輯電路都集成在了一片F(xiàn)PGA可編程邏輯芯片上。在這個(gè)系統(tǒng)硬件平臺(tái)上運(yùn)行uc/OS 嵌入式操作系統(tǒng)、TCP/IP 網(wǎng)絡(luò)通信協(xié)議和應(yīng)用軟件,實(shí)現(xiàn)了基于Nios的IP網(wǎng)絡(luò)電話功能。
關(guān)鍵詞: FPGA IP電話 TCP/IP協(xié)議 可編程片上系統(tǒng) Nios
Design of LAN IP Telephone Based on Nios
Yang yufeng, Huang wei
(College of Communication & Information Enginnering,University of Electronic Science & Technology of China,Chengdu Sichuan 610054,China)
Abstract:This paper introduced how to integrate Nios soft MCU core、Ethernet MAC/PHY IC controller and other peripheral equipment`s controllers in FPGA by using Quartus Ⅱ and SOPC Builder.Based on the hardware platform,we can run uc/OS embedded system、TCP/IP network protocol and some applications. Thereby,we realized LAN IP Telephone based on Nios.
Key words:FPGA IP telephon TCP/IP protocol SOPC Nios
一.系統(tǒng)概述
隨著因特網(wǎng)技術(shù)的快速發(fā)展,IP網(wǎng)絡(luò)電話已經(jīng)得到廣泛使用。所謂IP網(wǎng)絡(luò)電話是指利用因特網(wǎng)以分組數(shù)據(jù)包形式傳輸語(yǔ)音/傳真等的新型電信業(yè)務(wù),簡(jiǎn)稱(chēng)VoIP(Voice over IP:IP網(wǎng)絡(luò)承載語(yǔ)音業(yè)務(wù))。它以低廉的價(jià)格,靈活的應(yīng)用使傳統(tǒng)電信業(yè)務(wù)受到極大的挑戰(zhàn),截止目前,已經(jīng)超過(guò)長(zhǎng)途業(yè)務(wù)量的50%。當(dāng)然,這包括各大電信運(yùn)營(yíng)商推廣IP電話卡形式的IP電話長(zhǎng)途業(yè)務(wù),其特點(diǎn)是接入部分使用傳統(tǒng)電信終端(如電話機(jī)、手機(jī)),以特殊號(hào)碼形式識(shí)別(179XX),在主干線上以分組數(shù)據(jù)包的形式在因特網(wǎng)上傳輸話音。目前專(zhuān)家普遍認(rèn)為VOIP將代表電話未來(lái)的發(fā)展方向,甚至有這樣一句話:every thing is over IP(一切都將基于IP)。許多人相信IP電話時(shí)代即將到來(lái),F(xiàn)rost&Sullivan調(diào)研公司的報(bào)告中預(yù)計(jì),到2007年VOIP的通話量將占全部通話量的75%,甚至更高一些。因此,在未來(lái)的幾年內(nèi),IP電話必將在電信市場(chǎng)占到舉足輕重的地位,對(duì)以太網(wǎng)電話終端的研究是符合市場(chǎng)需求并具有巨大的市場(chǎng)潛力和發(fā)展前景。
Nios是Altera 公司開(kāi)發(fā)的一種采用流水線技術(shù)軟核處理器,專(zhuān)門(mén)針對(duì)可編程邏輯器件進(jìn)行了優(yōu)化,因此是一種可配置的通用RSIC微處理器,可以與用戶(hù)自定義邏輯結(jié)合。構(gòu)成完整、功能強(qiáng)大的SOC系統(tǒng),在嵌入式系統(tǒng)設(shè)計(jì)中已成為趨勢(shì)。應(yīng)用SOPC 技術(shù)把Nios 配置進(jìn)FPGA 芯片后,網(wǎng)絡(luò)電話終端設(shè)備不再需要外部處理器,用單一FPGA 芯片就可以實(shí)現(xiàn)以前需要FPGA + MCU 才能完成的功能。
嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的靈魂,可以顯著提高軟件操作效率并進(jìn)行軟件復(fù)用。針對(duì)當(dāng)前日益復(fù)雜的系統(tǒng)開(kāi)發(fā),應(yīng)用操作系統(tǒng)是保證產(chǎn)品上市時(shí)間的關(guān)鍵。嵌入式uc/OS操作系統(tǒng)是一種性能優(yōu)良、源碼公開(kāi)的免費(fèi)操作系統(tǒng),具有高度靈活性。為此我們自行移植了uc/OS操作系統(tǒng)的Nios CPU版本,繼而在操作系統(tǒng)上完成了IP電話的設(shè)計(jì)。
二.系統(tǒng)功能說(shuō)明
基于Nios的IP電話分為接受方和呼叫方,發(fā)起通話請(qǐng)求的一端稱(chēng)為呼叫方,另一端為接受方。根據(jù)不同的應(yīng)用場(chǎng)景,呼叫方和接受方可以調(diào)換角色,也就是說(shuō)任意一方都可以發(fā)起通話請(qǐng)求。
呼叫方發(fā)起通話請(qǐng)求,輸入接受方IP地址,兩方通過(guò)網(wǎng)絡(luò)連接成功后,利用麥克風(fēng)和聽(tīng)筒,就可以進(jìn)行談話了。
本設(shè)計(jì)的實(shí)現(xiàn)分為硬件和軟件兩個(gè)部分。
硬件部分由帶Nios 軟核CPU 的FPGA芯片、外部數(shù)據(jù)存儲(chǔ)器Flash RAM 和SRAM、帶AD 和DA 變換的PCM語(yǔ)音編解碼芯片電路、RS232 串行通信電路、以太網(wǎng)網(wǎng)絡(luò)模塊及RJ45接口、JTAG配置接口電路組成,此外還有電源電路等。
軟件實(shí)現(xiàn)主要包含以下幾個(gè)步驟:
1. 將嵌入式操作系統(tǒng)uc/OS移植到NIOS處理器上;
2. 開(kāi)發(fā)語(yǔ)音采集編解碼芯片的接口驅(qū)動(dòng)程序;
3. 開(kāi)發(fā)操作系統(tǒng)下的應(yīng)用程序,實(shí)現(xiàn)IP電話功能。分別為呼叫方和接受方的應(yīng)用程序,提供IP電話的電話呼叫和等待通話功能。
三.性能參數(shù)
支持頻率范圍在300到3400HZ的單聲道模擬語(yǔ)音信號(hào)通話;
系統(tǒng)將20ms的PCM語(yǔ)音數(shù)據(jù)直接打成語(yǔ)音數(shù)據(jù)包封裝傳輸?shù)揭蛱鼐W(wǎng);
工作電壓低,具有低功耗的特性。
四.系統(tǒng)構(gòu)成
系統(tǒng)主要以?xún)?nèi)嵌Nios軟核處理器的FPGA為核心處理單元,輔以以太網(wǎng)MAC/PHY控制器和PCM語(yǔ)音編解碼芯片完成整個(gè)系統(tǒng)中的信號(hào)處理工作。其主要工作是完成模擬語(yǔ)音信號(hào)到PCM語(yǔ)音信號(hào)的編解碼,以太網(wǎng)數(shù)據(jù)的接收和發(fā)送,協(xié)議處理,談話的呼叫建立和釋放等。
本系統(tǒng)的硬件結(jié)構(gòu)框圖如圖4.1所示:
系統(tǒng)軟件體系結(jié)構(gòu)如圖4.2所示:
呼叫方應(yīng)用程序 |
被叫方應(yīng)用程序 | |
SOPC Build自動(dòng)生成驅(qū)動(dòng)程序庫(kù) |
PCM語(yǔ)音編解碼芯片驅(qū)動(dòng)程序 | |
uc/OS操作系統(tǒng)內(nèi)核 | ||
Nios CPU、PCM語(yǔ)音編解碼芯片接口邏輯、網(wǎng)絡(luò)模塊、鍵盤(pán)顯示模塊等硬件電路 |
圖4.2 系統(tǒng)軟件體系結(jié)構(gòu)圖
五.設(shè)計(jì)描述
本系統(tǒng)的設(shè)計(jì)分為硬件和軟件兩個(gè)部分。硬件設(shè)計(jì)由于借助Altera的Stratix開(kāi)發(fā)板,所以主要任務(wù)是擴(kuò)展一塊語(yǔ)音板,用來(lái)實(shí)現(xiàn)語(yǔ)音信號(hào)的數(shù)模變換和PCM語(yǔ)音編解碼功能;軟件部分移植uc/OS操作系統(tǒng),編寫(xiě)驅(qū)動(dòng)程序和上層應(yīng)用程序的開(kāi)發(fā)。
1. 硬件部分
1.1 語(yǔ)音板電路設(shè)計(jì)
該部分采用OKI公司的A律PCM語(yǔ)音信號(hào)編/解碼芯片MSM7702-3完成模擬語(yǔ)音到PCM信號(hào)的轉(zhuǎn)換。該芯片支持頻率范圍在300到3400HZ的單聲道模擬語(yǔ)音信號(hào)到PCM語(yǔ)音信號(hào)信號(hào)相互轉(zhuǎn)換。該芯片具有如下特點(diǎn):
1.工作電壓低(2. 7-3. 8V ),低功耗的特性。
2.支持64/128/256/512/1024/2048 kHz等頻率的串行數(shù)據(jù)輸出。
3.內(nèi)置PLL電路,低電壓運(yùn)算放大器,具有可調(diào)的輸出增益。
4.芯片模擬信號(hào)輸出引腳能直接驅(qū)動(dòng)1.2k的負(fù)載。
這部分的原理圖如圖5.1所示,該部分的輸入增益可調(diào)是通過(guò)調(diào)節(jié)圖中的電阻R4和R3的值來(lái)實(shí)現(xiàn)的。其增益的具體運(yùn)算公式如式(5.1)所示。該增益的最大的增益值不能超過(guò)l0。
增益:Gain=1-1-R4/R3 …………… 式(5. 1)
圖5.1 MSM7702-3原理圖
FPGA接收和發(fā)送PCM語(yǔ)音數(shù)據(jù)時(shí),按照MSM7702-3的接口時(shí)序進(jìn)行。MSM7702-3提供了發(fā)送PCM信號(hào)接口(BCLK,XSYNC和PCMOUT引腳)和接收PCM信號(hào)接口(BCLK, RSYNC和PCMIN引腳),其時(shí)序如圖5.2和圖5.3所示。
BCLK:接收和發(fā)送數(shù)據(jù)的時(shí)鐘,頻率為64KHz。
XSYNC:用于同步PCMOUT引腳的數(shù)據(jù)輸出的同步信號(hào)。
PCMOUT:為輸出的串行PCM語(yǔ)音數(shù)據(jù)引腳。
RSYNC:用于同步PCMIN引腳的數(shù)據(jù)輸入的同步信號(hào)。
PCMIN:為輸入的串行PCM語(yǔ)音數(shù)據(jù)引腳。
圖5.2 發(fā)送PCM數(shù)據(jù)時(shí)序
圖5.3 接收PCM數(shù)據(jù)時(shí)序
根據(jù)MSM7702-3芯片數(shù)據(jù)收發(fā)時(shí)序,設(shè)計(jì)FPGA和MSM7702-3的接口電路結(jié)構(gòu)如圖5.4所示。
1.2 用SOPC Builder設(shè)計(jì)系統(tǒng)模塊硬件
用SOPC Builder可以進(jìn)行系統(tǒng)模塊硬件設(shè)計(jì)和底層軟件生成。進(jìn)行硬件模塊設(shè)計(jì)時(shí),SOPC Builder提供圖形化配置界面,備有一些常用外設(shè)的IP ( Intellectual Property) 模塊,如SRAM、Flash RAM、UART、Ethernet Interface、Interval timer 、Parallel I/ O 等。這些已開(kāi)發(fā)好并已經(jīng)引入到SOPC Builder 環(huán)境中的功能模塊被稱(chēng)為部件(Component) ,打開(kāi)SOPC Builder 的圖形界面時(shí)可以在左邊模塊池中看到這些功能部件。用戶(hù)還可以用“Interface to User Logic”加入自己的外設(shè)設(shè)計(jì)文件,或直接加外設(shè)接口??梢圆捎玫耐庠O(shè)設(shè)計(jì)文件是用輸入的電路原理圖或HDL描述語(yǔ)言寫(xiě)的. vhd 或. v 文件。對(duì)于本設(shè)計(jì)來(lái)說(shuō),就是將在前面提到的MSM7702-3 接口以用戶(hù)自定義接口的方式添加進(jìn)來(lái),SOPC Builder 可以進(jìn)行系統(tǒng)配置以及生成,系統(tǒng)配置除了對(duì)外設(shè)設(shè)置外還包括啟動(dòng)程序、中斷向量表、系統(tǒng)啟動(dòng)地址等的設(shè)置。具體如圖5.5所示:
圖5.5 系統(tǒng)硬件模塊
2.軟件部分
軟件設(shè)計(jì)包括嵌入式操作系統(tǒng)的移植、網(wǎng)絡(luò)協(xié)議棧、驅(qū)動(dòng)設(shè)計(jì)及應(yīng)用級(jí)代碼編寫(xiě)等部分,下面就對(duì)這幾部分作簡(jiǎn)單介紹。
2.1 uc/OS 操作系統(tǒng)移植
uc/OS 操作系統(tǒng)是美國(guó)人Jean Labrosse 于1992 年開(kāi)始編寫(xiě)的,它是一種適合于小型、微控制器的可剝奪實(shí)時(shí)操作系統(tǒng)。uc/OS 的內(nèi)核除了沒(méi)有網(wǎng)絡(luò)協(xié)議棧之外,也沒(méi)有文件系統(tǒng),但是本設(shè)計(jì)中并不需要對(duì)語(yǔ)音數(shù)據(jù)按文件方式保存,因而使用uc/OS 可以滿(mǎn)足需要。
uc/OS 在設(shè)計(jì)時(shí)就充分考慮到在不同平臺(tái)上移植的需求,將同平臺(tái)相關(guān)的部分局限在一個(gè)很小的范圍內(nèi),對(duì)于不同的平臺(tái)只需對(duì)下面一些函數(shù)和宏進(jìn)行重寫(xiě)。
◆ OS_ENTER_CRITICAL 和OS_EXIT_CRITICAL :這是兩個(gè)宏,用來(lái)進(jìn)行臨界段保護(hù)。在本設(shè)計(jì)中使用匯編代碼開(kāi)關(guān)中斷來(lái)實(shí)現(xiàn)。
◆ OS_TASK_SW :這是一個(gè)用于進(jìn)行任務(wù)切換的宏。本設(shè)計(jì)中利用C P U 的軟件中斷方式實(shí)現(xiàn)。也就是說(shuō)調(diào)用此宏產(chǎn)生軟件中斷,然后由相應(yīng)的中斷處理程序來(lái)具體實(shí)現(xiàn)任務(wù)上下文保護(hù)和任務(wù)切換。
◆ OSIntCtxSw:實(shí)現(xiàn)中斷級(jí)任務(wù)切換,用純匯編實(shí)現(xiàn)。
◆ OSCtxSw:實(shí)現(xiàn)用戶(hù)級(jí)上下文切換,用純匯編實(shí)現(xiàn)。
◆ OSTickISR:為系統(tǒng)定時(shí)器中斷的處理函數(shù),用純匯編實(shí)現(xiàn)。
◆ OSTaskStkInit:用來(lái)在創(chuàng)建任務(wù)時(shí),對(duì)任務(wù)堆棧進(jìn)行初始化。
OS_CFG.H 用來(lái)配置內(nèi)核,用戶(hù)根據(jù)需要對(duì)內(nèi)核進(jìn)行定制,設(shè)置系統(tǒng)的基本情況;INCLUDES.H 為系統(tǒng)頭文件,包括了整個(gè)實(shí)時(shí)系統(tǒng)所需要的內(nèi)核以及用戶(hù)的頭文件。
2.2 網(wǎng)絡(luò)協(xié)議棧
本系統(tǒng)采用的是SOPC Builder 中包含針對(duì)Nios 的網(wǎng)絡(luò)協(xié)議棧,該棧以名為Plugs 的函數(shù)庫(kù)的形式提供給設(shè)計(jì)者,該庫(kù)向軟件編寫(xiě)者隱藏了底層硬件細(xì)節(jié),以類(lèi)似于unix 套接字的方式實(shí)現(xiàn)了一個(gè)精簡(jiǎn)的網(wǎng)絡(luò)協(xié)議棧。它支持以下一些網(wǎng)絡(luò)協(xié)議:IP、ARP、ICMP 、UDP 、TCP 。
使用該庫(kù)在硬件上有四個(gè)要求:必須使用Nios CPU,需要20KB 的代碼存儲(chǔ)空間,需要4KB 的數(shù)據(jù)存儲(chǔ)空間,系統(tǒng)中需要有一個(gè)專(zhuān)供其使用的定時(shí)器。
2.3 驅(qū)動(dòng)及應(yīng)用級(jí)代碼編寫(xiě)設(shè)計(jì)
語(yǔ)音板驅(qū)動(dòng)程序設(shè)計(jì)主要由以下幾個(gè)部分組成:讀緩沖區(qū)內(nèi)容、寫(xiě)入緩沖區(qū)數(shù)據(jù)、產(chǎn)生中斷信號(hào)等。
另外應(yīng)用級(jí)程序中的呼叫連接處理部分是系統(tǒng)中非常重要的部分,它主要完成通話前的呼叫建立過(guò)程及通話結(jié)束后的釋放過(guò)程。下面對(duì)其進(jìn)行詳細(xì)描述,圖5.5是呼叫連接處理部分的狀態(tài)轉(zhuǎn)換圖。
系統(tǒng)上電復(fù)位后,處于IDLE狀態(tài):如果檢測(cè)到用戶(hù)輸入的IP地址,系統(tǒng)進(jìn)入MASTER CALL狀態(tài);如果此時(shí)系統(tǒng)接收到一個(gè)CALL消息后,系統(tǒng)產(chǎn)生一個(gè)Informuse信號(hào),使指示燈工作亮,通知用戶(hù)有電話打進(jìn)來(lái),用戶(hù)拿起話筒時(shí),系統(tǒng)將置Informuse信號(hào)無(wú)效,指示燈熄滅停止工作,系統(tǒng)進(jìn)入SLAVE CONNECT狀態(tài)。
系統(tǒng)處于MASTER CALL狀態(tài):系統(tǒng)產(chǎn)生一個(gè)發(fā)送CALL消息使能信號(hào)xmitC.allMessageEn,控制發(fā)送部分發(fā)送一個(gè)CALL呼叫信號(hào),當(dāng)發(fā)送模塊發(fā)送完該信號(hào)后,產(chǎn)生一個(gè)SendMessageOk信號(hào),系統(tǒng)檢測(cè)到該信號(hào)后,進(jìn)入WAIT CONNECT狀態(tài)。
系統(tǒng)處于WAIT CONNECT狀態(tài):系統(tǒng)等待接收CONNECT消息,同時(shí)設(shè)置一個(gè)定時(shí)器(最大值為4000)。定時(shí)接收CONNECT消息。該定時(shí)器是一個(gè)時(shí)鐘頻率8KHz計(jì)數(shù)器,當(dāng)計(jì)數(shù)到最大值后,產(chǎn)生超時(shí)信號(hào)用于控制接收CONNECT消息是否超時(shí)。如果在規(guī)定時(shí)間內(nèi)正確收到CONNECT消息,系統(tǒng)發(fā)送一確認(rèn)消息ACK,然后進(jìn)入TALK狀態(tài),開(kāi)始通話。如果系統(tǒng)超時(shí)未接收到CONNECT消息,系統(tǒng)置重發(fā)呼叫CALL信號(hào)寄存器有效,返回MASTER CALL狀態(tài),重新發(fā)送呼叫請(qǐng)求CALL信號(hào),同時(shí)將呼叫次數(shù)寄存器(calltimes)加1。一旦系統(tǒng)檢測(cè)到呼叫次數(shù)寄存器(calltimes)值大于3,即系統(tǒng)連續(xù)3次發(fā)送呼叫請(qǐng)求,都沒(méi)有完成,則本次呼叫連接過(guò)程失敗,系統(tǒng)返回IDLE狀態(tài)。如果系統(tǒng)沒(méi)收到CONNECT消息,收到被呼叫方發(fā)來(lái)的BUSY消息(說(shuō)明被呼叫方正在通話),系統(tǒng)無(wú)法建立呼叫連接,系統(tǒng)返回IDLE狀態(tài)。
系統(tǒng)處于TALK狀態(tài):系統(tǒng)內(nèi)部的一個(gè)指示通話進(jìn)行的狀態(tài)寄存器(StartTalk)的值為1表示系統(tǒng)處于通話。系統(tǒng)檢測(cè)用戶(hù)是否掛機(jī),一旦檢測(cè)到用戶(hù)掛機(jī),表示通話結(jié)束,系統(tǒng)將通話狀態(tài)寄存器((StartTalk)置為0,系統(tǒng)進(jìn)入RELEAS COMPLETE狀態(tài)。系統(tǒng)如果檢測(cè)到呼叫方發(fā)來(lái)的release complete消息后,寄存器(StartTalk)置為0,同時(shí)系統(tǒng)進(jìn)入IDLE狀態(tài)。如果系統(tǒng)收到另一呼叫方所發(fā)的CALL消息,系統(tǒng)由于已經(jīng)在和一個(gè)用戶(hù)在通話,不能接收另一個(gè)用戶(hù)的呼叫請(qǐng)求,系統(tǒng)進(jìn)入BUSY狀態(tài)。
系統(tǒng)處于RELEASE COMPLETE狀態(tài):系統(tǒng)發(fā)送一個(gè)release complete消息,該消息發(fā)送完畢后,系統(tǒng)進(jìn)入IDLE狀態(tài)。
系統(tǒng)處于SLAVE CONNECT狀態(tài):系統(tǒng)發(fā)送一個(gè)CONNECT消自,該消息發(fā)送完畢后,系統(tǒng)進(jìn)入WAIT ACK狀態(tài)。
系統(tǒng)處于WAIT ACK狀態(tài):系統(tǒng)等待接收ACK消息,同時(shí)啟動(dòng)定時(shí)器工作(最大值為4000),當(dāng)計(jì)數(shù)到最大值后,產(chǎn)生超時(shí)信號(hào)用于控制接收ACK消息是否超時(shí)。如果系統(tǒng)超時(shí)未收到ACK消息,系統(tǒng)則重發(fā)呼叫CALL信號(hào)寄存器有效,返回SLAVE CONNECT狀態(tài),重新發(fā)送CONNECT信號(hào),同時(shí)將呼叫次數(shù)寄存器 (calltimes)加1。一旦系統(tǒng)檢測(cè)到呼叫次數(shù)寄存器(calltimes)值大于3,即系統(tǒng)連續(xù)3次發(fā)送呼叫連接請(qǐng)求,都沒(méi)有收到確認(rèn)ACK消息,則本次呼叫連接過(guò)程失敗,系統(tǒng)返回IDLE狀態(tài)。如果系統(tǒng)正確收到確認(rèn)ACK消息,系統(tǒng)進(jìn)入TALK狀態(tài),可以開(kāi)始通話。
系統(tǒng)處于BUSY狀態(tài):該BUSY狀態(tài)是指,當(dāng)前系統(tǒng)正在通話階段,同時(shí)接收到另一呼叫方發(fā)來(lái)的呼叫請(qǐng)求CALL消息時(shí)所處的狀態(tài)。系統(tǒng)在此狀態(tài)時(shí),發(fā)送一個(gè)BUSY消息給該呼叫方,拒絕本次呼叫請(qǐng)求。完畢后,系統(tǒng)返回TALK狀態(tài)。
2.4 數(shù)據(jù)的協(xié)議處理
需要說(shuō)明的是,在本系統(tǒng)中呼叫信息和語(yǔ)音信息采用不同的協(xié)議處理方式。呼叫消息用TCP報(bào)文封裝傳送,以確保呼叫信息傳輸?shù)目煽啃裕徽Z(yǔ)音消息用UDP報(bào)文封裝傳送。呼叫前后的協(xié)議處理流程如圖5.6所示。
通話狀態(tài)時(shí)語(yǔ)音數(shù)據(jù)處理流程如圖5.7所示
在本設(shè)計(jì)中沒(méi)有采用語(yǔ)音數(shù)據(jù)包沒(méi)有進(jìn)行壓縮后傳輸,而是直接對(duì)G. 711標(biāo)準(zhǔn)的PCM語(yǔ)音信號(hào)直接打包,故圖中語(yǔ)音壓縮編/解碼未用到。
六. 系統(tǒng)特點(diǎn)
1. 在目前數(shù)字系統(tǒng)開(kāi)發(fā)中,傳統(tǒng)的MCU+FPGA的方式成本較高。本系統(tǒng)采用嵌入Nios軟核的FPGA芯片,并通過(guò)Avalon總線接口,將系統(tǒng)最大限度地集成在一塊芯片中實(shí)現(xiàn),提高了穩(wěn)定性,同時(shí)簡(jiǎn)化了系統(tǒng)軟硬件設(shè)計(jì)。
2. uc/OS 操作系統(tǒng)的移植。uc/OS 操作系統(tǒng)源代碼公開(kāi),便于自行開(kāi)發(fā)各種應(yīng)用軟件程序,因此,進(jìn)行Nios CPU的移植具有極其重要的意義和價(jià)值。
3. 編寫(xiě)操作系統(tǒng)下的語(yǔ)音板的驅(qū)動(dòng)程序。在嵌入式系統(tǒng)設(shè)計(jì)中,常需要根據(jù)數(shù)據(jù)或處理任務(wù)進(jìn)行外設(shè)定制,從而提高整個(gè)系統(tǒng)性能,這也是SOPC Build的長(zhǎng)處所在。只有為這些自定制的外設(shè)進(jìn)行驅(qū)動(dòng)程序開(kāi)發(fā),才能完成操作系統(tǒng)下的應(yīng)用程序開(kāi)發(fā)。
4. 完成uc/OS 下的應(yīng)用程序。分別為呼叫方和接收方應(yīng)用程序提供IP電話的呼叫和等待通話功能。
5. 由于SOPC Builder 開(kāi)發(fā)環(huán)境的完備功能, 可以把注意力集中在系統(tǒng)整體構(gòu)架和功能上來(lái),而無(wú)需過(guò)多的考慮細(xì)節(jié)性的電路設(shè)計(jì),縮短了產(chǎn)品面市周期;同時(shí)由于FPGA和Nios的靈活性,為系統(tǒng)的功能升級(jí)帶來(lái)方便。
七.總結(jié)
基于Nios 進(jìn)行嵌入式IP電話系統(tǒng)設(shè)計(jì)有兩個(gè)突出優(yōu)點(diǎn)。首先,硬件設(shè)計(jì)快速靈活,可擴(kuò)展性強(qiáng)。SOPC Builder 降低了硬件設(shè)計(jì)的難度,縮短了硬件開(kāi)發(fā)周期,提高了設(shè)計(jì)的可靠性。CPU 本身是以軟核的方式實(shí)現(xiàn),其功能可根據(jù)需要進(jìn)行定制。其次,軟件開(kāi)發(fā)容易。SOPC Builder 不但在硬件設(shè)計(jì)上提供了支持,在軟件上也為設(shè)計(jì)者提供了較好的支持,方便驅(qū)動(dòng)程序和上層應(yīng)用軟件的編寫(xiě),并提供了現(xiàn)成的網(wǎng)絡(luò)協(xié)議棧。
由于本系統(tǒng)中是直接對(duì)PCM語(yǔ)音信號(hào)打包發(fā)送,因而要求的帶寬較大。系統(tǒng)的功能也相對(duì)簡(jiǎn)單,下一步的工作可以將語(yǔ)音數(shù)據(jù)壓縮編/解碼引入到FPGA中,減小系統(tǒng)要求的帶寬。同時(shí)還可以將基于H. 263實(shí)時(shí)圖象傳輸系統(tǒng)引入FPGA中,構(gòu)建局域網(wǎng)IP可視電話。
參考文獻(xiàn)
[1] William E.Witowsky.IP Telephone Design and Imeplementation Issue,1998.7.
[2] Nios II Software Developer's Handbook (ver 1.2, Dec 2004)
[3] 潘松、黃繼業(yè)等著. SOPC技術(shù)實(shí)用教程. 清華大學(xué)出版社 2004.6
[4] 謝兵森. 基于嵌入式系統(tǒng)的指揮調(diào)度終端試驗(yàn)研究 . 上海船舶運(yùn)輸科學(xué)研究所碩士論文, 2004.
[5] Jean J . Labrosse 著,邵貝貝譯.μC/ OS Ⅱ—源碼公開(kāi)的實(shí)時(shí)嵌入式操作系統(tǒng). 中國(guó)電力出版社,2003.
[6] 夏宇聞著. Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程. 北京航空航天大學(xué)出版社. 2004.7
原創(chuàng)性聲明
本人聲明所呈交的論文是本人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。據(jù)我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人己經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果。
楊玉峰
2006.03.18
作者簡(jiǎn)介:楊玉峰(1983- ),男,江蘇鹽城人,電子科技大學(xué)在讀碩士研究生,主要研究方向?yàn)榍度胧较到y(tǒng)開(kāi)發(fā)應(yīng)用;黃煒(1952- ),男,湖南寧鄉(xiāng)人,電子科技大學(xué)副教授,碩士生導(dǎo)師,主要研究方向?yàn)楝F(xiàn)代通信中的信號(hào)處理、音頻及視頻數(shù)據(jù)通信、嵌入式系統(tǒng)開(kāi)發(fā)應(yīng)用。
作者聯(lián)系方式:
楊玉峰:地址:電子科技大學(xué)通信與信息工程學(xué)院2004201050班
郵編:610054
E-mail:happyyangyufeng@163.com
電話:(028)83200335 (028)83208880
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論