<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è) > 嵌入式系統 > 設計應用 > 基于嵌入式Linux的3G無(wú)線(xiàn)視頻終端的設計與實(shí)現

基于嵌入式Linux的3G無(wú)線(xiàn)視頻終端的設計與實(shí)現

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

摘要:系統開(kāi)發(fā)以及相關(guān)技術(shù),采用ARM+作為軟硬件開(kāi)發(fā)平臺,充分利用了ARM以及系統豐富的軟硬件資源,了一個(gè)。在軟件上,采用了Linux的Netfilter架構與socket結合的方法,引入內核緩沖機制,達到了將數據包獲取功能由用戶(hù)態(tài)轉入內核態(tài),了數據包在Linux內核態(tài)的獲取及高效轉發(fā),并且解決了模塊因撥號延遲與服務(wù)器產(chǎn)生速率不匹配所造成的數據丟包問(wèn)題,同時(shí)在Linux下為3G模塊開(kāi)發(fā)了驅動(dòng)。
關(guān)鍵詞:嵌入式Linux;3G;Netflter;;套接字

隨著(zhù)網(wǎng)絡(luò )技術(shù)和嵌入式技術(shù)的迅猛發(fā)展,通過(guò)網(wǎng)絡(luò )來(lái)監控已經(jīng)得到了廣泛的應用,3G網(wǎng)絡(luò )以其高帶寬使得傳輸流暢的視頻信息成為可能,本文在采用3G技術(shù)的基礎上了一款嵌入式Linux的,在數據處理部分采用了Linux的Netfilter架構,通過(guò)掛載鉤子函數來(lái)實(shí)現數據包在內核態(tài)的獲取及高效轉發(fā),并且通過(guò)在Linux內核開(kāi)辟一片緩沖區,解決了視頻服務(wù)器與3G模塊撥號延時(shí)而造成的速率不匹配的問(wèn)題,減少了數據丟包。配合Netfilter用戶(hù)態(tài)管理工具iptables的使用,可實(shí)現包過(guò)濾防火墻,及NAT等功能,從而便于本系統對流經(jīng)其數據包的管理。
另一方面對嵌入式Linux的視頻采集程序的設計進(jìn)行了詳細的介紹,并將其實(shí)際應用到了本系統的數據采集模塊中去,完成了數據的采集工作,同時(shí)針對目前市場(chǎng)上對與3G模塊通常只提供Windows CE下的驅動(dòng)這一情況,開(kāi)發(fā)了嵌入式Linux系統下的3G模塊驅動(dòng)程序,在軟件設計上充分發(fā)揮了開(kāi)源軟件的優(yōu)勢,采用高效的Xvidcore編解碼庫,來(lái)完成視頻的編碼,以及使用PPP源碼來(lái)編譯撥號上網(wǎng)工具,成本低廉并且縮短了系統的開(kāi)發(fā)周期,使得本系統具有較強的工程實(shí)用價(jià)值。

1 系統硬件結構
硬件上采用“ARM+3G模塊”系統架構。ARM與3G模塊采用分離模塊的設計方法,通過(guò)USB線(xiàn)相連,較整體設計而言具有更好的靈活性,使得一些現有的以ARM為主處理器的系統能夠很好地擴展3G功能,便于產(chǎn)品的過(guò)渡。本系統的核心處理器是S3C2440A,S3C2440A是一款由SamSu-ng半導體公司推出的基于A(yíng)RM920T內核的16/32位RISC微處理器。內部帶有全性能的MMU(內存處理單元),主頻為400MHz最大可達到533MHz,提供了一個(gè)數字攝像頭接口(Camera Interface)。具有高性能、低功耗、接口豐富和體積小等優(yōu)良特性。而3G模塊核心部件采用的是MC8630模塊,該模塊具有語(yǔ)音、短信和高速數據業(yè)務(wù)等功能,可以廣泛應用于高速數據傳輸、安防、無(wú)線(xiàn)媒體、直放站監控、鐵路終端和車(chē)載監控等領(lǐng)域。
系統硬件結構如圖1所示。

本文引用地址:http://dyxdggzs.com/article/150415.htm

a.jpg



