0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ARM芯片和WINCE5.0.NET实现无线视频电话终端的应用方案

电子设计 来源:微计算机信息 作者:李君懿,赵利,邹 2021-05-19 10:27 次阅读

作者:李君懿,赵利,邹柏程

引言

视频电话终端依据其使用方式的不同,大体可分为“PC到PC”型和“电话到电话”,“PC到电话”型三大类。“电话到电话”型产品两端都不需要计算机,电话终端本身包含音视频处理器或者音视频处理软件完成音视频即时通讯功能。由于此类产品使用简单、安装方便、便于控制、性价比合理等优点..市场前景广阔,是目前国内外研究的热点。

SIP(Session Initiation Protocol)协议是IETF于1999年提出的一种新的网络多媒体通信的交互信令,它相对于市场主体的H.323协议具有简单、扩展性好、便于实现等优点,凭借其简单、易于扩展、便于实现等诸多优点越来越得到业界的青睐,它正逐步成为NGN和3G多媒体子系统域中的重要协议。市场上出现越来越多支持SIP的智能多媒体终端及相关软件和软交换设备,SIP将成为IP视频电话业务的主流协议之一。

本文提出了一个基于SIP的嵌入式无线视频电话终端,它除了采用数字化和网络化的手段以外,还使用了嵌入式Wince设备代替原有系统的软电话软件,提高了电话设备的移动性和灵活性。更为重要的是它采用了开放的SIP同其他电话设备进行通信,从而将网络中任何一台主机变成终端,一方面扩展了通信范围,另一方面还可以同执行SIP的其他设备进行通信。同时,基于IP网络技术的多媒体通信以其部署简单,业务丰富,成本低廉等特点逐步得到企业的青睐。

1 总体方案设计

1.1 硬件系统结构

本文确定的电话终端系统的硬件方案为:使用三星公司的通用ARM芯片S3C2410配合嵌入式操作系统WINCE5.0.NET实现各种外围接口,视音频编解码处理,和传输控制协议等。这样既不存在芯片成本高的问题,又能保持很高的性能,可通过简单的程序下载实现软件下载升级或者增加新的编解码标准。系统的硬件结构框图如图1所示。实现该系统的要点是:在WINCE下添加USB摄象头和USB无线网卡驱动模块。

图1 系统硬件结构图

1.2应用软件结构

在系统硬件完成后,剩下的需要大量的工作来定制平台和编写代码实现各个功能模块,最终实现整个系统。系统的软件结构如图2所示。音频编码采用G.711/729/723.1,是为了让终端能适应音频编解码的非对称操作。本文根据视频电话终端的特点和当前实现的技术难点主要讨论视频采集传输和SIP协议栈2大核心技术的软件实现。

图2 软件系统结构图

2 无线视频电话终端的设计与实现

2.1 系统平台的设计

在WinCE产品开发中,主要有内核定制和应用程序开发两项非常蓖要的工作。

2.2 音频编码模块的实现

在系统初始化以后,音频采集编码模块对应的子线程就被创建并挂起。当用户需要采集音频数据时才分别被唤醒。音频采集编码模块主要完成语音的录制和编码处理过程。首先打开波形音频输入设备,准备好缓冲区;然后利用声卡把语音录入到准备好的缓冲区里区,一个缓冲区录满后,就可以对缓冲区里的数据进行编码。其中音频采集通过调用Windows低级音频API函数族WaveIn和WaveOut来实现.编码通过调用G.7XX音频接口提供的编解码器接口实现。

2.3 视频采集编码模块的实现

2.3.1 视频采集编码模块

笔者采用了中星微301PLUS快速主控芯片。该芯片是一款高性能图像压缩芯片。输出MJPEG视频流数据。它的误差稳定性非常好,可以获取清晰度很高的视频图像,而且还可以灵活设置各路视频清晰度,压缩帧数。本系统直接从摄像头驱动中获取MJPEG视频流数据,图像采集流程如图3所示。图像采集模块用到的主要函数有:

capInitCamera() 用来初始化视频设备,并获取当前可用的视频设备数目。

capSetVideoFormat() 设置视频格式和分辨率。本系统使用的视频格式为RGB24,分辨率为320x240像素。

capGrabFrame() 从驱动中抓取1帧图像,并存储在缓存FrameBuffer中。

capGetLastjpeg() 将抓取的MJPEG格式的图像转换成JPEG格式.送到无线发送模块。

