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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于TMS320F2812的快速以太網(wǎng)通信系統(tǒng)平臺

          基于TMS320F2812的快速以太網(wǎng)通信系統(tǒng)平臺

          作者:湖南工學(xué)院 易杰 時間:2008-07-28 來源:今日電子/21IC 收藏

            系統(tǒng)軟件設(shè)計

          本文引用地址:http://www.ex-cimer.com/article/86291.htm

            1 系統(tǒng)軟件結(jié)構(gòu)

            除應(yīng)用層用戶程序外,系統(tǒng)軟件可看做操作系統(tǒng)μC/OS-Ⅱ的功能擴展:Ax88796驅(qū)動程序屏蔽底層硬件,為操作系統(tǒng)擴展了訪問網(wǎng)絡(luò)設(shè)備的能力;協(xié)議軟件為操作系統(tǒng)擴展了能力。

            通常被劃分為一個四層協(xié)議系統(tǒng),每一層負責(zé)不同的功能。

            接口層:Ax88796的驅(qū)動程序,直接訪問Ax88796硬件設(shè)備,控制Ax88796的行為模式。
            網(wǎng)絡(luò)層:處理分組在網(wǎng)絡(luò)中的活動,例如分組的選路。
            運輸層:為兩臺主機上的應(yīng)用程序提供端到端的通信。
            應(yīng)用層:負責(zé)處理特定的應(yīng)用程序細節(jié)。

            在上實現(xiàn)的100M快速以太網(wǎng)通信,關(guān)鍵要考慮兩個方面:

            如何控制硬件設(shè)備將數(shù)據(jù)發(fā)送到以太網(wǎng)中(或者將以太網(wǎng)中的數(shù)據(jù)接收到內(nèi))。
            如何生成待發(fā)送的數(shù)據(jù)(或者如何解釋接收到的數(shù)據(jù))。

            二者分別由網(wǎng)絡(luò)設(shè)備驅(qū)動程序和協(xié)議軟件解決。

            本系統(tǒng)的軟件部分包含3個方面:快速以太網(wǎng)驅(qū)動程序、μC/OS-Ⅱ操作系統(tǒng)和TCP/IP協(xié)議棧軟件。

            2 快速以太網(wǎng)驅(qū)動程序開發(fā)

           ?、貯x88796的寄存器

            Ax88796的寄存器映射在從基地址200H到21FH地址空間內(nèi),共32個地址空間,因此Ax88796采取了分頁機制,各寄存器分別存放在不同寄存器頁內(nèi)。

            對Ax88796的寄存器進行正確的設(shè)置是系統(tǒng)運行的基礎(chǔ),下面是幾個重要寄存器:

          CR(命令寄存器):用于選擇寄存器頁,啟動和停止網(wǎng)卡。
          ISR(中斷狀態(tài)寄存器):反映Ax88796當前狀態(tài),CPU通過讀取它判斷引起中斷的原因。
          DCR(數(shù)據(jù)控制寄存器):字節(jié)順序、DMA字節(jié)/字傳輸模式選擇。
          PSTART、PSTOP、BNRY、CPR:這四個寄存器與接收緩沖區(qū)有關(guān)。PSTART設(shè)置起始頁,PSTOP設(shè)置停止頁,這兩個寄存器設(shè)置了接收緩沖區(qū)的首尾。BNRY指示最后一個被取走的緩沖區(qū)頁,CPR指示第一個用于接收的緩沖區(qū)頁。
          TPSR、TBCR0、TBCR1:這三個寄存器與發(fā)送緩沖區(qū)有關(guān)。TPSR設(shè)置發(fā)送緩沖區(qū)的起始頁,TBCR0、TBCR1設(shè)置發(fā)送字節(jié)數(shù)。
          RSAR0、RSAR1、RBCR0、RBCR1:Ax88796通過遠程DMA和系統(tǒng)交換數(shù)據(jù),前兩個寄存器設(shè)置遠程DMA的起始地址,后兩個設(shè)置遠程DMA數(shù)據(jù)字節(jié)數(shù)。 

           ?、诮邮者^程

            接收數(shù)據(jù)幀的過程涉及到的寄存器主要有兩個:CPR和BNRY。CPR寄存器指向新接收到的數(shù)據(jù)幀要存放的起始頁地址,作為本地DMA的寫指針;BNRY寄存器指向還未讀取的數(shù)據(jù)幀的起始頁地址,作為遠程DMA的讀指針。當CPR追上BNRY時,表示接收緩沖區(qū)已滿,后續(xù)的數(shù)據(jù)幀將會被丟棄;當BNRY追上CPR時,表示接收緩沖區(qū)已空。

           ?、郯l(fā)送過程

            發(fā)送過程比較簡單,發(fā)送過程的流程如圖3所示。


          圖3 發(fā)送過程

            3 多任務(wù)操作系統(tǒng)μC/OS-Ⅱ的移植

            所謂移植,就是使μC/OS-Ⅱ內(nèi)核能在某個微處理器或微控制器上運行。為了方便移植,大部分的μC/OS-Ⅱ代碼是用C語言寫的;但仍需要用C和匯編語言寫一些與處理器相關(guān)的代碼,這是因為在讀寫處理器寄存器時只能通過匯編語言來實現(xiàn)。因此要使    μC/OS-Ⅱ正常運行,處理器必須滿足以下要求:

          處理器支持中斷,并且能產(chǎn)生定時中斷(通常在10~1kHz之間)。
          使用C語言可以打開和關(guān)閉處理器的中斷。
          處理器支持能夠容納一定量數(shù)據(jù)的硬件堆棧。
          處理器有將堆棧指針和其他寄存器讀出和存儲到堆?;騼?nèi)存中的指令。
            μC/OS-Ⅱ的移植工作主要包括兩個內(nèi)容:

          OS_CPU_C.C文件中的一個C語言函數(shù)
          OS_CPU_A.ASM文件中的四個匯編語言函數(shù)
            由于篇幅有限,這里就不詳細說明這兩個文件的具體編寫了。

            4 TCP/IP協(xié)議棧的系統(tǒng)結(jié)構(gòu)

           ?、倬W(wǎng)絡(luò)接口層模塊

            網(wǎng)絡(luò)接口層模塊包含Ax88796設(shè)備驅(qū)動、緩沖區(qū)管理和接口調(diào)度三方面。定義了網(wǎng)絡(luò)接口抽象模型,屏蔽了網(wǎng)絡(luò)物理細節(jié),使上層軟件能使用相同的數(shù)據(jù)結(jié)構(gòu)作用于不同的物理網(wǎng)絡(luò)。

           ?、贏RP模塊

            ARP協(xié)議將上層的協(xié)議地址(IP地址)與底層的硬件地址進行映射,從而形成了只能使用IP地址的上層軟件和只能使用物理地址的下層設(shè)備驅(qū)動程序之間的分界線。ARP模塊處理來自于網(wǎng)絡(luò)的ARP數(shù)據(jù)分組,更新和維護ARP高速緩存,并為發(fā)送數(shù)據(jù)報提供相應(yīng)的硬件地址綁定。

           ?、跧CMP模塊

            ICMP協(xié)議內(nèi)容比較豐富,最常用的就是PC上ping程序所實現(xiàn)的回送請求和回送應(yīng)答功能。本課題中,主要就是實現(xiàn)了回送應(yīng)答功能,這樣用戶可以使用PC探測是否網(wǎng)絡(luò)暢通,其他功能目前暫時預(yù)留,待將來升級。

           ?、躀P模塊

            IP模塊是整個協(xié)議棧的中心環(huán)節(jié),它接收來自網(wǎng)絡(luò)的輸入數(shù)據(jù)報,同時也接收來自上層協(xié)議的輸出數(shù)據(jù)報,IP為數(shù)據(jù)報選擇路由,或者將其發(fā)往一個網(wǎng)絡(luò)接口,或者將其交給本機的上層協(xié)議軟件(回環(huán))。

           ?、軹CP模塊

            TCP為不可靠的IP連接提供可靠的、具有流量控制的、端到端的數(shù)據(jù)傳輸。TCP模塊中包含三個關(guān)鍵過程:數(shù)據(jù)輸入、數(shù)據(jù)輸出和超時重發(fā)。自適應(yīng)重發(fā)機制是TCP的核心組成部分,自適應(yīng)的修改連接的平均往返時間。

            ⑥UDP模塊

            UDP協(xié)議提供無連接的通信,相對于TCP協(xié)議,它非常簡單。雖然UDP不能保證可靠性,但是效率非常高。

            ⑦Socket接口模塊

            Socket模塊主要是為了封裝底層協(xié)議軟件,使得用戶在DSP上開發(fā)網(wǎng)絡(luò)程序更加方便。

            系統(tǒng)測試舉例

            Internet Explorer(IE)是Windows操作系統(tǒng)內(nèi)嵌的網(wǎng)頁瀏覽器。Web(網(wǎng)頁)是這個信息共享社會使用最廣泛的信息組織形式。通過往DSP軟件中添加Web服務(wù)功能,可以使本系統(tǒng)能夠更好的融入Internet之中,用戶可以通過IE瀏覽器直接對本系統(tǒng)進行設(shè)置和查看系統(tǒng)的反饋數(shù)據(jù)。打開IE瀏覽器,在地址欄鍵入“192.168.8.66”,即可訪問預(yù)存在DSP系統(tǒng)中的遠程數(shù)據(jù)采集頁面。

            結(jié)束語

            測試表明本系統(tǒng)完全滿足了系統(tǒng)所具備的各項功能,它將DSP的強大運算處理能力和Internet聯(lián)系起來,使得DSP系統(tǒng)不再是“信息孤島”,能夠方便的與網(wǎng)絡(luò)上的其他設(shè)備進行信息共享,進一步擴展DSP的應(yīng)用前景。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

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


          隔離器相關(guān)文章:隔離器原理

          上一頁 1 2 下一頁

          評論


          相關(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); })();