新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計(jì)

嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計(jì)

作者: 時間:2014-12-02 來源:網(wǎng)絡(luò) 收藏

  3.3發(fā)送數(shù)據(jù)

本文引用地址:http://butianyuan.cn/article/266249.htm

  數(shù)據(jù)的發(fā)送過程應(yīng)包含三個步驟:數(shù)據(jù)包的封裝;通過遠(yuǎn)程DMA將數(shù)據(jù)包送入DMA9008的數(shù)據(jù)發(fā)送緩沖區(qū);通過的本地DMA將數(shù)據(jù)送入FIFO進(jìn)行發(fā)送。具體過程如下:

  (1)數(shù)據(jù)包在發(fā)送前應(yīng)該按規(guī)定的格式封裝好,格式如下:

  

 

  (2)把上面的數(shù)據(jù)包通過遠(yuǎn)程DMA寫送入的數(shù)據(jù)發(fā)送緩沖區(qū)。

  a.設(shè)置CR為22H,選擇寄存器頁面0;

  b.設(shè)置中斷狀態(tài)寄存器ISR為40H,清除發(fā)送完成標(biāo)志;

  c.設(shè)置遠(yuǎn)程DMA地址寄存器RSAR1、RSAR0為4000H,即發(fā)送緩沖區(qū)開始地址;

  d.設(shè)置遠(yuǎn)程DMA字節(jié)計(jì)數(shù)寄存器RBCR1、RBCR0為發(fā)送數(shù)據(jù)包的長度;

  e.設(shè)置CR為12H,設(shè)置命令寄存器為遠(yuǎn)程DMA寫;

  f.往數(shù)據(jù)端口寫入發(fā)送數(shù)據(jù);

  g.查詢中斷狀態(tài)寄存器ISR,等待遠(yuǎn)程DMA完成;

  h.設(shè)置CR為22H,設(shè)置RBCR1、RBCR0為0,遠(yuǎn)程DMA停止;

  i.設(shè)置ISR為40H,清除發(fā)送完成標(biāo)志。

  (3)啟動本地DMA,把數(shù)據(jù)發(fā)送出去。

  a.設(shè)置發(fā)送字節(jié)計(jì)數(shù)器TBCR1(06H)、TBCR0(05H)為發(fā)送數(shù)據(jù)包的長度;

  b.設(shè)置發(fā)送頁面起始地址TPSR(04H)為40H,即發(fā)送緩沖區(qū)開始地址高位字節(jié);

  c.設(shè)置命令寄存器CR為26H,啟動發(fā)送。

  3.4高層通信協(xié)議

  上述發(fā)送、接收過程所完成的協(xié)議是MAC層和物理層的協(xié)議。要真正實(shí)現(xiàn)嵌入式系統(tǒng)與上其它設(shè)備(如PC機(jī))之間的通信,還需要在嵌入式系統(tǒng)中實(shí)現(xiàn)更高層的通信協(xié)議,如TCP/IP協(xié)議,這樣PC機(jī)的程序員就可以使用TCP/IP協(xié)議透明地訪問嵌入式系統(tǒng)的數(shù)據(jù)。

  因此上述以單片機(jī)系統(tǒng)為例的嵌入式系統(tǒng)的軟件設(shè)計(jì)中除了實(shí)現(xiàn)收發(fā)數(shù)據(jù)的功能外,還需要實(shí)現(xiàn)TCP/IP協(xié)議及更高層的應(yīng)用層協(xié)議才能真正實(shí)現(xiàn)整個系統(tǒng)的通信功能。由于TCP/IP協(xié)議的實(shí)現(xiàn)通常采用C語言,并且有現(xiàn)成的源程序,所以在用系列單片機(jī)編程時,可采有C51語言并參考TCP/IP標(biāo)準(zhǔn)的源程序來具體實(shí)現(xiàn)。有關(guān)這方面內(nèi)容,可以查看有關(guān)TCP/IP協(xié)議方面的資料。

雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理

上一頁 1 2 3 下一頁

關(guān)鍵詞: 以太網(wǎng) 8051 DM9008

評論


相關(guān)推薦

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

關(guān)閉