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


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

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

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


tcp/ip相關(guān)文章:tcp/ip是什么
評論