|
技术文库首页
|
编程
|
IC
|
晶体管
|
精解
|
中频
|
其它
|
电源
|
基础
|
电脑
|
无线
|
液晶
|
微波
|
空调
|
手机
|
|
热水器
|
电动车
|
LED屏
|
焊机
|
您现在的位置: 华玉生活网 >> 技术文库 >> 无线 >> 正文>> 繁體中文

VxWorks下基于CS4281声卡的VOIP设计与实现,网络电话,声卡驱动,UDP通信,VxWorks,C

VOIP的基本原理:通过声音的压缩算法对声音数据编码进行压缩处理,然后把这些声音数据进行打包,经过IP网络把数据包送至接收地,再把这些声音数据包重组,经过解压处理后,还原成原来的声音信号,从而达到由互联网传送声音的目的。VxWorks是常用的嵌入式操作系统,基于VxWorks的嵌入式开发应用非常广泛。本文试图在小范围的以太网环境实现VxWorks操作系统下基于声卡的VOIP的尝试,为某些需要声卡的嵌入式开发提供支持。1VxWorks及

VOIP的基本原理:通过声音的压缩算法对声音数据编码进行压缩处理,然后把这些声音数据进行打包,经过IP网络把数据包送至接收地,再把这些声音数据包重组,经过解压处理后,还原成原来的声音信号,从而达到由互联网传送声音的目的。VxWorks是常用的嵌入式操作系统,基于VxWorks的嵌入式开发应用非常广泛。本文试图在小范围的以太网环境实现VxWorks操作系统下基于声卡的VOIP的尝试,为某些需要声卡的嵌入式开发提供支持。

1 VxWorks及声卡简介

VxWorks是由风河(Wind River System Inc.)公司专门为实时嵌入式系统设计开发的一套具有微内核、高性能、可伸缩的实时操作系统,为程序员提供了高效的实时任务高度、中断管理,实时的系统资源以及实时的任务间通信,并能够根据用户的需求进行组合。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。VxWorks是一种功能强大而且比较复杂的操作系统,VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。VxWorks的优秀特性为编写应用程序和设备驱动程序提供了极大的便利。在VxWorks下,设备驱动程序既可以嵌入到内核中随系统一起启动,也可以作为可加载模块在系统启动之后运行。本文的声卡驱动程序采用后一种方式。

本文选用的声卡是Cirrus Logic公司的CS4281/AC′97。这是一款功能强大的声卡,他主要由CS4281和C2S4297A芯片组成。CS4297A是符合AC′97(Audio Codec′97)规范的一个混合信号串行编解码器。他负责对原始声音信号的采样混音处理,把接收的模拟声音信号转换成数字信号;也将接收的数字音频信号通过一种特殊的音频算法转换成模拟信号。CS4281是一个PCI-Ac′97数字控制器,他提供串行AC′97编解码器(如CS4297A)与并行PCI总线之间的接口。

2 总体设计

程序划分为两个模块:(1) CS4281声卡的VxWorksPCI驱动,实现声音的录音和播放;(2) 通信模块,该模块负责接收驱动模块的声音数据,并打包通过以太网发送;接收以太网的数据,解包成声音数据传给驱动模块。

低层是声卡驱动:从麦克风进来的声音在这里记录,并发送PCM抽样声音数据到上层;同时,声音数据从上层传来并发送到声卡播放,通过耳机输出。主要有以下几个函数:PCI配置空间的分配,完成声卡的查找及内存映射;CS428l及CS4297的初始化,进行一系列的硬件初始化;DMA缓冲区的分配,用来缓存声卡驱动和通信模块之间的声音数据;取样率和格式的设置,选择合适的取样率及格式;声音系统的打开及关闭,控制录音及播放功能的开关;中断处理函数,声卡驱动和通信模块之间通过中断来进行数据的存取。

上层是通信部分:声音数据在这里打包成分组通过网卡发送出去,从网卡接收来的数据在此解包并交给声卡驱动,数据经过以太网的发送和接收通过调用Socket来实现。

