(控制理论与控制工程专业论文)基于omap的ip网络电话设计与实现.pdf_第1页
(控制理论与控制工程专业论文)基于omap的ip网络电话设计与实现.pdf_第2页
(控制理论与控制工程专业论文)基于omap的ip网络电话设计与实现.pdf_第3页
(控制理论与控制工程专业论文)基于omap的ip网络电话设计与实现.pdf_第4页
(控制理论与控制工程专业论文)基于omap的ip网络电话设计与实现.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

(控制理论与控制工程专业论文)基于omap的ip网络电话设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学硕士学位论文 摘要 随着v 0 i p 技术和通信技术的发展,i p 网络电话越来越成熟。与传统电话相 比,它能实现音频、视频和数据业务的综合传输,价格低廉,并且易于扩展增值 业务,因此它的发展势必会带动整个电话网络及其服务的巨大变革。 本文的主要研究内容是基于o m a p 平台的i p 网络电话设计与实现。论文分 析了i p 网络电话的优势和发展现状,简要介绍了口网络电话的关键技术以及几 个标准组织。 论文讨论了i p 网络电话系统其底层平台o m a p 平台的选择、o m a p 平台的 硬件设计以及软件设计;详细介绍了双核( a r m + d s p ) 芯片o m a p 5 9 1 2 的系统结 构、删和d s p 间通讯应用程序d s p b i o s 的设计、数字音频设备驱动设计以 及a r m 和d s p 端编程。 论文的重点内容是针对i p 网络电话的s i p 和r t p 协议的实现,首先分析了 s i p 协议和r t p 协议盼特点,然后移植相应的协议栈o s i p 和j r t p u b 来实现s l p 和r t p 协议。在t i 参考框架r e f e i 即c ef r 锄e w o r k6 ( r f 6 ) 的基础上设计了整个i p 网络电话的软件系统框架,其中包括语音的发送和接收框架。 最后论文对本课题做了总结,并展望了今后发展的方向。 关键词:l p 网络电话,o m a p ,s i p ,r t p ,i 啊6 a b s t r a c t a b s t r a c t w i t l lt h e d e v e l o p m e n t so f 、b i p ( v o i c e o v e r i p )t e c h n o i o g ya i l d 廿l e c o m m u n i c a t i o nt e c l l i l o l o g y ,m ei pn e t w o r kp h o n ei s 醪o w i n gu pv e r y q 试c k l y c o m p a r i n gt ot 1 1 e 打a d i t i o n a lt e l e p h o n e ,i pt e l 印h o n eh a sg r e a ta d v a i 】协g e so v e rp d c e , u s e rr e q u i r e m e n t 鲫dm 试t i m e d i as e s s i o n n od o u b t ,a 1 1t 】1 e s e 、而1 1r e v o l u t i o n i z e t e l e p h o n en e 俺帕r ka 1 1 ds e r v i c e t h em a i nc o m e n to f m i st h e s i si st l l ed e s i 印a n di m p l e i i l c n to fi pn e t w o r kp h o n e b a s e do no m a p f i r s t l y ,t l l i st l l e s i si n 昀d u c e st h ea d v a l l t a g e sa i l dd e v e l o p m e n t so f i p n 娟v o r kp h o n e s e c o n d l y i t 嘶e n yi 1 1 仃o d u c e st l l e k e yt e c h n o l o g y 锄ds e v e r a l s t a l l d a r do r g a n j 刎o n so f i pn e t w o r kp h o n e t h i st 1 1 e s i sd i s c u s s e st l l es e l e c t i o no fp l a t f o 珊,t l l es o f l 、a r ea i l dh a r d w a r ed e s i 驴 o fo m a p 1 1 l es y s t e ms t n l c t u r eo fo m a p 5 9 1 2w h i c hh a sd u a l c o f e 口r o c e s s o r ( 删+ d s p ) ,m es o 胁a r ed e s 咖o fd s p m l 0 sf o ri n t e r - p r o c e s s o rc o m m l l i c 撕o i l , m ed e v i c e 嘶v c rf o rd i g i 锄a u d i od c v i c e ,协ep r o g r a 】砌i n g0 fa i t ma n dd s p 戤 i m m d u c e di nd e t a i l t h ee m p h a s i so f m i st 量l e s i si st h er e a l i z a 廿o no f s i pa 1 1 dr 1 p d r o t o c o l sw h i c ha r c s e n ,i n gt l l ei pn e t 、o f kp h o n e t h i st h c s i se x p l a i n sm e 仃a n s p l 趾t a t i o no fo s l pa n d j r t p l 旧l i b m r yi nd 印m 1 1 1 eo v e r a u 触m ci sp u tf o r w a r db a s e d0 nr c f c r e n c e f i 铷w o r kl e v e l6 ( r f 6 ) ,i n c l u d i n gt l l e 订a i l s m i s s i o na n dr e c e p t i o nf m m eo f a u d i o f i n a l l y t l l e r ei sab r i e f s l l l n m a r ya i l ds o m es u g g c s t i o n sf o rf l l r c l l e rr c a r c h k e y w o r d s :i p e 鲫o r kp h o n e ,o m a p ,s i p ,r t p ,r f 6 第l 章绪论 1 ) 由于各种网络协议还都未真正成熟,不同协议之间( 如h - 3 2 3 协议、s i p 协议以及m g c p 协议之间) 的互通存在很大的问题; 2 ) 国际标准工作尚未最终完成,产品有些部分使用的是内部标准; 3 ) 对于国际标准中的可选部分,不同的厂家采用了不同的实现方式。 1 1 3i p 网络电话国内外发展现状 美国经过几年的培育和发展,v o i p 市场已经初具规模。据统计,美国2 0 0 4 年第三季度v o m 电话放线1 8 0 万线,传统电话放线1 7 9 万线,、b i p 线路整体占 有率增加 x 浙江丈学硕士学位论文 线路利用率越高,但语音质量会受到影响;同样,算法越复杂,语音质量会提高, 但延迟将越严重。一般情况下要根据实际需要在几个指标中取得某种折衷。 在编码方式上,语音编码可分为波形编码、参数编码和混合编码几种。波形 编码是通过抽样和量化的过程表示模拟语音波形,它通过变换采样点的量化值对 数据进行压缩。最早的也是最著名的波形编码就是脉冲编码调制( p c m ) 。参数 编码则是首先把语音信号的产生用某种语音信号生成模型来表示,然后用语音的 特征提取方法提取其必要的参数,通过传输模型参数来进行数据压缩。参数编码 方法包括线性预测编码( l p c ) ,码激励线性预测( c e l p ) ,以及多脉冲,多极 量化( m p - m l q ) 等。混合编码综合了前两种编码方式,在传输参数的同时,还 传递部分样点。表2 1 描述了波形编码和参数编码的一些特点。 表2 - 1波形编码和参数编码的特点 波形编码参数编码 编码信息波形模型参数如l p c 模型的短时谱包络、基音或其它模型 比特率 9 昏“k t i s2 4 9 6 k b s 语音质量评价方法 s n r 谱失真和主观听音 i 问题 随着量化粗糙音质下降,合成语音质量低,处理复杂度高 下面简单介绍当前比较流行的几种语音编码压缩技术及标准【4 l : 1 、g 7 1 1 自从a h r e e v e s 提出脉码调制( p c m ) 以来,开创了语音数字化通信的历 程。一般采用较小的量化单位以便精确地表示小信号。当采用m 位二进制进 行量化时,最大量化值为( 2 m 1 ) 。为了兼顾动态范围,p c m 对大信号采取较大 的量化单位,对小信号采用较小的量化单位,因为这符合入耳对小信号比对大信 号更为敏感的特征。也就是说,利用某种规律,将大信号缩小,量化传输后再按 同一规律将信号复原为原来的线性关系。i t u - t 组织1 9 7 2 年制定出的6 4 k b s p c m 编码标准g 7 l i 采纳了欧洲的a 率和北美“率作为推荐的标准。直至今日, 6 4 k b ,s 标准p c m 系统仍然占有统治地位。它用在8 k h z 采样速率,每采样8 个 比特。根据n y q u i s t 理论,对一个信号的采样必须两倍于它的最高频率,因此 第2 章1 p 网络电话技术概述 g 7 1 1 能够编码的频率范围是在o 和4 k h z 之间。所有的i p 电活终端均需要支持 g 7 】1 编解码器,并支持a 率和肛率传送和接收。 2 、g 7 2 1 国际电话电报咨询委员会( c o n s u l 诅t i v ec o 咖i n e eo ni n t e m a t i o n a lt e l e p h o n e a 1 1 d t e k g m p h ,c c l t t ) 在8 0 年代初着手研究低于6 4 k b ,s 的非p c m 编码算法, 并于1 9 8 4 年通过了g 7 2 l 建议。g 7 2 1 是一种3 2 k b ,s 的自适应差分p c m ( a d p c m ) 语音压缩算法。a d p c m 编码将脉码调制、增量调制和自适应技术 三者结合起来,不仅能在幅值起伏较大时很好地恢复语音信号,而且能很好地适 用于平稳的音频数据信号。事实上g 7 2 1 的编码器中嵌人了个解码器,从而 使编码器的自适应修正不依赖于输入信号而完全依据解码器输出反馈值,所以后 继的差值采样可以补偿量化误差并且不引入延迟。 a d p c m 不仅与p c m 有相同重建语音质量,而且具有比p c m 更优良的抗误 码性能,已逐渐广泛应用于卫星,海缆及数字语音插空设备以及可变速率编码器 中,因为这种a d p c m 算法在1 6 k 叫s 到6 4 k b s 的速率范围内其重建语音质量平 坦,很适合于可变速率的应用。 3 、g 7 2 3 1 它所描述的压缩技术能够作为h 3 2 4 标准族的一部分,以低编码速率用于 压缩语音和音频信号。编码器可以有两种速率的输出:5 3 k b s 和6 3 k b s 。较高 比特率的输出基于m p - m l q 技术,提供某种程度上较高质量的音质。较低速率 的输出基于c e l p 技术,为系统设计人员提供了更大的灵活性。g 7 2 3 1 算法每 帧处理的数据长直是3 0 m s ,即2 4 0 个字节,压缩后的每帧数据长度有三种情况: 2 4 个字节( 6 3 k b ,s ) ,2 0 个字节( 5 3 k b s ) 和4 个字节。其中4 个字节为插入 静音描述( s l d ) 帧,它主要用在语音的静音段,用以发送比较舒服的自噪音的 参数描述。这三种帧可以用任意方式混合使用。第一个八位组的最低两个比特确 定了帧的长度和编码类型。在3 0 m s 的帧边界上,这两种速率可以进行任意切换, 以获得最佳的音质。 g 7 2 3 1 的打包特征为: 置位r t p 包头的标记位( m a r k e r ) ,来标识该报文是静音以后的第一个 包: 浙江大学硕士学位论文 采样频率为8 0 0 0 h z : 帧长度为3 0 m s ; 在一个包中,编解码器可以编解码几个连续的帧; 接收机必须要能连续接收o 1 8 0 m s 的音频数据。 4 、g 7 2 6 g 7 2 6 是i t u t 定义的完整的a d p c m 语音编码标准,其目的是定义6 4 k b s p c m 码流至低速率a d p c m 码流的转换。标准给出4 佻| b s 、3 2k b ,s 、2 4 k m s 和 1 6k b ,s 四种比特率。其中4 0 k b ,s 信道主要用于在数字电路倍增设备( d c m e ) 上传送数据m o d e m 信号,特别用于4 8 0 0 b ,s 以上速率的m o d e m ;2 4 k b s 和1 6 k b s 信道主要用作d c m e 语音传送的过载信道。g 7 2 6 设计的主要用途仍然是传统 的电路交换网,但是其低比特率方案也可用于v 0 i p 。 g 7 2 6 是对g 7 2 1 的扩展,不仅有3 2 k b s ,而且还可以产生4 0 k b ,s 、2 4 k b s 和1 6 k b s 的编码输出。 5 、g 。7 2 8 c c i t t 于1 9 9 2 年制定了低延迟激励线性预测( l d c e l p ) 的g 7 2 8 建议, 描述了1 6 k b ,s 的低延迟c e l p 的语音压缩的一个变种。与g 7 2 l 相比,g 7 2 8 总的来讲在客观测试中得分偏低,而在主观测试中较好。c e l p 算法的另外一个 特点是在噪音环境下,比a d p c m 表现要差一些。 g 7 2 8 是1 6 k b s 的l p a s 声码器。线性预测器使用的是反馈型后向自适应技 术,预测器系数是根据上一帧的语音量化数据进行更新的。因此算法时延较短, 为0 6 2 5 m s ,相当于5 个采样点时间,这也是g 7 2 8 的帧长时间。由于使用反馈 型自适应方法,因此预测器系数不需传送,惟一需传送的是激励信号量化值,也 就是码本索弓i 值。g 7 2 8 码本总共有1 0 2 4 个矢量,索引需占l o 个比特位,因此 其比特率为lo o 6 2 5 = 1 6 k b ,s 。 6 、g 7 2 9 1 9 9 5 年1 1 月,1 7 r u - t 通过了共扼结构一代数激励线性预测( c s a c e l p ) 的 8 k b s 语音编码0 7 2 9 建议,并于1 9 9 6 年6 月通过g 7 2 9 附件,正式成为国际 电信标准。g 7 2 9 和g 7 2 9 附件a 的主要区别在于计算的复杂度方面,二者能 完全互操作,提供的话音质量与3 2 k b s a d p c m 相似,具有长话的质量。因为只 9 第2 章i p 嘲络电话技术概述 有8 k b s 的输出速率、较小的时间延迟( 1 0 m s ) 和适中的处理复杂度,因此它的 应用己经大量出现。鉴于编解码压缩比和算法延迟对i p 电话系统都十分重要, 所以一般都优选g 7 2 9 为i p 电话的语音编码算法。 g 7 2 9 是8 k b s 的l p a s 声码器,线性预测采用前馈型前向自适应技术。预 测嚣系数根据当前帧和部分下一帧语音数据迸行更新,因此算法时延相对g 7 2 8 较长。其帧长取为1 0 m s ,由2 个子帧组成,前视5 m s ,加上处理时间和传输时 间,设计的单向系统时延为3 5 m s 。由于采用的是前馈型自适应技术,因此除了 传送激励信号( 包括波形和增益) 外还需传送预测器参数。为了降低比特率,线 性预测系数、激励信号波形、激励增益都采用矢量量化,并利用了多级量化和分 割量化技术。激励信号码本则采用高效的共轭结构代数码本。因此g 7 2 9 编码 称为c s a c e l p 。 c s - a c e l p 编码器与g 7 2 8 类似,也是基于c e l p 编码模型。编码器工作 1 0 m s 的语音帧上,在每秒8 0 0 0 采样速率时对应8 0 个采样。对每1 0 m s 的语音帧, 编码器分析语音信号,抽出c e l p 模型的参数( 线性预测滤波系数,自适应和固 定码本索引和增益) ,而后把这些参数编码并传送出去。在解码器中,这些参数 被用来检索激励和合成滤波参数,通过短时合成滤波器过滤激励,重构语音;短 时合成滤波器基于第1 0 个线性预测( l p ) 滤波器,而长时的或补偿合成滤波器 的实现是用所谓的自适应码本的方法;最后计算出重构的语音,并用一个后过滤 器进一步增强。 该编码器编码语音和其他音频信号是用l o m s 的帧,另外包含5 m s 的前向查 看时间,因此导致整个算法的时间延迟是1 5 m s 。在实际实现该编码器时的额外 时间延迟是因为: 编码,解码操作需要的处理时间; 通信连接上的传输时间; 音频数据与其他数据混合时的复用延迟。 表2 2 给出了几种语音编码方式的比较。 其中g 7 1 l 为必备编码方式,其余为任选方式。目前i p 网络电话中,最常 用的是g 7 2 9 a 和g 7 2 3 1 。 l o 浙江大学硕十学位论文 表2 2 几种语音编码方式的比较 协议编码类型比特率复杂度语音 时延( m s ) ( k b s ) m i p s r a m ( b y t e ) 质量 帧长前视 g 7 1 1p c m6 4 能够处理3 2 位或者1 6 位的指令和8 位、1 6 位、3 2 位的数据: 2 0 浙江大学硕士学位论文 使用协处理器c p l 5 和保护模块使体系结构得到增强; 提供数据和程序内存管理单元( m m u ) 。 m m u 具有两个6 4 项的转换旁路缓存器( t l b ) 用于指令和数据流,每项 均可映射存储器的段、大页和小页; 为了保证内核周期的存取指令和数据,提供了独立的1 6 k 字节的指令 c a c h e 和8 k 字节的数据c a c h e ; 指令和数据c a c h e 都是通过v i v t 四路连接的c a c h e ; 提供一个写缓冲用于提升内核性能,其缓冲数据容量高达1 7 字。 其外围设备主要包括u s b l 1 的h o s t 和c l i e n t 控制器、摄像头接日、6 5 或 8 8 的矩阵键盘接口、l6 1 8 位的l c d 控制器接口等。 3 2 2t m s 3 2 0 c 5 5 x 内核简介 t m s 3 2 0 c 5 5 x 是t m s 3 2 0 c 5 0 0 0 系列d s p 芯片之一。它是为实现低功耗、高 性能而专门设计的定点d s p 芯片,其中央处理单元( c p u ) 采用优化的哈佛结 构,具有高度的并行性,且功耗很低。芯片内部集成了不同容量的存储器以及自 动缓冲串行口( b s p ,锄_ t 0 b u 疏r e ds 商a 王p o r t ) 和主机接口( h o s t p o r t i m e r f k e ) 等多种职能外设,使其与外围设备通信更加灵活方便。芯片具有完善的寻址方式 和强大的指令集,进一步提高了系统的性能。此外,芯片采用模块化设计以及先 进的集成电路技术,功耗小,成本低【1 2 1 。内核主要由4 个单元组成:指令缓冲单 元( i u ) 、程序流单元口u ) 、地址数据流单元( a u ) 和数据运算单元( d u ) ,为d c t 、 像素插补、视频压缩的运动估计等提供了视频硬件加速器。 t m s 3 2 0 c 5 5 x 具有以下特性【1 0 l : 2 个1 7 1 7 位乘法器,1 个4 0 位a l u ,1 个1 6 位a l u ,1 个4 0 位桶 形移位器和4 个4 0 位加法器: 3 条数据读总线,2 条数据写总线; 6 4 k 字节的片内d a r a m ,9 6 k 字节的片内s a r a m : 2 4 k 字节的指令c a c h e 。 其外围设备主要包括六通道d m a 控制器,两个多通道缓冲串口( m c b s p : m l l l t i c h a i l i l e lb u m - r e ds e r i a lp o n s ) 等。 2 l 第3 章o m a p 平台设计 3 2 3a r m 、d s p 共享外围接口 a r m 和d s p 共享的外围接口主要有高速、全双工的m c b s p ,3 个u a r t s ( 其中两个支持红外s i r 模式) ,s p i ( s e r i a lp o ni n t e r f a c e ) ,以及1 2 c 的m a s t e r 和s l a v e 接口。另外还有多媒体卡m m c 和s d 卡接口和6 4 个g p i o 。还有8 个 a i n 4 和d s p 共享2 5 0 k 字节的片内s r a m 。 3 2 4 电源管理模块 针对o m a p 平台低功耗的特点,对电源管理模块提出了更高要求。本项目 中采用t i 推出的手持式高整合度电源i c 芯片t p s 6 5 0 1 0 。该产品具有无以伦比 的商性能级别,并且功率转换效率高达9 7 。与具有类似功能级别的分立解决方 案相比,采用这种高级制造工艺的t p s 6 5 0 1 0 可将所用电路板空间减少三倍。其 主要特性为【1 3 j : 针对单个锂离子( l i - i o n ) 或锂聚合物( l i - p o l y ) 电池线形充电管理; 可通过外部电阻器实现可编程电流充电; 集成了两个同步降压d c d c 转换器:一个用于系统电压的1 a 转换器 ( 效率9 5 ) 以及一个用于处理器内核的4 0 0 f n a 转换器( 效率9 0 ) 。 集成了用于额外生成电压的两个2 0 0 i n a 的低压降( l d 0 ) 稳压器; 集成与1 2 c 兼容的通信接口,支持频率范围为l o o l 【h 州o o k h z ; 提供7 0u a 的极低静态电流以及几种低功耗模式。 电源管理模块结构如图3 - 2 所示。其中3 3 v 引脚为包括f l a s hm e m o r y 在 内的3 3 v 总线提供电源,3 v 引脚主要为a i c 2 3 音频芯片提供电源,控制接口 实现配置脚以及与o m a p 5 9 1 2 实现1 2 c 的通信接口的设置,r t c ( r e a lt i m ec l o c 轴 块为0 m a p 5 9 1 2 提供实时时钟电压,d l l ( d e l a y l o c k e d l o o p ) 块为内部延迟锁定 回路电源提供独立的电源引脚,d s p 块提供对o m a p 5 9 1 2 中的d s p 的电源控制, c o r e 引脚为o m a p 5 9 1 2 的核心组件提供电源。 浙江大学硕士学位论文 运作。这主要是为以后的系统扩展和移植做准备。 系统服务指的是位于语言层次,提供应用程序语言呼叫的一组接口及其操 作,其作用类似于d o s 下的i n t 2 1 h 指令,即提供中断服务程序,只要应用程序 向操作系统请求协助,系统服务就会被调用,这一层还包含了对系统语言库的支 持1 1 6 】。 a i t m 端最上层的图形用户接口( g u i ) 与其它函数库的作用是提供可视化 组件,供在上面开发的应用程序直接调用。此外,还有一些较高级的函数库也在 这一层出现,如多媒体函数库,这一层是决定应用程序设计难易的关键。 3 3 1a i t m 和d s p 连接应用程序( d s p b i o su n 均结构体系 d s p ,b i o sl i n k 是删和d s p 内核之间通过a r m d s p 边界通讯的基础 应用程序。在这个应用程序中,它能提供一些基本的a p i 来抽象a r m 和d s p 物理连接的特性。这个应用程序可以用于如下平台: 1 ) 一个删和一个或多个d s p 构成的片内系统s o c ( s y s t 咖o n c h i p ) ; 2 ) 单独的a r m 和d s p 。 d s p b 1 0 sl i n k 能提供如下服务: 基本的处理器控制; 通过逻辑通道的数据传输; 消息传送。 d s p b 1 0 s 的具体软件体系结构如图3 6 所示。 圆圈圈圈圈 匿鋈鋈鎏匿图匿鞫 图3 - 6 d s p 甩i o s 软件体系结构 l 、a r m 端结构 在a r m 端,操作系统采用m 彻t a v i s t al i n u x 。操作系统适应层模块为 第3 章o m a p 平台设计 d s p b 1 0 s 的其他模块集成了一些基本的操作系统服务。它提供了一些基本的 a p i 来隔离d s p b i o s 的其它模块和操作系统,使其他模块使用a p i 而不是去访 问操作系统。这样就使得d s p ,b 1 0 s 能够适应不同的操作系统。连接驱动模块集 成了一些基于d s p 和删物理连接的低端控制操作,这个模块通过d s p 和a r m 边界按照规定的协议来控制d s p 的执行和数据传输。真正的处理是发生在处理 器管理部分,它是基于连接驱动模块提供的基本控制操作来完成处理过程的。 d s p ,b i o sl i n k a p i 为所有运行在a 鼬证端的客户程序提供接口。它只是一个非 常小的组件,通常只用来做参数的设定而不做其他实质性的处理。这个a p i 层可 以认为是处理器管理层的“皮肤”。 2 、d s p 端结构 在d s p 端,连接驱动是d s p b i o s 驱动中的一员,它通过物理连接专门负 责和d s p 之间通信。在d s p 端,没有专门的d s p b i o sl i n k a p i ,通信( 数据 消息传输) 是通过d s p b 1 0 s 的特定模块s 1 0 ( 流输入输出模块) ,g i o ( 通用输 入输出模块) m l s g q 来完成的,详细结构如图3 7 所示。 图3 7 d s p 端结构图 在d s p 端l i n k d r j v e r ( 连接驱动) 作为i o m ( i n p m ,o 咖u t m i i l i “v e r ) 第3 章o 】v l a p 平台设计 所处的运行时间。通道中被传输的数据不包含任何源地址或目的地的信息,所以 用户必须在处理器边界的任何一端都要建立明确的数据传输路径。该组件的特征 和s i o 模块中的分配回收模式有很多相似之处。在数据传输中按照分配回收模 式来执行。 3 ) m s g q 这个组件表示消息队列。m s g q 是m e s s a g eq u e u e 的缩写。该组件以 d s p b i o s 中的m s g q 模块为基础,完成a r m 和d s p 间不定长度短消息的交 换和通讯。消息的接收和发送是通过消息队列完成的,可以从队列中读出消息或 者将消息写入队列中。一个消息队列同时支持多个写操作和一个读操作。一个任 务可能需要从多个消息队列中读出或写入消息。如果希望接收消息必须先创建一 个消息队列。在发送消息前,必须先找到该消息发送的目标队列。在a r m 端, m s g q 控制着c h n l 组件提供的底层数据传输。 3 3 2 嵌入式u n u x 操作系统 l i i | ( 正在嵌入式开发领域稳步发展,这是因为l 访1 l 】( 源代码开放并遵循 g p l ( g n u p u b l i c “c e n s e ) ,任何对将l i n 嘁定制于p d a 或者其他手持设备感 兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发。同时, 不同的l i m 的改良版本也迎合了嵌入式和实时的应用。它们包括f s m l a b s 公 司的r t l 幻u x ( 实时l i n u x ) 、u c l i i 】) ( ( 用于非m m u 设备的l i n u x ) 、m o n t a v i s t a 的m o n t a _ v i s t al i i m x ( 用于a r m 、m i p s 、p p c 的l i n l l ) 【分发版) 、删l i n l l ) 【 ( a r m 上的l 讪x ) 和其它“n u x 系统。 嵌入式l i n u x 主要可以分为两类:第一类是在利用“n l 】) 【强大功能的前提 下,使它尽可能的小,以满足许多嵌入式系统对体积的要求,如u c x 第3 章o m a p 平台设计 高度可靠性和高性能服务工具:内核动态探测工具、内核i o 性能分析 工具。高分辨率p o s i x 时钟和“下一代p o s ”线程。这些主要针对 电信级应用; 嵌入式图形系统。包括:m o n t a v i s 协图形、q t e m b e d d e d ; j a v a 开发系统。包括:j 9j a 、,a 虚拟机、v i s u a l a g e 微型版( v a m e ) 集成开发环境。 l i n 似操作系统从软件的角度看通常可以分为如下四个层次: 1 ) 引导加载程序。包括固化在固件( :f i 册w a r e ) 中的b o o t 代码( 可选) ,和 b o o n o a d e r 两大部分。 2 ) l i 删x 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3 ) 文件系统。包括根文件系统和建立于f l a s h 内存设备之上文件系统。 o m a p 5 9 1 2 上n a s h 文件系统采用j f f s 2 。 4 ) 用户应用程序。特定于用户的应用程序,有时在用户应用程序和内核层 之间可能还会包括一个嵌入式图形用户界面。 图3 - 9 为一个同时装有b o o t l o a d e r 、内核的启动参数、内核映像和根文件系 统映像的固态存储设备的典型空间分配结构图。 启动磐数 b i o a c l e r 图3 - 9 固态存储设备的典型空间分配结构 3 3 3b 0 0 “帼d e r 移植 1 、b o o n o a d c r 及u b o o t 简介 b 0 0 t l o a d e r 也被称为引导加载程序,它是系统加电后运行的第一段软件代码。 回忆一下p c 的体系结构,我们可以知道,p c 机中的引导加载程序由b 1 0 s ( 其 本质就是一段固件程序) 和位于硬盘m b r 中的o sb 0 0 t l o a d e r ( 比如,l l l 0 和 g r u b 等) 一起组成。b i o s 在完成硬件检测和资源分配后,将硬盘m b r 中的 萝豢鬻熬 一嚣 第3 章o m a p 平台设计 配置好串口、s d i 认m 等以后,便可以重新编译u b o o t 代码。将得到的 u b o o t - b i n 通过j 1 a g 口下载到目标板,如果能从串口输出正确的启动信息,就 表明移植基本成功。启动界砸如图3 1 0 所示。 3 3 4l i n u x 设备驱动程序 1 、设备驱动概述 设备驱动程序在l i n u x 内核中扮演着特殊的角色。它们是一个个独立的“黑 盒子”,使某个特定的硬件响应个定义良好的内部编程接口,同时完全隐藏了 设备的工作细节。用户操作通过一组标准化的调用完成,而这些调用是和特定的 驱动程序无关的。将这些调用映射到作用于实际硬件的设备特定的操作上,则是 设备驱动程序的任务。这个编程接口能够使得驱动程序独立于内核的其他部分而 建立,在需要的时候,可在运行时“插入”内核。这种模块化的特点使得l i n u x 驱动程序的编写非常简单1 2 7 1 。 在l i n u x 内核中,设备驱动程序是作为文件系统的一个模块存在的,它向下 负责和硬件设备的交互,向上通过一个通用的接口挂接到文件系统上。从而和系 统的内核等联系起来。它是软件概念和硬件设备间的一个抽象层,该层在操纵系 统内核中的位置以及和其它模块间的关系如图3 1 1 所示。 图3 1 1 驱动程序在操作系统中的位置 件系统 作系统内核 浙江大学硕士学位论文 设备驱动程序是内核的一部分,它主要完成以下功能: 对设备初始化和释放; 把数据从内核传送到硬件和从硬件读取数据; 读取应用程序传送给设备文件的数据和回送应用程序请求的数据; 检测和处理设备出现的错误。 2 、设备驱动程序分类 l i n u x 内核有三种类型的设备驱动程序:字符设备驱动程序、块设备驱动程 序和网络设备驱动程序。其中,与文件系统相关的两种类型是字符设备和块设备。 字符设备驱动程序是指直接读取而不需要缓冲区,输入输出接口的请求直接被 送到字符型设备上,如显示器、普通打印机、鼠标等为常见字符设备。块设备可 以用任意顺序进行访问,以块为单位进行操作,如硬盘、软驱等。其中,字符设 备不经过系统的快速缓冲,而块设备经过系统的快速缓冲。 3 、设备文件 l m u x 下所有的设备都被当作文件来处理,这种代表设备的特殊文件叫做设 备文件。设备文件使用主设备号( m 匈o r ) 和次设备号( m i n o r ) 来标识。主设备 号把驱动程序和外部设备对应起来,它是块设备表或字符设备表中设备表项的索 引。次设备号标识了驱动程序控制的设备实例,用来标识使用同一驱动程序的不 同设备。例如不同音频设备使用同一个驱动程序,其主设备号都为1 4 ,次设备 号不同:如混频器为o ,音序器为1 ,数字音频设备为3 。设备文件都存放在d e v 目录下。l i n u x 下使用m k n o d 命令,创建设备文件。如下创建了一个数字音频设 备文件结点,其中c 表示字符设备驱动: 4 、l i n l l 【设备驱动程序组成部分 l i 肌x 设备驱动程序可分为三个主要组成部分口o 】: 1 ) 自动配置和初始化子程序。负责检测所要驱动的硬件设备是否存在并能 正常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序需要的软件 状态进行初始化,这部分驱动程序仅在 x 第3 章o m a p 平台设计 由于系统调用的结果。这部分程序在执行的时候,系统仍认为是和进行调用的进 程属于同一个进程,只是由用户态变成了核心态,具有进行此系统调用的用户程 序的运行环境,因此可以在其中调用s l e e p ( ) 等与进程运行环境有关的函数; 3 ) 中断服务子程序,又称为驱动程序的下半部分。在l i n u ) 【系统中,并不 是直接从中断向量表中调用设备驱动程序的中断服务子程序,而是由l i n l l ) 【系统 接收硬件中断,再由系统调用中断服务子程序。 5 、矗1 eo p e m t i o n s 数据结构 由于用户进程是通过设备文件同硬件打交道,对设备文件的操作方式不外乎 就是一些系统调用,如o p 锄,r e a d ,w r i t e ,c l o s e ( 注意,不是f o p e n ,舶a d ) 。 但是如何把系统调用和驱动程序关联起来呢? 在系统内部,i ,o 设备的存取通过 一组固定的入口点( o p e n ,r e a d ,w r i t e ) 来进行,这组入口点是由每个设备 的设备驱动程序提供,用一个文件操作结构f i l eo p e m t i o n s 来向系统进行说明, f i l eo p c m t i o n s 结构定义于l i m l ) ( f s h 文件中,此结构中的成员全部是函数指针, 实质上就是函数跳转表。每个进程对设备的操作,都会根据设备号转换成对 f i l eo p e m t i o n s 结构的访问。 3 3 5 音频设备驱动程序设计 驱动程序的主要任务是控制音频数据在硬件中流动,并为音频应用提供标准 接口。a i c 2 3 音频芯片提供数字化音频,该功能有时被称为d s p 或c 0 d e c ,其功 能是实现播放数字化声音文件或录制声音,同时还提供混频器、音序器等功能。 浙江大学硕士学位论文 1 、f i l e o p e r a t i o n s 结构的初始化 f i 】c _ o p e r a t i o n s 结构贯穿在整个驱动程序中,笔者在文件作用域中进行了定 义,并对本程序中用到的入口点作了初始化,其代码如下: 2 、模块的初始化和卸载 a i c 音频模块初始化通过对i n i t - _ s o u n d c o r e ( v o i d ) 的实现来完成以下几个任 务: 1 ) 以字符设备类型向系统注册a i c 2 3 音频模板设备,其主设备号为1 4 。通 过调用下面这个函数来实现: m a j o r 传入的是s 讲j n dm a j o r ( 榭e f j n es o u n dm a j o r1 4 ) 。n 锄e 参数是用于标识设备的字符串,这里具体是“s o u n d ”。矗) p s 传入的是前面描述的 s o u n d c o r e _ j b p s ; 2 ) 使用设备文件系统( d e v 6 ) 。创建目录d e v ,s o u l l d ,并把设备文件放于此 处。如果使用数字化音频设各d s p ,其设备路径就是d e “s o i l i l d d s p ; 3 ) 做一些必要的系统日志,根据各种条件用西n 出( ) 向系统日志缓冲区写入 不同级别的信息,如设备是否在使用中等。 a i c 音频模块卸载需要完成以下几个任务: 1 ) 调用i n tu n r e 百s t e r - c h r d e v ( 瑚s i g n e di n tm a j o r ,c o n s tc h a r n a r n e ) 向系统注销 该字符设备。本程序中m a j o r 参数是前面注册时的主设备号,n a m e 与注册时提 供的n 蛳e 字符串相同; 3 9 第4 章s 1 p 和r t p 协议的实现 4 1s i p 协议 4 1 1s i p 协议的选择 v o i p 区别于其它i n t e m e t 多媒体服务的一个重要功能就是通信双方能够互 相定位并互发信号以请求通信,这个机制就是信令机制。它作用于应用层( 在这 里将会话层以上三层统称为应用层) ,保证电话呼口q 的顺利实现和话音质量,在 整个电话系统结构建设中起到关键作用。 目前被广泛接受的信令协议标准是u t 制定的h 3 2 3 协议和i e l 限制定的 会话初始化协议s i p 。 协议简单、易于实现是s l p 的一个重要特点。h 3 2 3 是一个相当复杂的协议 簇,其规范书( 不包括a s n 1 抽象文法记法和p e r ,p a c k e d e n c o d i n g r l l l e 紧凑 编码规则) 已达7 3 6 页。而s i p 包括其对呼叫控制的扩展和会话描述协议( s d p , s e s s i o nd e s c r i 砸o np r o t o c 0 1 ) ,总共只有1 2 8 页。h 3 2 3 消息采用a s n 1 描述,需 要复杂的代码生成器和语法分析。而s i p 信息是基于文本的,基于文本的编码很 容易用j a v a 、p e r l 等语言来实现,调试方便。 在功能扩展发面,s i p 借用h r r p 和s m t p 的成功方法,引入了许多扩充性 能。h 3 2 3 的扩充性是通过在a s n 】的相应位置设置“非标准参数”( n o n s t a n d a r d p a r a m ) 字段实现的。这些参数包含一个厂商码及一个仅对该厂商有意义的数值, 使得各厂商可以定义它们自己的扩充。这种扩充有其局限性。 在可扩展性方面,所谓可扩展性指的是对大型网络的支持能力,s i p 性能 优于h 3 2 3 。首先,s i p 能支持多域搜索。其次,大型骨干网络上的s i p 服务器 可以采用无状态的工作方式,工作在u d p 上,从而有效减少存储器容量和计算 工作量,提供良好的可扩展性;h 3 2 3 则要求网闸在整个呼叫期间保存呼叫状态。 另外h 3 2 3 消息比s i p 消息复杂,处理工作量大。这些都决定了h 3 2 3 的有限的 扩展性。 在q o s 支持能力方面,h 3 2 3 的网闸能提供丰富的控制和管理功能,包括地 址翻译、呼叫接纳控制、带宽控制和区域管理。其任选功能还可包括呼叫控制信 令、呼叫授权、带宽管理和呼叫管理等。而s i p 则不能提供上述管理功能,必须 借助于其它协议。 浙江大学硕士学位论文 综合分析得知,h 3 2 3 和s i p 支持的呼叫控制功能和业务基本相同,但是由 于s i p 协议简单,采用文本方式,因此具有更好的功能扩展性和网络可扩展性, 并易于实现。h 3 2 3 则具有较完备的呼叫和资源管理功能、较强的媒体能力协商 和严格的后向兼容性能。结合本项目特点,决定采取s i p 信令协议。 4 1 2s i p 协议的架构 s i p 是一个应用层的信令控制协议,用于创建、修改和释放一个或多个参与 者的会话。这些会话可以是i i n c m e t 多媒体会议、i p 电话或多媒体分发。会话的 参与者可以通过多播( m u l t i c a s t ) 、网状单播( u i l i c a s t ) 或两者的混合体进行通信。s i p 基于w 曲协议即h r r p 的协议,与 r 丌p 协议一样,s i p 采用基于文本格式的 c s 工作方式。客户机是指为了向服务器发送请求而与服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论