• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ND K的DSP網(wǎng)絡(luò)通信技術(shù)研究

      2021-12-02 01:26:48鄭佳晶高榮榮
      電子工業(yè)專用設(shè)備 2021年5期
      關(guān)鍵詞:句柄占用率網(wǎng)絡(luò)通信

      鄭佳晶,高榮榮

      (中國電子科技集團公司第四十五研究所,北京100176)

      網(wǎng)絡(luò)通信作為一種有效的通信方式,在DSP應(yīng)用開發(fā)中占據(jù)越來越重要的地位。從DSP設(shè)備實時獲取監(jiān)控或測量的數(shù)據(jù)、向DSP設(shè)備發(fā)送命令控制其采取適當(dāng)?shù)奶幚硇袨榈?,都需要網(wǎng)絡(luò)通信的支持。隨著嵌入式網(wǎng)絡(luò)通信技術(shù)研究與應(yīng)用越來越廣泛,網(wǎng)絡(luò)通信處理技術(shù)越來越成熟。TI公司推出了TCP/IP協(xié)議棧。此協(xié)議棧與TI網(wǎng)絡(luò)開發(fā)工具包NDK(Network Developer's Kit)結(jié)合在一起使用。NDK是一個基于SYS/BIOS實時操作系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧,目前主要用于開發(fā)和驗證TI C6000系列和ARM系列嵌入式處理器的網(wǎng)絡(luò)應(yīng)用功能。包含在NDK發(fā)布版中的代碼是通用的C代碼。NDK棧作為一個快速的原型平臺為開發(fā)網(wǎng)絡(luò)和包處理程序提供服務(wù)。它能用于向已經(jīng)存在的應(yīng)用程序中添加網(wǎng)絡(luò)連接,以支持網(wǎng)絡(luò)的通信、配置和控制?;赟YS/BIOS的網(wǎng)絡(luò)開發(fā)組件,提供網(wǎng)絡(luò)協(xié)議棧的支持,提供基本網(wǎng)絡(luò)服務(wù)開發(fā)的接口,簡化了DSP網(wǎng)絡(luò)應(yīng)用程序的開發(fā)[1]。

      NDK僅用200~250K的程序空間和95K的數(shù)據(jù)空間即可支持常規(guī)的TCP/IP服務(wù),包括應(yīng)用層的TELNET、DHCP和HTTP等協(xié)議,可使基于數(shù)字信號處理技術(shù)的因特網(wǎng)終端的網(wǎng)絡(luò)連接成本大大降低。因此,NDK很適合目前的嵌入式系統(tǒng)硬件環(huán)境,是實現(xiàn)DSP網(wǎng)絡(luò)開發(fā)的重要支撐工具。

      1 NDK的功能架構(gòu)

      如圖1所示,NDK主要由5個庫組成,分別是硬件抽象庫(hal.lib)、網(wǎng)絡(luò)控制庫(netctrl.lib)、網(wǎng)絡(luò)工具庫(nettool.lib)、操作系統(tǒng)庫(os.lib)和協(xié)議棧庫(stack.lib)。

      圖1 協(xié)議??刂屏?/p>

      (1)硬件抽象庫HAL將具體的底層硬件抽象為一個硬件抽象層與NDK隔離,主要負責(zé)管理與網(wǎng)絡(luò)相關(guān)的硬件資源,為NDK提供一組編程接口。包含硬件外設(shè)到NDK的接口,例如,計時器、LED指示燈、以太網(wǎng)設(shè)備和串口等。

      (2)網(wǎng)絡(luò)工具庫NETTOOL庫中包含了NDK提供的所有基于網(wǎng)絡(luò)服務(wù)的套接字,以及一些用于網(wǎng)絡(luò)應(yīng)用程序開發(fā)的工具。在網(wǎng)絡(luò)工具庫中最常用的組件是基于標(biāo)簽的配置系統(tǒng),它幾乎控制棧及其服務(wù)的每個方面[2]。

      (3)操作系統(tǒng)庫將DSP/BIOS操作系統(tǒng)的功能抽象為一個操作系統(tǒng)適配層與NDK隔離,將某些抽象的操作系統(tǒng)調(diào)用映射到SYS/BIOS函數(shù)調(diào)用。這個適應(yīng)層允許SYS/BIOS系統(tǒng)程序員將NDK系統(tǒng)調(diào)整到任何基于SYS/BIOS的操作系統(tǒng)中。

      (4)協(xié)議棧庫主要是TCP/IP協(xié)議棧,它包含以太網(wǎng)和點到點協(xié)議頂層套接字層的所有內(nèi)容。TCP/IP協(xié)議棧是主要的TCP/IP網(wǎng)絡(luò)功能庫,該庫構(gòu)建在SYS/BIOS操作系統(tǒng)之上,實現(xiàn)了從上層套接字到底層鏈路層的所有功能。STACK庫是基于SYS/BIOS編譯的,能充分利用SYS/BIOS操作系統(tǒng),在平臺間遷移時不需要移植。

      (5)網(wǎng)絡(luò)控制庫NETCTRL是協(xié)議棧配置、初始化和事件調(diào)度的核心,它控制TCP/IP與外部的交互。在所有的協(xié)議棧模塊中,它對NDK的操作時最重要,其功能:

      a)負責(zé)NDK的初始化和底層設(shè)備驅(qū)動;

      b)通過配置服務(wù)回調(diào)函數(shù)啟動和維護系統(tǒng)配置;

      c)向底層設(shè)備驅(qū)動提供接口,同時調(diào)度驅(qū)動事件;

      d)在退出時卸載系統(tǒng)配置和清理驅(qū)動。

      2 NDK協(xié)議棧的配置和初始化

      NDK協(xié)議棧初始化的基本過程:

      (1)運行Stack Thread Begin(Global.stackBeginHook)掛鉤函數(shù)。注意在這個掛鉤函數(shù)中,任何與NDK相關(guān)的代碼都不能運行,因為NC_SystemOpen()函數(shù)還沒有運行。

      (2)用初始化函數(shù)對操作系統(tǒng)環(huán)境進行初始化:NC_SystemOpen(Prio rity,OpMode),它的兩個參數(shù)Priority和OpMode分別決定網(wǎng)絡(luò)事件調(diào)度器在SYS/BIOS線程中的優(yōu)先級和操作模式。這個函數(shù)必須在NDK相關(guān)的函數(shù)被調(diào)用之前調(diào)用。

      (3)通過CfgNew()創(chuàng)建一個新的配置。一旦創(chuàng)建了配置句柄,就可以將配置信息裝載到句柄中,既可以整體裝載,也可以采用一次一個條目的形式進行裝載。

      (4)通過配置函數(shù)API的調(diào)用構(gòu)建新配置或加載一個原來存在的配置:CfgLoad()/CfgAddEntry(),兩者的區(qū)別在于整體裝載還是逐一進行裝載,裝載的參數(shù)包括:網(wǎng)絡(luò)主機名,IP地址和子網(wǎng)掩碼,默認(rèn)路由的IP地址,需要執(zhí)行的服務(wù)(例如:DHCP、DNS和HTTP),命名服務(wù)器的IP地址,協(xié)議棧的屬性(例如:IP路由、套接字緩存大小等)。

      (5)通過調(diào)用NC_NetStart()函數(shù),用上面的配置啟動協(xié)議棧。該函數(shù)由四個參數(shù):配置句柄、指向開始函數(shù)的指針、指向結(jié)束函數(shù)的指針和指向IP地址時間的函數(shù)。開始函數(shù)和結(jié)束函數(shù)只被調(diào)用一次,開始函數(shù)在初始化結(jié)束后準(zhǔn)備執(zhí)行網(wǎng)絡(luò)應(yīng)用程序時調(diào)用,IP地址事件函數(shù)允許被多次調(diào)用,NC_NetStart()函數(shù)直到協(xié)議棧繪會話終止才返回。

      (6)在一些初步的初始化后,NC_NetStart()函數(shù)創(chuàng)建一個新的線程,這個新的線程會調(diào)用生成的NetworkOpen()函數(shù)。NetworkOpen()函數(shù)根據(jù)網(wǎng)絡(luò)需求創(chuàng)建網(wǎng)絡(luò)任務(wù)線程。

      (7)在正常操作下,協(xié)議棧直到函數(shù)NC_Net-Stop()被調(diào)用才會關(guān)閉。

      (8)當(dāng)NC_NetStart()返回且會話結(jié)束后,調(diào)用Cfg_Free()釋放配置句柄。

      (9)當(dāng)所有資源釋放后,調(diào)用NC_System-Close完成系統(tǒng)關(guān)閉操作[3]。

      NDK的初始化流程如圖2所示。

      圖2 NDK初始化流程圖

      3 NDK與PC通信測試的實現(xiàn)

      PC與DSP的網(wǎng)絡(luò)通信是經(jīng)常使用的場景之一,采用C/S的網(wǎng)絡(luò)開發(fā)架構(gòu),基于socket進行PC與DSP通信的程序設(shè)計,PC端作為server,DSP端作為client,在DSP端發(fā)送數(shù)據(jù),PC端收到數(shù)據(jù)后不作任何處理,把接收到的數(shù)據(jù)回傳給DSP,在DSP端統(tǒng)計往返時間及誤碼率。程序流程圖如圖3所示。

      圖3 PC與DSP通信流程圖

      這里采集100次往返時間進行統(tǒng)計分析,DSP端發(fā)送接收緩沖區(qū)默認(rèn)設(shè)置8192字節(jié)。這里從PC操作系統(tǒng)的CPU負載情況進行測試分析,CPU占用率70%時的通信速率統(tǒng)計結(jié)果如圖4、圖5所示。

      圖5 CPU占用率70%時網(wǎng)絡(luò)波動

      為了測試PC操作系統(tǒng)CPU占用率比較低的情況下的網(wǎng)絡(luò)通信速率,將與測試無關(guān)的進程關(guān)閉,減輕CPU的負載。PC操作系統(tǒng)CPU占用率為10%的通信速率統(tǒng)計情況如圖6、圖7所示。

      圖6 CPU使用率10%時數(shù)值統(tǒng)計

      從圖4到圖7可以看出:在Windows系統(tǒng)占用率低的時候,通信時間的波動確實減小,往返時間也相應(yīng)的減少了。通信往返時間受PC端影響較大,因為Windows是非實時系統(tǒng),在消息處理上有其內(nèi)在的機制。DSP端是實時系統(tǒng),所以延遲小,響應(yīng)快。另外,對數(shù)據(jù)進行校驗誤碼率為零。

      圖4 CPU使用率70%時數(shù)值統(tǒng)計

      圖7 CPU使用率10%時數(shù)值統(tǒng)計與波動分析

      另外在測試中關(guān)閉了Nagle算法與關(guān)閉前進行數(shù)據(jù)對比分析,發(fā)現(xiàn)關(guān)閉Nagle并不能減少太多時間。對于socket還有其他設(shè)置選項如發(fā)送緩沖區(qū)大小,接收緩沖區(qū)大小以及重傳超時時間設(shè)置等,可以根據(jù)具體的應(yīng)用進行相關(guān)的設(shè)置,提高網(wǎng)絡(luò)通信效率。

      4 結(jié)束語

      通過NDK對TCP/IP協(xié)議棧進行初始化和配置,實現(xiàn)了PC與DSP的網(wǎng)絡(luò)通信,完成了數(shù)據(jù)網(wǎng)絡(luò)通信工作,測試研究表明NDK開發(fā)套件使用方便,性能優(yōu)良可靠,可以最大限度地節(jié)省開發(fā)時間和成本,是嵌入式DSP網(wǎng)絡(luò)開發(fā)的首選。

      猜你喜歡
      句柄占用率網(wǎng)絡(luò)通信
      基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計
      電子制作(2019年15期)2019-08-27 01:11:48
      降低CE設(shè)備子接口占用率的研究與應(yīng)用
      魅力中國(2019年6期)2019-07-21 07:12:10
      網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
      基于網(wǎng)絡(luò)通信的校園智能音箱設(shè)計
      電子制作(2018年1期)2018-04-04 01:48:30
      談計算機網(wǎng)絡(luò)通信常見問題及技術(shù)發(fā)展
      電子制作(2017年17期)2017-12-18 06:41:06
      高校圖書館持久標(biāo)識符應(yīng)用研究
      編譯程序語法分析句柄問題分析與探討
      基于排隊論的區(qū)域路內(nèi)停車最優(yōu)泊位占用率研究
      MFC應(yīng)用程序多線程混合顯示界面方法研究
      基于SPY++的軟件功能擴展的研究
      西乌| 花垣县| 盐津县| 永福县| 宁国市| 潞城市| 昔阳县| 攀枝花市| 鹤岗市| 万州区| 获嘉县| 宝坻区| 高安市| 观塘区| 新丰县| 青铜峡市| 修水县| 桑日县| 定襄县| 民勤县| 合水县| 木兰县| 长岛县| 贵州省| 昌图县| 云霄县| 沅陵县| 长武县| 巍山| 大港区| 东乌珠穆沁旗| 彭州市| 施秉县| 嵩明县| 壤塘县| 德昌县| 增城市| 库尔勒市| 永年县| 独山县| 郸城县|