<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于DSP/BIOS的數字電視傳輸流網(wǎng)絡(luò )采集系統設計

基于DSP/BIOS的數字電視傳輸流網(wǎng)絡(luò )采集系統設計

作者: 時(shí)間:2010-05-12 來(lái)源:網(wǎng)絡(luò ) 收藏


軟件

的軟件主要是通過(guò)TCP/IP開(kāi)發(fā)包NDK來(lái)實(shí)現的。該開(kāi)發(fā)包支持TCP/IP協(xié)議,并占用較少的資源。NDK僅用200kB~250kB的程序空間和95kB的數據空間即可支持常規的TCP/IP服務(wù)。所以,NDK很適合目前嵌入式系統的硬件環(huán)境,是實(shí)現開(kāi)發(fā)的重要工具。

系統軟件的框圖如圖4所示。



圖4 軟件系統圖

具體流程:系統配置主要在初始化函數中完成,此初始化函數將在.cinit初始化后,并在/初始化和main函數之前調用。系統配置需要開(kāi)啟INT8中斷,也就是EDMA中斷,并設置GPIO7引腳為高電平,從而使PLD模塊始終處于初始狀態(tài)。TCP/IP協(xié)議配置在任務(wù)線(xiàn)程中完成,主要實(shí)現服務(wù)器IP地址和網(wǎng)關(guān)的配置。當其完成后,系統就會(huì )觸發(fā)一個(gè)軟件中斷,在軟件中斷程序中,服務(wù)器會(huì )產(chǎn)生一個(gè)用于偵聽(tīng)的端口,并開(kāi)始偵聽(tīng)上的請求。此時(shí),服務(wù)器已經(jīng)處于待命狀態(tài),等待客戶(hù)機的請求。

當客戶(hù)機的請求到來(lái)時(shí),系統首先會(huì )使GPIO7引腳變?yōu)榈碗娖?,PLD模塊開(kāi)始發(fā)送數據。當其接收到一個(gè)完整的傳輸流數據包后,就會(huì )發(fā)一個(gè)中斷給,DSP啟動(dòng)EDMA,用ping-pong的方式接收數據進(jìn)入特定的存儲器,當接收完一個(gè)完整的傳輸流數據包后,會(huì )產(chǎn)生硬件EDMA中斷,中斷程序主要是設置特定的標志位為1,然后退出硬件中斷,重新回到軟件中斷程序。當軟件中斷程序檢測到特定的標志位為1時(shí),就會(huì )開(kāi)始傳輸在存儲器中的傳輸流數據包給客戶(hù)機。當一個(gè)數據包傳輸完畢后,特定的標志會(huì )被置0,系統等待下一個(gè)數據包的到來(lái)。

當客戶(hù)機要求停止傳輸的請求到來(lái)時(shí),系統會(huì )重新使GPIO引腳變?yōu)楦唠娖?,PLD模塊回到初試狀態(tài)。此時(shí),系統也會(huì )處于待命狀態(tài),繼續偵聽(tīng)網(wǎng)絡(luò )。

系統初始化

初始化配置主要包括EMIF總線(xiàn)配置、中斷配置和底層網(wǎng)絡(luò )配置3個(gè)部分。初始化工作首先在DSP/的全局參數配置窗口進(jìn)行設置,然后調用初始化函數進(jìn)行配置。

在DSP/的全局配置窗口主要設置了DSP的工作時(shí)鐘頻率為600MHz,選擇使用的片級支持庫CSL為DM643的庫,選用小端訪(fǎng)問(wèn)模式,片內256kB的SRAM全部用于Cache,并調用初始化函數dm643_init()。

TCP/IP協(xié)議配置

初始化程序dm643_init()完成后,系統將進(jìn)入各個(gè)線(xiàn)程。首先,系統會(huì )觸發(fā)任務(wù)線(xiàn)程TSK0,在TSK0任務(wù)線(xiàn)程中執行函數StackTest(),其首先調用NC-SystemOpen()函數,完成協(xié)議棧及其所需內存的初始化,然后新建一個(gè)系統配置句柄hCfg = CfgNew();,并實(shí)現服務(wù)器IP地址和網(wǎng)關(guān)的配置。在本系統中,IP地址配置為192.168.0.2;子網(wǎng)掩碼為255.255.255.0;網(wǎng)關(guān)地址為192.168.0.1。配置好之后,系統會(huì )觸發(fā)一個(gè)軟件中斷,并做好偵聽(tīng)網(wǎng)絡(luò )的準備。

網(wǎng)絡(luò )偵聽(tīng)

前面在任務(wù)線(xiàn)程中已經(jīng)配置了IP地址和網(wǎng)關(guān),下面就要在軟件中斷中設置端口并進(jìn)行偵聽(tīng)。首先,在開(kāi)始使用報路之前,必須分配一個(gè)文件環(huán)境fdOpenSession( TaskSelf() )給這個(gè)報路。接著(zhù)就可以創(chuàng )建一個(gè)報路對象stcp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP),并設置端口sin1.sin_port = htons(1000),在這里設置端口號為1000,當然也可以設置其他的端口號。然后把端口號與報路對象綁定bind( stcp, (PSA) sin1, sizeof(sin1)。最后進(jìn)入偵聽(tīng)狀態(tài)listen( stcp, 1)。

數據的接收

當客戶(hù)端要求傳輸數據的信號到來(lái)后,系統會(huì )使GPIO7引腳變?yōu)榈碗娖?,PLD模塊開(kāi)始發(fā)送數據。DSP通過(guò)EDMA方式來(lái)接收數據。EDMA可以在沒(méi)有CPU參與的情況下,由EDMA控制器完成DSP存儲空間內的數據搬移。系統主要采用EDMA的ping-pong方式來(lái)連續接收數據。用ping-pong方式的目的是為了使接收操作和發(fā)送操作分開(kāi)進(jìn)行,增強程序的操作性和可讀性。

限于篇幅,網(wǎng)絡(luò )發(fā)送部分不再贅述。

結語(yǔ)

本系統的硬件和軟件功能已經(jīng)實(shí)現,網(wǎng)絡(luò )傳輸的速度為2MBps。按照此速度,假設傳輸流中的空包百分比為40%,可以傳輸5MBps的傳輸流數據,至少可以傳輸2~3路的TS流節目。因此,可以證明本系統的方法合理、有效。

本文引用地址:http://dyxdggzs.com/article/166711.htm

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



上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>