图3 视频编码模块流程

视频采集部分还有查询视频采集格式、设置叫暗度、设置对比度等相关函数,不再详述。在完成视频采集后,再对视频流进行H.263+的视频JK缔。视频编码通过调用H.263+视频接口提供的编解码器接口实现。音频解码回放模块和视频解码回放模块将接收到的音频和视频数据解码后播放。视频播放则将视频数据格式转化为RGB.再用函数DrawDibDraw函数将其显示。

2.4 语音视频流实时传输部分的实现

2.4.1 配置无线网卡

本次开发通过开发板和主机之间的无线网卡构建无线局域网络,能够实现点对点的无缝连接,笔者通过此无线网络可以实现文件传输、视频通信等应用。开发板端的无线网卡也需要加载驱动才能运行。

2.4.2 音视频数据传输的实现

利用RTP/RTCP实现语音视频流的的实时传输.RTP负责数据发送和接收,RTCP负责网络丢包、误码情况的反馈等。JRTPLIB是一个用C++语言实现的,面向对象的开源的RTP库,它通过调用JRTPLIB提供的库函数就可以开发出高质量的音,视频传输程序。

发送端调用JRTPLIB提供的库函数实现语音视频等的实时发送的过程是:

1) 通过调用RTPSession类的构造函数创建一个RTP会话实例.然后调用RTPSession类的方法来对其进行初始化操作,来设置负载类型、标识和时戳增量。以及指定流媒体的目标地址。

2) 设置RTP会话参数,通过凋用RTPSeftsionParams类的SetOwnTimeStampUnit()方法来设置时间戳和设置RTP传输参数。

3) 调用SendPacket()方法用来向目标地址发送采集编码后的音视频数据。接收端的创建RTP会话实例和RTP会话参数设置和发送端的设置是一样的。

2.5 SIP用户代理的实现

SIP UA模块用于会话的建立、修改、终止,起着信令控制作用。此模块使用的SIP协议栈是OSIP2和EXOSIP。

EXOSIP有2种工作模式:事件模式和同调模式。本软件采用的是事件模式,使用一个定时器,定时到了后就通过函数exosip_wait_event()去获取SIP事件,SIP事件主要有EXOSIP_CALL_NEW、EXOSIP_CALL_ANSWERED等。获取到事件后.就调用相应的事件处理函数,如SipCallNew、SipCallRinging、SipCallAnswered等等。要建立、修改、终止呼叫还需要调用EXOSIP的以下几个函数:osip_build_initial_invite、eXosip_initiate_call等。

呼叫的有关控制变量都存在CCall类中,如呼叫ID、对话ID、对端IP、对端RTP端口、语音通信的线程号、是否允许有RTP流等。SIP系统中的呼叫类型主要有两个用户代理之问的普通呼叫、重定向呼叫和通过代理服务器的呼叫。

3 结语

本文设计和实现了一个基于SIP的无线视频电话终端,该终端使用嵌入式WINCE设备代替传统的USB电话和软电话软件,提高了电话系统的移动性和灵活性。终端之间采用开放的SIP进行通信,实现电话的呼叫,接听,关闭和重定向等功能。SIP的应用避免了采用私有协议所带来的封闭性,提高了同其他设备的互通性,扩大了通信的物理范周,也节约了通话成本。同时利用WIFI技术的加入提高了视频电话终端的便携性。目前SIP在视频电话系统中的应用还处于试验阶段,能与之通信的SIP设备还不是很多,但随着NGN平台的建立和SIP设备的不段增多.它的灵活性和互通性的优点会逐渐体现出来。同时,基于IP网络技术的多媒体通信以其部署简单,业务丰富,成本低廉等特点逐步得到企业的青睐。

本文作者创新点:1.在WINCE5.0嵌入式操作系统上实现可视电话终端,WINCE5.0相比较LINUX和过去WINCE的低版本操作系统来说实时性方面大大提高。目前目内的SIP电话都是基于嵌入式LINUX或者WINCE低版本系统。2.在802.1la/b/g无线局域网(WLAN)上采用VoIP技术实现VoWiFi电话终端语音视频通话功能。3.本义实现的SIP电话终端口可以集成多种业务,如语音信箱.通过WIFI无线上网,重定向呼叫等业务。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50360

    浏览量

    421637
  • 嵌入式
    +关注

    关注

    5068

    文章

    19008

    浏览量

    302962
  • 无线
    +关注

    关注

    31

    文章

    5427

    浏览量

    173052
