《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于TMS320C6657的嵌入式Web視頻服務(wù)器設(shè)計
基于TMS320C6657的嵌入式Web視頻服務(wù)器設(shè)計
2016年微型機與應(yīng)用第08期
閆渠成,李勇
(上海海事大學(xué) 物流工程學(xué)院,上海 201306)
摘要: 提出了基于TMS320C6657的嵌入式Web視頻服務(wù)器設(shè)計方案。設(shè)計利用CGI接口實現(xiàn)瀏覽器端與服務(wù)器端的數(shù)據(jù)交互以及底層硬件的控制,采用H.264視頻編碼壓縮視頻,采用RTP/RTCP協(xié)議實現(xiàn)實時視頻傳輸。實驗證明,基于TMS320C6657的嵌入式Web服務(wù)器性能可靠。
Abstract:
Key words :

  閆渠成,李勇

 ?。ㄉ虾:J麓髮W(xué) 物流工程學(xué)院,上海 201306)

       摘要:提出了基于TMS320C6657嵌入式Web視頻服務(wù)器設(shè)計方案。設(shè)計利用CGI接口實現(xiàn)瀏覽器端與服務(wù)器端的數(shù)據(jù)交互以及底層硬件的控制,采用H.264視頻編碼壓縮視頻,采用RTP/RTCP協(xié)議實現(xiàn)實時視頻傳輸。實驗證明,基于TMS320C6657的嵌入式Web服務(wù)器性能可靠。

  關(guān)鍵詞:TMS320C6657; 嵌入式Web視頻服務(wù)器; 網(wǎng)絡(luò)開發(fā)工具包(NDK); H.264

0引言

  在工業(yè)探測系統(tǒng)、工業(yè)控制、智能儀器、安全防衛(wèi)系統(tǒng)等領(lǐng)域中的嵌入式控制系統(tǒng),只要實現(xiàn)了與網(wǎng)絡(luò)的接入技術(shù),無論何時何地,都可以實現(xiàn)開放的、基于網(wǎng)絡(luò)的、低成本的遠程控制[1]。將嵌入式技術(shù)與 Web 技術(shù)聯(lián)合已經(jīng)成為嵌入式領(lǐng)域的研究熱點[2]。

  本文提出了一種基于TMS320C6657的以雙核DSP為核心搭建視頻服務(wù)器平臺的方案,滿足工業(yè)現(xiàn)場實時傳輸視頻和遠程控制的需求。TMS320C6657是定點/浮點數(shù)字信號處理器(DSP),基于KeyStone多核架構(gòu),內(nèi)核速度高達1.25 GHz,集成了C66X內(nèi)核、存儲器子系統(tǒng)、外設(shè)和加速器在內(nèi)的各種子系統(tǒng)。其中千兆以太網(wǎng)子系統(tǒng)具有一個SGMII端口,支持10/100/1 000 Mb/s操作[3]。內(nèi)置SYS/BIOS操作系統(tǒng),容易實現(xiàn)TCP/IP協(xié)議,降低了開發(fā)難度,縮短了開發(fā)周期。

1服務(wù)器硬件結(jié)構(gòu)

  TMS320C6657外設(shè)千兆以太網(wǎng)接口和Flash存儲模塊。系統(tǒng)結(jié)構(gòu)如圖1所示。本設(shè)計中將TMS320C6657設(shè)計為嵌入式Web服務(wù)器,通過以太網(wǎng)接口接入上位機所在的同一個局域網(wǎng)中。系統(tǒng)運行程序存入Flash+存儲模塊,系統(tǒng)上電后寫入片上SRAM以及片外DDR3運行程序。系統(tǒng)通過SRIO互聯(lián)方式,將經(jīng)過FPGA預(yù)處理的視頻碼流送到DSP中并進行視頻H.264編碼,壓縮后的視頻碼流將以RTP/RTCP協(xié)議把數(shù)據(jù)打包傳輸給上位機。上位機可以在網(wǎng)頁瀏覽器上通過安裝插件對壓縮后的視頻碼流進行解碼和遠程控制Web服務(wù)器改變視頻處理參數(shù),實現(xiàn)Web視頻服務(wù)器的功能。

  

