基于嵌入式系统的网络视频传输系统设计报告(北方工业大学二队).doc

上传人:laozhun 文档编号:4152906 上传时间:2023-04-07 格式:DOC 页数:21 大小:203KB
返回 下载 相关 举报
基于嵌入式系统的网络视频传输系统设计报告(北方工业大学二队).doc_第1页
第1页 / 共21页
基于嵌入式系统的网络视频传输系统设计报告(北方工业大学二队).doc_第2页
第2页 / 共21页
基于嵌入式系统的网络视频传输系统设计报告(北方工业大学二队).doc_第3页
第3页 / 共21页
基于嵌入式系统的网络视频传输系统设计报告(北方工业大学二队).doc_第4页
第4页 / 共21页
基于嵌入式系统的网络视频传输系统设计报告(北方工业大学二队).doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《基于嵌入式系统的网络视频传输系统设计报告(北方工业大学二队).doc》由会员分享,可在线阅读,更多相关《基于嵌入式系统的网络视频传输系统设计报告(北方工业大学二队).doc(21页珍藏版)》请在三一办公上搜索。

1、基于嵌入式系统的网络视频传输系统Network Video transmission System Based on Embedded2008年 7月 18日摘要本文设计了一个基于嵌入式WinCE操作系统的软件,它能够将USB摄像头采集到的视频数据,使用PXA270S实验箱上的服务端,经由网络传递给电脑上的客户端,并且显示出来。这里采用的通信方式是TCP通信。软件系统包括两大部分:视频图像采集和视频图像传输。视频图像采集部分描述了USB摄像头驱动设计过程和实现图像采集功能的程序;而视频图像传输部分,首先简单介绍了socket通信原理,并且详细论述了客户端和服务端如何使用TCP进行通信,完成视频

2、传输的过程,然后还介绍了如何将摄像头采集到的图像数据显示出来。客户端和服务端程序分别使用Visual C+6.0和eMbedded Visual C+进行开发。程序编写完成后,同时运行客户端和服务端并加载摄像头驱动程序,通过以太网,就可以实现视频传输的功能了。关键词:PXA270S; WinCE; USB Camera驱动;视频采集;视频传输AbstractAbstract:This article describes a kind of software based on embedded wince operating system. This software can collect v

3、ideo data by using USB Camera. Then the server on PXA270S experiment box will send this data to the client through network. At the same time, this video data will be displayed both on the server and the client. TCP communication is supposed to be the mode of network communication. This software syst

4、em contains two parts, including video data collection and video data transmission.The part of video data collection describes how to develop USB Camera driver and collect video data. The part of video data transmission describes sockets communication principle, at first. It also describes the clien

5、t how to communicate with the server by using TCP communication, and send data to each other. At last, all of video data will be displayed on the server and the client. The server program is developed by using eMbedded Visual C+, the client program by using Visual C+ 6.0.After all above have be done

6、, run the server and the client, load the USB Camera driver, the video data will be successfully transmitted.Keywords: PXA270S; WinCE; USB Camera drive; video data acquisition; video data transmission目 录第1章 绪论6第2章 系统总体设计62.1系统组成 62.2设备介绍62.3驱动程序简介6第3章 功能与指标7第4章 实现原理7第5 章 硬件框图 7第6章 软件流程86.1 WINCE 下的U

7、SB CAMERA 驱动86.1.1WINDOWS CE编写的USB CAMERA驱动程序86.1.2 USB CAMERA驱动的实现86.2服务端视频采集96.3视频图像传输106.4 PC机上TCP客户端程序116.4.1 CTCPClient_CE类概述及应用116.4.2 TCP客户端程序其他类简单概述136.4.3 WinCE上TCP服务端程序146.4.4 CTCPCustom_CE类说明146.4.5 CTCPServer_CE类说明156.4.6 TCP服务端程序16第7章 测试方案及结果187.1系统测试方案.187.2测试设备.187.3测试结果 .18第8章 实现功能19

