資源描述:
《基于dsp的網(wǎng)絡(luò)通信接口設(shè)計(jì)方案》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于DSP的網(wǎng)絡(luò)通信接口設(shè)計(jì)方案導(dǎo)讀:DSP對(duì)網(wǎng)卡通信過程控制的實(shí)現(xiàn)解決了DSP網(wǎng)絡(luò)中任意站點(diǎn)之間,DSP網(wǎng)絡(luò)與PC機(jī)之間準(zhǔn)確、高速的實(shí)時(shí)通信問題,是將網(wǎng)絡(luò)技術(shù)應(yīng)用到DSP數(shù)字化系統(tǒng)中的關(guān)鍵,從而最終實(shí)現(xiàn)了以DSP為核心的處理系統(tǒng)數(shù)字化和網(wǎng)絡(luò)化的融合?! ?通信協(xié)議的制定 協(xié)議是用來管理通信的法規(guī),是網(wǎng)絡(luò)系統(tǒng)功能實(shí)現(xiàn)的基礎(chǔ)。由于DSP可以實(shí)現(xiàn)對(duì)網(wǎng)卡的直接操作,對(duì)應(yīng)于OSI網(wǎng)絡(luò)模型,網(wǎng)卡包含了物理層和數(shù)據(jù)鏈路層的全部?jī)?nèi)容,因此,規(guī)定了數(shù)據(jù)鏈路層上數(shù)據(jù)幀封裝格式,就可以為基于DSP的局域網(wǎng)絡(luò)中任意站點(diǎn)之間的通信提供具體規(guī)范。因?yàn)橐蕴W(wǎng)是當(dāng)今最受歡迎的局域網(wǎng)之一,在以太網(wǎng)中,
2、網(wǎng)卡用于實(shí)現(xiàn)802.3規(guī)程,其典型代表是Novell公司的NE2000和3COM公司的3C503等網(wǎng)卡,所以研究工作中的具體試驗(yàn)平臺(tái)是以DSP為核心構(gòu)成的以太局域網(wǎng),主要用于語(yǔ)音的實(shí)時(shí)通信,所使用的網(wǎng)卡為Novell公司的NE2000網(wǎng)卡。NE2000網(wǎng)卡的基本組成請(qǐng)見參考文獻(xiàn)[2],其核心器件是網(wǎng)絡(luò)接口控制器(NIC)DP8390.該器件有三部分功能:第一是IEEE802.3MAC(媒體訪問控制)子層協(xié)議邏輯,實(shí)現(xiàn)數(shù)據(jù)幀的封裝和解封,CSMA/CA(帶碰撞檢測(cè)功能的載波偵聽多址接入)協(xié)議以及CRC校驗(yàn)等功能;第二是寄存器堆,用戶對(duì)NE2000網(wǎng)卡通信過程的控制主要通過對(duì)
3、這些寄存器堆中各種命令寄存器編程實(shí)現(xiàn);第三是對(duì)網(wǎng)卡上緩沖RAM的讀寫控制邏輯。DP8390發(fā)送和接收采用標(biāo)準(zhǔn)的IEEE802.3幀格式。IEEE802.3參考了以太網(wǎng)的協(xié)議和技術(shù)規(guī)范,但對(duì)數(shù)據(jù)包的基本結(jié)構(gòu)進(jìn)行了修改,主要是類型字段變成了長(zhǎng)度字段。所以,以DSP為核心的局域網(wǎng)內(nèi)通信數(shù)據(jù)包基本格式如圖1所示?! SP讀出數(shù)據(jù)包和打包從目的地址開始。目的地址用來指明一個(gè)數(shù)據(jù)幀在網(wǎng)絡(luò)中被傳送的目的節(jié)點(diǎn)地址。NE2000支持3種目的地址:?jiǎn)蔚刂?、組地址及廣播地址。單地址表示只有1個(gè)節(jié)點(diǎn)可以接收該幀信息;組地址表示最多可以有64個(gè)字節(jié)接收同一幀信息;而廣播地址則表示它可以被同一網(wǎng)絡(luò)
4、中的所有節(jié)接收。源地址是發(fā)送幀節(jié)點(diǎn)的物理地址,它只能是單地址。目的地址和源地址指網(wǎng)卡的硬件地址,又稱物理地址。在源地址之后的2個(gè)字節(jié)表示該幀的數(shù)據(jù)長(zhǎng)度,只表示數(shù)據(jù)部分的長(zhǎng)度,由用戶自己填入。數(shù)據(jù)字段由46~1500字節(jié)組成。大于1500字節(jié)的數(shù)據(jù)應(yīng)分為多個(gè)幀來發(fā)送;小于46字節(jié)時(shí),必須填充至46字節(jié)。原因有兩個(gè):一是保證從目的地址字段到幀校驗(yàn)字段長(zhǎng)度為64字節(jié)的最短幀長(zhǎng),以便區(qū)分信道中的有效幀和無(wú)用信息;二是為了防止一個(gè)站發(fā)送短幀時(shí),在第一個(gè)比特尚未到達(dá)總線的最遠(yuǎn)端時(shí)就完成幀發(fā)送,因而在可能發(fā)生碰撞時(shí)檢測(cè)不到?jīng)_突信號(hào)。NE2000對(duì)接收到的從目的地址字段后小于64字節(jié)的幀
5、均認(rèn)為是“碎片”,并予以刪除。在數(shù)據(jù)字段,根據(jù)系統(tǒng)的具體功能要求,用戶可以預(yù)留出若干個(gè)字節(jié)以規(guī)定相應(yīng)的協(xié)議,以便通信雙方依據(jù)這些字節(jié)中包含的信息實(shí)現(xiàn)不同的功能。 2基于DSP的網(wǎng)絡(luò)通信程序設(shè)計(jì) 如果基于網(wǎng)絡(luò)操作系統(tǒng),用戶可以利用一些軟件對(duì)網(wǎng)絡(luò)操作系統(tǒng)的支持,很容易地編寫出優(yōu)秀的網(wǎng)絡(luò)通信程序,但這些程序必須依附于網(wǎng)絡(luò)操作系統(tǒng)。而在DSP環(huán)境下,必須深入了解網(wǎng)絡(luò)接口控制器(NIC)的工作原理[2],通過對(duì)網(wǎng)絡(luò)直接編程,實(shí)現(xiàn)局域網(wǎng)內(nèi)任意站點(diǎn)之間的通信而完全拋開網(wǎng)絡(luò)操作系統(tǒng)。DSP對(duì)網(wǎng)卡的通信過程控制就是DSP對(duì)DP8390中各種寄存器進(jìn)行編程控制,完成數(shù)據(jù)分組的正確發(fā)送和接
6、收。DP8390的所有內(nèi)部寄存器都是8位,映像到4個(gè)頁(yè)面。每個(gè)頁(yè)面有16個(gè)可供讀寫的寄存器地址(RA=00H~0fH)。頁(yè)面的選擇由命令寄存器CA控制。第0頁(yè)寄存器用于收發(fā)過程,第1頁(yè)寄存器主要用于DP8390的初始化,第2頁(yè)寄存器則用于環(huán)路診斷。DSP對(duì)寄存器的操作是將寄存器作為DSP的端口設(shè)備,其實(shí)際物理端口地址(PPA)為網(wǎng)卡基本I/O端口地址(BIOA)與寄存器地址(RA)之和(即PPA=BIOA+RA)。應(yīng)注意的是,PPA與寄存器間并不存在一一對(duì)應(yīng)關(guān)系,對(duì)PPA的讀操作與寫操作并不一定是對(duì)同一寄存器進(jìn)行的,這種情況在第0頁(yè)尤其明顯。用戶數(shù)據(jù)分組在DSP和網(wǎng)卡交互
7、是通過網(wǎng)卡的數(shù)據(jù)端口實(shí)現(xiàn)的,既可以用DMA方式也可以用PIO方式讀入數(shù)據(jù)分組或?qū)?shù)據(jù)分組送至網(wǎng)卡RAM緩沖區(qū)。在本系統(tǒng)中,DSP采用DMA方式對(duì)網(wǎng)卡進(jìn)行數(shù)據(jù)讀寫。網(wǎng)卡的數(shù)據(jù)端口地址(NDPA)為網(wǎng)卡基本I/O地址(BIOA)加偏移地址10H(即NDPA=BIOA+10H)。網(wǎng)卡通信過程控制可分為網(wǎng)卡初始化、接收控制和發(fā)送控制。下面分別予以討論?! ?.1網(wǎng)卡初始化 網(wǎng)卡初始化的主要任務(wù)是設(shè)置所需的寄存器狀態(tài),確定發(fā)送和接收條件,并對(duì)網(wǎng)卡緩沖區(qū)RAM進(jìn)行劃分,建立接收和發(fā)送緩沖環(huán)。具體過程請(qǐng)參閱參考文獻(xiàn)[2].需要說明的是,每