国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

TCP/IP協議棧在嵌入式異構網絡中的應用 (1)

2019-11-04 12:05:04
字體:
來源:轉載
供稿:網友

  Internet現已成為社會重要的信息流通渠道。假如嵌入式系統能夠連接到Internet上面,則可以方便、低廉地將信息傳送到幾乎世界上的任何一個地方。可以預言,嵌入式設備與Internet的結合代表著嵌入式系統和網絡技術的真正未來。隨著ipv6的應用,設備都可能獲得一個全球唯一的IP地址,通過IP地址和互聯網相連成為一個網絡設備。但是傳統的TCP/IP協議在實現實時性方面做得不夠好,它把大量的精力花在保證數據傳送的可靠性以及數據流量的控制上。而在實時性要求比較高的嵌入式領域中,傳統的TCP/IP不能滿足其實時要求。另外,傳統TCP/IP的實現過于復雜,需占用大量系統資源,而嵌入式應用的系統資源往往都很有限。因此,需要把傳統TCP/IP在不違反協議標準的前提下加以改進實現,使其實現性得到提高,占用的存儲空間盡可能少,以滿足嵌入式應用的要求。
  
  在大型企業自動化系統中,上層企業治理層和生產監控層一般采用的都是以太網和PC機,而在下層車間現場都是采用現場總線和單片機測控設備。上下兩層的溝通,通常采用工業控制機加以太網卡,再加上PC機插槽上的接口卡和并行打印口EPP接口卡來實現。這種連接方式成本高,開發周期長。針對這些情況,本文提出了一種單獨的嵌入式CAN-以太網網關互連系統的設計方案,成功地實現以太網和現有的CAN總線網的直接數據傳輸。
  
  一、異構網絡互聯系統結構設計
  CAN總線是一個設備互連總線型控制網絡。在CAN總線上可以掛接多達110個設備節點,各設備間可以自主相互通信,實現復雜網絡控制系統。但設備信息層無法直接到達信息治理層,要想設備信息進入信息治理層就要通過一種數據網關。
  
  這里設計了一個SX52網關,用于CAN總線與以太網的互連。圖1所示的系統總體結構分為三部分:現場測控網絡(CAN網絡)、嵌入式透明SX52網關和以太網信息治理終端(如監控平臺和網絡數據庫等)。以太網信息治理終端與CAN總線上的CAN節點通過Ethernet、SX52網關、CAN總線相互通信,其中SX52網關起核心異構網絡的互連作用。
  
  協議轉換是異構網絡互連的技術要害和難點。協議轉換一般遙相呼應采用分層轉換的方法,自低向上逐層進行。目前互連大都是在網絡層或網絡層展開的,因而必須對互連層以下各層協議逐層向上轉換。這種轉換方法的依據是協議分層的基本原理,即低層支持高層,高層調用低層,低層斷開連接后,高層連接也隨之斷開,但高層斷開連接卻不會影響低層。從網絡的分層結構上來看我們設計的互連系統具有如圖2所示的分層結構。以太網上運行TCP/IP協議,它具有應用層、傳輸層、網絡層以太網數據鏈路層和物理層;CAN總線具有應用層、數據鏈路層和物理層,其中應用層由用戶自己定義,數據鏈路層和物理層由CAN協議所定義;SX52數據網關具有物理層、數據鏈路層和應用層,其應用層也就是Ethernet與CAN的信息數據交換層,SX52微控制器在此層相互解釋并轉發這兩種不同協議的數據。
  
  在本設計中,SX52網關被設計成了一個透明數據網關。也就是在以太網應用層構建和解析完整的CAN協議數據包。CAN協議數據包作為TCP/IP網絡的應用層的數據進行傳輸。對通信數據的具體實際意義不做任何解釋。
  
  透明式網關由通信處理器、CAN總線控制器和以太網控制器三個部分組成。其中SX52單片機為核心處理器,實現CAN控制網絡與以太網之間的協議轉換。以太網信息治理 層的控制指令發送到嵌入式透明SX52網關,經過它將TCP/IP協議包數據轉換為CAN協議形式發送至CAN控制網絡中的指定設備節點,完成信息治理層對現場設備層的控制。同樣地,當CAN網絡上的設備數據(如定時采樣數據或報警信息)要傳輸到信息治理層時,可將數據發送到嵌入式透明SX52網關,再通過網關協議轉換程序將CAN協議數據封裝成TCP/IP協議的以太網數據幀發送至以太網上的監控計算機。
  
  二、SX52中TCP/IP協議棧的設計
  按照層次結構思想,對計算機網絡模塊化的研究結果是,形成了一組從上到下單向依靠關系的協議棧(PRotocol stack),也叫協議族。在標準的TCP/IP協議族中有很多協議。這里SX52中TCP/IP協議棧層次結構如圖3所示。
  
 TCP/IP協議棧在嵌入式異構網絡中的應用 (1)(圖一)

  1. SX52 ARP協議的設計與實現
  
  地址解析協議ARP(Address Resolution Protocol)可以實現邏輯地址到物理地址的動態映射。它提供了一種使以太網絡節點可以傳輸一個IP數據包到目的地址的映射機制。
  
  在SX52中,ARP協議是通過一個“IP地址對應以太網地址”的單登記實現的。當遠程主機需要知道它的物理地址時,遠程主機會向它發送ARP請求。這時它就會響應這個遠程主機的請求,告訴對方自己的物理地址。當然,當應用層需要傳輸IP數據包時,SX52 ARP協議也可以請求遠程目的物理地址。
  
