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

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