基于TMS320F2812的快速以太網通信系統平臺
系統軟件設計
本文引用地址:http://www.104case.com/article/86291.htm1 系統軟件結構
除應用層用戶程序外,系統軟件可看做操作系統μC/OS-Ⅱ的功能擴展:Ax88796驅動程序屏蔽底層硬件,為操作系統擴展了訪問網絡設備的能力;TCP/IP協議軟件為操作系統擴展了網絡通信能力。
TCP/IP通常被劃分為一個四層協議系統,每一層負責不同的功能。
接口層:Ax88796的驅動程序,直接訪問Ax88796硬件設備,控制Ax88796的行為模式。
網絡層:處理分組在網絡中的活動,例如分組的選路。
運輸層:為兩臺主機上的應用程序提供端到端的通信。
應用層:負責處理特定的應用程序細節。
在DSP上實現的100M快速以太網通信,關鍵要考慮兩個方面:
如何控制硬件設備將數據發送到以太網中(或者將以太網中的數據接收到DSP內)。
如何生成待發送的數據(或者如何解釋接收到的數據)。
二者分別由網絡設備驅動程序和TCP/IP協議軟件解決。
本系統的軟件部分包含3個方面:快速以太網驅動程序、μC/OS-Ⅱ操作系統和TCP/IP協議棧軟件。
2 快速以太網驅動程序開發
?、貯x88796的寄存器
Ax88796的寄存器映射在從基地址200H到21FH地址空間內,共32個地址空間,因此Ax88796采取了分頁機制,各寄存器分別存放在不同寄存器頁內。
對Ax88796的寄存器進行正確的設置是系統運行的基礎,下面是幾個重要寄存器:
CR(命令寄存器):用于選擇寄存器頁,啟動和停止網卡。
ISR(中斷狀態寄存器):反映Ax88796當前狀態,CPU通過讀取它判斷引起中斷的原因。
DCR(數據控制寄存器):字節順序、DMA字節/字傳輸模式選擇。
PSTART、PSTOP、BNRY、CPR:這四個寄存器與接收緩沖區有關。PSTART設置起始頁,PSTOP設置停止頁,這兩個寄存器設置了接收緩沖區的首尾。BNRY指示最后一個被取走的緩沖區頁,CPR指示第一個用于接收的緩沖區頁。
TPSR、TBCR0、TBCR1:這三個寄存器與發送緩沖區有關。TPSR設置發送緩沖區的起始頁,TBCR0、TBCR1設置發送字節數。
RSAR0、RSAR1、RBCR0、RBCR1:Ax88796通過遠程DMA和系統交換數據,前兩個寄存器設置遠程DMA的起始地址,后兩個設置遠程DMA數據字節數。
?、诮邮者^程
接收數據幀的過程涉及到的寄存器主要有兩個:CPR和BNRY。CPR寄存器指向新接收到的數據幀要存放的起始頁地址,作為本地DMA的寫指針;BNRY寄存器指向還未讀取的數據幀的起始頁地址,作為遠程DMA的讀指針。當CPR追上BNRY時,表示接收緩沖區已滿,后續的數據幀將會被丟棄;當BNRY追上CPR時,表示接收緩沖區已空。
?、郯l送過程
發送過程比較簡單,發送過程的流程如圖3所示。
圖3 發送過程
3 嵌入式多任務操作系統μC/OS-Ⅱ的移植
所謂移植,就是使μC/OS-Ⅱ內核能在某個微處理器或微控制器上運行。為了方便移植,大部分的μC/OS-Ⅱ代碼是用C語言寫的;但仍需要用C和匯編語言寫一些與處理器相關的代碼,這是因為在讀寫處理器寄存器時只能通過匯編語言來實現。因此要使 μC/OS-Ⅱ正常運行,處理器必須滿足以下要求:
處理器支持中斷,并且能產生定時中斷(通常在10~1kHz之間)。
使用C語言可以打開和關閉處理器的中斷。
處理器支持能夠容納一定量數據的硬件堆棧。
處理器有將堆棧指針和其他寄存器讀出和存儲到堆?;騼却嬷械闹噶睢?br />
μC/OS-Ⅱ的移植工作主要包括兩個內容:
OS_CPU_C.C文件中的一個C語言函數
OS_CPU_A.ASM文件中的四個匯編語言函數
由于篇幅有限,這里就不詳細說明這兩個文件的具體編寫了。
4 TCP/IP協議棧的系統結構
①網絡接口層模塊
網絡接口層模塊包含Ax88796設備驅動、緩沖區管理和接口調度三方面。定義了網絡接口抽象模型,屏蔽了網絡物理細節,使上層軟件能使用相同的數據結構作用于不同的物理網絡。
?、贏RP模塊
ARP協議將上層的協議地址(IP地址)與底層的硬件地址進行映射,從而形成了只能使用IP地址的上層軟件和只能使用物理地址的下層設備驅動程序之間的分界線。ARP模塊處理來自于網絡的ARP數據分組,更新和維護ARP高速緩存,并為發送數據報提供相應的硬件地址綁定。
?、跧CMP模塊
ICMP協議內容比較豐富,最常用的就是PC上ping程序所實現的回送請求和回送應答功能。本課題中,主要就是實現了回送應答功能,這樣用戶可以使用PC探測DSP是否網絡暢通,其他功能目前暫時預留,待將來升級。
④IP模塊
IP模塊是整個協議棧的中心環節,它接收來自網絡的輸入數據報,同時也接收來自上層協議的輸出數據報,IP為數據報選擇路由,或者將其發往一個網絡接口,或者將其交給本機的上層協議軟件(回環)。
⑤TCP模塊
TCP為不可靠的IP連接提供可靠的、具有流量控制的、端到端的數據傳輸。TCP模塊中包含三個關鍵過程:數據輸入、數據輸出和超時重發。自適應重發機制是TCP的核心組成部分,自適應的修改連接的平均往返時間。
?、轚DP模塊
UDP協議提供無連接的通信,相對于TCP協議,它非常簡單。雖然UDP不能保證可靠性,但是效率非常高。
⑦Socket接口模塊
Socket模塊主要是為了封裝底層協議軟件,使得用戶在DSP上開發網絡程序更加方便。
系統測試舉例
Internet Explorer(IE)是Windows操作系統內嵌的網頁瀏覽器。Web(網頁)是這個信息共享社會使用最廣泛的信息組織形式。通過往DSP軟件中添加Web服務功能,可以使本系統能夠更好的融入Internet之中,用戶可以通過IE瀏覽器直接對本系統進行設置和查看系統的反饋數據。打開IE瀏覽器,在地址欄鍵入“192.168.8.66”,即可訪問預存在DSP系統中的遠程數據采集頁面。
結束語
測試表明本系統完全滿足了網絡通信系統所具備的各項功能,它將DSP的強大運算處理能力和Internet聯系起來,使得DSP系統不再是“信息孤島”,能夠方便的與網絡上的其他設備進行信息共享,進一步擴展DSP的應用前景。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)tcp/ip相關文章:tcp/ip是什么
隔離器相關文章:隔離器原理
評論