TCP/IP協議棧在嵌入式異構網絡中的應用 (1)(圖二)

  要傳輸的Internet數據包在以太網控制器的發送緩沖區中被構建,它使用最近接收到的數據包的目的以太網地址作為發送數據包的目的地址。當然,這可能不是正確的以太網地址,因此,在實際發送數據包之前,ARP協議將檢查發送數據包中的IP地址是否存在于ARP核中。假如發送數據中包中的IP地址在這個核中,在以太網發送緩沖區中的數據包將使用ARP核中的以太網地址更新;假如不在,ARP協議將發送一個ARP請求包,然后等待一個應答。一旦這個ARP應答接收到,這個ARP核將使用剛接收到的目標以太網地址更新,接著,等待發送的數據包也將使用這個以太網地址更新,然后被發送出去。假如發送的ARP請求包沒有應答,導致ARP定時器超時,這時等待發送的數據包將被廢棄,正常的協議棧繼續運行。使用的變量有:
  
  ARP核中的IP地址{hostlIP3,hostlIP2,hostlIP1,host1IP0};
   ARP核中的以太網物理地址{host1Eth0,host1Eth1,host1Eth2,host1Eth3,host1Eth4,host1Eth5};
   ARP協議的定時器{arpTimerMSB,arpTimerLSB}等。
   使用涉及的函數有:
   ARPInit(),
   ARPCheckCache(),
   ARPSendResponse(),
   ARPUpdateEthAddr(),
   ARPCheckIfIs(),
   ARPCompare4(),
   ARPSendStPacket(),
   ARPSendCommon(),
   ARPSendRequest()。
  
  2. SX52 IP協議的設計與實現
  
  IP是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸。IP提供不可靠、無連接的數據報傳送服務。本設計中的IP協議是針對非凡的應用環境下的合理簡化。CAN總線的控制網絡是一種短幀(每個數據幀為8字節)的實時網絡,所以,IP數據包無須分片(MF=DF=0),同時,設置IP為服務類型為一般類型,其頭長為20字節,壽命TTL設置為64。使用的變量有:
  
  目的IP地址{remoteIP3,remoteIP2,remoteIP1,remoteIP0};
  源IP地址{myIP3,myIP2,myIP1,myIP0};
  IP校驗和{ipCheckSumMSB,ipCheckSumLSB};
  IP數據包長度{ipLengthMSB,}ipLengthLSB};
  上層使用的協議ipProtocol,
  IP標識{ipIdentMSB,ipIdentLSB}。
  使用涉及的函數有:
  TCPIPInit(),
  CheckIPDatagram(),
  CheckIPDestAddr(),
  IPStartPktOut()等。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇文区| 德庆县| 辰溪县| 永嘉县| 巴中市| 连城县| 泰兴市| 伊金霍洛旗| 洪泽县| 平凉市| 化隆| 千阳县| 嵊泗县| 张家界市| 博客| 张家川| 广灵县| 湘潭市| 云霄县| 同江市| 深水埗区| 浪卡子县| 石渠县| 泌阳县| 大理市| 西丰县| 罗江县| 顺平县| 信阳市| 和平县| 广汉市| 昌乐县| 湖口县| 西盟| 连南| 临湘市| 珠海市| 肇庆市| 文成县| 郸城县| 万宁市|