新聞中心

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

單片機(jī)實(shí)現(xiàn)串口協(xié)議的網(wǎng)絡(luò)化

作者: 時(shí)間:2011-08-02 來(lái)源:網(wǎng)絡(luò) 收藏

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

  第一步,ARP。ARP是AddressResolutionProtocol(地址解析)的縮寫(xiě),它的作用是將IP地址轉(zhuǎn)換成物理地址(就是常說(shuō)的MAC地址)。協(xié)議ARP的分組格式如表4:

  當(dāng)主處理器處理網(wǎng)卡收到的ARP廣播請(qǐng)求時(shí),如果發(fā)現(xiàn)是請(qǐng)求“192.168.0.176”的MAC地址,于是按要求打一個(gè)ARP應(yīng)答包,將自己的MAC地址放到應(yīng)答包中,發(fā)送回網(wǎng)絡(luò)就完成了PING的第一步。注意,要在應(yīng)答包尾加18byte的補(bǔ)丁,否則應(yīng)答包長(zhǎng)度不滿(mǎn)足最小60byte的要求。

  第二步,ICMP協(xié)議。ICMP是“InternetControlMessageProtocol”(Internet控制消息協(xié)議)的縮寫(xiě)。用于在IP主機(jī)、路由器之間傳遞控制消息??刂葡⑹侵妇W(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。這些控制消息雖然并不傳輸用戶(hù)數(shù)據(jù),但是對(duì)于用戶(hù)數(shù)據(jù)的傳遞起著重要的作用。

  ICMP是封裝在IP協(xié)議中,所以有IP包頭。

  ICMP協(xié)議結(jié)構(gòu)如表5:

  網(wǎng)絡(luò)主機(jī)在收到ARP的應(yīng)答包后,取出其中的MAC地址,然后向該MAC發(fā)出ICMP請(qǐng)求。主處理器處理該請(qǐng)求時(shí),將請(qǐng)求包的標(biāo)識(shí)和序列號(hào)對(duì)應(yīng)填入ICMP應(yīng)答包,其它部分按要求填寫(xiě)。校驗(yàn)和的計(jì)算有成熟的公式,容易計(jì)算,只要先把校驗(yàn)和部分置0,將包頭的計(jì)算結(jié)果再填入校驗(yàn)和就可以了。

  最后將該ICMP應(yīng)答包送入網(wǎng)絡(luò),這樣就完成了PING的全過(guò)程。此時(shí),發(fā)出PING命令的網(wǎng)絡(luò)主機(jī)就會(huì)得到“Replyfrom192.168.0.176:bytes=32time10msTTL=128”的信息。

  4 串行數(shù)據(jù)與網(wǎng)絡(luò)的數(shù)據(jù)交換的討論

  網(wǎng)絡(luò)層之上,有兩種傳輸層協(xié)議:TCP(Trans2missionControlProtocol)和UDP(UserDatagramProtocol)。對(duì)于數(shù)據(jù)傳輸要求高的場(chǎng)合,需要使用TCP協(xié)議作為雙方通信方式,但此種方式較為復(fù)雜。而對(duì)于一些實(shí)時(shí)信號(hào)及其反向控制信號(hào)的傳遞,UDP協(xié)議就可以滿(mǎn)足要求了。表6是UDP協(xié)議結(jié)構(gòu):

  當(dāng)原始數(shù)據(jù)從送到到主處理器后,主處理器將其打包成UDP報(bào)文,發(fā)送到網(wǎng)絡(luò)中。網(wǎng)絡(luò)端監(jiān)控主機(jī)接收并處理該UDP報(bào)文,然后將控制信息同樣以UDP報(bào)文發(fā)出。主處理器把網(wǎng)絡(luò)控制信號(hào)返回給。這樣,我們?cè)贗nternet中就可以方便地完成對(duì)現(xiàn)場(chǎng)數(shù)據(jù)源的監(jiān)視和控制過(guò)程。

  5 結(jié)語(yǔ)

  因?yàn)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/單片機(jī)">單片機(jī)對(duì)于各種電器設(shè)備有良好的接入和控制能力,所以,我們實(shí)現(xiàn)了的網(wǎng)絡(luò)接入功能后,就在電器的硬件設(shè)備和網(wǎng)絡(luò)之間建起了一道橋梁。通過(guò)它,可以實(shí)現(xiàn)對(duì)各種實(shí)時(shí)信號(hào)、儀器儀表、家用設(shè)施等目標(biāo)的遠(yuǎn)程監(jiān)視,在宏觀上對(duì)各種設(shè)備統(tǒng)一管理,實(shí)現(xiàn)人與系統(tǒng)的和諧的交互。這必將大大提高工作效率,改善工作環(huán)境,提升人們的生產(chǎn)、生活水平。

 本文深入研究了使用單片機(jī)控制網(wǎng)卡,接入以太網(wǎng)Ethernet,即IEEE802.3協(xié)議網(wǎng)絡(luò),實(shí)現(xiàn)串口儀器的。

  1 硬件結(jié)構(gòu)和電路設(shè)計(jì)

  1.1 總體設(shè)計(jì)

  整個(gè)系統(tǒng)設(shè)計(jì)采用ATMEL公司8位通用微控制器AT89C51作為主處理器,驅(qū)動(dòng)REALTEK公司的10M以太網(wǎng)控制芯片RTL8019AS,實(shí)現(xiàn)串口數(shù)據(jù)和外部網(wǎng)絡(luò)互連。

  1.2 網(wǎng)卡接線(xiàn)設(shè)計(jì)

  RTL8019AS為100管腳PQFP封裝,工作電壓5V。其接線(xiàn)原理圖如圖1所示。地址SA0-4接到單片機(jī)P2的低五位上;SA8和SA9接電源;其余SA5-7,SA10-19這13個(gè)管腳全部接地;IORB和IOWB分別接單片機(jī)的讀寫(xiě)信號(hào)端;RSTDRV接到P1.2上;8位數(shù)據(jù)SD0-7按順序接到單片機(jī)P0.020.7腳;TPOUT+和PTOUT-是發(fā)送管腳對(duì),連接到RJ45口的發(fā)送腳1和2;而TPIN+和TPIN-則是接收管腳對(duì),連接到RJ45口的接收腳3和6;管腳X1和X2之間接20M的晶振及接地電容;LED0和LED1分別串接發(fā)光二極管和1k8電阻,連到5V電源上;IOCS16B管腳串接27k8電阻接地;管腳BD0-3(IOS0-3)是負(fù)責(zé)定義基地址位置的,全部懸空,作為0輸入。

  LED0默認(rèn)表示通信沖突COL,LED1表示接收數(shù)據(jù)包。發(fā)送對(duì)和接收對(duì)不能直接接到RJ45插頭上,要通過(guò)隔離電壓模塊(選用20F-01)和RJ45相連。網(wǎng)卡有16bit數(shù)據(jù)線(xiàn),可以使用16bit或8bit模式傳送數(shù)據(jù),使IOCS16B管腳為低,我們選中的是8bit模式。

  1.3 串行接口部分

  1串口部分采用MAX232和9針串口。單片機(jī)P3.0/RXD0和P3.0/RXD0通過(guò)MAX232芯片分別接到串口的2針和3針上。串口5針接地。

  串行口選擇工作方式1,這時(shí)的波特率計(jì)算公式為:

  串口在9600波特率時(shí),晶振選用11.0592M,預(yù)設(shè)值算得0xFD,smod=0;晶振選用16MHz,預(yù)設(shè)值為0xF7,smod=1。

  2 網(wǎng)卡的初始化和工作過(guò)程

  2.1 網(wǎng)卡芯片RTL8019AS的控制方法

  控制網(wǎng)卡芯片RTL8019AS是通過(guò)讀寫(xiě)芯片上的32個(gè)字節(jié)的控制寄存器組實(shí)現(xiàn)的。另外該芯片含有16kbyte的RAM,地址為0x400020x7fff。這些RAM不能通過(guò)單片機(jī)直接尋址,必須通過(guò)32個(gè)字節(jié)的控制寄存器組,以DMA方式讀寫(xiě)它們。

  32個(gè)字節(jié)的控制寄存器組可以由單片機(jī)直接尋址,但其基地址是通過(guò)管腳BD0-3(IOS0-3)配置的。電路中將四個(gè)管腳全部懸空,全0輸入,產(chǎn)品資料說(shuō)明其基地址為300H。

  這32個(gè)字節(jié)的控制寄存器組分成4頁(yè),00H寄存器稱(chēng)為CommandRegister(CR),CR的最高兩位代表目前寄存器處于哪一頁(yè)。01H到0FH在不同的頁(yè)有不同的意義,同時(shí),即使同一頁(yè),讀和寫(xiě)代表的意義也可能不同,這一點(diǎn)很值得注意。10H217H是遠(yuǎn)程DMA端口,而18H-1FH是網(wǎng)卡復(fù)位端口。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