8、第9章 特色20参考文献附录错误!未定义书签。第1章 绪论随着信息科学技术的高速发展,网络技术和数字视频技术都已经日趋成熟;同样的,网络视频监控系统已被广泛应用在很多场所。这里将研究视频采集与传输功能在网络视频电话中的具体应用。所使用的实验平台是PXA270-S实验箱。选用的USB摄像头也是目前常用的,其输出的视频为经过JPEG压缩后的数字视频,因此无需再进行视频压缩。加上以太网不会受到网络带宽限制,所以采集到的数字视频可以直接通过以太网传输到PC机上,减少了硬件设计的复杂度。第二章 系统总体设计2.1系统组成系统主要包括两个部分:一个是USB视频图像的数据采集;另外一个就是视频图像传输系统。

9、系统硬件架构如图1。摄像头PXA270S网线 PC机图12.2设备介绍PXA270S开发系统,基于Intel公司最新的XScale架构PXA270-S,ARM系列处理器,最高主频可达624MHz,加入了Wireless MMX技术,提升了多媒体处理能力;同时PXA270还加入了Intel Speed Step动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。USB摄像头采用罗技快看高手5000(Logitech QuickCam 5000),它采用高品质CMOS图像传感器,130万像素,最大分辨率640*480,高速USB2.0传输接口。 另外,还有以太网转换器和客户端的

10、PC机。2.3 软件介绍软件系统由系统引导加载程序Bboot.nb0载入嵌入式WinCE内核、USB Camera驱动和CE端应用程序等组成。在PXA270S BSP基础上,根据具体需要,使用Platform Builder定制将在PXA270S实验平台上使用的WinCE内核。另外使用eMbedded Visual C+开发在WinCE平台下的USB Camera驱动和CE服务端应用程序,而PC机上客户端的程序则在Visual C+6.0上进行开发。第三章 功能与指标我们通过USB摄像头采集到的视频经过JPEG压缩后的数字视频可以直接在以太网上传输。在PXA270S处理器的控制下,可以把USB

11、摄像头采集到的视频通过以太网发送到远端的PC上,以达到视频对话的效果,其图像清晰,速度快捷。其中PXA270S平台上的视频采集速率为15帧,而PC机所接收到的视频采集速率也能在10帧以上且较为稳定。第四章 实现原理USB 系统由USB 主机,一个或多个USB 设备和物理总线组成。主机上又分两层:较高的包含USB 设备驱动程序的软件层和主机控制器硬件层。主机的用于控制对USB 设备的双向数据传输。物理总线是一组USB电缆用来将控制器和外围设备连接起来。WinCE的USB 系统软件由两层组成: USB 设备驱动程序层和底层的由WinCE实现的USB 函数层。较低的USB 函数层本身又由两部分组成较

12、高的通用串行总线驱动程序(USBD)模块和较低的主控制器驱动程序(HCD)模块。HCD 提供了抽象的主机控制器,且对主机控制器所见到的USB 系统的数据传输进行了抽象。USBD 提供一个抽象的设备,且对USBD客户和USB 设备功能部件之间的数据传输进行抽象。USB设备驱动程序使用USBD 接口函数与外围设备进行通信第五章硬件框图第六章 软件流程6.1 WinCE 下的USB camera 驱动6.1.1 Windows CE编写的USB camera驱动程序USB 设备驱动程序必须输出的函数有:USBDeviecAttach() /初始化USB 设备USBInstallDriver() /创

13、建一个驱动程序加载所需的注册表信息USBUninstallDriver() /释放驱动程序所占用的资源,删除注册表等。6.1.2 WinCE 下的USB camera 驱动实现首先是具体的注册表信息,在platform.reg 中添加以下注册项即可。 HKEY_LOCAL_MACHINEDriversUSBLoadClients1133_2245DefaultDefaultVideo_Class“DLL”=“webcam.DLL” HKEY_LOCAL_MACHINEDriversUSBClientDriversVideo_Class“Prefix”=“CAM”“Dll”=“webcam.DL

