基于ADSL的視頻傳輸系統
引言
本文引用地址:http://www.j9360.com/article/20801.htm信息技術的不斷發展使得人們不再滿足于文字、語音等通信手段,融合文字、語音、圖片、視頻等媒介的多媒體通信應運而生,適應了當前人們的通信需求。而目前adsl接入網技術已經成熟,并得到了廣泛的應用,隨之成為人們相互交流、獲取各種信息的有效途徑。adsl接入網帶寬大,為實時可靠地傳輸視頻提供了很好的硬件基礎。因此在adsl網絡上的視頻傳輸成為了一個迫切需要解決的難點。
本文討論基于ip2022的adsl接入網視頻傳輸系統。將本地的視頻圖像傳送到internet上,使連接到internet的遠程主機可以隨時隨地地瀏覽本地視頻。我們按照mpeg-4視頻壓縮標準,在dsp芯片上實現高效視頻壓縮處理;根據pppoe、ppp、tcp/ip等協議,使用ip2022網絡處理芯片,提出了通過adsl網絡傳輸視頻的完整解決方案,并對系統的硬件接口以及軟件設計做了詳細的描述,經實際測試,此系統實用性強,將在網絡視頻會議、小區家居智能化以及安防監控等領域具有非常好的應用前景。
系統模型
圖1是本文討論的系統模型。攝像頭獲取的圖像以mpeg-4標準在dsp中進行壓縮處理,生成低碼流的視頻數據,經過ip2022打包處理,由adsl調制解調器發送到internet上。
工作流程可概括如下:
(1)本地pc通過rs232串口,將用戶名、密碼、遠程主機的ip地址及端口等信息寫入ip2022的內部flash中保存下來。
(2) ip2022讀出flash中的數據,配置相關的網絡參數,使用adsl用戶名和密碼按照pppoe協議進行adsl撥號連接。
(3) 撥號連接成功后,ip2022通過spi數據接口接收視頻數據,經過tcp、ip、ppp和pppoe層等各層打包處理后,將數據通過10base-t以太網接口傳送給adsl調制解調器,由其發送到internet上。
(4) 連接到internet的遠程主機(視頻接收端),通過接收軟件可以實時瀏覽本地視頻。
系統設計
硬件設計
ip2022是美國ubicom推出的一顆功能強大的網絡通信處理器,處理器速度可達120~160mips,片上有64k flash、16k sram(program)、4k sram(data)、10位adc。它采用軟件模塊的方式在芯片上實現多種通信接口,是業界領先的單芯片網絡通信處理器,可以實現802.11b、802.11g、802.11a、bluetooth、homeplug、ethernet、 usb、 mii、 i2c、 spi、gpsi、 uart等協議,適用于無線通信和embedded internet的應用。ip2022內含全雙工硬件串/并(serdes)模塊,能直接與各種常用網絡接口連接。可實現片內10base-t 以太網( mac 和phy)usb,以及其他各種快速串行協議。由于其內含兩個serdes部件,能方便地從一種格式轉換為另一種格式,所以也能作協議轉換器。ip2022的工作頻率為100mhz,大多數指令均為單周期執行,其吞吐量能滿足各種新型網絡連通應用的要求。ip2022以軟件模塊(ipmodules) 形式實現外設通信和控制功能,比傳統硬件具有更大的系統設計靈活性,還提供了傳輸控制協議、網際協議、網絡協議棧,并具有一系列完整的端到端連通方案所必須的附加軟件。


