<form id="itnzz"><noscript id="itnzz"></noscript></form>

          1. <menuitem id="itnzz"></menuitem>
          2. 成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
            現在位置:范文先生網>理工論文>電子通信論文>基于 DSP 的網絡通信程序設計

            基于 DSP 的網絡通信程序設計

            時間:2023-02-20 23:46:41 電子通信論文 我要投稿

            基于 DSP 的網絡通信程序設計

            摘要:通過分析網卡基本通信過程控制和數字信號處理器(DSP)對網卡直接編程方法,成功設計基于DSP的網絡通信程序,從而最終實現DSP系統數字化和網絡化的融合。

                關鍵詞:DSP 網絡通信程序 通信協議 網卡

            DSP芯片是專門為實現各種數字信號處理算法而設計的、具有特殊結構的微處理器,其卓越的性能、不斷上升的性價比、日漸完善的開發方式使它的應用越來越廣泛。將計算機網絡技術引入以DSP為核心的嵌入式系統,使其成為數字化、網絡化相結合,集通信、計算機和視聽功能于一體的電子產品,必須大大提升DSP系統的應用價值和市場前景。將DSP技術與網絡技術相結合,必須解決兩個關鍵問題:一是實現DSP與網卡的硬件接口技術,二是基于DSP的網絡通信程序設計。DSP與網卡的硬件接口技術參考文獻[1]有比較詳盡的論述,以下主要討論基于DSP的網絡通信程序設計。

            1 通信協議的制定

            協議是用來管理通信的法規,是網絡系統功能實現的基礎。由于DSP可以實現對網卡的直接操作,對應于OSI網絡模型,網卡包含了物理層和數據鏈路層的全部內容,因此,規定了數據鏈路層上數據幀封裝格式,就可以為基于DSP的局域網絡中任意站點之間的通信提供具體規范。因為以太網是當今最受歡迎的局域網之一,在以太網中,網卡用于實現802.3規程,其典型代表是Novell公司的NE2000和3COM公司的3C503等網卡,所以研究工作中的具體試驗平臺是以DSP為核心構成的以太局域網,主要用于語音的實時通信,所使用的網卡為Novell公司的NE2000網卡。NE2000網卡的基本組成請見參考文獻[2],其核心器件是網絡接口控制器(NIC)DP8390。該器件有三部分功能:第一是IEEE802.3MAC(媒體訪問控制)子層協議邏輯,實現數據幀的封裝和解封,CSMA/CA(帶碰撞檢測功能的載波偵聽多址接入)協議以及CRC校驗等功能;第二是寄存器堆,用戶對NE2000網卡通信過程的控制主要通過對這些寄存器堆中各種命令寄存器編程實現;第三是對網卡上緩沖RAM的讀寫控制邏輯。DP8390發送和接收采用標準的IEEE802.3幀格式。IEEE802.3參考了以太網的協議和技術規范,但對數據包的基本結構進行了修改,主要是類型字段變成了長度字段。所以,以DSP為核心的局域網內通信數據包基本格式如圖1所示。(范文先生網www.ycxgx.cn收集整理)

            DSP讀出數據包和打包從目的地址開始。目的地址用來指明一個數據幀在網絡中被傳送的目的節點地址。NE2000支持3種目的地址:單地址、組地址及廣播地址。單地址表示只有1個節點可以接收該幀信息;組地址表示最多可以有64個字節接收同一幀信息;而廣播地址則表示它可以被同一網絡中的所有節接收。源地址是發送幀節點的物理地址,它只能是單地址。目的地址和源地址指網卡的硬件地址,又稱物理地址。

            在源地址之后的2個字節表示該幀的數據長度,只表示數據部分的長度,由用戶自己填入。數據字段由46~1500字節組成。大于1500字節的數據應分為多個幀來發送;小于46字節時,必須填充至46字節。原因有兩個:一是保證從目的地址字段到幀校驗字段長度為64字節的最短幀長,以便區分信道中的有效幀和無用信息;二是為了防止一個站發送短幀時,在第一個比特尚未到達總線的最遠端時就完成幀發送,因而在可能發生碰撞時檢測不到沖突信號。NE2000對接收到的從目的地址字段后小于64字節的幀均認為是“碎片”,并予以刪除。在數據字段,根據系統的具體功能要求,用戶可以預留出若干個字節以規定相應的協議,以便通信雙方依據這些字節中包含的信息實現不同的功能。

            2 基于DSP的網絡通信程序設計

            如果基于網絡操作系統,用戶可以利用一些軟件對網絡操作系統的支持,很容易地編寫出優秀的網絡通信程序,但這些程序必須依附于網絡操作系統。而在DSP環境下,必須深入了解網絡接口控制器(NIC)的工作原理[2],通過對網絡直接編程,實現局域網內任意站點之間的通信而完全拋開網絡操作系統。

            DSP對網卡的通信過程控制就是DSP對DP8390中各種寄存器進行編程控制,完成數據分組的正確發送和接收。DP8390的所有內部寄存器都是8位,映像到4個頁面。每個頁面有16個可供讀寫的寄存器地址(RA=00H~0fH)。頁面的選擇由命令寄存器CA控制。第0頁寄存器用于收發過程,第1頁寄存器主要用于DP8390的初始化,第2頁寄存器則用于環路診斷。DSP對寄存器的操作是將寄存器作為DSP的端口設備,其實際物理端口地址(PPA)為網卡基本I/O端口地址(BIOA)與寄存器地址(RA)之和(即PPA=BIOA+RA)。應注意的是,PPA與寄存器間并不存在一一對應關系,對PPA的讀操作與寫操作并不一定是對同一寄存器進行的,這種情況在第0頁尤其明顯。用戶數據分組在DSP和網卡交互是通過網卡的數據端口實現的,既可以用DMA方式也可以用PIO方式讀入數據分組或將數據分組送至網卡RAM緩沖區。在本系統中,DSP采用DMA方式對網卡進行數據讀寫。網卡的數據端口地址(NDPA)為網卡基本I/O地址(BIOA)加偏移地址10H(即NDPA=BIOA+10H)。

            網卡通信過程控制可分為網卡初始化、接收控制和發送控制。下面分別予以討論。

            2.1 網卡初始化

            網卡初始化的主要任務是設置所需的寄存器狀態,確定發送和接收條件,并對網卡緩沖區RAM進行劃分,建立接收和發送緩沖

            環。具體過程請參閱參考文獻[2]。需要說明的是,每一塊網卡被賦予一個物理地址,以便通信站點的標識。這個物理地址存在網卡的PROM(存儲地址為0000~0005H)六個單元中,在網卡初始化時,通過遠程DMA讀入DSP內存中,并送入網卡物理地址寄存器。在一步的意義在于:一方面,如果能正確讀出網卡的物理地址,則說明網卡硬件基本沒有問題,網卡的上電復位和DSP對網卡的初始化順利通過;另一方面,這個物理地址可以用于DSP網絡系統中的點名、包的過濾丟棄等服務,也就是說,在鏈路層根據數據幀攜帶的源地址和目的地址確定數據報從哪里來,是否接收或丟棄。網卡初始化時另一個重要的工作就是接收緩沖環的設置,為了有效利用緩沖區,NIC將接收緩沖區RAM構成環形緩沖結構,如圖2所示。

                接收緩沖區RAM分成多個256字節的緩沖區,N個(N最大為256)這樣的緩沖區通過指針控制鏈接成一條邏輯上的緩沖環。緩沖環的開始頁面地址存入PSTART寄存器,環頁面結束地址存入PSTOP寄存器。PSTART和PSTOP確定了接收緩沖環的大小和邊界。為便于緩沖環讀寫操作,還需要2個指針:當前頁面指針CURR和邊界指針BNRY。CURR確定下一包放在何處,起著緩沖環寫頁面指針作用;BNRY指向未經DSP取走處理最早到達的數據包起始頁面,新接收的數據包不可將其覆蓋,起著緩沖環讀頁面指針的作用。也就是說,CURR可以告訴用戶網卡接收的數據分組當前放到了什么位置,而BNRY則用于確定DSP讀緩沖環到了什么地方。由于接收緩沖區為環形結構,BNRY和CURR相等時,環緩沖區可能滿也可能空。為了使NIC能辨別這兩種狀態,規定當BNRY等于CURR時,才認為環緩沖區滿;當緩沖區空時,CURR比BNRY指針值大1。因此,初始化時設置:BNRY=PSTART,CURR=PSTART+1。這時讀寫指針不一致,為了保證正確的讀寫操作,引入一軟件指針NEXTPK指示下一包起始頁面。顯然,初始化時NEXTPK=CURR。這時,緩沖環的讀指針對NEXTPK,而BNRY只是存儲分組緩沖區的起始頁面邊界指示,其值為NEXTPK-1。

            2.2 接收控制過程

            DSP完成對DP8390的初始化后,網卡就處于接收狀態,一旦收到分組,就自動執行本地DMA,將NIC中FIFO數據送入接收緩沖環,然后向主機申請“數據分組接收到”中斷請求。DSP如果響應中斷,則啟動網卡遠程DMA讀,將網卡緩沖區中的數據分組讀入學生機存儲區,然后對接收緩沖環CURR、NEXTPK、BNRY指針內容進行修改,以便網卡能從網上正確接收后續分組。DSP響應網卡接收中斷后,接收控制過程如下:

            ①設置遠程DMA的起始地址;RSAR0=00H,RSAR1=Nextpk。

            ②設置遠程DMA操作的字節數,這個長度在46~1500字節范圍內根據具體要求自己確定。

            ③0AH送命令寄存器CR,啟動遠程DMA讀。

            ④從網卡數據端口依序讀入數據分組,注意,最先讀入的4字節非數據分組內容,第1字節為接收狀態,第2字節為下一包頁地址指針,3與4字節為接收字節數。第2字節內容應該送入Nextpk,其它字節根據用戶要求處理。

            ⑤修改邊界指針BNRY=Nextpk-1。

            ⑥清除遠程DMA字節數寄存器RBCR0和RBCR1。

            2.3 發送控制過程

            DSP先執行遠程DMA寫操作,將內存中的數據分組傳至網卡發送緩沖區,然后啟動發送命令進行數據分組發送。發送控制過程如下:

            ①設置遠程DMA的起始地址為網卡發送緩沖區起始地址;

            ②設置遠程DMA操作的字節數;

            ③12H送命令寄存器CR,啟動遠程DMA寫;

            ④依序送出數據分組至網卡發送緩沖區;

            ⑤清除遠程DMA字節數寄存器;

            ⑥設置發送字節數寄存器TBCR0和TBCR1;

            ⑦12H送命令寄存器CR,啟動數據分組發送。

            3 發送方發送頻率的控制

            發送方發送頻率的正確控制主要保護兩點:一是有一個最小發送時間間隔,否則會因為接收方不能及時接收而導致系統癱瘓;二是發送頻率能夠足具體的功能實現要求。譬如在語音的實時通信中,發送頻率就取決于聲卡的采樣頻率。在8kHz采樣頻率時,聲卡每秒鐘采樣8000字節,采用1024字節需用時128ms,如果通信協議規定發送1次傳送1024字節有效數據,則必須每128ms發送一次才能保證緩沖區有新數據待發送,也才能保證接收方有新數據播放。128ms是一個理論計算數值,在實際的操作中采樣速度和發送頻率之間總是不能完全匹配,而存放數據的緩沖區大小是有限的,如果沒有良好的控制技巧來實現正確發送,就會造成聲音抖動和延時。解決的辦法是雙緩沖技術和雙指針控制,并且根據采樣速度和發送頻率之間的匹配情況送入不同的發送通信進行處理后發送。正確發送的含義有兩方面,一是每次發送的都是新數據,二是能滿足接收方總在播放新數據的需求。

            4 接收方防止數據包的丟失

            由于D

            SP通過中斷請求判斷是否有數據分組到來,如果中斷繁忙而兩個數據包到來時間相差非常短,DSP有可能只響應一次中斷,從而導致丟包的發生。分析網卡接收數據過程,當網卡收到數據分組時,首先執行本地DMA,將NIC中FIFO數據送入接收緩沖環,并將本地DMA操作的起始地址存放在當前頁寄存器(CURR)和當前本地DMA寄存器(CLDA0、CLDA1)中,DSP從網卡接收緩沖環讀出數據到存儲器則稱遠程DMA操作,用軟件指針Nextpk來指示遠程DMA的起始頁面。因此通過比較網卡本地DMA和遠程DMA的當前地址,即在中斷服務子程序中比較CURR和Nextpk指針,或比較CLDA0、CLDA1和Nextpk指針,就可以保證當前數據分組放到了哪里就讀出到哪里,從而防止丟包的發生。

            5 結論

            DSP對網卡通信過程控制的實現解決了DSP網絡中任意站點之間,DSP網絡與PC機之間準確、高速的實時通信問題,是將網絡技術應用到DSP數字化系統中的關鍵,從而最終實現了以DSP為核心的處理系統數字化和網絡化的融合。


            【基于 DSP 的網絡通信程序設計】相關文章:

            基于DSP的網絡通信程序設計08-06

            基于VxWorks的多DSP系統的多任務程序設計08-06

            基于PCI總線的雙DSP系統及WDM驅動程序設計08-06

            基于DSP的自動對焦系統08-06

            基于DSP平臺的USB接口設計08-06

            基于DSP的信道譯碼算法優化08-06

            基于DSP的紙幣號碼識別系統08-06

            基于DSP的USB口數據采集分析系統08-06

            基于DSP的Bluetooth嵌入式系統應用08-06

            主站蜘蛛池模板: 亚洲另类激情专区小说图片| 玩弄放荡人妻少妇系列| 亚洲中文字幕无码中字| av午夜福利一片免费看久久| 2020国产欧洲精品网站| 国产成人综合网在线观看| 欧美videosdesexo吹潮| 爆乳日韩尤物无码一区| 成人国产在线永久免费| 一区二区免费视频中文乱码| 久久久久亚洲精品美女| 免费特黄夫妻生活片| 日本黄色一区二区三区四区| 日韩一区二区三区在线视频| 国产一区二区高清不卡| av资源在线看免费观看| 亚洲国产成人精品女人久久久| 中文字幕人妻中出制服诱惑| 亚洲精品国产成人av蜜臀| 日韩av在线不卡一区二区三区| 中文日韩在线一区二区| 国产一区二区三区四区五区加勒比| 蜜臀av一区二区国产在线| 成人国产精品一区二区网站公司| 欧美综合婷婷欧美综合五月 | 少妇高潮喷潮久久久影院| 国产成人免费观看在线视频| 一本一道中文字幕无码东京热| 国产亚洲日韩在线播放更多| 欧美成人精品三级网站| 国产区精品福利在线熟女| 久热久视频免费在线观看| 又爽又黄又无遮掩的免费视频| a在线免费| 久久人人97超碰国产精品| 嫩草成人AV影院在线观看 | 国产不卡精品视频男人的天堂 | 亚洲av尤物一区二区| 午夜DY888国产精品影院| 换着玩人妻中文字幕| 热久在线免费观看视频|