嵌入式應用中的互連技術(shù)應用
CAN和LIN總線(xiàn)起源于汽車(chē)產(chǎn)業(yè)(圖3)。但是當CAN已經(jīng)被廣泛用于自動(dòng)控制、系統控制和機器人中時(shí),LIN仍然僅將其應用范圍鎖定在汽車(chē)領(lǐng)域。在大量微控制器上提供的CAN接口構成了實(shí)現多種協(xié)議和現場(chǎng)總線(xiàn)的基礎。此外,CAN還采用了一種不同于大多數嵌入式網(wǎng)絡(luò )的尋址方式。

大部分網(wǎng)絡(luò )協(xié)議對接收器進(jìn)行標識,有時(shí)候也標識出發(fā)送器。CAN則對數據包的數據進(jìn)行標識。它的接口通常具有多個(gè)用來(lái)檢驗輸入數據包標識符的濾波器。濾波器可以屏蔽某些位,這使得它們能夠識別數據類(lèi)別并忽略其余部分。而且,CAN是為數不多的實(shí)現了優(yōu)先級策略的系統之一,優(yōu)先級策略也屬于標識符處理過(guò)程的一部分(因此最高的標識符值具有優(yōu)先權)。
其它低速(低于1Mbps)互連包括美信公司的專(zhuān)用1-Wire協(xié)議(圖4)。該異步協(xié)議僅需利用一個(gè)片上二極管和電容器就可以給聯(lián)網(wǎng)器件提供最小量的功率。這種寄生方法適用于簡(jiǎn)單的傳感器和通常與1-Wire配合使用的控制芯片。雖然該方法并不是專(zhuān)門(mén)針對1-Wire協(xié)議的,但在這類(lèi)產(chǎn)品中應用得最普遍。

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