001.jpg

2服務(wù)器系統(tǒng)軟件設(shè)計

  TMS320C6657內(nèi)置SYS/BIOS操作系統(tǒng),利用SYS/BIOS操作系統(tǒng)和TI的網(wǎng)絡(luò)開發(fā)包NDK即可實現(xiàn)TCP/IP協(xié)議棧的配置、Web服務(wù)器搭建、多線程任務(wù)管理和用戶交互界面設(shè)計。通過H.264編碼器完成視頻編碼,由RTP/RTCP協(xié)議完成視頻流的實時傳輸,實現(xiàn)一個完整的嵌入式Web服務(wù)器設(shè)計。

  2.1Web服務(wù)器搭建

002.jpg

  圖2嵌入式Web視頻服務(wù)器軟件線程結(jié)構(gòu)圖搭建嵌入式Web服務(wù)器必須先配置SYS/BIOS和NDK的相關(guān)基礎(chǔ)模塊,并進行必要的參數(shù)設(shè)置。

 ?。?)添加BIOS操作系統(tǒng)模塊、NDK模塊、EMAC模塊、IP模塊、TCP模塊、HTTP模塊以及添加啟動函數(shù)。

 ?。?)配置IP地址和相關(guān)信息,創(chuàng)建靜態(tài)線程。

 ?。?)指定相應(yīng)的鉤子函數(shù)主體。

  根據(jù)配置文件,只要添加了NDK相應(yīng)的模塊,就會執(zhí)行初始化網(wǎng)絡(luò)環(huán)境并開啟堆棧線程,通過CfgNew()創(chuàng)建一個新的配置。一旦創(chuàng)建完畢就會執(zhí)行一個鉤子函數(shù),通常用這個函數(shù)來將瀏覽器的網(wǎng)頁以及CGI接口加入到程序中。堆棧線程還會根據(jù)配置文件將具體配置數(shù)據(jù)自動生成并添加到CfgNew創(chuàng)造的配置文件中。

  隨后線程會調(diào)用NC_NetStart()程序,該程序會在適當(dāng)?shù)臅r候調(diào)用相應(yīng)鉤子函數(shù)NetworkOpen(),其作用是加入后臺程序,實現(xiàn)網(wǎng)絡(luò)服務(wù)。當(dāng)程序監(jiān)聽到IP地址發(fā)生變化時,線程會調(diào)用NetworkIPaddr()函數(shù)。當(dāng)檢測收發(fā)性能時,TCP、UDP收發(fā)錯誤會調(diào)用NetworkClose()關(guān)閉開啟的后臺線程并釋放相應(yīng)空間。調(diào)用Cfgfree()釋放CfgNew()創(chuàng)建的配置,最后關(guān)閉整個網(wǎng)絡(luò)線程。

  2.2視頻編碼及實時傳輸設(shè)計

  目前主流的視頻格式是1 080 p格式,在目前網(wǎng)絡(luò)環(huán)境下,原碼視頻傳輸速度是達不到實時性要求的。采用H.264編碼可以縮小視頻空間,提高傳輸效率。H.264標(biāo)準(zhǔn)汲取以往標(biāo)準(zhǔn)中的優(yōu)點,編碼效率與過去相比最多可節(jié)省50%的碼率,存儲需求大大降低[4]。H.264獲得優(yōu)越性能的代價是計算復(fù)雜度的大幅增加[5]。為了滿足靈活性和適應(yīng)性要求,H.264設(shè)計包含視頻編碼層(VCL)和網(wǎng)絡(luò)抽象層(NAL)兩層[6]。VCL負(fù)責(zé)壓縮內(nèi)容,NAL負(fù)責(zé)傳輸格式化。

  視頻源碼從FPGA收到并放入一個動態(tài)創(chuàng)建的緩沖中,通過TI工具包中的H.264編碼器進行編碼。先創(chuàng)建配置編碼器,并在配置完成后開始編碼。編碼后經(jīng)壓縮的碼流由RTP模塊進行打包發(fā)送。

  2.3用戶交互界面設(shè)計

  NDK操作系統(tǒng)庫中具有嵌入式文件系統(tǒng)(EFS),HTTP服務(wù)器通過該系統(tǒng)將網(wǎng)頁及相關(guān)的文件放入指定的存儲介質(zhì)中。先將HTML文件轉(zhuǎn)化成二進制數(shù)組文件,調(diào)用EFS接口函數(shù)添加至系統(tǒng)中。

  要實現(xiàn)動態(tài)交互的功能,必須使用CGI接口。本設(shè)計采用網(wǎng)頁表單數(shù)據(jù)控制并修改TMS320C6657的相關(guān)設(shè)置,調(diào)用CGI程序處理相應(yīng)修改請求。具體實現(xiàn)如下:

 ?。?)采用POST方式,根據(jù)POST內(nèi)容長度動態(tài)創(chuàng)建緩沖區(qū)大小,通過recv()函數(shù)讀取數(shù)據(jù)至緩沖區(qū)中。

  (2)通過cgiParseVars()函數(shù)依次解析數(shù)據(jù)內(nèi)容。

 ?。?)根據(jù)數(shù)據(jù)內(nèi)容處理相應(yīng)請求。

 ?。?)向客戶端發(fā)送HTTP相應(yīng)報文,動態(tài)生成回復(fù)頁面報告處理結(jié)果。

 ?。?)完成并釋放創(chuàng)建空間。

  2.4多線程任務(wù)設(shè)計

  為了實現(xiàn)瀏覽器/服務(wù)器模式以及通過網(wǎng)頁對TMS320C6657底層硬件操作,需要設(shè)計一個多線程系統(tǒng)。SYS/BIOS的特點就是優(yōu)先級搶占式任務(wù)管理,將每一個線程作為一個模塊化函數(shù),并設(shè)置特定的優(yōu)先等級,通過輔助模塊信號、事件、郵箱達到對不同進程之間同步、阻塞、通信的目的。

  2.4.1系統(tǒng)構(gòu)成

  本設(shè)計的多線程任務(wù)流程如圖2所示。本系統(tǒng)分為3個部分,主線程用于初始化TMS320C6657硬件及外設(shè)資源,初始化配置文件開啟網(wǎng)絡(luò)服務(wù)、后臺程序,執(zhí)行網(wǎng)絡(luò)基本服務(wù)、視頻編碼及傳輸;控制線程,由一個或者多個線程組成,按需動態(tài)生成,結(jié)束時會向主線程發(fā)出信號報告任務(wù)完成。

  2.4.2系統(tǒng)線程規(guī)劃

  BIOS系統(tǒng)啟動后,先會進入主線程打開網(wǎng)絡(luò)服務(wù)。配置完相關(guān)設(shè)置后,HTTP服務(wù)器就緒,靜態(tài)網(wǎng)頁即可打開,CGI程序等待接收請求。隨后開啟后臺程序,創(chuàng)建緩沖空間執(zhí)行視頻編碼,數(shù)據(jù)打包發(fā)送。用戶打開瀏覽器可以在特定頁面看到視頻流,當(dāng)進行相關(guān)操作時,服務(wù)器就會接收到請求,并在相應(yīng)的CGI 程序中動態(tài)創(chuàng)建新的控制線程,等待控制線程的結(jié)束信號。系統(tǒng)會一直等待請求,直到網(wǎng)絡(luò)服務(wù)關(guān)閉。

  當(dāng)有多個線程同時出現(xiàn)在同一個系統(tǒng)中時就要考慮優(yōu)先級關(guān)系。除了提前設(shè)定好優(yōu)先級以外,它還提供了一些專用模塊確保系統(tǒng)遵循設(shè)計者的意愿執(zhí)行。本設(shè)計中使用的是信號量模塊。信號量是調(diào)配多個任務(wù)之間調(diào)用或處理共享信息時的常用解決方案。信號量分為單值和多值兩種,本設(shè)計運用單值信號量來確保用于底層硬件控制的那些參數(shù)和全局變量會在動態(tài)創(chuàng)建的控制線程里處理完之后才會被主線程讀取,保證了共享數(shù)據(jù)的安全存取。