2.1 确定取样率

结合实际的实验环境,从诸多的取样率和格式中,选择11025Hz取样频率、8 b单声道。计算最低的数据传输率:

tr>

2.2 设置缓冲区

如果网络中通信量变化较大,将产生时延抖动。需要设置两个缓冲区用来在发送数据和接收数据时进行缓存,以减轻时延抖动的影响,保证通信质量。缓冲区大小应适当,如果太小,将会造成数据丢失;如果太大,抖动时延将增长。

在x86结构中,页面大小是4 kB。这对DMA缓冲大小是个限制,因为DMA需要位于一个内存页面中来保持缓冲区的连续性,且要适应基于UDP的Socket通信,我们确定播放DMA缓冲和录音DMA缓冲大小都为2 kB,并且用“乒乓”技术在这两个缓冲区间传输,那么每1 kB,将有一个播放中断和录音中断。1 s中的中断次数为:1×11k/1k△11。

3 声卡驱动程序

3.1 PCI局部总线

本文所选用的声卡是Cirrus Logic公司的CS4281/AC′97 PCI声卡,作为一个PCI设备,在设备的初始化阶段,他和一般的PCI设备的步骤相同。

每一个PCI总线设备都有一个配置寄存器空间,他使目标设备的配置简单易行。配置空间是一个容量为256B并具有特定结构的地址空间。配置寄存器是PCI设备的硬件与PCI设备的初始化软件及错误处理软件之间的信息交换区,以便软件对PCI设备进行识别和控制以及PCI设备向软件反映设备状态和要求。该空间分为头标区和设备关联区两部分。一个设备的配置空间不仅在系统自举时可以访问,而且在其他时间内也可以访问。

3.2 声卡的驱动结构及流程

(1) 声卡的探测以及入口

VxWorks BSP在syslib.c中探测并初始化系统中的PCI设备,检测设备的I/O映射地址,内存映射地址以及中断向量和级别,这些硬件参数对于主芯片的读写和挂接中断起到至关重要的作用。因此,在这里加入声卡的探测模块。然后将探测到的参数传递给驱动程序入口函数。

在声卡的探测模块中,利用的是CS4281/AC′97的厂商标识和设备标识,得到他的功能号、总线号和设备号.然后配置他的PCI配置空间,将声卡的寄存器映射。最后得到声卡内存映射基地址以及中断向量和级别。

(2) 入口函数

入口函数主要完成CS4281控制芯片和CS4297编解码芯片的初始化,DMA缓冲区内存分配,设置采样率和格式及挂接中断等任务。

CS4281芯片的初始化要严格按照文献[4]的说明顺序进行。CS4297编解码芯片的初始化主要完成耳机和麦克风的选择、打开,音量设置等任务,涉及到的寄存器有PCM_OUT_VOLUME,MASTER_VOLUME,HEAD-PHONE_VOLUME,GENERAL_PURPOSF,MICRO-PHONE_VOLUME,INPUT_MUX_SELECT,RE-CORD_GAIN,GENERAL_PURPOSE。为DMA播放和录音缓冲区分配连续的2 kB内存空间,把分配的内存空间基地址写入DMA基地址寄存器。在本文中,我们选择的是8 b单声道格式和11 025 Hz取样频率,经过计算,把相应的值写入DMA引擎模式寄存器,把采样率写人DACSR和ADCSR。最后利用探测模块中取得的中断向量和中断级把中断号和中断处理函数挂接在一起。

(3) 声音系统的启动和关闭

该模块主要完成录音的开启和关闭、播放的开启和关闭。录音的开启即把0写入DMA引擎控制寄存器1中的MSK位,且使能中断;录音的关闭即把1写入DMA引擎控制寄存器1中的。MSK位。播放的开启即把0写人DMA引擎控制寄存器0中的MSK位,且使能中断;播放的关闭即把1写入DMA引擎控制寄存器0中的MSK位。

(4) 中断处理程序