2 系統軟件設計
系統主要由視頻采集模塊、數據處理模塊、網(wǎng)絡(luò )轉發(fā)模塊組成。
2.1 視頻采集模塊設計
根據項目的實(shí)際需要,在本系統中視頻數據來(lái)源主要有兩個(gè)方面:
1)系統與可提供主動(dòng)上傳功能的視頻服務(wù)器通過(guò)RJ45網(wǎng)線(xiàn)直接相接 主要用于完成多路視頻圖像采集。視頻服務(wù)器的主要功能是將攝像頭采集的數據完成編碼壓縮,并且將壓縮的數據以IP包的形式發(fā)送給接收端,由于該類(lèi)視頻服務(wù)器通常是在局域網(wǎng)內使用,目前還很少有對于3G網(wǎng)絡(luò )的支持,隨著(zhù)3G技術(shù)在國內發(fā)展的不斷深入,將在很大程度上取代有線(xiàn)網(wǎng)絡(luò )。所以本系統可作為現有視頻服務(wù)器的3G功能擴展。針對在外接視頻服務(wù)器時(shí)只需對收到的數據包進(jìn)行轉發(fā)而無(wú)需對IP數據本身做分析處理的問(wèn)題,并且在系統啟動(dòng)到3G模塊撥號成功獲得IP地址之間會(huì )有一定的延遲,在本系統中提出了采用Linux的Netfilter架構的方法以及緩沖機制,通過(guò)在數據流經(jīng)TCP/IP協(xié)議棧時(shí)掛載鉤子函數,實(shí)現IP數據在內核態(tài)的獲取,并且通過(guò)在內核開(kāi)辟一塊足夠大的環(huán)形緩沖區來(lái)存儲數據。由于系統需要頻繁對緩沖區進(jìn)行讀寫(xiě),為避免產(chǎn)生內存碎片,在本系統中采用了環(huán)形隊列的數據結構。在3G模塊獲得IP地址后,再通過(guò)驅動(dòng)讀取緩沖區中的數據,由3G網(wǎng)絡(luò )完成轉發(fā),從而降低丟包率并且提高數據包的轉發(fā)效率。因為傳統的方法是采用socket API來(lái)進(jìn)行網(wǎng)絡(luò )編程,其對數據的訪(fǎng)問(wèn)通常發(fā)生在用戶(hù)態(tài),對于Linux操作系統來(lái)說(shuō),用戶(hù)進(jìn)程的優(yōu)先級和所占用的CPU時(shí)間要遠遠小于內核線(xiàn)程,同時(shí)內核進(jìn)程擁有較高的執行優(yōu)先度,故在網(wǎng)絡(luò )布局允許獲得IP數據包的條件下,將用戶(hù)態(tài)的數據包獲取功能載入內核態(tài),可進(jìn)一步提高系統的處理能力,增加系統的有效帶寬,本方法還可用于其他對IP數據本身進(jìn)行處理并且對處理效率有苛刻要求的系統中,例如:本方法在本實(shí)驗室與某航空院合作開(kāi)發(fā)的IP-TS協(xié)議轉換器上也得到了成功的應用,具有一定的通用性。Netfilter是Linux 2.6.x系列內核提供的一套數據包過(guò)濾框架,基于該框架的軟件能夠實(shí)現如數據包過(guò)濾、網(wǎng)絡(luò )地址轉換(NAT)等功能。要使用Netfilter,在內核編譯時(shí)設置“Network Packet Fihering”選項。Netfilter提供了一個(gè)抽象、通用化的框架,作為中間件,為每種網(wǎng)絡(luò )協(xié)議(IPv4、IPv6等)定義一套鉤子函數。對于Ipv4協(xié)議定義了5個(gè)鉤子函數,這些鉤子函數在數據報流過(guò)協(xié)議棧的5個(gè)關(guān)鍵點(diǎn)被調用,Netfilter可以在通過(guò)TCP/IP協(xié)議棧的路徑中的幾個(gè)定義良好的點(diǎn)上捕獲數據包,IPv4中的一個(gè)數據包通過(guò)netfilter系統的過(guò)程如圖2所示。

b.jpg


NF_IP_PRE_ROUTING
在對數據包進(jìn)行初始正確性檢查(校驗和等)后,截獲該數據包。
NF_IP_LOCAL_IN
如果數據包將要到達本地主機,則捕獲該數據包。
NF_IP_FORWARD
如果數據包將要到達某些其他主機,則捕獲該數據包。
NF_IP_LOCAL_OUT
在本地捕獲其目的地是外部的已創(chuàng )建的數據包。
NF_IP_POST_ROUTING
這是最后的鉤子,在此之后將傳輸數據包。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(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>