3結(jié)果與分析

  為檢測嵌入式Web視頻服務(wù)器的功能,搭建了測試環(huán)境,分別檢測服務(wù)器通信速度和服務(wù)器功能。通過TMS320C6657的以太網(wǎng)接口和上位機的網(wǎng)口使嵌入式服務(wù)器與上位機處在同一個局域網(wǎng)中。

  3.1Web服務(wù)器傳輸速度測試

  為了檢測基礎(chǔ)TCP/UDP的收發(fā),在后臺程序中加入了檢測程序。檢測程序通過不斷請求發(fā)送和接收檢測傳輸速度。由于上位機和TMS320C6657配置的都是千兆網(wǎng)口,理論速度可以達到128 Mb/s。表1分別是接收和發(fā)送TCP/UDP數(shù)據(jù)的情況。

004.jpg

  考慮到緩存大小以及數(shù)據(jù)存儲位置和中間過程,測試結(jié)果理想,滿足實時傳輸?shù)囊蟆?/p>

  3.2Web服務(wù)器功能測試

  為了測試Web服務(wù)器功能,設(shè)計了基礎(chǔ)的數(shù)據(jù)交互頁面,用以測試基本服務(wù)器功能。當(dāng)服務(wù)器開啟時,上位機打開瀏覽器,輸入服務(wù)器的IP地址就可以進入服務(wù)器中預(yù)設(shè)的測試網(wǎng)頁界面。測試界面提供了基本的網(wǎng)絡(luò)狀態(tài)信息,支持更改網(wǎng)絡(luò)參數(shù)。如若修改服務(wù)器IP地址,確認(rèn)后可以看到控制臺界面中服務(wù)器重啟初始化信息,如圖3(a)所示。安裝相應(yīng)的控件,通過鏈接進入視頻流界面,如圖3(b)所示?! ?/p>