CS4281有一个中断状态寄存器和一个中断屏蔽寄存器,他们对应位意义相同。中断状态寄存器反映了声卡能产生的几种中断。一旦有中断发生,分析中断状态寄存器,判断中断类型,再做相应的处理。根据我们的设计,如果是播放中断则释放播放信号量,促使上层软件拷贝声音数据至下层软件;如果是录音中断则释放录音信号量,促使上层软件从下层软件取走已到达的声音数据。最后设置中断结束标志。

(5) 播放和发送时的数据流

播放时的数据流。声卡中的播放缓冲(上文中所设的DMA缓冲)和FIFO0(从格式化器formatter接收声音数据,按先入先出方式存储,供CS4297芯片播放)之间数据传输由DMA0控制。DMA0引擎尽量保持FIFO0满。播放缓冲是个2 kB的内存,他的起始地址被写进DMA0基地址寄存器(DBA0)。2 047 B(计数应比所分配的字节数小1,因为中断发生于roll-unders模式下)写入DMA0基本计数寄存器(DBC0),DMA0引擎控制从播放缓冲中读入的字节数。当播放缓冲半空或空,将产生一个中断,促使从上层软件取数据。

录音时的数据流。声卡中的录音缓冲和FIFO1(从CS4297芯片接收声音数据,按先入先出方式存储,传给格式化器formatter)之间数据传送受控于DMA1。DMA1引擎尽量保持FIFO1为空,他同样也计算写进录音缓冲的字节数。当录音缓冲半满或满,将产生一个中断,促使上层软件把数据取走。

4 UDP通信

4.1 UDP协议

在以太网设施基础上,VxWorks使用因特网组件TCP/IP提供的端到端的传输能力在位于不同的主机上的任务间传输用户数据。在VxWorks中,使用Socket作为应用程序和TCP/IP协议的接口。Socket有2种基本类型:可靠的数据流SOCK_STREAM,使用TCP协议;数据报SOCK_DGRAM,使用UDP协议。

UDP相对于TCP有以下一些优点[2]

(1) UDP的报文短,利于减小传输时延;

(2) UDP是无连接协议,发送数据前不需要建立连接,适合于声音数据这种实时性要求高的应用;

(3) UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。

UDP的这些优点对于声音数据的实时传输非常重要,这些优点将保证传输尽可能有一个短时延、恒定的速度,因此选择UDP。

在无连接的Socket中,在通信的两端分别创建客户机端和服务器端,通信双方在整个过程中是平等的,双方直接通过Socket调用来发送或接收数据报。

UdpClient模块:创建客户端Socket;初始化服务器端地址;FOREVER{调用UDP发送模块;发送数据到服务器}。

UdpServer模块:创建本地地址;创建服务器端Sock-et;把Socket和本地地址绑定起来;FOREVER{接收数据;调用UDP接收模块)。

4.2 UDP发送

发送模块等待录音信号量。如果获得,表示一些新的数据在录音缓冲中已有效。将把新数据从录音缓冲拷入上层软件存储区,然后通过Socket把他发送到另一端主机。如果上层软件中的存储区满,丢弃旧分组存入新分组。

4.3 UDP接收

接收模块等待从Socket来的数据。如果获得播放信号量,表示播放缓冲区中的数据已被播放,将把上层软件存储区中的数据拷入播放缓冲;否则,任务将被挂起。如果上层软件中的存储区满,丢弃旧分组存入新分组。

5 遇到的主要问题

在本文所搭建的环境中,能较好地实现两块声卡之间的通话。开发过程中,主要遇到两个问题:

(1) 声卡中没有声音数据。声卡的FIFO缓冲区及DMA缓冲区中均没有数据。经分析查出:CS4297芯片中关于耳机和麦克风的寄存器没有打开和选中,耳机和麦克风一直处于“mute”状态。关掉"mute'’后,问题解决。

(2) 不能产生中断。DMA缓冲区中已有数据,根据程序设计,此时应产生中断,由上层通信模块取走声音数据,但中断一直不能产生。经分析原因为:在声卡探测程序段获得的中断级直接用作中继号来挂接中断。解决方法:通过中断级来获取中断向量,再获取中断号,用来挂接中断处理程序。


