成年人在线观看视频免费,国产第2页,人人狠狠综合久久亚洲婷婷,精品伊人久久

我要投稿 投訴建議

物聯(lián)網(wǎng)的畢業(yè)論文

時(shí)間:2020-12-28 11:59:03 畢業(yè)論文范文 我要投稿

精選物聯(lián)網(wǎng)的畢業(yè)論文范文

  基于單片機(jī)的嵌入式以太網(wǎng)控制終端設(shè)計(jì) 摘要:基于單片機(jī)技術(shù)的以太網(wǎng)終端廣泛應(yīng)用在各個(gè)領(lǐng)域,本文基于建榮AX2005+PHY的解決方案,實(shí)現(xiàn)ARP請(qǐng)求,以及ping命令。同時(shí),本文詳細(xì)介紹以太網(wǎng)接口的硬件設(shè)計(jì)和通信電路的抗干擾設(shè)計(jì)。覆蓋單片機(jī)技術(shù),通信技術(shù),計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)等多個(gè)知識(shí)領(lǐng)域。

精選物聯(lián)網(wǎng)的畢業(yè)論文范文

  關(guān)鍵詞:以太網(wǎng)協(xié)議; 信道編碼; TCP/IP協(xié)議; 單片機(jī);

  一,概述:隨著單片機(jī)技術(shù)和嵌入式技術(shù)的廣泛應(yīng)用,以及通信技術(shù)的發(fā)展和計(jì)算機(jī)網(wǎng)絡(luò)的普及,人們提出了對(duì)基于嵌入式系統(tǒng)的網(wǎng)絡(luò)通信技術(shù)的應(yīng)用需求。嵌入式網(wǎng)絡(luò)通信系統(tǒng)將過去單一獨(dú)立的嵌入式系統(tǒng)組成一個(gè)網(wǎng)絡(luò)系統(tǒng),使得嵌入式系統(tǒng)不再是一個(gè)獨(dú)立的個(gè)體,而是一個(gè)整體信息化網(wǎng)絡(luò)的一個(gè)部分。該技術(shù)廣泛應(yīng)用在智能設(shè)備,信息化家電,智能管理設(shè)備,安防監(jiān)控設(shè)備等領(lǐng)域。

  嵌入式網(wǎng)絡(luò)系統(tǒng)具有以下特點(diǎn):1,基于單片機(jī)系統(tǒng)。2,系統(tǒng)之間存在數(shù)據(jù)通訊。在嵌入式網(wǎng)絡(luò)系統(tǒng)的實(shí)現(xiàn)方案中,有基于RS232/RS485總線協(xié)議,CAN總線協(xié)議,以太網(wǎng)協(xié)議,USB總線協(xié)議等多種方式。其中基于以太網(wǎng)協(xié)議的實(shí)現(xiàn)方案中,具有成本低,安裝方便,通訊距離遠(yuǎn),兼容性好和平臺(tái)移植方便等多種優(yōu)勢(shì)。該技術(shù)廣泛應(yīng)用在以下領(lǐng)域。 1,實(shí)驗(yàn)室管理監(jiān)控系統(tǒng)

  某生化實(shí)驗(yàn)室需要建立一個(gè)實(shí)時(shí)監(jiān)控系統(tǒng),檢測(cè)實(shí)驗(yàn)室人員出入,實(shí)驗(yàn)結(jié)果數(shù)據(jù),實(shí)驗(yàn)室溫度濕度。該實(shí)驗(yàn)室的儀器設(shè)備都有RS232接口輸出打印,可以輸出到單片機(jī)。門禁和各種傳感器也接入單片機(jī)系統(tǒng)。這時(shí)候單片機(jī)可以通過以太網(wǎng)把數(shù)據(jù)提交到實(shí)驗(yàn)室的服務(wù)器上,服務(wù)器通過處理提交的數(shù)據(jù),將控制命令通過以太網(wǎng)發(fā)給單片機(jī),單片機(jī)再進(jìn)行相應(yīng)的操作。

  2,智能家居系統(tǒng)

  現(xiàn)代家居系統(tǒng)中,由于需要寬帶接入,基本上所有住戶都有局域網(wǎng)接入。在住戶內(nèi) 部搭建局域網(wǎng)也很方便。鑒于以上情況,利用以太網(wǎng)實(shí)現(xiàn)智能家居網(wǎng)絡(luò)能夠?qū)崿F(xiàn)。

  住房?jī)?nèi)的家電和各種設(shè)施,可以接入內(nèi)部以太網(wǎng)實(shí)現(xiàn)相互通信,或者與上位機(jī)實(shí)現(xiàn)通信。上位機(jī)可以被用戶遠(yuǎn)程控制,對(duì)居室的家電和設(shè)施進(jìn)行控制,達(dá)到對(duì)居室的溫度,光亮的調(diào)節(jié),同時(shí)可以利用下位機(jī)(單片機(jī))將室內(nèi)監(jiān)控系統(tǒng)的狀況傳到上位機(jī),上位機(jī)通過分析可以向主人或者相關(guān)部門報(bào)告火警或者匪警。

  3,信息化家電

  傳統(tǒng)家電是一個(gè)獨(dú)立存在的系統(tǒng),電器與電器之間沒有絲毫聯(lián)系。在信息化家電系統(tǒng)中,所有信息化家電組成一個(gè)局域網(wǎng)絡(luò)系統(tǒng),家電屬于該系統(tǒng)中一個(gè)部分。信息化家電系統(tǒng)中,比如電飯鍋,可以通過網(wǎng)絡(luò)遠(yuǎn)程控制。假如用戶需要下班回家就能吃上飯,可以在下班前通過遠(yuǎn)程控制協(xié)議給電飯鍋發(fā)出指令,保證下班回家時(shí)飯剛好煮好。

  二,實(shí)現(xiàn)方案理論設(shè)計(jì)

  1,網(wǎng)絡(luò)協(xié)議簡(jiǎn)介

  四層以太網(wǎng)協(xié)議

  網(wǎng)絡(luò)協(xié)議通常分不同層次進(jìn)行開發(fā),每一層分別負(fù)責(zé)不同的通信功能。一個(gè)協(xié)議族,比如TCP/IP,是一組不同層次上的多個(gè)協(xié)議的組合。TCP/IP通常被認(rèn)為是一個(gè)四層協(xié)議系統(tǒng),如圖可以看出這個(gè)四層協(xié)議的構(gòu)架。

  圖1-1 TCP/IP協(xié)議族的四個(gè)層每一層負(fù)責(zé)不同的功能:

  鏈路層:有時(shí)也稱作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié)。

  網(wǎng)絡(luò)層:有時(shí)也稱作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動(dòng),例如分組的選路。在TCP/I協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括I協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(Interne互聯(lián)網(wǎng)控制報(bào)文協(xié)議),以及IGM協(xié)議(Internet組管理協(xié)議)。

  運(yùn)輸層:主要為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信。在T C P / I P協(xié)議族中,有兩個(gè)互不相同的傳輸協(xié)議: TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。

  TCP為兩臺(tái)主機(jī)提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認(rèn)接收到的分組,設(shè)置發(fā)送最后確認(rèn)分組的超時(shí)時(shí)鐘等。由于運(yùn)輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細(xì)節(jié)。 而另一方面, UDP則為應(yīng)用層提供一種非常簡(jiǎn)單的服務(wù)。它只是把稱作數(shù)據(jù)報(bào)的分組 從一臺(tái)主機(jī)發(fā)送到另一臺(tái)主機(jī),但并不保證該數(shù)據(jù)報(bào)能到達(dá)另一端。任何必需的可靠 性必須由應(yīng)用層來(lái)提供。

  這兩種運(yùn)輸層協(xié)議分別在不同的應(yīng)用程序中有不同的用途,這一點(diǎn)將在后面看到。 應(yīng)用層:負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。幾乎各種不同的TCP/IP實(shí)現(xiàn)都會(huì)提供下面這些通用的應(yīng)用程序:

  Telnet 遠(yuǎn)程登錄。

  FTP 文件傳輸協(xié)議。

  SMTP 簡(jiǎn)單郵件傳送協(xié)議。

  SNMP 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議。

  假設(shè)我們以FTP服務(wù)的工作為例,4層協(xié)議的工作原理如圖

  OSI七層協(xié)議

  物理層 : OSI模型的最低層或第一層,該層包括物理連網(wǎng)媒介,如電纜連線連接器。物理層的協(xié)議產(chǎn)生并檢測(cè)電壓以便發(fā)送和接收攜帶數(shù)據(jù)的信號(hào)。在你的桌面P C 上插入網(wǎng)絡(luò)接口卡,你就建立了計(jì)算機(jī)連網(wǎng)的基礎(chǔ)。換言之,你提供了一個(gè)物理層。盡管物理層不提供糾錯(cuò)服務(wù),但它能夠設(shè)定數(shù)據(jù)傳輸速率并監(jiān)測(cè)數(shù)據(jù)出錯(cuò)率。網(wǎng)絡(luò)物理問題,如電線斷開,將影響物理層。

  數(shù)據(jù)鏈路層:OSI模型的第二層,它控制網(wǎng)絡(luò)層與物理層之間的通信。它的主要功能是如何在不可靠的物理線路上進(jìn)行數(shù)據(jù)的可靠傳遞。為了保證傳輸,從網(wǎng)絡(luò)層接收到的數(shù)據(jù)被分割成特定的可被物理層傳輸?shù)膸。幀是用?lái)移動(dòng)數(shù)據(jù)的結(jié)構(gòu)包,它不僅包括原始數(shù)據(jù),還包括發(fā)送方和接收方的網(wǎng)絡(luò)地址以及糾錯(cuò)和控制信息。其中的地址確定了幀將發(fā)送到何處,而糾錯(cuò)和控制信息則確保幀無(wú)差錯(cuò)到達(dá)。數(shù)據(jù)鏈路層的功能獨(dú)立于網(wǎng)絡(luò)和它的節(jié)點(diǎn)和所采用 2007 AppoTech Limited. All rights reserved DS2005 v100 2

  的物理層類型,它也不關(guān)心是否正在運(yùn)行 Word、Excel或使用Internet 。有一些連接設(shè)備,如交換機(jī),由于它們要對(duì)幀解碼并使用幀信息將數(shù)據(jù)發(fā)送到正確的接收方,所以它們是工作在數(shù)據(jù)鏈路層的。

  網(wǎng)絡(luò)層:OSI模型的第三層,其主要功能是將網(wǎng)絡(luò)地址翻譯成對(duì)應(yīng)的物理地址,并決定如何將數(shù)據(jù)從發(fā)送方路由到接收方。

  網(wǎng)絡(luò)層通過綜合考慮發(fā)送優(yōu)先權(quán)、網(wǎng)絡(luò)擁塞程度、服務(wù)質(zhì)量以及可選路由的花費(fèi)來(lái)決定從一個(gè)網(wǎng)絡(luò)中節(jié)點(diǎn)A 到另一個(gè)網(wǎng)絡(luò)中節(jié)點(diǎn)B 的最佳路徑。由于網(wǎng)絡(luò)層處理路由,而路由器因?yàn)榧催B接網(wǎng)絡(luò)各段,并智能指導(dǎo)數(shù)據(jù)傳送,屬于網(wǎng)絡(luò)層。在網(wǎng)絡(luò)中,“路由”是基于編址方案、使用模式以及可達(dá)性來(lái)指引數(shù)據(jù)的發(fā)送。

  傳輸層:OSI模型中最重要的一層。傳輸協(xié)議同時(shí)進(jìn)行流量控制或是基于接收方可接收數(shù)據(jù)的快慢程度規(guī)定適當(dāng)?shù)陌l(fā)送速率。除此之外,傳輸層按照網(wǎng)絡(luò)能處理的最大尺寸將較長(zhǎng)的數(shù)據(jù)包進(jìn)行強(qiáng)制分割。例如,以太網(wǎng)無(wú)法接收大于1500字節(jié)的數(shù)據(jù)包。發(fā)送方節(jié)點(diǎn)的傳輸層將數(shù)據(jù)分割成較小的數(shù)據(jù)片,同時(shí)對(duì)每一數(shù)據(jù)片安排一序列號(hào),以便數(shù)據(jù)到達(dá)接收方節(jié)點(diǎn)的傳輸層時(shí),能以正確的順序重組。該過程即被稱為排序。

  工作在傳輸層的一種服務(wù)是 TCP/IP協(xié)議套中的TCP(傳輸控制協(xié)議),另一項(xiàng)傳輸層服務(wù)是IPX/SPX協(xié)議集的SPX(序列包交換)。

  會(huì)話層:負(fù)責(zé)在網(wǎng)絡(luò)中的兩節(jié)點(diǎn)之間建立和維持通信。 會(huì)話層的功能包括:建立通信鏈接,保持會(huì)話過程通信鏈接的暢通,同步兩個(gè)節(jié)點(diǎn)之間的對(duì) 話,決定通信是否被中斷以及通信中斷時(shí)決定從何處重新發(fā)送。

  你可能常常聽到有人把會(huì)話層稱作網(wǎng)絡(luò)通信的“交通警察”。當(dāng)通過撥號(hào)向你的ISP(因特網(wǎng)服務(wù)提供商)請(qǐng)求連接到因特網(wǎng)時(shí),ISP服務(wù)器上的會(huì)話層向你與你的PC客戶機(jī)上的會(huì)話層進(jìn)行協(xié)商連接。若你的電話線偶然從墻上插孔脫落時(shí),你終端機(jī)上的會(huì)話層將檢測(cè)到連接中斷并重新發(fā)起連接。會(huì)話層通過決定節(jié)點(diǎn)通信的優(yōu)先級(jí)和通信時(shí)間的長(zhǎng)短來(lái)設(shè)置通信期限

  表示層:應(yīng)用程序和網(wǎng)絡(luò)之間的翻譯官,在表示層,數(shù)據(jù)將按照網(wǎng)絡(luò)能理解的方案進(jìn)行格式化;這種格式化也因所使用網(wǎng)絡(luò)的類型不同而不同。

  表示層管理數(shù)據(jù)的解密與加密,如系統(tǒng)口令的處理。例如:在 Internet上查詢你銀行賬戶,使用的即是一種安全連接。你的賬戶數(shù)據(jù)在發(fā)送前被加密,在網(wǎng)絡(luò)的另一端,表示層將對(duì)接收到的數(shù)據(jù)解密。除此之外,表示層協(xié)議還對(duì)圖片和文件格式信息進(jìn)行解碼和編碼。 應(yīng)用層:負(fù)責(zé)對(duì)軟件提供接口以使程序能使用網(wǎng)絡(luò)服務(wù)。術(shù)語(yǔ)“應(yīng)用層”并不是指運(yùn)行在網(wǎng)絡(luò)上的某個(gè)特別應(yīng)用程序 ,應(yīng)用層提供的服務(wù)包括文件傳輸、文件管理以及電子郵件的信息處理。

  兩種協(xié)議對(duì)應(yīng)關(guān)系

  我們可以看到,以太網(wǎng)網(wǎng)協(xié)議屬于OSI協(xié)議中的部分,其中OSI協(xié)議最重要的就是多了物理層,它是以太網(wǎng)設(shè)備通信的信道部分。鏈路層負(fù)責(zé)提供通信的時(shí)須,而以太網(wǎng)信號(hào)在信道中的傳遞全靠物理層。

  2,常用實(shí)現(xiàn)方案選型

  嵌入式以太網(wǎng)終端實(shí)現(xiàn)方案有多種,但其共同點(diǎn)都是單片機(jī)+網(wǎng)絡(luò)芯片。主要是兩種方案:?jiǎn)纹瑱C(jī)+MAC和單片機(jī)+PHY。

  MAC是Media Access Control 的縮寫,即媒體訪問控制子層協(xié)議。該協(xié)議位于OSI七層協(xié)議中數(shù)據(jù)鏈路層的下半部分,主要負(fù)責(zé)控制與連接物理層的物理介質(zhì)。在發(fā)送數(shù)據(jù)的時(shí)候,MAC協(xié)議可以事先判斷是否可以發(fā)送數(shù)據(jù),如果可以發(fā)送將給數(shù)據(jù)加上一些控制信息,最終將數(shù)據(jù)以及控制信息以規(guī)定的格式發(fā)送到物理層;在接收數(shù)據(jù)的時(shí)候,MAC協(xié)議首先判斷輸入的信息并是否發(fā)生傳輸錯(cuò)誤,如果沒有錯(cuò)誤,則去掉控制信息發(fā)送至LLC層。以太網(wǎng)MAC由IEEE-802.3以太網(wǎng)標(biāo)準(zhǔn)定義。

  PHY是位于OSI七層協(xié)議中的物理層,PHY在發(fā)送數(shù)據(jù)的時(shí)候,收到MAC過來(lái)的.數(shù)據(jù)(對(duì)PHY來(lái)說(shuō),沒有幀的概念,對(duì)它來(lái)說(shuō),都是數(shù)據(jù)而不管什么地址,數(shù)據(jù)還是CRC),每4bit就增加1bit的檢錯(cuò)碼,然后把并行數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù),再按照物理層的編碼規(guī)則把數(shù)據(jù)編碼,再變?yōu)槟M信號(hào)把數(shù)據(jù)送出去。收數(shù)據(jù)時(shí)的流程反之。

  2007 AppoTech Limited. All rights reserved DS2005 v100 3

  單片機(jī)+MAC典型方案為單片機(jī)+RTL8019的方案。

  RTL8019AS 是高度集成以太網(wǎng)控制器,它能夠簡(jiǎn)單的解答即插即用NE2000兼容適配器,這種適配器具有二重和功率下降特性。通過三電平控制特性,RTL8019AS 是已制的對(duì)網(wǎng)絡(luò)設(shè)備GREEN PC 理想的選擇。全二重功能能夠模擬傳播和接收在雙絞線到全二重以太網(wǎng)交換機(jī)。這個(gè)特性不僅強(qiáng)帶寬從10 到20MBPS,而且避免了由于以太網(wǎng)頻道爭(zhēng)奪特性導(dǎo)致的讀出多路存取協(xié)議的問題。微軟公司的即插即用功能能減輕用戶較差的營(yíng)業(yè)收入而注意適配器資源,如IRQ,輸入輸出,和存儲(chǔ)器地址等等。然而,為了特殊的應(yīng)用而得不到即插即用功能的兼容性,RTL8019AS 支持JUMPER 和JUMPERLESS 選項(xiàng)。

  為了提供完全解決即插即用方案,RTL8019AS 在集成10BASET 收發(fā)器,BNC,和AUI 接口之間的自動(dòng)檢測(cè)功能。此外,8 條IRQ 總線和16 條基本地址總線為大資源情況下提供了寬松的環(huán)境。

  RTL8019AS 支持16k,32k,和64k 字節(jié)BROM 和閃存接口。它仍然提供頁(yè)面模式功能,這種功能能支持在僅16k 字節(jié)內(nèi)存系統(tǒng)空間下的4M 字節(jié)的BROM.此外,BROM 的無(wú)用命令被用來(lái)釋放BROM 內(nèi)存空間。RTL8019AS 用16k 字節(jié)SRAM 設(shè)計(jì)在單片芯片上,它的設(shè)計(jì)不僅提供了更多友好的功能,而且節(jié)省了SRAM 存儲(chǔ)資源。

  單片機(jī)+PHY典型方案為單片機(jī)+RTL8201,RTL8201具有成本低,速度快(支持100M bps)等優(yōu)點(diǎn)。

  RTL8201BL是一個(gè)單端口的物理層收發(fā)器,它只有一個(gè)MII/SNI(媒體獨(dú)立接口/串行網(wǎng)絡(luò)接口)接口。它實(shí)現(xiàn)了全部的10/100M以太網(wǎng)物理層功能,包括物理層編碼子層(PCS),物理層介質(zhì)連接設(shè)備(PMA),雙絞線物理媒介相關(guān)子層(TP-PMD),10Base-Tx編解碼和雙絞線媒介訪問單元(TPMAU)。 PECL接口支持連接一個(gè)外部的100Base-FX光纖收發(fā)器。這款芯片使用先進(jìn)的CMOS工藝制作以滿足低壓低功耗的需求。 RTL8201BL可以在NIC,MAU,CNR,ACR,以太網(wǎng)HUB,或以太網(wǎng)交換機(jī)中使用。另外,它也可以用于任何有以太網(wǎng)MAC并且需要一個(gè)物理上的雙絞線連接或一個(gè)光纖PECL接口以連接一個(gè)外部的100base-FX 光纖收發(fā)器模塊的嵌入式系統(tǒng)。

  MII接口

  MII即媒體獨(dú)立接口,它是IEEE-802.3定義的以太網(wǎng)行業(yè)標(biāo)準(zhǔn)。它包括一個(gè)數(shù)據(jù)接口,以及一個(gè)MAC和PHY之間的管理接口。數(shù)據(jù)接口包 括分別用于發(fā)送器和接收器的兩條獨(dú)立信道。每條信道都有自己的數(shù)據(jù)、時(shí)鐘和控制信號(hào)。MII數(shù)據(jù)接口總共需要16個(gè)信號(hào)。管理接口是個(gè)雙信號(hào)接口:一個(gè)是 時(shí)鐘信號(hào),另一個(gè)是數(shù)據(jù)信號(hào)。通過管理接口,上層能監(jiān)視和控制PHY。MII Management interface只有兩條信號(hào)線。The configuration and status data is written/read to/from the PHY via the MDIO signal.

  MII標(biāo)準(zhǔn)接口 用于連快Fast Ethernet MAC-block與PHY!敖橘|(zhì)無(wú)關(guān)”表明在不對(duì)MAC硬件重新設(shè)計(jì)或替換的情況下,任何類型的PHY設(shè)備都可以正常工作。在其他速率下工作的與 MII等效的接口有:AUI(10M 以太網(wǎng))、GMII(Gigabit 以太網(wǎng))和XAUI(10-Gigabit 以太網(wǎng))。

  我們使用了珠海建榮集成(Appotech)的AX2005單片機(jī)+RTL8201的方案。

  AX2005是一種國(guó)產(chǎn)的基于8051內(nèi)核的OTP單片機(jī),具有兩個(gè)DPTR地址指針,內(nèi)部集成了部分?jǐn)U展SRAM,程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器地址可以交叉訪問。該單片機(jī)大多數(shù)指令都在一個(gè)時(shí)鐘周期內(nèi)完成,并且集成了DSP MAC(乘加器),可用于數(shù)字信號(hào)處理。

  AX2005具有GPSI接口,可以工作在MII兼容模式下,實(shí)現(xiàn)以太網(wǎng)MAC功能,并且工作于DMA模式。單片機(jī)性能可以達(dá)到100MIPS,集成32KB SRAM,并帶有硬件CRC模塊,可方便的用于以太網(wǎng)數(shù)據(jù)封裝的處理。所以該單片機(jī)非常適合用于以太網(wǎng)終端的應(yīng)用。

  2007 AppoTech Limited. All rights reserved DS2005 v100 4

  AX2005 High Performance 8-bit RISC Microcontroller

  High Performance 8-bit RISC MCU DC-125MHz operation Compatible with 8051

  40ns internal interrupt response at 125 MIPS All instructions are single-cycled except

  branching instructions

  Two data pointers for indirect addressing

  Program Memory and Data Memory 32K Bytes OTP program memory

  64K Bytes instruction SRAM used for

  program and/or data memory 256 Bytes internal data SRAM

  64K Bytes External Memory Interface (EMI),

  support DMA to on-chip SRAM

  Interrupt Features

  26 vectored interrupts 3 levels interrupt priority

  External wakeup/interrupt capabilities on

  Port 1

  2 levels interrupt priority selection for all the

  hardware interrupt sources except Watchdog and LVD where they occupy the third level Flexible I/O

  60 GPIO pins in 7 and a half ports.

  All GPIO pins can be individually

  programmable as input or output

  All GPIO pins are internally pull-up selectable CMOS/TTL-level Schmitt triggered inputs All GPIO pins are 8mA sink/source current

  output driving

  Digital Peripheral Features

  Two 16-bit timers compatible with 8051’s

  timer0 timer1

  Two multi-function 16-bit timers, support

  Capture and PWM mode

  Two 8-bit timers, support Capture mode.

  Watchdog Timer with on-chip 1MHz RC

  oscillator

  Two high-speed full-duplex UART Two high-speed SPI, support DMA 1 GPSI interface, support DMA

  Two 4-channel IIS interfaces, support DMA 1 programmable linear feedback shift

  registers

  1 CRC(循環(huán)冗余校驗(yàn)) FIFO, can use for CRC16

  and CRC32 calculating 1 ECC(錯(cuò)誤校驗(yàn)糾正) FIFO

  1 16-bit/24-bit DSP engine, support DMA. 1 Bit-fetcher, can use for bit stream analyzing Full-speed USB 2.0 OTG(on the go) controller

  with 4 endpoints (including endpoint 0) and 512 bytes FIFO totally.

  Analog Peripheral Features 4~20MHz Crystal Oscillator 1MHz RC oscillator

  Full-speed USB 2.0 OTG PHY

  40~200MHz Flexible PLL-based clock

  generator

  2 channels 16bit Class-D DAC

  1 channel 8 levels Low Voltage Detector Power-on reset

  3.3V to 1.8V Low Drop-Out regulator

  Programming and Debugging Support In-System Programming (ISP) support In-System Debugging (ISD) support

  Power Supply

  LDOVDD, VDDIO, PLLVDD is 3.0-3.6V VDDCORE is 1.6-2.0V

  Packages

  80-pin LQFP (10mm x 10mm) 64-pin LQFP (10mm x 10mm) 48-pin LQFP (7mm x 7mm) DIE for

  2007 AppoTech Limited. All rights reserved DS2005 v100

  3,系統(tǒng)設(shè)計(jì)與系統(tǒng)框圖

  在基于AX2005單片機(jī)的以太網(wǎng)控制終端的方案中,以AX2005單片機(jī)為控制核心,單片機(jī)負(fù)責(zé)以下工作:

  硬件系統(tǒng)部分的設(shè)計(jì)

  1,在單片機(jī)內(nèi)部開辟兩個(gè)儲(chǔ)存空間,分別用于發(fā)送和接受數(shù)據(jù)流。以太網(wǎng)封裝格式中,是按照6字節(jié)目的硬件地址,6字節(jié)源地址,2字節(jié)類型,46~1500字節(jié)的數(shù)據(jù),4字節(jié)的CRC校驗(yàn)碼組成。應(yīng)此,每個(gè)空間大小應(yīng)該設(shè)置為1518字節(jié)。單片機(jī)訪問這兩個(gè)空間,發(fā)送數(shù)據(jù)時(shí),將相應(yīng)協(xié)議的報(bào)頭和報(bào)文填入對(duì)應(yīng)的位置,再將空間內(nèi)的整個(gè)數(shù)據(jù)發(fā)送出去;接受數(shù)據(jù)時(shí),單片機(jī)訪問相應(yīng)協(xié)議的報(bào)頭位置,判斷收到數(shù)據(jù)報(bào)的類型,再處理相應(yīng)的報(bào)文。

  圖2-1

  2,單片機(jī)利用MII接口與PHY連接,MAC協(xié)議由單片機(jī)提供。單片機(jī)內(nèi)部產(chǎn)生MAC地址。以太網(wǎng)通信最終實(shí)質(zhì)是以太網(wǎng)設(shè)備訪問對(duì)方的48位MAC地址。建榮的AX2005單片機(jī)沒有專門的符合IEEE802.3標(biāo)準(zhǔn)的MII接口,而是GPSI(通用串行接口)工作在MII模式下。由于AX2005的MII/GPSI接口支持DMA工作模式,并內(nèi)部集成有32KB SRAM,可以直接被MII接口控制器讀寫。因此,在該方案中使用DMA模式,MCU只往緩沖區(qū)中讀寫數(shù)據(jù),MII控制器會(huì)自動(dòng)通過DMA將緩沖區(qū)的數(shù)據(jù)發(fā)到以太網(wǎng),或者將以太網(wǎng)的數(shù)據(jù)收到緩沖區(qū)中,供CPU處理。

  3,單片機(jī)利用UART接口,通過RS23轉(zhuǎn)換器,在單片機(jī)收到以太網(wǎng)數(shù)據(jù)包時(shí),通過串口,將收到的數(shù)據(jù)打印到顯示屏上;蛘咄ㄟ^串口將數(shù)據(jù)發(fā)到單片機(jī),再轉(zhuǎn)發(fā)到以太網(wǎng)。

  6

  圖2-2 IEEE-802.3規(guī)范的以太網(wǎng)接口相關(guān)介紹

  ETHERNET的接口實(shí)質(zhì)是MAC通過MII總線控制PHY的過程。

  MAC是Media Access Control 的縮寫,即媒體訪問控制子層協(xié)議。該協(xié)議位于OSI七層協(xié)議中數(shù)據(jù)鏈路層的下半部分,主要負(fù)責(zé)控制與連接物理層的物理介質(zhì)。在發(fā)送數(shù)據(jù)的時(shí)候,MAC協(xié)議可以事先判斷是否可以發(fā)送數(shù)據(jù),如果可以發(fā)送將給數(shù)據(jù)加上一些控制信息,最終將數(shù)據(jù)以及控制信息以規(guī)定的格式發(fā)送到物理層;在接收數(shù)據(jù)的時(shí)候,MAC協(xié)議首先判斷輸入的信息并是否發(fā)生傳輸錯(cuò)誤,如果沒有錯(cuò)誤,則去掉控制信息發(fā)送至LLC層。以太網(wǎng)MAC由IEEE-802.3以太網(wǎng)標(biāo)準(zhǔn)定義。

  MII(Media Independent Interface)即媒體獨(dú)立接口, “媒體獨(dú)立”表明在不對(duì)MAC硬件重新設(shè)計(jì)或替換的情況下,任何類型的PHY設(shè)備都可以正常工作。包括分別用于發(fā)送器和接收器的兩條獨(dú)立信道。每條信道都有自己的數(shù)據(jù)、時(shí)鐘和控制信號(hào)。MII數(shù)據(jù)接口總共需要16個(gè)信號(hào),包括TX_ER,TXD<3:0>,TX_EN,TX_CLK,COL,RXD<3:0>,RX_EX,RX_CLK,CRS,RX_DV等。

  MII以4位半字節(jié)方式傳送數(shù)據(jù)雙向傳輸,時(shí)鐘速率25MHz。其工作速率可達(dá)100Mb/s。MII管理接口是個(gè)雙信號(hào)接口,一個(gè)是時(shí)鐘信號(hào),另一個(gè)是數(shù)據(jù)信號(hào)。通過管理接口,上層能監(jiān)視和控制PHY。其管理是使用SMI(Serial Management Interface)總線通過讀寫PHY的寄存器來(lái)完成的。PHY里面的部分寄存器是IEEE定義的,這樣PHY把自己的目前的狀態(tài)反映到寄存器里面,MAC通過SMI總線不斷的讀取PHY的狀態(tài)寄存器以得知目前PHY的狀態(tài),例如連接速度,雙工的能力等。當(dāng)然也可以通過SMI設(shè)置PHY的寄存器達(dá)到控制的目的,例如流控的打開關(guān)閉,自協(xié)商模式還是強(qiáng)制模式等。不論是物理連接的MII總線和SMI總線還是PHY的狀態(tài)寄存器和控制寄存器都是有IEEE的規(guī)范的,因此不同公司的MAC和PHY一樣可以協(xié)調(diào)工作。當(dāng)然為了配合不同公司的PHY的自己特有的一些功能,驅(qū)動(dòng)需要做相應(yīng)的修改。

  IEEE802.3標(biāo)準(zhǔn)定義的以太網(wǎng)工作方式如下:IEEE802.3中定義的介質(zhì)獨(dú)立接口(MII)主要用來(lái)連接介質(zhì)訪問控制子層(MAC)和物理層(PHY),目的是使不同的物理層能夠使用統(tǒng)一的接口連到MAC層,即物理層對(duì)MAC層是透明的。該接口可用于直接連接MAC與PHY芯片,也可連接分別裝有MAC和PHY的兩塊印制板,此外,還可以通過一段電纜連接裝有MAC和PHY的設(shè)備。這一接口支持10Mbps和100Mbps兩種速率,而且兩種速率實(shí)現(xiàn)的功能相同,其區(qū)別只是工作頻率不一樣。介質(zhì)獨(dú)立接口由18根信號(hào)線組成,其中發(fā)送方向7根(TXD<3:0>、TX EN、TX CLK、TX ER),接收方向7根(RXD<3:0>、RX DV、RX CLK、RX ER),此外,還有載波偵聽(CRS)、沖突檢測(cè)(COL)和串行管理通道(MDC、MDIO)信號(hào)。發(fā)送時(shí)鐘(TX CLK)和接收時(shí)鐘(RX CLK)一般由PHY提供(本文還將提出一種由另一端MAC或外界提供標(biāo)準(zhǔn)時(shí)鐘的設(shè)計(jì)方案),根據(jù)數(shù)據(jù)率10Mpbs/100Mbps選擇2.5MHz或25MHz時(shí)鐘,且不論有無(wú)有效數(shù)據(jù)收發(fā),時(shí)鐘一直被正常提供。在發(fā)送方向,當(dāng)介質(zhì)訪問控制子層有數(shù)據(jù)要發(fā)送時(shí),在某個(gè)發(fā)送時(shí)鐘上升沿應(yīng)將發(fā)送使能信號(hào)(TX EN)置為高電平,同時(shí)發(fā)送待發(fā)數(shù)據(jù)(TXD<3:0>)的前同步碼,直到數(shù)據(jù)發(fā)送完畢,發(fā)送使能信號(hào)被置為低電平為止。而在接收方向,一旦MAC控制器檢測(cè)出接收數(shù)據(jù)有效信號(hào)(由PHY發(fā)出)為高電平,系統(tǒng)將在接下來(lái)的每個(gè)接收時(shí)鐘上升沿采集接收數(shù)據(jù)(RXD<3:0>),直到接收數(shù)據(jù)有效

  信號(hào)位被置為低電平為止。在半雙工模式下,PHY將根據(jù)物理鏈路狀況輸出載波偵聽(CRS)和沖突檢測(cè)(COL)信號(hào),這兩種信號(hào)都不必與時(shí)鐘同步。

  4,網(wǎng)絡(luò)協(xié)議設(shè)計(jì)詳解

  在該以太網(wǎng)控制終端設(shè)計(jì)中由于只需要實(shí)現(xiàn)ping功能,參考《TCP/IP詳解 卷1:協(xié)議》,該方案中需要實(shí)現(xiàn)ARP地址解析協(xié)議,IP協(xié)議,ICMP協(xié)議,并實(shí)現(xiàn)UDP和TCP協(xié)議。

  1)以太網(wǎng)首部:

  以太網(wǎng)首部長(zhǎng)度14字節(jié),是由6字節(jié)的目的地址,6字節(jié)源地址,2字節(jié)類型構(gòu)成。6字節(jié)以太網(wǎng)首部地址又叫MAC地址,MAC地址具有唯一性,每個(gè)以太網(wǎng)設(shè)備都有自己的MAC地址。以太網(wǎng)設(shè)備相互通信時(shí),硬件尋址對(duì)方的MAC地址。由于以太網(wǎng)中每個(gè)設(shè)備的MAC地址都是唯一的,所以只要確定一個(gè)目標(biāo)地址就能確定一個(gè)唯一的設(shè)備。在廣播模式下,目標(biāo)地址為全部為0XFF。以太網(wǎng)數(shù)據(jù)包類型標(biāo)志為2字節(jié),其中IP包為0x0800,ARP包為0x0806。以太網(wǎng)數(shù)據(jù)包最后有一個(gè)4字節(jié)的CRC校驗(yàn)包,確保數(shù)據(jù)在以太網(wǎng)傳輸中的正確性。一個(gè)以太網(wǎng)數(shù)據(jù)包最小長(zhǎng)度64字節(jié),最大長(zhǎng)度為1518字節(jié)。因此任何一個(gè)以太網(wǎng)數(shù)據(jù)包,不管是什么類型,必須滿足以太網(wǎng)數(shù)據(jù)包最小長(zhǎng)度。

  2)ARP地址解析協(xié)議:

  數(shù)據(jù)鏈路如以太網(wǎng)或令牌環(huán)網(wǎng)都有自己的尋址機(jī)制(常常為48 bit地址),這是使用數(shù)據(jù)鏈路的任何網(wǎng)絡(luò)層都必須遵從的。一個(gè)網(wǎng)絡(luò)如以太網(wǎng)可以同時(shí)被不同的網(wǎng)絡(luò)層使用。當(dāng)一臺(tái)主機(jī)把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺(tái)主機(jī)時(shí),是根據(jù)48 bit的以太網(wǎng)地址來(lái)確定目的接口的。設(shè)備驅(qū)動(dòng)程序從不檢查I P數(shù)據(jù)報(bào)中的目的I P地址。地址解析為這兩種不同的地址形式提供映射: 32 bit的I P地址和數(shù)據(jù)鏈路層使用的任何類型的地址。

  ARP的數(shù)據(jù)包格式如下,長(zhǎng)度為42字節(jié)。以太網(wǎng)首部14個(gè)字節(jié),源地址為本機(jī)的固定地址,是個(gè)唯一的值,供硬件尋址用;目標(biāo)地址在ARP請(qǐng)求中為廣播模式,即全部為0xff,當(dāng)從設(shè)備收到ARP請(qǐng)求后,回復(fù)ARP應(yīng)答,在ARP應(yīng)答中以太網(wǎng)目的地址為主機(jī)的以太網(wǎng)硬件地址,以太網(wǎng)源地址為本機(jī)以太網(wǎng)硬件地址;幀類型2字節(jié)長(zhǎng)度,在ARP包中為0x0806。ARP報(bào)文為28個(gè)字節(jié),硬件類型為2字節(jié),硬件類型字段表示硬件地址的類型,它的值為1即表示以太網(wǎng)地址。協(xié)議類型為2字節(jié),協(xié)議類型字段表示要映射的協(xié)議地址類型,它的值為0x0800即表示IP地址。它的值與包含IP數(shù)據(jù)報(bào)的以太網(wǎng)數(shù)據(jù)幀中的類型字段的值相同,這是有意設(shè)計(jì)的。接下來(lái)的兩個(gè)1字節(jié)的字段,硬件地址長(zhǎng)度和協(xié)議地址長(zhǎng)度分別指出硬件地址和協(xié)議地址的長(zhǎng)度,以字節(jié)為單位。對(duì)于以太網(wǎng)上IP地址的ARP請(qǐng)求或應(yīng)答來(lái)說(shuō),它們的值分別為6和4。操作字段指出四種操作類型,它們是ARP請(qǐng)求(值為1)、ARP應(yīng)答(值為2)、RA RP請(qǐng)求(值為3)和RARP應(yīng)答(值為4)。這個(gè)字段必需的,因?yàn)锳 R P請(qǐng)求和A R P應(yīng)答的幀類型字段值是相同的。 接下來(lái)的四個(gè)字段是發(fā)送端的硬件地址(在本例中是以太網(wǎng)地址)、發(fā)送端的協(xié)議地址(IP地址)、目的端的硬件地址和目的端的協(xié)議地址。注意,這里有一些重復(fù)信息:在以太網(wǎng)的數(shù)據(jù)幀報(bào)頭中和A R P請(qǐng)求數(shù)據(jù)幀中都有發(fā)送端的硬件地址。

  對(duì)于一個(gè)ARP請(qǐng)求來(lái)說(shuō),除目的端硬件地址外的所有其他的字段都有填充值。當(dāng)系統(tǒng)收到

  一份目的端為本機(jī)的ARP請(qǐng)求報(bào)文后,它就把硬件地址填進(jìn)去,然后用兩個(gè)目的端地址分別替換兩個(gè)發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去。

  由于在以太網(wǎng)協(xié)議中,以太網(wǎng)報(bào)文長(zhǎng)度在46~1500字節(jié),然后再跟4字節(jié)的CRC校驗(yàn),一個(gè)完整的以太網(wǎng)數(shù)據(jù)包最小長(zhǎng)度為64字節(jié)。所以一個(gè)ARP包長(zhǎng)度必須滿足以太網(wǎng)數(shù)據(jù)包最小長(zhǎng)度,必須要有18字節(jié)的填充,再跟4字節(jié)的CRC校驗(yàn)。

  3)IP網(wǎng)際協(xié)議:IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)報(bào)格式傳輸

  IP提供不可靠、無(wú)連接的數(shù)據(jù)報(bào)傳送服務(wù)。不可靠(unreliable)的意思是它不能保證IP數(shù)據(jù)報(bào)能成功地到達(dá)目的地。IP僅提供最好的傳輸服務(wù)。無(wú)連接(connectionless)這個(gè)術(shù)語(yǔ)的意思是IP并不維護(hù)任何關(guān)于后續(xù)數(shù)據(jù)報(bào)的狀態(tài)信息。每個(gè)數(shù)據(jù)報(bào)的處理是相互獨(dú)立的。這也說(shuō)明, IP數(shù)據(jù)報(bào)可以不按發(fā)送順序接收。

  IP數(shù)據(jù)報(bào)的格式如圖2-4所示。普通的IP首部長(zhǎng)為20個(gè)字節(jié),除非含有選項(xiàng)字段。

  協(xié)議版本號(hào)是4,因此IP有時(shí)也稱作IPv4,以后還有一種新的IPv6協(xié)議,在此不作介紹。 首部長(zhǎng)度指的是首部占32bit字的數(shù)目,包括任何選項(xiàng)。由于它是一個(gè)4比特字段,因此首部最長(zhǎng)為60個(gè)字節(jié)。普通IP數(shù)據(jù)報(bào)(沒有任何選擇項(xiàng))字段的值是5。

  服務(wù)類型(TOS)字段包括一個(gè)3 bit的優(yōu)先權(quán)子字段(現(xiàn)在已被忽略),4bit的TOS子字段和1bit未用位但必須置0。4 bit的TOS分別代表:最小時(shí)延、最大吞吐量、最高可靠性和最小費(fèi)用。4bit中只能置其中1bit。如果所有4bit均為0,那么就意味著是一般服務(wù)。服務(wù)類型參見(表2-1)。

  總長(zhǎng)度字段是指整個(gè)IP數(shù)據(jù)報(bào)的長(zhǎng)度,以字節(jié)為單位。利用首部長(zhǎng)度字段和總長(zhǎng)度字段,就可以知道IP數(shù)據(jù)報(bào)中數(shù)據(jù)內(nèi)容的起始位置和長(zhǎng)度。由于該字段長(zhǎng)16比特,所以IP數(shù)據(jù)報(bào)最長(zhǎng)可達(dá)65535字節(jié)。當(dāng)數(shù)據(jù)報(bào)被分片時(shí),該字段的值也隨著變化。盡管可以傳送一個(gè)長(zhǎng)達(dá)65535字節(jié)的IP數(shù)據(jù)報(bào),但是大多數(shù)的鏈路層都會(huì)對(duì)它進(jìn)行分片。而且,主機(jī)也要求不能接收超過576字節(jié)的數(shù)據(jù)報(bào)。由于TCP把用戶數(shù)據(jù)分成若干片,因此一般來(lái)說(shuō)這個(gè)限制不會(huì)影響TCP。總長(zhǎng)度字段是IP首部中必要的內(nèi)容,因?yàn)橐恍⿺?shù)據(jù)鏈路(如以太網(wǎng))需要填充一些數(shù)據(jù)以達(dá)到最小長(zhǎng)度。盡管以太網(wǎng)的最小幀長(zhǎng)為46字節(jié)(見圖2-2),但是IP數(shù)據(jù)可能會(huì)更短。如果沒有總長(zhǎng)度字段,那么IP層就不知道46字節(jié)中有多少是IP數(shù)據(jù)報(bào)的內(nèi)容。

  標(biāo)識(shí)字段唯一地標(biāo)識(shí)主機(jī)發(fā)送的每一份數(shù)據(jù)報(bào)。通常每發(fā)送一份報(bào)文它的值就會(huì)加1。標(biāo)識(shí)字段應(yīng)該由讓IP發(fā)送數(shù)據(jù)報(bào)的上層來(lái)選擇。假設(shè)有兩個(gè)連續(xù)的IP數(shù)據(jù)報(bào),其中一個(gè)是由TCP生成的,而另一個(gè)是由UDP生成的,那么它們可能具有相同的標(biāo)識(shí)字段。盡管這也可以照常工作(由重組算法來(lái)處理),但是在大多數(shù)從伯克利派生出來(lái)的系統(tǒng)中,每發(fā)送一個(gè)IP數(shù)據(jù)報(bào),IP層都要把一個(gè)內(nèi)核變量的值加1,不管交給IP的數(shù)據(jù)來(lái)自哪一層。內(nèi)核變量的初始值根據(jù)系統(tǒng)引導(dǎo)時(shí)的時(shí)間來(lái)設(shè)置。

  片偏移字段指的是該片偏移原始數(shù)據(jù)報(bào)開始處的位置。另外,當(dāng)數(shù)據(jù)報(bào)被分片后,每個(gè)片的總長(zhǎng)度值要改為該片的長(zhǎng)度值。

  TTL(time-to-live)生存時(shí)間字段設(shè)置了數(shù)據(jù)報(bào)可以經(jīng)過的最多路由器數(shù)。它指定了數(shù)據(jù)報(bào)的生存時(shí)間。TTL的初始值由源主機(jī)設(shè)置(通常為32或64),一旦經(jīng)過一個(gè)處理它的路由器,它的值就減去1。當(dāng)該字段的值為0時(shí),數(shù)據(jù)報(bào)就被丟棄,并發(fā)送ICMP報(bào)文通知源主機(jī)。第8章我們討論Traceroute程序時(shí)將再回來(lái)討論該字段。

  協(xié)議字段為IP在首部中存入一個(gè)長(zhǎng)度為8bit的數(shù)值。1表示為ICMP協(xié)議, 2表示為IGMP協(xié)議,6表示為TCP協(xié)議,17表示為UDP協(xié)議。

  首部檢驗(yàn)和字段是根據(jù)IP首部計(jì)算的檢驗(yàn)和碼。它不對(duì)首部后面的數(shù)據(jù)進(jìn)行計(jì)算。ICMP、IGMP、UDP和TCP在它們各自的首部中均含有同時(shí)覆蓋首部和數(shù)據(jù)檢驗(yàn)和碼。為了計(jì)算一份數(shù)據(jù)報(bào)的IP檢驗(yàn)和,首先把檢驗(yàn)和字段置為0。然后,對(duì)首部中每個(gè)16bit進(jìn)行二進(jìn)制反碼求和(整個(gè)首部看成是由一串16bit的字組成),結(jié)果存在檢驗(yàn)和字段中。當(dāng)收到一份IP數(shù)據(jù)報(bào)后,同樣對(duì)首部中每個(gè)16bit進(jìn)行二進(jìn)制反碼的求和。由于接收方在計(jì)算過程中包含了發(fā)送方存在首部中的檢驗(yàn)和,因此,如果首部在傳輸過程中沒有發(fā)生任何差錯(cuò),那么接收方計(jì)算的結(jié)果應(yīng)該為全1。如果結(jié)果不是全1(即檢驗(yàn)和錯(cuò)誤),那么I P就丟棄收到的數(shù)據(jù)報(bào)。但是不生成差錯(cuò)報(bào)文,由上層去發(fā)現(xiàn)丟失的數(shù)據(jù)報(bào)并進(jìn)行重傳。

  4)ICMP Internet控制報(bào)文協(xié)議與ping命令:ICMP經(jīng)常被認(rèn)為是IP層的一個(gè)組成部分。____

  它傳遞差錯(cuò)報(bào)文以及其他需要注意的信息。ICMP報(bào)文通常被IP層或更高層協(xié)議(TCP或UDP)使用。一些ICMP報(bào)文把差錯(cuò)報(bào)文返回給用戶進(jìn)程。

  ICMP報(bào)文各種類型如圖2-7所示,不同類型由報(bào)文中的類型字段和代碼字段來(lái)共同決定。圖中的最后兩列表明ICMP報(bào)文是一份查詢報(bào)文還是一份差錯(cuò)報(bào)文。因?yàn)閷?duì)ICMP差錯(cuò)報(bào)文有時(shí)需要作特殊處理,因此我們需要對(duì)它們進(jìn)行區(qū)分。例如,在對(duì)ICMP差錯(cuò)報(bào)文進(jìn)行響應(yīng)時(shí),永遠(yuǎn)不會(huì)生成另一份ICMP差錯(cuò)報(bào)文(如果沒有這個(gè)限制規(guī)則,可能會(huì)遇到一個(gè)差錯(cuò)產(chǎn)生另一個(gè)差錯(cuò)的情況,而差錯(cuò)再產(chǎn)生差錯(cuò),這樣會(huì)無(wú)休止地循環(huán)下去)。當(dāng)發(fā)送一份ICMP差錯(cuò)報(bào)文時(shí),報(bào)文始終包含IP的首部和產(chǎn)生ICMP差錯(cuò)報(bào)文的IP數(shù)據(jù)報(bào)的前8個(gè)字節(jié)。這樣,接收ICMP差錯(cuò)報(bào)文的模塊就會(huì)把它與某個(gè)特定的協(xié)議(根據(jù)IP數(shù)據(jù)報(bào)首部中的協(xié)議字段來(lái)判斷)和用戶進(jìn)程(根據(jù)包含在IP數(shù)據(jù)報(bào)前8個(gè)字節(jié)中的TCP或UDP報(bào)文首部中的TCP或UDP端口號(hào)來(lái)判斷)聯(lián)系起來(lái)。

  下面各種情況都不會(huì)導(dǎo)致產(chǎn)生ICMP差錯(cuò)報(bào)文:

  1) ICMP差錯(cuò)報(bào)文(但是,ICMP查詢報(bào)文可能會(huì)產(chǎn)生ICMP差錯(cuò)報(bào)文)。

  2) 目的地址是廣播地址(見圖3-9)或多播地址(D類地址,見圖1-5)的IP數(shù)據(jù)報(bào)。

  3) 作為鏈路層廣播的數(shù)據(jù)報(bào)。

  4) 不是IP分片的第一片(將在11.5節(jié)介紹分片)。

  5) 源地址不是單個(gè)主機(jī)的數(shù)據(jù)報(bào)。這就是說(shuō),源地址不能為零地址、環(huán)回地址、廣播地址或多播地址。

  這些規(guī)則是為了防止過去允許ICMP差錯(cuò)報(bào)文對(duì)廣播分組響應(yīng)所帶來(lái)的廣播風(fēng)暴。

  ICMP地址掩碼請(qǐng)求用于無(wú)盤系統(tǒng)在引導(dǎo)過程中獲取自己的子網(wǎng)掩碼(3.5節(jié))。系統(tǒng)廣播它的ICMP請(qǐng)求報(bào)文(這一過程與無(wú)盤系統(tǒng)在引導(dǎo)過程中用RARP獲取IP地址是類似的)。無(wú)盤系統(tǒng)獲取子網(wǎng)掩碼的另一個(gè)方法是BOOTP協(xié)議,我們將在第16章中介紹。ICMP地址掩碼請(qǐng)求和應(yīng)答報(bào)文的格式如圖2-8所示。

  ICMP報(bào)文中的標(biāo)識(shí)符和序列號(hào)字段由發(fā)送端任意選擇設(shè)定,這些值在應(yīng)答中將被返回。這樣,發(fā)送端就可以把應(yīng)答與請(qǐng)求進(jìn)行匹配。

  Ping程序由目的是為了測(cè)試另一臺(tái)主機(jī)是否可達(dá)。該程序發(fā)送一份ICMP回顯請(qǐng)求報(bào)文給主機(jī),并等待返回ICMP回顯應(yīng)答。一般來(lái)說(shuō),如果不能Ping到某臺(tái)主機(jī),那么就不能Telnet或者FTP到那臺(tái)主機(jī)。反過來(lái),如果不能Telnet到某臺(tái)主機(jī),那么通?梢杂肞ing程序來(lái)確定問題出在哪里。Ping程序還能測(cè)出到這臺(tái)主機(jī)的往返時(shí)間,以表明該主機(jī)離我們有“多遠(yuǎn)”。

  我們稱發(fā)送回顯請(qǐng)求的ping程序?yàn)榭蛻,而稱被ping的主機(jī)為服務(wù)器。大多數(shù)的TCP/IP實(shí)現(xiàn)都在內(nèi)核中直接支持Ping服務(wù)器—這種服務(wù)器不是一個(gè)用戶進(jìn)程。ICMP回顯請(qǐng)求和回顯應(yīng)答報(bào)文如圖2-9所示。

  在局域網(wǎng)上運(yùn)行ping程序的結(jié)果輸出一般有如下格式:

  當(dāng)返回ICMP回顯應(yīng)答時(shí),要打印出序列號(hào)和TTL,并計(jì)算往返時(shí)間。從上面的輸出中可以看出,回顯應(yīng)答是以發(fā)送的次序返回的( 0,1,2等)。

  ping程序通過在ICMP報(bào)文數(shù)據(jù)中存放發(fā)送請(qǐng)求的時(shí)間值來(lái)計(jì)算往返時(shí)間。當(dāng)應(yīng)答返回時(shí),用當(dāng)前時(shí)間減去存放在ICMP報(bào)文中的時(shí)間值,即是往返時(shí)間。輸出的第一行包括目的主機(jī)的I P地址,盡管指定的是它的名字。這說(shuō)明名字已經(jīng)經(jīng)過解析器被轉(zhuǎn)換成I P地址了。現(xiàn)在,我們發(fā)現(xiàn),如果敲入ping命令,幾秒鐘過后會(huì)在第1行打印出IP地址, DNS就是利用這段時(shí)間來(lái)確定主機(jī)名所對(duì)應(yīng)的IP地址。

  通常,第1個(gè)往返時(shí)間值要比其他的大。這是由于目的端的硬件地址不在ARP高速緩存中第1個(gè)RTT中多出的3ms很可能就是因?yàn)榘l(fā)送ARP請(qǐng)求和接收ARP應(yīng)答所花費(fèi)的時(shí)間。

  以上是ping功能的實(shí)現(xiàn)原理,UDP和TCP協(xié)議實(shí)現(xiàn)參考《TCP/IP詳解 卷1:協(xié)議》,本文只給出UDP和TCP的封裝格式。

  5)UDP協(xié)議

  UDP是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議:進(jìn)程的每個(gè)輸出操作都正好產(chǎn)生一個(gè)UDP數(shù)據(jù)報(bào),并組裝成一份待發(fā)送的I P數(shù)據(jù)報(bào)。這與面向流字符的協(xié)議不同,如T C P,應(yīng)用程序產(chǎn)生的全體數(shù)據(jù)與真正發(fā)送的單個(gè)IP數(shù)據(jù)報(bào)可能沒有什么聯(lián)系。UDP數(shù)據(jù)報(bào)封裝成一份IP數(shù)據(jù)報(bào)的格式如圖2-11。

  UDP不提供可靠性:它把應(yīng)用程序傳給IP層的數(shù)據(jù)發(fā)送出去,但是并不保證它們能到達(dá)目的地。應(yīng)用程序必須關(guān)心IP數(shù)據(jù)報(bào)的長(zhǎng)度。

  端口號(hào)表示發(fā)送進(jìn)程和接收進(jìn)程。TCP和UDP用目的端口號(hào)來(lái)分用來(lái)自IP層的數(shù)據(jù)的過程。由于IP層已經(jīng)把IP數(shù)據(jù)報(bào)分配給TCP或UDP,因此TCP端口號(hào)由TCP來(lái)查看,而UDP端口號(hào)由UDP來(lái)查看。TCP端口號(hào)與UDP端口號(hào)是相互獨(dú)立的。

  UDP長(zhǎng)度字段指的是UDP首部和UDP數(shù)據(jù)的字節(jié)長(zhǎng)度。該字段的最小值為8字節(jié)(發(fā)送一份0字節(jié)的UDP數(shù)據(jù)報(bào)是OK)。這個(gè)UDP長(zhǎng)度是有冗余的。IP數(shù)據(jù)報(bào)長(zhǎng)度指的是數(shù)據(jù)報(bào)全長(zhǎng),因此U D P數(shù)據(jù)報(bào)長(zhǎng)度是全長(zhǎng)減去I P首部的長(zhǎng)度(該值在首部長(zhǎng)度字段中指定)。

  UDP檢驗(yàn)和覆蓋UDP首部和UDP數(shù)據(jù);叵隝P首部的檢驗(yàn)和,它只覆蓋IP的首部—并不覆蓋IP數(shù)據(jù)報(bào)中的任何數(shù)據(jù)。UDP和TCP在首部中都有覆蓋它們首部和數(shù)據(jù)的檢驗(yàn)和。UDP的檢驗(yàn)和是可選的,而TCP的檢驗(yàn)和是必需的。

  6)TCP協(xié)議

  TCP的服務(wù):盡管TCP和UDP都使用相同的網(wǎng)絡(luò)層(IP),TCP卻向應(yīng)用層提供與UDP完全不同的服務(wù)。TCP提供一種面向連接的、可靠的字節(jié)流服務(wù)。

  TCP數(shù)據(jù)被封裝在一個(gè)IP數(shù)據(jù)報(bào)中,如圖2-13所示。

  每個(gè)TCP段都包含源端和目的端的端口號(hào),用于尋找發(fā)端和收端應(yīng)用進(jìn)程。這兩個(gè)值加上IP首部中的源端IP地址和目的端IP地址唯一確定一個(gè)TCP連接。

  序號(hào)用來(lái)標(biāo)識(shí)從TCP發(fā)端向TCP收端發(fā)送的數(shù)據(jù)字節(jié)流,它表示在這個(gè)報(bào)文段中的的第一個(gè)數(shù)據(jù)字節(jié)。如果將字節(jié)流看作在兩個(gè)應(yīng)用程序間的單向流動(dòng),則TCP用序號(hào)對(duì)每個(gè)字節(jié)進(jìn)行計(jì)數(shù)。序號(hào)是32bit無(wú)符號(hào)數(shù),序號(hào)到達(dá)232-1后又從0開始。

  既然每個(gè)傳輸?shù)淖止?jié)都被計(jì)數(shù),確認(rèn)序號(hào)包含發(fā)送確認(rèn)的一端所期望收到的下一個(gè)序號(hào)。因此,確認(rèn)序號(hào)應(yīng)當(dāng)是上次已成功收到數(shù)據(jù)字節(jié)序號(hào)加1。只有ACK標(biāo)志為1時(shí)確認(rèn)序號(hào)字段才有效。

  首部長(zhǎng)度給出首部中32bit字的數(shù)目。需要這個(gè)值是因?yàn)槿芜x字段的長(zhǎng)度是可變的。這個(gè)字段占4bit,因此TCP最多有60字節(jié)的首部。然而,沒有任選字段,正常的長(zhǎng)度是20字節(jié)。在TCP首部中有6個(gè)標(biāo)志比特。它們中的多個(gè)可同時(shí)被設(shè)置為1。我們?cè)谶@兒簡(jiǎn)單介紹它們的用法。

  URG 緊急指針( u rgent pointer)有效。

  ACK 確認(rèn)序號(hào)有效。

  PSH 接收方應(yīng)該盡快將這個(gè)報(bào)文段交給應(yīng)用層。

  RST 重建連接。

  SYN 同步序號(hào)用來(lái)發(fā)起一個(gè)連接。

  FIN 發(fā)端完成發(fā)送任務(wù)。

  TCP的流量控制由連接的每一端通過聲明的窗口大小來(lái)提供。窗口大小為字節(jié)數(shù),起始于確認(rèn)序號(hào)字段指明的值,這個(gè)值是接收端正期望接收的字節(jié)。窗口大小是一個(gè)16bit字段,因而窗口大小最大為65535字節(jié)。

  檢驗(yàn)和覆蓋了整個(gè)的TCP報(bào)文段:TCP首部和TCP數(shù)據(jù)。這是一個(gè)強(qiáng)制性的字段,一定是由發(fā)端計(jì)算和存儲(chǔ),并由收端進(jìn)行驗(yàn)證。TCP檢驗(yàn)和的計(jì)算和UDP檢驗(yàn)和的計(jì)算相似。

  5,程序運(yùn)行流程

  本文僅要求實(shí)現(xiàn)對(duì)ping的響應(yīng),在嵌入式系統(tǒng)中,一般只要求以太網(wǎng)終端具備對(duì)ping的應(yīng)答能力,不需要ping請(qǐng)求。另外,嵌入式以太網(wǎng)終端大多數(shù)工作在從模式,因而可以省略ARP請(qǐng)求的功能。

  對(duì)于將來(lái)功能的擴(kuò)展升級(jí),可以在TCP和UDP中間任選一種協(xié)議作為數(shù)據(jù)傳輸。對(duì)于控制信號(hào),文件傳輸,采用TCP協(xié)議。對(duì)于流媒體信號(hào),可以采用UDP保證實(shí)時(shí)性。

  由于TCP或者UDP與ICMP同屬于IP數(shù)據(jù)報(bào)。在修改ICMP服務(wù)程序后,可以作TCP或者UDP服務(wù)程序用。

  6,以太網(wǎng)PHY層設(shè)計(jì)的注意事項(xiàng)

  以太網(wǎng)PHY層屬于通信系統(tǒng)中的信道,因此要考慮到傳輸信道中的抗干擾問題。

  PHY通過RJ45接口接入銅線,這種傳輸介質(zhì)可以實(shí)現(xiàn)長(zhǎng)距離通信。PHY的功能是將MII接口的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),在信道中收發(fā)。參考《通信原理》,信道中應(yīng)該加入擾碼,保證信道中的信號(hào)具有一定的頻率,防止在信道中被慮掉。PHY可以配置成半雙工、全雙工兩種模式,和10M、100M兩種連接速度。

  100BaseTX采用4B/5B編碼。PHY在發(fā)送數(shù)據(jù)的時(shí)候,收到MAC過來(lái)的數(shù)據(jù)(對(duì)PHY來(lái)說(shuō),沒有幀的概念,對(duì)它來(lái)說(shuō),都是數(shù)據(jù)而不管什么地址,數(shù)據(jù)還是CRC),每4bit就增加 AppoTech Limited. All rights reserved DS2005 v100 16

  1bit的檢錯(cuò)碼,然后把并行數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù),再按照物理層的編碼規(guī)則把數(shù)據(jù)編碼,再變?yōu)槟M信號(hào)把數(shù)據(jù)送出去。收數(shù)據(jù)時(shí)的流程反之。

  PHY還有個(gè)重要的功能就是實(shí)現(xiàn)CSMA/CD的部分功能。它可以檢測(cè)到網(wǎng)絡(luò)上是否有數(shù)據(jù)在傳送,如果有數(shù)據(jù)在傳送中就等待,一旦檢測(cè)到網(wǎng)絡(luò)空閑,再等待一個(gè)隨機(jī)時(shí)間后將送數(shù)據(jù)出去。如果兩個(gè)碰巧同時(shí)送出了數(shù)據(jù),那 樣必將造成沖突,這時(shí)候,沖突檢測(cè)機(jī)構(gòu)可以檢測(cè)到?jīng)_突,然后各等待一個(gè)隨機(jī)的時(shí)間重新發(fā)送數(shù)據(jù)。這個(gè)隨機(jī)時(shí)間很有講究的,并不是一個(gè)常數(shù),在不同的時(shí)刻計(jì)算出來(lái)的隨機(jī)時(shí)間都是不同的,而且有多重算法來(lái)應(yīng)付出現(xiàn)概率很低的同兩臺(tái)主機(jī)之間的第二次沖突。

  通信速率通過雙方協(xié)商,協(xié)商的結(jié)果是兩個(gè)設(shè)備中能同時(shí)支持的最大速度和最好的雙工模式。這個(gè)技術(shù)被稱為Auto Negotiation或者NWAY。

  隔離變壓器把PHY送出來(lái)的差分信號(hào)用差模耦合的線圈耦合濾波以增強(qiáng)信號(hào),并且通過電磁場(chǎng)的轉(zhuǎn)換耦合到連接網(wǎng)線的另外一端。RJ-45中1、2是傳送數(shù)據(jù)的,3、6是接收數(shù)據(jù)的。新的PHY支持AUTO MDI-X功能(也需要隔離變壓器支持)。它可以實(shí)現(xiàn)RJ-45接口的1、2上的傳送信號(hào)線和3、6上的接收信號(hào)線的功能自動(dòng)互相交換。

  RTL8201 PHY核心電路需要2.5V電壓供電。不過,數(shù)字IO和DAC電路需要3.3V電源支持。RTL8201BL有一個(gè)內(nèi)嵌的減壓器將3.3V轉(zhuǎn)換為2.5V。就像許多商用變壓設(shè)備,該電路的

  2.5V輸出引腳(PWFBOUT),需要使用一個(gè)22μF的鉭電容作為該設(shè)備的頻率校正部分,另外還需要一個(gè)小的電容(0.1μF)用于高頻去噪。PWFBIN引腳通過一個(gè)鐵氧體磁珠從PWFBOUT引腳引入2.5V電源,如下圖所示。這里著重強(qiáng)調(diào)的是,不能夠使用任何其它電源設(shè)備為PWFBOUT和PWFBIN引腳提供外部的2.5V電源支持。

  模擬和接地層應(yīng)該盡可能的大且完整。如果接地層足夠大,則將模擬和數(shù)字接地分開將是更好的構(gòu)造。不過,如果總的接地層并不十分大,那么將接地層分開的做法就不太合適。在這種情況下,所有的接地引腳可以一起連接到一個(gè)單一的大且完整的接地層。

  三,選定方案的實(shí)現(xiàn)

  1,硬件設(shè)計(jì):

  單片機(jī)與PHY的MII接口配置

  要將RTL8201BL設(shè)置為MII操作模式,就必須拉高M(jìn)II/SNIB引腳并對(duì)ANE、SPEED和DUPLEX引腳進(jìn)行適當(dāng)設(shè)置。

  MII是一個(gè)介于PHY和MAC之間的符合IEEE 802.3u標(biāo)準(zhǔn)的18信號(hào)接口。該接口在兩種頻率下操作:25Mhz和2.5Mhz,支持100Mbps/10Mbps兩種帶寬下的收發(fā)功能。發(fā)送數(shù)據(jù)時(shí),MAC首先聲明TXEN信號(hào),然后將字節(jié)數(shù)據(jù)變?yōu)?位的半字節(jié)并通過TXD[0..3]將其傳遞給PHY。在內(nèi)部TXEN被聲明期間,PHY用TXC — PHY支持的傳輸時(shí)鐘信號(hào) — 同步對(duì)TXD[0..3]的采樣。接收信息包時(shí),PHY將聲明RXEN信號(hào),傳遞由RXC時(shí)鐘控制的接收半字節(jié)數(shù)據(jù)RXD[0..3],它從接收的數(shù)據(jù)中恢復(fù)。CRS和COL信號(hào)用于沖突檢測(cè)和處理。

  在100Base-TX模式,當(dāng)5B下的解碼信號(hào)不是空閑(not IDLE)時(shí),CRS信號(hào)將聲明;而當(dāng)5B被認(rèn)為空閑時(shí),其將被解除聲明。在10Base-T模式,當(dāng)10M前導(dǎo)同步信號(hào)被確定時(shí),CRS信號(hào)將聲明;而當(dāng)空閑(IDLE)模式被確定時(shí),其將被解除聲明。

  在100Mbps模式,當(dāng)5B解碼是/J/K/時(shí),RXDV信號(hào)將被聲明;如果5B是/T/R/或者空閑則其將被解除聲明。在10Mbps模式,RXDV與CRS信號(hào)相同。

  如果任何5B解碼錯(cuò)誤發(fā)生,比如無(wú)效的J/K,T/R,無(wú)效的符號(hào)等,RXER(Receive Error,接收錯(cuò)誤)信號(hào)將被聲明。該引腳會(huì)被拉高一個(gè)或多個(gè)時(shí)鐘周期以指示適配子層(Reconciliation Sublayer,適配層是MAC層和物理層之間的通路,譯注)在幀的某個(gè)位置發(fā)現(xiàn)一個(gè)錯(cuò)誤。

  RTL8201BL不使用TXER信號(hào)并且不會(huì)影響傳輸功能。

  AX2005支持GPSI模塊, 可以工作在主模式和從模式下,包括以下特征

  獨(dú)立的TX,RX結(jié)構(gòu),每個(gè)都有各自的4字節(jié)FIFO 支持4種時(shí)序模式,分別是GPSI模式,類SPI模式,類UART模式和類USART模式。 硬件頭校驗(yàn)功能

  AppoTech Limited. All rights reserved DS2005 v100 17

  提供發(fā)射時(shí)鐘的分頻器

  獨(dú)立的RX,TX DMA控制,二者可以同時(shí)工作。 12個(gè)引腳,兼容MII模式 RX Data In (GRD) – P2.5 RX Data1 In (GRD) – P3.3 RX Data2 In (GRD) – P3.4 RX Data3 In (GRD) – P3.5 RX Clock In (GRC) – P2.4 RX Enable In (GRE) – P2.7 TX Data Out (GTD) – P2.3 TX Data1 Out (GTD) – P1.4 TX Data2 Out (GTD) – P1.5 TX Data3 Out (GTD) – P1.6 TX Clock Out (GTC) – P2.2 TX Enable Out (GTE) – P2.6

  LED接口/PHY地址配置

  上電重新配置用于MII管理寄存器接口的PHY地址[0:4]期間,這五個(gè)引腳被鎖存。然后,在初始復(fù)位之后的正常操作時(shí),它們作為狀態(tài)指示LED的驅(qū)動(dòng)引腳使用。其驅(qū)動(dòng)極性,或者為高或者為低,由上電復(fù)位期間每個(gè)PHY地址[4:0]的鎖定狀態(tài)決定。如果鎖定狀態(tài)為高,則其為低;如果鎖定狀態(tài)為低,則其為高。

  此方案中,RTL8201被配置成強(qiáng)制10Mbps全雙工模式,使用MII接口,地址為1,不使用MII管理接口去修改配置。

【物聯(lián)網(wǎng)的畢業(yè)論文】相關(guān)文章:

什么是物聯(lián)網(wǎng)?02-10

物聯(lián)網(wǎng)就業(yè)前景02-14

物聯(lián)網(wǎng)工程就業(yè)前景12-31

物聯(lián)網(wǎng)工程專業(yè)就業(yè)方向12-31

物聯(lián)網(wǎng)工程就業(yè)前景分析07-07

物聯(lián)網(wǎng)工程就業(yè)前景如何?07-23

物聯(lián)網(wǎng)社會(huì)實(shí)踐報(bào)告02-03

物聯(lián)網(wǎng)應(yīng)用調(diào)研報(bào)告范本04-08

關(guān)于物聯(lián)網(wǎng)課程報(bào)告總結(jié)05-09