新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的移動視頻監控系統

        基于ARM的移動視頻監控系統

        作者: 時間:2016-09-12 來源:網絡 收藏

        0 引 言

        本文引用地址:http://www.104case.com/article/201609/305089.htm

        傳統的視頻監控系統一般采用PC服務器的C/S(Client/Server)結構,視頻服務器由計算主機和許多存放視頻的磁盤陳列組成,專門用于視頻的存儲和傳輸。流式傳輸采用的是邊接收邊播放的原則,這需要將多媒體的編、解碼和傳輸技術很好地結合在一起。目前多媒體的編解碼技術如MPEG- 4,H.264等,可以以較小的帶寬開銷來實現較高質量的視頻傳輸,然而目前的傳輸技術卻無法滿足移動視頻監控的需求,因為設備的移動速度和所在位置都會嚴重影響到傳輸。傳統流媒體系統體積大、成本高、可靠性低且移植性差,不能滿足這種特殊場合的應用要求。

        針對傳統監控技術的不足,本文提出了基于ARM的移動觀頻監控的設計與實現,設計了一種專門功能、結構簡單的流媒體服務器;采用Boa作為Web服務器,并通過瀏覽器來監控,實現跨平臺監視;采用雙緩沖技術,確保用戶能夠得到較好、較穩定的播放質量;利用USB無線網卡實現無線上網,免去布線的煩惱,方便地實現了移動視頻監控的功能。

        1 系統硬件設計

        硬件平臺是整個系統運作的基礎。本系統主要由流媒體服務單元、USB無線網卡、無線路由、攝像頭和監控端組成。流媒體服務單元是整個系統的核心,主要由嵌入式Linux、嵌入式處理器和外圍器件組成。

        嵌入式處理器采用Intel XScale結構的PXA27嵌入式微處理器,最高主頻可達624 MHz;加入wireless MMX技術,大大提升了多媒體處理能力;加入Intel SpeedStep動態管理電源技術,在保證CPU性能的情況下,最大限度地降底移動設備的功耗。在處理器豐富資源的基礎上,本系統擴展了64 MB Nand FLASH,64 MB SDRAM,16 MB Nor FLASH,4個USB主接口以及一個從接口。USB一主接口接攝像頭,用于采集視頻數據;USB一主接口接無線網卡,用于發送視頻數據。無線網卡采用了 TCP/IP、NETBEUI傳輸協議,傳輸速率為11 Mb/s,5.5 Mb/s,2 Mb/s,1 Mb/s。其最大覆蓋范圍為35~100 m(室內)、100~300 m(室外),能較好地滿足移動視頻監控的要求。本系統硬件組成圖如圖1所示。

        本系統硬件組成圖

        以PXA270為核心接收攝像頭采集到的視頻數據,經過編碼后通過無線網卡發送,再經由無線路由接入以太網,用戶通過Internet接收到視頻信息。

        2 USB無線網卡驅動

        在Linux系統中,提供了主機側和設備側視角的USB驅動框架。從主機側角度而言,需要編寫的USB驅動程序包括主機控制器驅動和設備驅動兩大類。主機控制器驅動程序屬于USB驅動程序的核心,這部分在Linux內核源碼中已經有很好的支持。本節將重點介紹USB無線網卡設備驅動的實現。

        2.1 USB驅動的注冊和注銷

        usb_ids描述了這個USB驅動所支持的USB設備列表。

        程序

        2.2 探測和斷開函數

        在編寫USB無線網卡設備驅動時,很重要的一步是probe()和disconnect()函數,即探測和斷開函數,它們分別在設備被插入和拔出的時候被調用,用于初始化和釋放硬件資源。

        程序

        2.3 USB請求塊(URB)

        USB無線網卡本身的驅動部分的讀寫等操作流程有其特殊性,即以USB請求塊(URB)來貫穿始終。URB是USB主機與無線網卡設備通信的電波。

        程序

        程序

        3 系統軟件設計

        基于ARM的移動視頻監控的軟件設計包括嵌入式Linux系統開發環境的搭建與移動視頻監控軟件設計兩大部分。

        3.1 基于ARM的嵌入式Linux開發平臺

        本方案采用了Linux嵌入式操作系統,以Linux2.6.24為基礎進行裁減定制自己的內核,在編譯內核時保留必須的文件系統、存儲器、串口、USB、以太網驅動,將攝像頭、USB無線網卡驅動以模塊的形式編譯,以減少編譯后內核的大小。 Bootloader采用blob,燒寫blob后利用tftp協議實現Linux內核和文件系統在Flash上的燒寫。在Redhat 9安裝Arm-linux-gcc。建立交叉編譯環境,實現流媒體服務器和Boa在PAX270上的搭建。鑒于現在燒寫技術已經很成熟,故不詳細討論。

        3.2 移動視頻監控軟件的設計

        移動視頻監控軟件完成的主要功能有:設計流媒體服務器采集并傳輸攝像頭拍攝的視頻信息;構建嵌入式Web服務器Boa;動態網頁的設計以及流媒體服務器、web服務器與瀏覽器之間的通信等任務。因此系統軟件框架如圖2所示。

        系統軟件框架

        3.2.1 流媒體服務器的設計

        流媒體服務器主程序用于開放某個視頻服務器端口,并不斷監聽端口,如有連接請求則建立連接,建立后流媒體服務進程將不斷向端口提供采集到的視頻數據流同時也接收客戶端發送過來的視頻調節命令參數。流媒體服務器主程序流程圖如圖3所示。

        流媒體服務器主程序流程圖

        (1)采集視頻數據

        系統是在嵌入式Linux系統平臺上采用Video4Linux編程來采集視頻的。一般攝像頭是直接讀視頻設備,采集到視頻數據并存在文件中。對文件進行操作,這樣程序運行效率會很低。本系統摒棄這種方法,采用mmap(內存映射)方式截取視頻數據。mmap()系統調用使得進程之間通過映射同一個普通文件實現共享內存。普通文件被映射到進程地址空間后,進程可以向訪問普通內存一樣對文件進行訪問,不必再調用read(),write()等操作。采用共享內存通信的一個顯而易見的好處是效率高,因為進程可以直接讀寫內存,而不需要任何數據的拷貝。


        上一頁 1 2 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 定州市| 武义县| 宁城县| 来凤县| 招远市| 体育| 保靖县| 吐鲁番市| 白朗县| 丰县| 阜阳市| 肇庆市| 贵州省| 安塞县| 林口县| 从化市| 渑池县| 涟源市| 桃源县| 措勤县| 乐至县| 察雅县| 大埔县| 甘南县| 乌拉特前旗| 镇赉县| 阿合奇县| 木里| 孝昌县| 浑源县| 连州市| 七台河市| 阿合奇县| 永善县| 密山市| 石门县| 南川市| 南皮县| 白山市| 南陵县| 渝中区|