<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于單片機(jī)的試驗(yàn)站遠(yuǎn)程監(jiān)控系統(tǒng)網(wǎng)絡(luò)接口

          基于單片機(jī)的試驗(yàn)站遠(yuǎn)程監(jiān)控系統(tǒng)網(wǎng)絡(luò)接口

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

            以太網(wǎng)控制器的外圍布線還包括RJ45接口以及LED指示燈的連接,其具體的連接原理圖如圖2所示。

          以太網(wǎng)芯片RTL8019AS外圍電路原理圖

            圖2 以太網(wǎng)芯片RTL8019AS外圍電路原理圖

            ③ 單片機(jī)與RTL8019AS的連接

            本設(shè)計中采用跳線方式,將65腳JP接高電平當(dāng)系統(tǒng)上電復(fù)位后,在RSTDRV下降沿,8019AS將讀入各個跳線引腳的狀態(tài),寫入系統(tǒng)配置寄存器中,作為系統(tǒng)默認(rèn)的初始配置。

            各跳線引腳連接:RQS0~I(xiàn)RQS2(78~80腳)為中斷口,本設(shè)計中采用查詢方式,所以中斷口選擇沒有影響;IOS0~I(xiàn)OS3(81、82、84、85腳)為I/O基地址選擇,用于選擇I/O口的起始地址,要使其全部置低電平,則起始地址從300H開始,地址總線連接必須與此相一致;PL0、PL1(74、77腳)為網(wǎng)絡(luò)介質(zhì)類型選擇,本系統(tǒng)中設(shè)為“00”,表示進(jìn)行連接檢測;BS0~BS4(67、69、71、72腳)用于BROM容量與基地址選擇,本系統(tǒng)中沒有連接BROM,只要將BS4、BS3設(shè)為低電平,就可禁止BROM。

            由上所述可知,各跳線引腳全部配置為低電平即可。芯片引腳內(nèi)部接有100kΩ的下拉電阻,所以當(dāng)引腳懸空時,本身就默認(rèn)為低電平,因而也可將這些引腳懸空,在相關(guān)電路設(shè)計和軟件設(shè)計中應(yīng)注意要與這些跳線引腳配置相一致。

            數(shù)據(jù)與地址總線連接:采用8位數(shù)據(jù)總線,將96腳IOCS16B接27kΩ下拉電阻即可使8019AS工作于8位數(shù)據(jù)總線方式。系統(tǒng)數(shù)據(jù)總線與SD0~SD7連接。8019AS內(nèi)部寄存器和存儲器的讀寫地址為00H~1FH,只需要5根地址線就能進(jìn)行選擇。但在系統(tǒng)跳線配置中已將起始地址設(shè)為300H,因而在地址選通時,還必須令地址線SA8、SA9為“1”。

            其他還包括對晶振的連接,以及電源和地的連接。

            2 TCP/IP協(xié)議棧的總體設(shè)計

            該網(wǎng)絡(luò)的最終目的是實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)上任意兩點(diǎn)之間的數(shù)據(jù)通信,但是設(shè)計一個對所有可能的通信模式均是有效的、完整的、全面的協(xié)議是不可能實(shí)現(xiàn)的,于是將通信問題劃分成小塊,并為每個小塊設(shè)計單獨(dú)的協(xié)議,這樣使得每種協(xié)議變得容易設(shè)計、分析、執(zhí)行和測試。一方面,每種協(xié)議應(yīng)該處理其他協(xié)議沒有處理的通信問題,以免重復(fù)工作。另一方面,設(shè)計的協(xié)議應(yīng)該能夠共享數(shù)據(jù)結(jié)構(gòu)和信息,以提高執(zhí)行效率。當(dāng)然最重要的是各個協(xié)議之間能夠很好的協(xié)同工作,不能將每種協(xié)議設(shè)計成孤立的協(xié)議,這就需要將他們設(shè)計成一個相互支持、相互補(bǔ)充的系統(tǒng),系統(tǒng)中的每種協(xié)議解決一部分通信問題,而所有的協(xié)議便能解決所有可能的網(wǎng)絡(luò)通信問題。

            本系統(tǒng)網(wǎng)絡(luò)接口采用以太網(wǎng)接口,所以協(xié)議棧遵循TCP/IP模型來設(shè)計??紤]到系統(tǒng)的程序空間極為有限,所以設(shè)計時對標(biāo)準(zhǔn)協(xié)議棧進(jìn)行了簡化,通過選擇合適的協(xié)議,可以降低對處理器硬件資源的需求。例如,由于對可靠性要求較高,可以只選擇使用TCP協(xié)議,而不使用不可靠的UDP協(xié)議。另外,對于己經(jīng)選擇使用的協(xié)議,在具體實(shí)現(xiàn)時也進(jìn)行了適當(dāng)?shù)暮喕?,保留其中必須具備的部分,以?jié)約程序空間和執(zhí)行時間。同時保證系統(tǒng)的可靠性與安全性,遵循分層設(shè)計思想和模塊化設(shè)計方法,各協(xié)議由對應(yīng)的模塊實(shí)現(xiàn),模塊對外提供接口函數(shù)供主程序調(diào)用,精簡的TCP/IP協(xié)議棧如圖3所示。

          TCP/IP協(xié)議棧

            圖3 TCP/IP協(xié)議棧

            網(wǎng)絡(luò)接口層是TCP/IP模型的最底層,由RTL8019AS的驅(qū)動程序來完成基本功能。RTL8019AS的驅(qū)動程序負(fù)責(zé)將單片機(jī)傳輸?shù)絀nternet上的數(shù)據(jù)封裝成以太網(wǎng)數(shù)據(jù)包的格式發(fā)送,以及將網(wǎng)絡(luò)上傳來的數(shù)據(jù)包進(jìn)行分析使其進(jìn)入上一層的協(xié)議處理程序。

            網(wǎng)絡(luò)層的功能則由ARP(地址解析協(xié)議)、IP(網(wǎng)際協(xié)議)和ICMP(因特網(wǎng)控制報文協(xié)議)協(xié)議共同完成。ARP協(xié)議能夠判斷數(shù)據(jù)幀中的目的地址是否與本地IP地址相同,如果相同則接收數(shù)據(jù)幀,否則將數(shù)據(jù)幀拋棄。而IP是TCP/IP協(xié)議棧最為核心的協(xié)議,所有的網(wǎng)絡(luò)層和運(yùn)輸層的數(shù)據(jù)都是以IP數(shù)據(jù)報格式傳輸。ICMP允許主機(jī)或路由器報告差錯情況和提供有關(guān)異常情況的報告。

          數(shù)據(jù)的封裝過程

            圖4 數(shù)據(jù)的封裝過程

            系統(tǒng)需要傳輸?shù)臄?shù)據(jù)通過在每個協(xié)議層添加頭部信息,最后封裝成為以太網(wǎng)數(shù)據(jù)包,在物理網(wǎng)絡(luò)上進(jìn)行傳輸,數(shù)據(jù)的封裝過程如圖4所示。

            結(jié)論

            對于工業(yè)控制領(lǐng)域,嵌入式Internet設(shè)備將測控網(wǎng)與Internet互連,由此實(shí)現(xiàn)測控網(wǎng)和信息網(wǎng)的統(tǒng)一。在這樣構(gòu)成的網(wǎng)絡(luò)中,傳統(tǒng)儀器設(shè)備充當(dāng)著網(wǎng)絡(luò)中獨(dú)立節(jié)點(diǎn)的角色,信息可跨越網(wǎng)絡(luò)傳輸至所及的任何領(lǐng)域,實(shí)時、動態(tài)(包括遠(yuǎn)程)的在線測控成為現(xiàn)實(shí)。


          上一頁 1 2 下一頁

          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();