專利名稱:一種網(wǎng)絡(luò)層的打包解包方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集成電路技術(shù)領(lǐng)域,具體涉及一種應(yīng)用于工業(yè)控制系統(tǒng)中 的網(wǎng)絡(luò)層的打包解包方法。
技術(shù)背景在互聯(lián)網(wǎng)高度發(fā)達的今天,越來越多的數(shù)據(jù)、圖像依靠網(wǎng)絡(luò)來實現(xiàn)不 同系統(tǒng)之間的傳輸和通信。因此,提供一個高效穩(wěn)定的網(wǎng)絡(luò)層的打包解包 服務(wù)必將會大大提高整個通信系統(tǒng)的運行效率,提高數(shù)據(jù)傳輸和通信控制 的服務(wù)質(zhì)量。在實時同步通信系統(tǒng)中,設(shè)備之間需要保持精確的時鐘同歩, 如果用戶之間能夠把各自的時間進行互相傳遞,進而選擇一個比較準確的 主時鐘進行同步,這對整個系統(tǒng)設(shè)備之間的同步工作有著重要的意義。若 能夠在通信的較低層即網(wǎng)絡(luò)層提供一種數(shù)據(jù)包的實時記錄服務(wù),可以增強 通信系統(tǒng)的實時性,提高設(shè)備之間的同步精度。一般情況下,網(wǎng)絡(luò)層的數(shù)據(jù)組裝格式有很多種,如用于硬件接口地址和IP地址對應(yīng)的ARP報文,用于可靠數(shù)據(jù)流傳輸?shù)腡CP報文,提供面向操 作的簡單不可靠信息傳送服務(wù)的UDP報文,給網(wǎng)絡(luò)層提供錯誤診斷、擁塞 控制、路徑控制和査詢服務(wù)的ICMP等報文。在工業(yè)應(yīng)用中,通過發(fā)送PTP 報文來實現(xiàn)不同設(shè)備之間時鐘信息的傳輸和同步操作,還有其他各種用于 調(diào)度的報文等。若處理這些報文的模塊都單獨進行打包解包服務(wù),不同的 模塊同時對IP層進行訪問時,必然會引起沖突,若想保證穩(wěn)定安全地進行 數(shù)據(jù)報文的傳輸,必須引入仲裁機制,這必然增加了系統(tǒng)控制的復(fù)雜度, 增加硬件面積。 發(fā)明內(nèi)容本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提供一種能夠?qū)崿F(xiàn)時鐘同步功 能的網(wǎng)絡(luò)層的打包解包方法。本發(fā)明的網(wǎng)絡(luò)層打包解包方法包括打包流程和解包流程。打包流程接受上層的中斷信號以及相應(yīng)的報文信息,根據(jù)此報文信息, 到上層的數(shù)據(jù)存儲區(qū)讀出數(shù)據(jù)包,添加IP頭和MAC頭后,傳輸給下層的網(wǎng) 絡(luò)設(shè)備器。解包流程接受下層網(wǎng)絡(luò)設(shè)備器的數(shù)據(jù)中斷信息,讀取網(wǎng)絡(luò)設(shè)備中的數(shù)據(jù)包,去除MAC頭和IP頭,并根據(jù)IP頭中的數(shù)據(jù)報文的類型將剩余的數(shù)據(jù)部分,按照上層要求,傳送到數(shù)據(jù)緩沖區(qū)。本發(fā)明中網(wǎng)絡(luò)層打包方法的具體步驟是1、 接受上層中斷信號,從數(shù)據(jù)信息寄存器中讀取需要打包的數(shù)據(jù)信息 以及存儲的位置,根據(jù)數(shù)據(jù)信息寄存器的具體格式,確定具體的報文信息, 報文信息包括數(shù)據(jù)報文的類型、需要的服務(wù)、打包優(yōu)先級、存放的緩沖區(qū) 地址;2、 根據(jù)報文信息到相應(yīng)的數(shù)據(jù)存儲區(qū)進行數(shù)據(jù)的讀取,具體為如果上層需要發(fā)送ARP報文,則根據(jù)報文信息中的存儲信息,從存放ARP數(shù)據(jù)的存儲區(qū)域讀出該數(shù)據(jù),同時按照ARP協(xié)議規(guī)定的格式提供打包服務(wù);如果上層需要發(fā)送PTP報文,則給存放PTP數(shù)據(jù)的存儲區(qū)域發(fā)送使能信號, 同時從存放PTP數(shù)據(jù)的存儲區(qū)域讀取數(shù)據(jù),由于PTP中的follow up報文 需要發(fā)送與其對應(yīng)的Sync報文的確切發(fā)送時間,所以,在下層網(wǎng)卡給出發(fā) 送完畢中斷時,IP層記下該發(fā)送時間并且把該時間戳打到隨后發(fā)送的 follow up報文中;如果需要發(fā)送用戶數(shù)據(jù)時,上層給出用戶信息,用戶 信息包括對方IP地址、需要提供的服務(wù)類型和數(shù)據(jù)部分的長度,打包模塊 根據(jù)對方IP地址,到IP-MAC査找表中尋找該IP地址對應(yīng)的MAC地址,然 后按照用戶信息中規(guī)定的報文格式進行打包;如果上層需要發(fā)送ICMP報文 時,提供一個中斷信號和相應(yīng)的類型信息,按照ICMP協(xié)議規(guī)定的報文格式 進行數(shù)據(jù)的組成和發(fā)送;如果上層需要發(fā)送用于工業(yè)控制的EPA報文,上 層給出發(fā)送使能信號后,添加常量數(shù)據(jù),常量數(shù)據(jù)即EPA報文的數(shù)據(jù)字段, 為20H或者21H。所有這些報文都需要用到添加MAC頭和IP頭以及進行CRC 校驗和的計算,在具體實現(xiàn)中,可以把這些相同功能放在一個單獨的處理流程中進行處理,此流程按照IP層的協(xié)議格式進行打包服務(wù),當需要該功 能時,只需要調(diào)用此流程,這樣便可以大大簡化系統(tǒng)復(fù)雜度,節(jié)省芯片面 積。3、打包完畢后,給上層控制系統(tǒng)發(fā)送一個結(jié)束信號,標志該數(shù)據(jù)報文己經(jīng)發(fā)送完成,可以發(fā)送下一個報文。本發(fā)明中網(wǎng)絡(luò)層解包方法的具體步驟是1、 收到網(wǎng)卡給出數(shù)據(jù)接收中斷后,記錄下該中斷信息,并傳遞給上層 的PTP處理單元以便其記錄收包時間,這樣,在最底層記錄時間,可以提 高PTP報文時間戳的準確度。2、 解除所接收報文的MAC頭和IP頭,這一步完成IP層的基本解包功能,具體方式為保留需要的對方IP地址、長度信息、數(shù)據(jù)類型以及服務(wù)優(yōu) 先級以供上層查詢,其余字段丟棄。3、 判斷所接收報文的類型,并按照該類型做不同處理,具體為如果 該報文為ARP、 ICMP和PTP報文,將該報文直接傳輸給上層;如果該報文 為用戶數(shù)據(jù)報文,解除IP頭和MAC頭后,將用戶數(shù)據(jù)部分直接傳送至RAM 中,為了區(qū)分該數(shù)據(jù)報文的來源以及長度,類型等信息,在每個用戶數(shù)據(jù) 報的前面設(shè)置一段存儲區(qū)域用于存儲該用戶數(shù)據(jù)的相關(guān)信息,解包完畢。用戶數(shù)據(jù)的相關(guān)信息的具體格式首先為該報文的長度信息,這樣有利于用戶對數(shù)據(jù)報文的讀取控制;其次為該報文的類型,該類型字段可以按照 需要具體定義,如TCP報文定義為1, UDP報文定義為2,第3, 4字段為 源IP地址和端口,用于區(qū)別報文的來源,第5字段為目的地址,表示該報 文和本機的哪一個端口進行通信,第6, 7, 8字段分別為IP頭中的相關(guān)信 息。4、 解包完畢后,給上層發(fā)送一個解包完畢信號,標志該數(shù)據(jù)報文已經(jīng) 接受并處理結(jié)束。本發(fā)明中的寄存器和數(shù)據(jù)緩沖區(qū)的讀取和寫入等為基本技術(shù)常識,采 用通用技術(shù)手段。本發(fā)明的發(fā)明點在于提供一種提高網(wǎng)絡(luò)層打包解包效率,降低其流程復(fù)雜性的一種方法。本發(fā)明的IP打包解包方法,通過引入報文的數(shù)據(jù)信息寄存器,共享 MAC頭和IP頭的添加和丟棄單元,簡化了整個系統(tǒng)的控制復(fù)雜度,節(jié)省硬 件面積,特別適用于基于以太網(wǎng)的工業(yè)控制系統(tǒng)中。
圖1是本發(fā)明中的打包總流程框圖; 圖2是本發(fā)明中的解包總流程框圖; 圖3是16位的數(shù)據(jù)信息寄存器; 圖4是圖2解包流程的詳細流程圖; 圖5是用戶數(shù)據(jù)信息存放格式。
具體實施方式
下面結(jié)合附圖和具體實施例進一步說明本發(fā)明方法。本發(fā)明打包解包方法是基于上層的ARP報文,ICMP報文,TCP報文,UDP報文,用于精確 時間同步的PTP報文,用于報文調(diào)度的EPA報文,根據(jù)EPA協(xié)議的規(guī)定, 報文必須在規(guī)定的周期時間點和非周期時間點進行發(fā)送,非周期報文發(fā)送 按照一定的優(yōu)先級進行,所以,IP層在進行數(shù)據(jù)傳輸時,必須從上層得到 該優(yōu)先級信息。下面給出該實施過程的詳細說明。1、如圖l,接受上層中斷信號,從數(shù)據(jù)信息寄存器中讀取需要打包的 數(shù)據(jù)信息以及存儲的位置,根據(jù)數(shù)據(jù)信息寄存器的具體格式,進一步確定 具體的報文信息,包括該數(shù)據(jù)報文的類型,需要的服務(wù),打包優(yōu)先級,存 放的緩沖區(qū)地址。數(shù)據(jù)信息寄存器的具體格式如圖2。其中,第15和14 位為保留位,13-11位為非周期報文申明報文和非周期結(jié)束報文的優(yōu)先級, 如果該值為0,表示需要發(fā)送的是周期報文,直接進行周期報文數(shù)據(jù)格式 的組裝,如果該值為1-5,表示需要發(fā)送的是非周期報文,該值是此報文 的優(yōu)先級,如果該值為6-7,表示沒有優(yōu)先級。第10-3位為數(shù)據(jù)信息的格 式,其中第8-7位表示需要打包的是哪種數(shù)據(jù)報文,如果該值為0,表示 需要發(fā)送的是ICMP數(shù)據(jù)報文,為1表示IP層需要從用戶緩沖區(qū)中讀取數(shù)據(jù),根據(jù)用戶的要求進行打包,為2表示所需要發(fā)送的是ARP報文,為3 表示需要發(fā)送的是PTP報文。第6-3位表示用戶數(shù)據(jù)在RAM中的存儲信息。 第2-0為數(shù)據(jù)類型判別位,若為00,表示要發(fā)送的數(shù)據(jù)報文為非周期報文, 包括ICMP, ARP, PTP,以及用戶報文,為了進一步確定具體的報文信息, 還必須査詢前面所述的第8-7位,如果為2,表明要發(fā)送的是非周期申明 牛艮文,i亥報文具有——定的優(yōu)先級信總,必須至(J前面所述的第13—11位查看 優(yōu)先級信息,如果為4,表明要發(fā)送的是非周期申明報文的結(jié)束報文,也 必須到前面所述的第13-11為查看優(yōu)先級信息。2、得到需要發(fā)送的數(shù)據(jù)報文的存儲信息后,可以根據(jù)該信息到相應(yīng)的 數(shù)據(jù)存儲區(qū)進行數(shù)據(jù)的讀取操作。具體為如果上層需要發(fā)送ARP報文, 則根據(jù)數(shù)據(jù)報文的存儲信息,從存放ARP數(shù)據(jù)的存儲區(qū)域讀出該數(shù)據(jù),同 時按照ARP協(xié)議規(guī)定的格式提供打包服務(wù)。如果上層需要發(fā)送PTP報文, 則給存放PTP數(shù)據(jù)的存儲區(qū)域發(fā)送使能信號同時從存放PTP數(shù)據(jù)的存儲區(qū) 域讀取數(shù)據(jù),由于PTP中的follow up報文需要發(fā)送與其對應(yīng)的Sync報 文的確切發(fā)送時間,所以,在下層網(wǎng)卡給出發(fā)送完畢中斷時,IP層記下該 發(fā)送時間并且把該時間戳打到隨后發(fā)送的follow up報文中。如果需要發(fā)送用戶數(shù)據(jù)時,上層只需要給出對方IP地址,需要提供的服務(wù)類型,數(shù)據(jù) 部分的長度等基本信息即可,打包模塊根據(jù)此IP信息,到IP-MAC査找表 中尋找該工P地址對應(yīng)的MAC地址,隨后按照用戶信息中規(guī)定的報文格式進 行打包服務(wù)。如果上層需要發(fā)送ICMP報文時,只需要提供一個中斷信號和 相應(yīng)的類型信息,打包流程按照ICMP協(xié)議規(guī)定的報文格式進行數(shù)據(jù)的組成 和發(fā)送。由于EPA報文的數(shù)據(jù)字段都為20H或者21H,如果需要發(fā)送用于 工業(yè)控制的EPA報文,上層給出發(fā)送使能信號后,由IP打包流程在打包過 程中添加此常量數(shù)據(jù)。所有這些報文都需要用到添加MAC頭和IP頭以及進 行CRC校驗和的計算,在具體實現(xiàn)中,可以把這些相同功能放在一個單獨 的處理流程中進行處理,此流程按照IP層的協(xié)議格式進行打包服務(wù),當需 要該功能時,只需要調(diào)用此流程,這樣便可以大大簡化系統(tǒng)復(fù)雜度,節(jié)省芯片面積。3、 打包完畢后,給上層控制系統(tǒng)一個發(fā)送結(jié)束信號,標志該數(shù)據(jù)報文 已經(jīng)發(fā)送完成,可以發(fā)送下一個報文。4、 如圖3,解包流程收到網(wǎng)卡給出數(shù)據(jù)接收中斷后,記錄下該中斷信息,并傳遞給上層的PTP處理單元以便其記錄收包時間,這樣,在最底層 記錄時間,可以提高PTP報文時間戳的準確度。5、 解除所接收報文的MAC頭和IP頭,這一步完成IP層的基本解包功能,具體方式為保留需要的對方IP地址,長度信息,數(shù)據(jù)類型以及服務(wù)優(yōu)先級以供上層查詢,其余字段丟棄。6、 如圖4,判斷所接收報文的類型,并按照該類型做不同處理,具體 為如果該報文為ARP, ICMP和PTP報文,將該報文直接傳輸給上層。若 該報文為用戶數(shù)據(jù)報文,解除IP頭和MAC頭后,將用戶數(shù)據(jù)部分直接傳送 至RAM中,為了區(qū)分該數(shù)據(jù)報文的來源以及長度,類型等信息,在每個用 戶數(shù)據(jù)報的前面設(shè)置一段存儲區(qū)域用于存儲該用戶數(shù)據(jù)的相關(guān)信息,具體 的格式信息可以參照圖5:首先為該報文的長度信息,這樣有利于用戶對 數(shù)據(jù)報文的讀取控制;其次為該報文的類型,該類型字段可以按照需要具 體定義,如TCP報文定義為1, UDP報文定義為2,第3, 4字段為源IP地 址和端口,用于區(qū)別報文的來源,第5字段為目的地址,表示該報文和本 機的哪一個端口進行通信,第6, 7, 8字段分別為IP頭中的相關(guān)信息。7、 解包完畢后,給上層發(fā)送一個數(shù)據(jù)包解包完畢信號,標志改數(shù)據(jù)報 文己經(jīng)接受并處理結(jié)束。
權(quán)利要求
1、一種網(wǎng)絡(luò)層的打包解包方法,包括打包流程和解包流程,其特征在于打包流程的具體步驟是a.接受上層中斷信號,從數(shù)據(jù)信息寄存器中讀取需要打包的數(shù)據(jù)信息以及存儲的位置,根據(jù)數(shù)據(jù)信息寄存器的具體格式,確定具體的報文信息,報文信息包括數(shù)據(jù)報文的類型、需要的服務(wù)、打包優(yōu)先級、存放的緩沖區(qū)地址;b.根據(jù)報文信息到相應(yīng)的數(shù)據(jù)存儲區(qū)進行數(shù)據(jù)的讀取,具體為如果上層需要發(fā)送ARP報文,則根據(jù)報文信息中的存儲信息,從存放ARP數(shù)據(jù)的存儲區(qū)域讀出該數(shù)據(jù),同時按照ARP協(xié)議規(guī)定的格式提供打包服務(wù);如果上層需要發(fā)送PTP報文,則給存放PTP數(shù)據(jù)的存儲區(qū)域發(fā)送使能信號,同時從存放PTP數(shù)據(jù)的存儲區(qū)域讀取數(shù)據(jù),在下層網(wǎng)卡給出發(fā)送完畢中斷時,IP層記下該發(fā)送時間并且把該時間戳打到隨后發(fā)送的follow up報文中;如果需要發(fā)送用戶數(shù)據(jù)時,上層給出用戶信息,用戶信息包括對方IP地址、需要提供的服務(wù)類型和數(shù)據(jù)部分的長度,打包模塊根據(jù)對方IP地址,到IP-MAC查找表中尋找該IP地址對應(yīng)的MAC地址,然后按照用戶信息中規(guī)定的報文格式進行打包;如果上層需要發(fā)送ICMP報文時,提供一個中斷信號和相應(yīng)的類型信息,按照ICMP協(xié)議規(guī)定的報文格式進行數(shù)據(jù)的組成和發(fā)送;如果上層需要發(fā)送用于工業(yè)控制的EPA報文,上層給出發(fā)送使能信號后,添加常量數(shù)據(jù),常量數(shù)據(jù)即EPA報文的數(shù)據(jù)字段,為20H或者21H,打包完畢;c.打包完畢后,給上層控制系統(tǒng)發(fā)送一個結(jié)束信號;解包流程的具體步驟是d.收到網(wǎng)卡給出數(shù)據(jù)接收中斷后,記錄下該中斷信息,并傳遞給上層的PTP處理單元;e.解除所接收報文的MAC頭和IP頭,具體方式為保留需要的對方IP地址、長度信息、數(shù)據(jù)類型以及服務(wù)優(yōu)先級,其余字段丟棄;f.判斷所接收報文的類型,并按照該類型做不同處理,具體為如果該報文為ARP、ICMP和PTP報文,將該報文直接傳輸給上層;如果該報文為用戶數(shù)據(jù)報文,解除IP頭和MAC頭后,將用戶數(shù)據(jù)部分直接傳送至RAM中,在每個用戶數(shù)據(jù)報的前面設(shè)置一段存儲區(qū)域用于存儲該用戶數(shù)據(jù)的相關(guān)信息,解包完畢;g.解包完畢后,給上層發(fā)送一個解包完畢信號。
全文摘要
本發(fā)明涉及一種網(wǎng)絡(luò)層的打包解包方法。目前的網(wǎng)絡(luò)層打包解包方法系統(tǒng)控制的復(fù)雜度高、實時性低。本發(fā)明方法具體為打包流程從數(shù)據(jù)信息寄存器中讀取需要打包的數(shù)據(jù)信息以及存儲的位置,根據(jù)該信息到相應(yīng)的數(shù)據(jù)存儲區(qū)進行數(shù)據(jù)的讀取操作,按照數(shù)據(jù)報文要求添加常數(shù)字段和時間戳信息,打包完畢后,給上層發(fā)送一個結(jié)束信號;解包流程收到網(wǎng)卡的數(shù)據(jù)接收中斷后,記錄該中斷信息,并傳遞給上層的PTP處理單元,解除所接收報文的MAC頭和IP頭,判斷所接收報文的類型,并按照該類型做不同處理,解包完畢后,給上層發(fā)送一個數(shù)據(jù)包解包完畢信號。本發(fā)明中的IP打包解包方法,可以簡化整個系統(tǒng)的控制復(fù)雜度,節(jié)省硬件面積,適用于基于以太網(wǎng)的工業(yè)控制系統(tǒng)。
文檔編號H04L29/06GK101252579SQ200810059858
公開日2008年8月27日 申請日期2008年2月22日 優(yōu)先權(quán)日2008年2月22日
發(fā)明者廉玉平, 艷 張, 陳金龍, 霍明旭, 雁 韓, 馬紹宇 申請人:浙江大學(xué)