基于嵌入式系统的网络视频传输系统-设计报告(北方工业大学-二队)_第1页
基于嵌入式系统的网络视频传输系统-设计报告(北方工业大学-二队)_第2页
基于嵌入式系统的网络视频传输系统-设计报告(北方工业大学-二队)_第3页
基于嵌入式系统的网络视频传输系统-设计报告(北方工业大学-二队)_第4页
基于嵌入式系统的网络视频传输系统-设计报告(北方工业大学-二队)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、ti ng system. This software can collect video data by using USB Camera. The n the server on PXA270 S experime nt box will send this data to the clie nt through n etwork. At the same time, this video data will be displayed both on the server and the client. TCP com muni cati on is supposed to be the

4、mode of n etwork com muni cati on. This software system contains two parts, in cludi ng video data collecti on and video data tran smissi on.The part of video data collectio n describes how to develop USB Camera driver and collect video data. The part of video data tran smissi on describes sockets c

5、om muni cati on prin ciple, at first. It also describes the clie nt how to com muni cate with the server by using TCP com muni cati on, and send data to each other. At last, all of video data will be displayed on the server and the clie nt. The server program is developed by using eMbedded Visual C+

6、, the clie nt program by us ing Visual C+ 6.0.After all above have be done, run the server and the clie nt, loadthe USB Camera driver, the video data will be tran smitted.successfullyvideo dataKeywords: PXA270 S; WinCE; USB Camera drive; acquisiti on; video data tran smissi on TOC o 1-5 h z HYPERLIN

7、K l bookmark8 o Current Document 第1章绪论二.6 HYPERLINK l bookmark10 o Current Document 第2章系统总体设计62.1系统组成 62.2设备介绍 62.3驱动程序简介 6 HYPERLINK l bookmark12 o Current Document 第3章功能与指标二.7 HYPERLINK l bookmark14 o Current Document 第4章实现原理二.7 HYPERLINK l bookmark16 o Current Document 第5章硬件框图 7 HYPERLINK l bookm

8、ark18 o Current Document 第6章软件流程二.8 HYPERLINK l bookmark20 o Current Document WINCE 下的 USB CAMERAS动 8 HYPERLINK l bookmark22 o Current Document 6.1.1WINDOWS CE编写的 USB CAMER驱动程序 8 HYPERLINK l bookmark24 o Current Document 6.1.2 USB CAMERA 驱动的实现 8 HYPERLINK l bookmark26 o Current Document 6.2服务端视频采集 9

9、 HYPERLINK l bookmark28 o Current Document 6.3视频图像传输 10 HYPERLINK l bookmark30 o Current Document 6.4 PC机上TCP客户端程序 11CTCPClie nt_CE 类概述及应用 11TCP客户端程序其他类简单概述 13 HYPERLINK l bookmark32 o Current Document WinCE上TCP服务端程序 14CTCPCustom_CE 类说明 14CTCPServer_CE 类说明 15TCP服务端程序 16第7章测试方案及结果 亠187.1系统测试方案 187.2测

10、试设备 .187.3测试结果 .18 HYPERLINK l bookmark36 o Current Document 第8章实现功能佃 HYPERLINK l bookmark38 o Current Document 第9章特色乂 20参考文献附录错误!未定义书签2008第四届“博创杯”全国大学生嵌入式设计大赛 第1章绪论随着信息科学技术的高速发展,网络技术和数字视频技术都已经日趋成熟;同样的,网络视频监控系统已被广泛应用在很多场所。这里将研究视频采集与传输 功能在网络视频电话中的具体应用。所使用的实验平台是PXA270-S实验箱。选用的USB摄像头也是目前常用的,其输出的视频为经过 J

11、PEG压缩后的数字视频,因 此无需再进行视频压缩。加上以太网不会受到网络带宽限制,所以采集到的数字 视频可以直接通过以太网传输到 PC机上,减少了硬件设计的复杂度。第二章系统总体设计2.1系统组成系统主要包括两个部分:一个是USBB频图像的数据采集;另外一个就是视频 图像传输系统。系统硬件架构如图1。摄像头 PXA27 S _网PC 机图12.2设备介绍PXA27 S开发系统,基于In tel公司最新的XScale架构PXA270-S ARM系 列处理器,最高主频可达624MHz加入了 Wireless MMX技术,提升了多媒体处理 能力;同时PXA270还加入了 In tel Speed S