收藏 人收藏

    评论

    相关推荐

    如何实现基于WinCEARM视频监控系统的设计?

    笔者设计的一种嵌入式系统,以WinCE操作系统和ARM硬件平台为核心实现了对现场的实时监控,并通过无线网络把视频图像传输到主机端,以
    发表于 06-08 06:32

    基于S3C2410的无线视频电话终端设计

    考虑到实现的难易程度、生产成本、和升级等因素,介绍了一种基于WINCE5.0.NET的H.263++无线视频电话
    发表于 09-24 16:18 35次下载

    基于ARM的远程无线视频监控终端设计

    提出了一种以ARM微处理器为控制核心的远程无线视频监控终端的设计方案,其监控终端的硬件设计包括
    发表于 11-22 16:25 157次下载

    基于Web Server的无线视频终端在线配置方案实现

    基于Web Server的无线视频终端在线配置方案实现 1、前言   本文的工作基于“多模式无线
    发表于 11-03 09:20 730次阅读
    基于Web Server的<b class='flag-5'>无线</b><b class='flag-5'>视频</b><b class='flag-5'>终端</b>在线配置<b class='flag-5'>方案</b>与<b class='flag-5'>实现</b>

    基于嵌入式WinCE5.0无线监控系统

    ARM9微处理器作为核心板的控制器,搭建无线视频监控系统硬件平台,扩展基于OV9650芯片的摄像头接口和GPRS无线传输模块的串口接口。利
    发表于 08-31 14:36 1851次阅读
    基于嵌入式<b class='flag-5'>WinCE5.0</b>的<b class='flag-5'>无线</b>监控系统

    ARM_Linux实现无线视频监控系统

    ARM_Linux实现无线视频监控系统资料
    发表于 11-18 16:35 3次下载

    ARM实现无线视频点播系统

    ARM实现无线视频点播系统,有兴趣的同学可以下载学习
    发表于 05-04 15:48 0次下载

    基于ARM_WINCE的音视频监控系统设计

    基于ARM_WINCE的音视频监控系统设计
    发表于 10-25 09:24 42次下载
    基于<b class='flag-5'>ARM_WINCE</b>的音<b class='flag-5'>视频</b>监控系统设计

    Wince_net下流接口驱动研究与实现

    Wince_net下流接口驱动研究与实现
    发表于 10-25 09:28 12次下载
    <b class='flag-5'>Wince_net</b>下流接口驱动研究与<b class='flag-5'>实现</b>

    WinCE_Net系统下USB总线驱动程序实现的研究

    WinCE_Net系统下USB总线驱动程序实现的研究
    发表于 10-25 09:52 15次下载
    <b class='flag-5'>WinCE_Net</b>系统下USB总线驱动程序<b class='flag-5'>实现</b>的研究

    基于WinCE_NET下串口驱动开发设计

    基于WinCE_NET下串口驱动开发设计
    发表于 10-25 09:54 3次下载
    基于<b class='flag-5'>WinCE_NET</b>下串口驱动开发设计

    WinCE_NET系统下黑白LCD的应用

    WinCE_NET系统下黑白LCD的应用
    发表于 10-25 10:02 11次下载
    <b class='flag-5'>WinCE_NET</b>系统下黑白LCD的应用

    NANDFLASH在WINCE_NET系统中的应用设计

    NANDFLASH在WINCE_NET系统中的应用设计
    发表于 10-25 10:10 17次下载
    NANDFLASH在<b class='flag-5'>WINCE_NET</b>系统中的应用设计

    基于ARM9的嵌入式SIP电话终端的设计与实现

    电子发烧友网站提供《基于ARM9的嵌入式SIP电话终端的设计与实现.pdf》资料免费下载
    发表于 10-13 11:25 3次下载
    基于<b class='flag-5'>ARM</b>9的嵌入式SIP<b class='flag-5'>电话</b><b class='flag-5'>终端</b>的设计与<b class='flag-5'>实现</b>

    基于ARM9的VOIP电话终端的设计与实现

    电子发烧友网站提供《基于ARM9的VOIP电话终端的设计与实现.pdf》资料免费下载
    发表于 10-13 11:26 0次下载
    基于<b class='flag-5'>ARM</b>9的VOIP<b class='flag-5'>电话</b><b class='flag-5'>终端</b>的设计与<b class='flag-5'>实现</b>