003.jpg

  經(jīng)過上述測試基本功能成功實現(xiàn),均未出現(xiàn)錯誤。網(wǎng)絡(luò)連接及服務(wù)器程序穩(wěn)定可靠。

4結(jié)論

  本文分別從服務(wù)器搭建、瀏覽器網(wǎng)頁設(shè)置、視頻編碼及傳輸和多線程系統(tǒng)設(shè)計部分介紹了完成構(gòu)建嵌入式Web服務(wù)器的方案和流程,為進一步開發(fā)嵌入式Web服務(wù)器平臺提供了很好的指導(dǎo)方法。實驗結(jié)果表明,運用TMS320C6657雙核DSP作為嵌入式Web視頻服務(wù)器具有傳輸速度快以及遠程操控服務(wù)器的優(yōu)點,同樣兼顧搭建簡單、易于維護和通用性強的特點,利用優(yōu)先級搶占式特性,合理分配多線程能很好地依據(jù)開發(fā)者的意愿開發(fā)出相應(yīng)的功能,具有很強的實用性和參考價值。

參考文獻

 ?。?] 舒展.嵌入式系統(tǒng)綜述[J].現(xiàn)代計算機,2011(5):4446.

 ?。?] 康文廣,胡利民.基于 W3150A+的嵌入式Web服務(wù)器設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2010(6):4143.

 ?。?] TMS320C6657:1.25GHz DSP開發(fā)方案[J]. 世界電子元器件,2014(2):1214.

  [4] 李飛,卿粼波,滕奇志,等.H.264高清視頻編碼器的設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2015,34(6):4244.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。