嵌入式系統以太網接口的設計
3.3發送數據
本文引用地址:http://www.104case.com/article/266249.htm數據的發送過程應包含三個步驟:數據包的封裝;通過遠程DMA將數據包送入DMA9008的數據發送緩沖區;通過DM9008的本地DMA將數據送入FIFO進行發送。具體過程如下:
(1)數據包在發送前應該按規定的格式封裝好,格式如下:

(2)把上面的數據包通過遠程DMA寫送入DM9008的數據發送緩沖區。
a.設置CR為22H,選擇寄存器頁面0;
b.設置中斷狀態寄存器ISR為40H,清除發送完成標志;
c.設置遠程DMA地址寄存器RSAR1、RSAR0為4000H,即發送緩沖區開始地址;
d.設置遠程DMA字節計數寄存器RBCR1、RBCR0為發送數據包的長度;
e.設置CR為12H,設置命令寄存器為遠程DMA寫;
f.往數據端口寫入發送數據;
g.查詢中斷狀態寄存器ISR,等待遠程DMA完成;
h.設置CR為22H,設置RBCR1、RBCR0為0,遠程DMA停止;
i.設置ISR為40H,清除發送完成標志。
(3)啟動本地DMA,把數據發送出去。
a.設置發送字節計數器TBCR1(06H)、TBCR0(05H)為發送數據包的長度;
b.設置發送頁面起始地址TPSR(04H)為40H,即發送緩沖區開始地址高位字節;
c.設置命令寄存器CR為26H,啟動發送。
3.4高層通信協議
上述發送、接收過程所完成的協議是MAC層和物理層的協議。要真正實現嵌入式系統與以太網上其它設備(如PC機)之間的通信,還需要在嵌入式系統中實現更高層的通信協議,如TCP/IP協議,這樣PC機的程序員就可以使用TCP/IP協議透明地訪問嵌入式系統的數據。
因此上述以8051單片機系統為例的嵌入式系統的軟件設計中除了實現收發數據的功能外,還需要實現TCP/IP協議及更高層的應用層協議才能真正實現整個系統的通信功能。由于TCP/IP協議的實現通常采用C語言,并且有現成的源程序,所以在用8051系列單片機編程時,可采有C51語言并參考TCP/IP標準的源程序來具體實現。有關這方面內容,可以查看有關TCP/IP協議方面的資料。
雙絞線傳輸器相關文章:雙絞線傳輸器原理
評論