14、L”另外还要在USBCode.cpp 中针对USB 摄像头的PID、VID 对以下定义做修改:#define VID_LOGITECH 1133#define PID_QUICKCAMPRO5000 2245#define PID_MIKESQUICKCAM 2226在WebCam.h 文件中针对以下几项定义要做修改:#define DRIVER_NAME TEXT(Webcam.dll)#define DEVICE_PREFIX TEXT(CAM)#define CLASS_NAME_SZ TEXT(Video_Class)#defineCLIENT_REGKEY_SZTEXT(Driver

15、sUSBClientDriversVideo_Class)外设插入时,首先调用USBDeviceAttach()函数。接下来调用ActivateDevice()它用来分配,填写设备内容。USBDeviceAttach()最后要完成的工作是在此函数内调用USBD 模块的RegisterNotificationRoutine 函数登记注册DeviceNotify 函数,用于相应的善后工作。自此,系统完成外设加载。6.2服务端视频采集在USB Camera驱动成功加载之后,要对其输出的视频图像压缩数据进行分析、还原,以完成视频图像的采集过程。这些功能由我们所设计的TCP服务端来实现,具体的函数定义以

16、及程序代码分别在文件CameraCode.h和文件CameraCode.cpp中。在文件CameraCode.h添加如下函数:InitCamera () /打开摄像头;ShutdownCamera () /关闭摄像头;GetVideoFormats /获取视频图像的格式GetStillFormats /获取静态图片的格式WriteJPEG()/将图像保存为一个JPEG格式的文件。6.3视频图像传输系统在此我们要应用到Windows Sockets规范和TCP编程。Windows Sockets规范的本意在于提供给应用程序开发者一套简单的API。它规范定义并记录了如何使用API与Internet

17、协议族连接。实现实际的通讯工作。他们之间的工作关系如图3示。而且WINCE平台还提供了Socket的API函数。图3 socket通信具体应用流程图TCP(Transport Control Protocol)表示传输控制协议。他的服务端和客户端的流程图如图4示。图4 TCP服务端和客户端的流程图下面将具体介绍分析WinCE上TCP服务端和PC机上TCP客户端程序。6.4 PC机上TCP客户端程序在客户端应用程序设计中,首先要创建CTCPClient_CE类,完成对TCP封装,然后调用该类与TCP服务端建立连接,并进行数据传输,最后再断开与TCP服务端的连接。下面介绍程序的具体实现过程。 6.

18、4.1 CTCPClient_CE类概述及应用CTCPClient_CE类主要用于封装WinCE socket API函数,其使用流程如图。 图5 CTCPClient_CE类的使用流程其具体应用及代码如下:1) 建立私有函数private:CTCPClient_CE m_tcpClient; 用于引用CTCPClient_CE类。2) 设计IDD_PCCAMCTRL_FORM对话框。为CMainFrame类添加三个私有静态函数OnDisConnect、OnRead、OnError,分别用于处理客户端连接断开事件、从客户端读取数据事件和客户端socket错误事件。3) 为“连接”和“断开”按钮

19、添加单击事件代码。4) 加入以下函数:void SendCMD(long cmd);向终端发送命令信息void SendCMDData(long cmd,CString data); 发送命令数据void ProcessWebCmd(long datasize); 处理网络命令 6.4.2 TCP客户端程序其他类简单概述首先要说的是CPCCAMCTRLView, 具体定义如下:public:void DisplayFrame (PBYTE pData,DWORD dwSize); 显示接收到的图片另外CPictureCtrl类和CPicture类,其中分别用到了重载函数LoadImage和Lo

20、ad,同时也都包含了函数GetImageSize,这些函数共同完成了对显示图片大小的控制。CPictureCtrl类还包含了函数OnPaint,用以绘制图片。至此TCP客户端程序就编写完毕了。TCP客户端程序具体流程图如图6。图6 TCP客户端程序工作流程图6.4.3 WinCE上TCP服务端程序TCP服务端将会创建CTCPServer_CE和CTCPCustom_CE两个类: CTCPServer_CE 监听客户端的连接CTCPCustom_CE 与客户端进行通讯CTCPServer_CE类和CTCPCustom_CE类的关系如图7。图7 CTCPServer_CE类和CTCPCustom_

