新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機實現(xiàn)串口協(xié)議的網(wǎng)絡化

        單片機實現(xiàn)串口協(xié)議的網(wǎng)絡化

        作者: 時間:2011-08-02 來源:網(wǎng)絡 收藏

        本文引用地址:http://www.104case.com/article/172586.htm

          網(wǎng)卡芯片接收到以太網(wǎng)數(shù)據(jù)包后,存在CURR指向的頁面中。一個數(shù)據(jù)包可以占據(jù)一頁,也可以占據(jù)多頁。在接收包的包頭里,保存有該包的信息。包頭格式如表1:

          讀完這個包頭,我們就能知道本包的接收狀態(tài),包長度,以及下一個包的位置。在接收循環(huán)中,檢查中斷狀態(tài)寄存器ISR狀態(tài),發(fā)現(xiàn)有新包來,先讀取包頭信息,接著按照包頭指示讀取全包,然后改寫B(tài)NRY,再接著讀下一個包,這樣循環(huán),直到達到CURR位置。注意,一個包有可能占據(jù)接收緩沖區(qū)的首、尾頁面,此時須小心讀取。

          發(fā)送數(shù)據(jù)包比較簡單,將準備好的數(shù)據(jù)用DMA傳到發(fā)送緩沖區(qū),然后設置發(fā)送長度到TBCR1和TBCR0中,再設置傳輸開始頁面,即令TPSR=0x40,最后,使CR=0x26,就開始傳送了。

          傳送完成后要清掉中斷狀態(tài)寄存器ISR的發(fā)送完成標志。值得注意的是,發(fā)送包的包長度不能小于以太網(wǎng)規(guī)定的60byte,否則網(wǎng)卡不會將其發(fā)出。

          3 TCP/IP上的軟件設計

          3.1 TCPIP棧和鏈路層格式

          Internet上使用的是TCP/IP簇,由下至上包含四層:數(shù)據(jù)鏈路層、網(wǎng)絡層(IP)、傳輸層(TCP)和應用層。我們在上能的是數(shù)據(jù)鏈路層的功能,上層協(xié)議鑒于有限的資源,只能部分功能。TCP/IP協(xié)議棧如表2:

          數(shù)據(jù)鏈路層處于協(xié)議棧的最低層,傳輸以太網(wǎng)的物理傳輸幀,其幀格式如表3:

          數(shù)據(jù)鏈路層是所有TCP/IP包的基礎,所有它上層的包都被封裝到鏈路層幀的數(shù)據(jù)段中。鏈路層就是MAC對MAC的通信。

          3.2 PING命令在單片機上的

          PING是網(wǎng)絡層(IP層)的命令,網(wǎng)絡層就是IP對IP之間的通信。主機對一個目標IP地址發(fā)出狀態(tài)請求,后者發(fā)出回應,這樣,就可以用來檢查兩者之間的線路是否暢通。這里涉及到兩個網(wǎng)絡層協(xié)議:

          ARP和ICMP。首先,網(wǎng)絡中要知道目標IP的MAC地址,才能發(fā)送數(shù)據(jù)。為了獲取該地址,我們向整個網(wǎng)絡發(fā)送一個ARP廣播包,詢問該IP對應的MAC地址,然后目標IP應答,我們就從應答信息中得到MAC地址。其次,發(fā)送一個ICMP包,請求目標IP狀態(tài),目標IP回應,就完成網(wǎng)絡連接測試。在我們的實驗中,發(fā)出PING命令的是網(wǎng)絡中的PC主機,接收信號并產(chǎn)生響應的是我們的單片機系統(tǒng)。我們假定單片機系統(tǒng)控制的網(wǎng)卡的IP為192.168.0.176。



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 蓝山县| 疏勒县| 平罗县| 宁晋县| 嘉祥县| 文成县| 定西市| 新营市| 三明市| 黔西县| 阳高县| 天长市| 丰原市| 印江| 城市| 黎城县| 阿拉善盟| 宿州市| 确山县| 平南县| 渑池县| 临沭县| 九台市| 栾城县| 新巴尔虎右旗| 湖州市| 于田县| 贞丰县| 老河口市| 连云港市| 焉耆| 遂宁市| 平阴县| 城步| 丰都县| 延边| 镇江市| 临桂县| 临夏市| 彩票| 图们市|