12、tep动态电源管理技术,在保证 CPU性能的情况下,最大限度地降低移动设备功耗。USB摄像头采用罗技快看高手 5000( Logitech QuickCam 5000),它采用高品 质CMOSB像传感器,130万像素,最大分辨率640*480,高速USB2.0传输接口。另外,还有以太网转换器和客户端的 PC机。2.3软件介绍软件系统由系统引导加载程序 Bboot.nb0载入嵌入式WinCE内核、USBCamera 驱动和CE端应用程序等组成。在 PXA27 S BSP基础上,根据具体需要,使用 Platform Builder定制将在PXA27 S实验平台上使用的 WinCE内核。另外使用 e

13、Mbedded Visual C+开发在 WinCE平台下的USB Camerj驱动和CE服务端应用程 序,而PC机上客户端的程序则在Visual C+6.0上进行开发。第三章功能与指标我们通过USB摄像头采集到的视频经过JPEG压缩后的数字视频可以直接在以 太网上传输。在PXA27 S处理器的控制下,可以把 USBg像头采集到的视频通 过以太网发送到远端的PC上,以达到视频对话的效果,其图像清晰,速度快捷。 其中PXA270S平台上的视频采集速率为15帧,而PC机所接收到的视频采集速 率也能在10帧以上且较为稳定。第四章实现原理USB系统由USB主机,一个或多个 USB设备和物理总线组成。主