21、CE类的关系图6.4.4 CTCPCustom_CE类说明CTCPCustom_CE类的实现步骤。1) 通过EVC主菜单创建一个新的类CTCPCustom_CE,并且绑定winsock.lib库。2) CTCPCustom_CE类具体代码如下:public:CTCPServer_CE * m_pTCPServer_CE; /引用TCP服务端监听Socketbool Open(CTCPServer_CE *pTCPServer);/打开socket,创建通讯线程CString m_RemoteHost; /远程主机IP地址DWORD m_RemotePort; /远程主机端口号SOCKET m_

22、socket; /通讯Socket句柄bool Send(CTCPServer_CE*pTCPServer);/ 向客户端发送数据bool Close();/关闭socket,关闭线程,释放Socket资源private:HANDLE m_tcpThreadHandle; /通讯线程句柄SocketThreadFunc;/ 监听与客户端连接的socket通讯的事件HANDLE m_exitThreadEvent; /通讯线程退出事件句柄6.4.5 CTCPServer_CE类说明CTCPServer_CE类主要职责是负责监听并接受客户端连接。1) 在TCPServer_CE.h文件中添加如下代

23、码用于定义几种函数类型。#include class CTCPCustom_CE;class CTCPServer_CE;/定义客户端连接建立事件typedef void (CALLBACK* ONCLIENTCONNECT)(CWnd*,CTCPCustom_CE*);/定义客户端SOCKET关闭事件typedef void (CALLBACK* ONCLIENTCLOSE)(CWnd*,CTCPCustom_CE*);/定义客户端当有数据接收事件typedef void (CALLBACK* ONCLIENTREAD)(CWnd*,CTCPCustom_CE*,N_Packet *);/定

24、义客户端Socket错误事件typedef void (CALLBACK* ONCLIENTERROR)(CWnd*,CTCPCustom_CE*,int nErrorCode);/定义服务器端Socket错误事件typedef void (CALLBACK* ONSERVERERROR)(CWnd*,CTCPServer_CE*,int nErrorCode);2) 为CTCPServer_CE类添加一些公有成员变量,私有成员变量及成员函数,这些变量的定义如下:public:int m_LocalPort; /设置服务端口号CWnd * m_pOwnerWnd; /父窗口句柄Open() /

25、打开TCP服务ONCLIENTCONNECT OnClientConnect; /客户端连接建立事件,回调函数ONCLIENTCLOSE OnClientClose; /客户端连接断开事件,回调函数ONCLIENTREAD OnClientRead; /客户端接收数据事件,回调函数ONCLIENTERROR OnClientError; /客户端发生错误事件,回调函数ONSERVERERROR OnServerError; /服务器端发生错误事件,回调函数Close() /关闭TCP服务private:SOCKET m_ServerSocket; /TCP服务监听socketHANDLE m_

26、serverThreadHandle; /通讯线程句柄HANDLE m_exitThreadEvent; /通讯线程退出事件句柄注意,这里有一个非常重要的属性m_LocalPort,该属性表示TCP服务端的端口号。用户可以选择1024之后的端口。3) 在CTCPServer_CE类的构造函数和析构函数里分别创建线程退出事件和关闭线程退出事件。4) 在TCPServer_CE.cpp文件中添加全局静态变量m_ListClientSocket,用于储存客户端连接的Socket列表,并引用TCPCustom_CE.h文件和afxtempl.h文件。5) 为CTCPServer_CE类添加一个私有静态

27、线程函数SocketThreadFunc。该线程用于监听服务器套接字事件。SocketThreadFunc函数定义如下:private:static DWORD SocketThreadFunc(PVOID lparam); /线程处理函数6.4.6 TCP服务端程序1) 为CMainFrame类添加私有成员变量m_tcpServer,用它来实现TCP服务同时设置网络信息。具体定义如下:public: void SendCMD(long cmd); / 向PC发送命令信息bool SendCMDData(long cmd, const char * pbuf , int len);/ 向PC发

