基于嵌入式系統(tǒng)的網(wǎng)絡(luò)視頻傳輸系統(tǒng)設(shè)計(jì)報(bào)告(北方工業(yè)大學(xué)二隊(duì))
《基于嵌入式系統(tǒng)的網(wǎng)絡(luò)視頻傳輸系統(tǒng)設(shè)計(jì)報(bào)告(北方工業(yè)大學(xué)二隊(duì))》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《基于嵌入式系統(tǒng)的網(wǎng)絡(luò)視頻傳輸系統(tǒng)設(shè)計(jì)報(bào)告(北方工業(yè)大學(xué)二隊(duì))(21頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 基于嵌入式系統(tǒng)的網(wǎng)絡(luò)視頻傳輸系統(tǒng) Network Video transmission System Based on Embedded 2008 年 7 月 18 日 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 摘要 本文設(shè)計(jì)了一個(gè)基于嵌入式 WinCE操作系統(tǒng)的軟件,它能夠 將 USB攝像頭采集到的視頻數(shù)據(jù),使用 PXA270S實(shí)驗(yàn)箱上的服 務(wù)端,經(jīng)由網(wǎng)絡(luò)傳遞給電腦上的客戶(hù)端,并且顯示出來(lái)。這里采 用的通信方式是 TCP通信。軟件系統(tǒng)包括兩大部分:視頻圖像采 集和視頻圖像傳輸。 視頻圖像采集部分描述了 USB攝像頭驅(qū)動(dòng)設(shè)計(jì)過(guò)程和實(shí)
2、現(xiàn)圖 像采集功能的程序;而視頻圖像傳輸部分,首先簡(jiǎn)單介紹了 socket通信原理,并且詳細(xì)論述了客戶(hù)端和服務(wù)端如何使用 TCP 進(jìn)行通信,完成視頻傳輸?shù)倪^(guò)程,然后還介紹了如何將攝像頭采 集到的圖像數(shù)據(jù)顯示出來(lái)??蛻?hù)端和服務(wù)端程序分別使用 Visual C+6.0和 eMbedded Visual C+進(jìn)行開(kāi)發(fā)。 程序編寫(xiě)完成后,同時(shí)運(yùn)行客戶(hù)端和服務(wù)端并加載攝像頭驅(qū) 動(dòng)程序,通過(guò)以太網(wǎng),就可以實(shí)現(xiàn)視頻傳輸?shù)墓δ芰恕?關(guān)鍵詞: PXA270S; WinCE; USB Camera驅(qū)動(dòng);視頻采集;視頻傳輸 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 Abstract Abstract: Th
3、is article describes a kind of software based on embedded wince operating system. This software can collect video 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 ser
4、ver and the client. TCP communication is supposed to be the mode of network communication. This software system 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 pa
5、rt of video data transmission describes sockets communication principle, at first. It also describes the client 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
6、 developed by using eMbedded Visual C+, the client program by using Visual C+ 6.0. After all above have be done, run the server and the client, load 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 the USB Camera driver, the video data will be successfully transmitted. Keywords: PXA270S; WinCE; USB Camera drive; video dat
7、a acquisition; video data transmission 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 目 錄 第 1 章 緒論 .6 第 2 章 系統(tǒng)總體設(shè)計(jì) .6 2.1系統(tǒng)組成 6 2.2設(shè)備介紹6 2.3驅(qū)動(dòng)程序簡(jiǎn)介6 第 3 章 功能與指標(biāo) .7 第 4 章 實(shí)現(xiàn)原理 .7 第 5 章 硬件框圖 7 第 6 章 軟件流程 .8 6.1 WINCE 下的 USB CAMERA 驅(qū)動(dòng)8 6.1.1WINDOWS CE編寫(xiě)的 USB CAMERA驅(qū)動(dòng)程序8 6.1.2 USB CAMERA驅(qū)動(dòng)的實(shí)現(xiàn)8 6.2服務(wù)端視頻采集9 6.3視頻圖像傳輸10 6.4 PC機(jī)
8、上 TCP客戶(hù)端程 序11 6.4.1 CTCPClient_CE類(lèi)概述及應(yīng)用11 6.4.2 TCP客戶(hù)端程序其他類(lèi)簡(jiǎn)單概述13 6.4.3 WinCE上 TCP服務(wù)端程序14 6.4.4 CTCPCustom_CE類(lèi)說(shuō)明14 6.4.5 CTCPServer_CE類(lèi)說(shuō)明15 6.4.6 TCP服務(wù)端程序16 第 7 章 測(cè)試方案及結(jié)果 .18 7.1 系統(tǒng)測(cè)試方案.18 7.2 測(cè)試設(shè)備.18 7.3 測(cè)試結(jié)果 .18 第 8 章 實(shí)現(xiàn)功能 .19 第 9 章 特色 .20 參考文獻(xiàn) . 附錄 .錯(cuò)誤!未定義書(shū)簽。 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 6 第 1 章 緒論
9、隨著信息科學(xué)技術(shù)的高速發(fā)展,網(wǎng)絡(luò)技術(shù)和數(shù)字視頻技術(shù)都已經(jīng)日趨成熟; 同樣的,網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)已被廣泛應(yīng)用在很多場(chǎng)所。這里將研究視頻采集與傳 輸功能在網(wǎng)絡(luò)視頻電話(huà)中的具體應(yīng)用。所使用的實(shí)驗(yàn)平臺(tái)是 PXA270-S實(shí)驗(yàn)箱。 選用的 USB攝像頭也是目前常用的,其輸出的視頻為經(jīng)過(guò) JPEG壓縮后的數(shù)字視 頻,因此無(wú)需再進(jìn)行視頻壓縮。加上以太網(wǎng)不會(huì)受到網(wǎng)絡(luò)帶寬限制,所以采集到 的數(shù)字視頻可以直接通過(guò)以太網(wǎng)傳輸?shù)?PC機(jī)上,減少了硬件設(shè)計(jì)的復(fù)雜度。 第二章 系統(tǒng)總體設(shè)計(jì) 2.1系統(tǒng)組成 系統(tǒng)主要包括兩個(gè)部分:一個(gè)是 USB視頻圖像的數(shù)據(jù)采集;另外一個(gè)就是視 頻圖像傳輸系統(tǒng)。系統(tǒng)硬件架構(gòu)如圖 1。 攝像頭
10、 PXA270S 網(wǎng)線(xiàn) PC機(jī) 圖 1 2.2設(shè)備介紹 PXA270S開(kāi)發(fā)系統(tǒng),基于 Intel公司最新的 XScale架構(gòu) PXA270-S,ARM 系 列處理器,最高主頻可達(dá) 624MHz,加入了 Wireless MMX技術(shù),提升了多媒體處 理能力;同時(shí) PXA270還加入了 Intel Speed Step動(dòng)態(tài)電源管理技術(shù),在保證 CPU性能的情況下,最大限度地降低移動(dòng)設(shè)備功耗。 USB攝像頭采用羅技快看高手 5000(Logitech QuickCam 5000),它采用高品 質(zhì) CMOS圖像傳感器,130 萬(wàn)像素,最大分辨率 640*480,高速 USB2.0傳輸接口。 另外,還有
11、以太網(wǎng)轉(zhuǎn)換器和客戶(hù)端的 PC機(jī)。 2.3 軟件介紹 軟件系統(tǒng)由系統(tǒng)引導(dǎo)加載程序 Bboot.nb0載入嵌入式 WinCE內(nèi)核、USB Camera驅(qū)動(dòng)和 CE端應(yīng)用程序等組成。在 PXA270S BSP基礎(chǔ)上,根據(jù)具體需要, 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 7 使用 Platform Builder定制將在 PXA270S實(shí)驗(yàn)平臺(tái)上使用的 WinCE內(nèi)核。另 外使用 eMbedded Visual C+開(kāi)發(fā)在 WinCE平臺(tái)下的 USB Camera驅(qū)動(dòng)和 CE服務(wù) 端應(yīng)用程序,而 PC機(jī)上客戶(hù)端的程序則在 Visual C+6.0上進(jìn)行開(kāi)發(fā)。 第三章 功能與指標(biāo) 我們通過(guò)
12、 USB攝像頭采集到的視頻經(jīng)過(guò) JPEG壓縮后的數(shù)字視頻可以直接在以 太網(wǎng)上傳輸。在 PXA270S處理器的控制下,可以把 USB攝像頭采集到的視頻通 過(guò)以太網(wǎng)發(fā)送到遠(yuǎn)端的 PC上,以達(dá)到視頻對(duì)話(huà)的效果,其圖像清晰,速度快捷。 其中 PXA270S 平臺(tái)上的視頻采集速率為 15 幀,而 PC 機(jī)所接收到的視頻采集 速率也能在 10 幀以上且較為穩(wěn)定。 第四章 實(shí)現(xiàn)原理 USB 系統(tǒng)由 USB 主機(jī),一個(gè)或多個(gè) USB 設(shè)備和物理總線(xiàn)組成。主機(jī)上又分 兩層:較高的包含 USB 設(shè)備驅(qū)動(dòng)程序的軟件層和主機(jī)控制器硬件層。主機(jī)的用于 控制對(duì) USB 設(shè)備的雙向數(shù)據(jù)傳輸。物理總線(xiàn)是一組 USB電纜用來(lái)將
13、控制器和外圍 設(shè)備連接起來(lái)。WinCE 的 USB 系統(tǒng)軟件由兩層組成: USB 設(shè)備驅(qū)動(dòng)程序?qū)雍偷?層的由 WinCE實(shí)現(xiàn)的 USB 函數(shù)層。較低的 USB 函數(shù)層本身又由兩部分組成 較高的通用串行總線(xiàn)驅(qū)動(dòng)程序(USBD)模塊和較低的主控制器驅(qū)動(dòng)程序(HCD) 模塊。HCD 提供了抽象的主機(jī)控制器,且對(duì)主機(jī)控制器所見(jiàn)到的 USB 系統(tǒng)的數(shù)據(jù) 傳輸進(jìn)行了抽象。USBD 提供一個(gè)抽象的設(shè)備,且對(duì) USBD客戶(hù)和 USB 設(shè)備功能部 件之間的數(shù)據(jù)傳輸進(jìn)行抽象。USB 設(shè)備驅(qū)動(dòng)程序使用 USBD 接口函數(shù)與外圍設(shè)備 進(jìn)行通信 第五章硬件框圖 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 8 第
14、六章 軟件流程 6.1 WinCE 下的 USB camera 驅(qū)動(dòng) 6.1.1 Windows CE 編寫(xiě)的 USB camera 驅(qū)動(dòng)程序 USB 設(shè)備驅(qū)動(dòng)程序必須輸出的函數(shù)有: USBDeviecAttach() /初始化 USB 設(shè)備 USBInstallDriver() /創(chuàng)建一個(gè)驅(qū)動(dòng)程序加載所需的注冊(cè)表信息 USBUninstallDriver() /釋放驅(qū)動(dòng)程序所占用的資源,刪除注冊(cè)表等。 6.1.2 WinCE 下的 USB camera 驅(qū)動(dòng)實(shí)現(xiàn) 首先是具體的注冊(cè)表信息,在platform.reg 中添加以下注冊(cè)項(xiàng)即可。 HKEY_LOCAL_MACHINEDriversUS
15、BLoadClients1133_2245Default DefaultVideo_Class “DLL”=“webcam.DLL” HKEY_LOCAL_MACHINEDriversUSBClientDriversVideo_Class “Prefix”=“CAM” 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 9 “Dll”=“webcam.DLL” 另外還要在 USBCode.cpp 中針對(duì) USB 攝像頭的 PID、VID 對(duì)以下定義做修改: #define VID_LOGITECH 1133 #define PID_QUICKCAMPRO5000 2245 #define PI
16、D_MIKESQUICKCAM 2226 在 WebCam.h 文件中針對(duì)以下幾項(xiàng)定義要做修改: #define DRIVER_NAME TEXT(Webcam.dll) #define DEVICE_PREFIX TEXT(CAM) #define CLASS_NAME_SZ TEXT(Video_Class) #defineCLIENT_REGKEY_SZTEXT(DriversUSBClientDriversVideo_Cla ss) 外設(shè)插入時(shí),首先調(diào)用 USBDeviceAttach()函數(shù)。 接下來(lái)調(diào)用 ActivateDevice()它用來(lái)分配,填寫(xiě)設(shè)備內(nèi)容。 USBDevice
17、Attach()最后要完成的工作是在此函數(shù)內(nèi)調(diào)用 USBD 模塊的 RegisterNotificationRoutine 函數(shù)登記注冊(cè) DeviceNotify 函數(shù),用于相應(yīng)的 善后工作。自此,系統(tǒng)完成外設(shè)加載。 6.2 服務(wù)端視頻采集 在 USB Camera驅(qū)動(dòng)成功加載之后,要對(duì)其輸出的視頻圖像壓縮數(shù)據(jù)進(jìn)行分析、 還原,以完成視頻圖像的采集過(guò)程。這些功能由我們所設(shè)計(jì)的 TCP服務(wù)端來(lái)實(shí)現(xiàn), 具體的函數(shù)定義以及程序代碼分別在文件 CameraCode.h和文件 CameraCode.cpp 中。 在文件 CameraCode.h添加如下函數(shù): InitCamera () /打開(kāi)攝像頭;
18、ShutdownCamera () /關(guān)閉攝像頭; GetVideoFormats /獲取視頻圖像的格式 GetStillFormats /獲取靜態(tài)圖片的格式 WriteJPEG()/將圖像保存為一個(gè) JPEG格式的文件。 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 10 6.3 視頻圖像傳輸系統(tǒng) 在此我們要應(yīng)用到 Windows Sockets規(guī)范和 TCP編程。 Windows Sockets規(guī)范的本意在于提供給應(yīng)用程序開(kāi)發(fā)者一套簡(jiǎn)單的 API。它 規(guī)范定義并記錄了如何使用 API與 Internet協(xié)議族連接。 實(shí)現(xiàn)實(shí)際的通訊工作。他們之間的工作關(guān)系如圖 3示。而且 WINCE平
19、臺(tái)還提 供 了 Socket的 API函數(shù)。 圖 3 socket通信具體應(yīng)用流程圖 TCP(Transport Control Protocol)表示傳輸控制協(xié)議。他的服務(wù)端和客戶(hù) 端的流程圖如圖 4示。 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 11 圖 4 TCP服務(wù)端和客戶(hù)端的流程圖 下面將具體介紹分析 WinCE上 TCP服務(wù)端和 PC機(jī)上 TCP客戶(hù)端程序。 6.4 PC 機(jī)上 TCP 客戶(hù)端程序 在客戶(hù)端應(yīng)用程序設(shè)計(jì)中,首先要?jiǎng)?chuàng)建 CTCPClient_CE類(lèi),完成對(duì) TCP封裝, 然后調(diào)用該類(lèi)與 TCP服務(wù)端建立連接,并進(jìn)行數(shù)據(jù)傳輸,最后再斷開(kāi)與 TCP服務(wù) 端的連接
20、。下面介紹程序的具體實(shí)現(xiàn)過(guò)程。 6.4.1 CTCPClient_CE 類(lèi)概述及應(yīng)用 CTCPClient_CE類(lèi)主要用于封裝 WinCE socket API函數(shù),其使用流程如圖。 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 12 圖 5 CTCPClient_CE類(lèi)的使用流程 其具體應(yīng)用及代碼如下: 1) 建立私有函數(shù) private: CTCPClient_CE m_tcpClient; 用于引用 CTCPClient_CE類(lèi)。 2) 設(shè)計(jì) IDD_PCCAMCTRL_FORM對(duì)話(huà)框。 為 CMainFrame類(lèi)添加三個(gè)私有靜態(tài)函數(shù) OnDisConnect、OnRead、OnE
21、rror, 分別用于處理客戶(hù)端連接斷開(kāi)事件、從客戶(hù)端讀取數(shù)據(jù)事件和客戶(hù)端 socket錯(cuò) 誤事件。 3) 為“連接”和“斷開(kāi)”按鈕添加單擊事件代碼。 4) 加入以下函數(shù): void SendCMD(long cmd); 向終端發(fā)送命令信息 void SendCMDData(long cmd,CString data); 發(fā)送命令數(shù)據(jù) void ProcessWebCmd(long datasize); 處理網(wǎng)絡(luò)命令 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 13 6.4.2 TCP 客戶(hù)端程序其他類(lèi)簡(jiǎn)單概述 首先要說(shuō)的是 CPCCAMCTRLView, 具體定義如下: public:
22、 void DisplayFrame (PBYTE pData,DWORD dwSize); 顯示接收到的圖片 另外 CPictureCtrl類(lèi)和 CPicture類(lèi),其中分別用到了重載函數(shù) LoadImage 和 Load,同時(shí)也都包含了函數(shù) GetImageSize,這些函數(shù)共同完成了對(duì)顯示圖片 大小的控制。CPictureCtrl 類(lèi)還包含了函數(shù) OnPaint,用以繪制圖片。 至此 TCP客戶(hù)端程序就編寫(xiě)完畢了。TCP 客戶(hù)端程序具體流程圖如圖 6。 圖 6 TCP客戶(hù)端程序工作流程圖 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 14 6.4.3 WinCE上 TCP服務(wù)端程序
23、 TCP服務(wù)端將會(huì)創(chuàng)建 CTCPServer_CE和 CTCPCustom_CE兩個(gè)類(lèi): CTCPServer_CE 監(jiān)聽(tīng)客戶(hù)端的連接 CTCPCustom_CE 與客戶(hù)端進(jìn)行通訊 CTCPServer_CE類(lèi)和 CTCPCustom_CE類(lèi)的關(guān)系如圖 7。 圖 7 CTCPServer_CE類(lèi)和 CTCPCustom_CE類(lèi)的關(guān)系圖 6.4.4 CTCPCustom_CE 類(lèi)說(shuō)明 CTCPCustom_CE類(lèi)的實(shí)現(xiàn)步驟。 1) 通過(guò) EVC主菜單創(chuàng)建一個(gè)新的類(lèi) CTCPCustom_CE,并且綁定 winsock.lib 庫(kù)。 2) CTCPCustom_CE類(lèi)具體代碼如下: public:
24、 CTCPServer_CE * m_pTCPServer_CE; /引用 TCP服務(wù)端監(jiān)聽(tīng) Socket bool Open(CTCPServer_CE *pTCPServer);/打開(kāi) socket,創(chuàng)建通訊線(xiàn)程 CString m_RemoteHost; /遠(yuǎn)程主機(jī) IP地址 DWORD m_RemotePort; /遠(yuǎn)程主機(jī)端口號(hào) SOCKET m_socket; /通訊 Socket句柄 bool Send(CTCPServer_CE*pTCPServer);/ 向客戶(hù)端發(fā)送數(shù)據(jù) bool Close(); /關(guān)閉 socket,關(guān)閉線(xiàn)程,釋放 Socket資源 private: H
25、ANDLE m_tcpThreadHandle; /通訊線(xiàn)程句柄 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 15 SocketThreadFunc;/ 監(jiān)聽(tīng)與客戶(hù)端連接的 socket通訊的事件 HANDLE m_exitThreadEvent; /通訊線(xiàn)程退出事件句柄 6.4.5 CTCPServer_CE 類(lèi)說(shuō)明 CTCPServer_CE類(lèi)主要職責(zé)是負(fù)責(zé)監(jiān)聽(tīng)并接受客戶(hù)端連接。 1) 在 TCPServer_CE.h文件中添加如下代碼用于定義幾種函數(shù)類(lèi)型。 #include class CTCPCustom_CE; class CTCPServer_CE;/定義客戶(hù)端連接建立事件
26、 typedef void (CALLBACK* ONCLIENTCONNECT)(CWnd*,CTCPCustom_CE*); /定義客戶(hù)端 SOCKET關(guān)閉事件 typedef void (CALLBACK* ONCLIENTCLOSE)(CWnd*,CTCPCustom_CE*); /定義客戶(hù)端當(dāng)有數(shù)據(jù)接收事件 typedef void (CALLBACK* ONCLIENTREAD)(CWnd*,CTCPCustom_CE*,N_Packet *);/定義客戶(hù)端 Socket錯(cuò)誤事件 typedef void (CALLBACK* ONCLIENTERROR)(CWnd*,CTCPCu
27、stom_CE*,int nErrorCode);/定義服務(wù)器端 Socket錯(cuò)誤事件 typedef void (CALLBACK* ONSERVERERROR)(CWnd*,CTCPServer_CE*,int nErrorCode); 2) 為 CTCPServer_CE類(lèi)添加一些公有成員變量,私有成員變量及成員函數(shù), 這些變量的定義如下: public: int m_LocalPort; /設(shè)置服務(wù)端口號(hào) CWnd * m_pOwnerWnd; /父窗口句柄 Open() /打開(kāi) TCP服務(wù) ONCLIENTCONNECT OnClientConnect; /客戶(hù)端連接建立事件,回調(diào)函
28、數(shù) ONCLIENTCLOSE OnClientClose; /客戶(hù)端連接斷開(kāi)事件,回調(diào)函數(shù) ONCLIENTREAD OnClientRead; /客戶(hù)端接收數(shù)據(jù)事件,回調(diào)函數(shù) ONCLIENTERROR OnClientError; /客戶(hù)端發(fā)生錯(cuò)誤事件,回調(diào)函數(shù) 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 16 ONSERVERERROR OnServerError; /服務(wù)器端發(fā)生錯(cuò)誤事件 ,回調(diào)函數(shù) Close() /關(guān)閉 TCP服務(wù) private: SOCKET m_ServerSocket; /TCP服務(wù)監(jiān)聽(tīng) socket HANDLE m_serverThreadHa
29、ndle; /通訊線(xiàn)程句柄 HANDLE m_exitThreadEvent; /通訊線(xiàn)程退出事件句柄 注意,這里有一個(gè)非常重要的屬性 m_LocalPort,該屬性表示 TCP服務(wù)端的 端口號(hào)。用戶(hù)可以選擇 1024之后的端口。 3) 在 CTCPServer_CE類(lèi)的構(gòu)造函數(shù)和析構(gòu)函數(shù)里分別創(chuàng)建線(xiàn)程退出事件和 關(guān)閉線(xiàn)程退出事件。 4) 在 TCPServer_CE.cpp文件中添加全局靜態(tài)變量 m_ListClientSocket,用 于儲(chǔ)存客戶(hù)端連接的 Socket列表,并引用 TCPCustom_CE.h文件和 afxtempl.h 文件。 5) 為 CTCPServer_CE類(lèi)添加一
30、個(gè)私有靜態(tài)線(xiàn)程函數(shù) SocketThreadFunc。該 線(xiàn)程用于監(jiān)聽(tīng)服務(wù)器套接字事件。 SocketThreadFunc函數(shù)定義如下: private: static DWORD SocketThreadFunc(PVOID lparam); /線(xiàn)程處理函數(shù) 6.4.6 TCP 服務(wù)端程序 1) 為 CMainFrame類(lèi)添加私有成員變量 m_tcpServer,用它來(lái)實(shí)現(xiàn) TCP服務(wù) 同時(shí)設(shè)置網(wǎng)絡(luò)信息。具體定義如下: public: void SendCMD(long cmd); / 向 PC發(fā)送命令信息 bool SendCMDData(long cmd, const char * pb
31、uf , int len);/ 向 PC發(fā) 送命令數(shù)據(jù) void ProcessWebCmd(void); / 處理網(wǎng)絡(luò)命令 N_Packet P_RCV; / 包緩沖區(qū) N_Packet P_SEND; / 包緩沖區(qū) 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 17 private: CTCPServer_CE m_tcpServer; /定義 CTCPServer_CE對(duì)象 2) 接下來(lái)設(shè)計(jì) IDD_LGCAMCECTRL_FORM對(duì)話(huà)框,然后為 CMainFrame類(lèi)添加 5 個(gè)私有靜態(tài)函數(shù)。 OnClientConnect/處理客戶(hù)端連接建立事件 OnClientClose/處
32、理客戶(hù)端 Socket關(guān)閉事件 OnClientRead/處理服務(wù)端收到的來(lái)自客戶(hù)端的數(shù)據(jù)事件 OnClientError/處理客戶(hù)端 Socket錯(cuò)誤事件 OnServerError/處理服務(wù)端 Socket錯(cuò)誤事件。 3) 為“啟用網(wǎng)絡(luò)” 、 “關(guān)閉網(wǎng)絡(luò)”添加單擊事件代碼。單擊“啟用網(wǎng)絡(luò)”按 鈕后,TCP 服務(wù)器就開(kāi)始監(jiān)聽(tīng),等待客戶(hù)端的連接;單擊“關(guān)閉網(wǎng)絡(luò)” 按鈕后, 將關(guān)閉處于監(jiān)聽(tīng)狀態(tài)的 TCP服務(wù)器。 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 18 圖 8 服務(wù)端工作流程圖 第七章 系統(tǒng)測(cè)試 7.1測(cè)試方案 首先在 CE端加載攝像頭驅(qū)動(dòng),再運(yùn)行服務(wù)端“啟用網(wǎng)絡(luò)” ,然后運(yùn)行客
33、戶(hù) 端“連接” ,建立與服務(wù)端的連接,最后在服務(wù)端選擇“開(kāi)始預(yù)覽” ,這樣服 務(wù)端與客戶(hù)端就能同時(shí)顯示圖像了。 7.2測(cè)試設(shè)備: PXA270-S實(shí)驗(yàn)箱、USB 羅技快看高手 5000攝像頭、PC 機(jī)和以太網(wǎng)交換機(jī)。 7.3 測(cè)試結(jié)果: 客戶(hù)端運(yùn)行過(guò)程截圖如圖 9所示,服務(wù)端運(yùn)行過(guò)程截圖如圖 10所示。 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 19 圖 9 客戶(hù)端截圖 圖 10 服務(wù)端截圖 第八章 實(shí)現(xiàn)功能 結(jié)合 USB Camera 羅技快看高手 5000(Logitech QuickCam 5000)的驅(qū)動(dòng)開(kāi) 發(fā),簡(jiǎn)單介紹了 USB 設(shè)備的驅(qū)動(dòng)設(shè)計(jì)框架。同時(shí),設(shè)計(jì)了基于 Win
34、CE 操作系統(tǒng) 和 PXA270S 平臺(tái)的視頻傳輸系統(tǒng)。此系統(tǒng)能夠?qū)?USB Camera 采集的視頻數(shù) 據(jù)壓縮,然后使用實(shí)驗(yàn)平臺(tái)與 PC 機(jī)之間的網(wǎng)絡(luò),通過(guò) TCP 進(jìn)行視頻數(shù)據(jù)傳輸。 其中,PXA270 S 平臺(tái)上的視頻采集速率為 15 幀,而 PC 機(jī)所接收到的視頻采 集速率也能在 10 幀以上且較為穩(wěn)定。 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 20 第九章 特色 整套系統(tǒng)的特色在于能夠通過(guò)網(wǎng)絡(luò),方便快捷的傳遞清晰,穩(wěn)定的視頻圖像。 USB camera 攝像頭,PXA270-S 實(shí)驗(yàn)箱便于攜帶,彌補(bǔ)了大型圖像采集設(shè)備笨重, 不便的缺陷。其次可以在第一時(shí)間通過(guò)網(wǎng)絡(luò)傳遞視頻信
35、息,并且可以重復(fù)使用, 體現(xiàn)了它的快捷,同時(shí)也達(dá)到了節(jié)省資源空間的效果。 參考文獻(xiàn) 1. 汪兵,李存斌,陳鵬.EVC高級(jí)編程及其應(yīng)用開(kāi)發(fā)(Embedded Visual C+嵌入式編程). 北京:中國(guó)水利水電出版社,2005,353-385. 2. 侯娟,王陸林,劉貴如. 基于ARM和WINCE 的USB 視頻采集與傳輸系統(tǒng)的設(shè)計(jì). 科技情 報(bào)開(kāi)發(fā)與經(jīng)濟(jì).2008年,18卷(第3期):171-172. 3. 張偉,賀賽先.基于WinCE.Net的USB Camera驅(qū)動(dòng)開(kāi)發(fā).計(jì)算機(jī)工程.2006年7月,32卷 (第13期):274-276. 4. 關(guān)學(xué)忠,李洪宇,李國(guó)盛.基于WinCE的ARM
36、視頻監(jiān)控系統(tǒng).安防科技.2007年,1期:63-65. 5. 吳松華,吳偉國(guó).基于WinCE.net的嵌入式監(jiān)控軟件設(shè)計(jì)與實(shí)現(xiàn).軟件縱橫,2006年,3期: 45-48. 6. 張登銀, 盧棟梁. 面向?qū)ο蟮那度胧絋CPIP協(xié)議棧設(shè)計(jì). 江蘇大學(xué)學(xué)報(bào).2007年9月.第 28卷(第5期):417-420. 7. Alexander R TImproving the quality of objectoriented program. Software,IEEE,2001,18(5):9091. 8. Hsiung P A,Lee T Y,F(xiàn)u J MFormal verification of
37、 real-time embedded software in an object-oriented application framework Computers and Digital Techniques,IEEE Proceedings,2004,151(6):417434. 9. 侯俊杰.深入淺出MFC.武漢:華中科技大學(xué)出版社,2004. 10. Sandbank CP. Digital TV in the convergent environment. IEEE Computer Graphics and Applications,2001,21(1):3236. 2008 第四屆“博創(chuàng)杯”全國(guó)大學(xué)生嵌入式設(shè)計(jì)大賽 21 附錄 附錄 A 附錄 B 附錄 C 附錄 D
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購(gòu)管理4
- 手術(shù)室的安全管理教材
- 圖表文轉(zhuǎn)換之徽標(biāo)..課件
- 3.2.1古典概型
- 廣泛的民主權(quán)利 (3)
- 3.3公式法(1)
- 哲學(xué)家和船夫的故事
- 古詩(shī)十九首-行行重行行
- 第8章 財(cái)務(wù)報(bào)表
- 戰(zhàn)略性績(jī)效管理篇_方振邦
- 銅梁總規(guī)分析課件
- 1.2有理數(shù) (3)
- 第二章市場(chǎng)經(jīng)濟(jì)體制-第一章政治經(jīng)濟(jì)學(xué)研究對(duì)象與經(jīng)濟(jì)制度
- 彌漫大B細(xì)胞淋巴瘤一線(xiàn)治療新標(biāo)準(zhǔn)課件
- 對(duì)公信貸政策知識(shí)培訓(xùn)