<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于IPV6的網(wǎng)絡(luò )攝像機的設計與實(shí)現

基于IPV6的網(wǎng)絡(luò )攝像機的設計與實(shí)現

作者: 時(shí)間:2008-05-19 來(lái)源:網(wǎng)絡(luò ) 收藏

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

1 IPv6攝像機的需求

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

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

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

1.2 IPv6網(wǎng)絡(luò )的發(fā)展趨勢。

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

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

2嵌入式IPV6的方法

根據不同的情況,嵌入式IPV6有不同的實(shí)現方法,每種方法都有自己各自的優(yōu)缺點(diǎn)。下面就簡(jiǎn)要介紹各種方法。

2.1自己編程實(shí)現

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

2.2購買(mǎi)現成的產(chǎn)品

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

2.3利用開(kāi)源Linux

利用開(kāi)放源代碼的Linux實(shí)現,它作為嵌入式操作系統的優(yōu)勢主要有以下幾點(diǎn):

可應用于多種硬件平臺。

Linux已經(jīng)被移植到多種硬件平臺,這對于經(jīng)費,時(shí)間受限制的研究與開(kāi)發(fā)項目是很有吸引力的。原型可以在標準平臺上開(kāi)發(fā)后移植到具體的硬件上,加快了軟件與硬件的開(kāi)發(fā)過(guò)程。Linux是一個(gè)和Unix相似、以?xún)群藶榛A的、具有完全的內存訪(fǎng)問(wèn)控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等現有的大部分芯片)等特性的一種通用操作系統,已經(jīng)被成功的移植到了數十種硬件平臺上,它也可以在沒(méi)有MMU(內存管理單元)的處理器上運行,這就使得在嵌入式領(lǐng)域這種沒(méi)有MMU的處理器的情形下得到相當廣泛的應用。

Linux帶有強大的網(wǎng)絡(luò )功能和完善的開(kāi)發(fā)工具

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

開(kāi)放源代碼的免費軟件,適合裁剪

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

性能高效、穩定

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

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

3 方案的實(shí)施

我們做設計的目標是用Sitsang開(kāi)發(fā)平臺實(shí)現一個(gè)具有實(shí)時(shí)視頻采集壓縮及傳輸功能的可以直接接入IPV6網(wǎng)的網(wǎng)絡(luò )攝像機。

3.1 硬件系統簡(jiǎn)介

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

3.2 軟件系統的實(shí)現

軟件系統的設計與實(shí)現是本系統的關(guān)鍵,主要分以下幾個(gè)步驟:

3.2.1. 編譯支持IPv6的Linux內核

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

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配置內核,一定要選開(kāi)發(fā)板的網(wǎng)卡驅動(dòng)。在執行make menuconfig命令的時(shí)候,注意把Network Options下有關(guān)IPv6和隧道(tunnel)的模塊選為內核模式,以便得到所需要的內核文件。因為現在得到的Linux內核版本雖然是支持IPv6的,但是支持IPv6的模塊默認并不會(huì )編譯入內核的。其他選項根據實(shí)際需要更改,使內核滿(mǎn)足需要即可以便得到較小的內核。最后是編譯內核,需要執行以下命令:#make dep;#make zImage;#make modules。編譯無(wú)誤后,就有了支持IPv6的內核,接下來(lái)的工作是把啟動(dòng)程序和內核文件外加一個(gè)精簡(jiǎn)的文件系統燒錄到開(kāi)發(fā)板上去,開(kāi)發(fā)板就可以啟動(dòng)了。

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

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

視頻圖像壓縮模塊的設計

由視頻采集模塊獲取的視頻圖像需要在以太網(wǎng)上傳輸,為了提高傳輸效率從而提高視頻圖像質(zhì)量,則需要將原始的視頻圖像進(jìn)行壓縮編碼。本系統采用先進(jìn)的MPEG-4標準對視頻圖像進(jìn)行壓縮編碼,在幾種開(kāi)放源代碼的MPEG-4編碼軟件中,選擇xvidcore作為本系統中視頻圖像壓縮模塊中的核心算法。對xvidcore-1.0.1進(jìn)行交叉編譯比較簡(jiǎn)單,有以下主要步驟。首先解壓縮xvidcore源代碼:tar-zxvf xvidcore-1.0.1.tar,其次是設置環(huán)境變量: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的網(wǎng)絡(luò )視頻流服務(wù)模塊設計 

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

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

4 應用的價(jià)值

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

參考文獻:

[1] 楊健,張慧慧. 基于A(yíng)RM和Ethernet的現場(chǎng)實(shí)時(shí)信號采集分析系統. 微計算機信息 2005,(22)

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

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

[4] 吳建平,崔勇,互聯(lián)網(wǎng)的新未來(lái):“IPv6”,中國科技獎勵,2005,(07)



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>