關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > CANopen應用以及嵌入式網絡多接口問題

        CANopen應用以及嵌入式網絡多接口問題

        ——
        作者: 時間:2006-05-25 來源: 收藏
        嵌入式網絡歷時已久,與此同時也產生了幾種不同的標準。未來在一個應用中使用多個微控制器(MCU)的趨勢將不斷延續,其結果就會出現越來越多的嵌入式網絡,但由于缺少一種主導性的標準,因此將需要更多的網絡間接口,嵌入式網絡橋接技術對于解決多接口問題便提供了很好的解決方案。
          
           近來,許多嵌入式應用都涉及到嵌入式網絡問題,應用中使用了多個微控制器,它們之間相互通信。這樣做是因為系統的控制是分布式的,或者是因為遠程傳感器和執行器需要連接到主控制單元。
          
           最近的趨勢之一是在一個系統內使用多個嵌入式網絡。使用多個網絡有助于使單個網絡上的負載保持較低和更可預測。使用多個網絡的另一個需求是當需要把在嵌入式網絡上采集的數據傳送到更高控制層或統計數據采集層時,經常負責將數據向更高控制層報告的網絡具有一些與傳感器和執行機構上的網絡完全不同的要求,因而可能采用完全不同的技術和網絡協議棧。為了實現這兩種網絡之間的接口,就需要采用某種橋接或網關技術。
          
          協議轉換
          
           用于嵌入式網絡的網橋和網關不僅要能夠接收和轉發信息,通常還需要執行協議轉換工作。CAN總線上使用的協議可能是DeviceNet或CANopen,而以太網上使用的協議則可能為TCP/IP。為了能夠將數據從其中一個網絡向其他網絡傳遞,可能需要執行進一步的數據處理,一個網關不僅需要實現所有協議棧,而且還需要能夠進行處理。另外還需要一些詳細的配置,以便讓網關知道要把哪個網絡上的哪個數據轉發到另外的某一網絡上。
          
          轉發器、網橋和網關
          
           當需要在不同網絡架構間進行接口時,有多種多樣可實現這些網絡互連的方法,最常用的就是轉發器、網橋和網關。就硬件和軟件要求而言,包括開發和配置在內,轉發器、網橋和網關之間在復雜度上存在很大差別。轉發器不需要微控制器和軟件就可以開發,網橋則需要有一個中等性能的微控制器/微處理器,并運行熟悉選定網絡協議特性的軟件。而網關則需要有一個高端微控制器/微處理器,并運行功能全面的軟件包,它需要能夠理解與之連接的“所有”網絡協議和“所有”傳送數據的詳盡配置信息。只有擁有這些信息,網關才能做出決策,決定將哪個數據如何轉發以及發往何處。
          
          網橋和網關對微控制器的要求
          
           對網橋或網關中使用微控制器的第一個要求是要能夠訪問需要進行互連的嵌入式網絡。所需的這些通信接口越是集成在片上,網橋或網關的實現就會更簡單和更經濟。添加外圍元器件來處理這些通信接口通常要花更多成本(增加芯片數量和PCB板空間)。
          
           其次,微控制器需要具備足夠的性能來處理這些接口上惡劣情況下的通信負荷,以保證沒有信息丟失。在此,需要著重指出的是,不僅要考慮總吞吐率,還要考慮最差情況延遲,這種情況可能會在中斷服務程序從接收緩沖區中檢索數據前發生。
          
           最后,微控制器需要能夠訪問一定容量的RAM和非易失性存儲器。RAM用于在將數據轉發到其他網絡前對數據進行緩沖/暫存以便處理。非易失性存儲器(如EEPROM或Flash)用于存儲配置信息,這些信息可決定將來自哪個網絡的哪個數據,通過什么方式轉發到其他哪個網絡。一般而言,網關需要的RAM比網橋要多得多,網橋需要的RAM比轉發器要多得多。
          
           至于所需的性能要求,一般的流行通信接口可分為三組:
          
          ◆ 面向字節通信(RS-485、LIN、I2C)
          
           可通過低性能微控制器來處理,包括許多8位衍生系列控制器。
          
          ◆ 面向消息、小量、高速率(CAN)
          
           如果要處理兩個接口,一般至少需要使用一個中等性能的16位微控制器。如果要處理三個或更多接口,則需要使用一個32位微控制器。
          
          ◆ 面向消息、大量、中等速率(以太網)
          
           要實現網橋或網關的高效處理,一般需要使用一個32位微控制器。
          
          使用微控制器示例
          
           以飛利浦公司的LPC2000系列微控制器為例,LPC2000是基于ARM7的32位高性能微控制器,具有多種通信接口。LPC2000系列產品目前最多具有4個CAN接口、2個UART和2個I2C接口。未來還將提供具有附加以太網和USB接口的衍生系列。32位性能(頻率最高可達60MHz)與眾多通信接口的結合,使LPC2000適合許多橋接和網關應用。
          
           ESAcademy的測試表明,LPC2000可在不到5毫秒的時間內處理一條由高層協議(如CANopen)使用的CAN消息,這種處理包含了有關該數據的所有高層協議解釋。作為直接對比,一個中等性能的16位微控制器執行同一任務需要約160毫秒。
          
           對于使用所有4個CAN接口、通信速率為1Mbps、且總線負荷為100%時的最差情況,LPC2000平均可每12.5毫秒處理一個消息(4個CAN接口中每個接口每50毫秒一個消息),從而使CPU負荷低于50%。
          
          采用公共協議縮短開發時間
          
           多種網絡技術及協議之間的嵌入式網關的開發需要更高端的處理能力和進行大量的軟件開發,每種網絡協議的實現必須具備將消息從一個網絡協議轉發到其他網絡協議的方法。然而,如果在不同網絡技術中采用一種公共協議,則可以大大減少此類網橋和網關的開發工作。
          
          公共協議CANopen頗受歡迎
          
           公共協議的一個例子就是CANopen,它不僅可以在CAN上運行,而且可以在很多的各種串行總線以及以太網上運行,這極大地簡化了網橋或網關的開發,具體表現在多個方面:首先,由于多個接口采用同一協議,因此協議棧的開發被大大簡化,一些代碼程序和獨立于硬件的功能可以共享。其次,由于交換的數據仍然處于同一協議內,因此網橋或網關的配置得以簡化。它不需要先進行完全轉換然后再重新提交給某個網絡協議棧,從而能夠獲得較快的轉發機制。
          
           需要指出的是,上述網橋或網關的開發絕非“只是容易了一點”,而是整個復雜度被大大簡化。例如,假定一個網關需要處理三種不同的網絡技術:RS-485傳統網絡、CAN及以太網。如果所有三種網絡采用不同的網絡協議,那么這些協議棧都必須實現,另外還必須創建并維護數據轉發表和/或算法。
          
           但如果所有三種網絡技術采用一種公共協議,那么協議棧的開發時間將只占到開發3種不同協議時開發時間的30%~50%。此外,數據轉發算法也將只占原來開發時間的30%~50%,因為轉發數據是在同一協議內進行的,這比將數據重新打包成不同協議要簡單得多。
          
           CANopen衍生協議已應用在多種串行總線(MicroMessaging)及以太網(Ethernet-Powerlink)上,并獲得很大成功,使CANopen成為公共網絡協議首選協議的理由還有:
          
          ◆ 其在標準可獲得性方面的開放性(規范可從CiA-CAN自動化用戶及制造商組織獲得)
          
          ◆ 可針對深度嵌入式應用進行定制的開放性(可針對應用要求進行優化)
          
          ◆ 最小形狀因子、最小實現可使用一些最小的8位微控制器
          
          ◆ 應用程序獨立性(不只限定于某個特定的、有限的用途)
          
          ◆ 數量眾多的開發工具提供商,如配置工具、監測器、分析儀、庫、源代碼和現成產品。
          
           總之,CANopen非常適合用于多種通信技術,只要這些技術是提供某些基本的、公共的要求。
          
           使用嵌入式網絡的應用多種多樣,汽車、工業或機械控制之類的應用使用嵌入式網絡已經有多年了。如今,幾乎任何包含執行機構(如電驅動/電機、水力或氣動機械)的機械均使用了嵌入式網絡,而微控制器的不斷升級換代對嵌入式網絡橋接技術的發展也起到了關鍵的推動作用。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 万荣县| 龙州县| 浦东新区| 巴林左旗| 合作市| 南康市| 宽城| 泰安市| 潼南县| 图们市| 天祝| 阿克| 历史| 五台县| 依安县| 图们市| 庄河市| 黄浦区| 北辰区| 青铜峡市| 玛曲县| 平昌县| 绩溪县| 七台河市| 商南县| 武宁县| 渑池县| 股票| 巴中市| 七台河市| 兴义市| 陈巴尔虎旗| 虹口区| 江安县| 大化| 阿拉善盟| 景东| 新疆| 兴化市| 鹰潭市| 安乡县|