關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > CANopen應(yīng)用以及嵌入式網(wǎng)絡(luò)多接口問(wèn)題

CANopen應(yīng)用以及嵌入式網(wǎng)絡(luò)多接口問(wèn)題

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


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