<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DM9000A與基帶信號處理平臺的結(jié)合應(yīng)用

          DM9000A與基帶信號處理平臺的結(jié)合應(yīng)用

          作者: 時間:2011-11-25 來源:網(wǎng)絡(luò) 收藏

          引言

          軟件無線電(SDR)技術(shù)近年來發(fā)展迅速,在無線通信中的數(shù)字接收機領(lǐng)域應(yīng)用尤其廣泛。SDR中數(shù)據(jù)接口設(shè)計是關(guān)鍵的環(huán)節(jié),以太網(wǎng)是目前最通用的數(shù)據(jù)接口之一,但是中低端的FPGA通常不具備以太網(wǎng)接口,這為FPGA在SDR中的應(yīng)用造成了不便。如果為FPGA配置以太網(wǎng)接口,與外部網(wǎng)絡(luò)實現(xiàn)通信,將有利于SDR平臺的功能延伸,方便數(shù)據(jù)傳輸和與現(xiàn)有系統(tǒng)接口。

          本文在自行設(shè)計開發(fā)的SDR平臺上,為實現(xiàn)高速解調(diào)數(shù)據(jù)的實時遠程傳輸處理及接收機參數(shù)的遠程配置,提出了采用FPGA直接控制進行以太網(wǎng)數(shù)據(jù)收發(fā)的設(shè)計思路,采用Xilinx系列XC2V1000 FPGA和芯片,實現(xiàn)了一種低成本、低功耗和高速率SDR平臺的網(wǎng)絡(luò)傳輸功能,最高傳輸速率可達100Mbps。

          簡介

          主要特點

          DM9000A實現(xiàn)以太網(wǎng)媒體介質(zhì)訪問層(MAC)和物理層(PHY)的功能,包括MAC數(shù)據(jù)幀的組裝/拆分與收發(fā)、地址識別、CRC編碼/校驗、MLT-3編碼器、接收噪聲抑制、輸出脈沖成形、超時重傳、鏈路完整性測試、信號極性檢測與糾正等。

          工作原理

          DM9000A可以和微處理器以8位或16位的總線方式連接,并可根據(jù)需要以單工或全雙工等模式運行。在系統(tǒng)上電時,處理器通過總線配置DM9000A內(nèi)的網(wǎng)絡(luò)控制寄存器(NCR)、中斷寄存器(ISR)等,以完成DM9000A的初始化。隨后,DM9000A進人數(shù)據(jù)收發(fā)等待狀態(tài)。

          當(dāng)處理器要向以太網(wǎng)發(fā)送數(shù)據(jù)幀時,先將數(shù)據(jù)打包成UDP或IP數(shù)據(jù)包,并通過8位或16位總線逐字節(jié)發(fā)送到DM9000A的數(shù)據(jù)發(fā)送緩存中,然后將數(shù)據(jù)長度等信息填充到DM9000A的相應(yīng)寄存器內(nèi),隨后發(fā)送使能命令,DM9000A將緩存的數(shù)據(jù)和數(shù)據(jù)幀信息進行MAC組幀,并發(fā)送出去。

          當(dāng)DM9000A接收到外部網(wǎng)絡(luò)送來的以太網(wǎng)數(shù)據(jù)時,首先檢測數(shù)據(jù)幀的合法性,如果幀頭標(biāo)志有誤或存在CRC校驗錯誤,則將該幀數(shù)據(jù)丟棄,否則將數(shù)據(jù)幀緩存到內(nèi)部RAM,并通過中斷標(biāo)志位通知處理器,處理器收到中斷后將DM9000A接收RAM的數(shù)據(jù)讀出進行處理。

          DM9000A自動檢測網(wǎng)絡(luò)連接情況,根據(jù)網(wǎng)速設(shè)定內(nèi)部的數(shù)據(jù)收發(fā)速率是10Mbps或100Mbps。同時,DM9000A還能根據(jù)RJ45接口是采用對等還是交叉連接方式而改變數(shù)據(jù)收發(fā)引腳的方向,因此,無論外部網(wǎng)線采用對等還是交叉方式,系統(tǒng)均能正常通信。

          基于DM9000A的SDR平臺網(wǎng)絡(luò)接口設(shè)計與實現(xiàn)

          下面以SDR平臺的網(wǎng)絡(luò)接口實現(xiàn)為例,給出DM9000A與FPGA的硬件設(shè)計和軟件配置方法。在SDR基帶信號處理平臺上,全數(shù)字接收機的中頻模擬信號經(jīng)過A/D轉(zhuǎn)換、數(shù)字下變頻、抽取濾波等解調(diào)處理后,形成連續(xù)的解調(diào)數(shù)據(jù)流,其速率為10Mbps。在FPGA內(nèi)部,解調(diào)輸出的數(shù)據(jù)流和以太網(wǎng)接口部分通過FIFO進行緩沖,當(dāng)解調(diào)數(shù)據(jù)達到規(guī)定的數(shù)據(jù)幀長度時,F(xiàn)PGA啟動以太網(wǎng)發(fā)送程序,將解調(diào)數(shù)據(jù)發(fā)送到DM9000A,完成數(shù)據(jù)發(fā)送過程。在接收方向,網(wǎng)絡(luò)工作站把控制指令按照一定的幀格式組幀發(fā)送到以太網(wǎng),DM9000A接收到發(fā)給自己的以太網(wǎng)幀并通知FPGA啟動以太網(wǎng)接收程序,F(xiàn)PGA將相應(yīng)的數(shù)據(jù)從DM9000A的接收FIFO讀到FPGA內(nèi)部RAM中,利用數(shù)據(jù)中的控制命令配置接收機參數(shù),完成網(wǎng)絡(luò)對全數(shù)字接收機的遠程控制。

          與FPGA的數(shù)據(jù)接口和控制接口

          DM9000A的外部總線符合ISA標(biāo)準(zhǔn)??赏ㄟ^ISA總線直接與FPGA無縫連接。其硬件連接原理如圖1所示。

          DM9000A內(nèi)部集成了PHY功能,因此可與以太網(wǎng)接口無縫連接。

          DM9000A的FPGA控制

          初始化模塊

          DM9000A正常工作需要在上電后對內(nèi)部寄存器進行初始化,該過程通過FPGA對DM9000A外部控制總線和數(shù)據(jù)總線的讀寫操作完成。具體流程如下所示:

          >激活PHY

          設(shè)置GPR(REG_1F)CEPIO0bit[0]=0;

          復(fù)位后,DM9000A恢復(fù)默認的休眠狀態(tài),以降低功耗,因此需要首先喚醒PHY。

          >進行兩次軟復(fù)位,步驟如下:

          設(shè)置NCR(REG_00)bit[2:0]=011,至少保持20μs;

          清除NCR(REG_00)bit[2:0]=000;

          設(shè)置NCR(REG_00)bit[2:0]=011,至少保持20μs;

          清除NCR(REG_00)bit[2:0]=000;

          >配置NCR寄存器;

          設(shè)置NCR(REG_00)bit[2:1]=00;配置為正常模式。

          通過改變該寄存器可以選擇設(shè)置內(nèi)部或者外部PHY、全雙工或者半雙工模式、使能喚醒事件等網(wǎng)絡(luò)操作。

          >清除發(fā)送狀態(tài);

          設(shè)置NSR(REG_01)bit[5]=1bit[3]=1 bit[2]=1;

          >設(shè)置IMR寄存器(REG_FF)PAR bit[7]=1,以肩用RX/TX FIFOSRAM讀/寫地址指針自動返回功能;

          >通過IMR寄存器(REG_FF)PRM bit[0]/PTM bit[1],對RX/TX中斷使能。如果需要在一個數(shù)據(jù)幀發(fā)送完后產(chǎn)生一個中斷,就應(yīng)該將PTM bit[1]置1,如果需要在接收到一幀新數(shù)據(jù)時產(chǎn)生一個中斷,就應(yīng)該將PRM bit[1]置1;

          >設(shè)置RCR寄存器,使能數(shù)據(jù)接收功能。

          通過以上步驟,可以通過LED指示燈觀測到DM9000A是否已成功初始化。

          數(shù)據(jù)發(fā)送模塊

          DM9000A中的發(fā)送緩沖區(qū)可以同時存儲兩幀數(shù)據(jù),可以按照先后順序命名為幀I和幀II。DM9000A上電初始化后,發(fā)送緩存區(qū)的起始地址是00H,當(dāng)前數(shù)據(jù)幀編號為幀I。兩幀數(shù)據(jù)的狀態(tài)控制字分別記錄在DM9000A的狀態(tài)寄存器03H和04H中。發(fā)送過程如下:

          首先,F(xiàn)PGA利用寫操作寄存器MWCMD(REG_F8)向DM9000A的發(fā)送緩存區(qū)中寫入發(fā)送數(shù)據(jù)幀,即需要先寫入6字節(jié)的目的MAC地址,再寫入6字節(jié)的源MAC地址,最后再寫入發(fā)送數(shù)據(jù)。

          隨后,F(xiàn)PGA利用寫操作寄存器MWCMD(REG_F8)將數(shù)據(jù)幀長度寫入寄存器FCH和FDH,數(shù)據(jù)長度為16位,將高8位寫入寄存器FCH,低8位寫入寄存器FDH。

          最后,F(xiàn)PGA將發(fā)送控制寄存器TCR(REG_02)的bit[1]置為高電平,向DM9000A發(fā)出發(fā)送數(shù)據(jù)指令。DM9000A會自動做一些處理才將數(shù)據(jù)發(fā)往以太網(wǎng),這包括:插入報頭和幀起始分隔符;插入來自上層協(xié)議的數(shù)據(jù),如果數(shù)據(jù)量小于64字節(jié),則自動補齊64字節(jié);根據(jù)目標(biāo)地址、源地址、長度/類型和數(shù)據(jù)產(chǎn)牛CRC校驗序列,并插入校驗序列位。這些處理都無需FPGA干預(yù)。處理完畢后,DM9000A即開始發(fā)送幀I,在幀I發(fā)送的同時,幀II的數(shù)據(jù)即可寫入發(fā)送緩存區(qū)。在幀I發(fā)送完后,將幀II的數(shù)據(jù)長度寫入寄存器FCH和FDH,最后將發(fā)送控制寄存器NSR(REG_01)的bit[1]置為高電平,即可開始幀II的發(fā)送。依此類推,下面發(fā)送的幀將會繼續(xù)編號為幀I、幀II、幀I、幀II……按照同樣的方式發(fā)送。

          如果FPGA將中斷屏蔽寄存器 IMR(REG_FF)的bit[1]置為高電平,那么發(fā)送完畢后,DM9000A將會產(chǎn)生一個指示發(fā)送完成的中斷信號。在發(fā)送過程中,F(xiàn)PGA可以查詢寄存器標(biāo)志位寄存器NSR(REG_01)中的TX1END bit[2]或者TX2END bit[3],得到數(shù)據(jù)幀的發(fā)送狀態(tài)。

          發(fā)送流程如圖2所示,寄存器ISR中的PTS標(biāo)志位是發(fā)送中斷標(biāo)志位,當(dāng)一幀數(shù)據(jù)發(fā)送完畢,PTS=0,F(xiàn)PCA檢測到該標(biāo)志后,應(yīng)清除標(biāo)志位以便發(fā)送新的數(shù)據(jù)幀。這里需要注意的是,向FC、FD所寫的幀長度應(yīng)該包含目的MAC地址段、源MAC地址段和有效數(shù)據(jù)的總長度。

          接收模塊

          DM9000A中的接收緩存區(qū)是一個環(huán)形結(jié)構(gòu),初始化后的起始地址為0C00H,每幀數(shù)據(jù)都有4字節(jié)長的首部,然后是有效數(shù)據(jù)和CRC校驗序列。首部4字節(jié)依次是01H、狀態(tài)、長度低字節(jié)和長度高字節(jié)。

          首部4字節(jié)含義如下:

          第一個字節(jié)用來檢測接收緩存區(qū)中是否有數(shù)據(jù),如果這個字節(jié)是01H,表明接收到了數(shù)據(jù);如果為00H,則說明沒有數(shù)據(jù)。但是,如果第一個字節(jié)既不是01H,也不是00H,DM9000A就必須作一次軟復(fù)位來從這種異常狀態(tài)中恢復(fù)。

          第二個字節(jié)存儲著以太網(wǎng)幀狀態(tài),由此可判斷所接收幀是否正確。

          第三和第四字節(jié)存儲著以太網(wǎng)幀長度。后續(xù)的字節(jié)就是有效數(shù)據(jù)。

          接收過程如下:

          查看中斷狀態(tài)寄存器,如果接收到新數(shù)據(jù),寄存器ISR的PRS位將被置為0;

          如果檢測到PRS=0,清除PRS,F(xiàn)PGA開始讀接收緩存區(qū)數(shù)據(jù)。如果第一字節(jié)是01H,則說明有數(shù)據(jù),00H說明無數(shù)據(jù),否則要進行復(fù)位;

          根據(jù)獲取的長度信息,判斷是否讀完一幀,如果讀完,接著讀下一幀,直到遇到首字節(jié)是00H的幀,說明接收數(shù)據(jù)已讀完。FPGA可以重新查看中斷狀態(tài)寄存器,等待新的有效數(shù)據(jù)幀。

          結(jié)語

          本文對以太網(wǎng)控制器DM9000A進行了原理和功能介紹,并結(jié)合自行開發(fā)的SDR基帶信號處理平臺,基于FPGA設(shè)計實現(xiàn)了100M以太剛接口,其設(shè)計思路新穎,硬件連接簡單。整體系統(tǒng)具有功耗低,體積小,運行穩(wěn)定可靠等優(yōu)點。



          關(guān)鍵詞: DM9000A 基帶信號處理

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();