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

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

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