瑞达币购买
桂山秋竹_唐年桂2023年
桂北云雾图_唐年桂202

  • 扩展阅读
  • 上一个文章:
  • 【返回网站首页】 【返回无线】
  • 下一个文章:
  • 【字体: 】【】【发表评论】【加入收藏】【告诉好友】【打印此文
    文章 软件 电影 商品

    相关文章

    本站公告

    • 扫一扫,打赏给我们,谢谢!

      本站2016年12月16日起取消ruida.org.cn域名,该域名正式作废,该域名发布任何信息与本站无关。


      启用ruida.orghy928.net域名;

      瑞达网,瑞达科技网宣

    附页内镶内容
    健康养生 商场新品 股市K线、指标知识
     六种药酒配制法[11月7日]
     国公酒_散风祛湿,舒筋活络[3月8日]
     气血双补党参、麦冬、黄芪炖[11月29日]
     参桂再造丸_臂丛神经痛[11月29日]
     臂丛神经痛该怎样治疗[11月29日]
     舒筋络酊、百宝丹擦剂、参桂[11月29日]
     臂丛神经痛针灸治疗[11月29日]
     枳椇子_利水渗湿药[11月29日]
     三七、丹参、西洋参_颈椎病[8月17日]
     枸杞泡姜芽(嫩姜)的做法及功[5月20日]
     瑞达币购买
     桂山秋竹_唐年桂2023年新作品
     桂北云雾图_唐年桂2023年新作品
     广西2019年《高考指南》+《招生计
     金士科前置过滤器
     金牛前置过滤器
     USB口24系列编程器第二版含USB延
     液晶电视、液晶显示器图纸、维修
     彩电、显示器、DVD、EVD打印机等
     高清CRT彩电、显示器图纸刻录 4G
     [理财]各种短视频赚钱方法
     [会员]专业交易实战控制系统
     [理财]1分2分5分硬币回收价格表(20250123)
     [理财]1分2分5分硬币回收价格表(20230928)
     [理财]1分2分5分硬币回收价格表(20230624)
     [理财]2022 年新版1分2分5分硬币回收价格表…
     [理财]微信收款码如何开通商业版收信用卡费…
     [指标]R平方_基金指标
     [指标]标准差_基金指标
     [指标]平均回报_基金指标
    装修案例 网站建设 电器维修
     一般水电安装几个常用尺寸[1月29日]
     三相电表接法及度数的正确读…[5月8日]
     万能通用卧室房门锁更换步骤…[2月22日]
     乳胶漆的八大施工步骤及涂刷…[2月14日]
     旧墙翻新步骤及注意事项[2月14日]
     屋面防水施工工艺流程及注意…[1月16日]
     专利产品“防污吸气帽”新产…[1月8日]
     鲁班尺吉数对照表高清图片查…[10月29日]
     砂浆胶作用与危害[9月21日]
     4种处理水泥地面起砂方法[9月21日]
     网页html点击切换显示内容完[11月7日]
     动易SiteWeaver6.6网站管理系[7月31日]
     中国阴历农历JS支持 HTML网页[2月26日]
     java script error 容错处理[2月15日]
     几款还不错的网页特效显示日[2月14日]
     图片可以调大小的代码[12月14日]
     动易SW6.8网站系统改自适应支[11月20日]
     网站建设_套餐服务[12月4日]
     网站建设-费用明细[12月4日]
     不显示出来的代码[12月3日]
     联想 小新Air 14 2019笔记本…[6月15日]
     滚筒洗衣机脱水声音大原因及…[4月17日]
     智能电视不能开机强制恢复出…[1月16日]
     各大品牌智能电视机恢复出厂…[1月16日]
     洗衣机自己排水或不存水漏水…[6月15日]
     海尔冰箱出现-03还滴滴报警[5月29日]
     TCL电视通用教程安装教程[2月2日]
     TCL L43V7300A-3D液晶彩电出…[2月2日]
     先锋液晶电视LED-32B550无光…[1月17日]
     智能电视主板的应用与维修(…[1月11日]
    电器资料 下载 读书
     手机恢复出厂设置具体操作方…[3月29日]
     三个代码让电脑提速畅通秘籍[3月13日]
     视得安750D6对讲门铃工作原理…[9月13日]
     什么是量子芯片和光子芯片[5月14日]
     沃尔沃S90汽车遥控钥匙失灵的…[1月19日]
     LED显示屏瑞合信PLus单双色全…[12月22日]
     Windows 照片查看器无法显示…[8月6日]
     已经设置IE主页,但是打开还…[7月6日]
     如何调整空压机压力?空压机…[6月8日]
     剪映-视频编辑软件手机版使用…[5月28日]
     [书籍]滕王阁序_原文_注释译文_白
     [书籍]《天工开物》明代宋应星初
     [电影]《抓娃娃》高清电影
     [联想]Lenovo S540-14API Compl 
     [书籍]《墨子》原文注释译文
     [LED条屏]瑞合信单双色/全彩控制系统
     [LED条屏]LED显示屏瑞合信手机APP6.
     [书籍]全本新注聊斋志异
     [书籍]广西2023年高考指南 招生计
     [书籍]个人防护手册(第二版)
     广西高考2024~2022年历史类([6月25日]
     凤阳花鼓[3月8日]
     《滕王阁序》[3月2日]
     卷一百二十八 艺文_杂记[2月24日]
     卷一百二十七 艺文_杂记[2月24日]
     卷一百二十六 艺文_国朝[2月24日]
     卷一百二十五 艺文_国朝[2月24日]
     卷一百二十四 艺文_五言排律[2月24日]
     卷一百二十三 艺文_历朝[2月24日]
     卷一百二十二 艺文_历朝[2月24日]
    珠宝玉器 在线电视台
     鸡血石与鸡血玉有什么区别[6月12日]
     鸡血玉[6月12日]
     鸡血石 (bloodstone)[6月12日]
     什么是莫桑石(Moissanite)[6月12日]
     可以戴钻石洗澡吗[1月22日]
     钻石如何保养才好呢?[1月22日]
     PT容易花的问题和钻戒保养问…[1月22日]
     切工 钻石的雕刻艺术[1月22日]
     如何保养好钻戒[1月22日]
     钻戒保养方法[1月22日]
     中央体育台
     中央新闻台
     宁夏卫视
     湖北卫视
     西藏卫视
     辽宁卫视
     河北卫视
     北京卫视
     政法频道
     农民频道
     湖南经视
     湖 南 台
     河南频道
     湖南卫视
     兵团卫视
     江苏卫视
     旅游卫视
     湖南都市
     七彩戏剧
     动漫秀场
     游戏风云
     法制天地
     魅力音乐
     新 娱 乐
     南 方 TV
     浙江卫视
     齐鲁频道
     山西影视
     东南卫视
     上海卫视
     贵州电视台
     重庆电视台
     山东卫视
     哪吒之魔童闹海《哪吒2》在线
     《抓娃娃》在线电影
     流浪地球2剧情介绍
     《万里归途》完整版
     《阿凡达2:水之道》耗资3.1
     2021港剧《梅艳芳》5集全.HD
     误杀2 -电影-完整版视频在线
     亲爱的/亲爱的小孩/打拐/家之
     《第一炉香》-电影-完整版视
     《扬名立万》-电影-完整版视
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论

    | 服务声明 | 充值中心| 华安五金电器 | 收费标准| 论坛| 留言| 实用查询| 会员中心| 下载帮助| 设为首页|

    技术支持:瑞达科技 即时交谈QQ:237013889 QQ群:13810759 E-Mail:237013889@qq.com
    非盈利网站,如有侵权,请来信来电告知,第一时间处理,谢谢!
    桂ICP备17008104号 华玉生活网网站统计
    tj