本系統視頻監控有些是在InterPXA270為中心的硬件渠道上,經過構建嵌入式WindowsCE操作系統的軟件開發完結上層運用。該規劃以流接口方法開發攝像頭驅動,并運用攝像頭驅動供給的接口,完結嵌入式WindowsCE下實時圖畫的數據收集,對原始圖畫進行MPEG-4格局的編碼緊縮,一起在WindowsCE端運用SOCKET編程,完結監控數據的傳輸。
1 硬件渠道
現有的轎車防盜報警系統的構造如圖1虛線框內所示,這篇文章側重規劃完結的是此系統的視頻監控有些。視頻監控有些的硬件包含三個有些,收集監控數據的攝像頭、多媒體處理器和通訊模塊。硬件建立構造圖如圖2所示。視頻監控有些的硬件渠道是以InterXScale微系統構造的InterPXA270處理芯片為中心,選用SIM5218模塊作為3G通訊模塊,選用雙端口RAM技能完結視頻處理和圖1系統的整體構造框圖3G通訊模塊的雙CPU之間通訊。其間,InterPXA270芯片的主頻為520Hz,一起參加WirelssMMX技能,大大提高了多媒體處理才能。此外PXA270的InterSpeedStep動態電源辦理技能,在確保CPU功能的狀況降低低了設備的功耗;西門子公司的3G通訊模塊SIM5218支撐高達7.2Mb/s的數據傳輸率,而且供給UART、USB2.0、GPIO和I2C等豐厚的外圍接口,降低了規劃難度;本規劃中攝像頭挑選了網眼2000,它選用OV511芯片為中心,具有COMS35萬像素的清晰度,并選用USB方法通訊,能夠選用流接口的方法實時收集監控數據。
2 軟件功用
根據WindowsCE操作系統的軟件架構包含兩有些。
運用PlatformBuilder定制WindowsCE系統并開發USB攝像頭驅動和數據發送端的開發,這篇文章詳細介紹USB攝像頭驅動的規劃和發送端的程序規劃。系統的軟件構造圖如圖3所示。
WindowsCE流接口驅動程序是具有定制接口的驅動程序,表現為在用戶一級的動態鏈接庫DLL,是通常類型的設備驅動程序。流接口驅動程序中用來完結一組固定的函數稱為流接口函數,這些流接口函數使得運用程序能夠經過文件系統拜訪這些驅動程序。流接口驅動程序簡直支撐任何類型的能夠連接到根據WindowsCE.net的渠道外部設備,其間包含USB設備。
流接口驅動程序的首要任務是把外設的運用傳遞給運用程序,這是經過把設備表明為文件系統的一個特殊文件完結。運用程序經過文件系統的API函數調用流接口函數,然后流接口驅動程序調用本機驅動或者經過設備辦理器與系統內核或外圍打交道。
2.1 攝像頭驅動程序的流接口函數的完結
開發攝像頭驅動程序涉及到一組標準的流接口驅動程序的函數,如CAM_Init()、CAM_Deinit()、CAM_Open()、CAM_Read()等,這些函數是接口驅動程序的DLL接口,其間CAM_Init()、CAM_Open()、CAM_Read()和CAM_IOControl()最為重要。下面臨這些重要函數進行詳細介紹。
(1)CAM_Init()
CAM_Init()函數是經過設備辦理器供給的ActiveDeviceEx()函數調用。在設備初始化時經過ActiveDeviceEx()將設備句柄信息寫入Drivers\Active下面,當運用程序初始化時,注冊表的地址將以Context參數方式傳給CAM_Init(),運用RegOpenKeyEx()、RegQueryValueEx()等函數履行翻開和讀寫注冊表操作,等履行成功后回來USB設備的句柄信息等。驅動程序的有些源代碼:
(2)CAM_Open()
在對設備進行讀操作之前,首先要先經過履行CeratFile()來調用CAM_Open()翻開設備,CAM_Open()所需的第一個參數是運用程序初始化時由CAM_Init()回來的設備句柄等信息,然后將設備關閉的事情設為無信號狀況。
下面是有些源碼:
程序中涉及的EnterCriticalSection()和LeaveCriticalSection()兩個函數的作用是確保在臨界區內所有被拜訪的資本不被其他線程拜訪,直到當時線程履行完臨界區代碼。EnterCriticalSection()和LeaveCriticalSection()別離表明為進入臨界區和退出臨界區。
(3)CAM_IOControl()
程序規劃中經過CreatFile()函數調CAM_Open()翻開攝像頭設備,經過ReadFile()將回來值傳給CAM_IOControl()流接口函數,而CAM_IOControl()則調用OV51xReadOneFrame()對USB設備數據進行讀取。下面是有些源碼:
關于USB總線上的數據傳輸,一共有四種傳輸類型,別離是操控傳輸、中斷傳輸、批量傳輸和實時傳輸,這四種傳輸類型別離運用到不同的USB設備。其間實時傳輸適用于以固定速率或特定時間內傳輸,能夠忍受偶然過錯的流數據狀況,關于USB攝像頭這種實時性要求比較高的設備通常選用實時傳輸,所以在CAM_Read()中就需求用到實時傳輸函數IssueIsochTransfer()來讀取攝像頭收集的數據。假如IssueIsochTransfer()履行后回來一個標明句柄,則代表履行成功,假如無回來值,則表明履行失利。
在每次得到一包數據時,查找幀開端符號,假如查找到,則仿制剩余的所有數據到運用程序的緩沖中。在程序的Ov51xReadOneFrame()函數中,pDataBuff申請了9610B空間,dwFrameLen為10次傳輸每次的長度,這里都設置為961。圖4為Ov51ReadFrame()軟件流程圖。
2.2 通訊發送端的規劃完結
通訊發送端首要完結RTP/RTCP協議封裝寬和封裝、網絡發送與數據獲取。這篇文章所完結的是根據RTP/UDP/IP協議棧的MPEG-4實時流媒體傳輸,是移動視頻監控系統中網絡傳輸有些的子模塊。選用JRTPLIB庫函數來完結RTP的實時傳輸。傳輸有些的系統架構如圖5所示。
該發送端的首要功用是將音視頻流封裝到RTP包內經過3G網絡傳送給接納端,一起發送和接納RTCP包進行反饋操控,以期到達最好效果。根據WindowsCE渠道經過調用JRTPLIB函數庫來編程完結實時流媒體傳輸。
因為RTP協議并不作為獨立的網絡層來完結,它選用運用層組幀的理念,作為運用程序代碼的一有些,這篇文章針對一個詳細媒體的運用經過運用程序完結RTP封裝分組,然后將RTP分組交給UDP接口,選用JTHREAD作為線程庫,完結多線程的操作。運用RTP來做視頻傳輸分2個session來完結:一個擔任聲響傳送;另一個擔任視頻傳送。
發送端的有些主程序如下:
3 結語
這篇文章在現有的轎車防盜報警系統的基礎上,經過接口的拓展,完結了根據3G網絡的視頻監控功用,并詳細論述了攝像頭的流接口函數和通訊發送端的規劃。此外,經過該系統的通用接口的拓展,該系統還可與詳細職業或家庭運用相結合,完結手機關于小范圍環境的可視化監控。該系統的規劃完結不但關于轎車防盜商品的開展有側重要的含義,一起關于AV168根據3G網絡的可視化監控的開展供給了杰出的運用遠景。
來源:機房監控 機房環境監控系統 機房監控系統 http://www.99yxj.com.cn北京金恒智能系統工程技術有限責任公司 版權所有 Copyright 2007-2020 by Create-china.com.cn Inc. All rights reserved.
法律聲明:未經許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利!
電話:86+10-62104277/2248/4249 傳真:86+10-62104193-819 京ICP備10010038號-2網站XML
智慧機房
在線體驗