28、送命令数据void ProcessWebCmd(void); / 处理网络命令N_Packet P_RCV; / 包缓冲区N_Packet P_SEND; / 包缓冲区private:CTCPServer_CE m_tcpServer; /定义CTCPServer_CE对象2) 接下来设计IDD_LGCAMCECTRL_FORM对话框,然后为CMainFrame类添加5个私有静态函数。OnClientConnect/处理客户端连接建立事件OnClientClose/处理客户端Socket关闭事件OnClientRead/处理服务端收到的来自客户端的数据事件OnClientError/处理客户端

29、Socket错误事件OnServerError/处理服务端Socket错误事件。3) 为“启用网络”、“关闭网络”添加单击事件代码。单击“启用网络”按钮后,TCP服务器就开始监听,等待客户端的连接;单击“关闭网络” 按钮后,将关闭处于监听状态的TCP服务器。图8 服务端工作流程图第七章 系统测试7.1测试方案首先在CE端加载摄像头驱动,再运行服务端“启用网络” ,然后运行客户端“连接” ,建立与服务端的连接,最后在服务端选择“开始预览” ,这样服务端与客户端就能同时显示图像了。7.2测试设备:PXA270-S实验箱、USB罗技快看高手5000摄像头、PC机和以太网交换机。7.3 测试结果:客户

30、端运行过程截图如图9所示,服务端运行过程截图如图10所示。图9 客户端截图图10 服务端截图第八章 实现功能结合USB Camera罗技快看高手5000(Logitech QuickCam 5000)的驱动开发,简单介绍了USB设备的驱动设计框架。同时,设计了基于WinCE操作系统和PXA270S平台的视频传输系统。此系统能够将USB Camera采集的视频数据压缩,然后使用实验平台与PC机之间的网络,通过TCP进行视频数据传输。其中,PXA270S平台上的视频采集速率为15帧,而PC机所接收到的视频采集速率也能在10帧以上且较为稳定。第九章 特色整套系统的特色在于能够通过网络,方便快捷的传递

31、清晰,稳定的视频图像。USB camera 摄像头,PXA270-S实验箱便于携带,弥补了大型图像采集设备笨重,不便的缺陷。其次可以在第一时间通过网络传递视频信息,并且可以重复使用,体现了它的快捷,同时也达到了节省资源空间的效果。参考文献1. 汪兵,李存斌,陈鹏.EVC高级编程及其应用开发(Embedded Visual C+嵌入式编程).北京:中国水利水电出版社,2005,353-385.2. 侯娟,王陆林,刘贵如. 基于ARM和WINCE 的USB 视频采集与传输系统的设计. 科技情报开发与经济.2008年,18卷(第3期):171-172.3. 张伟,贺赛先.基于WinCE.Net的US

32、B Camera驱动开发.计算机工程.2006年7月,32卷(第13期):274-276.4. 关学忠,李洪宇,李国盛.基于WinCE的ARM视频监控系统.安防科技.2007年,1期:63-65.5. 吴松华,吴伟国.基于WinCE.net的嵌入式监控软件设计与实现.软件纵横,2006年,3期:45-48.6. 张登银, 卢栋梁. 面向对象的嵌入式TCPIP协议栈设计. 江苏大学学报.2007年9月.第28卷(第5期):417-420.7. Alexander R TImproving the quality of objectoriented program. Software,IEEE,2

33、001,18(5):9091.8. Hsiung P A,Lee T Y,Fu J MFormal verification of real-time embedded software in an object-oriented application framework Computers and Digital Techniques,IEEE Proceedings,2004,151(6):417434.9. 侯俊杰.深入浅出MFC.武汉:华中科技大学出版社,2004.10. Sandbank CP. Digital TV in the convergent environment. IEEE Computer Graphics and Applications,2001,21(1):3236.附录附录A 附录B附录C 附录D

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号