基于μclinux的ip电话

基于μclinux的ip电话

ID:10657894

大小:59.50 KB

页数:5页

时间:2018-07-07

基于μclinux的ip电话_第1页
基于μclinux的ip电话_第2页
基于μclinux的ip电话_第3页
基于μclinux的ip电话_第4页
基于μclinux的ip电话_第5页
资源描述:

《基于μclinux的ip电话》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于μClinux的IP电话

2、第1lunp;Sullivan调研公司的报告中预计,到2007年VoIP的通话量将占全部通话量的75%,甚至更高一些。NiosCPU是一种采用流水线技术、单指令流的RISC处理器,又是一种软核CPU,专门针对可编程逻辑器件进行了优化,因此是一种可配置的通用RISC处理器,可以与用户自定义逻辑结合,构成完整、功能强大的SOC系统,在嵌入式系统的设计中已成为趋势。嵌入式操作系统是嵌入式系统的灵魂,可以显著提高软件开发效率和进行软件复用。针对当前日益复杂的嵌入式系统开发,应用操作系统是保证产品面市时间的关键。嵌入式μCli

3、nux操作系统是一种性能优良、源码公开且被广泛应用的的嵌入式操作系统,具有高度灵活的可定制内核。目前尚无NiosCPU的移植版本,为了完成参赛作品,我们自行移植了μClinux操作系统的NiosCPU版本,继而在μClinux操作系统上完成了IP的设计开发。二、功能说明基于μClinux的IP分为服务端(接受方)和客户端(呼叫方)。发起通话请求的一端称为客户端,另一端则为服务端。根据不同应用场景,服务端和客户端可以调换角色,也就是说,任意一端都可以发起通话请求。客户端发起通话请求,输入服务端IP地址,两端通过网络连接成功后,利用麦克风和听筒,就可

4、以进行通话了。本作品的实现分为硬件和软件两个部分。硬件部分进行A/D、D/A板的开发设计,以实现语音的数/模和模/数转换功能。采用AD7811、AD7305等芯片,实现了A/D,D/A的控制时序逻辑以及采样率的设置等功能。软件实现主要包含以下四个步骤:第一,将嵌入式操作系统μClinux移植到Nios处理器上。第二,移植μClinux下的smclan9111c1网卡驱动程序,实现IP连接。第三,开发μClinux下语音板(自行开发设计)的驱动程序。第四开发μClinux下的应用程序,实现IP功能,分别为服务端和客户端应用程序,提供IP的呼叫和等待

5、通话功能。三、性能参数语音板AD7811采用的是Analog公司的一款A/D转换器,它具有如下一些关键特性:*4个模拟输入通道;*1个数字输出通道;*分辨率为10位;*串行接口;*2.5V内部参考电压;*外部参考电压范围为1.2V_VDD;*模拟输入范围为0_Vref;*可通过控制寄存器进行软件控制;*电源供电范围为2.7_5V。在本系统中用到2个模拟输入通道,分辨率采用10位中的8位。AD7305是Analog公司的一款D/A转换器,它具有如下一些关键特性:*4个模拟输出通道;*8个数字输入通道;*分辨率为8位;*并行接口;*外部参考电压范围为

6、VSS_VDD;*模拟输出范围为VSS_VDD;*电源供电范围为2.7_5V。四、系统构成本作品的体系结构框架如图1所示,软件流程图如图2所示。服务端应用程序客户端应用程序网卡驱动程序A/DD/A驱动程序μClinux内核AlteraStratix1S10NiosCPUA/DD/A的接口逻辑语音板500)this.style.ouseg(this)">图1体系结构500)this.style.ouseg(this)">图2软件流程图五、设计描述本系统的设计分为硬件和软件两部分,硬件主要是在ALTERA的Stratix板上扩充了一块语音板,用来接受

7、语音的输入并实现模/数的转换;软件部分是移植μClinux操作系统,编写A/D板的驱动及上层应用程序的开发。1.硬件部分在实现语音模/数转换时主要应控制AD7811、AD7305的时序,在模拟信号输入时用运放调整电压至AD7811能接受的范围。图3是语音板时序控制状态转换图。500)this.style.ouseg(this)">图3语音板的序控制状态转换在这里我们用SOPCBuilder提供的用户自定义接口来实现以下功能:到avalon总线的接口,对A/D、D/A芯片的控制时序;按特定采样率进行采样,利用可读/写寄存器任意更改采样率;采用内置缓

8、冲存储采样数据,每采样32次才发出一次中断,从而减少CPU中断的次数。SOPCBuilder设置如图4所示。图4SOPCBuilder设置部分接口逻辑如下:od4=1thendata0(i)<=DOUT;endif;ifst=0thenstate<=set1;st<=39;elsest<=st-1;endif;p,buf+i);kbuf_p;}}else//分两次写完{if(e:count=%d/n",count);for(i=0;i<8192-p,buf+i);kbuf_p;}for(p,buf+i);kbuf_p

9、;}}这里缓冲区的大小是8192个字节,采用的是环状缓冲区。上层应用程序分为客户端和服务端,在服务端先启动侦听,然后运行客户端程序,输入

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。