




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章
TCP/IP協議8.1TCP/IP協議的體系結構TCP/IP協議的體系結構分為四層,這四層由高到低分別是:應用層、傳輸層、網絡層和鏈路層,如圖8-1所示。其中每一層完成不同的通信功能,具體各層的功能和各層所包含的協議說明如下。8.1.1TCP/IP協議的四個層次圖8-1TCP/IP協議的層次結構鏈路層在TCP/IP協議棧的最低層,也稱為數據鏈路層或網絡接口層,通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。鏈路層的功能是把接收到的網絡層數據報(也稱IP數據報)通過該層的物理接口發送到傳輸介質上,或從物理網絡上接收數據幀,抽出IP數據報并交給IP層。8.1.1TCP/IP協議的四個層次1.鏈路層網絡層也稱為互聯網層,由于該層的主要協議是IP協議,因而也可簡稱為IP層。它是TCP/IP協議棧中最重要的一層,主要功能是可以把源主機上的分組發送到互聯網中的任何一臺目的主機上。2.網絡層我們通常所說的兩臺主機之間的通信其實是兩臺主機上對應應用程序之間的通信,傳輸層提供的就是應用程序之間的通信,也叫端到端(EndtoEnd)的通信。8.1.1TCP/IP協議的四個層次3.傳輸層應用層向使用網絡的用戶提供特定的、常用的應用程序,如使用最廣泛的遠程登錄(Telnet)、文件傳輸協議(FTP)、超文本傳輸協議(HTTP)、域名系統(DNS)、簡單網絡管理協議(SNMP)和簡單郵件傳輸協議(SMTP)等。要注意有些應用層協議是基于TCP協議的(如FTP和HTTP等),有些應用層協議是基于UDP協議的(如SNMP等)。4.應用層8.1.2TCP/IP協議模型中的操作系統邊界和地址邊界TCP/IP協議分為四層結構,這四層結構中有兩個重要的邊界:一個是將操作系統與應用程序分開的邊界,另一個是將高層互聯網地址與低層物理網卡地址分開的邊界,如圖8-2所示。圖8-2TCP/IP協議模型的兩個邊界操作系統邊界的上面是應用層,應用層處理的是用戶應用程序(用戶進程)的細節問題,提供面向用戶的服務。這部分的程序一般不包含在操作系統內核中,由一些獨立的應用程序組成,我們在本書中設計的網絡程序就屬于這一層。操作系統邊界的下面各層包含在操作系統內核中,是由操作系統來實現的,它們共同處理數據傳輸過程中的通信問題8.1.2TCP/IP協議模型中的操作系統邊界和地址邊界1.操作系統邊界地址邊界的上層為網絡層,網絡層用于對不同的網絡進行互聯,連接在一起的所有網絡為了能互相尋址,要使用統一的互聯網地址(IP地址)。而地址邊界的下層為各個物理網絡,不同的物理網絡使用的物理地址各不相同,因此,在地址邊界的下面只能是各個互聯起來的網絡使用自己能識別的物理地址。2.地址邊界8.2IP協議不同的網絡使用的協議不同,地址長度和尋址方式不同,數據幀的長度不同,物理網絡的這些差別是無法改變的,也就是說,我們無法做到物理網絡的“統一”。但是,我們可以對互聯的不同物理網絡(具體表現就是不同網絡的網絡接口卡和設備驅動程序互不相同)上傳輸的數據幀都加上一層相同的“包裝”,使加了“包裝”后的網絡數據幀對外有統一的“外表”(為了區別數據幀,我們就把它叫“數據報”),并且有足夠的地址信息(就是下一節要講的IP地址)用來識別數據報從何而來(信源),要到什么地方去(信宿)。對于這樣的數據報,不同網絡中的節點(主要是路由器)都可以識別,因此,就可以根據數據報的目的地址,把它從一個節點轉發到另一個節點,直到目的主機,最后由目的主機對數據報的內容進行解釋。上述方法其實就是利用信息隱蔽原理,在互聯網中把不同網絡的實現細節通過IP層隱藏起來,達到在網絡層邏輯上一致的目的,如圖8-3所示。8.2.1IP互聯網原理圖8-3IP對不同數據幀的統一IP協議是TCP/IP協議族中最重要的協議,從協議體系結構來看,它向下屏蔽了不同物理網絡的低層,向上提供一個邏輯上統一的互聯網。互聯網上的所有數據報都要經過IP協議進行傳輸,它是通信網絡與高層協議的邊界,如圖8-4所示。8.2.2IP協議的地位與IP互聯網的特點圖8-4IP協議在TCP/IP協議族中的地位使用IP協議的互聯網具有以下重要特點:(1)IP協議是一種無連接(Connectionless)不可靠(Unreliable)的數據報傳輸協議。(2)IP互聯網中的計算機沒有主次之分,所有主機地位平等也沒有主次之分。(3)IP互聯網沒有確定的拓撲結構。(4)在IP互聯網中的任何一臺主機,都至少有一個獨一無二的IP地址,有多個網絡接口卡的計算機每個接口可以有一個IP地址,這樣一臺主機可能就有多個IP地址。有多個IP地址的主機叫多宿主機(Multi-homeHost)。(5)在互聯網中有IP地址的設備不一定就是一臺計算機,如IP路由器、網關等,因為與互聯網有獨立連接的設備都要有IP地址。8.2.2IP協議的地位與IP互聯網的特點互聯網是由很多網絡連接而成的,互聯網中的數據報有些是在本網內主機之間傳輸的,有些是要送到互聯網中其他網絡中的主機中去的,因此,IP地址不但要標識在本網內的主機號,還要標識在互聯網中的網絡號,如圖8-5所示。8.2.3IP地址1.IP地址的結構Internet現在使用的IP協議是IPv4(第四版),它使用32位二進制數(即4個字節)表示一個IP地址,在進行程序設計時一般用長整型。2.IP地址的表示格式圖8-5IP地址結構IP地址由網絡號和主機號兩部分組成,如圖8-6所示。8.2.3IP地址3.IP地址的分類IP地址用來標識互聯網中的主機,但少數IP地址有特殊用途,不能分配給主機,這些IP地址有網絡地址、直接廣播地址、有限廣播地址、本網特定主機地址、回送地址、本網絡本主機。圖8-6IP地址的分類IP地址最初使用兩層地址結構(包括網絡地址和主機地址),在這種結構中A類和B類網絡所能容納的主機數非常龐大,但使用C類IP地址的網絡只能接入254臺主機。隨著計算機網絡技術的不斷普及,有大量的個人用戶和小型局域網接入互聯網,對于這樣的用戶,即使分配一個C類網絡地址仍然會造成IP地址的很大浪費。因此,人們提出了三層結構的IP地址,把每個網絡可以進一步劃分成若干個子網(Subnet),子網內主機的IP地址由三部分組成,如圖8-7所示,把兩級IP地址結構中的主機地址分割成子網地址和主機地址兩部分。8.2.4子網與子網掩碼1.子網與子網地址子網掩碼用32位二進制數表示,常用點分十進制數格式來書寫,掩碼中用于標識網絡號和子網號的位置為1,主機位為0。2.子網掩碼圖8-7子網IP地址結構IP協議是TCP/IP協議族中最為核心的協議,前面我們已經討論過,它提供不可靠、無連接的數據報傳輸服務。IP層提供的服務是通過IP層對數據報的封裝與拆封來實現的。IP數據報的格式分為報頭區和數據區兩大部分,其中數據區包括高層協議需要傳輸的數據,報頭區是為了正確傳輸高層數據而加的各種控制信息。IP數據報的格式如圖8-8所示。8.2.5IP數據報格式圖8-8IP數據報格式IP數據報中的每一個域包含了IP報文所攜帶的一些信息,正是用這些信息來完成IP協議功能的,現說明如下。(1)版本號版本號占用4位二進制數,表示該IP數據報使用的是哪個版本的IP協議。目前在Internet中使用的TCP/IP協議族中,IP協議的版本號為4,所以也常稱為IPv4。下一個IP協議的版本號為6,即IPv6,當前正在試驗中。(2)頭長度頭長度用4位二進制數表示,此域指出整個報頭的長度(包括選項),該長度是以32位二進制數為一個計數單位的,接收端通過此域可以計算出報文頭在何處結束及從何處開始讀數據。普通IP數據報(沒有任何選項)該字段的值是5(即20個字節的長度)。(3)服務類型(TOS,TypeOfService)服務類型用8位二進制數表示,規定對本數據報的處理方式。(4)總長度總長度用16位二進制數表示,總長度字段是指整個IP數據報的長度,以字節為單位。利用頭部長度字段和總長度字段,就可以計算出IP數據報中數據內容的起始位置和長度。由于該字段長度為16位二進制數,所以從理論上來說,IP數據報最長可達65535字節(實際由于受物理網絡的限制,要比這個數值小得多)。8.2.5IP數據報格式1.IP數據報各字段的功能(5)生存時間(TTL,TimeToLive)生存時間用8位二進制數表示,它指定了數據報可以在網絡中傳輸的最長時間。在實際應用中為了簡化處理過程,把生存時間字段設置成了數據報可以經過的最大路由器數。TTL的初始值由源主機設置(通常為32、64、128或者256),一旦經過一個處理它的路由器,它的值就減去1。當該字段的值減為0時,數據報就被丟棄,并發送ICMP報文(8.4節介紹)通知源主機,這樣可以防止進入一個循環回路時,數據報無休止地傳輸。(6)上層協議標識上層協議標識用8位二進制數表示,從圖8-4可知,IP協議可以承載多種上層協議,目的端根據協議標識,就可以把收到的IP數據報送至TCP或UDP等處理此報文的上層協議。(7)校驗和校驗和用16位二進制數表示,這個域用于協議頭數據有效性的校驗,可以保證IP報頭區在傳輸時的正確性和完整性。頭部校驗和字段是根據IP協議頭部計算出的校驗和碼,它不對頭部后面的數據進行計算。(8)源地址源地址是用32位二進制數表示的發送端IP地址。(9)目的地址目的地址是用32位二進制數表示的目的端IP地址。8.2.5IP數據報格式(1)最大傳輸單元MTUIP數據報在互聯網上傳輸,可能要經過多個物理網絡才能從源端傳輸到目的端。不同的網絡由于鏈路層和介質的物理特性不同,因此在進行數據傳輸時,對數據幀的最大長度都有一個限制,這個限制值即最大傳輸單元MTU(MaximumTransmissionUnit)。(2)分片當一個IP數據報要通過鏈路層進行傳輸時,如果IP數據報的長度比鏈路層MTU的值大,那么IP層就需要對將要發送的IP數據報進行分片,把一個IP數據報分成若干個長度小于或等于鏈路層MTU的IP數據報,才能經過鏈路層進行傳輸。這種把一個數據報為了適合網絡傳輸而分成多個數據報的過程稱為分片(Fragmentation)。一定要注意,被分片后的各個IP數據報可能經過不同的路徑到達目的主機。(3)重組當分了片的IP數據報被傳輸到最終目的主機時,目的主機要對收到的各分片重新進行組裝,以恢復成源主機發送時的IP數據報,這個過程叫IP數據報的重組。8.2.5IP數據報格式2.IP數據報分片與重組8.3ICMP協議ICMP報文和其他協議的報文一樣,也是由ICMP報文頭區和數據區兩部分組成的。ICMP報文是封裝在IP數據報中通過鏈路層在網絡中進行傳輸的,如圖8-9所示。8.3.1ICMP報文的封裝與格式圖8-9ICMP報文及封裝格式1.ICMP報文的封裝ICMP報文的格式如圖8-10所示,其中報文頭分為三部分:類型、代碼和校驗和。2.ICMP報文的格式圖8-10ICMP報文的格式回送請求報文由源主機發出,目的主機應答,用于測試另一臺主機或路由器是否可達。其報文格式如圖8-11所示。8.3.2ICMP請求與應答報文1.回送請求與應答報文圖8-11回送請求與應答ICMP報文格式在劃分了子網的網絡中,有些主機(如無盤工作站)并不知道自己的子網掩碼。ICMP地址掩碼請求報文可用于主機在引導過程中獲取自己的子網掩碼,方法是主機在本網廣播ICMP地址掩碼請求報文,通常由本網中的路由器向請求主機發送一個ICMP地址掩碼應答報文。地址掩碼請求與應答報文的格式與圖8-16所示的回送請求與應答ICMP報文格式相似,但數據區是一個4字節的地址掩碼。掩碼請求報文的類型字段地址為17,地址掩碼應答報文為18,代碼字段都為0。2.地址掩碼請求與應答報文8.4ARP協議TCP/IP協議族專門設計了用于地址解析的協議ARP(AddressResolutionProtocol),它可以把一個IP地址映射成對應的物理地址。另外,對于無法保存IP地址的主機(如無盤工作站),TCP/IP協議族中也提供了從物理地址到IP地址映射的反向地址解析協議RARP(ReverseAddressResolutionProtocol),如圖8-12所示。圖8-12ARP和RARP在常用的以太網中,ARP報文被封裝成如圖8-13所示的以太網數據幀,然后以廣播方式發送到物理網絡。ARP報文格式如圖8-14所示。8.4.1ARP報文格式圖8-13ARP報文的以太網封裝格式圖8-14ARP報文格式8.4.1ARP報文格式ARP報文格式說明如下:(1)硬件類型。硬件類型字段占2個字節,表示發送者硬件地址的類型。它的值為1即表示以太網地址。(2)協議類型。協議類型字段占2個字節,表示發送方要映射的協議地址類型,該字段的常用值如表8-4所示。協議地址為IP地址時,它的值為0x0800。它的值與包含IP數據報的以太網數據幀中的類型字段的值相同。表8-4協議類型字段常用值(即以太網協議類型字段)8.4.1ARP報文格式(3)硬件地址長度和協議地址長度。硬件地址長度和協議地址長度各占一個1字節,分別指出硬件地址和協議地址的長度,以字節為單位。對于以太網上IP地址的ARP請求或應答來說,它們的值分別為6和4。(4)操作代碼。ARP和RARP在設計時的協議格式完全相同,只有操作代碼字段可以對它們進行區分。該字段指出四種操作報文類型:值為1時表示ARP請求報文,值為2時表示ARP應答報文,值為3時表示RARP請求報文,值為4時表示RARP應答報文。(5)發送方硬件地址和發送方協議地址。該地址長度由硬件地址長度字段和協議地址長度字段指定。(6)目的方硬件地址和目的方協議地址。該地址長度由硬件地址長度字段和協議地址長度字段指定。ARP工作時,首先由知道目的主機IP地址但不知道目的主機物理地址的主機發出一份ARP請求報文,該報文中填有發送方硬件地址、發送方IP地址和目的方IP地址,操作代碼為1,目的方硬件地址填的是廣播地址(在以太網中為全1),因此該網絡內的所有主機都可以收到該報文,其含意是“如果你是這個IP地址的擁有者,請回答你的硬件地址”。目的主機的ARP層收到這份廣播報文后,識別出這是發送方在尋問它的IP地址,于是發送一個ARP應答報文。這個ARP應答報文包含它的IP地址及對應的硬件地址,操作代碼為2,把原來的發送方硬件地址和協議地址填入目的方硬件地址和協議地址位置,即這時目的方變成了發送方,發送方變成了目的方。請求方收到ARP應答報文后,就可以使用目的方物理地址進行IP數據報的發送了。8.4.2ARP工作原理一臺主機向另一臺主機發送數據報后,可能不久還要發送,如果每發送一次數據報就進行一次ARP請求,那么ARP的工作效率就會很低。另外,由于ARP請求是以廣播方式發送的,因此頻繁使用ARP會使造成網絡擁擠,影響網絡的正常工作。解決該問題的關鍵是使用ARP高速緩存技術。在網絡中,每臺主機上都有一個ARP高速緩存,這個高速緩存存放了最近IP地址到硬件地址之間的映射記錄。高速緩存區中表項建立的方法是:(1)請求主機收到ARP應答后,主機就把獲得的IP地址與物理地址的映射關系存入ARP表中。(2)由于ARP請求報文是廣播發送的,所有收到ARP請求報文的主機都可以把其中發送方的物理地址和IP地址映射存入自己的高速緩存中,以備將來使用。(3)網絡中的主機在啟動時,可以主動廣播自己的IP地址和物理地址的映射關系,以免其他主機對它提出ARP請求(這也使一臺主機在啟動時,就可以知道自己的IP地址與網絡中其他主機的IP地址有沒有沖突)。8.4.3ARP高速緩存8.5端到端通信和端口號在互聯網中,任何兩臺通信的主機之間,從源端到目的端的信道都是由一段一段的點到點通信線路組成的(一個局域網中兩臺主機通信時只有一段點到點的線路)。如圖8-15所示。8.5.1端到端通信圖8-15傳輸層端到端通信為了識別傳輸層之上不同的網絡通信程序(進程),傳輸層引入了端口的概念。在一臺主機上,要進行網絡通信的進程首先要向系統提出動態申請,由系統(操作系統內核)返回一個本地惟一的端口號,進程再通過系統調用把自己和這個特定的端口聯系在一起,這個過程叫綁定(Binding)。這樣,每個要通信的進程都與一個端口號對應,傳輸層就可以使用其報文頭中的端口號,把收到的數據送到不同的應用程序,如圖8-16所示。8.5.2傳輸層端口圖8-16傳輸層端到端通信在TCP/IP協議中,傳輸層使用的端口號用一個16位的二進制數表示。因此,在傳輸層如果使用TCP協議進行進程通信,則可用的端口號共有216個。由于UDP也是傳輸層一個獨立于TCP的協議,因此使用UDP協議時也有216個不同的端口。每個要通信的進程在通信之前都要先通過系統調用動態地申請一個端口號,TCP/IP協議在進行設計時就把服務器上守候進程的端口號進行了靜態分配。這些端口號由Internet號分配機構IANA(InternetAssignedNumbersAuthority)來管理。一些常用服務的TCP和UDP的眾所周知端口號見表8-5和表8-6。8.5.2傳輸層端口表8-5常用的眾所周知的TCP端口號每個要通信的進程在通信之前都要先通過系統調用動態地申請一個端口號,TCP/IP協議在進行設計時就把服務器上守候進程的端口號進行了靜態分配。這些端口號由Internet號分配機構IANA(InternetAssignedNumbersAuthority)來管理。一些常用服務的TCP和UDP的眾所周知端口號見表8-5和表8-6。8.5.2傳輸層端口表8-6常用的眾所周知的UDP端口號256~1023之間的端口號通常都是由Unix系統占用的,以提供一些特定的Unix服務。現在IANA管理1~1023之間所有的端口號。任何TCP/IP實現所提供的服務都使用1~1023之間的端口號。8.6TCP協議在傳輸層,如果要保證端到端數據傳輸的可靠性,就要使用TCP協議。TCP提供一種面向連接的、可靠的數據流服務。因為它的高可靠性,使TCP協議成為傳輸層最常用的協議,同時也是一個比較復雜的協議。TCP和IP一樣,是TCP/IP協議族中最重要的協議。TCP報文段(常稱為段)與UDP數據報一樣也是封裝在IP中進行傳輸的,只是IP報文的數據區為TCP報文段。TCP報文段的格式如圖8-17所示。8.6.1TCP報文段格式圖8-17TCP報文段的格式TCP源端口號長度為16位,用于標識發送方通信進程的端口。目的端在收到TCP報文段后,可以用源端口號和源IP地址標識報文的返回地址。8.6.1TCP報文段格式1.TCP源端口號TCP目的端口號長度為16位,用于標識接收方通信進程的端口。源端口號與IP頭部中的源端IP地址,目的端口號與目的端IP地址,這4個數就可以惟一確定從源端到目的端的一對TCP連接。2.TCP目的端口號序列號長度為32位,用于標識TCP發送端向TCP接收端發送數據字節流的序號。序列號的實際值等于該主機選擇的本次連接的初始序號ISN(InitialSequenceNumber)加上該報文段中第一個字節在整個數據流中的序號。由于TCP為應用層提供的是全雙工通信服務,這意味著數據能在兩個方向上獨立地進行傳輸,因此,連接的每一端必須保持每個方向上傳輸數據的序列號到達232-1后又從0開始。序列號保證了數據流發送的順序性,是TCP提供的可靠性保證措施之一。3.序列號確認號長度為32位。因為接收端收到的每個字節都被計數,所以確認號可用來標識接收端希望收到的下一個TCP報文段第一個字節的序號。確認號包含發送確認的一端希望收到的下一個字節的序列號,因此確認號應當是上次已成功收到數據字節的序列號加1。確認號字段只有ACK標志(下面介紹)為1時才有效。8.6.1TCP報文段格式4.確認號該字段用4位二進制數表示TCP頭部的長短,它以32位二進制數為一個計數單位。TCP頭部長度一般為20個字節,因此通常它的值為5。但當頭部包含選項時該長度是可變的。頭部長度主要用來標識TCP數據區的開始位置,因此又稱為數據偏移。5.頭部長度保留字段長度為6位,該域必須置0,準備為將來定義TCP新功能時使用。6.保留標志域長度為6位,每1位標志可以打開或關閉一個控制功能,這些控制功能與連接的管理和數據傳輸控制有關。7.標志窗口大小字段長度為16位,它是接收端的流量控制措施,用來告訴另一端它的數據接收能力。連接的每一端把可以接收的最大數據長度(其本質為接收端TCP可用的緩沖區大小)通過TCP發送報文段中的窗口字段通知對方,對方發送數據的總長度不能超過窗口大小。窗口的大小用字節數表示,它起始于確認號字段指明的值,窗口最大長度為65535個字節。通過TCP報文段頭部的窗口刻度選項,它的值可以按比例變化,以提供更大的窗口。8.6.1TCP報文段格式8.窗口大小校驗和字段長度為16位,用于進行差錯校驗。校驗和覆蓋了整個的TCP報文段的頭部和數據區。9.校驗和緊急指針字段長度為16位,只有當URG標志置1時緊急指針才有效,它的值指向緊急數據最后一個字節的位置(如果把它的值與TCP頭部中的序列號相加,則表示緊急數據最后一個字節的序號,在有些實現中指向最后一個字節的下一個字節)。如果URG標志沒有被設置,緊急指針域用0填充。10.緊急指針選項的長度不固定,通過選項使TCP可以提供一些額外的功能。每個選項由選項類型(占1個字節)、該選項的總長度(占1個字節)和選項值組成,如圖8-18所示。8.6.1TCP報文段格式11.選項填充字段的長度不定,用于填充以保證TCP頭部的長度為32位的整數倍,值全為0。12.填充圖8-18TCP選項格式在互聯網中兩臺要進行通信的主機,在一般情況下,總是其中的一臺主動提出通信的請求(客戶機),另一臺被動地響應(服務器)。如果傳輸層使用TCP協議,則在通信之前要求通信的雙方首先要建立一條連接。TCP使用“3次握手”(3-wayHandshake)法來建立一條連接。所謂3次握手,就是指在建立一條連接時通信雙方要交換3次報文。具體過程如下。第1次握手:由客戶機的應用層進程向其傳輸層TCP協議發出建立連接的命令,則客戶機TCP向服務器上提供某特定服務的端口發送一個請求建立連接的報文段,該報文段中SYN被置1,同時包含一個初始序列號x(系統保持著一個隨時間變化的計數器,建立連接時該計數器的值即為初始序列號,因此不同的連接初始序列號不同)。第2次握手:服務器收到建立連接的請求報文段后,發送一個包含服務器初始序號y,SYN被置1,確認號置為x+1的報文段作為應答。確認號加1是為了說明服務器已正確收到一個客戶連接請求報文段,因此從邏輯上來說,一個連接請求占用了一個序號。第3次握手:客戶機收到服務器的應答報文段后,也必須向服務器發送確認號為y+1的報文段進行確認。同時客戶機的TCP協議層通知應用層進程,連接已建立,可以進行數據傳輸了。8.6.2TCP連接的建立與關閉1.建立連接通過以上3次握手,兩臺要通信的主機之間就建立了一條連接,相互知道對方的哪個進程在與自己進行通信,通信時對方傳輸數據的順序號應該是多少。連接建立后通信的雙方可以相互傳輸數據,并且雙方的地位是平等的。如果在建立連接的過程中握手報文段丟失,則可以通過重發機制進行解決。如果服務器端關機,則客戶端收不到服務器端的確認,客戶端按某種機制重發建立連接的請求報文段若干次后,就通知應用進程,連接不能建立(超時)。還有一種情況是當客戶請求的服務在服務器端沒有對應的端口提供時,服務器端以一個復位報文應答(RST=1),連接也不能建立。最后要說明一點,建立連接的TCP報文段中只有報文頭(無選項時長度為20個字節),沒有數據區。8.6.2TCP連接的建立與關閉1.建立連接由于TCP是一個全雙工協議,因此在通信過程中兩臺主機都可以獨立地發送數據,完成數據發送的任何一方可以提出關閉連接的請求。關閉連接時,由于在每個傳輸方向既要發送一個關閉連接的報文段,又要接收對方的確認報文段,因此關閉一個連接要經過4次握手。具體過程如下(下面設客戶機首先提出關閉連接的請求):第1次握手:由客戶機的應用進程向其TCP協議層發出終止連接的命令,則客戶TCP協議層向服務器TCP協議層發送一個FIN被置1的關閉連接的TCP報文段。第2次握手:服務器的TCP協議層收到關閉連接的報文段后,就發出確認,確認號為已收到的最后一個字節的序列號加1,同時把關閉的連接通知其應用進程,告訴它客戶機已經終止了數據傳送。在發送完確認后,服務器如果有數據要發送,則客戶機仍然可以繼續接收數據,因此把這種狀態叫半關閉(Half-close)狀態,因為服務器仍然可以發送數據,并且可以收到客戶機的確認,只是客戶方已無數據發向服務器了。第3次握手:如果服務器應用進程也沒有要發送給客戶方的數據了,就通告其TCP協議層關閉連接。這時服務器的TCP協議層向客戶機的TCP協議層發送一個FIN置1的報文段,要求關閉連接。第4次握手:同樣,客戶機收到關閉連接的報文段后,向服務器發送一個確認,確認號為已收到數據的序列號加1。當服務器收到確認后,整個連接被完全關閉。8.6.2TCP連接的建立與關閉2.關閉連接連接建立和關閉的過程如圖8-19所示,該圖是通信雙方正常工作時的情況。關閉連接時,圖中的u表示服務器已收到數據的序列號,v表示客戶機已收到數據的序列號。8.6.2TCP連接的建立與關閉2.關閉連接圖8-19TCP連接的建立與關閉TCP的確認方式有兩種:一種是利用只有TCP頭部,而沒有數據區的專門確認報文段進行確認;另一種是當通信雙方都有數據要傳輸時,把確認“捎帶”在要傳輸的報文段中進行確認,因此TCP的確認報文段和普通數據報文段沒有什么區別。數據和確認都有可能在傳輸過程中丟失,為此,TCP通過在發送數據時設置一個超時定時器來解決這個問題。在數據傳送出去的同時定時器開始計數,如果當定時器到(溢出)時還沒有收到接收方的確認,那么就重發該數據,定時器也開始重新計時,這就是超時重發。8.6.3TCP的超時重發機制UDP(UserDatagramProtocol)是與網絡層相鄰的上一層常用的一個非常簡單的協議,它的主要功能是在IP層之上提供協議端口功能,以標識源主機和目的主機上的通信進程。因此,UDP只能保證進程之間通信的最基本要求,而沒有提供數據傳輸過程中的可靠性保證措施,通常把它稱為無連接、不可靠的通信協議。UDP協議具有如下特點:(1)UDP是一種無連接、不可靠的數據報傳輸服務協議。UDP不與遠端的UDP模塊保持端對端的連接,它僅僅是把數據報發向網絡,并從網絡接收傳來的數據報。關于連接的問題,學完TCP后可能更容易理解。(2)UDP對數據傳輸過程中惟一的可靠保證措施是進行差錯校驗,如果發生差錯,則只是簡單地拋棄該數據報。(3)如果目的端收到的UDP數據報中的目的端口號不能與當前已使用的某端口號匹配,則將該數據報拋棄,并發送目的端口不可達的ICMP差錯報文。(4)UDP協議在設計時的簡單性,是為了保證UDP在工作時的高效性和低延時性。因此,在服務質量較高的網絡中(如局域網),UDP可以高效地工作。(5)UDP常用于傳輸延時小,對可靠性要求不高,有少量數據要進行傳輸的情況,如DNS(域名服務)、TFTP(簡單文件傳輸)等。8.6.4UDP協議第9章
SERCOS工業
以太網9.1開放式機床數控系統及接口技術80~90年代,美國和歐洲先進制造技術國家先后實施了自動化系統的開放式體系結構,經過多年的發展,開放式體系結構已深入人心。IEEE國際組織規定:開放式系統能提供具有相同的用戶接口,多個廠家的產品能實現兼容,可方便進行裁減。開放式控制系統相關研究在國外開展得比較早,發展源于1981年,已經有很完善的體系及規范,并在許多數控技術廠商中得到應用。為了制定開放式控制系統的體系結構標準,工業發達國家集中各方力量,制定相關的研究計劃并開展了具體的研究工作,其中影響較大的計劃有以下幾個:9.1.1開放式機床數控系統開放式數控系統能很好地解決變化頻繁的需求與封閉控制之間的矛盾,從而建立一個統一的可重構的系統平臺,增強數控系統的柔性,降低制造成本。開放的目的就是使NC控制器與當今的PC機類似。系統構筑于一個開放的PC平臺上,具有模塊化的組織結構。允許用戶根據需要進行選配和集成,更改或擴展系統的功能使其迅速適應不同的應用需求,即系統具有互換性、可伸縮性、可移植性、互操作性、可擴展性等。它實質上是一種通用計算機上的標準應用程序,而非傳統數控系統那樣包含許多插件板的專有硬件系統。⑴美國NGC和OMAC計劃。NGC(NextGenerationWork-station/MachineController,下一代機床控制器)于1989年開始實行,開發相關的標準規范。在NGC的資助下,美國Ford、GM和Chrysler等公司聯合提出OMAC(OpenSystemArchitectureforControlWithinAutomationSystem)開發計劃。容許把流行的硬件和軟件集成為控制器,兼容不同廠家產品,為商品化中的各種問題提供共同的解決方案。⑵歐盟OSACA(OpenSystemArchitectureforControlWithinAutomationSystem)計劃。該計劃是1990年由德國和法國等國家聯合發起的,數控平臺由軟件和硬件組成,包括通信體系結構、參考體系結構、配置系統三個主要組成部分,系統平臺通過應用程序接口對外提供服務,屏蔽了物理硬件的相關性。⑶日本OSEC(OpenSystemEnvironmentforController)計劃。該計劃由日本發起,隨著PC技術的不斷發展,試圖借助PC技術開發新一代高性價的開放式機床數控系統。該系統體系結構包括了七個處理層,每一個處理層包括了NC基本功能部分和可變功能部分,通過可變功能部分實現開放性。9.1.1開放式機床數控系統現場總線技術運用在運動控制領域滿足了開放式機床數控系統對數據通信的要求,引起了廣泛的關注和重視,國外各大數控系統公司紛紛推出了基于現場總線技術的高檔數字化接口協議,應用于運動控制的現場總線接口主要有MACRO、FireWire和SERCOS,三種接口性能對比如表9-1所示。(1)MACRO(MotionAndControlRingOptical)物理層是環形結構,以串行方式通信,每個站有數據接收和發送口。MACRO不是標準化接口,其應用始終局限于DeltaTau公司的產品體系,不具有開放性。(2)FireWire的系統FireWire類似于Ethernet,是一個標準的高速協議(IEEE1394),有較低的產品成本和廣泛的支持。其優點是:等時傳輸數據的能力利于各軸間的精確同步控制,數據傳輸率較高。FireWire只規定了物理層,其它層由生產商自行定義,導致不同廠商之間的總線接口不相容,具有專用性,不具開放性。(3)SERCOS(SerialReal-timeCommunicationSpecification)9.1.2開放式機床數控系統接口技術9.2SERCOS概述SERCOS(SerialReal-timeCommunicationSpecification,串行實時通信協議)是一種專門用于在工業機械電氣設備的控制單元與數字伺服裝置及可編程控制器之間實現串行實時數據通信的協議標準。1986年,德國電力電子協會與德國機床協會聯合召集了歐洲一些機床、驅動系統和CNC設備的主要制造商(Bosch,ABB,AMK,Banmuller,Indramat,Siemens,PacificScientific等)組成了一個聯合小組。該小組旨在開發出一種用于數字控制器與智能驅動器之間的開放性通信接口,以實現CNC技術與伺服驅動技術的分離,從而使整個數控系統能夠模塊化、可重構與可擴展,達到低成本、高效率、強適應性地生產數控機床的目的。經過多年的努力,此技術終于在1989年德國漢諾威國際機床博覽會上展出,這標志著SERCOS總線正式誕生。9.2.1SERCOS的發展第I代和第II代SERCOS網絡由一個主站和若干個從站(1~254個伺服、主軸或PLC)組成,各站之間采用光纜聯接,構成環形網,如圖9-1所示,站間的最大距離為80m(塑料光纖)或250m(玻璃光纖),最大設備數量為254,數據傳輸率為2Mbit/s到16Mbit/s。一個控制單元可以連接一個或多個SERCOS環路,如圖9-2所示,每個環路由一個主站和多個從站組成,主站將控制單元連接到網絡中,從站負責將伺服、PLC等裝置連接到網絡中,每個從站又可連接一個或多個伺服裝置。9.2.2SERCOS的基本特征圖9-1SERCOS通信結構圖9-2SERCOS網絡結構針對前兩代,SERCOSIII的主要特點如下:1)高的傳輸速率,達到全雙工100Mbit/s。2)采用時間槽技術避免了以太網的報文沖突,提高了報文的利用率。3)向下兼容,兼容以前SERCOS總線的所有協議。4)降低了硬件的成本。5)集成了IP協議。6)使從站之間可以交叉通信CC(CrossCommunication)。7)支持多個運動控制器的同步C2C(ControltoControl)。8)擴展了對I/O等控制的支持。9)支持與安全相關的數據的傳輸。10)增加了通信冗余、容錯能力和熱插拔功能。9.2.2SERCOS的基本特征SERCOS具有如下特性:(1)標準性(2)開放性(3)兼容性因為所有的SERCOS接口都是按照國際標準設計,支持不同廠家的應用程序,也支持用戶自己開發的應用程序。接口的功能與具體操作系統、硬件平臺無關。不同的接口之間可以相互替代,移植花費的代價很小。(4)實時性(5)擴展性9.2.3SERCOS的特性SERCOS技術在工業自動化、印刷機械、包裝機械、工業機器人、半導體制造設備和機床工業中得到較為廣泛的應用,特別是在一些高可靠性高精度多軸控制的高端設備中得到很好的應用。9.2.4SERCOS工業應用9.3基于SERCOS總線的通信接口SERCOS為3層計算機網絡協議,定義了物理層、數據鏈路層和應用層,并采用了專用的協議控制器芯片。9.3.1SERCOS協議簡介采用SERCOS接口連接運動控制單元和數字伺服裝置,實現串行數據實時通信,具有以下優點:1)簡化控制單元和伺服裝置之間的接線。2)簡化控制硬件,使調試更方便;可以傳輸參數、指令和狀態等數據。3)數據量增大,通信受干擾影響較小,實現長距離傳輸。1.物理層2.數據鏈路層3.工作時序4.非周期服務通道數據傳輸5.過程命令傳送機制物理層位于計算機網絡的最低層,是一個有形的實體,為實時數據的傳輸提供物理通路,包括傳輸媒介,如電纜、光纖、連接頭,如光纖轉換接口,中繼器等。SERCOS物理層協議包括以下三個方面:拓撲結構,物理信道,編碼格式。1)拓撲結構協議規定以環形拓撲結構實現一個控制單元與多個SERCOS環路連接起來。每個環路由主站和若干個從站構成,每個從站又可以包含多個伺服裝置。2)物理信道物理信道由發送器、接收器和光纖構成。發送器和接收器均封裝在屏蔽套中,該屏蔽套具有符合國際標準IEC874-2的螺紋接頭F-SMA。發送端輸出電信號,經過光纖發送器發出波長為640nm~675nm的紅光。光纖接收器將接收到的紅光轉換成電信號輸出。采用塑料光纖與玻璃光纖,節點與節點之間的最大傳輸距離分別可達40m和800m。3)信號編碼信號編碼格式采用不歸零反向NRZI(NoReturnZeroInverted)編碼格式,可以從接收信號中提取接收時鐘,保證了SERCOS環路上所有從站的內部定時器都與主站的發送時鐘同步。9.3.1SERCOS協議簡介1.物理層SERCOS協議規定了主站同步報文、主站數據報文、伺服報文三種報文結構,SERCOS協議的報文結構如表9-2所示。1)主站同步報文MST(MasterSyncTelegram):主站以廣播形式周期性向各從站發送MST,主要用于同步主站和各個從站的通信周期。2)主站數據報文MDT(MasterDataTelegram):主站周期性以廣播形式向各從站發送MDT,各從站從MDT報文中提取屬于自己的數據。MDT主要包括位置指令值、速度指令值、系統參數或過程命令等數據。3)伺服報文AT(DriveTelegram):各從站周期性發送AT報文到主站,反饋從站實際位置值、實際速度值、狀態數據或過程命令應答等數據。9.3.1SERCOS協議簡介2.數據鏈路層表9-2SERCOS協議的報文結構SERCOS接口運行過程分為五個通信階段CP0~CP4,每個通信階段由主站發送報文報文,從站被動接收,并中繼和反饋數據回主站。CP0~CP3為通信初始化階段,用來設定整個通信統周期通信所需要的參數,當這4個相位成功執行并設定完參數后,才能進入正常的操作模式CP4,即伺服工作階段。整個初始化設定即以非周期性傳輸來建立系統的周期性傳輸。每個通信階段都有特定的的功能,必須依序進行,否則SERCOS無法進入正常運行階段,即CP4,如果通信期間出現錯誤,必須重新返回CP0進行初始化。9.3.1SERCOS協議簡介3.工作時序SERCOS接口的運行過程如下:CP0:由主站發送MST發起一個通信周期,從站接收到MST利用本身的中繼功能瞬時發往下一個從站,同理MST被接力傳送回主站。由此,主站通過判斷是否接收到MST來判斷環路的閉合。CP1:主站與連接在環路上的各個從站進行數據交換完成伺服裝置的識別任務。CP2:主站以非周期數據傳輸的方式與各伺服從站通信,配置支持周期通信所要設置的一些參數。主要包括:控制單元周期時間,CP3、CP4通信周期,AT報文發送時刻,MDT報文發送時刻,指令值有效及報文反饋時刻,各伺服從站數據在MDT報文中偏移位置,MDT報文中數據記錄的總長度,報文類型以及運行模式。CP3:通過非周期數據傳輸設置各伺服裝置運行參數。設置參數后完成初始化過程,進入CP4階段。CP4:正常運行階段。傳輸的各配置參數開始生效,此時總線時間槽上周期性傳輸MST、各從站伺服報文AT及MDT,主站接收到所有的伺服報文,開始發送主站數據報文MDT,MDT中包含了屬于各個從站的控制信息,從站能夠從中提取屬于自己的數據記錄,至此就完成了數據交換的通信過程。9.3.1SERCOS協議簡介3.工作時序根據SERCOS協議內容,周期性數據的傳輸是建立在非周期數據傳輸的基礎上,只有通過對各個從站進行非周期數據的傳輸才能設置從站與主站的通信參數,才能完成整個SERCOS通信的初始化,因此掌握非周期數據傳輸機制對SERCOS通信非常關鍵。從SERCOS報文結構知道,SERCOS協議利用數據記錄的可配置部分傳輸周期數據,利用數據記錄的固定部分傳輸非周期數據。非周期數據通過SERCOS協議的服務通道傳輸,執行以下任務:1)SERCOS接口的初始化。2)傳輸一個數據塊的所有元素。3)傳輸過程命令。4)設置伺服裝置的配置參數。5)從伺服裝置獲取詳細的狀態信息。6)診斷功能。非周期數據傳輸的特點是:待傳輸的數據是一種數據塊結構,不僅包含數據值,另外還有IDN(識別號)、名稱、屬性、單位、極限值,每個元素都有特定的含義,通過這種方式實現SERCOS的高效率運動控制數據交換。但是完成一次數據塊交換需要在幾個通信周期才能完成,每個通信周期只負責傳輸數據塊的一個元素,這種通信方式稱為非周期數據傳輸。通過實時更改MDT報文的控制位和AT報文的狀態位實現服務數據塊的讀寫,也就完成了參數傳輸。9.3.1SERCOS協議簡介4.非周期服務通道數據傳輸在SERCOS接口中通過服務通道來傳輸過程命令。可以把一個過程命令視作一個特殊的非周期數據。它在驅動器和主站中調用某一固定的函數過程。這些過程命令可能要占用較多時間。為此,一個過程命令只是啟動一個函數過程,在啟動了它的功能后,服務通道又可以立即傳送其他的非周期數據或過程命令。過程命令功能由主站啟動,由從站執行。通過寫元素7,主站通過MDT的主站服務數據域將“過程命令控制”發往伺服裝置,控制過程命令的設置、啟動、中斷和撤銷。從站通過AT的伺服服務數據域將“過程命令應答”反饋回主站,并結合AT狀態字向主站報告過程命令的執行情況。9.3.1SERCOS協議簡介5.過程命令傳送機制實時性在計算機網絡中指數據的快速響應能力,在嵌入式控制系統中指事件能夠準確的時間內發生,有較好的定時機制,各處的時鐘能達到一致。也即數據可訪問時間的可確定性。機床數控系統對控制指令執行的實時性和同步性較為苛刻,通信實時性是影響系統實現高速、高精加工的主要瓶頸之一,特別在多軸聯動伺服運行控制應用場合。9.3.2SERCOS實時通信與同步機理1.實時性傳輸基于脈沖給定的數控機床各軸的速度和位置命令是通過信號電纜給定的。各種驅動對設定值的執行是自由的,這意味著各軸之間執行指令無法保證同步。采用SERCOS總線結構可以改善各個進給驅動的同步性進而改善各個軸的協調性。SERCOS同步機制如下:SERCOS通信周期以主站發送MST同步報文為基準,由于MST同步報文非常短,在忽略光纖環路的時間延遲下,MST同步報文將同時到達各伺服從站,各伺服從站同時讀取到同步信息,以此基準,設定接口芯片內部硬件定時器,并開始計數,與存儲在主從站內部的各時間參數作比較,如果相等則觸發相應的事件,使每個伺服從站保證它的發送時間槽和反饋采集捕捉點同步,有效地保證了指令數據的同時到達及反饋數據的同時采集。采用周期性的傳輸也可忽略位填充引起的短暫波動。2.SERCOS同步機理9.4SERCOS通信協議SERCOS協議的發展歷程如下:1995:IECStandardIEC61491(Ed.9.0)1999:ENStandardIEC61491(Ed.9.0)2002:IECStandardIEC61491(Ed.2.0)2007:IECStandardIEC61800-7(Ed9.0,SERCOSDriveProfile)IECStandardIEC61784-1(Ed2.0andIEC61158Standards,FieldbusProfiles,SERCOSI/II)ECStandardIEC61784-2(Ed9.0andIEC61158Standards,Real-TimeEthernetProfiles,SERCOSIII)IECStandardIEC61784-3(Ed9.0,Safetybuses,CIPSafety)經過多年的發展和完善,SERCOS協議已成為覆蓋驅動、I/O控制和安全控制的標準總線之一。下面主要以SERCOSIII為例介紹它的協議。SERCOSIII是建立在以太網IEEE802.3標準上的,其物理層對通信介質、速度和拓撲結構等的要求基本相同,每一個SERCOS從站有兩個通信接口P1和P2,P1和P2可以交換。通信通道被分成兩條,第一通道P和第二通道S,如圖9-3所示。9.4.1SERCOS物理層的通信接口和拓撲結構圖9-3SERCOS通信接口一個站點內的通信傳遞方式有三種,雙通道向前方式(Fast-Forward)、第一通道環路返回(Loopback)及向前方式和第二通道環路返回及向前方式。SERCOSIII采用線形或環形拓撲結構,如圖9-4所示。9.4.1SERCOS物理層的通信接口和拓撲結構圖9-4SERCOS拓撲結構SERCOSIII信息幀如圖9-6所示。9.4.2SERCOS報文結構圖9-4SERCOS拓撲結構SERCOSIII信息幀具體解釋如下:1)IDLE:表示通信空閑狀態。2)SSD:通信數據流起始標識符。3)Preamble:為前導碼,表示MAC幀的開始。4)SFD:界定符(StartFrameDelimiter)。5)目的地址(DestinationAddress)。6)源地址(SourceAddress)。7)類型:0x88CD表示是SERCOSIII通信幀。8)MST:SERCOSIII信息頭。9)DataField:數據區。10)FCS:效驗碼(FrameCheckSequence)。11)ESD:通信數據流結束標識符。報文結構同標準以太網的報文類似,其中在類型和長度字段用0x88CD表示這是一幀SERCOS報文,數據區長度有40~1494字節長,根據具體使用環境設置。一幀SERCOS報文長度為72~1526字節,需要5.8μs~122.1μs的時間傳遞。MST的第一個字節為SERCOS類型標志。SERCOSIII通信循環一般由RT實時通道和NRT非實時IP通道組成,其中RT通道由2~8個SERCOS幀組成,其中1~4個主站數據報文MDT(MasterDataTelegram)和1~4個伺服報文AT(AcknowledgeTelegram),循環周期為39.25μs到65ms,如圖9-7所示。9.4.2SERCOS報文結構圖9-7SERCOS通信幀的組成每一個MDT和AT都是一個以太網通信幀,概括來講它由三部分組成,以太網報文頭HDR(Header)、MST和數據區,其中第一個MDT0的MST用于通信的幀同步,如圖9-8所示。每一個循環都由MDT0始,從以太網報頭開始到MST共22個字節,傳輸需要固定的2.24μs,從站收到這個MST后進行幀同步處理。9.4.2SERCOS報文結構圖9-8幀同步數據區MDT/AT的組成如圖9-9所示。9.4.2SERCOS報文結構圖9-9數據區的組成SERCOS的網絡通信由主站建立,從初始化到開始循環實時通信分為五個階段CP0~CP4,在圖9-8中的MST狀態位中說明,表9-8是其詳細說明,其中CP0~CP3為初始化階段,完成初始化后,進入正常工作階段CP4。在任何高階的通信階段都可以回到CP0階段從新進行初始化工作,而向高級階段升級必須要逐步一級一級轉變。9.4.3通信的建立表9-8MST狀態位通過在主站MST的狀態字中設置不同的通信階段字,從站接收到狀態字后進行處理,如果正常,則通知主站,主站開始下一階段工作;如果不正常,則退回到開始,重新進行網絡初始化,圖9-10是狀態轉移圖,圖9-10中的CPx表示轉換過程。9.4.3通信的建立圖9-10狀態轉移圖SERCOS通信建立的流程如下:1)系統上電后主站和從站都直接進入通常的以太網模式,也就是通信只有NRT通道開放,可進行一般的以太網通信。2)CP0階段主站開始初始化工作,用來檢查環路是否閉合以及識別所有連在網絡上的從站。3)CP1階段用來配置從站進行非循環的通信。4)CP2階段進行從站參數的設置及對從站的循環通信進行配置。5)CP3階段用來對從站進行進一步的配置,并準備好循環實時通信方式。6)CP4階段開始SERCOS的循環實時通信。正常通信過程中如果有熱插拔發生,則通過HP0~HP2三個階段又恢復到正常通信狀態。9.4.3通信的建立非周期性數據的傳遞分為參數傳遞和過程命令傳遞兩類,每個參數和過程命令都有唯一的標識號IDN,主要包括通信參數、診斷參數、報文內容定義參數、伺服模式參數、伺服運行參數、電動機參數和機械參數等,通過服務通道可以進行:1)通信的初始化工作。2)IDN數據塊所有元素的傳遞。3)過程命令的傳遞。4)改變極限值操作。5)改變控制環參數的操作。6)獲取從站詳細的狀態信息。7)診斷功能。9.4.4數據傳遞過程SERCOS中所有參數和過程命令都是以IDN(IdentificationNumber)的形式存儲和傳遞,以前版本的SERCOS僅僅針對伺服系統,現在SERCOSIIIIDN將其擴展到了I/O設備、人機界面監視器等控制領域。每一個IDN都對應一個數據塊,通過IDN號就能唯一確定數據塊的內容,如表9-12所示。它由7個元素組成,其中有可選擇的元素,元素1、3、7是必選的,具體元素由服務通道的控制字相應位來選擇。9.4.5SERCONIDN表9-12IDN數據塊IDN的結構:IDN分成標準的IDN和特殊產品的IDN兩類,每一類又分為8個參數集,每一個集包含4095個IDN,每一個IDN可含有256個結構實例和256個結構元素,在報文中IDN以32Bit二進制數進行傳遞,如表9-13所示。9.4.5SERCONIDN表9-13IDN結構SERCOSIII采用了CIP安全標準,它在原來SERCOS安全機制的基礎上增加了安全應用層,如圖9-16所示。9.4.6SERCOS安全網絡圖9-16SERCOS安全網絡9.5SERCOS在數控系統中應用SERCOS接口在控制器和驅動器間傳送光數據,有效地排除了噪聲干擾。每一光纜環可以連接的驅動器數量取決于周期時間、數據量、傳輸速率。每一控制器連接的驅動器數量可以用多個光纜來擴展。SERCOS接口規范標準化了控制器和驅動器間交換操作數據段格式和比例因子。在初始化階段,根據控制器和驅動器的工作特征,配置對接口的操作。無論驅動器還是控制器都能執行速度和位置控制,由于數據格式的靈活性,可用于多種控制結構和操作模式。通過命令值和反饋值的周期數據交換、精確等長的時序、測量值和命令值的同步,控制器能夠與所有被連接的驅動器同步。9.5.1工作原理SERCOS接口采用環形拓撲結構,一個控制單元可以帶一個或多個SERCOS環路。每個環路由一個主站和多個從站組成,主站負責將控制單元連接到環路上,從站負責將伺服裝置連接到環路上。每個從站又可以連接一個或多個伺服裝置。從理論上說,一個主站最多可以控制254個伺服裝置,但在實際應用中,每個主站控制的伺服裝置總數受諸多因數的影響,例如:SERCOS通信周期時間、運行模式以及數據傳輸率等。除了采用更快的協議芯片獲得更高的數據傳輸率,使每個環路可以連接更多的伺服裝置以外,還可以通過增加環路數量,來增加每個控制單元所控制的伺服裝置總數。環路上一個主站與多個從站結構如圖9-17所示。9.5.2SERCOS接口拓撲結構圖9-17環路上一個主站與多個從站結構SERCOS接口實現了周期數據傳送中的同步,即控制器的操作周期與接口通信周期和驅動器的操作周期同步,從而避免了各周期間的差拍,把控制環的延遲降到最小。這也暗示了所有驅動器同時起動新的命令,同時進行測量,把測量值作為反饋值發送到控制器,它要求傳送周期嚴格等長。具體同步機制如下:SERCOS通信周期以主站發送MST同步報文為基準,由于MST同步報文非常短,在忽略光纖環路的時間延遲下,MST同步報文將同時到達各伺服從站,各伺服從站同時讀取到同步信息,以此基準,設定接口芯片內部硬件定時器,并開始計數,與存儲在主從站內部的各時間參數作比較,如果相等則觸發相應的事件,使每個伺服從站保證它的發送時間槽和反饋采集捕捉點同步,有效地保證了指令數據的同時到達及反饋數據的同時采集。控制器與驅動器間的所有數據交換都是通過報文來進行的。SERCOS接口協議定義了三種報文:(1)主站同步報文MST(MasterSyncTelegram):主站以廣播形式周期性向各從站發送MST,主要用于同步主站和各個從站的通信周期。(2)主站數據報文MDT(MasterDataTelegram):主站周期性以廣播形式向各從站發送MDT,各從站從MDT報文中提取屬于自己的數據。MDT主要包括位置指令值、速度指令值、系統參數或過程命令等數據。9.5.3數據傳輸模式主站數據報文MDT的報文結構如圖9-18所示。9.5.3數據傳輸模式圖9-18主站數據報文MDT的報文結構(3)伺服報文AT(DriveTelegram):各從站周期性發送AT報文到主站,反饋從站實際位置值、實際速度值、狀態數據或過程命令應答等數據。伺服從站AT的報文結構如圖9-19所示。圖9-19伺服從站AT的報文結構所有由SERCOS接口處理的數據都賦予一個ID號(IDN),此類數據稱為操作數據,它包括參數、系統過程命令、命令值和反饋值。參數:它用于調整驅動器和控制器,以保證系統的無措操作。系統過程命令:它用于激活驅動器內的函數過程或者控制器和驅動器間的函數。命令值和反饋值:通常作為周期交換數據包含在報文中。按照不同通信階段數據傳輸內容的不同,可分為周期傳輸數據和非周期傳輸數據。1)周期模式交換的數據在一個通信周期內,從控制器向每個驅動器發送一個控制字,從每個驅動器向控制器發送回一個狀態字。可以把控制字和狀態字的信息分為兩類:①與數據傳送相關的信息:控制非周期傳送(控制/確認),為周期傳送提供兩個實時控制/狀態位;②與驅動器相關的信息:在控制字內:要求的操作模式,發送“驅動器啟動”和“驅動器使能”命令。2)非周期傳輸模式交換的數據傳輸的數據包括參數和過程命令,數據交換的速度比周期傳輸模式慢得多。9.5.4數據傳送內容SERCOS接口的運行過程分為如下五個通信階段CP0~CP4:1)CP0階段用于檢查環路是否閉合。2)CP1階段用于識別所有連接在環路上的伺服裝置。3)CP2階段的主要任務是通過非周期數據傳輸設置周期通信所需要的配置參數。4)CP3階段通過非周期數據傳輸設置各伺服裝置的運行參數。5)CP4正常運行階段。具體過程如下:1)CP0階段控制系統接通電源后,主站和各從站直接進入CP0階段。此時,所有從站都工作在中繼器模式下,只有主站發送主站同步報文MST,檢查環路是否閉合。如果主站能夠連續10次以上收到自己所發的MST,表示環路閉合,系統正常工作,可進入CP1階段。2)CP1階段在CP1階段,主站向每個伺服裝置發送MDT報文,此時MDT的地址域包含待識別的伺服裝置的地址。如果被識別的伺服裝置工作正常,它應在下一個通信周期發送一個AT報文作為應答。如果所有伺服裝置都正確做出應答,則可進入CP2階段。9.5.5SERCOS接口初始化3)CP2階段CP2階段為周期性數據傳輸做準備,其數據交換采用非周期數據傳輸方式完成。主站通過伺服地址分別訪問各個伺服裝置,進行非周期數據傳輸,與伺服裝置交換配置參數。在進入CP3之前,主站通過發送“CP3切換檢查”過程命令,以檢查支持周期性通信的參數是否已經設置正確。當所有伺服裝置都對該過程命令做出正確應答,才允許主站發出CP3切換命令。4)CP3階段主站與伺服裝置以廣播形式進行通信,MDT的地址域中包含廣播地址255。CP3階段的工作時序由CP2階段設置的參數決定,CP3階段的主要任務是通過非周期數據傳輸設置伺服正常允許時所需的參數。當所有伺服裝置都對該過程命令做出正應答,即“過程命令已正確執行”以后,才允許主站從CP3切換到CP4。5)CP4階段如果成功切換至CP4階段,則初始化過程結束,系統進入正常運行階段。9.5.5SERCOS接口初始化9.6SERCOS接口控制器SERCON816SERCOS接口控制器SERCON816是用于SERCOS接口通信系統的集成電路。SERCOS接口是一個用于系統之間通信的數字接口,這些系統必須以固定的短間隔(62.5μs~65ms)周期性地交換信息。它適用于分布式控制或測試設備的同步操作(例如,驅動器和數控之間的連接)。SERCOS接口控制器包含SERCOS接口的所有硬件相關功能,大大降低了硬件成本和微處理器的計算時間要求。它是光纖接收器和發射器與執行控制算法的微處理器之間的直接鏈接。SERCON816可用于SERCOS接口主站和從站。SERCON816結構框圖如圖9-20所示。9.6.1SERCON816概述SERCON816結構框圖如圖9-20所示。9.6.1SERCON816概述圖9-20SERCON816結構框圖SERCON816包含以下功能:1)與具有8位或16位數據總線寬度的微處理器的接口,以及符合Intel或Motorola標準的控制線。2)一個串行接口,用于與光纖環的光學接收器和發射器或與電環或總線的驅動器直接連接。集成了數據和時鐘再生、環形拓撲中繼器以及串行發送器和接收器。監測信號并生成測試信號。串行接口的運行速度高達16Mbaud,無需外部電路。3)用于控制和通信數據的雙端口RAM(2048*16位)。內存的組織是靈活的。4)用于自動傳輸和監控同步和數據報文的報文處理。僅處理用于特定接口用戶的傳輸數據。傳輸的數據要么存儲在內部RAM(單緩沖區或雙緩沖區)中,要么通過直接內存訪問(DMA))傳輸。在多個通信周期內傳輸服務通道信息自動執行。除SERCOS接口外,SERCON816還可用于其他實時通信任務。作為光纖環的替代方案,還支持帶有RS-485信號的總線拓撲。9.6.1SERCON816概述SERCON816具有如下特性:1)SERCOS接口的單片控制器。2)工業控制系統的實時通信。3)8/16位總線接口,Intel和Motorola控制信號。4)帶2048字*16位的雙端口RAM。5)通過光纖環、RS485環和RS485總線進行數據通信。6)帶內部時鐘恢復,最大傳輸速率為16MBaud。7)用于環形連接的內部中繼器。8)全雙工操作。9)光發射二極管的功率調制。10)在通信周期中自動傳輸同步和數據報文。11)靈活的RAM配置,通信數據存儲在RAM中(單緩沖區或雙緩沖區)或通過DMA傳輸。12)外部信號同步。13)定時控制信號。14)自動服務通道傳輸。15)監視軟件和外部同步信號的看門狗。16)SERCON410BSERCOS接口控制器的兼容模式。17)100引腳QFP封裝。9.6.2SERCON816的特性SERCON816引腳圖如圖9-21所示。9.6.3SERCON816引腳描述圖9-21SERCON816引腳圖9.7SERCON816總線的接口SERCOS接口芯片是實現運動控制單元與伺服裝置之間數字通信的接口,主要實現SERCOS物理層和數據鏈路層協議報文的處理。SERCOS接口控制器與微處理器通過總線形式連接,通過中斷響應事件來觸發控制器的工作,如圖9-24所示,由圖9-24可知,SERCON816是一種可以虛擬為微處理器外圍存儲器的外圍設備。9.7.1SERCON816與微處理器的連接圖9-24SERCON816與微處理器的連接圖SERCON816
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 伊春市上甘嶺區2025屆四下數學期末學業水平測試模擬試題含解析
- 上海思博職業技術學院《數控技術及應用》2023-2024學年第二學期期末試卷
- 景德鎮陶瓷職業技術學院《建筑工程定額與預算》2023-2024學年第二學期期末試卷
- 昆明理工大學津橋學院《基礎日語(IV)》2023-2024學年第一學期期末試卷
- 石家莊工商職業學院《生物醫學產品標準及生產法規》2023-2024學年第一學期期末試卷
- 廈門東海職業技術學院《中學生物教育技術》2023-2024學年第二學期期末試卷
- 山東石油化工學院《中外文化概論》2023-2024學年第一學期期末試卷
- 江西婺源縣重點達標名校2025年初三下學期第二次質檢語文試題含解析
- 蘇州工業園區服務外包職業學院《DeutschIntensivⅡ》2023-2024學年第二學期期末試卷
- 四川省成都市青羊區部分校2024-2025學年中考模擬最后十套:語文試題(三)考前提分仿真卷含解析
- DB11 854-2012 占道作業交通安全設施設置技術要求
- 解讀2024年《學紀、知紀、明紀、守紀》全文課件
- 合同模板保密協議
- 2024-2030年中國地鐵通信行業發展分析及發展前景與趨勢預測研究報告
- 2024年碳排放管理員(高級工)職業鑒定考試題庫及答案
- 客戶體驗在金融業中的重要性
- DL∕T 5210.4-2018 電力建設施工質量驗收規程 第4部分:熱工儀表及控制裝置
- B江水利樞紐工程畢業設計計算書
- HG+20231-2014化學工業建設項目試車規范
- 2024海南中考化學二輪重點專題突破 專題三 流程圖題(課件)
- 急性冠脈綜合征患者健康教育
評論
0/150
提交評論