新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于IPV6的網絡攝像機的設計與實現

        基于IPV6的網絡攝像機的設計與實現

        作者: 時間:2008-05-19 來源:網絡 收藏

        摘要:本文主要從軟件方面介紹了一個IntelPXA255硬件平臺和Linux軟件平臺的嵌入式方案,詳細介紹了如何一臺具有實時視頻采集壓縮及傳輸功能的可以直接接入。解決了如何快速視頻的問題。
        關鍵詞:,Linux,嵌入式系統,網絡

        1 IPv6攝像機的需求

        隨著IPV6網絡技術、多媒體技術的迅速發展和嵌入式設備的廣泛應用,嵌入式設備接入IPV6網絡的要求日益增強,使得數字網絡視頻得到了飛速發展。尤其在監控、遠程教學領域,提出了將傳統的模擬視頻信號轉換為數字視頻信號,并且利用IPV6網絡一個不受距離限制的廉價的通用網絡視頻設備要求。

        1.1 嵌入式系統的廣泛應用。

        傳統攝像機的視頻圖像如果要在網絡中傳送,首先需要采集、壓縮,然后再用視頻服務器傳送,過程比較煩瑣、復雜。嵌入式系統是以嵌入式計算機為技術核心,面向用戶、面向產品、面向應用,軟硬件可裁減的,適用于對功能、可靠性、成本、體積、功耗等綜合性能有嚴格要求的專用計算機系統。幾乎沒有哪一個系統在的時候不考慮如何與其他系統進行互連。例如網絡的遠程教育、遠程監控、遠程數據采集、自動報警、上傳下載數據文件、自動發送Email等功能。網絡專家預測,將來在Internet上傳輸的信息中,有70%來自小型嵌入式系統,嵌入式Internet將會產生比PC機時代多成百上千倍的瘦服務器和超級嵌入式瘦服務器。網絡攝像機就是一種能直接再網絡上傳送視頻信息的攝像機,具有一個簡單的視頻服務器。與傳統攝像機相比,它具有設備小巧,能直接上網的優點。

        1.2 IPv6網絡的發展趨勢。

        TCP/IP起源于 60年代末美國政府資助的一個分組交換網絡研究項目,到現今已發展成為計算機之間最基本的組網協議。現在Internet上出現的重大變化就是從目前的IPv4協議轉變為IPv6協議。同現在廣泛使用的IPV4相比,IPv6在功能和性能方面都有所增強,可分為路由增強和主機增強。路由增強包括包的優先級、流標簽、隧道機制等。主機增強包括地址自動配置、認證、加密、多播報文的傳送和實時應用的支持。

        盡管IPv4支持大約40億個地址,同時人們還想出了一些辦法,在“私有”網絡中開辟額外的地址空間。但仍然出現了地址危機,而IPv6支持 3.41038個地址,也就是說足可以為地球上每平方毫米提供6.701017個地址。隨著IPv6的逐步普及,很多設備需要能夠同時支持IPv4 和IPv6的通信。為了解決目前IPv4地址嚴重匱乏,滿足未來網絡對地址的巨大需求,IPv6采用128位的地址取代了IPv4的32位地址,它所能容納的地址大到足以讓每個人都可單獨擁有目前Internet規模的網絡。同時IPv6地址的多層次結構在很大程度上提高了路由器的選徑效率。IPv6在地址方案上還增加了地址的自動配置機制,減輕了網絡地址管理的開銷。在IPv6的地址類型中,新增了群集地址Anycast地址,可用于IP報文的組播。

        2嵌入式IPV6的方法

        根據不同的情況,嵌入式IPV6有不同的實現方法,每種方法都有自己各自的優缺點。下面就簡要介紹各種方法。

        2.1自己編程實現

        按照RFC文檔的規范,根據自己的需要,開發相應的協議,包括核心協議,ICMPV6,NDP等。其缺點是非常明顯的,開發的技術難度大,周期長,容易出錯,花費的人力、物力、財力巨大。這種方式的優點主要有:(1) 可以使代碼較少,對嵌入系統的內存要求低,代碼可以做到不超過100k byte,滿足嵌入式系統要求。(2)提供方便的用戶接口,使用戶方便的使用協議棧。(3)可裁減性,按照自己的需要,實現自己需要的部分協議。(4)可擴展性,可以方便的擴展協議功能,加入其他協議。

        2.2購買現成的產品

        現成的產品具有功能強大,較好的售后服務的特點。如瑞典的Interpeak公司,它為嵌入式系統引入嵌入式IPv6協議棧,為路由和交換設備專門裁減IPv6/Ipv4雙路由棧。首家提出Interpeak雙棧,它既可將IPv6 Ready Logo作為主機棧進行接收,也可作為路由棧進行接收。這個網絡棧具有IPv6的全部功能以及其他特征,包括IPSec、NAT-PT、傳輸機制、QOS、Diffserv、VLAN、多播轉發和代理、虛擬路由以及其他許多特性。還提供包括IKEv2、MPLS forwarding、完整的移動IP組件、Firewall、RADIUS、SSH、Web Sever、SNTP和SNMP在內的其他產品,進一步加強了IPv6。這些產品計遵循模塊化、高效、可擴展性的思想。但缺點是價格較高,做產品時將受到許可證、版權的限制等。

        2.3利用開源Linux

        利用開放源代碼的Linux實現,它作為嵌入式操作系統的優勢主要有以下幾點:

        可應用于多種硬件平臺。

        Linux已經被移植到多種硬件平臺,這對于經費,時間受限制的研究與開發項目是很有吸引力的。原型可以在標準平臺上開發后移植到具體的硬件上,加快了軟件與硬件的開發過程。Linux是一個和Unix相似、以內核為基礎的、具有完全的內存訪問控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等現有的大部分芯片)等特性的一種通用操作系統,已經被成功的移植到了數十種硬件平臺上,它也可以在沒有MMU(內存管理單元)的處理器上運行,這就使得在嵌入式領域這種沒有MMU的處理器的情形下得到相當廣泛的應用。

        Linux帶有強大的網絡功能和完善的開發工具

        幾乎所有的Unix系統的應用軟件都已移植到了Linux上。Linux還提供了強大的網絡功能,有多種可選擇窗口管理器(X Windows)。Linux的一個顯著優勢就是強大的網絡功能,優秀的網絡功能,這在Internet時代尤其重要。 Linux的發展過程本身就是隨著網絡發展起來的,Linux上有一套成熟的網絡協議堆棧,從2.4開始就支持IPV6了。對于TCP/IP協議,Linux有著最完備的支持,這使得Linux在網絡方面有很大的優勢。此外,在其下也有大量的自由的優秀的開發工具和軟件資源,和大量的應用軟件可用,其中大部分都遵從GPL,是開放源代碼和免費的。這樣在Linux下開發應用程序時,往往不需要從頭做起,而是直接進行二次開發,大大減少了工作量,縮短了開發周期,提高了開發的效率。它也具有強大的語言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。

        開放源代碼的免費軟件,適合裁剪

        Linux遵從 GPL,因此我們只要遵循GPL相關規定就可以獲得其拷貝, 無須為每例應用交納許可證費, 人們可以任意修改,以滿足自己的應用,由于嵌入式系統是面對特定功能的專用計算機系統, 往往就需要針對具體系統進行裁剪和優化, Linux內核小巧,適合裁剪, Linux的內核采用模塊化,模塊可以根據需要加載和卸除。這就使得開發人員可以針對自己的系統來編譯自己的內核,運行所需資源少,十分適合嵌入式應用。此外,Linux內核與用戶界面完全獨立,各部分的可定制性很強,這有利于節約系統資源,非常適合于嵌入式系統的開發。其程序源碼全部公開,任何人可以修改。這樣,開發人員可以對操作系統進行定制,適應其特殊需要。

        性能高效、穩定

        Linux本身具備的一個很大優點就是穩定,曾有人做過實驗,24小時不間斷運行的情況下,Linux三年內只出現過5次死機現象,而Windows死機次數則有150次之多,嵌入式系統一般要求在環境惡劣的情況下依然能夠穩定正常的工作,正是由于Linux的穩定性,才使得嵌入式系統得到高可靠性的保證。

        通過以上比較,我們決定采用最后一種方案。

        3 方案的實施

        我們做設計的目標是用Sitsang開發平臺實現一個具有實時視頻采集壓縮及傳輸功能的可以直接接入IPV6網的網絡攝像機。

        3.1 硬件系統簡介

        因本文主要介紹軟件系統的設計,所以只簡單介紹其硬件系統。整個系統除攝像頭部分外都是在基于Intel PXA255 的Sitsang開發板上實現的。Sitsang板的核心為PXA255,配備了大量的硬件資源,其中通信接口中的以太網控制器和USB Host控制器在本系統中是關鍵部件。Sitsang開發板上采用了Standard Microsystems LAN91C96以太網控制器,它通過U52與網絡相連,支持IEEE802.3的10Mb/s模式。Sitsang開發板上采用了Philips的 ISP1161作為USB Host控制器,使用USB Host接口可以使Sitsang板與視頻采集攝像頭相連。以太網控制器和USB Host控制器通過數據總線收發器(74LVCH32245)以及地址、數據總線驅動器(74LVCH32244)與PXA255相連接,使用ov511芯片的USB攝像頭。

        3.2 軟件系統的實現

        軟件系統的設計與實現是本系統的關鍵,主要分以下幾個步驟:

        3.2.1. 編譯支持IPv6的Linux內核

        我們采用的內核是Linux 2.6.12,該內核擴展多嵌入式平臺支持的一個主要途徑就是把uCLinux的大部分并入主流內核功能中。要向該CPU移植Linux,首先要準備交叉編譯環境,以便在PC機上編譯可運行于PXA255核CPU的目標代碼。實驗選用的Linux內核源碼包是Linux最新版內核(Kernel),版本號2.6.12.ar.bz2,以下是編譯支持IPv6的Linux內核的過程。首先是下載內核源代碼,其地址是:

        http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.gz,下載后將其放置到 /usr/src/下,然后用命令tar zxvf linux-2.6.12.tar.gz解壓,再執行以下命令 #cd linux-2.6.12 ,#make menuconfig配置內核,一定要選開發板的網卡驅動。在執行make menuconfig命令的時候,注意把Network Options下有關IPv6和隧道(tunnel)的模塊選為內核模式,以便得到所需要的內核文件。因為現在得到的Linux內核版本雖然是支持IPv6的,但是支持IPv6的模塊默認并不會編譯入內核的。其他選項根據實際需要更改,使內核滿足需要即可以便得到較小的內核。最后是編譯內核,需要執行以下命令:#make dep;#make zImage;#make modules。編譯無誤后,就有了支持IPv6的內核,接下來的工作是把啟動程序和內核文件外加一個精簡的文件系統燒錄到開發板上去,開發板就可以啟動了。

        3.2.2.基于嵌入式Linux視頻采集模塊的設計

        在嵌入式Linux的內核定制和編譯階段,已經加入了對Video4Linux模塊以及OV511設備的支持,所以運行在Linux下的視頻圖像采集程序,可以通過Video4Linux模塊提供的編譯接口(API)從OV511設備中獲取圖像幀。首先加載USB及OV511設備驅動模塊,同時加載Video4Linux模塊。分別使用命令:modprobe usbcor、modprobe usb-uhci、modprobe vodeodev和modprobe ov511。加載后將生成視頻設備文件/dev/video0,為了和Video4Linux模塊相協調,使用ln-s/dev/video0/dev/video為Video4Linux模塊的默認視頻設備voideo與物理視頻設備video0建立連接。Video4Linux模塊的視頻采集接口設備為/dev/video,采集程序打開此接口設備并掃描 它以尋找自己所需要的數據。

        視頻圖像壓縮模塊的設計

        由視頻采集模塊獲取的視頻圖像需要在以太網上傳輸,為了提高傳輸效率從而提高視頻圖像質量,則需要將原始的視頻圖像進行壓縮編碼。本系統采用先進的MPEG-4標準對視頻圖像進行壓縮編碼,在幾種開放源代碼的MPEG-4編碼軟件中,選擇xvidcore作為本系統中視頻圖像壓縮模塊中的核心算法。對xvidcore-1.0.1進行交叉編譯比較簡單,有以下主要步驟。首先解壓縮xvidcore源代碼:tar-zxvf xvidcore-1.0.1.tar,其次是設置環境變量:export xvidcore="the path of xvidcore";cd $xvidcore/build/generic;再次是生成makefile:./configure-host=localhostbuild=arm-linux-gcc;然后編譯源代碼:make;make install;最后將交叉編譯生成的庫文件libxvidcore.so.*拷貝到交叉編譯器工作目錄的lib子目錄中,該庫文件為系統的其它模塊提供了編程接口。

        3.2.3.基于嵌入式Linux的網絡視頻流服務模塊設計 

        在本設計中,數據在整個系統中是以流數據的形式存在的,Linux內核為流數據提供了一個標準的編程接口,這種接口為數據從外部設備經內核到達用戶進程提供了一個全雙工通道。在這個通道中,數據的處理模塊是作為可選的中間件由用戶動態加載的,上面設計的視頻壓縮模塊就是這樣的一個中間件。本系統主要是用于實時視頻應用,所以需要系統提供對流式文件格式的支持,這樣在接收方利用標準的流視頻播放軟件,如MMedia Player就可以觀看實時傳輸的視頻.在本系統中采用了開放的ASF流格式.壓縮后的視頻數據在傳輸前需要對其進行ASF編碼。流視頻協議是為了在客戶機和視頻服務器之間進行通信而設計和標準化的。根據它們的功能,與網絡上流視頻相關的協議分為三類。網絡層協議:網絡層協議提供了基本的網絡服務支持。IP就是網絡上流視頻使用的網絡協議。傳輸協議:傳輸協議為流服務提供端對端的網絡傳輸功能。TCP、UDP、RTP和RTCP就是網絡上流視頻使用的傳輸協議。話路控制協議:話路控制協議定義消息和程序。RTSP就是一種話路控制協議。

        在發送方的數據面,壓縮且經過ASF編碼的視頻數據被讀出并在RTP/RTCP/RTSP層上打包,以提供定時和同步信息以及包的序列號。然后把這些打包的RTP數據流發送到UDP/TCP層和IP層,得到的IP包在網絡上傳輸。在接收方則按照相反的方向處理。在控制面,RTCP包和RTSP包在UDP/TCP層上復用,并且被送到IP層,以便通過網絡傳輸。

        4 應用的價值

        本網絡攝像機的設計方案,由于采用了MPEG-4編碼標準,得到了較高的壓縮比。經測試,在50Kbps~100Kbps的帶寬下,對CIF(352288,30fps)格式的視頻有較好的表現能力,如果在進行實用化開發時,可以采用硬件壓縮技術,壓縮的性能將會更好。完全能夠滿足在目前寬帶環境中的遠程教學、網絡視頻會議以及視頻監控的要求,特別是支持IPV6協議,在下一代網絡中將會有十分廣泛的應用。

        參考文獻:

        [1] 楊健,張慧慧. 基于ARM和Ethernet的現場實時信號采集分析系統. 微計算機信息 2005,(22)

        [2] 蘭遠東,王建中.基于Linux的嵌入式系統應用開發研究. 機械管理開發 2004,(02)

        [3] 周興, 陶品. 在嵌入式設備上實現IPv6網絡的接入.單片機與嵌入式系統應用 ,2005( 08)

        [4] 吳建平,崔勇,互聯網的新未來:“IPv6”,中國科技獎勵,2005,(07)



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 邵阳县| 长沙县| 永平县| 武川县| 上虞市| 玉树县| 沂水县| 车险| 桂平市| 长丰县| 洛浦县| 宜兴市| 天全县| 桓仁| 舒兰市| 泰兴市| 天台县| 广水市| 沙坪坝区| 康乐县| 金昌市| 眉山市| 云南省| 南澳县| 黄浦区| 耿马| 怀化市| 和林格尔县| 南乐县| 汽车| 当雄县| 会同县| 碌曲县| 正阳县| 两当县| 漾濞| 吐鲁番市| 公主岭市| 南丹县| 满城县| 铁力市|