系統時鐘模塊為硬件系統提供工作所需要的時鐘脈沖,這部分比較簡單,我們選擇4.8mhz的無源晶振,經測試可保證系統穩定工作。
程序的寫入和調試是通過在線編程接口實現的,ip2022支持在線編程和調試,該部分主要把ip2022的編程接口引出,加以適當的隔離保護,并通過spi和主機并口的轉換電路與調試主機的并口相連接。
在本系統中,內部電壓有兩種,一種是接口設備所需要的3.3v,另一種是ip2022內核所需要的2.5v。這兩種電壓是經過電源轉換模塊轉換而成。
dsp視頻處理器主要負責采集攝像頭獲取的圖像,并對其進行壓縮編碼,得到低碼率的視頻數據,通過內部的主spi接口模塊把視頻數據發送給ip2022網絡處理器。
軟件設計
軟件設計的主要任務是按照pppoe協議、ppp協議、tcp/ip協議實現adsl網絡接入,包含有本地rs232串口配置、撥號連接、spi口數據接收處理、tcp層數據傳輸等四個部分。首先對所使用的相關協議作一簡單介紹,然后分別詳細闡述軟件四個組成部分的功能及實現。
涉及協議介紹
adsl(asymmetrical digital subscriber line,非對稱數字用戶環路)是一種能夠通過普通電話線提供寬帶數據業務的技術,是目前極具發展前景的一種接入技術。adsl接入技術中,核心的是pppoe協議。
pppoe(point to point protocol over ethernet)是以太網上傳送ppp數據包的協議,它提供了在廣播式的網絡(如以太網)中多臺主機連接到遠端的訪問集中器(我們對目前能完成上述功能的設備為寬帶接入服務器)上的一種標準。pppoe協議共包括兩個階段,即pppoe的發現階段(pppoe discovery stage)和pppoe的會話階段(pppoe session stage)。在發現(discovery)過程中,用戶主機以廣播方式尋找可以連接的所有的接入集線器,并獲得其以太網mac地址。然后選擇需要連接的主機并確定所要建立的ppp會話識別標號。在會話階段,用戶主機與接入集線器根據在發現階段所協商的ppp會話連接參數進行ppp會話。依次進行ppp層的lcp包的配置、pap包的配置、ipcp包的配置,在協商好ppp協議的各選項之后,就可以進行ip數據包傳輸了。為保證視頻傳輸的高可靠性,我們采用tcp/ip協議傳輸視頻數據。
系統軟件的四個重要組成模塊
(1)本地串口配置軟件模塊
接收pc機通過rs232串口發送的數據,這些數據包括ip2022網絡處理器的mac地址、ip地址、子網掩碼等網絡參數,還包括需要連接的遠程主機的ip地址、端口號等信息,同時還有adsl撥號上網的用戶名及密碼等數據;接收正確后,ip2022將這些數據存儲在它內部的flash中,便于掉電或系統重啟后能按原有的配置模式正常工作。
(2)撥號連接軟件模塊
按照pppoe協議,初始化ip2022網絡處理器的網絡設置,選擇ppp協議的各項參數,使用有效的adsl用戶名和密碼連接到internet網絡上,如果一次未能連接上,則延時后自動重連,直到連上為止;若由于網絡擁塞或遠程主機故障導致網絡連接斷開,則需要延時后繼續嘗試連接。此軟件模塊主要就是負責建立與internet之間的連接鏈路。
(3)spi數據接收處理軟件模塊
作為spi從設備,以中斷方式接收dsp視頻處理器發送過來的視頻數據,存放在ip2022的內部存儲區內,當一個數據塊接收完成后,再讀出視頻數據并發送到網絡上。此軟件模塊主要完成與dsp視頻處理器之間的數據傳輸,為確保數據不丟失,dsp在發數據前先給ip2022發送請求信號,ip2022開辟一定大小的存儲空間成功后,判斷dsp發來的請求信號,并反饋一個確認信號,通知dsp可以開始發送數據了;而dsp數據發送完成后會等待ip2022的確認接收完成信號。這樣的交互過程可以保證數據準確可靠地通過spi口傳輸。其時序圖如圖3。

系統撥號連接到internet之后,根據遠程主機的ip地址和端口號請求與其建立tcp連接,此過程包括定義并初始化tcp_socket,發送建立tcp連接請求,若成功則允許系統將spi口接收到的視頻數據發送到網絡上,否則釋放tcp_socket占用的內存空間并將其刪除,延時后再次新建tcp_socket并請求建立tcp連接,如此反復直到tcp連接建立成功。若由于其他原因tcp連接斷開了,則此軟件模塊在判斷并確認連接斷開后,自動請求再次建立tcp連接,以確保視頻數據不間斷地傳送到遠程主機。
系統軟件工作流程如圖4所示。

經過實際測試,系統的視頻處理部分能以每秒20幀以上的速度實時處理視頻圖像,對于視頻質量的評測,我們采用foreman序列作為固定的視頻源輸入進行相應的測試,圖像質量良好,其psnr值平均大于34db以上如圖5所示;系統在512kbps帶寬下實測的幀率統計,如圖6所示。


tcp/ip相關文章:tcp/ip是什么
評論