<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于嵌入式Linux的3G無線視頻終端的設計與實現(xiàn)

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

          作者: 時間:2011-08-01 來源:網(wǎng)絡 收藏

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/150415.htm

          a.jpg



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

          b.jpg


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

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 4 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();