<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)絡 收藏

          i.jpg
          壓縮模塊為例,其軟件流程如圖6所示。

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

          k.jpg


          2.3 網(wǎng)絡轉(zhuǎn)發(fā)模塊
          在完成對采集圖像的壓縮或者接收完服務器后,需要將數(shù)據(jù)通過網(wǎng)進行轉(zhuǎn)發(fā),完成網(wǎng)絡數(shù)據(jù)轉(zhuǎn)發(fā)通常采取的辦法是利用提供的socket API進行,socket給用戶提供了統(tǒng)一的編程接口,網(wǎng)絡傳輸協(xié)議通常有TCP和UDP兩種,對于TCP每次要通過3次握手建立連接,在等待亂序及重傳丟失數(shù)據(jù)時會產(chǎn)生較大延時,而UDP又缺乏流量控制,所以都不太適用于實時數(shù)據(jù)傳輸,在這種情況下運行于UDP之上的RTP則具有很大的優(yōu)勢,目前對于有實時要求的數(shù)據(jù)傳輸RTP是最好的協(xié)議,故在本系統(tǒng)中使用了RTP協(xié)議作為數(shù)據(jù)傳輸協(xié)議,流程如圖7所示。

          l.jpg


          2.4 模塊驅(qū)動及聯(lián)網(wǎng)
          模塊與ARM是通過USB相連的。到3G網(wǎng)絡的連接是通過PPP協(xié)議的,PPP協(xié)議是一種點對點串行通信協(xié)議,為在點對點連接上傳輸多協(xié)議數(shù)據(jù)包提供了一個標準方法。由于目前市場上的3G模塊基本上都是提供Windows CE操作系統(tǒng)下的驅(qū)動程序,但對于下面的目前還沒有驅(qū)動支持,所以為本系統(tǒng)開發(fā)了3G模塊的驅(qū)動程序。要完成3G模塊的撥號上網(wǎng)功能,需要3個層面的支持:1)是內(nèi)核層面;2)驅(qū)動層面;3)應用程序?qū)用娴闹С?。?nèi)核層面主要是通過對內(nèi)核的重新配置來完成,由于3G模塊與ARM通過USB線連接,而上層的PPP通信采用的是串行協(xié)議,所以要在內(nèi)核中加入USB轉(zhuǎn)串口的支持,通過makemenuconfig命令進入內(nèi)核配置界面,依次選擇Device Drivers->USB support->USB Serial Converter Support選擇USB Generic Serial Driver按兩次空格鍵使項目前加[*]將其編譯入內(nèi)核,其中加*為編譯成內(nèi)核模塊,加M為編譯為模塊。由于采用的是PPP協(xié)議,故要在內(nèi)核中加入PPP的支持。進入內(nèi)核配置界面以后,依次選擇DeviceDrivers->Network device support->PPP(point-to-point)protocol support選中,將PPP編譯入內(nèi)核,同時選擇PPP展開項,將其全部編譯入內(nèi)核,保存退出。對于驅(qū)動層面,3G模塊的驅(qū)動開發(fā)主要是通過修改兩個文件generic.c以及usb-serial.c,其中g(shù)eneric.c為USB通用程序,usb-serial.c為USB轉(zhuǎn)串口程序。通過在其中加入一些網(wǎng)絡層的hook函數(shù)來達到對上層協(xié)議的支持。將修改過后的文件復制到/linux2.6.29/drivers/usb/serial,重新編譯內(nèi)核,生成zImage鏡像,然后下載到板子上。完成3G模塊驅(qū)動的以及內(nèi)核對PPP協(xié)議的支持,對于撥號上網(wǎng)應用程序的支持,主要是通過PPP提供的兩個工具pppd和chat來的,其中PPP提供了一種點對串行線路上傳輸數(shù)據(jù)流的方法,chat主要用于撥號并等待提示。可從網(wǎng)上下載PPP源碼,在本系統(tǒng)中采用的版本為PPP-2.4.0,下載后要解壓并且根據(jù)目標板的類型來進行交叉編譯得到撥號程序。

          3 結(jié)束語
          本文在一塊ARM開發(fā)板上了多種功能,包括數(shù)據(jù),通過外接視頻服務器實現(xiàn)了現(xiàn)有視頻服務器的3G功能擴展,通過采用了Netfilter與socket結(jié)合的方法,將數(shù)據(jù)包獲取功能從用戶態(tài)載入內(nèi)核態(tài),避免了數(shù)據(jù)的內(nèi)存拷貝,提高了處理效率,同時引入內(nèi)核緩沖機制。解決了3G撥號延時而造成的視頻服務器丟包問題,配合Netfilter用戶工具iptables的使用,可以在本系統(tǒng)上實現(xiàn)NAT,包過濾防火墻等功能。方便對流經(jīng)系統(tǒng)數(shù)據(jù)包的管理。
          針對目前市場上的3G模塊大多只提供Windows CE下驅(qū)動這一問題,開發(fā)了3G模塊驅(qū)動,使得現(xiàn)有3G模塊可使用與Linux系統(tǒng)下,用戶可直接在此基礎(chǔ)上通過socket進行編程,而無需考慮底層的硬件通信問題。在軟件設計上充分發(fā)揮開源軟件的優(yōu)勢,采用Xvideore進行視頻編碼,以及PPP源碼編譯撥號軟件等,縮短了系統(tǒng)開發(fā)周期,系統(tǒng)在軟件的整體設計上提出了一套相對通用的軟件架構(gòu),可方便實現(xiàn)功能的擴展及升級。

          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); })();