14、机上又分 两层:较高的包含USB设备驱动程序的软件层和主机控制器硬件层。主机的用于 控制对USB设备的双向数据传输。物理总线是一组 USB电缆用来将控制器和外围 设备连接起来。WinCE的USB系统软件由两层组成:USB设备驱动程序层和底层 的由WinCE实现的USB函数层。较低的USB函数层本身又由两部分组成一一较高 的通用串行总线驱动程序(USBD模块和较低的主控制器驱动程序(HCD模块。 HCD提供了抽象的主机控制器,且对主机控制器所见到的USB系统的数据传输进行了抽象。USBD提供一个抽象的设备,且对 USBD客户和USB设备功能部件之间 的数据传输进行抽象。USB设备驱动程序使用US

15、BD接 口函数与外围设备进行通信第五章硬件框图外设主机和软件专用驱动程序通道Y道WUSB电域第六章软件流程WinCE 下的 USB camera 驱动Windows CE 编写的 USB camera 驱动程序USB设备驱动程序必须输出的函数有:USBDeviecAttach() / 初始化 USB设备USBI nstallDriver()/创建一个驱动程序加载所需的注册表信息USBU nin stallDriver() /释放驱动程序所占用的资源,删除注册表等。WinCE 下的 USB camera 驱动实现首先是具体的注册表信息,在platform.reg中添加以下注册项即可。HKEY_L

16、OCAL_MACHINEDriversUSBLoadClie nts1133_2245Default DefaultVideo_Class“ DLL = “ webcam.DLLHKEY_LOCAL_MACHINEDriversUSBClie ntDriversVideo_Class“ Prefix ” = “ CAM“Dll ” = “webcam.DLL另外还要在USBCode.cpp中针对USB摄像头的PID、VID对以下定义做修改:#define VID_LOGITECH 1133#define PID_QUICKCAMPRO5000 2245#defi ne PID_MIKESQUI

17、CKCAM2226在WebCam.h文件中针对以下几项定义要做修改:#define DRIVER_NAME TEXT(Webcam.dll)#defi ne DEVICE_PREFIX TEXT(CAM)#define CLASS_NAME_SZ TEXT(Video_Class)#defin eCLIENT_REGKEY_SZTEXT(DriversUSBClie ntDriversVideo_Cla ss)外设插入时,首先调用 USBDeviceAttach()函数。接下来调用ActivateDevice() 它用来分配,填写设备内容。USBDeviceAttach()最后要完成的工作是在

18、此函数内调用USBD模块的 RegisterNotificationRoutine函数登记注册DeviceNotify 函数,用于相应的善后工作。自此,系统完成外设加载。6.2服务端视频采集在USBCamera驱动成功加载之后,要对其输出的视频图像压缩数据进行分析、 还原,以完成视频图像的采集过程。这些功能由我们所设计的TCP服务端来实现,具体的函数定义以及程序代码分别在文件CameraCode.h和文件CameraCode.cpp中。在文件CameraCode.h添加如下函数:In itCamera () /打开摄像头;ShutdownCamera () / 关闭摄像头;GetVideoFo

19、rmats /获取视频图像的格式GetStillFormats /获取静态图片的格式WriteJPEG() 将图像保存为一个JPEG格式的文件。6.3视频图像传输系统在此我们要应用到Windows Sockets规范和TCP编程。Windows Sockets规范的本意在于提供给应用程序开发者一套简单的API。它规范定义并记录了如何使用 API与In ternet协议族连接。实现实际的通讯工作。他们之间的工作关系如图3示。而且WINCEF台还提供了 Socket 的 API 函数。图3 socket通信具体应用流程图TCP( Tran sport Con trol Protocol )表示传输

20、控制协议。他的服务端和客户 端的流程图如图4示图4 TCP服务端和客户端的流程图F面将具体介绍分析WinCE上TCP服务端和PC机上TCP客户端程序6.4 PC机上TCP客户端程序在客户端应用程序设计中,首先要创建 CTCPClient_CE类,完成对TCP封装, 然后调用该类与TCP服务端建立连接,并进行数据传输,最后再断开与 TCP服务 端的连接。下面介绍程序的具体实现过程。6.4.1 CTCPClie nt_CE 类概述及应用CTCPClient_CE类主要用于封装 WinCE socket API函数,其使用流程如图。图5 CTCPCIient_CE类的使用流程其具体应用及代码如下:建

21、立私有函数private:C用于引用CTCPCIient_CE类。设计 IDD_PCCAMCTRL_FORM框。为 CMai nFrame 类添加三个私有静态函数 On DisCo nn ect、On Read On Error, 分别用于处理客户端连接断开事件、从客户端读取数据事件和客户端 socket错误事件。为“连接”和“断开”按钮添加单击事件代码。加入以下函数:void Sen dCMD(lo ng cmd);向终端发送命令信息发送命令数据void ProcessWebCmd(lo ng datasize);处理网络命令642 TCP客户端程序其他类简单概述首先要说的是CPCCAMCT

22、RLVjew具体定义如下:public:v显示接收到的图片另外CPictureCtrl 类和CPicture类,其中分别用到了重载函数 Loadimage和 Load,同时也都包含了函数GetlmageSize,这些函数共同完成了对显示图片大小 的控制。CPictureCtrl类还包含了函数On Pai nt,用以绘制图片。至此TCP客户端程序就编写完毕了。 TCP客户端程序具体流程图如图6。图6 TCP客户端程序工作流程图643 WinCE上TCP服务端程序TCP服务端将会创建CTCPServer_C傣口 CTCPCustom_C两个类:CTCPServer_CE 监听客户端的连接与客户端进

23、行通讯CTCPServer_C啖和 CTCPCustom_C类的关系如图 7。图 7 CTCPServer_CE类和 CTCPCustom_C类的关系图644 CTCPCustom_CE 类说明CTCPCustom_C类的实现步骤。通过EVC主菜单创建一个新的类 CTCPCustom_CE并且绑定winsock.lib 库。CTCPCustom_C类具体代码如下:public:CTCPServer_CE * m_pTCPServer_CE; / 弓 I用 TCP服务端监听 Socket bool Open(CTCPServer_CE *pTCPServer); 打开 socket,创建通讯线程

24、 CString m_RemoteHost; / 远程主机 IP 地址DWORD m_RemotePort; /远程主机端口号SOCKET m_socket; / 通讯 Socket 句柄bool Sen d(CTCPServer_CE*pTCPServer);/ 向客户端发送数据bool Close(); / 关闭socket,关闭线程,释放 Socket资源private:HANDLE m_tcpThreadHandle; / 通讯线程句柄SocketThreadFunc; 监听与客户端连接的socket通讯的事件HANDLE m_exitThreadEvent; /通讯线程退出事件句柄6

25、45 CTCPServer_CE 类说明CTCPServer_CE类主要职责是负责监听并接受客户端连接。在TCPServer_CE.h文件中添加如下代码用于定义几种函数类型。#in clude class CTCPCustom_CE;class CTCPServer_CE;/定义客户端连接建立事件typedef void (CALLBACK* ONCLIENTCONNECT)(CWnd*,CTCPCustom_CE*);/定义客户端SOCKE关闭事件typedef void (CALLBACK* ONCLIENTCLOSE)(CWnd*,CTCPCustom_CE*);/定义客户端当有数据接收

26、事件typedef void (CALLBACK* ONCLIENTREAD)(CWnd*,CTCPCustom_CE*,N_Packet *);/定义客户端Socket错误事件typedef void (CALLBACK* ONCLIENTERROR)(CWnd*,CTCPCustom_CE*,int nErrorCode);/定义服务器端Socket错误事件typedef void (CALLBACK* ONSERVERERROR)(CWnd*,CTCPServer_CE*,int n ErrorCode);为CTCPServer_CE类添加一些公有成员变量,私有成员变量及成员函数,这些变

27、量的定义如下:public:i nt m_LocalPort; /设置服务端口号CWnd * m_pOwnerWnd; / 父窗口句柄Open() /打开TCP月艮务ONCLIENTCONNECT OnClientConnect; /客户端连接建立事件,回调函数CNCLIENTCLOSE OnClientClose;/客户端连接断开事件,回调函数CNCLIENTREAD OnClientRead; /客户端接收数据事件,回调函数ONCLIENTERROR OnClientError; /客户端发生错误事件,回调函数ONSERVERERROR OnServerError; /服务器端发生错误事件

28、,回调函数Close() / 关闭TCP服务private:SOCKET m_ServerSocket; /TCP服务监听 socketHANDLE m_serverThreadHa ndle; / 通讯线程句柄HANDLE m_exitThreadEve nt; / 通讯线程退出事件句柄注意,这里有一个非常重要的属性 m_LocalPort,该属性表示TCP服务端的端 口号。用户可以选择1024之后的端口。在CTCPServer_C类的构造函数和析构函数里分别创建线程退出事件和关 闭线程退出事件。在TCPServer_CE.cpp文件中添加全局静态变量 m_ListClientSocket

29、,用 于储存客户端连接的 Socket列表,并引用TCPCustom_CE.文件和afxtempl.h 文 件。为CTCPServer_CE类添加一个私有静态线程函数 SocketThreadFunc。该线 程用于监听服务器套接字事件。SocketThreadFunc函数定义如下:private:static DWORD SocketThreadFunc(PVOID lparam);/ 线程处理函数646 TCP服务端程序1)为CMa in Frame类添加私有成员变量m_tcpServer,用它来实现TCP服务同 时设置网络信息。具体定义如下:public:void SendCMD(long

30、 cmd); / 向 PC发送命令信息bool Sen dCMDData(lo ng cmd, con st char * pbuf , i nt len);/向 PC 发送命令数据void ProcessWebCmd(void); / 处理网络命令N_Packet P_RCV; / 包缓冲区N_Packet P_SEND; / 包缓冲区private:CTCPServer_CE m_tcpServer; / 定义 CTCPServer_CE寸象接下来设计IDD_LGCAMCECTRL_FORM框,然后为CMainFrame类添加5 个私有静态函数。OnClientConnect/处理客户端连

31、接建立事件OnClientClose/处理客户端Socket关闭事件OnClientRead/处理服务端收到的来自客户端的数据事件OnClientError/ 处理客户端Socket错误事件OnServerError/处理服务端Socket错误事件。为“启用网络”、“关闭网络”添加单击事件代码。单击“启用网络”按钮后,TCP服务器就开始监听,等待客户端的连接;单击“关闭网络”按钮后,将关闭处于监听状态的TCP服务器。图8服务端工作流程图第七章系统测试7.1测试方案首先在CE端加载摄像头驱动,再运行服务端“启用网络”,然后运行客户端“连接”,建立与服务端的连接,最后在服务端选择“开始预览”,这样服务端与客户端就能同时显示图像了。7.2测试设备:PXA270-S实验箱、USB罗技快看高手5000摄像头、PC机和以太网交换机。7.3测试结果:客户端运行过程截图如图9所示,服务端运行过程截图如图10所示。图9客户端截图图10服务端截图第八章实现功能结合USB Camera罗技快看高手5000( Logitech QuickCam5000)的驱动开发, 简单介绍了 USB设备的驱动设计框架。同时,设计了基于 WinCE操作系统和 PXA270S平台的视频传输系统。此系统能够将 USB Camera采集的视频数据压 缩,然后使用实验平台与PC机之间的网络,

温馨提示

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

评论

0/150

提交评论