嵌入式網(wǎng)絡(luò)歷時(shí)已久,與此同時(shí)也產(chǎn)生了幾種不同的標(biāo)準(zhǔn)。未來在一個(gè)應(yīng)用中使用多個(gè)微控制器(MCU)的趨勢(shì)將不斷延續(xù),其結(jié)果就會(huì)出現(xiàn)越來越多的嵌入式網(wǎng)絡(luò),但由于缺少一種主導(dǎo)性的標(biāo)準(zhǔn),因此將需要更多的網(wǎng)絡(luò)間接口,嵌入式網(wǎng)絡(luò)橋接技術(shù)對(duì)于解決多接口問題便提供了很好的解決方案。近來,許多嵌入式應(yīng)用都涉及到嵌入式網(wǎng)絡(luò)問題,應(yīng)用中使用了多個(gè)微控制器,它們之間相互通信。這樣做是因?yàn)橄到y(tǒng)的控制是分布式的,或者是因?yàn)檫h(yuǎn)程傳感器和執(zhí)行
嵌入式網(wǎng)絡(luò)歷時(shí)已久,與此同時(shí)也產(chǎn)生了幾種不同的標(biāo)準(zhǔn)。未來在一個(gè)應(yīng)用中使用多個(gè)微控制器(
MCU)的趨勢(shì)將不斷延續(xù),其結(jié)果就會(huì)出現(xiàn)越來越多的嵌入式網(wǎng)絡(luò),但由于缺少一種主導(dǎo)性的標(biāo)準(zhǔn),因此將需要更多的網(wǎng)絡(luò)間接口,嵌入式網(wǎng)絡(luò)橋接技術(shù)對(duì)于解決多接口問題便提供了很好的解決方案。
近來,許多嵌入式應(yīng)用都涉及到嵌入式網(wǎng)絡(luò)問題,應(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è)要求是要能夠訪問需要進(jìn)行互連的嵌入式網(wǎng)絡(luò)。所需的這些通信接口越是集成在片上,網(wǎng)橋或網(wǎng)關(guān)的實(shí)現(xiàn)就會(huì)更簡(jiǎn)單和更經(jīng)濟(jì)。添加外圍元器件來處理這些通信接口通常要花更多成本(增加芯片數(shù)量和
PCB板空間)。
其次,微控制器需要具備足夠的性能來處理這些接口上惡劣情況下的通信負(fù)荷,以保證沒有信息丟失。在此,需要著重指出的是,不僅要考慮總吞吐率,還要考慮最差情況延遲,這種情況可能會(huì)在中斷服務(wù)程序從接收緩沖區(qū)中檢索數(shù)據(jù)前發(fā)生。
最后,微控制器需要能夠訪問一定容量的RAM和非易失性存儲(chǔ)器。RAM用于在將數(shù)據(jù)轉(zhuǎn)發(fā)到其他網(wǎng)絡(luò)前對(duì)數(shù)據(jù)進(jìn)行緩沖/暫存以便處理。非易失性存儲(chǔ)器(如
EEPROM或
Flash)用于存儲(chǔ)配置信息,這些信息可決定將來自哪個(gè)網(wǎng)絡(luò)的哪個(gè)數(shù)據(jù),通過什么方式轉(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)