Computer Science and Application
Vol.1 No.3(2011), Article ID:384,4 pages DOI:10.4236/csa.2011.13031
The Embedded Design of Audio Network Transmission Based on WinCE Operating System*
1College of Communication and Information Engineering, Xi’an University of Science & Technology, Xi’an
2Xi’an Mount Zhong Nan Information Technology Ltd, Xi’an
3Shijiazhuang Institute of Career Academy, Shijiazhuang
Email: liwenfeng@xust.edu.cn; {lijuming2008, lujun07}@163.com; glen_xu@qq.com
Received: Oct. 14th, 2011; revised: Oct. 25th, 2011; accepted: Nov. 9th, 2011.
ABSTRACT:
In order to solve the heavy equipment and hard to build fast networking problems in mine emergency rescue communication network, a portable network terminal equipment is designed in this paper. It uses WinCE system and TCP/IP network protocols, including WinCE transplantation, network transmission and WinCE embedded application development. A mutually for the client server network communication is realized, and the real-time transmission of underground video, audio, environmental parameters acquisition information is achieved. Finally the embedded terminal and the PC host combined joint debugging are conducted. Test data indicate that audio network transmission is efficient, and the software code is with good encapsulation and portability.
Keywords: Mine Emergency Rescue; Network; TCP/IP; WinCE
嵌入式WinCE的视音频网络传输设计*
李文峰1,李举名1,徐克强2,陆 军3
1西安科技大学通信与信息工程学院,西安
2西安终南信息技术有限公司,西安
3石家庄理工职业学院,石家庄
Email: liwenfeng@xust.edu.cn; {lijuming2008, lujun07}@163.com; glen_xu@qq.com
摘 要:
为了解决矿山应急救援通信网络设备沉重、快速组网困难的问题,本文设计了一种便携式网络终端设备。其采用WinCE系统和TCP/IP网络传输协议,包括WinCE移植工作,网络传输和WinCE嵌入式应用程序的开发。实现了一种互为客户端服务器的网络通信,完成了井下视频、音频、环境参数采集信息的实时传输。最后将嵌入式终端和PC主机结合起来进行了联合调试。大量测试数据表明视音频网络传输高效,软件代码具有良好的封装性,可移植性。
收稿日期:2011年10月14日;修回日期:2011年10月25日;录用日期:2011年11月9日
关键词:矿山应急救援;网络传输;TCP/IP;WinCE
1. 引言
近年来,我国矿山事故频繁发生,例如塌方、透水、煤矿起火、瓦斯爆炸等,对矿工生命构成威胁,并使国家遭受重大经济损失。为此,国家煤矿安全监察局成立了矿山救援指挥中心。预示着国家对矿山救援设备及救援人员素质的要求有进一步的提高[1]。本文源于井下现场信息记录仪研发项目,旨在设计一款专用于矿山应急救援通信的便携式设备,实现井下移动通信、视频传输、语音双向传输、人员定位以及瓦斯粉尘监控信息传输。方便灾后救援人员快速展开救援工作。网络通信是整个系统设计的关键基础,本文重点阐述软件平台搭建和网络通信的实现。
2. 平台搭建
矿山应急救援通信环境复杂。通信设备具有便携式,本质安全,宽带自组和即铺即用的特点[1]。灾害发生后,井下固定通信设施可能全部损坏或无法正常工作。在井下巷道空间狭窄,低照度,信号质量弱的复杂环境下进行通信救援时,需要快速独立组网,恢复通信。
该网络系统实现井上指挥中心(JLY_PC),井下基地(JLY_Base)和现场信息记录仪(JLY_CPE)三部分之间的网络通信。采用TCP/IP协议,分别建立JLY_PC、JLY_Base和JLY_CPE三方通信,网络通信架构如图1所示。
JLY_PC采用PC机,windows XP操作系统,通过VC++平台建立指挥管理中心应用软件。
JLY_Base和JLY_CPE基于嵌入式ARM11的S3C6410处理器,使用WinCE 6.0操作系统,VS2005应用开发工具建立井下基地和信息记录仪应用软件。Wince6.0是微软公司目前最新的嵌入式操作系统之一,与其他嵌入式系统比较主要有用户界面良好、开发周期短、VS2005集成开发环境,多媒体支持等特点[2]。
3. 软件功能
软件功能模块分层结构如图2所示。
工作流程:视频采集和多方通话模块分别得到视频和音频信号,之后将其送到记录模块;记录模块将得到的视频和音频信号保存到CF卡或电脑硬盘中,并且将视频信号传送到显示屏上显示,之后将其收到的所有信息通过有线或者无线网络对外进行传输,同时接收外界传输的数据[3]。
由此可见网络模块是整个系统的关键。
4. 网络通信程序
网络通信采用TCP/IP协议,其具有有序数据传输,重发丢失的分组,舍弃重复的分组,无错误数据传输,阻塞/流量控制,面向连接的特点[4]。
应用层网络传输使用自定义协议,规定数据包包头信息固定为0XD0,视频信息为0x12,音频信息为0x14,环境参数信息为0x16。定义形式如下:
#define MSG_HEAD_MARK 0xD0
#define MSG_STREAM_AVD 0x10
#define MSG_STREAM_AVD_VIDEO 0x12
#define MSG_STREAM_AVD_AUDIO 0x14
#define MSG_STREAM_AVD_DATA 0x16
网络采用互为客户端服务器通信方式,克服了以往服务器客户端的缺点,使各节点具有相同等级[5]。网络传输发送数据流程图如图3所示。
在wince6.0下,TCP传输的关键代码及函数如下:
调用int Send_Video(unsigned char *pBuf, unsigned long nLen)发送视频数据,给视频数据加上对应的视频数据包头,将视频数据分成第一包,中包和最后包进行打包。将打包的数据调用函数int LinkListAdd (LinkList *pLList,void *element,int len,int pos)加入对应的视频列表pTxLinkListVideo中。音频的发送于此相似[5]。
调用void JLYNet_Send(int node,unsigned char *pBuf,unsigned int nLen)将数据发送给接收节点。
Figure 1. Network communication architecture
图1. 网络通信架构
Figure 2. Software system function module layered structure
图2. 软件系统功能模块分层结构
Figure 3. Network data sending flow chart
图3. 网络数据发送流程图
调用int JLYNet_SendAll(unsigned char *pBuf, unsigned int nLen)给每个节点都发送数据,即一个节点发送数据,其他两节点都能接收到数据,比如实现三方会话时的发送音频数据。
最后包的数据发送完时要进行数据的校验,调用函数int Assemble_MSG (int node, LinkList *pLinkList)。
网络数据接收流程与发送刚好是反过程,接收方接收数据,调用函数int JLYNet_RecvHandle(int node, unsigned char *pBuf,unsigned int nLen),接收到数据后加入到相应的视频、音频、环境参数接收链表pRxLinkList,送给对应的解码器进行解码和其他处理。
5. 联调与测试结果
5.1. 联调设置
VS2005下platform builder平台创建UT_S3C6410工程,完成内核定制,创建TEboard6410的SDK包。在PC机安装同步驱动软件,实现S3C6410开发板与PC机同步。PC机下应用程序移植到VS2005的TEboard6410环境下,通过同步软件,应用程序拷贝到Nand Flash下运行[6]。
节点IP配置如下:
设置JLY_CPE为节点0,IP地址192.168.1.107;
设置JLY_Base为节点1,IP地址192.168.1.108;
设置PC机为节点2,IP地址192.168.1.118。
在JLY_CPE和JLY_Base两个S3C6410开发板进行通信时,采用无线WIFI通信。如采用有线通信时,两开发板的MAC地址相同,需修改其MAC地址才能通信[7]。S3C6410下修改MAC地址方法:
1) 修改网卡驱动DM9000A.CPP里面里MAC地址。
U16 eeprom[] = {0xaae0, 0xdec8, 0x5163};一般前三位为厂家芯片固定值,不做修改。修改最后一位即可。如修改为U16 eeprom[] = {0xaae0, 0xdec8, 0x5160}。
2) 重新编译内核,生成镜像文件。
3) 新生成镜像烧写到Nand Flash。即完成了MAC地址修改。
5.2. 测试结果
1) 语音测试结果
图4为语音测试数据的一组截图,阴影部分表示语音接收包序号,经过大量数据测试语音测试结果:话音质量清晰,实现井上指挥中心、井下基地和现场信息记录仪之间的三方会话功能。
2) 抓包数据显示
如图5,通过多次数据抓包测试,丢包率极低,网络传输高效,稳定。
Figure 4. speech test results
图4. 语音测试结果
Figure 5. Network packet capture display
图5. 网络抓包显示
Figure 6. Video transmission figure
图6. 视频传输显示图
3) 视频传输效果及软件界面
图6为视频传输及客户端界面,视频传输稳定,实时同步,达到预期的效果。
6. 结论
本文设计的矿用现场信息记录仪采用自定义协议完成有线和wifi无线通信技术的实现,采用wince6.0操作系统,软件移植方便简单。可以实时、准确地把井下救援过程中的视频信息和音频信息传送到地面救灾指挥部及各级救援指挥中心,支持多方实时通话,并可以将所有信息进行同步储存记录以便事后回放,对增强矿山救援决策能力、提高国家矿山救援能力以及灾后研究事故起因及责任认定起着重要的作用。经系统测试,记录仪网络传输稳定,高效。其在PDA等其它场合有很大的适用范围。
参考文献 (References)
[1] 李文峰, 李华. 矿山无线救援通信技术研究[J]. 煤炭科学技术, 2008, 36(7): 80-83.
[2] 张冬泉, 谭南林等. Windows CE 实用开发技术[M]. 北京: 电子工业出版社, 2009.
[3] 钟华彪. 视频实时传输系统设计与拥塞控制策略研究[D]. 中南民族大学, 2009.
[4] W. R. Stevers [美]. TCP/IP详解(第一卷)协议[M]. 北京: 北京大学出版社, 1999.
[5] 王艳平. Windows网络与通信程序设计(第二版)[M]. 北京: 人民邮电出版社, 2009.
[6] D. Boling [美]. Microsoft Windows CE程序设计[M]. 北京: 北京大学出版社, 1999.
[7] 王静. 基于S3C2440和TCP/IP网络的红外图像采集和处理系统[D]. 南京理工大学, 2006.
NOTES
*基金项目:国家科技部2009年度科技型中小企业技术创新基金(09C26226115674);2010年西安市科技创新支撑计划(CY100850);陕西省教育厅自然科学专项(08JK354)。