新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > CAN總線互連中網關的設計與實現

        CAN總線互連中網關的設計與實現

        作者: 時間:2008-04-23 來源:網絡 收藏

        摘要: 本文系統地研究了與以太網互連的技術要點,首先分析互連技術在過程中遇到的難點――協議轉換。然后提出了一種與以太網系統互連方案,并詳細闡述了其系統的軟硬件方法。為了提高系統的性能,采用高速微控制器SX52來嵌入式透明,詳細介紹了用SX52在TCP/IP協議棧的方法,以SX52較強的網絡協議處理能力保證了整個系統性能的提升。
        關鍵詞:,協議轉換,,SX52

        The gist of CAN bus and internet ethernet network technology are discussed in this paper.First,We analyse difficulty when the protocol was transformed. Second,we put forward a systemic design schema and implementation. In order to improve system performance,We select SX52 with high speed micro-controler to design embedded gateway.at the same time ,we introduce how to use SX52 to realize TCP/IP protocol and improve the performance of network processor so that system can work well.

        Keyword: CAN FieldBus ,Protocol conversion,Gateway,SX52

        1 引言

        科技和社會的發展,使20世紀末的全球化市場競爭空前激烈。競爭中的企業逐漸開始實施計算機集成制造系統,采用系統集成、信息集成的觀點來組織工業生產。在這個系統中,為實現現場智能設備之間的多點數字通信,計算機測控技術與計算機網絡緊密地結合在一起,產生了能在工業現場環境運行、性能可靠、造價低廉的現場(FieldBus)技術。

        現場總線是用于生產制造現場的最底層通信網絡,它實現了微機化的現場測量控制儀器或設備之間的雙向串行多節點數字通信?,F場總線技術的關鍵是使自動控制系統與現場設備具備通信能力,將它們連接成網絡系統,實現現場通信網絡與控制系統的集成。作為網絡系統,它具有開放統一的通信協議。CAN總線就是現場總線技術在工業應用中形成的一個成熟技術標準。它的協議建立在ISO/OSI模型基礎之上,但只采用了該模型底層的物理層、數據鏈路層和頂層的應用層。在大型企業自動化系統中,上層企業管理層和生產監控層一般采用的都是以太網和PC機,而在下層車間現場都是采用現場總線和單片機測控設備。上下兩層的溝通,通常采用工業控制機加以太網卡,再加上PC機插槽上的接口卡或并行打印口的EPP接口卡來實現。這種連接方式成本高,開發周期長。針對這種情況,我們一種單獨的CAN以太網互連系統,成功地實現以太網和現有CAN總線網的直接數據互聯。

        2 系統總體設計

        CAN總線是一個設備互連總線型控制網絡。在CAN總線上可以掛接多達110個設備節點,各設備間可以自主相互通信,實現復雜網絡控制系統。但設備信息層無法直接到達信息管理層,要想設備信息進入信息管理層就要通過一種數據網關。

        這里我們設計了一個SX52網關用于CAN總線與以太網的互連。系統總體分為三部分:現場測控網絡(CAN網絡)、嵌入式透明SX52網關、以太網信息管理終端(如監控平臺和網絡數據庫等)。以太網信息管理終端與CAN總線上的CAN節點通過ETHERNET,SX52網關,CANBUS相互通信,其中SX52網關起到核心的異構網絡的互連作用。

        協議轉換是異構網絡互連的技術關鍵和難點,協議轉換一般可采用分層轉換的方法,自低向上逐層進行。目前互連大都是在網際層或網絡層展開的,因而必須對互連層以下各層協議逐層向上轉換,這種轉換方法的依據是協議分層的基本原理:即低層支持高層,高層調用低層,低層斷開連接后,高層連接也隨之斷開,但高層斷開連接卻不會影響低層。從網絡的分層結構上來看,我們設計的互連系統具有如圖一所示的分層結構。以太網上運行TCP/IP協議,它具有應用層、傳輸層、網絡層、以太網數據鏈路層和物理層;CAN總線具有應用層、數據鏈路層和物理層,其中應用層由用戶自己定義,數據鏈路層和物理層由CAN協議所定義;SX52數據網關具有物理層、數據鏈路層和應用層,其應用層也就是ETHERNET與CAN的信息數據交換層,SX52微控制器在此層相互解釋并轉發這兩種不同協議的數據。

        圖 一 CAN總線與以太網互連的網絡分層結構

        在本設計中,SX52網關被設計成了一個透明數據網關,也就是在以太網應用層構建和解析完整的CAN協議數據包,CAN協議數據包作為TCP/IP網絡應用層的數據進行傳輸,它對通信數據的具體實際意義不做任何解釋。之所以把數據網關設計成透明式,是基于以下三個方面的考慮:1)透明式網關設計相對不透明網關來說較簡單,在硬件上無須擴展大容量的數據存儲器用于緩存通信數據;軟件上也不用考慮數據的聚集和分發處理,降低了程序設計的復雜度、提高了通信的速度和實時性。2)透明式網關的適應性強,它可以應用于不同的項目要求,而不透明網關則要根據不同要求對網關程序作出不同的修改。3)因為協議轉換設計簡單,沒有較多復雜處理,從而提高了通信的可靠性。

        CAN總線網絡的最大通信速率為1Mpbs,而以太網現在一般為10Mbps。這里就需考慮兩者之間的速度匹配問題,這里可以從兩個方面解決這個問題:一是在網關上使用較大的RAM,用來作為通信數據緩沖器,提高網路傳輸的效率。二是限制以太網向CAN總線傳輸的數據量,使它小于CAN總線的通信速率。

        3 CAN協議分析

        CAN是遵從OSI模型,按照OSI基準模型,CAN結構劃分為兩層:數據鏈路層和物理層。按照IEEE802.2和802.3標準,數據鏈路層又劃分為:

        ――邏輯鏈路控制(LLC)

        ――媒體訪問控制(MAC)

        物理層又劃分為:

        ――物理信令(PLS)

        ――物理媒體附屬裝置(PMA)

        ――媒體相關接口(MDI)

        MAC子層運行借助稱之為“故障界定實體(FCE)”的管理實體進行監控。故障界定是使判別短暫干擾和永久性故障成為可能的一種自檢機制。物理層可借助檢測和管理物理媒體故障實體進行監控(例如總線短路或中斷,總線故障管理)。LLC和MAC兩個同等的協議實體通過交換幀或協議數據單元(PDU―Protocol Data Unit)相互通信。

        LLC子層提供的功能包括:幀接收濾波、超載通告和恢復管理。其中,超載通告功能是如果接收器內部條件要求延遲下一個LLC數據幀或LLC遠程幀,則通過LLC子層開始發送超載幀最多可產生兩個超載幀,以延遲下一個數據幀或遠程幀。

        按照網絡的OSI七層模型來看,CAN總線網絡完成了最下面兩層協議的工作,即物理層和數據鏈路層,它們由CAN控制器的硬件實現電平轉換和幀的封裝。在實際應用中,還需要建立自己的上層協議。這里設計了一種簡單實用的“命令項+數據項”結構,其完整數據幀結構如圖二所示。

        圖 二 應用層幀結構

        考慮到工業控制中的功能一般不多,因此命令項的長度設定為1BYTE(可以描述256種命令)。在數據項里設置數據長度是考慮到CAN總線是短幀傳送(數據幀,每幀數據只有8BYTE),有的命令所需的數據參數可能大于7BYTE,同時很有可能返回的數據也較大,所以,這里設置一個字節的數據長度項,就可使用戶定義數據幀長度達到256字節。

        4 SX52TCP/IP協議棧的設計

        ARP協議可以實現邏輯地址到物理地址的動態映射。以太網接口支持一個唯一的48-bit的物理地址。在SX52中,ARP協議是通過一個“IP地址對應以太網地址”的單登記核實現。當遠程主機需要知道它的物理地址時,遠程主機會向它發送ARP請求,這時它就會響應這個遠程主機的請求,告訴對方自己的物理地址。當應用層需要傳輸IP數據包時,SX52 ARP協議也可以請求遠程目的物理地址。

        要傳輸的Internet數據包數據包在以太網控制器的發送緩沖區中被構建,它使用最近接收到的數據包的目的以太網地址作為發送數據包的目的地址。當然,這可能不是正確的以太網地址,因此,在實際發送數據包之前,ARP協議將檢查發送數據包中的IP地址是否存在于ARP核中,如果發送數據包中的IP地址在這個核中,在以太網發送緩沖區中的數據包將使用ARP核中的以太網地址更新,如果不在,則ARP協議將發送一個ARP請求包,然后等待一個應答。一旦這個ARP應答接收到,這個ARP核將使用剛接收到的目標以太網地址更新,接著,等待發送的數據包也將使用這個以太網地址更新,然后被發送出去。如果發送的ARP請求包沒有應答,導致ARP定時器超時,這是等待發送的數據包將被廢棄,正常的協議棧繼續運行。

        IP協議是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸。IP提供不可靠、無連接的數據報傳送服務,不能保證IP數據報成功地到達目的地。如果發生某種錯誤時,如某個路由器暫時用完了緩沖區,IP有一個簡單的錯誤處理算法:丟棄該數據報,然后發送ICMP 消息報給信源端。任何要求的可靠性必須由上層來提供。無連接的意思是IP并不維護任何關于后續數據報的狀態信息,每個數據報的處理是相互獨立的。這也說明,IP數據報可以不按發送順序接收。在本設計中,IP協議是針對特殊的應用環境下的合理簡化。CAN總線的控制網絡是一種短幀、實時網絡,所以,IP數據包無須分片(MF=DF=0),同時,設置IP服務類型為一般類型,其頭長為20字節,首部長度字段為5,壽命TTL設置為64。

        TCP向應用層提供一種面向連接的、可靠的字節流服務。在面向工業控制上的應用時,可以對復雜的TCP協議做合理的簡化,因為CAN網絡傳輸速度較快,數據量小且l0Mpbs的以太網傳輸一般不會發生阻塞,以太網上的主機也會有足夠的能力及時處理通信數據。所以可以固定超時與重傳的時間為5s,此外RTL8019AS上有兩個1500字節的接收緩沖區,且CAN網絡為控制網,信息量小,所以可以固定接受窗口為1400字節。設計中采用一般的TCP服務就可以滿足應用,所以可以忽略緊急指針和選項和填充字段的值。通過上述的三點簡化,實際上大大簡化了TCP協議的實現,因為TCP的超時與重傳的時間的確定和窗口大小的控制有著較復雜的算法和實現機制。

        5 創新點總結

        本文的創新點是針對傳統工業控制自動化現場總線連接方式成本高,開發周期長的不足之處,設計一種單獨的CAN以太網網關互連系統,成功地實現以太網和現有CAN總線網的直接數據互聯。現場總線通過與因特網、企業內部網相連,使自動控制系統與現場設備成為企業綜合自動化系統和信息系統的一個組成部分。系統在開放性、互操作性、現場設備智能化、系統結構、對現場環境適應性等性能方面得到了很大的提高,成功實現兩個異類網絡的數據通信。

        參考文獻:

        [1] 鄒益仁 馬增良 等,現場總線控制系統的設計和開發,2003,國防工業出版社

        [2] 鄭文波 控制網絡技術,2001,清華大學出版社

        [3] Ed.Taylor ,鄭巖 鄧凌 譯,網絡互連技術指南,2001,人民郵電出版社

        [4] 李明 嵌入式互連網絡接口的設計與開發,2002,工業控制計算機

        [5] 鄧遵義,寧樣,劉保國.基于CAN總線的分布式機器人控制系統設計. 微計算機信息[J].2006年的22卷6-2期:第254-256頁

        tcp/ip相關文章:tcp/ip是什么




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乃东县| 洛隆县| 天门市| 应城市| 宁陵县| 河间市| 渑池县| 威信县| 黄陵县| 阿坝| 宁城县| 邵东县| 邵阳市| 日照市| 琼海市| 东兴市| 宁陵县| 宿迁市| 阜新市| 大名县| 玉田县| 和田县| 宣恩县| 宝山区| 麦盖提县| 贵港市| 友谊县| 万山特区| 胶州市| 阜康市| 济宁市| 互助| 莆田市| 百色市| 隆德县| 大安市| 曲阜市| 苍溪县| 凤冈县| 红河县| 元谋县|