嵌入式應(yīng)用中的互連技術(shù)應(yīng)用
CAN和LIN總線起源于汽車產(chǎn)業(yè)(圖3)。但是當(dāng)CAN已經(jīng)被廣泛用于自動(dòng)控制、系統(tǒng)控制和機(jī)器人中時(shí),LIN仍然僅將其應(yīng)用范圍鎖定在汽車領(lǐng)域。在大量微控制器上提供的CAN接口構(gòu)成了實(shí)現(xiàn)多種協(xié)議和現(xiàn)場(chǎng)總線的基礎(chǔ)。此外,CAN還采用了一種不同于大多數(shù)嵌入式網(wǎng)絡(luò)的尋址方式。
大部分網(wǎng)絡(luò)協(xié)議對(duì)接收器進(jìn)行標(biāo)識(shí),有時(shí)候也標(biāo)識(shí)出發(fā)送器。CAN則對(duì)數(shù)據(jù)包的數(shù)據(jù)進(jìn)行標(biāo)識(shí)。它的接口通常具有多個(gè)用來(lái)檢驗(yàn)輸入數(shù)據(jù)包標(biāo)識(shí)符的濾波器。濾波器可以屏蔽某些位,這使得它們能夠識(shí)別數(shù)據(jù)類別并忽略其余部分。而且,CAN是為數(shù)不多的實(shí)現(xiàn)了優(yōu)先級(jí)策略的系統(tǒng)之一,優(yōu)先級(jí)策略也屬于標(biāo)識(shí)符處理過(guò)程的一部分(因此最高的標(biāo)識(shí)符值具有優(yōu)先權(quán))。
其它低速(低于1Mbps)互連包括美信公司的專用1-Wire協(xié)議(圖4)。該異步協(xié)議僅需利用一個(gè)片上二極管和電容器就可以給聯(lián)網(wǎng)器件提供最小量的功率。這種寄生方法適用于簡(jiǎn)單的傳感器和通常與1-Wire配合使用的控制芯片。雖然該方法并不是專門針對(duì)1-Wire協(xié)議的,但在這類產(chǎn)品中應(yīng)用得最普遍。
更高速的互連通常以較早的低速技術(shù)為基礎(chǔ)。FlexRay總線就是由CAN發(fā)展起來(lái)的,這兩種總線都可以用于汽車領(lǐng)域。相對(duì)于CAN總線,F(xiàn)lexRay的速度更快(10Mbps)、更復(fù)雜并且更具魯棒性,但是在大部分新型汽車中,以上兩種總線和LIN總線都是同時(shí)存在的。
FlexRay是面向時(shí)間關(guān)鍵應(yīng)用而設(shè)計(jì)的,這類應(yīng)用(例如汽車線控制動(dòng))需要考慮安全性、可靠性、冗余性和容錯(cuò)性等因素。FlexRay可以與時(shí)鐘級(jí)同步,并對(duì)傳輸周期進(jìn)行劃分以實(shí)現(xiàn)多個(gè)設(shè)備間數(shù)據(jù)交換的細(xì)粒度控制。雖然FlexRay也許能夠以類似CAN的連接方式應(yīng)用于其它環(huán)境,但是其它高速互連更適用于非汽車類嵌入式應(yīng)用。
高速互連
除了FlexRay以外,經(jīng)檢驗(yàn)接口傳輸?shù)臄?shù)據(jù)量往往比一個(gè)數(shù)據(jù)包所能容納的更少。與所采用的處理器的速度相比,網(wǎng)絡(luò)流量往往太小。在很多情況下,必須在保持更高性能的同時(shí)能夠盡量減少互連線的數(shù)量。此時(shí),USB、PCI Express和SRIO等技術(shù)開(kāi)始發(fā)揮作用。
在嵌入式領(lǐng)域中USB不斷獲得青睞。USB最初成功應(yīng)用于鍵盤、鼠標(biāo)、打印機(jī)等PC外圍設(shè)備的互連,而現(xiàn)在它被普遍用于連接特定嵌入式應(yīng)用中的模數(shù)轉(zhuǎn)換器(ADC)、發(fā)動(dòng)機(jī)和數(shù)碼相機(jī)。單個(gè)USB主接口能以高達(dá)480Mbps的速度支持126個(gè)設(shè)備。
通常,USB與一臺(tái)主機(jī)和一組外圍設(shè)備協(xié)同工作。盡管如此,USB所作的可能仍然只是處理雜事,同時(shí)利用SMSC公司的USB2524 MultiSwitch和DisplayLink公司基于USB的顯示適配器支持多主機(jī)功能。
隨著廉價(jià)、易于編程、USB使能微控制器的出現(xiàn),USB變得越來(lái)越普遍。一臺(tái)USB主機(jī)(通常是另一個(gè)微控制器)能夠與微控制器進(jìn)行通信以訪問(wèn)來(lái)自一系列遠(yuǎn)程接口(從ADC到發(fā)動(dòng)機(jī)控制)的服務(wù)和外圍設(shè)備數(shù)據(jù)。事實(shí)上,微控制器的單個(gè)USB主接口可提供所有這些功能,還能夠支持對(duì)USB存儲(chǔ)器的訪問(wèn)和以太網(wǎng)通信。
當(dāng)然,可能還需要傳輸速率更高的產(chǎn)品?;赑CI Express和SRIO等最新串行連接標(biāo)準(zhǔn)的產(chǎn)品已經(jīng)開(kāi)始設(shè)計(jì),高端系統(tǒng)通常采用4到32個(gè)通道,其中每個(gè)通道是一個(gè)全雙工、四線接口。而低端系統(tǒng)通常采用單個(gè)通道。它們現(xiàn)在的最高輸出速率為5Gbps。
這兩者之間的主要區(qū)別是PCI Express繼承了PCI的存儲(chǔ)結(jié)構(gòu),而SRIO能夠輕而易舉地處理小型數(shù)據(jù)包。另一個(gè)重要區(qū)別是PCI Express是基于主機(jī)的,而SRIO是一個(gè)類似以太網(wǎng)的通用網(wǎng)絡(luò)。他們都具有的優(yōu)點(diǎn)是采用了芯片到芯片直接連接(已在上述許多低端技術(shù)中采用)。
SRIO往往只能用于類似TI TMS320C6?54 DSP和飛思卡爾的雙核MPC8572 PowerQUICC III等芯片。DSP通常具備1x接口而CPU包含4x鏈接。目前SRIO已經(jīng)可以用于低端32位或16位微控制器。
PCI Express會(huì)出現(xiàn)同樣的情況,但是根據(jù)目前對(duì)PCI的支持,在不久的將來(lái)PCI Express更有可能向低端芯片領(lǐng)域發(fā)展。嵌入式領(lǐng)域中的另外一個(gè)驅(qū)動(dòng)因素將是各種標(biāo)準(zhǔn),例如PCMCIA的ExpressCard、PIC Express和COM Express。這些標(biāo)準(zhǔn)正不斷推進(jìn)對(duì)更多1x PCI Express外圍器件的需求,從而使得這些器件更適合微控制器平臺(tái)。
當(dāng)然,我們不應(yīng)該忽略這個(gè)問(wèn)題。以太網(wǎng)是事實(shí)上的網(wǎng)絡(luò)標(biāo)準(zhǔn),10Mbps以太網(wǎng)甚至可以用于8位微控制器,例如Microchip的PIC18F97J60和Rabbit Semiconductor的Rabbit 4000。以太網(wǎng)通常需要外部磁場(chǎng),并且系統(tǒng)一般與外部交換機(jī)相連。根據(jù)環(huán)境的不同,這一特性可能成為優(yōu)勢(shì)也可能成為劣勢(shì)。
在工業(yè)自動(dòng)化應(yīng)用中,盡管通常針對(duì)的是機(jī)外(outside-the-box)連接,以太網(wǎng)標(biāo)準(zhǔn)同樣具有一定優(yōu)勢(shì)。如果發(fā)生兼容性和吞吐量的問(wèn)題,那么從10Base-T往上升級(jí)是一個(gè)相對(duì)較簡(jiǎn)單的方法,這在很大程度上是因?yàn)檩^高端的微控制器具有內(nèi)置的100Mbps和1Gbps以太網(wǎng)接口。
支持和阻礙以太網(wǎng)發(fā)展的一個(gè)關(guān)鍵點(diǎn)是協(xié)議棧的復(fù)雜性。如果低端控制就已經(jīng)足夠滿足而且網(wǎng)絡(luò)通信被隔離開(kāi)來(lái),那么TCP/IP協(xié)議棧通??捎玫投私涌诨蛘邇H用一個(gè)IP協(xié)議棧來(lái)取代。
設(shè)計(jì)系統(tǒng)
給開(kāi)發(fā)人員提供一個(gè)端口、一個(gè)UART或者一個(gè)FPGA產(chǎn)品,他們就可以在其網(wǎng)絡(luò)接口上實(shí)現(xiàn)位響應(yīng)(bit-bang)。開(kāi)發(fā)人員也可以實(shí)現(xiàn)很多本文中提到的接口,但是必須小心謹(jǐn)慎。因?yàn)橛行┘軜?gòu)存在許可證問(wèn)題,而這些問(wèn)題可能是不確定的。例如,一些架構(gòu)可能僅限制使用一個(gè)術(shù)語(yǔ)或者標(biāo)志,而其它架構(gòu)則允許設(shè)計(jì)工程師創(chuàng)建除主設(shè)備以外的設(shè)備(反之亦然)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論